:root{--sand: #e9c98f;--sand-dim: #b99a68;--ink: #f4e6c8;--muted: #b8a688;--panel: rgba(18, 11, 5, .82);--line: rgba(233, 201, 143, .35);--line-strong: rgba(233, 201, 143, .7);--good: #a8e0a0;--bad: #ff8f7a;--font: "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display: Rajdhani, var(--font)}.menu{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch;font-family:var(--font);color:var(--ink);background:radial-gradient(ellipse 120% 60% at 50% 105%,#5a3818 0%,transparent 60%),radial-gradient(ellipse 90% 40% at 20% 100%,#6b4520 0%,transparent 55%),linear-gradient(180deg,#120a05,#2a170a 55%,#3b2210);padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.menu-inner{max-width:880px;min-height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:center;gap:24px}.menu h1{font-size:clamp(34px,7vw,64px);font-weight:600;letter-spacing:.22em;text-align:center;color:var(--sand);text-shadow:0 2px 24px rgba(233,160,80,.35)}.menu h2{font-size:clamp(22px,3.6vw,32px);font-weight:600;letter-spacing:.08em;color:var(--sand)}.menu .kicker,.dialog .kicker{font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}.menu .tagline{text-align:center;color:var(--muted);letter-spacing:.3em;text-transform:uppercase;font-size:13px;margin-top:-14px}.menu-actions{display:flex;flex-direction:column;align-items:center;gap:12px}.menu-actions.row{flex-direction:row;flex-wrap:wrap;justify-content:space-between}.menu-button{min-width:260px;min-height:56px;padding:0 24px;font:inherit;font-size:17px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:#0000006b;border:1px solid var(--line-strong);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.menu-button:hover{background:#e9c98f1f}.menu-button:active{background:#e9c98f38;transform:translateY(1px)}.menu-button.primary{background:#a9702c;border-color:#e9c98f;color:#1c1006}.menu-button.primary:active{background:#c4873a}.menu-button.quiet{min-width:0;border-color:var(--line);color:var(--muted)}.houses{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.house{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:20px;text-align:left;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--house);border-radius:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.house:active{transform:translateY(1px);border-color:var(--house)}.emblem{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:26px;font-weight:700;color:#fff;background:var(--house);background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--house) 70%,#fff),var(--house) 60%,color-mix(in srgb,var(--house) 60%,#000));box-shadow:0 0 0 3px #0006,0 0 24px color-mix(in srgb,var(--house) 45%,transparent)}.house .name{font-size:22px;font-weight:600;letter-spacing:.08em}.house .motto{color:var(--muted);font-size:15px;line-height:1.45}.house .traits{display:grid;gap:2px;margin:4px 0 0;font-size:14px;line-height:1.4}.house .traits dt{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--sand-dim);margin-top:6px}.house .traits dd{margin:0;color:var(--ink)}.house .traits strong{color:var(--sand);font-weight:600}.house .progress{margin-top:auto;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--sand-dim)}.missions{display:flex;flex-direction:column;gap:10px}.mission{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;min-height:72px;padding:12px 16px;text-align:left;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.mission:disabled{cursor:default;opacity:.45}.mission .number{font-size:26px;font-weight:600;color:var(--sand);text-align:center}.mission .title{font-size:18px;font-weight:600}.mission .objective{font-size:14px;color:var(--muted);margin-top:2px}.mission .state{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--sand-dim)}.mission .state.done{color:var(--good)}.briefing{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--house);border-radius:12px;padding:22px 24px;display:flex;flex-direction:column;gap:14px}.briefing .speaker{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.briefing p{font-size:17px;line-height:1.6}.goal{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line-strong);border-radius:10px;background:#e9c98f14}.goal .label{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.goal .text{font-size:18px;font-weight:600;color:var(--sand)}.difficulty{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.difficulty .label{font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-right:8px}.difficulty .chip{min-width:96px}.difficulty .chip.on{background:#a8e0a029;font-weight:600}.menu-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.sound-section{display:flex;flex-direction:column;gap:10px}.sound-section h3{font-size:13px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}.tracks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}.track{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:10px;min-height:60px;padding:8px 14px;text-align:left;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.track .number{font-size:22px;font-weight:600;color:var(--sand);text-align:center;font-variant-numeric:tabular-nums}.track .title{font-size:17px;font-weight:600}.track .meta{font-size:13px;color:var(--muted);margin-top:2px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:44px;padding:8px 14px;font:inherit;font-size:15px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.chip:active,.track:active{background:#e9c98f2e;transform:translateY(1px)}.chip.on,.track.on{border-color:var(--good)}.track.on .number,.track.on .title,.chip.on{color:var(--good)}.hud-button{position:fixed;width:44px;height:44px;border-radius:50%;border:none;background:#0009;display:grid;place-items:center;cursor:pointer;z-index:5;-webkit-tap-highlight-color:transparent}.hud-button:before,.hud-button:after{content:"";position:absolute;top:13px;width:6px;height:18px;border-radius:1px;background:#d8e8d0}.hud-button:before{left:14px}.hud-button:after{right:14px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:16px;background:#0a06028c;font-family:var(--font);color:var(--ink);touch-action:none}.dialog{width:min(420px,100%);background:#140c06f0;border:1px solid var(--line-strong);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 20px 60px #00000080}.dialog h2{font-size:28px;letter-spacing:.16em;text-transform:uppercase;color:var(--sand)}.dialog h2.won{color:var(--good)}.dialog h2.lost{color:var(--bad)}.dialog p{color:var(--muted);line-height:1.5}.dialog .menu-button{min-width:0;width:100%}.menu-inner.narrow{max-width:600px}.menu-inner.narrow h1{font-size:clamp(28px,6vw,44px)}.menu-error.center{text-align:center}.menu-note{color:var(--muted);font-size:16px;line-height:1.5}.menu-error{color:var(--bad);font-size:16px;min-height:1.5em}.menu-error:empty{min-height:0}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.field-input{min-height:52px;padding:0 16px;font:inherit;font-size:18px;color:var(--ink);background:#0000006b;border:1px solid var(--line-strong);border-radius:10px}.field-input:focus{outline:2px solid var(--sand);outline-offset:1px}.field-input.code{font-size:28px;letter-spacing:.3em;text-transform:uppercase;text-align:center}.badge{flex:none;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:26px;color:#1c1006;background:var(--badge);box-shadow:0 0 0 2px #00000059,0 4px 16px #0006}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.tile{display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px 12px;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.tile:active{transform:translateY(1px);border-color:var(--line-strong)}.tile .badge{width:72px;height:72px;font-size:34px}.tile .name{font-size:20px}.menu .player{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}.menu .player .badge{width:40px;height:40px;font-size:20px}.menu .player .name{font-size:20px;color:var(--sand)}.pin-head{display:flex;align-items:center;gap:16px}.pin-dots{display:flex;justify-content:center;gap:16px;min-height:22px}.pin-dots span{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-strong)}.pin-dots span.on{background:var(--sand);border-color:var(--sand)}.pin-dots.shake{animation:shake .35s}@keyframes shake{25%{transform:translate(-10px)}50%{transform:translate(8px)}75%{transform:translate(-5px)}}.pin-pad{display:grid;grid-template-columns:repeat(3,minmax(0,96px));justify-content:center;gap:12px}.pin-key{height:72px;font:inherit;font-size:30px;color:var(--ink);background:#0000006b;border:1px solid var(--line-strong);border-radius:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.pin-key:active{background:#e9c98f38;transform:translateY(1px)}.pin-key.primary{background:#a9702c;border-color:#e9c98f;color:#1c1006;font-size:22px}.pin-key.quiet{border-color:var(--line);color:var(--muted)}.admin-who{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);flex-wrap:wrap}.admin-section{display:flex;flex-direction:column;gap:10px;padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.admin-section h3{font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}.admin-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.admin-row:last-of-type{border-bottom:none}.admin-row .badge{width:40px;height:40px;font-size:20px}.admin-main{flex:1;min-width:0}.admin-name{font-size:18px;color:var(--ink)}.admin-meta{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.admin-row .menu-button,.admin-who .menu-button{min-height:44px;padding:0 14px;font-size:15px}.admin-add{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:6px}.admin-add .field-input{flex:1 1 160px;min-width:0}.admin-add .menu-button{min-width:0}.enroll-code{display:flex;flex-wrap:wrap;align-items:center;gap:20px}.enroll-code .qr{width:192px;height:192px;padding:8px;background:#fff;border-radius:8px}.enroll-code .qr svg{display:block;width:100%;height:100%}.enroll-code .code{font-size:40px;letter-spacing:.24em;color:var(--sand)}.menu h1,.menu h2,.kicker,.menu .tagline,.menu-button,.emblem,.house .name,.house .traits dt,.house .progress,.mission .number,.mission .title,.mission .state,.briefing .speaker,.goal .label,.goal .text,.difficulty .label,.chip,.sound-section h3,.track .number,.track .title,.dialog h2,.field>span,.field-input.code,.badge,.tile .name,.menu .player .name,.pin-key,.admin-section h3,.admin-name,.enroll-code .code{font-family:var(--font-display);font-weight:600}.menu h1,.menu h2,.emblem,.dialog h2{font-weight:700}.menu-button{font-size:19px}.house .name{font-size:25px}.mission .number{font-size:30px}.mission .title,.goal .text{font-size:20px}.house .traits dt,.kicker,.menu .tagline,.briefing .speaker,.goal .label,.difficulty .label,.sound-section h3,.house .progress,.mission .state{font-size:14px}.chip{font-size:17px}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/rajdhani-latin-600-normal-CXCVEoA9.woff2) format("woff2"),url(/assets/rajdhani-latin-600-normal-Dx02qI2_.woff) format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/rajdhani-latin-700-normal-BPDUZo87.woff2) format("woff2"),url(/assets/rajdhani-latin-700-normal-e0Uj8ZlN.woff) format("woff")}
