:root{--night-rgb:11, 15, 21;--night:rgb(var(--night-rgb));--black-rgb:0, 0, 0;--white-rgb:255, 255, 255;--room:linear-gradient(#1c2532, #0e131b 70%, #080b10);--light-rgb:222, 234, 245;--light:rgb(var(--light-rgb));--muted:#7d8fa3;--neon-rgb:255, 120, 178;--neon:rgb(var(--neon-rgb));--neon-deep:#f25a9c;--ice-rgb:80, 216, 255;--ice:rgb(var(--ice-rgb));--go:#4fe0a0;--miss:#ff4f6a;--glass-rgb:18, 25, 34;--glass:rgba(var(--glass-rgb), .72);--line:rgba(var(--light-rgb), .16);--line-strong:rgba(var(--light-rgb), .5);--glow:0 0 18px rgba(var(--neon-rgb), .45);--blur:blur(14px) saturate(120%);--shade-blur:blur(6px);--big:"Tilt Neon", "Rajdhani", system-ui, sans-serif;--display:"Rajdhani", system-ui, sans-serif;--gutter:16px;--safe-top:max(var(--gutter), env(safe-area-inset-top));--safe-right:max(var(--gutter), env(safe-area-inset-right));--safe-bottom:max(var(--gutter), env(safe-area-inset-bottom));--safe-left:max(var(--gutter), env(safe-area-inset-left));--screen-height:100vh;--btn-height:40px;--primary-fill:linear-gradient(180deg, rgba(var(--neon-rgb), .35), rgba(var(--neon-rgb), .12));--primary-glow:var(--glow);--corner-gap:10px;--card-width:420px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (height:100dvh){:root{--screen-height:100dvh}}*{box-sizing:border-box}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit}::-webkit-scrollbar{display:none}:focus{outline:none}:focus-visible{outline:none}html,body{touch-action:pan-x pan-y;background:var(--night);height:100%;color:var(--light);font-family:var(--display);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;font-size:17px;overflow:hidden}#scene{width:100%;height:var(--screen-height);touch-action:none;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#ui{height:var(--screen-height);pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.slate{pointer-events:auto;padding:12px 14px}.label{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:600}.btn{height:var(--btn-height);border:1.5px solid rgba(var(--ice-rgb), .45);background:rgba(var(--ice-rgb), .05);color:#dff4ff;font-family:var(--display);letter-spacing:.2em;text-indent:.2em;text-transform:uppercase;white-space:nowrap;box-shadow:0 0 12px rgba(var(--ice-rgb), .2), inset 0 0 12px rgba(var(--ice-rgb), .1);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:16px;font-weight:600;transition:border-color .12s,box-shadow .12s;display:inline-flex}.btn:disabled{opacity:.4;cursor:default}.btn:hover{border-color:rgba(var(--ice-rgb), .9)}.btn:focus-visible{border-color:rgba(var(--ice-rgb), .9)}.btn.selected{border-color:var(--neon);background:rgba(var(--neon-rgb), .16);box-shadow:var(--glow)}.btn.primary{border-color:rgba(var(--neon-rgb), .85);background:rgba(var(--neon-rgb), .1);color:#ffe3f0;text-shadow:0 0 8px rgba(var(--neon-rgb), .8);box-shadow:0 0 14px rgba(var(--neon-rgb), .45), inset 0 0 12px rgba(var(--neon-rgb), .18)}.btn.primary:hover{border-color:#ffd0e6}.btn.primary:focus-visible{border-color:#ffd0e6}.btn.wide{width:100%}.swatch{border-radius:2px;flex:none;width:10px;height:10px;display:inline-block}.screen{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.start-room{background:radial-gradient(ellipse at 50% 30%, rgba(var(--neon-rgb), .1), transparent 60%);position:absolute;top:0;bottom:0;left:0;right:0}.screen-body{inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;overflow-y:auto}.logo{--tube-color:var(--neon-deep);text-align:center;font-weight:400;font-family:var(--big);letter-spacing:.12em;color:#ffe9f6;text-shadow:0 0 5px rgba(var(--white-rgb), .9), 0 0 14px var(--tube-color), 0 0 34px var(--tube-color), 0 0 70px var(--tube-color), 0 0 120px var(--tube-color);margin:0;padding-left:.12em;font-size:clamp(60px,12vw,120px);line-height:1;animation:2.4s step-end both sign-on}.logo span{display:inline-block}.logo .buzz{animation:6s infinite sign-buzz}@keyframes sign-on{0%{opacity:.1}8%{opacity:1}10%{opacity:.2}14%{opacity:1}16%{opacity:.4}20%{opacity:1}}@keyframes sign-buzz{0%,92%,to{opacity:1}93%{opacity:.35}95%{opacity:1}96%{opacity:.5}}.tagline{--tube-color:rgba(var(--ice-rgb), .8);text-align:center;font-family:var(--big);letter-spacing:.5em;text-transform:uppercase;color:#d6f6ff;text-shadow:0 0 4px rgba(var(--white-rgb), .7), 0 0 12px var(--tube-color), 0 0 28px var(--tube-color), 0 0 56px var(--tube-color);padding-left:.5em;font-size:16px}.door{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:18px;display:flex}.door .neon-button{min-width:120px}.card{width:var(--card-width);flex-direction:column;gap:12px;max-width:100%;padding:20px;display:flex}.card-hint{color:var(--muted);margin:0;font-size:15px}.field{min-height:var(--btn-height);height:var(--btn-height);border:none;border-bottom:1px solid rgba(var(--ice-rgb), .3);color:var(--team,var(--light));font-family:var(--display);-webkit-user-select:text;user-select:text;background:0 0;border-radius:0;flex:1;padding:0 12px;font-size:20px;font-weight:600}.field:focus{border-bottom-color:rgba(var(--ice-rgb), .8)}.field.code{letter-spacing:.4em;text-indent:.4em;text-align:center;text-transform:uppercase;flex:none}.actions{gap:10px;display:flex}.actions .btn{flex:1 1 0}.hint{color:var(--muted);font-size:13px;line-height:1.45}.screen.shade{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);pointer-events:auto;background:rgba(var(--night-rgb), .5);-webkit-backdrop-filter:var(--shade-blur);z-index:7;justify-content:center;align-items:center;display:flex}.install-hint{text-align:center;margin:0}.panel{width:var(--card-width);flex-direction:column;gap:16px;max-width:100%;padding:20px;display:flex}.panel h2{letter-spacing:.16em;text-transform:uppercase;color:var(--light);font-size:20px;font-weight:700}.panel-head{align-items:center;gap:12px;display:flex}.panel-head .label{flex:1}.panel-head .hint{text-align:right}.invite{align-items:center;gap:16px;display:flex}.invite .qr{background:var(--light);border-radius:2px;flex:none;width:128px;height:128px;padding:6px}.invite .qr svg{width:100%;height:100%;display:block}.invite-details{flex-direction:column;flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.invite .actions{align-self:stretch}.invite .actions>.btn{white-space:nowrap;min-width:0;padding-inline-start:8px;padding-inline-end:8px}.copy-button{position:relative}.copy-button svg{display:none}.copy-button.copied span{visibility:hidden}.copy-button.copied svg{width:24px;height:24px;fill:var(--go);margin:auto;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.room-code{font:36px var(--big);letter-spacing:.3em;color:#e6fbff;text-shadow:0 0 4px rgba(var(--white-rgb), .7), 0 0 12px rgba(var(--ice-rgb), .8), 0 0 28px rgba(var(--ice-rgb), .6), 0 0 56px rgba(var(--ice-rgb), .4)}.short-label{display:none}@media (max-width:500px){.screen .long-label{display:none}.screen .short-label{display:inline}}.corner{top:var(--safe-top);right:var(--safe-right);gap:var(--corner-gap);z-index:3;pointer-events:auto;display:flex;position:fixed}.corner .btn{width:var(--btn-height);padding:0}.corner svg{fill:currentColor;width:22px;height:22px}.corner .leave{display:none}.corner .leave.visible{display:inline-flex}.settings{top:calc(var(--safe-top) + var(--btn-height) + 12px);right:var(--safe-right);z-index:8;width:min(300px, calc(100vw - var(--safe-left) - var(--safe-right)));max-height:calc(var(--screen-height) - var(--safe-top) - var(--btn-height) - 12px - var(--safe-bottom));pointer-events:auto;background:radial-gradient(ellipse at 70% 40%, rgba(var(--night-rgb), .92), rgba(var(--night-rgb), .7) 60%, transparent 100%);flex-direction:column;display:none;position:fixed}.settings.visible{display:flex}.settings-body{flex-direction:column;gap:12px;min-height:0;display:flex;overflow-y:auto}.options{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;display:grid}.options .btn{padding-inline-start:8px;padding-inline-end:8px}.options .btn.active{border-color:var(--neon);background:rgba(var(--neon-rgb), .24)}.settings a{color:var(--neon)}.switch-row{background:0 0;border:none;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:4px 0;display:flex}.switch-row .label:after{content:none}.switch{background:var(--glass);border:2px solid var(--line);border-radius:15px;flex:none;width:72px;height:30px;transition:background .12s,border-color .12s,box-shadow .12s;position:relative}.switch-knob{background:var(--muted);border-radius:50%;width:22px;height:22px;transition:transform .12s,background .12s;position:absolute;top:2px;left:2px}.switch-text{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700;line-height:26px;position:absolute;top:0;right:9px}.switch-row[aria-checked=true] .switch{background:var(--primary-fill);border-color:var(--neon);box-shadow:var(--primary-glow)}.switch-row[aria-checked=true] .switch-knob{background:var(--light);transform:translate(42px)}.switch-row[aria-checked=true] .switch-text{color:var(--night);left:9px;right:auto}.switch-row:hover .switch{border-color:var(--line-strong);box-shadow:var(--glow)}.switch-row:focus-visible .switch{border-color:var(--line-strong);box-shadow:var(--glow)}.sound-prompt{left:var(--safe-left);right:var(--safe-right);bottom:var(--safe-bottom);z-index:3;width:max-content;margin:0 auto;position:fixed}.notice{width:fit-content;max-width:min(var(--card-width), 100%);text-align:center;flex-direction:column;align-items:center;gap:18px;padding:22px 26px;display:flex}.notice.read-only{pointer-events:none}.status-line,.notice.status-card{padding:10px 22px}.notice.status-card .label{margin:0}.notice h2{font-family:var(--display);letter-spacing:.02em;color:var(--light);text-wrap:balance;font-size:17px;font-weight:500;line-height:1.4}.notice>.btn{min-width:160px}.notice-question{align-items:center;gap:12px;display:flex}.notice-question h2{text-align:left;font-size:20px;line-height:1;position:relative;top:2px}.notice>.actions{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:12px;display:grid}.notice>.actions>.btn{white-space:nowrap;min-width:120px;height:34px;padding-inline-start:14px;padding-inline-end:14px;font-size:14px}.notice-icon svg{width:28px;height:28px;fill:var(--neon);filter:drop-shadow(0 0 10px rgba(var(--neon-rgb), .6));display:block}.error-log{left:var(--safe-left);right:var(--safe-right);bottom:var(--safe-bottom);z-index:100;font:12px/1.3 var(--display);color:var(--light);background:rgba(var(--black-rgb), .8);pointer-events:none;flex-direction:column;gap:2px;padding:6px 8px;display:flex;position:fixed}.error-log:empty{display:none}#scene.live{cursor:crosshair}.hud{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.hud-top{top:var(--safe-top);left:var(--safe-left);right:var(--safe-right);height:var(--btn-height);justify-content:center;align-items:center;display:flex;position:absolute}.hud-where{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);flex-direction:column;font-size:14px;font-weight:600;display:flex;position:absolute;left:0}.hud-scene{color:var(--neon)}.hud-status{font-family:var(--big);letter-spacing:.08em;--tube-color:var(--player,rgba(var(--ice-rgb), .8));color:#f4fbff;text-shadow:0 0 3px rgba(var(--white-rgb), .8), 0 0 12px var(--tube-color), 0 0 30px var(--tube-color), 0 0 60px var(--tube-color);font-size:30px}.callouts{justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.callout{--tube-color:var(--player,var(--neon));font-family:var(--big);letter-spacing:.06em;color:#fff4fa;text-shadow:0 0 5px rgba(var(--white-rgb), .9), 0 0 14px var(--tube-color), 0 0 34px var(--tube-color), 0 0 70px var(--tube-color), 0 0 120px var(--tube-color);animation:callout-on var(--callout-ms,1.8s) ease-out forwards;font-size:clamp(42px,9vw,96px);position:absolute}.callout.big{font-size:clamp(64px,15vw,180px)}@keyframes callout-on{0%{opacity:0;transform:scale(1.06)}4%{opacity:1}6%{opacity:.55}8%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0}}.hud-bottom{left:var(--safe-left);right:var(--safe-right);bottom:var(--safe-bottom);flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute}.hud-hint{letter-spacing:.14em;text-transform:uppercase;color:var(--light);text-shadow:0 0 10px var(--night);font-size:16px;font-weight:600}.hud-row{min-height:var(--btn-height);align-items:center;gap:14px;display:flex}.hud-buttons{pointer-events:auto}.hud-buttons .btn{min-width:140px}.board.hidden{display:none}.board-card{flex-direction:column;align-items:center;gap:22px;width:min(760px,100%);max-width:100%;display:flex}.board-card>.label{text-indent:.22em;font-size:16px}.board-title{--tube-color:var(--player,var(--neon));font-family:var(--big);letter-spacing:.06em;color:#fff4fa;text-shadow:0 0 5px rgba(var(--white-rgb), .9), 0 0 14px var(--tube-color), 0 0 34px var(--tube-color), 0 0 70px var(--tube-color), 0 0 120px var(--tube-color);margin:0;font-size:clamp(48px,9vw,88px);font-weight:400;line-height:1.1}.board-seats{grid-template-columns:repeat(auto-fit,minmax(150px,180px));justify-content:center;gap:12px;width:100%;display:grid}.board-seat{--tube-color:var(--player);border:1px solid rgba(var(--player-rgb), .35);background:rgba(var(--player-rgb), .06);font-family:var(--display);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:18px 12px 14px;display:flex}.board-seat.best{border-color:rgba(var(--player-rgb), .9);background:rgba(var(--player-rgb), .18);box-shadow:0 0 26px rgba(var(--player-rgb), .45)}.board-seat.gone{opacity:.45}.board-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--player);font-size:22px;font-weight:600;line-height:1.2;overflow:hidden}.board-points{color:#f4fbff;text-shadow:0 0 3px rgba(var(--white-rgb), .8), 0 0 12px var(--tube-color), 0 0 30px var(--tube-color), 0 0 60px var(--tube-color);font-size:64px;font-weight:600;line-height:1}.board-gained{min-height:1.3em;color:var(--player);font-size:18px;font-weight:600;line-height:1.3}.slate.seats-panel{width:min(720px,100%)}.seats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}@media (max-width:520px){.seats{grid-template-columns:repeat(2,minmax(0,1fr))}}.seat{--team:var(--ice);--team-rgb:var(--ice-rgb);border:1px solid rgba(var(--light-rgb), .12);background:rgba(var(--light-rgb), .03);min-height:92px;color:var(--light);font-family:var(--display);border-radius:8px;flex-direction:column;justify-content:center;align-items:stretch;gap:6px;padding:10px;display:flex}.seat.taken{border-color:rgba(var(--team-rgb), .7);background:rgba(var(--team-rgb), .14);box-shadow:0 0 14px rgba(var(--team-rgb), .25);animation:3.68s infinite seat-beat;animation-delay:calc(var(--seat-index) * .46s)}.seat.dimmed{opacity:.45}@keyframes seat-beat{0%,11%{border-color:rgba(var(--team-rgb), 1);background:rgba(var(--team-rgb), .3);box-shadow:0 0 28px rgba(var(--team-rgb), .6)}14%,to{border-color:rgba(var(--team-rgb), .7);background:rgba(var(--team-rgb), .14);box-shadow:0 0 14px rgba(var(--team-rgb), .25)}}.seat.open{align-items:center}button.seat.open{cursor:pointer}button.seat.open:hover{border-color:rgba(var(--ice-rgb), .5)}button.seat.open:focus-visible{border-color:rgba(var(--ice-rgb), .5)}.seat-plus{font-family:var(--display);color:rgba(var(--ice-rgb), .7);font-size:28px;font-weight:500}.seat-label{letter-spacing:.2em;text-indent:.2em;text-transform:uppercase;color:var(--muted);text-align:center;font-size:12px;font-weight:500}.seat-name{letter-spacing:.04em;text-align:center;color:var(--team);font-size:20px;font-weight:600}.seat .field{min-width:0;height:32px;min-height:32px;color:var(--team);text-align:center;background:0 0;border:none;border-bottom:1px solid #0000;border-radius:0;flex:none;padding:0 4px;font-size:20px}.seat .field::placeholder{color:rgba(var(--team-rgb), .9)}.seat .field:focus{border-bottom-color:rgba(var(--team-rgb), .6)}.seat-row{gap:6px;display:flex}.seat-toggle,.seat-remove{border:1px solid rgba(var(--team-rgb), .45);height:28px;color:var(--light);letter-spacing:.15em;text-indent:.15em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:5px;font-size:12px;font-weight:600}.seat-toggle{flex:1;place-items:center;display:grid}.seat-toggle>span{grid-area:1/1}.seat-toggle>.hidden{visibility:hidden}.seat-remove{width:28px;padding:0}.seat-toggle:hover,.seat-remove:hover{border-color:var(--team);color:var(--light)}
