:root{--bg: #0a0908;--surface: rgba(18, 15, 13, .72);--surface-solid: #17130f;--surface-2: #211b16;--line: rgba(255, 240, 220, .09);--line-2: rgba(255, 240, 220, .16);--ink: #f3ebdd;--ink-2: #b8ad9c;--ink-3: #7f7566;--brass: #d9b46c;--brass-2: #a8833f;--brass-ink: #1c1409;--ok: #86d18a;--uv: #a97bff;--danger: #ff7a6b;--r-sm: 10px;--r: 14px;--r-lg: 20px;--shadow: 0 10px 30px rgba(0, 0, 0, .45);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--serif: "Nanum Myeongjo", serif;--sans: "Pretendard Variable", Pretendard, -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);overflow:hidden;overscroll-behavior:none}body{font-family:var(--sans);font-size:15px;letter-spacing:-.01em;user-select:none;-webkit-user-select:none;touch-action:none;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}input{font:inherit}.hidden,[hidden]{display:none!important}.ico{display:block;flex:none}#app{position:fixed;top:0;right:0;bottom:0;left:0}#scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}#vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.45) 85%,rgba(0,0,0,.8) 100%)}#grain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.045}#fade{position:absolute;top:0;right:0;bottom:0;left:0;background:#000;pointer-events:none;opacity:1;transition:opacity 1.4s ease;z-index:25}#fade.out{opacity:0}#fade.gone{display:none}#fade.white{background:#fff6e6}.touch #grain{display:none}.touch #vignette{background:radial-gradient(ellipse at center,transparent 62%,rgba(0,0,0,.3) 90%,rgba(0,0,0,.55) 100%)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 20px;border-radius:var(--r);font-weight:650;font-size:15.5px;transition:transform .12s,background .2s,opacity .2s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-lg{width:100%;height:56px;font-size:17px;border-radius:16px}.btn-primary{color:var(--brass-ink);background:linear-gradient(180deg,#e6c47e,var(--brass) 55%,#c49a4f);box-shadow:0 1px #ffffff59 inset,0 8px 24px #c9a35b40}.btn-secondary{color:var(--ink);background:#ffffff0f;box-shadow:0 0 0 1px var(--line-2) inset}.btn-ghost{height:40px;padding:0 14px;font-size:14px;color:var(--ink);background:#ffffff0f;border-radius:999px}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:44px;height:44px;border-radius:999px;color:var(--ink);background:var(--surface);box-shadow:0 0 0 1px var(--line) inset;transition:background .2s,color .2s,transform .12s}.icon-btn:active{transform:scale(.94)}.icon-btn.labeled{width:auto;padding:0 16px 0 13px}.icon-btn .btn-txt{font-size:14px;font-weight:600}.pill{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 18px 0 14px;border-radius:999px;font-weight:600;color:var(--ink);background:var(--surface-solid);box-shadow:0 0 0 1px var(--line-2) inset,var(--shadow)}#hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#hud>*{pointer-events:auto}#topbar{position:absolute;left:0;right:0;top:0;padding:calc(14px + var(--safe-top)) 16px 0;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}#topbar>*{pointer-events:auto}.hud-left{display:flex;flex-direction:column;gap:10px;pointer-events:none!important}#timer-box{display:flex;flex-direction:column;line-height:1;text-shadow:0 2px 10px rgba(0,0,0,.8)}#timer-box .label{font-size:11.5px;font-weight:600;letter-spacing:.18em;color:var(--ink-2);margin-bottom:4px}#timer{font-weight:700;font-size:30px;font-variant-numeric:tabular-nums;letter-spacing:.01em}#timer.low{color:var(--danger)}#top-actions{display:flex;gap:8px}#btn-mic.on{color:#0e1a0f;background:var(--ok);box-shadow:none}#hud-players{display:flex;flex-direction:column;gap:6px}#hud-players span{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink);text-shadow:0 1px 6px rgba(0,0,0,.9)}#hud-players span:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c, var(--brass));box-shadow:0 0 0 2px #0006;transition:box-shadow .15s}#hud-players span.talk:before{box-shadow:0 0 0 3px #86d18ae6,0 0 12px #86d18acc}#toast{position:absolute;left:50%;bottom:calc(104px + var(--safe-bottom));transform:translate(-50%,6px);width:max-content;max-width:min(620px,calc(100% - 40px));padding:9px 16px;text-align:center;font-size:16px;font-weight:500;line-height:1.55;color:#fff;background:#0000008c;border-radius:10px;text-shadow:0 1px 2px rgba(0,0,0,.8);opacity:0;pointer-events:none!important;transition:opacity .25s,transform .25s}#toast.show{opacity:1;transform:translate(-50%)}.touch #toast{bottom:calc(184px + var(--safe-bottom));font-size:14.5px}#crosshair{position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#ffffffe6;box-shadow:0 0 0 1px #00000080;pointer-events:none!important;transition:all .12s}#crosshair.on{width:20px;height:20px;margin:-10px 0 0 -10px;background:transparent;box-shadow:0 0 0 1.5px #fffffff2,0 0 0 3px #00000040}#aim-label{position:absolute;left:50%;top:calc(50% + 20px);transform:translate(-50%);padding:4px 10px;font-size:12.5px;font-weight:600;color:#fff;background:#0000008c;border-radius:999px;white-space:nowrap;pointer-events:none!important;opacity:0;transition:opacity .12s}#aim-label.show{opacity:1}#hover-label{position:absolute;padding:4px 10px;font-size:12.5px;font-weight:600;background:#000000a6;border-radius:999px;transform:translate(14px,14px);pointer-events:none;opacity:0;transition:opacity .12s;white-space:nowrap}#hover-label.show{opacity:1}#btn-act{position:absolute;right:16px;bottom:calc(34px + var(--safe-bottom));display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 20px 0 16px;border-radius:999px;font-size:15px;font-weight:700;color:var(--brass-ink);background:linear-gradient(180deg,#e6c47e,var(--brass));box-shadow:0 1px #ffffff59 inset,var(--shadow);white-space:nowrap}#btn-act:active{transform:scale(.96)}#btn-back{position:absolute;right:16px;bottom:calc(44px + var(--safe-bottom))}.touch #btn-back{bottom:calc(36px + var(--safe-bottom));height:50px}#lock-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:6px;align-items:center;padding:22px 30px;border-radius:var(--r-lg);background:var(--surface-solid);box-shadow:0 0 0 1px var(--line-2) inset,var(--shadow);color:var(--ink)}#lock-hint b{font-size:17px}#lock-hint small{font-size:12.5px;color:var(--ink-2)}#help{position:absolute;right:16px;bottom:calc(16px + var(--safe-bottom));font-size:11.5px;color:var(--ink-3);pointer-events:none!important;text-shadow:0 1px 2px #000}@media (max-width: 1100px){#help{display:none}}#joystick{position:absolute;left:26px;bottom:calc(40px + var(--safe-bottom));width:116px;height:116px;border-radius:50%;background:radial-gradient(circle,#ffffff0d,#ffffff05 70%);box-shadow:0 0 0 1.5px #ffffff24 inset;display:none;pointer-events:none!important;opacity:.6;transition:opacity .15s}#joystick.active{opacity:1;transition:none}#stick{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#f3ebdd47;box-shadow:0 0 0 1px #ffffff59 inset,0 4px 14px #0006}.touch #joystick{display:block}#inventory{position:absolute;left:50%;transform:translate(-50%);bottom:calc(18px + var(--safe-bottom));display:flex;gap:8px;padding:8px;border-radius:18px;background:var(--surface);box-shadow:0 0 0 1px var(--line) inset}.inv-slots{display:flex;gap:8px}.slot{position:relative;width:58px;height:58px;border-radius:12px;overflow:hidden;background:#00000059;box-shadow:0 0 0 1px var(--line) inset;display:grid;place-items:center}.slot img{width:100%;height:100%;object-fit:cover}.slot .tag{position:absolute;left:0;right:0;bottom:0;padding:10px 0 3px;font-size:11px;font-weight:600;text-align:center;background:linear-gradient(transparent,#000000bf)}.slot .num{position:absolute;left:5px;top:4px;font-size:10px;font-weight:700;color:var(--ink-3)}.slot.active{box-shadow:0 0 0 2px var(--uv) inset,0 0 16px #a97bff8c}.slot.new{animation:pop .5s ease}@keyframes pop{0%{transform:scale(.5)}60%{transform:scale(1.12)}to{transform:scale(1)}}.inv-toggle{display:none}.touch{--inv-top: 30vh}@media (orientation: landscape){.touch{--inv-top: calc(62px + var(--safe-top))}}.touch #inventory{left:auto;right:12px;bottom:auto;top:var(--inv-top);transform:none;flex-direction:column;align-items:center;padding:5px;gap:6px;border-radius:999px}.touch .inv-slots{flex-direction:column;gap:6px;max-height:calc(100vh - var(--inv-top) - 175px - var(--safe-bottom));min-height:44px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:none;padding-left:110px;margin-left:-110px;pointer-events:none}.touch .inv-slots::-webkit-scrollbar{display:none}.touch .slot{pointer-events:auto;overflow:visible;flex:none}.touch .slot img{border-radius:50%}.touch .slot:disabled{pointer-events:none}.touch #inventory.collapsed{padding:0;background:none;box-shadow:none}.touch #inventory.collapsed .inv-slots{display:none}.touch .slot{width:44px;height:44px;border-radius:50%}.touch .slot .num{display:none}.touch .slot .tag{left:auto;bottom:auto;right:calc(100% + 8px);top:50%;transform:translateY(-50%);padding:3px 9px;border-radius:999px;font-size:12px;white-space:nowrap;background:#000000b8;pointer-events:none}.touch .inv-toggle{display:inline-flex}.inv-toggle .count,#btn-notes .count{position:absolute;right:-2px;top:-2px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--brass);color:var(--brass-ink);font-size:10.5px;font-weight:800;line-height:17px;text-align:center}.inv-toggle.has-new,#btn-notes.has-new{animation:bagPulse 1.4s ease-in-out infinite}.inv-toggle.uv-on{color:var(--uv);box-shadow:0 0 0 1.5px var(--uv) inset,0 0 14px #a97bff99}@keyframes bagPulse{0%,to{box-shadow:0 0 0 1px var(--line) inset,0 0 #d9b46c8c}50%{box-shadow:0 0 0 1px var(--line) inset,0 0 0 8px #d9b46c00}}#chat-log{position:absolute;left:16px;bottom:calc(162px + var(--safe-bottom));width:min(380px,72vw);display:flex;flex-direction:column;gap:4px;pointer-events:none!important}#chat-log .msg{align-self:flex-start;max-width:100%;padding:6px 11px;font-size:13.5px;line-height:1.45;border-radius:12px;background:#00000080;text-shadow:0 1px 2px rgba(0,0,0,.6);word-break:break-word;transition:opacity .6s}#chat-log .msg b{margin-right:7px;font-weight:700}#chat-log .msg.old{opacity:0}#chat-log.open .msg.old{opacity:.8}#chat-box{position:absolute;left:16px;right:16px;bottom:calc(18px + var(--safe-bottom));display:flex;gap:8px;max-width:520px;z-index:15;padding:6px;border-radius:999px;background:var(--surface-solid);box-shadow:0 0 0 1px var(--line-2) inset,var(--shadow)}#chat-box input{flex:1;min-width:0;padding:0 14px;font-size:16px;color:var(--ink);background:transparent;border:0;outline:none;user-select:text;-webkit-user-select:text}#chat-box .icon-btn{width:40px;height:40px;box-shadow:none;background:#ffffff0f}#chat-box .icon-btn.send{color:var(--brass-ink);background:var(--brass)}.touch #chat-log{bottom:calc(238px + var(--safe-bottom))}.touch #chat-box{top:calc(68px + var(--safe-top));bottom:auto}.touch #chat-log.open{top:calc(126px + var(--safe-top));bottom:auto}.touch .btn-txt{display:none}.touch .icon-btn.labeled{width:44px;padding:0}.touch #top-actions{gap:6px}@media (max-width: 380px){.touch .icon-btn{width:40px;height:40px}.touch .icon-btn.labeled{width:40px}}#modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:16px;background:#0000008c;animation:fadeIn .18s ease}#modal-card{position:relative;width:100%;max-width:420px;max-height:calc(100% - 24px);overflow-y:auto;padding:24px 20px 20px;border-radius:24px;background:var(--surface-solid);box-shadow:0 0 0 1px var(--line) inset,0 30px 80px #0009;animation:rise .24s cubic-bezier(.2,.8,.2,1)}.touch #modal{place-items:end center;padding:0}.touch #modal-card{max-width:520px;border-radius:24px 24px 0 0;padding-bottom:calc(22px + var(--safe-bottom))}@keyframes fadeIn{0%{opacity:0}}@keyframes rise{0%{transform:translateY(24px);opacity:0}}.modal-title{margin:0 44px 16px;text-align:center;font-family:var(--serif);font-size:19px;font-weight:800;color:var(--brass)}.modal-close{position:absolute;z-index:2;right:10px;top:10px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--ink-2);background:#ffffff0f}.btn-row{display:flex;gap:8px;justify-content:center;margin-top:18px}.btn-row .btn{flex:1}.primary{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 22px;border-radius:var(--r);font-weight:700;color:var(--brass-ink);background:linear-gradient(180deg,#e6c47e,var(--brass))}.ghost{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 22px;border-radius:var(--r);font-weight:600;color:var(--ink);background:#ffffff12}.btn-row .primary,.btn-row .ghost{flex:1}.paper{margin-top:8px;padding:26px 24px 22px;border-radius:6px;color:#2b2116;background:#ebdfc4;font-family:Nanum Pen Script,cursive;font-size:27px;line-height:1.35;box-shadow:inset 0 0 40px #6e501e4d,0 12px 30px #0006;transform:rotate(-1deg)}.paper .sign{text-align:right;margin-top:10px}.keypad-display{margin-bottom:14px;padding:12px 0 10px .4em;text-align:center;font-family:ui-monospace,Consolas,monospace;font-size:34px;letter-spacing:.4em;color:#73ffa3;background:#08140c;border-radius:12px;box-shadow:0 0 0 1px #1d3a26 inset;text-shadow:0 0 10px rgba(115,255,163,.55)}.keypad-display.err{color:#ff7a6b;background:#1a0a08;box-shadow:0 0 0 1px #4a1a15 inset;text-shadow:0 0 10px rgba(255,122,107,.55)}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.keypad button{height:58px;border-radius:14px;font-size:22px;font-weight:600;background:var(--surface-2);box-shadow:0 0 0 1px var(--line) inset,0 3px #0b0907}.keypad button:active{transform:translateY(2px);box-shadow:0 0 0 1px var(--line) inset,0 1px #0b0907}.keypad button.ok{font-size:16px;color:#0e1a0f;background:var(--ok)}.shake{animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.dials{display:flex;justify-content:center;gap:14px}.dial{display:flex;flex-direction:column;align-items:center;gap:8px}.dial button{width:66px;height:42px;border-radius:12px;font-size:15px;background:#ffffff14}.dial .num{width:66px;height:78px;display:grid;place-items:center;font-family:var(--serif);font-weight:800;font-size:44px;color:#f1e7d0;border-radius:12px;background:linear-gradient(#0d0d0d,#2a2a2a 50%,#0d0d0d);box-shadow:0 0 0 1px #4d4d4d inset}.safe-face{padding:18px;border-radius:16px;background:linear-gradient(145deg,#3a3d42,#202226);box-shadow:0 0 0 1px #50545a inset}.setting{display:block;margin:0 0 18px;font-size:15px}.setting b{float:right;color:var(--brass)}.setting input[type=range]{width:100%;margin-top:12px;accent-color:var(--brass);height:28px}.setting.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.setting.row input{width:22px;height:22px;accent-color:var(--brass)}.setting select{height:38px;padding:0 10px;color:var(--ink);background:var(--surface-2);border:0;border-radius:10px;box-shadow:0 0 0 1px var(--line-2) inset;font-size:14.5px}.hint-text{font-size:16px;line-height:1.75;text-align:center}.hint-meta{margin-top:10px;font-size:12.5px;color:var(--ink-3);text-align:center}.screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.32em;color:var(--brass)}.controls{margin:18px 0 0;font-size:12.5px;line-height:1.7;color:var(--ink-3);text-align:center}#home{display:flex;align-items:flex-end;justify-content:center;overflow-y:auto;transition:opacity .6s ease}#home.leaving{opacity:0;pointer-events:none}.home-shade{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#0a090800 20%,#0a09088c 52%,#0a0908f5 82%)}.home-shade{transition:background .4s}#home.deep .home-shade{background:linear-gradient(180deg,#0a09088c,#0a0908eb 40%)}.home-panel{position:relative;width:100%;max-width:440px;padding:24px 20px calc(22px + var(--safe-bottom))}.brand{margin-bottom:26px}.logo{margin:8px 0;font-family:var(--serif);font-weight:800;font-size:56px;letter-spacing:.04em;line-height:1.05;text-shadow:0 4px 30px rgba(0,0,0,.6)}.tagline{margin:0;color:var(--ink-2);font-size:14.5px}.menu{display:flex;flex-direction:column;gap:10px}@media (min-width: 900px){#home{align-items:center;justify-content:flex-start;padding-left:7vw}.home-shade{background:linear-gradient(90deg,#0a0908f7,#0a0908d9 32%,#0a090826 62%,#0a090800)}.home-panel{padding:40px 0}#home.deep .home-shade{background:linear-gradient(90deg,#0a0908f7,#0a0908eb 40%,#0a090859 75%)}.logo{font-size:68px}}.view-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.view-head h2{margin:0;font-family:var(--serif);font-size:22px;font-weight:800}.field{display:block;margin:0 0 14px}.field>span,.field-label{display:block;margin-bottom:7px;font-size:12.5px;font-weight:600;color:var(--ink-2)}.field small{color:var(--ink-3);font-weight:500}.field input{width:100%;height:52px;padding:0 16px;font-size:16px;color:var(--ink);background:#ffffff0d;border:0;border-radius:var(--r);box-shadow:0 0 0 1px var(--line-2) inset;outline:none;user-select:text;-webkit-user-select:text;transition:box-shadow .15s}.field input:focus{box-shadow:0 0 0 1.5px var(--brass) inset}.field input::placeholder{color:var(--ink-3)}.code-input{font-family:ui-monospace,Consolas,monospace;font-size:26px!important;font-weight:700;letter-spacing:.4em;text-align:center;text-transform:uppercase}.form-error{min-height:20px;margin:0 0 10px;font-size:13.5px;color:var(--danger)}.note{margin:16px 0 0;font-size:12.5px;line-height:1.6;color:var(--ink-3);text-align:center}.option-list{display:flex;flex-direction:column;gap:10px}.option{display:flex;align-items:center;gap:14px;width:100%;padding:16px;text-align:left;border-radius:16px;background:#ffffff0d;box-shadow:0 0 0 1px var(--line) inset;transition:background .2s}.option:active{background:#ffffff17}.option-ico{width:46px;height:46px;display:grid;place-items:center;flex:none;border-radius:14px;color:var(--brass);background:#d9b46c1f}.option-txt{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.option-txt b{font-size:16px}.option-txt small{font-size:12.5px;color:var(--ink-2)}.chev{color:var(--ink-3)}.theme-list{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.theme-card{position:relative;display:block;width:100%;overflow:hidden;text-align:left;border-radius:18px;background:var(--surface-2);box-shadow:0 0 0 1px var(--line) inset;transition:transform .15s}.theme-card:active{transform:scale(.985)}.theme-art{height:132px;background:#2a1e14 center 40% / cover no-repeat}.theme-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 30%,rgba(23,19,15,.98) 74%)}.theme-study{background-image:url(/textures/painting_lq.webp)}.theme-lab{background:radial-gradient(circle at 30% 30%,#2c5552,#0b1414 70%)}.theme-train{background:radial-gradient(circle at 70% 30%,#3d3366,#0d0b16 70%)}.theme-info{position:relative;display:flex;flex-direction:column;gap:4px;margin-top:-48px;padding:0 16px 15px}.theme-info b{font-family:var(--serif);font-size:20px;font-weight:800}.theme-info small{font-size:13px;color:var(--ink-2)}.theme-meta{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.theme-meta span{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;font-size:11.5px;font-weight:600;color:var(--ink-2);background:#ffffff0f}.lvl{display:inline-flex;gap:2px}.lvl i{width:6px;height:10px;border-radius:2px;background:#ffffff2e}.lvl i.on{background:var(--brass)}.theme-card.locked{cursor:default}.theme-card.locked .theme-art,.theme-card.locked .theme-info{opacity:.45}.soon{position:absolute;right:12px;top:12px;height:24px;padding:0 10px;display:inline-flex;align-items:center;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.08em;color:var(--ink);background:#0000008c}.compact{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px 18px;padding:2px 20px;scrollbar-width:none}.compact::-webkit-scrollbar{display:none}.compact .theme-card{flex:0 0 62%;scroll-snap-align:start}.compact .theme-art{height:84px}.compact .theme-info{margin-top:-30px;padding:0 12px 12px}.compact .theme-info b{font-size:16px}.compact .theme-meta,.compact small{display:none}.theme-card.selected{box-shadow:0 0 0 2px var(--brass) inset}.room-code{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 16px 16px;margin-bottom:18px;border-radius:20px;background:#ffffff0a;box-shadow:0 0 0 1px var(--line-2) inset}.room-code .label{font-size:12px;font-weight:600;color:var(--ink-2)}.room-code b{padding-left:.3em;font-family:ui-monospace,Consolas,monospace;font-size:40px;font-weight:800;letter-spacing:.3em;color:var(--brass)}.room-code .sub{font-size:12.5px;color:var(--ink-3);min-height:16px}.row{display:flex;gap:8px;justify-content:center;margin-top:8px}.players{display:flex;flex-direction:column;gap:8px;margin:0 0 18px;padding:0;list-style:none}.players li{display:flex;align-items:center;gap:12px;height:56px;padding:0 14px;border-radius:14px;background:#ffffff0d}.players li.empty{justify-content:center;font-size:13px;color:var(--ink-3);background:none;box-shadow:0 0 0 1px var(--line) inset;border-radius:14px}.players .avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-weight:800;font-size:14px;color:#1b140c;background:var(--c)}.players .pname{flex:1;font-weight:600}.players .badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;font-size:11.5px;font-weight:700;color:var(--brass);background:#d9b46c24}.players .badge.me{color:var(--ink-2);background:#ffffff12}.waiting{display:flex;align-items:center;justify-content:center;gap:10px;margin:6px 0 0;font-size:14px;color:var(--ink-2)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.15);border-top-color:var(--brass);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.load-status{display:flex;flex-direction:column;align-items:center;gap:8px;min-height:16px;margin:14px 0 0;text-align:center;font-size:12.5px;color:var(--ink-2)}.load-status .load-bar{display:none;width:min(240px,70%);height:4px;border-radius:4px;overflow:hidden;background:#ffffff1a}.load-status.active .load-bar{display:block}.load-status .load-bar i{display:block;width:0;height:100%;background:var(--brass);transition:width .25s ease}.load-status.error{color:var(--danger)}.load-status.error .load-bar{display:none}.load-status .btn-sm{margin-left:6px;vertical-align:middle}#clear-screen{display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 40%,#2c2013f2,#050403fa);animation:fadeIn .8s ease}.clear-card{width:100%;max-width:400px;text-align:center}.clear-card h1{margin:10px 0 24px;font-family:var(--serif);font-size:52px;font-weight:800}#clear-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}#clear-stats .stat{padding:16px 12px;border-radius:16px;background:#ffffff0d;box-shadow:0 0 0 1px var(--line) inset}#clear-stats .stat span{display:block;font-size:12px;color:var(--ink-2);margin-bottom:6px}#clear-stats .stat b{font-size:24px;font-weight:800;color:var(--brass);font-variant-numeric:tabular-nums}#clear-stats .party{grid-column:1 / -1;font-size:13px;color:var(--ink-2)}#flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:#fff;opacity:0;z-index:24}#flash.on{animation:flash .9s ease-out}@keyframes flash{0%{opacity:.95}to{opacity:0}}.paper.print{font-family:var(--sans);font-size:15px;line-height:1.75;transform:none}.paper.print h4{margin:0 0 10px;font-family:var(--serif);font-size:18px;text-align:center}.paper.print table{width:100%;border-collapse:collapse;font-size:13.5px}.paper.print td,.paper.print th{padding:5px 4px;border-bottom:1px dashed rgba(60,40,20,.35);text-align:left}.photo-view{display:block;width:100%;border-radius:6px;box-shadow:0 10px 30px #00000080}.dial .num.wide{font-size:22px;font-family:var(--sans);font-weight:800}#home{display:block!important;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y pinch-zoom}.home-panel{min-height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-end;padding-top:calc(24px + var(--safe-top))!important}.home-panel>section{width:100%}@media (min-width: 900px){.home-panel{margin:0 0 0 7vw;justify-content:center}}#home.deep .home-panel{justify-content:flex-start}.theme-card .genre,.detail-poster .genre{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--brass)}.theme-art{height:150px;background-size:cover;background-position:center 35%}.lvl.fear i.on{background:#e0675a}.compact .theme-art{height:96px}.compact .theme-info{margin-top:-40px}.create-summary{margin:-6px 0 16px;font-size:13px;color:var(--ink-2)}.create-summary b{color:var(--ink)}.lobby-theme{margin-bottom:14px}.lobby-theme{position:relative}.lobby-theme .theme-card{pointer-events:none}.lobby-theme.editable{cursor:pointer}.lobby-theme .theme-art{height:80px}.detail{margin-bottom:16px;border-radius:20px;overflow:hidden;background:var(--surface-2);box-shadow:0 0 0 1px var(--line) inset}.detail-poster{position:relative;height:240px;background:#1a1410 center 30% / cover no-repeat}.detail-poster:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 45%,var(--surface-2) 98%)}.detail-poster .genre{position:absolute;left:14px;top:14px;z-index:1;padding:4px 10px;border-radius:999px;background:#0009}.detail-body{position:relative;padding:0 18px 18px;margin-top:-34px}.detail-title b{display:block;font-family:var(--serif);font-size:26px;font-weight:800}.detail-title small{display:block;margin-top:4px;color:var(--ink-2);font-size:14px}.detail-chips{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.detail-chips span{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--ink-2);background:#ffffff0f}.detail-chips .lvl-chip{color:var(--brass-ink);background:var(--brass)}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;padding:14px;border-radius:14px;background:#00000040}.metric{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--ink-2)}.metric .lvl i{width:9px;height:12px}.synopsis{margin:16px 0 0;font-size:14.5px;line-height:1.85;color:var(--ink)}.detail-note{margin:12px 0 0;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.6;color:var(--ink-2);background:#d9b46c14}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.tags span{font-size:12.5px;font-weight:600;color:var(--brass);padding:4px 10px;border-radius:999px;background:#d9b46c1a}.players{display:grid;grid-template-columns:1fr 1fr}.players li{height:50px;padding:0 10px;gap:9px}.players .avatar{width:30px;height:30px;font-size:13px}.players .pname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.players .badge{padding:0 6px}.lobby-chat{margin-top:22px;padding:14px;border-radius:var(--r-lg);background:#ffffff09;box-shadow:0 0 0 1px var(--line) inset}.lobby-chat-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.lobby-chat-head .field-label{margin:0}.btn-sm{height:34px;padding:0 12px;gap:6px;font-size:13px}#btn-lobby-mic.on{color:var(--brass-ink);background:var(--brass)}.lobby-chat-log{display:flex;flex-direction:column;gap:6px;height:168px;overflow-y:auto;padding:2px 2px 6px;overscroll-behavior:contain}.lobby-chat-log .empty{margin:auto;font-size:13px;color:var(--ink-3);text-align:center}.lobby-chat-log .msg{align-self:flex-start;max-width:100%;padding:6px 11px;font-size:14px;line-height:1.45;border-radius:12px;background:#ffffff0f;word-break:break-word}.lobby-chat-log .msg b{margin-right:7px}.lobby-chat-log .msg.sys,#chat-log .msg.sys{align-self:center;padding:3px 10px;font-size:12px;color:var(--ink-3);background:none;text-shadow:none}#chat-log .msg.sys{color:var(--ink-2);background:#00000059}.lobby-chat-form{display:flex;gap:8px;margin-top:8px;padding:5px;border-radius:999px;background:#0000004d;box-shadow:0 0 0 1px var(--line-2) inset}.lobby-chat-form input{flex:1;min-width:0;padding:0 12px;font-size:16px;color:var(--ink);background:none;border:0;outline:none}.lobby-chat-form .icon-btn{width:38px;height:38px;box-shadow:none;background:#ffffff14}.players li.away{opacity:.55}.players .badge.dim{color:var(--ink-3);background:#ffffff0d}.players .give{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;color:var(--ink-2);background:#ffffff12;font-size:12px;font-weight:700;white-space:nowrap}.players .give.confirm{color:var(--brass-ink);background:var(--brass)}#hud-players span.away{opacity:.45}#net-status{position:fixed;left:50%;top:calc(12px + var(--safe-top));z-index:60;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:9px 16px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--ink);background:#28160eeb;box-shadow:0 0 0 1px #ff7a6b59 inset,var(--shadow);white-space:nowrap}#clear-screen.fail{background:radial-gradient(ellipse at 50% 40%,#28100ef2,#050403fa)}#clear-screen.fail .eyebrow{color:var(--danger)}.install-chip{display:inline-flex;align-items:center;gap:8px;margin:14px auto 0;height:36px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink-2);background:#ffffff0f;box-shadow:0 0 0 1px var(--line) inset}[data-view=main] .install-chip{display:flex;width:fit-content}#install-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:grid;place-items:center;padding:16px;background:#0000008c;animation:fadeIn .2s ease}.touch #install-sheet{place-items:end center;padding:0}.install-card{position:relative;width:100%;max-width:420px;padding:26px 22px calc(18px + var(--safe-bottom));border-radius:22px;text-align:center;background:var(--surface-solid);box-shadow:0 0 0 1px var(--line-2) inset,var(--shadow)}.touch .install-card{max-width:none;border-radius:22px 22px 0 0}.install-close{position:absolute;right:10px;top:10px;width:44px;height:44px}.install-icon{border-radius:14px;box-shadow:var(--shadow)}.install-card h3{margin:12px 0 6px;font-size:19px}.install-sub{margin:0 0 16px;font-size:13.5px;line-height:1.55;color:var(--ink-2)}.install-steps{display:flex;flex-direction:column;gap:8px;margin:0 0 14px;padding:0;list-style:none;text-align:left}.install-steps li{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;font-size:14.5px;background:#ffffff0d}.install-steps .n{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:800;color:var(--brass-ink);background:var(--brass)}.install-steps .ico{flex:none;color:var(--brass)}.install-card .btn-primary{width:100%;margin-bottom:8px}.install-note{margin:0 0 10px;font-size:12.5px;color:var(--ink-3)}#toast{z-index:22}body.modal-open #toast{top:calc(14px + var(--safe-top));bottom:auto}.touch #help{display:none}.note-list{display:flex;flex-direction:column;gap:8px}.note-item{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:10px 14px;text-align:left;border-radius:14px;background:#ffffff0d;box-shadow:0 0 0 1px var(--line) inset}.note-item b{flex:1;font-weight:650}.note-item .ico{color:var(--ink-3)}.note-kind{flex:none;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:700;color:var(--brass);background:#d9b46c1f}.hint-text small{display:block;margin-top:6px;font-size:13px;color:var(--ink-3)}.hint-progress{position:relative;display:flex;justify-content:space-between;align-items:center;margin:-4px 0 14px;padding:8px 12px 12px;border-radius:12px;font-size:13px;color:var(--ink-2);background:#ffffff0a}.hint-progress b{color:var(--ink)}.hint-progress i{position:absolute;left:12px;right:12px;bottom:6px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--brass) var(--p),rgba(255,255,255,.1) var(--p))}.hint-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.hint-list li{padding:10px 12px;border-radius:12px;font-size:15px;line-height:1.65;background:#ffffff0d}.hint-list li span{display:inline-block;margin-right:8px;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700;color:var(--brass-ink);background:var(--brass)}.hint-list li.answer{box-shadow:0 0 0 1px #ff7a6b59 inset}.hint-list li.answer span{color:#fff;background:#b8463b}.primary.warn,.btn.warn{color:#fff;background:linear-gradient(180deg,#d9675b,#b8463b)}.kbd-hint{margin:12px 0 0;font-size:12px;color:var(--ink-3);text-align:center}.dial-label{font-size:12px;font-weight:700;color:#cfd3d8}.dial.sel .num{box-shadow:0 0 0 2px var(--brass) inset}.dial-msg{min-height:20px;margin:10px 0 0;font-size:13.5px;color:var(--danger);text-align:center}@media (max-height: 520px){#modal-card{padding:14px 16px 12px}.touch #modal-card{padding-bottom:calc(12px + var(--safe-bottom));max-width:460px}.modal-title{margin-bottom:8px;font-size:17px}.keypad-display{margin-bottom:8px;padding:6px 0 5px .4em;font-size:24px}.keypad{gap:6px}.keypad button{height:42px;font-size:19px}.btn-row{margin-top:10px}.safe-face{padding:10px}.dial{gap:5px}.dial button{height:34px}.dial .num{height:54px;font-size:34px}.dial-msg{margin-top:4px}.paper{padding:16px 18px 14px;font-size:22px}.touch #toast{bottom:calc(110px + var(--safe-bottom))}}.sticky-cta{position:sticky;bottom:0;z-index:2;margin:0 -20px;padding:12px 20px calc(10px + var(--safe-bottom));background:linear-gradient(180deg,#0a090800,#0a0908eb 30%)}.sticky-cta .note{margin-top:0}#home.deep .home-panel{padding-bottom:0!important}.theme-meta .rec{color:var(--ok);background:#86d18a1f}.theme-meta .rec.dim{color:var(--ink-2);background:#ffffff0f}.detail-rec{display:flex;align-items:center;gap:8px;margin:-4px 0 14px;padding:10px 12px;border-radius:12px;font-size:13.5px;color:var(--ink-2);background:#86d18a14}.detail-rec .ico{color:var(--ok)}.detail-rec b{color:var(--ink)}#clear-stats .party.record{color:var(--ok);font-weight:650}.soon-group{margin:-4px 0 18px}.soon-group summary{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 14px;border-radius:14px;font-size:14px;font-weight:600;color:var(--ink-2);background:#ffffff0a;box-shadow:0 0 0 1px var(--line) inset;cursor:pointer;list-style:none}.soon-group summary::-webkit-details-marker{display:none}.soon-group summary .chev{transition:transform .2s}.soon-group[open] summary .chev{transform:rotate(90deg)}.soon-group .theme-list{margin:12px 0 0}.resume-card{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px 10px 10px;text-align:left;border-radius:16px;background:#d9b46c1a;box-shadow:0 0 0 1px #d9b46c59 inset}.resume-art{flex:none;width:52px;height:52px;border-radius:12px;background:#2a1e14 center / cover no-repeat}.resume-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.resume-txt b{font-family:var(--serif);font-size:17px}.resume-txt small{font-size:12.5px;color:var(--ink-2)}.resume-txt small:first-child{color:var(--brass);font-weight:700}.resume-go{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--brass-ink);background:var(--brass)}.resume-x{position:absolute;right:-6px;top:-6px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:var(--ink-2);background:var(--surface-2);box-shadow:0 0 0 1px var(--line-2) inset}.lobby-theme-edit{position:absolute;right:10px;top:10px;z-index:1;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;color:var(--brass-ink);background:var(--brass)}#lobby-themes{margin-top:-4px}.players li[role=button]{cursor:pointer}.players li.open{grid-column:1 / -1;flex-wrap:wrap;height:auto;padding:10px;box-shadow:0 0 0 1px var(--line-2) inset}.pmenu{display:flex;flex-wrap:wrap;gap:6px;width:100%}.pmenu button{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:600;background:#ffffff14}.pmenu button.danger{color:var(--danger)}.pmenu button.confirm{color:var(--brass-ink);background:var(--brass)}.pmenu button.danger.confirm{color:#fff;background:#b8463b}.players .badge.ok{color:var(--ok);background:#86d18a24}.players-tip{margin:-10px 0 14px}#btn-ready.on{color:var(--ok);box-shadow:0 0 0 1px #86d18a80 inset}#btn-lobby-start+#btn-ready{margin-top:0}.boot-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;background:#0a0908 url(/textures/poster_study.webp) center 30% / cover no-repeat;filter:brightness(.55);transition:opacity .8s ease}#home.booting .boot-bg{opacity:1}#busy{position:fixed;left:50%;top:50%;z-index:60;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:999px;font-size:14px;font-weight:600;background:var(--surface-solid);box-shadow:0 0 0 1px var(--line-2) inset,var(--shadow)}#update-bar{position:fixed;left:50%;bottom:calc(16px + var(--safe-bottom));z-index:58;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:999px;font-size:14px;font-weight:600;white-space:nowrap;background:var(--surface-solid);box-shadow:0 0 0 1px var(--line-2) inset,var(--shadow)}.result-actions{display:flex;flex-direction:column;gap:10px}.result-actions .row{margin:0}.result-actions .row .btn{flex:1}.result-actions .btn-ghost{align-self:center}.resume-card.rejoin{background:#5aa8e01a;box-shadow:0 0 0 1px #5aa8e066 inset}.resume-card.rejoin .resume-txt small:first-child{color:#7fc0ee}.resume-card.rejoin .resume-go{color:#0b1a26;background:#7fc0ee}#hud-comm{display:flex;gap:6px;pointer-events:auto}#hud-comm:empty{display:none}#modal-card>.modal-close+.paper{margin-top:40px}#timer.pen{animation:timer-pen 1.2s ease}@keyframes timer-pen{0%,60%{color:var(--danger);transform:scale(1.18)}to{transform:none}}.radio-face{padding:16px 16px 12px;border-radius:14px;background:linear-gradient(160deg,#3d4433,#23281c);box-shadow:0 0 0 1px #5b6648 inset}.radio-scale{position:relative;height:46px;border-radius:6px;background:#e8dfb8;color:#3a3220;font-size:11px;display:flex;justify-content:space-between;align-items:flex-end;padding:0 8px 4px;font-variant-numeric:tabular-nums;overflow:hidden;background-image:repeating-linear-gradient(90deg,rgba(58,50,32,.55) 0 1px,transparent 1px 10%);background-size:calc(100% - 16px) 14px;background-position:8px 4px;background-repeat:no-repeat}.radio-scale i{position:absolute;top:0;bottom:0;width:2px;background:#b2241b;left:var(--x, 0%)}.radio-freq{margin-top:10px;text-align:center;font:700 26px/1 ui-monospace,monospace;color:#a6f08c;text-shadow:0 0 10px rgba(130,255,100,.45)}.radio-freq small{font-size:13px;color:#8fb37f;margin-left:4px}.radio-ctl{display:flex;align-items:center;gap:8px;margin-top:14px}.radio-ctl input{flex:1;accent-color:#b2241b;height:32px}.radio-ctl button{width:44px;height:40px;border-radius:10px}.radio-signal{display:flex;gap:3px;justify-content:center;margin-top:10px}.radio-signal span{width:10px;height:14px;border-radius:2px;background:#ffffff1f}.radio-signal span.on{background:#a6f08c;box-shadow:0 0 6px #82ff6480}.radio-msg{min-height:40px;margin:10px 0 0;font-size:14px;text-align:center;color:var(--ink-2)}.radio-msg.ok{color:#c9f5b3}.dial:only-child .num,.dial:only-child button{width:200px}.gauge-wrap{display:grid;place-items:center}.gauge-wrap canvas,.sonar-wrap canvas{width:min(280px,72vw);height:auto;aspect-ratio:1;display:block}.hold-btn{width:100%;height:64px;border-radius:14px;font-size:17px;font-weight:800;margin-top:14px;background:linear-gradient(#3a5a6a,#23404d);color:#e6f6ff;box-shadow:0 0 0 1px #5b8aa0 inset;touch-action:none;user-select:none;-webkit-user-select:none}.hold-btn.on{background:linear-gradient(#4f8aa3,#2d5d72)}.power-cap{display:flex;gap:4px;margin:4px 0 12px}.power-cap i{flex:1;height:14px;border-radius:3px;background:#ffffff14}.power-cap i.use{background:#3cf0c0;box-shadow:0 0 6px #3cf0c080}.power-cap i.over{background:#ff5a4a;box-shadow:0 0 6px #ff5a4a99}.power-cap i.dead{background:repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 3px,transparent 3px 6px)}.power-meta{display:flex;justify-content:space-between;font-size:13.5px;color:var(--ink-2)}.power-meta b{color:var(--ink-1, #fff);font-variant-numeric:tabular-nums}.power-list{display:grid;gap:8px;margin-top:6px}.power-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#ffffff0d;text-align:left;width:100%}.power-row .nm{flex:1;font-weight:700}.power-row .u{font-size:12.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}.power-row .sw{width:46px;height:26px;border-radius:13px;background:#ffffff1f;position:relative;transition:background .15s}.power-row .sw:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#ddd;transition:transform .15s}.power-row.on .sw{background:#2bb894}.power-row.on .sw:after{transform:translate(20px)}.sonar-wrap{display:grid;place-items:center}.sonar-wrap canvas{border-radius:50%;box-shadow:0 0 0 2px #1d4a3e,0 0 24px #3cf0a026;touch-action:manipulation}
