:root{--night:#0f0a12;--plum:#1c1321;--glass:#1c1321bd;--line:#ffffff17;--text:#f6eee4;--muted:#b3a6b6;--lamp:#f2b84b;--lamp-deep:#d98d2b;--cup:#e0383f;--danger:#ff6b5a;--display:"Unbounded", "Arial Black", system-ui, sans-serif;--body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--radius:22px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--night);color:var(--text);font:16px/1.5 var(--body);-webkit-font-smoothing:antialiased;overflow:hidden}[hidden]{display:none!important}#table{width:100%;height:100%;transition:filter .5s,transform .5s;display:block;position:fixed;inset:0}body:not(.playing) #table{filter:blur(5px)brightness(.55)saturate(.9);transform:scale(1.04)}.screen{padding:max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));position:fixed;inset:0;overflow-y:auto}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--lamp);margin:0;font-size:12px;font-weight:700}h1{font-family:var(--display);letter-spacing:-.02em;text-wrap:balance;background:linear-gradient(180deg, #fff3da 0%, var(--lamp) 70%, var(--lamp-deep) 100%);color:#0000;filter:drop-shadow(0 6px 30px #f2b84b59);-webkit-background-clip:text;background-clip:text;margin:10px 0 18px;font-size:clamp(56px,11vw,120px);font-weight:800;line-height:.9}h2{font-family:var(--display);text-wrap:balance;margin:6px 0 14px;font-size:26px;font-weight:600;line-height:1.15}.lede{color:#e4d8dc;max-width:34ch;margin:0;font-size:18px}.hint{color:var(--muted);margin:10px 0 0;font-size:14px}.error{color:var(--danger);min-height:1.5em;margin:10px 0 0;font-size:14px}.panel{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px)saturate(1.2);padding:26px;box-shadow:0 30px 80px #0000008c,inset 0 1px #ffffff0f}#home{grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:center;gap:40px;max-width:1100px;margin:0 auto;display:grid}#home:before{content:"";z-index:-1;background:linear-gradient(90deg,#0f0a12eb 0%,#0f0a128c 55%,#0f0a12bf 100%);position:fixed;inset:0}#home>*{position:relative}@media (width<=820px){#home{grid-template-columns:minmax(0,1fr);align-content:start;gap:24px}.lede{font-size:16px}}.tabs{background:#0000004d;border-radius:999px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:20px;padding:4px;display:grid}.tabs button{color:var(--muted);font:600 14px var(--body);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:10px}.tabs button[aria-selected=true]{color:var(--text);background:#ffffff1a}.form{gap:14px;display:grid}.field{gap:6px;display:grid}.field>span{color:var(--muted);font-size:13px;font-weight:600}input:not([type=checkbox]){border:1px solid var(--line);width:100%;color:var(--text);font:500 16px var(--body);background:#00000059;border-radius:12px;outline:none;padding:12px 14px;transition:border-color .15s,box-shadow .15s}input:not([type=checkbox]):focus{border-color:var(--lamp);box-shadow:0 0 0 3px #f2b84b33}.code-input{font-family:var(--display);letter-spacing:.3em;text-transform:uppercase}.row{flex-wrap:wrap;align-items:end;gap:16px 24px;display:flex}button{font-family:var(--body)}.primary{cursor:pointer;font:700 16px var(--body);color:#22140a;background:linear-gradient(180deg, #ffd27a, var(--lamp) 55%, var(--lamp-deep));border:0;border-radius:999px;padding:14px 22px;transition:transform .12s,box-shadow .12s,filter .12s;box-shadow:0 10px 30px #f2b84b40,inset 0 1px #ffffff80}.primary:hover{transform:translateY(-1px);box-shadow:0 14px 34px #f2b84b59,inset 0 1px #ffffff80}.primary:active{transform:translateY(1px)}.primary:disabled{filter:grayscale(.8)brightness(.6);cursor:default;box-shadow:none;transform:none}.ghost{color:var(--text);border:1px solid var(--line);font:600 15px var(--body);cursor:pointer;background:0 0;border-radius:999px;padding:12px 18px;transition:background .15s}.ghost:hover{background:#ffffff0f}.ghost.small{padding:8px 14px;font-size:13px}.entry>.ghost{width:100%;margin-top:6px}:focus-visible{outline:2px solid var(--lamp);outline-offset:3px}.stepper{border:1px solid var(--line);background:#00000059;border-radius:999px;align-items:center;display:inline-flex}.stepper button{width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:999px;font-size:20px}.stepper button:hover{background:#ffffff14}.stepper output{text-align:center;min-width:2ch;font:600 18px var(--display);font-variant-numeric:tabular-nums}.switch{cursor:pointer;align-items:center;gap:10px;padding-bottom:8px;font-size:14px;font-weight:600;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch .track{background:#ffffff24;border-radius:999px;flex:none;width:44px;height:26px;transition:background .15s;position:relative}.switch .track:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch input:checked+.track{background:var(--lamp)}.switch input:checked+.track:after{transform:translate(18px)}.switch input:focus-visible+.track{outline:2px solid var(--lamp);outline-offset:3px}.switch input:disabled~*{opacity:.5}#lobby{place-items:center;display:grid}#lobby:before{content:"";z-index:-1;background:#0f0a1299;position:fixed;inset:0}.lobby{width:min(560px,100%);position:relative}.lobby-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;display:flex}.code{font:800 clamp(34px, 8vw, 48px)/1 var(--display);letter-spacing:.12em;color:var(--text);margin:6px 0 0}.seats{grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:8px;margin:20px 0;padding:0;list-style:none;display:grid}.seats li{border:1px solid var(--line);background:#00000047;border-radius:14px;align-items:center;gap:10px;min-width:0;padding:10px 12px;font-weight:600;display:flex}.seats li .dot{border-radius:50%;flex:none;width:10px;height:10px}.seats li .who{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.seats li .tag{letter-spacing:.08em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.seats li.bot{color:var(--muted);border-style:dashed}.seats li.empty{color:#7d7180;background:0 0;border-style:dashed}.seats li.offline .who{opacity:.5}.seats li .kick{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:16px}.seats li .kick:hover{color:var(--danger)}.host-controls{border-top:1px solid var(--line);flex-wrap:wrap;align-items:end;gap:16px 28px;padding-top:16px;display:flex}.actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.hud{pointer-events:none;padding:0;overflow:hidden}.hud>*{pointer-events:auto}.topbar{top:max(14px, env(safe-area-inset-top));flex-wrap:wrap;align-items:center;gap:10px;display:flex;position:absolute;left:16px;right:16px}.topbar .ghost{background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.pill{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;display:inline-flex}.pill b{font:700 16px var(--display)}.pill-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}#hud-code-pill{margin-left:auto}.loser-dots{gap:3px;display:inline-flex}.loser-dots i{background:var(--danger);width:7px;height:7px;box-shadow:0 0 8px var(--danger);border-radius:50%}.feed{pointer-events:none;gap:6px;width:min(360px,100% - 32px);margin:0;padding:0;list-style:none;display:grid;position:absolute;top:70px;left:16px}.feed li{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#120c14b8;border-radius:12px;padding:8px 12px;font-size:14px;transition:opacity .4s;animation:.25s ease-out feedIn}.feed li.hot{border-color:#f2b84b80}.feed li.bad{border-color:#ff6b5a8c}.feed li .n{font-weight:700}@keyframes feedIn{0%{opacity:0;transform:translateY(-6px)}}.shotbar{left:50%;bottom:max(18px, env(safe-area-inset-bottom));background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:20px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;width:min(620px,100% - 32px);padding:12px;display:grid;position:absolute;transform:translate(-50%)}.meter{border:1px solid var(--line);background:#00000073;border-radius:999px;height:18px;transition:opacity .2s;position:relative;overflow:hidden}.meter.idle{opacity:.35}.meter.hot{border-color:var(--danger);box-shadow:0 0 0 3px #ff6b5a33}.zone{background:linear-gradient(#a0eb788c,#6ec85a73);border-inline:2px solid #b8f39a;position:absolute;top:0;bottom:0}.needle{will-change:transform;background:#fff;border-radius:2px;width:4px;position:absolute;top:-2px;bottom:-2px;left:-2px;box-shadow:0 0 10px #fff}.needle:before{content:"";background:linear-gradient(270deg,#ffffff80,#fff0);width:30px;position:absolute;top:5px;bottom:5px;right:100%}.needle.rev:before{background:linear-gradient(90deg,#ffffff80,#fff0);left:100%;right:auto}.cool{background:var(--lamp);width:0;height:3px;position:absolute;bottom:0;left:0}.bounce kbd{font:600 11px var(--body);background:#0000002e;border-radius:6px;margin-left:6px;padding:2px 6px}.shot-hint{color:var(--muted);text-align:center;grid-column:1/-1;min-height:1.4em;margin:0;font-size:13px}.pick{background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #f2b84b80;border-radius:18px;width:min(560px,100% - 32px);padding:16px;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}.pick p{color:var(--lamp);margin:0 0 10px;font-weight:700}#pick-list{flex-wrap:wrap;gap:8px;display:flex}#pick-list button{align-items:center;gap:8px;display:inline-flex}#pick-list .dot{border-radius:50%;width:9px;height:9px}.end{background:#0a060c8c;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.end-card{width:min(460px,100%);animation:.35s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(14px)scale(.98)}}.losers{gap:6px;margin:0 0 6px;padding:0;list-style:none;display:grid}.losers li{background:#ff6b5a1a;border:1px solid #ff6b5a59;border-radius:12px;justify-content:space-between;padding:10px 14px;font-weight:600;display:flex}.losers li span{color:var(--muted);text-align:right;font-size:14px;font-weight:500}.losers.board li{background:#ffffff0a;border-color:#ffffff1a;padding:7px 14px}.board-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:14px 0 6px;font-size:13px;font-weight:600}.losers li.chore-table{background:#5ec8e51a;border-color:#5ec8e559}.chores{width:min(340px,100% - 32px);padding:18px;position:absolute;top:70px;right:16px}.chores h2{margin:4px 0 12px;font-size:20px}#chores-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}#chores-list li{gap:5px;font-size:14px;display:grid}#chores-list .row{justify-content:space-between;gap:8px;display:flex}#chores-list .row b{font-weight:700}#chores-list .row span{color:var(--muted);font-variant-numeric:tabular-nums}#chores-list .bar{background:#0006;border-radius:999px;height:8px;overflow:hidden}#chores-list .bar i{border-radius:inherit;background:linear-gradient(90deg, #ffd27a, var(--lamp));height:100%;transition:width .2s;display:block}#chores-list li.table .bar i{background:linear-gradient(90deg,#9be7ff,#5ec8e5)}#chores-list li.done .row span{color:#9be36b}.scrub{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.scrub button{touch-action:manipulation;padding:16px;font-size:16px}.hud .pill,.hud .ghost,.feed li,.shotbar,.pick,.hud .panel{-webkit-backdrop-filter:none;background:#18101ded}.toast{border:1px solid var(--line);z-index:10;background:#2a1f2e;border-radius:999px;padding:10px 16px;font-size:14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.tap-hint{display:none}@media (hover:none) and (pointer:coarse){.bounce kbd{display:none}.tap-hint{display:inline}}@media (width<=600px){.panel{padding:20px}.topbar{gap:8px;left:12px;right:12px}.pill{padding:7px 12px}#hud-code-pill .pill-label{display:none}.feed{top:calc(max(14px, env(safe-area-inset-top)) + 46px);gap:4px;width:calc(100% - 24px);left:12px}.feed li{border-radius:10px;padding:6px 10px;font-size:13px}.feed li:nth-child(n+3){display:none}.feed li:nth-child(2){opacity:.6}.chores{top:calc(max(14px, env(safe-area-inset-top)) + 46px);width:auto;padding:16px;left:12px;right:12px}.hud:has(.chores:not([hidden])) .feed{display:none}.shotbar{width:auto;left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));border-radius:24px;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px;transform:none}.shot-hint{color:var(--text);order:-1;font-size:14px}.meter{height:26px}.bounce{letter-spacing:.01em;touch-action:manipulation;width:100%;padding:18px;font-size:20px}.pick{width:auto;left:12px;right:12px;bottom:calc(max(12px, env(safe-area-inset-bottom)) + 168px);transform:none}#pick-list button{flex:calc(50% - 4px);justify-content:center;padding:14px}.scrub button{padding:22px 16px;font-size:18px}.end{align-items:end;padding:12px}.end-card{max-height:calc(100dvh - 24px);overflow-y:auto}.end .actions button{flex:100%}#lobby{place-items:start center}.seats{grid-template-columns:1fr 1fr;margin:16px 0}.seats li{gap:8px;padding:9px 10px}.seats li:has(.tag){grid-column:1/-1}.lobby .actions{bottom:calc(-1 * max(24px, env(safe-area-inset-bottom)));padding:14px 20px max(14px, env(safe-area-inset-bottom));border-radius:0 0 var(--radius) var(--radius);background:linear-gradient(#1c132100,#1c1321fa 30%);flex-wrap:nowrap;margin:18px -20px -20px;position:sticky}.lobby .actions .primary{flex:1}}@media (height<=500px) and (orientation:landscape){#home{grid-template-columns:minmax(0,1fr) minmax(0,380px);align-items:start;gap:24px}h1{margin:6px 0 10px;font-size:56px}.lede{font-size:15px}.panel{padding:18px}.form{gap:10px}.feed{display:none}.shotbar{width:min(560px,100% - 24px);bottom:max(8px, env(safe-area-inset-bottom));padding:8px 10px}.shot-hint{display:none}.topbar{top:max(8px, env(safe-area-inset-top))}.chores{max-height:calc(100dvh - 140px);top:56px;overflow-y:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
