: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:keep-all;overflow-wrap:anywhere;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:keep-all;overflow-wrap:anywhere}.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}.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}.quality-chip{cursor:pointer}.quality-chip select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:0;color:var(--ink-1, #fff);font:inherit;font-weight:700;padding:0 2px;cursor:pointer}.quality-chip select option{color:#111}.kp{position:relative;margin:4px auto 0;max-width:300px;padding:24px 20px 20px;border-radius:18px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 3px),linear-gradient(160deg,#cfd4d9,#939aa1 46%,#676e75);box-shadow:inset 0 1px #ffffffbf,inset 0 -2px 5px #00000059,0 12px 26px #0000008c,0 2px #3b4046}.kp-screw{position:absolute;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f4f6f7,#8b9298 60%,#50565c);box-shadow:0 1px 1px #00000080}.kp-screw:after{content:"";position:absolute;left:2px;right:2px;top:5px;height:1.5px;background:#282c30b3;transform:rotate(35deg)}.kp-screw.tl{left:8px;top:8px}.kp-screw.tr{right:8px;top:8px}.kp-screw.bl{left:8px;bottom:8px}.kp-screw.br{right:8px;bottom:8px}.kp-top{display:flex;align-items:center;gap:10px;margin-bottom:16px}.kp-led{flex:0 0 auto;width:11px;height:11px;border-radius:50%;background:#3a0e0c;box-shadow:inset 0 1px 2px #0009;transition:background .15s,box-shadow .15s}.kp-led.blink{animation:kp-blink .25s}.kp-led.ok{background:#3cff7a;box-shadow:0 0 10px #3cff7a,inset 0 1px 1px #fff9}.kp-led.err{background:#ff3a2a;box-shadow:0 0 10px #ff3a2a}@keyframes kp-blink{0%,60%{background:#ffb02e;box-shadow:0 0 8px #ffb02e}}.kp .keypad-display{flex:1;margin:0;padding:10px 0 8px .35em;border-radius:8px;font:700 30px/1 Courier New,ui-monospace,monospace;letter-spacing:.35em;color:#8dffa8;text-shadow:0 0 8px rgba(120,255,160,.6);background:linear-gradient(#0b1d11,#06120a);box-shadow:inset 0 2px 6px #000000d9,0 1px #ffffff80}.kp .keypad-display.err{color:#ff8a7a;text-shadow:0 0 8px rgba(255,120,100,.6);background:linear-gradient(#200a07,#120504)}.kp .keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.kk{height:56px;border-radius:12px;font-size:22px;font-weight:800;color:#2a2e33;background:linear-gradient(#f6f7f8,#c8ccd0);box-shadow:0 4px #666c73,0 7px 10px #00000059,inset 0 1px #fff;transition:transform .05s,box-shadow .05s}.kk b{font-weight:inherit}.kk:active,.kk.hit{animation:kk-hit .2s}@keyframes kk-hit{0%,45%{transform:translateY(3px);box-shadow:0 1px #666c73,0 2px 4px #0000004d,inset 0 1px #fff}to{transform:none}}.kk.ok{font-size:15px;color:#06240f;background:linear-gradient(#6aeb95,#2fa85d);box-shadow:0 4px #1b6638,0 7px 10px #00000059,inset 0 1px #fff9}.kk.fn{color:#3a2a08;background:linear-gradient(#ecd283,#b98f36);box-shadow:0 4px #6e5418,0 7px 10px #00000059,inset 0 1px #fff9}.kp.opened .keypad-display{color:#c9ffd6}.kp-register{background:repeating-linear-gradient(92deg,rgba(0,0,0,.06) 0 2px,transparent 2px 7px),linear-gradient(160deg,#8a5a32,#4a2c16 70%,#331d0e);box-shadow:inset 0 0 0 4px #c9a256,inset 0 0 0 6px #6a4a1a,0 12px 26px #0000008c}.kp-register .kp-screw{background:radial-gradient(circle at 35% 30%,#ffe9a8,#c9a256 60%,#6a4a1a)}.kp-register .keypad-display{font:700 28px/1 var(--serif);letter-spacing:.2em;color:#8a1c1c;text-shadow:none;background:linear-gradient(#fbf5e3,#e8dcbc);box-shadow:inset 0 2px 5px #00000059,0 0 0 2px #c9a256}.kp-register .kk{width:60px;height:60px;justify-self:center;border-radius:50%;font-family:var(--serif);color:#3a2a18;background:radial-gradient(circle at 38% 30%,#fffdf6,#e6dabd 62%,#b7a681);box-shadow:0 0 0 3px #c9a256,0 4px 0 3px #6a4a1a,0 8px 12px #0006}.kp-register .kk.ok{background:radial-gradient(circle at 38% 30%,#ffd7d0,#d0473a 62%,#8a1c1c);color:#fff;font-family:var(--sans)}.kp-register .kk.fn{background:radial-gradient(circle at 38% 30%,#fff1c4,#d9b46c 62%,#8a6424)}.kp-brass{background:linear-gradient(160deg,#f6dfa2,#cfa24c 48%,#8c6424);box-shadow:inset 0 1px #ffffffbf,inset 0 -3px 6px #5a3c0080,0 12px 26px #00000080}.kp-brass .kp-screw{background:radial-gradient(circle at 35% 30%,#fff3cc,#c9a256 60%,#6a4a1a)}.kp-brass .kk{color:#4a3410;background:linear-gradient(#f1d898,#c29546);box-shadow:0 4px #7a5618,0 7px 10px #0000004d,inset 0 1px #ffffffb3}.kp-brass .keypad-display{background:linear-gradient(#20160a,#120c05);color:#ffd68a;text-shadow:0 0 8px rgba(255,200,110,.55)}.lock{position:relative;margin:6px auto 0;width:fit-content;max-width:100%}.lock-body{position:relative;padding:18px 16px 16px;border-radius:16px}.lock .dials{display:flex;justify-content:center;gap:10px}.lock .dial{display:flex;flex-direction:column;align-items:center;gap:6px}.lock .w-btn{width:54px;height:26px;border-radius:8px;font-size:11px;color:#fffc;background:#00000047}.wheel{position:relative;width:58px;height:132px;overflow:hidden;border-radius:10px;cursor:ns-resize;touch-action:none;user-select:none;-webkit-user-select:none;background:linear-gradient(#141414,#3c3c3c 50%,#141414);box-shadow:inset 0 0 0 1px #000000a6,0 1px #ffffff40}.wheel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background:linear-gradient(#000000c7,#0000 30%,#ffffff1a,#0000 70%,#000000c7)}.wheel:before{content:"";position:absolute;left:0;right:0;top:33.3%;height:33.4%;z-index:1;pointer-events:none;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(0,0,0,.55)}.wheel:has(.wide){width:104px}.dial:only-child .wheel,.dial:only-child .w-btn{width:210px}.strip{display:flex;flex-direction:column;height:100%;transition:transform .17s cubic-bezier(.2,.8,.3,1.25)}.strip>span{flex:0 0 33.334%;display:flex;align-items:center;justify-content:center;gap:6px;font:800 36px/1 var(--serif);color:#f1e7d0}.strip>.w-prev,.strip>.w-next{transform:scaleY(.72);opacity:.6}.strip>.wide{font:800 16px/1.1 var(--sans)}.lock .dial .num{width:auto;height:auto;background:none;box-shadow:none;border-radius:0}.lock .dial.sel .wheel{box-shadow:inset 0 0 0 1px #000000a6,0 0 0 2px var(--brass)}.lock .dial-label{font-size:12px;font-weight:700}.strip .sw{width:15px;height:15px;flex:0 0 auto;border-radius:50%;background:var(--c);box-shadow:0 0 9px var(--c),inset 0 1px 1px #ffffff80}.lock.jiggle{animation:lock-jiggle .38s}@keyframes lock-jiggle{20%{transform:rotate(-2deg)}45%{transform:rotate(2deg)}70%{transform:rotate(-1deg)}}.lock-padlock{padding-top:54px}.lock-padlock .shackle{position:absolute;left:50%;top:0;width:64%;height:92px;transform:translate(-50%);border:15px solid #b6bcc2;border-bottom:0;border-radius:80px 80px 0 0;box-shadow:inset 0 3px #ffffff73,0 -1px #fff9,0 3px 6px #0006;transition:transform .4s cubic-bezier(.3,1.7,.5,1)}.lock-padlock.opened .shackle{transform:translate(-50%,-22px) rotate(-6deg)}.lock-padlock .lock-body{border-radius:24px;padding:22px 20px 20px;background:linear-gradient(160deg,#f6dc94,#d4a748 42%,#9a7124);box-shadow:inset 0 2px #ffffffa6,inset 0 -4px 8px #5a37008c,0 14px 28px #0000008c}.lock-padlock .wheel{background:linear-gradient(#4c350f,#e2c271 50%,#4c350f)}.lock-padlock .strip>span{color:#2a1a05;text-shadow:0 1px 0 rgba(255,255,255,.45)}.lock-padlock .w-btn{color:#4a3410;background:#462d002e}.lock-padlock .dial-label{color:#3a2a08}.lock-safe .lock-body,.lock-color .lock-body{background:linear-gradient(160deg,#636a72,#2a2e33);box-shadow:inset 0 0 0 3px #1b1e22,inset 0 0 0 5px #858c94,0 14px 28px #0000008c}.lock-safe .dial-label,.lock-color .dial-label{color:#d6dade}.lock-camera .lock-body{background:repeating-radial-gradient(circle at 30% 30%,rgba(255,255,255,.03) 0 1px,transparent 1px 3px),linear-gradient(#2c2c2c,#121212);box-shadow:inset 0 0 0 2px #444,0 14px 28px #0000008c}.lock-camera .wheel{background:linear-gradient(#55595d,#e6e9ec 50%,#55595d)}.lock-camera .strip>span{color:#111}.lock-camera .dial-label{color:#e9e2cf;letter-spacing:.08em}.lock-console .lock-body{background:linear-gradient(#16251f,#0a1410);box-shadow:inset 0 0 0 2px #2b4a3e,0 14px 28px #0000008c}.lock-console .wheel{background:#021209}.lock-console .strip>span{font-family:Courier New,ui-monospace,monospace;color:#6dffa8;text-shadow:0 0 8px rgba(110,255,168,.6)}.lock-console .dial-label{color:#8fc9ad}@media (max-height: 520px){.wheel{height:96px}.strip>span{font-size:28px}.lock-padlock{padding-top:40px}.lock-padlock .shackle{height:66px;border-width:12px}.kk{height:42px;font-size:19px}.kp{padding:16px 14px 14px}.kp-top{margin-bottom:10px}.kp .keypad-display{font-size:24px;padding:6px 0 5px .35em}.kp-register .kk{width:46px;height:46px}}.lock-color .wheel,.lock-color .w-btn{width:min(74px,18.5vw)}.lock-color .strip>span{flex-direction:column;gap:3px;font:800 12px/1 var(--sans)}.lock-color .strip .sw{width:22px;height:22px}.lock-color .strip>.w-prev .sw,.lock-color .strip>.w-next .sw{width:14px;height:14px}.lock .dials{flex-wrap:nowrap}.lock-body{max-width:calc(100vw - 48px)}#modal.lock3d{background:transparent;place-items:stretch;padding:0}#modal.lock3d #modal-card{max-width:none;width:100%;height:100%;max-height:none;border-radius:0;background:transparent;box-shadow:none;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:max(18px,var(--safe-top, 0px)) 16px calc(22px + var(--safe-bottom, 0px));pointer-events:none;animation:none}#modal.lock3d #modal-card>*{pointer-events:auto}#modal.lock3d .modal-title{margin-top:64px;padding:8px 16px;border-radius:999px;background:#00000073;text-shadow:0 2px 8px rgba(0,0,0,.8)}#modal.lock3d .kp,#modal.lock3d .lock{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}#modal.lock3d .dial-msg{margin-top:auto;padding:6px 12px;border-radius:10px;background:#00000080}#modal.lock3d .dial-msg:empty{background:none}#modal.lock3d .btn-row{width:min(420px,100%)}#modal.lock3d .kbd-hint{color:#ffffffbf;text-shadow:0 1px 4px #000}#modal.lock3d .modal-close{position:fixed;top:auto;right:auto;left:50%;transform:translate(-50%);bottom:calc(96px + var(--safe-bottom, 0px));width:auto;height:44px;padding:0 18px 0 14px;gap:6px;display:inline-flex;align-items:center;border-radius:999px;background:#0c0a08c7;box-shadow:0 0 0 1px #ffffff38 inset,0 6px 18px #00000080;color:#fff;font-size:15px;font-weight:700;z-index:5}#modal.lock3d .modal-close:after{content:"닫기"}#modal.lock3d:has(.kp) .modal-close{bottom:calc(40px + var(--safe-bottom, 0px))}body:has(#modal.lock3d:not(.hidden)) #btn-back{display:none}.emote-wrap{position:absolute;right:14px;bottom:calc(96px + var(--safe-bottom, 0px));z-index:6;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:8px;pointer-events:auto}.emote-btn{font-size:20px}.emote-menu{display:grid;grid-template-columns:repeat(2,auto);gap:6px;padding:8px;border-radius:14px;background:#0c0a08d1;box-shadow:0 0 0 1px var(--line) inset}.emote-menu button{padding:8px 12px;border-radius:10px;font-size:14px;font-weight:700;background:#ffffff14;color:var(--ink-1, #fff)}.emote-menu button:active{background:#ffffff2e}.emote-menu.hidden{display:none}#home.lobby3d .home-shade{background:linear-gradient(180deg,#0a090800 0,#0a090800 34vh,#0a0908c7 52vh,#0a0908f0)}.lobby-stage{position:relative;height:clamp(220px,36vh,340px);margin:-6px -20px 14px;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.lobby-emotes{pointer-events:auto;display:flex;gap:4px;max-width:calc(100% - 16px);overflow-x:auto;padding:6px;margin-bottom:-4px;border-radius:999px;background:#0a08069e;box-shadow:0 0 0 1px var(--line) inset;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lobby-emotes button{flex:none;width:32px;height:32px;border-radius:50%;font-size:18px;line-height:1;display:grid;place-items:center;background:#ffffff0f}.lobby-emotes button:active{transform:scale(.9);background:#ffffff2e}@media (min-width: 900px) and (min-height: 520px){#home.lobby3d .home-shade{background:linear-gradient(90deg,#0a0908eb 0,#0a0908db calc(7vw + 440px),#0a090800 calc(7vw + 560px))}.lobby-stage{position:fixed;left:calc(7vw + 500px);right:3vw;top:8vh;bottom:8vh;height:auto;margin:0;padding-bottom:2vh;z-index:1}}body{word-break:keep-all;overflow-wrap:break-word;line-break:strict}p,li,dd,.note,.msg,.clue-body,.modal-card p,.hint-text{text-wrap:pretty}#toast,h1,h2,h3,.modal-title,.view-head h2,.waiting,.dial-msg,.kbd-hint,.players-tip,.note,button,.btn,.badge,.lock-hint,.resume-card,.theme-card .desc{text-wrap:balance}
