.scene-page {
  --room-brass: #f4cc86;
  --room-dark: #050607;
  --room-paper: #e8d9b9;
  --room-ink: #30261d;
  --terminal-green: #97efb9;
  background: var(--room-dark);
}

.scene-page { overflow: hidden; }
.scene-page .skip-link { z-index: 2; }
.scene-page main.shell { width: 100%; height: 100dvh; padding: 0; }
.room-content { height: 100%; }
.scene-page .room-window.document-folder-view { position:fixed; inset:0; width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:hidden; color:#30291f; }
.scene-page:has(.has-3d) .room-window.document-folder-view { width:100vw; max-width:none; }
.scene-page:has(.has-3d) .room-window.document-folder-view::backdrop { background:#0807054d; backdrop-filter:blur(2px); }
.document-folder-pending>* { visibility:hidden; }
.document-folder-pending::after { content:'Открываем папку…'; position:absolute; inset:0; display:grid; place-items:center; color:#d8bd8e; font:14px 'Courier New',monospace; }
.document-folder-canvas { position:absolute; inset:0; display:block; width:100%; height:100%; pointer-events:none; filter:drop-shadow(0 20px 28px #0008); }
.document-folder-page { position:absolute; left:0; top:0; width:400px; height:620px; box-sizing:border-box; transform-origin:0 0; padding:18px 12px; opacity:0; overflow:hidden; font:18px/1.5 Georgia,serif; color:#2c281f; }
.document-spread-left,.document-spread-right { padding:10px 8px; overflow:auto; scrollbar-width:thin; scrollbar-color:#8b745080 transparent; }
.document-folder-page .window-body { padding:0; }
.folder-sheet-title { margin:0 0 12px; padding:0 0 6px; border-bottom:1px solid #876b474f; font:26px/1.15 Georgia,serif; }
.folder-empty { margin:24px 0; color:#74634a; font:italic 17px/1.6 Georgia,serif; }
.document-folder-tabs { position:absolute; left:0; top:0; width:480px; height:52px; display:flex; gap:6px; transform-origin:0 0; opacity:0; }
.document-folder-tabs button { flex:1; min-width:0; padding:10px 6px; border:1px solid #9b7c4b; border-bottom:0; background:#c4ac7e; color:#4a3921; clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%,0 6px); font:bold 17px 'Courier New',monospace; cursor:pointer; }
.document-folder-tabs button[aria-selected=true] { background:#e4d1a6; color:#753c2d; box-shadow:inset 0 3px 0 #8e4d38; }
.document-people { display:grid; grid-template-columns:1fr; grid-template-rows:repeat(4,128px); gap:6px; list-style:none; margin:0; padding:0; }
.document-people[hidden] { display:none; }
.document-person { display:grid; grid-template-columns:86px minmax(0,1fr); gap:18px; align-items:start; min-width:0; }
.document-person-polaroid { width:86px; box-sizing:border-box; padding:4px 4px 2px; background:#ddc9a3; box-shadow:1px 2px 4px #4a351d35; }
.document-person-photo { width:78px; height:98px; overflow:hidden; background:#b8a689; }
.document-person-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.document-person-name { display:flex; height:24px; align-items:center; justify-content:center; text-align:center; font:bold 12px/1.1 Georgia,serif; overflow-wrap:anywhere; }
.document-person-nameplate { display:block; width:100%; height:24px; object-fit:contain; }
.document-person-photo .portrait-placeholder { width:100%; height:100%; min-height:0; padding:4px; box-sizing:border-box; display:grid; place-content:center; }
.document-person-photo .portrait-placeholder svg { width:32px; height:40px; margin:auto; }.document-person-photo .portrait-placeholder span { font-size:9px; }
.document-person-info { display:grid; align-content:start; gap:8px; min-width:0; padding-top:4px; }
.document-person-note { margin:0; min-height:32px; white-space:pre-wrap; overflow-wrap:anywhere; color:#473726; font:italic 15px/1.25 Georgia,serif; }
.document-person-note:empty { display:none; }
.document-person-info>span { font:13px/1.2 Georgia,serif; color:#6f604c; }
.document-person-progress { display:flex; align-items:center; gap:8px; }.document-person-progress progress { min-width:0; flex:1; height:5px; accent-color:#81734d; }.document-person-progress b { min-width:40px; font:12px 'Courier New',monospace; }
.people-pagination { position:absolute; top:8px; right:12px; display:flex; gap:12px; align-items:center; justify-content:center; margin:0; font:13px 'Courier New',monospace; }
.people-pagination button { min-width:44px; min-height:34px; background:transparent; border:1px solid #8d704d70; color:#533d28; cursor:pointer; }.people-pagination button:disabled { opacity:.35; cursor:default; }
.found-material { padding:14px 0 18px; margin:0 0 12px; border-bottom:1px solid #8a704c4d; font:17px/1.45 Georgia,serif; }.found-material h3 { margin:7px 0 12px; font:26px/1.2 Georgia,serif; }.found-material p { margin:9px 0; }.found-material-label { font:12px 'Courier New',monospace; color:#836c48; }.found-material-note { color:#7e5438; font-style:italic; }.found-material summary { min-height:42px; cursor:pointer; font:bold 20px/1.3 Georgia,serif; }.found-material .room-crop { max-height:250px; width:100%; }.found-material figcaption { font-size:15px; }
@media(max-width:699px) { .document-spread-left { display:none; }.document-spread-right { font-size:19px; }.document-spread-right [data-folder-sheet]+[data-folder-sheet] { margin-top:16px; }.document-folder-tabs button { font-size:16px; } }
.document-folder-index { padding:28px 24px; display:flex; flex-direction:column; }
.document-bureau { font:12px/1.5 'Courier New',monospace; color:#675d47; margin:0 0 25px; }
.document-folder-index h2 { font:36px/1.1 Georgia,serif; margin:0 0 12px; }
.document-case { font:15px 'Courier New',monospace; padding-bottom:16px; border-bottom:2px solid #8c4336; margin:0 0 28px; }
.document-folder-index nav { display:grid; gap:8px; }
.document-folder-index nav a { padding:12px 9px; border-bottom:1px solid #8b74503b; text-decoration:none; font:18px 'Courier New',monospace; }
.document-folder-index nav a[aria-current=page] { background:#a9853b1f; border-left:3px solid #8f4c39; }
.document-stamp { align-self:start; border:3px double #8e4336; color:#8e4336; padding:8px 13px; margin-top:auto; transform:rotate(-7deg); font:bold 17px/1.4 'Courier New',monospace; }
.document-index-note { margin:16px 0 0; color:#6a5b45; font:italic 14px/1.5 Georgia,serif; }
.document-folder-content { display:flex; flex-direction:column; }
.document-folder-content .window-body { padding:4px 8px; min-height:0; overflow:auto; flex:1; scrollbar-width:thin; scrollbar-color:#8b745080 transparent; }
.document-folder-content .invitation-date { font:normal 28px/1.2 Georgia,serif; }
.document-folder-content .archive-invitation h3 { font-size:25px; }
.document-folder-content .participant-archive-row img { width:50px; height:60px; object-fit:cover; }
.document-folder-content .document-fields { font-size:16px; }
.document-folder-content .folder-index a { min-height:48px; }
.document-folder-view .document-folder-close { position:fixed; top:max(20px,env(safe-area-inset-top)); right:24px; z-index:3; padding:10px 16px; border:1px solid #ac8b57; background:#1b1711e8; color:#ebd3a9; text-decoration:none; font:14px 'Courier New',monospace; }
.document-folder-mobile-nav { display:none; }
@media(max-width:699px) { .document-folder-index { display:none; }.document-folder-mobile-nav { display:flex; flex-wrap:wrap; gap:6px; padding:0 0 12px; margin-bottom:12px; border-bottom:1px solid #8b745066; }.document-folder-mobile-nav a { display:flex; align-items:center; min-height:52px; padding:0 7px; font:bold 15px 'Courier New',monospace; text-decoration:none; }.document-folder-mobile-nav a[aria-current=page] { color:#8e4336; text-decoration:underline; }.document-folder-view .document-folder-close { right:14px; top:14px; } }
.room-logout { position:fixed; right:max(24px,env(safe-area-inset-right)); bottom:max(22px,env(safe-area-inset-bottom)); z-index:30; margin:0; }
.room-logout[hidden] { display:none; }
.room-content.has-focus>.room-logout { visibility:hidden; }
.document-folder-view :focus-visible { outline:2px solid #b69459; outline-offset:3px; }
.room-logout button { display:flex; align-items:center; gap:9px; padding:12px 18px; min-height:44px; border:1px solid #9c795078; background:#17130edf; color:#d8bb87; box-shadow:0 3px 18px #0008,inset 0 0 0 3px #a57b3010; font:14px 'Courier New',monospace; letter-spacing:.04em; cursor:pointer; transition:background .2s,color .2s; }
.room-logout button:hover { background:#35271b; color:#ffe1a3; }
.room-logout svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.room-logout button:focus-visible,.entry-overlay button:focus-visible,.entry-overlay input:focus-visible { outline:2px solid #e7bc73; outline-offset:4px; }
.entry-overlay { position:fixed; inset:0; z-index:50; display:grid; place-items:center; overflow:auto; padding:32px 24px 110px; box-sizing:border-box; background:radial-gradient(ellipse at 50% 32%,#32261752,transparent 65%),#030405ed; color:#dfc79c; transition:opacity .7s ease; }
.entry-overlay.is-leaving { opacity:0; pointer-events:none; }
.entry-overlay.is-arriving { opacity:0; pointer-events:none; }
.room-exit-error { position:fixed; right:24px; bottom:76px; z-index:31; max-width:300px; padding:12px 16px; background:#201812; color:#e0bd8a; border:1px solid #8a6841; font:13px/1.5 'Courier New',monospace; }
.entry-card { width:min(100%,390px); padding:30px 36px 24px; box-sizing:border-box; border:1px solid #86704a73; border-top:3px solid #b2915d; background:linear-gradient(140deg,#211c16ed,#111110f2); box-shadow:0 25px 90px #000b,inset 0 0 0 6px #94764b09; }
.entry-seal { width:66px; margin:0 auto 13px; color:#a68b5b; }
.entry-seal svg { display:block; width:100%; fill:none; stroke:currentColor; stroke-width:1.3; }
.entry-bureau { margin:0; text-align:center; font:11px/1.6 'Courier New',monospace; letter-spacing:.08em; }
.entry-card h1 { margin:12px 0 10px; color:#edddbd; font:normal 34px/1.15 Georgia,serif; text-align:center; letter-spacing:-.6px; }
.entry-intro { margin:0 0 27px; text-align:center; font:italic 14px/1.5 Georgia,serif; color:#ac9a7a; }
.entry-form { display:grid; gap:17px; }
.entry-form label { display:grid; gap:7px; color:#d4c09e; font:12px 'Courier New',monospace; }
.entry-form input { width:100%; box-sizing:border-box; border:1px solid #786347; padding:12px 14px; min-height:46px; border-radius:0; color:#f2e3c3; background:#080a0b; box-shadow:inset 0 2px 8px #0008; font:16px 'Courier New',monospace; }
.entry-form input:focus { border-color:#d9b473; }
.entry-submit { display:flex; justify-content:space-between; align-items:center; padding:14px 17px; min-height:48px; border:1px solid #d0ae70; border-radius:0; background:#b49158; color:#17120b; font:bold 14px 'Courier New',monospace; cursor:pointer; }
.entry-submit:hover { background:#cfad71; }.entry-submit:disabled { opacity:.65; cursor:wait; }
.entry-error { margin:0; color:#e1a98d; font:13px/1.4 system-ui,sans-serif; }.entry-error:empty { display:none; }
.entry-footnote { margin:18px 0 0; text-align:center; color:#9b8b70; font:11px/1.5 'Courier New',monospace; }
.entry-loading { position:fixed; bottom:max(28px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); width:min(520px,calc(100% - 48px)); font:11px/1.4 'Courier New',monospace; color:#a58d66; }
.entry-loading>div { display:flex; justify-content:space-between; gap:20px; margin-bottom:9px; }
.entry-loading progress { display:block; width:100%; height:3px; border:0; appearance:none; background:#26231e; accent-color:#c9a36b; }
.entry-loading progress::-webkit-progress-bar { background:#26231e; }.entry-loading progress::-webkit-progress-value { background:#c9a36b; transition:width .3s; }.entry-loading progress::-moz-progress-bar { background:#c9a36b; }
.entry-loading button { padding:8px 0; border:0; background:none; color:#d8b177; text-decoration:underline; cursor:pointer; }
.entry-loading button[hidden] { display:none; }
@media(max-width:600px) { .room-logout { right:14px; bottom:max(14px,env(safe-area-inset-bottom)); }.room-logout button { padding:10px 13px; }.entry-card { padding:24px; }.entry-card h1 { font-size:30px; }.entry-overlay { padding-top:20px; }.entry-seal { width:50px; } }
@media(prefers-reduced-motion:reduce) { .entry-overlay,.entry-loading progress::-webkit-progress-value { transition:none; } }

.room-heading, .room-keyboard, .lamp-switch, .notebook-return {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  clip-path: inset(50%);
  overflow: hidden;
  white-space: nowrap;
}
.room-keyboard { top: 0; left: 0; }

.room-3d {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--room-dark);
}

.room-3d[hidden], .room-loading[hidden] { display: none; }
.room-loading {
  display: grid;
  place-items: center;
  height: 100%;
  max-width: 36rem;
  margin: 0 auto;
  padding: 1rem;
  color: #cfc1a6;
  text-align: center;
}
.room-3d { position: relative; overflow: hidden; }
.room-canvas { display: block; width: 100%; height: 100%; transition: filter .18s ease; }
.room-canvas.is-pointing { cursor: pointer; }
.has-focus .room-canvas { filter: blur(7px) brightness(.78); }
.monitor-interface {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.monitor-interface[hidden], .monitor-interface [hidden] { display: none; }

.room-window {
  position: fixed;
  inset: 0;
  width: min(100% - 1.5rem, 39rem);
  max-height: calc(100dvh - 2rem);
  height: fit-content;
  margin: auto;
  padding: 0;
  overflow: auto;
  box-shadow: 0 1rem 4rem #000b;
}

.room-window::backdrop { background: #070809b8; }
.scene-page:has(.has-3d) .room-window { width: min(100% - 1.5rem, 33rem); }
.scene-page:has(.has-3d) .room-window::backdrop { background: #07080966; }
.scene-page:has(.room-window[open]:not(:modal)) .room-content { filter: brightness(.43); }

.window-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  padding: .55rem clamp(.9rem, 3vw, 1.6rem);
  border-bottom: 1px solid currentColor;
}

.window-header h2 { margin: 0; font-size: clamp(1.35rem, 5vw, 2rem); }

.window-close {
  display: inline-flex;
  flex: none;
  align-items: center;
  min-height: 2.75rem;
  padding-inline: .4rem;
  font-size: .875rem;
}

.window-body { padding: clamp(.95rem, 4vw, 1.65rem); }
.window-body > :first-child { margin-top: 0; }
.window-body > :last-child { margin-bottom: 0; }

.terminal-window {
  color: var(--terminal-green);
  border: 4px solid #566257;
  border-radius: .5rem;
  background: repeating-linear-gradient(0deg, #0d1912 0 2px, #101e16 3px 4px);
  font-family: var(--mono);
}

.terminal-window h2 { font-family: inherit; }
.terminal-window .window-header { border-color: #3a7651; }
.terminal-window :focus-visible { outline-color: var(--terminal-green); }
.terminal-exit { margin-top: .7rem; border-top: 1px solid #3a7651; }
.terminal-exit .nav-button { min-height: 2.75rem; }
.terminal-prompt { margin: 0 0 1rem; overflow-wrap: anywhere; }
.terminal-menu, .folder-index { list-style: none; margin: 0; padding: 0; }
.terminal-menu li + li, .folder-index li + li { border-top: 1px solid #796c475c; }

.terminal-menu a, .folder-index a {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 2.75rem;
}

.terminal-menu a::before { content: "›" / ""; }
.terminal-menu a:hover { background: #97efb924; }

.folder-window {
  color: var(--room-ink);
  border: 1px solid #a58553;
  border-top: 5px solid #a58553;
  background: repeating-linear-gradient(98deg, #8e67350b 0 1px, transparent 1px 4px), var(--room-paper);
  color-scheme: light;
}

.window-map {
  --room-paper: #d9d8c1;
  background:
    repeating-linear-gradient(0deg, #475d5217 0 1px, transparent 1px 16px),
    repeating-linear-gradient(90deg, #475d5217 0 1px, transparent 1px 16px),
    var(--room-paper);
}
.window-participants, .window-dossier { --room-paper: #e1d1a7; }
.window-materials, .window-photos { --room-paper: #ddd0b9; }
.folder-window .window-header { border-color: #826b4980; }
.folder-index li { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .75rem; min-height: 2.75rem; overflow-wrap: anywhere; }
.folder-index small { color: #5d4b35; }
.wall-map { margin: 0 auto; max-width: 23rem; }
.wall-map figcaption { margin-top: .75rem; }
.room-crop { display: block; width: 100%; height: auto; overflow: hidden; background: #302620; }
.wall-map .room-crop { max-height: 58dvh; object-fit: contain; }
.board-photos { display: grid; grid-template-columns: 1.25fr .5fr .85fr; align-items: center; gap: .65rem; }
.board-photos .room-crop { border: .3rem solid #f8f0df; box-shadow: 0 .15rem .4rem #32200b4d; }
.archive-invitation h3 { font-size: 1.3rem; }
.invitation-date { margin-block: .65rem .25rem; color: #753329; font: 700 clamp(1.45rem, 5.8vw, 2.6rem)/1.16 Georgia, serif; }
.archive-invitation p:not(.invitation-date) { margin-top: 0; }
.document-fields { margin-bottom: 0; }
.document-fields > div { display: flex; justify-content: space-between; gap: .5rem; border-top: 1px solid #826b4980; padding-block: .4rem; }
.document-fields dt { font-weight: 700; }
.document-fields dd { margin: 0; text-align: right; }
.room-dossier { display: grid; grid-template-columns: minmax(0, 8rem) minmax(0, 1fr); align-items: start; gap: 1rem; }
.room-dossier h3 { margin-bottom: .35rem; }

@media (prefers-reduced-motion: reduce) {
  .room-canvas { transition: none; }
}

/* Personal dossier stays at the desk while the camera explores the room. */
.desk-profile { position:fixed; z-index:29; right:max(35px,env(safe-area-inset-right)); top:max(35px,env(safe-area-inset-top)); width:clamp(150px,13vw,230px); transition:transform .45s ease,opacity .3s ease,visibility .45s; }
.desk-identity { position:relative; margin:0; padding:12px 12px 14px; background:radial-gradient(ellipse at 5% 95%,#78512c4d,transparent 45%),radial-gradient(ellipse at 95% 5%,#7b522a55,transparent 45%),repeating-linear-gradient(12deg,#61442009 0 1px,transparent 1px 4px),#bca079; border:1px solid #735335; box-shadow:0 9px 23px #000a,inset 0 0 14px #56371d60; transform:rotate(-6deg); color:#291e15; }
.desk-identity::before { content:""; position:absolute; z-index:2; top:-8px; left:46%; width:11px; height:11px; border-radius:50%; background:radial-gradient(circle at 35% 25%,#b68857,#593821 65%,#2b1c13); box-shadow:1px 3px 3px #0009; }
.desk-photo { position:relative; }
.desk-photo>.portrait-image { display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; box-shadow:0 0 0 1px #62432980; }
.desk-identity .portrait-placeholder { aspect-ratio:3/4; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#9d8768; font:11px Georgia,serif; }
.desk-identity .portrait-placeholder svg { width:62%; height:auto; }
.desk-signature { position:relative; z-index:1; width:94%; margin:-31% -9% 0 auto; transform:rotate(-8deg); min-height:38px; display:flex; align-items:center; justify-content:center; }
.desk-nameplate { display:block; width:100%; height:auto; max-height:100px; object-fit:contain; filter:drop-shadow(1px 3px 2px #29180b66); }
.desk-name { padding:4px 10px; background:#c7ab7c; border:1px solid #83623c; box-shadow:1px 2px 3px #0005; font:bold italic 21px/1.15 Georgia,serif; text-align:center; overflow-wrap:anywhere; }
.desk-identity .desk-note { display:block; min-height:0; padding:16px 2px 0; font:bold 12px/1.45 'Courier New',monospace; text-align:center; overflow-wrap:anywhere; }
.room-logout { transition:opacity .25s ease,visibility .25s; }
.room-content:not([data-desk="true"])>.desk-profile { transform:translateX(calc(100% + 40px)); opacity:0; visibility:hidden; pointer-events:none; }
.room-content:not([data-desk="true"])>.room-logout { opacity:0; visibility:hidden; pointer-events:none; }
@media(max-width:600px) { .desk-profile { width:124px; top:24px; right:24px; }.desk-identity { padding:7px 7px 10px; }.desk-nameplate { max-height:65px; }.desk-name { font-size:16px; }.desk-identity .desk-note { font-size:10px; padding-top:10px; } }
@media(prefers-reduced-motion:reduce) { .desk-profile,.room-logout { transition:none; } }

@media(hover:hover) and (pointer:fine) {
  .desk-identity { transform-origin:100% 0; transition:transform .38s cubic-bezier(.2,.7,.3,1),box-shadow .38s ease; }
  .desk-profile:hover .desk-identity { transform:rotate(-2deg) scale(1.4); box-shadow:0 14px 32px #000b,inset 0 0 14px #56371d60; }
}
@media(prefers-reduced-motion:reduce) {
  .desk-identity { transition:none; }
  .desk-profile:hover .desk-identity { transform:rotate(-6deg); }
}

.document-person { position:relative; }
.document-person-polaroid { position:relative; overflow:visible; transform-origin:100% 0; }
.document-person-name { position:relative; z-index:1; width:134px; height:34px; margin:-10px -40px -2px -8px; transform:rotate(-5deg); font-size:17px; }
.document-person-nameplate { width:100%; height:34px; max-width:none; filter:drop-shadow(0 2px 1px #38231440); }
@media(hover:hover) and (pointer:fine) {
  .document-person-polaroid { transition:transform .3s ease,box-shadow .3s ease; }
  .document-person:hover { z-index:3; }
  .document-person:hover .document-person-polaroid { z-index:3; transform:translateX(6px) scale(1.85); box-shadow:0 8px 16px #38231455; }
}
@media(prefers-reduced-motion:reduce) {
  .document-person-polaroid { transition:none; }
  .document-person:hover .document-person-polaroid { transform:none; }
}

.document-person:last-child .document-person-polaroid { transform-origin:100% 100%; }

@media(hover:hover) and (pointer:fine) and (min-width:700px) {
  .document-folder-page:has(.document-person:hover) { overflow:visible; z-index:4; }
}
.document-achievement { display:inline-flex; width:56px; height:56px; color:#725027; transform:rotate(-5deg); filter:drop-shadow(0 1px 0 #f6e6b7); }
.document-achievement svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linejoin:round; stroke-linecap:round; }
.achievement-folder { fill:#a67c3820; }
.achievement-stacks rect { fill:#e0c995; }
.achievement-seal { fill:#cbb47d; stroke:#6c5934; }
.achievement-check { stroke:#4b5834; stroke-width:3; }

@media(hover:hover) and (pointer:fine) {
  .document-person-name { transition:transform .3s ease; }
  .document-person:hover .document-person-name { transform:translateX(-44px) rotate(-5deg); }
}
@media(prefers-reduced-motion:reduce) {
  .document-person-name { transition:none; }
  .document-person:hover .document-person-name { transform:rotate(-5deg); }
}

.entry-device-hint { display:none; margin:0 0 22px; padding:12px 0 12px 12px; border-left:2px solid #ad8b55; color:#c8b28c; font:13px/1.5 Georgia,serif; }
@media(max-width:699px), (max-height:500px) and (pointer:coarse) { .entry-device-hint { display:block; } }

.room-music { position:fixed; left:max(20px,env(safe-area-inset-left)); bottom:max(20px,env(safe-area-inset-bottom)); width:min(330px,calc(100vw - 40px)); z-index:40; color:#dfc28d; font:13px/1.4 'Courier New',monospace; text-align:left; }
.room-music[hidden],.music-drawer[hidden] { display:none; }
.music-bar { display:flex; align-items:center; padding:3px; border:1px solid #9c795078; background:#17130ef2; box-shadow:0 4px 20px #0008,inset 0 0 0 3px #a57b3010; }
.room-music button { appearance:none; border:0; border-radius:0; min-width:44px; min-height:44px; padding:8px; background:transparent; color:inherit; cursor:pointer; font:inherit; }
.room-music button:hover { background:#c29b5820; color:#ffe2a2; }
.room-music svg { display:block; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linejoin:round; stroke-linecap:round; margin:auto; }
.room-music button:focus-visible,.room-music input:focus-visible { outline:2px solid #e7bc73; outline-offset:2px; }
.room-music .music-track-toggle { flex:1; min-width:0; text-align:left; padding:5px 8px; }
.music-track-toggle small { display:block; color:#a18c68; font-size:9px; line-height:1.6; }.music-track-toggle span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.music-drawer { border:1px solid #8c6e47; border-bottom:0; background:#19150ff5; padding:10px 14px 12px; box-shadow:0 -8px 30px #0006; }
.music-drawer header { display:flex; justify-content:space-between; align-items:center; color:#c2a87b; border-bottom:1px solid #8c6e4740; margin-bottom:12px; font-size:12px; }.music-drawer header button { font-size:22px; margin-right:-8px; }
.music-seek-label { display:grid; gap:9px; color:#a18c68; font-size:10px; }
.room-music input[type=range] { width:100%; min-width:0; height:20px; margin:0; padding:0; accent-color:#b8955a; cursor:pointer; }
.music-time { display:flex; justify-content:space-between; font-size:10px; color:#ac9773; margin:3px 0 8px; }
.music-controls { display:flex; align-items:center; gap:1px; }.music-volume-label { flex:1; min-width:0; display:grid; gap:3px; color:#a18c68; font-size:10px; }
.music-track-list { list-style:none; padding:8px 0 0; margin:8px 0 0; border-top:1px solid #8c6e4740; max-height:min(240px,28dvh); overflow:auto; scrollbar-width:thin; scrollbar-color:#8c6e47 #19150f; }
.music-track-list button { display:block; width:100%; text-align:left; font-size:11px; padding:8px; border-left:2px solid transparent; }.music-track-list button[aria-current=true] { color:#f5d28f; border-left-color:#b8955a; background:#c29b5815; }
.music-status { padding:7px 10px; margin:0; background:#17130ef2; font-size:11px; }.music-status:empty { display:none; }
@media(max-width:600px) { .room-music { left:12px; bottom:max(12px,env(safe-area-inset-bottom)); width:min(230px,calc(100vw - 140px)); }.room-music:has(.music-drawer:not([hidden])) { width:calc(100vw - 24px); }.music-drawer { max-height:65dvh; overflow:auto; }.scene-page:has(.poster-workspace[data-selecting]) .room-music,.scene-page:has(.poster-workspace[data-dragging]) .room-music { bottom:190px; } }

.archive-board { display:flex; flex-direction:column; height:580px; min-height:0; gap:10px; }
.archive-board .folder-sheet-title { flex:none; margin-bottom:0; }
.archive-message-list { flex:1; min-height:70px; overflow:auto; scrollbar-width:thin; scrollbar-color:#8b745080 transparent; list-style:none; padding:0 6px 0 0; margin:0; }
.archive-message { display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; padding:12px 0; border-bottom:1px solid #94764f38; }
.archive-message-avatar { width:42px; height:50px; box-sizing:border-box; padding:2px; display:grid; place-items:center; background:#c3ac85; box-shadow:1px 2px 3px #4a351d30; color:#675035; font:24px Georgia,serif; }
.archive-message-avatar img { width:100%; height:100%; min-height:0; object-fit:cover; }
.archive-message header { display:flex; align-items:baseline; justify-content:space-between; gap:10px; }.archive-message strong { font:bold 15px/1.2 Georgia,serif; overflow-wrap:anywhere; }.archive-message time { flex:none; color:#80694e; font:10px 'Courier New',monospace; }
.archive-message p { margin:7px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; font:15px/1.45 Georgia,serif; color:#443324; }
.archive-message-empty { margin:0; color:#7c654b; font:italic 15px/1.5 Georgia,serif; }.archive-message-empty[hidden] { display:none; }
.archive-message-form { flex:none; margin:0; padding-top:10px; border-top:1px solid #94764f55; }
.archive-message-form label { display:grid; gap:6px; color:#60472e; font:13px/1.3 Georgia,serif; }
.archive-message-form textarea { width:100%; box-sizing:border-box; min-height:76px; max-height:130px; resize:vertical; border:1px solid #9c805d88; border-radius:0; background:#f1e2bd66; color:#392c20; padding:9px; font:15px/1.4 Georgia,serif; }
.archive-message-form>div { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; }.archive-message-form>div>span { font:10px/1.3 'Courier New',monospace; color:#80694e; }
.archive-message-form button,.archive-earlier { min-height:44px; padding:8px 12px; border:1px solid #90704b; background:#d2b78a77; color:#4a3320; font:12px 'Courier New',monospace; cursor:pointer; }.archive-message-form button:disabled { opacity:.5; cursor:wait; }.archive-earlier { align-self:center; min-height:32px; font-size:11px; }.archive-earlier[hidden] { display:none; }
.archive-message-status { margin:5px 0 0; color:#7d3929; font:12px/1.35 Georgia,serif; }.archive-message-status:empty { display:none; }
.archive-board :focus-visible { outline:2px solid #87602d; outline-offset:2px; }
@media(max-width:600px) { .scene-page:has(.archive-message-form textarea:focus) .room-music { visibility:hidden; } }
