:root{color-scheme:dark;--bg:#171b1a;--panel:#202724;--line:#39413b;--ink:#f2ead7;--muted:#b1b7a8;--amber:#efbc76}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 26% 0,#28322b 0,transparent 55%),var(--bg);color:var(--ink);font:15px/1.6 system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.shell{width:min(1110px,calc(100% - 40px));margin:auto}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:22px 0}.brand{color:var(--amber);font-size:13px;letter-spacing:.18em}.quiet{font-size:12px;color:var(--muted)}.hero{padding:39px 0 26px}.hero h1{font-family:Georgia,"Songti SC",serif;font-size:clamp(38px,6vw,66px);letter-spacing:.08em;line-height:1.14;margin:6px 0 12px;font-weight:600}.hero p{color:var(--muted);margin:0}.layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);gap:16px}.panel{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:19px}.heading{display:flex;gap:10px;justify-content:space-between;align-items:center}.heading h2,.side h2{font-size:17px;margin:0}.switch{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px}.window{height:112px;margin:15px 0;background:linear-gradient(90deg,transparent 49.7%,#424b48 50%,transparent 50.3%),linear-gradient(180deg,#19272d,#2f4448 85%);border:5px solid #424b48;border-bottom-width:8px;border-radius:9px;position:relative;overflow:hidden}.moon{position:absolute;left:72%;top:15px;width:22px;height:22px;border-radius:100%;background:#f6d3a2;box-shadow:0 0 24px #e5b07b75}.city{position:absolute;inset:auto 0 0;height:62%;display:flex;align-items:end;gap:5px;padding:0 8px}.city i{flex:1;background:#202e31;border-radius:2px 2px 0 0;position:relative}.city i:before{content:"";position:absolute;inset:5px 4px;background:radial-gradient(circle,#ddab6c 1px,transparent 1.8px) 0 0/9px 9px;opacity:.55}.desks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.desk{position:relative;display:grid;place-content:center;min-height:84px;border:1px solid #485249;border-radius:8px;background:#2c3730;color:#d2d9cb;text-align:center;line-height:1.3;padding:4px}.desk:not(:disabled):hover{border-color:var(--amber)}.desk:disabled{cursor:default}.desk[aria-pressed=true]{outline:2px solid #f0be7c;outline-offset:-2px}.lamp{display:block;margin:0 auto 7px;width:27px;height:15px;background:#52615a;clip-path:polygon(22% 0,78% 0,100% 85%,100% 100%,0 100%,0 85%)}.lit{background:radial-gradient(ellipse at 50% 31%,#84613d 0,#574331 36%,#333b30 81%);color:#fff1d6;border-color:#886747}.lit .lamp{background:#ffe2a5}.desk small{font-size:11px;color:inherit}.legend{font-size:12px;color:var(--muted);margin:12px 0 0}.side{display:flex;flex-direction:column;justify-content:center}.kicker{font-size:11px;color:var(--amber);letter-spacing:.15em;margin:0 0 7px}.timer{font-size:clamp(47px,7vw,68px);line-height:1.1;font-variant-numeric:tabular-nums;font-weight:300;margin:8px 0 14px}.side p{margin:6px 0 12px;color:var(--muted);font-size:13px}label.field{display:block;color:var(--muted);font-size:13px;margin:10px 0}input[type=text],select,textarea{width:100%;display:block;margin-top:4px;padding:9px 10px;border-radius:8px;border:1px solid #4d594f;background:#181e1b;color:var(--ink)}textarea{resize:vertical;min-height:65px}.actions{display:flex;gap:8px;margin-top:10px}.actions button{flex:1;border-radius:8px;padding:10px;border:1px solid #566156;background:#28312b;color:var(--ink)}.actions .primary{background:var(--amber);color:#21180d;border-color:var(--amber);font-weight:650}.actions button:disabled{opacity:.5;cursor:default}footer{padding:16px 0 26px;font-size:12px;color:var(--muted)}#last{margin-top:8px;overflow-wrap:anywhere;white-space:pre-wrap}.error{color:#ffc4ad!important}@media(max-width:700px){.layout{grid-template-columns:1fr}.hero{padding-top:27px}.shell{width:calc(100% - 26px)}.panel{padding:13px}.desk{min-height:70px}.window{height:86px}}
.scene{display:block;width:100%;height:auto;touch-action:none;background:radial-gradient(ellipse at 50% 50%,#30392f,#19211e 73%);border:1px solid var(--line);border-radius:11px;margin:12px 0 8px;cursor:pointer}.desks{grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.desk{min-height:44px}.desk .lamp{display:none}.desk small{font-size:9px}.desk span{font-size:12px}@media(max-width:450px){.desks{grid-template-columns:repeat(4,minmax(0,1fr))}}[hidden]{display:none!important}.camera-layout{grid-template-columns:minmax(0,2.75fr) minmax(250px,1fr)}@media(max-width:760px){.camera-layout{grid-template-columns:1fr}}.audio{background:#29352e;color:#f2d2a4;border:1px solid #596452;border-radius:99px;padding:7px 13px}.audio[aria-pressed=true]{background:#ead0a0;color:#28201a}
body{overflow:hidden}.shell{width:100%;height:100dvh;isolation:isolate}.camera-layout{display:block}.scene{position:fixed;inset:0;width:100%;height:100%;z-index:-1;margin:0;border:0;border-radius:0;outline-offset:-3px}.hero,footer,.legend,.heading h2{display:none}
header{position:absolute;top:0;left:0;right:0;z-index:2;padding:12px 16px;border:0;background:linear-gradient(#101917d9,transparent);gap:8px;pointer-events:none}.toolbar{display:flex;gap:6px;align-items:center;pointer-events:auto}.toolbar button,.seat-picker summary{font-size:12px;line-height:1.25;padding:6px 9px;border:1px solid #8b9b80a1;border-radius:7px;background:#1c2824ed;color:#f3e3c5;cursor:pointer}.brand{font-size:11px}.toolbar .audio[aria-pressed=true]{background:#e8c998;color:#241c13}
.camera-layout>section:first-child{padding:0;border:0;background:none}.heading{display:none}.seat-picker{position:absolute;left:14px;bottom:14px;z-index:2}.seat-picker[open]{background:#18231fee;border:1px solid #55634f;border-radius:9px;padding:7px;max-width:calc(100vw - 28px)}.seat-picker summary{width:max-content}.desks{margin-top:6px;grid-template-columns:repeat(4,minmax(38px,1fr))}.desk{min-height:32px;min-width:38px;padding:2px 4px}.desk small{font-size:8px}.seat-picker .desks{max-height:38dvh;overflow:auto}
.side{position:absolute;right:14px;bottom:14px;width:min(258px,calc(100vw - 28px));z-index:1;padding:10px 12px;background:#19231fed;border-radius:11px;max-height:calc(100dvh - 76px);overflow:auto}.side[data-idle=true]{width:min(225px,calc(100vw - 28px));bottom:51px}.side[data-idle=true] .timer,.side[data-idle=true] #arrival,.side[data-idle=true] .kicker,.side[data-idle=true] h2{display:none}.side h2{font-size:14px}.side p{font-size:11px;margin:5px 0}.kicker{margin:0;font-size:10px}.timer{font-size:32px;margin:4px 0}.actions{gap:5px;margin-top:7px}.actions button{flex:0 1 auto;padding:5px 9px;font-size:12px}.side label.field{font-size:11px;margin:6px 0}.side input,.side select,.side textarea{font-size:12px;padding:5px 7px}.side textarea{min-height:43px}.viewport-status{position:absolute;top:51px;right:15px;margin:0;color:#f5dfb9;background:#18231fce;border-radius:5px;padding:2px 6px;font-size:11px;pointer-events:none}
.loading{position:fixed;inset:0;z-index:5;display:grid;place-items:center;text-align:center;background:radial-gradient(ellipse at 50% 58%,#405044,#15211f 60%,#10181d);color:#f4dfbb;padding:22px}.loading strong{display:block;font:clamp(32px,7vw,59px) Georgia,serif;letter-spacing:.09em}.loading p{color:#c7c7ad}.loading .moon-mark{display:block;width:30px;height:30px;border-radius:50%;background:#f5d9a9;box-shadow:0 0 28px #ebbc7d80;margin:0 auto 22px}.loading button{background:#e7c595;border:0;border-radius:7px;color:#242016;padding:7px 13px}.loading button:disabled{opacity:.55}.loading small{display:block;margin:8px 0;color:#bcbea8}
@media(max-width:540px){header{padding:9px 8px}.brand{font-size:9px;letter-spacing:.07em}.toolbar{gap:4px}.toolbar button{font-size:10px;padding:5px 6px}.side{right:8px;bottom:8px;width:min(208px,calc(100vw - 16px))}.seat-picker{left:8px;bottom:8px}.viewport-status{right:8px;top:42px}}
.last-note{position:absolute;top:52px;left:14px;max-width:min(240px,60vw);padding:4px 8px;border-radius:6px;background:#19231fde;color:#ded3b9;font-size:11px;pointer-events:none}.side[data-idle=true]{pointer-events:none}
.entry-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}
.entry-actions #enter{background:#24332d;color:#f4dfbb;border:1px solid #65745e}
.side[data-idle=true],.last-note{pointer-events:auto}
.last-note summary{cursor:pointer}
.last-note p{margin:5px 0 2px;overflow-wrap:anywhere}
#runningGoal{overflow-wrap:anywhere;white-space:pre-wrap}
#roundSummary:empty{display:none}
@media(max-width:600px){
  .seat-picker{top:51px;bottom:auto}
  .seat-picker[open]{max-height:calc(100dvh - 66px)}
  .seat-picker .desks{max-height:30dvh}
  .desk,.seat-picker summary,.actions button{min-height:44px}
  .seat-picker summary{align-content:center}
  .side input,.side select,.side textarea{font-size:16px}
  .last-note{left:auto;right:8px;top:51px;max-width:42vw}
}
.audio-status{position:absolute;top:49px;right:12px;z-index:3;margin:0;padding:6px 10px;border-radius:7px;background:#19231fed;color:#f3dfb9;font-size:12px}
.presence-status{margin:7px 2px;color:#e3d5b8;font-size:12px}
@media(max-width:600px){
  header{padding:max(6px,env(safe-area-inset-top)) 8px 4px}
  .toolbar button,.entry-actions button{min-height:44px}
  .toolbar button{font-size:12px}
  .seat-picker,.last-note{top:calc(max(6px,env(safe-area-inset-top)) + 49px)}
  .side,.side[data-idle=true]{right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:min(350px,calc(100% - 16px));max-height:46dvh}
  .side p,.side label.field{font-size:13px}
  .side .actions{flex-wrap:wrap}
  .audio-status{top:calc(max(6px,env(safe-area-inset-top)) + 48px);max-width:55vw}
}
.room-live{position:absolute;top:49px;left:14px;z-index:1;margin:0;padding:5px 8px;border-radius:6px;background:#19231fed;color:#f1dfba;font-size:12px;pointer-events:none}
.last-note{top:82px}
.desks h3{grid-column:1/-1;margin:8px 0 2px;font-size:12px;color:#e3d5b8}
@media(max-width:600px){
  .room-live{top:calc(max(6px,env(safe-area-inset-top)) + 47px);left:8px}
  .seat-picker,.last-note{top:calc(max(6px,env(safe-area-inset-top)) + 77px)}
}

/* The scene carries the atmosphere. Keep controls quiet and readable over it. */
header{padding:14px 20px;background:linear-gradient(180deg,#141c1bea,transparent)}
.brand{display:grid;gap:1px;letter-spacing:0}
.brand-title{font:600 16px/1.3 Georgia,"Songti SC",serif;color:#f3e7d1;letter-spacing:.10em}
#koreaTime{font-size:11px;color:#c8c6b2;font-variant-numeric:tabular-nums}
.toolbar{gap:7px}
.toolbar button,.seat-picker summary{background:#1a2323ed;border-color:#66706b;color:#f0e6d3;border-radius:9px;padding:8px 11px}
.toolbar button:hover,.seat-picker summary:hover,.actions button:hover{border-color:#c1a77f}
.room-live{top:67px;left:20px;background:#182220e8;color:#dfded0;border:1px solid #62706a66}
.last-note{top:103px}
.side{width:min(302px,calc(100vw - 28px));padding:15px 16px;background:#192322f5;border-color:#6a756970;box-shadow:0 10px 34px #1016196b}
.side h2{font-size:16px;font-weight:600;color:#f6e9d1}
.side .kicker{color:#c4b799}
.side .timer{font-size:39px;line-height:1.15;letter-spacing:.035em;font-variant-numeric:tabular-nums}
.side p,.side label.field{line-height:1.55}
.side .actions button{padding:7px 10px}
.loading{background:radial-gradient(ellipse at 50% 42%,#424c48,#253332 54%,#141e24 95%)}
.loading strong{letter-spacing:.11em}
.entry-korean{display:block;color:#c9b391;font-size:13px;letter-spacing:.21em;margin-bottom:5px}
.loading .moon-mark{width:28px;height:28px;background:#edd4a6;box-shadow:0 0 32px #efc78161;margin-bottom:17px}
.loading .entry-actions button{padding:10px 16px}
@media(max-width:600px){
  header{padding:max(7px,env(safe-area-inset-top)) 8px 5px}
  .brand-title{font-size:14px}
  #koreaTime{font-size:10px}
  .toolbar{gap:4px}
  .toolbar button{padding:5px 7px;font-size:11px}
  .room-live{top:calc(max(7px,env(safe-area-inset-top)) + 50px);left:8px}
  .seat-picker,.last-note{top:calc(max(7px,env(safe-area-inset-top)) + 82px)}
  .side{padding:11px 13px}
}
.loading{overflow:auto}
.avatar-setup{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:8px 12px;width:min(420px,86vw);margin:13px auto;padding:9px 12px;border:1px solid #87908766;border-radius:12px;text-align:left;background:#192725bf}
.avatar-setup legend{padding:0 6px;color:#f0dfc3;font-size:13px}
.avatar-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.avatar-fields label{display:grid;gap:2px;color:#dbd4c1;font-size:11px}
.avatar-fields select{width:100%;min-height:33px;padding:4px;border:1px solid #687570;border-radius:6px;background:#283632;color:#f2e6d0}
#avatarPreview{align-self:center;width:96px;height:96px;background:#33423d;border-radius:9px}
.loading #randomAvatar{justify-self:start;padding:4px 8px;background:#344540;color:#f1e4cf;font-size:12px}
@media(max-width:600px){.avatar-fields select{min-height:38px;font-size:16px}}
html[lang="ko"] .entry-korean{display:none}
.loading h1{display:block;font:clamp(32px,7vw,59px) Georgia,"Songti SC",serif;letter-spacing:.11em;margin:0;color:#f4dfbb}
.loading #entryLanguage{display:inline-flex;align-items:center;padding:7px 13px;border:1px solid #81917d;border-radius:7px;color:#f1e4cf;text-decoration:none}
.loading #entryLanguage:focus-visible{outline:2px solid var(--amber);outline-offset:3px}

@media(max-width:600px){.shell{height:100svh}.scene{height:100svh}}
button,summary,.scene{-webkit-tap-highlight-color:transparent}

.side,.side[data-idle=true]{
  left:50%;right:auto;bottom:max(12px,env(safe-area-inset-bottom));
  transform:translateX(-50%);width:max-content;max-width:min(360px,calc(100% - 24px));
  padding:8px 12px;background:#14201dcc;border-color:#c1d1b633;
  box-shadow:none;
}
.side[data-idle=true] #walkHint{display:none}
.side .timer{font-size:30px}
.side .actions{justify-content:center}
@media(max-width:600px){.side .actions button{min-height:44px}}
