:root{--ink: #e8edf4;--ink-dim: #8e9bb0;--accent: #cfeaff;--surface: rgba(12, 15, 21, .82);--surface-solid: #0c0f15;--edge: rgba(207, 234, 255, .16);--edge-strong: rgba(207, 234, 255, .4);--warn: #ffb4a2;--shadow: 0 18px 50px rgba(0, 0, 0, .55);--radius: 14px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#07080a;color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:none}#app{position:fixed;inset:0}#stage{position:absolute;inset:0}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:calc(var(--safe-top) + 14px) calc(var(--safe-right) + 14px) calc(var(--safe-bottom) + 14px) calc(var(--safe-left) + 14px);pointer-events:none}.hud-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.prompt{display:flex;flex-direction:column;gap:3px;padding:10px 14px;min-width:0;background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.prompt-title{font-size:15px;font-weight:600;letter-spacing:.01em}.prompt-detail{font-size:12.5px;color:var(--ink-dim);min-height:1em}.prompt[data-busy=true] .prompt-title:after{content:"";display:inline-block;width:.5em;margin-left:.35em;animation:thinking 1.1s steps(4,end) infinite}@keyframes thinking{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.button-row{display:flex;gap:8px;flex-wrap:wrap}button{pointer-events:auto;font:inherit;font-size:13.5px;font-weight:550;color:var(--ink);background:var(--surface);border:1px solid var(--edge);border-radius:11px;min-height:44px;padding:0 16px;cursor:pointer;backdrop-filter:blur(14px);transition:border-color .12s ease,background .12s ease,transform 90ms ease}button:hover:not(:disabled){border-color:var(--edge-strong)}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.38;cursor:default}button.primary{background:var(--accent);border-color:transparent;color:#06080c}button[aria-pressed=true]{border-color:var(--edge-strong);background:#cfeaff24}.panel-backdrop{position:absolute;inset:0;display:grid;place-items:center;padding:18px;background:#040508a8;backdrop-filter:blur(3px);pointer-events:auto}.panel-backdrop[hidden]{display:none}.panel{width:min(420px,100%);max-height:100%;overflow-y:auto;padding:22px;background:var(--surface-solid);border:1px solid var(--edge);border-radius:18px;box-shadow:var(--shadow)}.panel h1{margin:0 0 2px;font-size:26px;font-weight:700;letter-spacing:.18em}.panel h2{margin:0 0 14px;font-size:13px;font-weight:500;color:var(--ink-dim);letter-spacing:.02em}.field{margin:16px 0 0}.field-label{display:block;margin-bottom:7px;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-dim)}.field-note{margin:6px 0 0;font-size:12px;line-height:1.45;color:var(--ink-dim)}.segmented{display:flex;gap:6px}.segmented button{flex:1;padding:0 8px}.panel-actions{display:flex;gap:8px;margin-top:22px}.panel-actions button{flex:1}.landing h1,.landing h2{text-align:center}.landing-actions{display:flex;flex-direction:column;gap:8px;margin-top:18px}.auth-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;min-height:1.4em}.auth-name{font-size:12.5px;color:var(--ink-dim)}.link-btn{min-height:auto;padding:2px 4px;background:transparent;border:none;color:var(--accent);text-decoration:underline;text-underline-offset:2px;backdrop-filter:none}.link-btn:hover:not(:disabled){border-color:transparent}button.wide{width:100%}.field .segmented+button.wide{margin-top:8px}.field-note-tight{margin:0 0 7px}.field-error{color:var(--warn);min-height:1em}.field-error:empty{margin:0}.join-row{display:flex;gap:8px;margin-top:7px}.code-input{flex:1;min-width:0;min-height:44px;padding:0 14px;font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:17px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);background:var(--surface);border:1px solid var(--edge);border-radius:11px;outline:none;pointer-events:auto;touch-action:manipulation}.code-input::placeholder{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13.5px;font-weight:500;letter-spacing:normal;text-transform:none;color:var(--ink-dim)}.code-input:focus{border-color:var(--edge-strong)}.room-code{margin:8px 0 16px;padding:14px 0;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:34px;font-weight:700;letter-spacing:.28em;text-indent:.28em;color:var(--accent);background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);user-select:all}.hud-bottom{display:flex;justify-content:center}.notice{max-width:min(420px,100%);padding:10px 16px;font-size:13px;line-height:1.4;text-align:center;background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.notice[hidden]{display:none}.leaderboard-list{display:flex;flex-direction:column;gap:4px;margin-top:16px;max-height:40vh;overflow-y:auto}.leaderboard-row{display:flex;align-items:baseline;gap:10px;padding:7px 9px;border-radius:9px;background:var(--surface);border:1px solid var(--edge)}.leaderboard-rank{width:1.6em;font-variant-numeric:tabular-nums;color:var(--ink-dim);font-size:12.5px}.leaderboard-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px}.leaderboard-wins{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--accent)}.result-headline{margin:0 0 6px;font-size:30px;font-weight:700;letter-spacing:.04em}.result-detail{margin:0;font-size:14px;line-height:1.5;color:var(--ink-dim)}.hud-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.clocks{display:flex;flex-direction:column;gap:3px;padding:5px;background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.clocks[hidden]{display:none}.clock{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:4px 9px;border:1px solid transparent;border-radius:9px;opacity:.5;transition:opacity .16s ease,background .16s ease,border-color .16s ease}.clock-name{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}.clock-time{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.clock[data-active=true]{opacity:1;background:#cfeaff1a;border-color:var(--edge-strong)}.clock[data-active=true] .clock-name{color:var(--accent)}.clock[data-low=true] .clock-time{color:var(--warn)}.clock[data-active=true][data-low=true]{border-color:#ffb4a280;animation:clock-low 1s ease-in-out infinite}.clock[data-out=true]{opacity:1}.clock[data-out=true] .clock-time{color:var(--warn)}@keyframes clock-low{0%,to{background:#ffb4a20f}50%{background:#ffb4a233}}.fatal{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;pointer-events:auto}.fatal p{max-width:32ch;line-height:1.6;color:var(--ink-dim)}@media(max-width:460px){.prompt-title{font-size:14px}.panel h1{font-size:22px}.clock{gap:10px;padding:3px 7px}.clock-time{font-size:15px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.result-backdrop:not([hidden]){animation:result-backdrop-in .34s ease both}.result-backdrop:not([hidden])>.panel{animation:result-panel-in .42s cubic-bezier(.22,1,.36,1) 80ms both}@keyframes result-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes result-panel-in{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
