:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1d1a2b;--panel:#2a2540;--panel-2:#353052;--fg:#fff7ec;--accent:#ff9a3c;--accent-fg:#1d1a2b;--muted:#a49cc0;--good:#8bdc65;--bad:#ff5d6c;--radius:14px;--dvh:1vh}@supports (height:1dvh){:root{--dvh:1dvh}}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{min-height:calc(100 * var(--dvh));background:var(--bg);color:var(--fg);padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom);-webkit-tap-highlight-color:transparent;flex-direction:column;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;display:flex}#scene{z-index:-1;position:fixed;inset:0}main{flex:1;width:100%;max-width:1100px;margin:0 auto}main[hidden]{display:none}html:has(body[data-screen=task]){overscroll-behavior:none;overflow:hidden}body[data-screen=task]{height:calc(100 * var(--dvh));overscroll-behavior:none;min-height:0;overflow:hidden}h1{color:var(--accent);letter-spacing:-.02em;margin:0;font-size:clamp(2.5rem,11vw,4.5rem);line-height:1.05}h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 8px;font-size:.85rem}.muted{color:var(--muted)}.error{color:var(--bad);min-height:1.2em;margin:8px 0}.grow{flex:1}button{font:inherit;color:var(--fg);background:var(--panel-2);border-radius:var(--radius);cursor:pointer;touch-action:manipulation;border:0;min-height:48px;padding:0 18px;font-weight:600}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.45;cursor:default}#view button:disabled{opacity:1;background:var(--panel-2);color:var(--muted)}#view button.primary:disabled{background:color-mix(in srgb, var(--accent) 28%, var(--panel));color:color-mix(in srgb, var(--fg) 70%, var(--panel))}button.primary{background:var(--accent);color:var(--accent-fg)}button.small{min-height:38px;padding:0 12px;font-size:.9rem}button.ghost{box-shadow:inset 0 0 0 2px var(--panel-2);background:0 0}button.link{color:var(--muted);background:0 0;min-height:40px;text-decoration:underline}a.button{color:var(--fg);border-radius:var(--radius);touch-action:manipulation;justify-content:center;align-items:center;min-height:48px;padding:0 18px;font-weight:600;text-decoration:none;display:flex}a.button.ghost{box-shadow:inset 0 0 0 2px var(--panel-2)}a.button:active{transform:scale(.97)}button.icon{min-width:40px;min-height:40px;padding:0}input{font:inherit;color:var(--fg);background:var(--panel);border:2px solid var(--panel-2);border-radius:var(--radius);width:100%;min-height:52px;padding:0 14px;font-size:1.15rem}input:focus{border-color:var(--accent);outline:none}#mute{top:calc(env(safe-area-inset-top) + 8px);z-index:10;background:#2a2540cc;position:fixed;right:10px}#leave{top:calc(env(safe-area-inset-top) + 8px);z-index:10;min-height:40px;color:var(--muted);background:#2a2540cc;padding:0 10px;font-size:.8rem;position:fixed;left:10px}#net{top:calc(env(safe-area-inset-top) + 8px);z-index:10;background:var(--bad);color:#fff;border-radius:999px;padding:6px 14px;font-weight:600;position:fixed;left:50%;transform:translate(-50%)}.home,.lobby,.end{text-align:center;background:var(--bg);max-width:460px;box-shadow:0 0 0 1px var(--panel-2), 0 12px 32px #0006;border-radius:22px;flex-direction:column;align-items:stretch;gap:10px;margin:56px auto 24px;padding:22px 18px 18px;display:flex}.home h1{font-size:clamp(2.5rem,11vw,3.5rem)}.home .rejoin{flex-direction:column;gap:8px;margin:0 0 8px;display:flex}.home .rejoin[hidden],.home .rejoin [hidden]{display:none}.home .rejoin p{margin:0;font-weight:600}.home .error:empty{min-height:0;margin:0}.tagline{margin:0 0 18px;font-size:1.15rem}.field{text-align:left;color:var(--muted);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.or{color:var(--muted);margin:14px 0 0}.join{gap:8px;display:flex}.join input{text-transform:uppercase;letter-spacing:.3em;text-align:center;font-weight:700}.code{letter-spacing:.15em;color:var(--accent);margin:0;font-size:clamp(3.5rem,20vw,6rem);font-weight:800}.players,.team,.jobs{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.players li{background:var(--panel);border-radius:var(--radius);text-align:left;padding:12px 14px}.dot{vertical-align:-.05em;border-radius:50%;width:.8em;height:.8em;margin-right:.4em;display:inline-block}.tag{background:var(--panel-2);color:var(--muted);border-radius:999px;margin-left:4px;padding:2px 8px;font-size:.75rem}.hud{z-index:5;background:var(--bg);flex-direction:column;align-items:center;margin:0 -12px;padding:4px 72px 6px;display:flex;position:sticky;top:0}.timer{font-variant-numeric:tabular-nums;color:var(--accent);font-size:2.6rem;font-weight:800;line-height:1.1}.timer:empty{display:none}.count{color:var(--muted);font-size:.85rem}.status{background:var(--panel);border-radius:var(--radius);margin:0;padding:12px 14px;line-height:1.5}.controls{flex-wrap:wrap;gap:8px;margin:10px 0 0;display:flex}.controls .primary{white-space:nowrap;flex:auto}.cols{gap:0 20px;display:grid}@media (width>=760px){.cols{grid-template-columns:1.6fr 1fr;align-items:start}}.seat em{color:var(--muted);font-style:normal}.team li{background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:4px;padding:10px 14px;display:flex}.chip{background:var(--panel-2);border-radius:999px;padding:3px 9px;font-size:.8rem}.chip.on{background:var(--accent);color:var(--accent-fg)}.job{background:var(--panel);border-radius:var(--radius);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.job.done{opacity:.55}.job.active{box-shadow:inset 0 0 0 2px var(--good)}.jobhead{flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex}.jobhead .muted{font-size:.9rem}.stars{color:var(--accent);letter-spacing:1px;white-space:nowrap;font-size:.85rem}.stars i{opacity:.3;font-style:normal}.seats{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.seat{background:var(--panel-2);border-radius:999px;padding:6px 12px;font-size:.95rem}.seat.free{color:var(--muted)}.seat.helper{box-shadow:inset 0 0 0 1px var(--panel-2);background:0 0;padding:4px 10px;font-size:.85rem}button.hop{background:color-mix(in srgb, var(--good) 30%, var(--panel-2))}.take-play{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.take-play button.small{min-height:44px}.tag.play{margin-left:0}.bar-progress{background:var(--panel-2);border-radius:3px;height:5px;overflow:hidden}.bar-progress i{background:var(--good);height:100%;transition:width .3s;display:block}#leaveMenu,#leaveConfirm{background:var(--panel);width:min(420px,100% - 32px);color:var(--fg);border:2px solid var(--accent);border-radius:var(--radius);padding:18px;font-size:1.05rem;line-height:1.45}#leaveMenu::backdrop,#leaveConfirm::backdrop{background:#0f0c1ab3}#leaveMenu p,#leaveConfirm p{margin:0 0 16px}.leave-options{flex-direction:column;gap:10px;display:flex}.leave-options button{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.leave-options .opt{font-size:1.1rem}.leave-options .why{color:var(--muted);font-size:.9rem;font-weight:400}#leaveMenu .cancel{width:100%;margin-top:12px}.confirm-buttons{flex-wrap:wrap;gap:8px;display:flex}.confirm-buttons button{flex:140px}#teamBox{background:var(--panel);width:min(420px,100% - 32px);color:var(--fg);border:2px solid var(--accent);border-radius:var(--radius);padding:18px}#teamBox::backdrop{background:#0f0c1ab3}#teamBox p{margin:0 0 12px;line-height:1.4}#teamBox input{width:100%;margin-bottom:4px}.end .place,.end .team-name{margin:0}.hiscore{text-align:left;flex-direction:column;gap:8px;display:flex}.hiscore .shape{text-align:center;margin:0}.hiscore details{color:var(--muted);font-size:.9rem}.hiscore summary{cursor:pointer;text-align:center}.scores{border-collapse:collapse;width:100%;font-size:.95rem}.scores td{border-top:1px solid var(--panel-2);padding:6px 4px}.scores .rank,.scores .time{font-variant-numeric:tabular-nums;white-space:nowrap}.scores .rank{color:var(--muted);width:3.2em}.scores .name{overflow-wrap:anywhere}.scores .time{text-align:right;font-weight:600}.scores .date{text-align:right;color:var(--muted);white-space:nowrap;font-size:.8rem}.scores tr.mine td{background:var(--panel-2);color:var(--fg)}.pager{grid-template-columns:1fr 1fr;gap:8px;display:grid}.controls>p{align-self:center;margin:0}#settings{width:min(520px,100% - 24px);max-height:calc(100 * var(--dvh) - 24px);overscroll-behavior:contain;background:var(--panel);color:var(--fg);border:2px solid var(--accent);border-radius:var(--radius);padding:0 16px 16px;overflow-y:auto}#settings::backdrop{background:#0f0c1ab3}#settings h3{margin:16px 0 8px;font-size:1rem}#settings>p{margin:0;line-height:1.4}.settings-head{z-index:1;background:var(--panel);justify-content:space-between;align-items:center;padding:12px 0 8px;display:flex;position:sticky;top:0}.settings-head h2{margin:0}.tasks-setup{flex-direction:column;gap:8px;display:flex}.tasks-setup h2{margin:4px 0 0}.tasks-setup p{margin:0;line-height:1.4}.modes{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.modes button:disabled{opacity:1}.modes button:disabled:not(.primary){opacity:.55}.count-pick{align-items:center;gap:12px;display:flex}.count-pick label{flex:1;font-weight:600}.count-pick select{font:inherit;font-variant-numeric:tabular-nums;color:var(--fg);background:var(--panel-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23fff7ec' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center;border:2px solid var(--panel-2);border-radius:var(--radius);cursor:pointer;appearance:none;touch-action:manipulation;min-height:48px;padding:0 44px 0 16px;font-weight:600}.count-pick select:focus-visible{border-color:var(--accent);outline:none}.left-out{color:var(--muted);margin:8px 0 0}.kinds{margin:0;padding:0;list-style:none}.kinds li{border-top:1px solid var(--panel-2);align-items:center;gap:10px;min-height:56px;padding:4px 0;display:flex}.kinds .kind{flex-direction:column;flex:1;min-width:0;display:flex}.kinds li.off .kind b{color:var(--muted)}.kinds .n{text-align:center;font-variant-numeric:tabular-nums;min-width:2ch;font-size:1.2rem}.stepper{align-items:center;gap:6px;display:flex}.stepper button{min-width:48px;padding:0;font-size:1.4rem}#task{flex-direction:column;min-height:0;display:flex}#task[hidden]{display:none}.taskbar{align-items:center;gap:10px;min-height:48px;margin-bottom:6px;display:flex}.taskbar b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.partner{color:var(--muted);margin:-6px 0 6px}.partner[hidden]{display:none}.helpbar{border-radius:var(--radius);margin:0 0 8px;padding:8px 12px;line-height:1.4}.helpbar.play{background:color-mix(in srgb, var(--good) 22%, var(--panel));box-shadow:inset 0 0 0 2px var(--good)}.helpbar.watch{background:var(--panel);box-shadow:inset 0 0 0 2px var(--accent)}.helpbar[hidden]{display:none}.taskroot.watching{cursor:not-allowed;filter:saturate(.85)}.taskroot{border-radius:var(--radius);flex-direction:column;flex:1;min-height:0;display:flex}#task>.taskroot{overscroll-behavior:contain;overflow-y:auto}@media (height<=600px){body[data-screen=task] .hud{flex-direction:row;justify-content:center;align-items:center;gap:4px 10px;min-height:52px;padding-top:0;padding-bottom:0}body[data-screen=task] .timer{font-size:2rem}body[data-screen=task] .count{max-width:6.5em;font-size:.8rem;line-height:1.15}body[data-screen=task] .taskbar{min-height:40px;margin-bottom:4px}body[data-screen=task] .partner{margin:-4px 0 4px;font-size:.9rem}body[data-screen=task] footer{padding:2px 0 4px;font-size:.72rem}}.flash-miss{animation:.35s flash-miss}.flash-ok{animation:.25s flash-ok}@keyframes flash-miss{0%,to{background:0 0;transform:none}25%{background:#ff5d6c40;transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes flash-ok{50%{background:#8bdc6526}}.stamp{z-index:9;cursor:pointer;touch-action:manipulation;background:#1d1a2b59;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.stamp-mark{text-transform:uppercase;color:var(--good);background:#1d1a2be0;border:.1em solid;border-radius:.25em;max-width:100%;min-height:0;padding:.2em .45em;font-size:clamp(2rem,10vw,4.5rem);font-weight:800;line-height:1.1;animation:.35s cubic-bezier(.3,1.4,.5,1) both stamp;transform:rotate(-8deg);box-shadow:0 6px 24px #00000073}@keyframes stamp{0%{opacity:0;transform:rotate(-8deg)scale(2.2)}55%{opacity:1;transform:rotate(-8deg)scale(.92)}to{opacity:1;transform:rotate(-8deg)scale(1)}}@media (prefers-reduced-motion:reduce){.stamp-mark,.stamp-mark:active:not(:disabled){animation:none;transform:rotate(-8deg)}}.ph{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:20px 0;display:flex}.ph-note{color:var(--muted);font-size:.85rem}.ph-big{background:var(--accent);min-width:140px;min-height:90px;color:var(--accent-fg);font-size:2rem}.ph-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ph-say{color:var(--accent);margin:0;font-size:5rem;font-weight:800}.end h1{margin-top:30px}.end.lost h1{color:var(--bad)}.end .big{font-size:1.3rem}.end .best{color:var(--fg);margin:0}.end .best b{color:var(--accent)}#caption{left:50%;bottom:calc(env(safe-area-inset-bottom) + 40px);border:2px solid var(--accent);border-radius:var(--radius);text-align:center;opacity:0;pointer-events:none;z-index:20;background:#141120f0;width:min(560px,100% - 24px);padding:12px 16px;font-size:1.05rem;line-height:1.4;transition:opacity .3s,transform .3s;position:fixed;transform:translate(-50%,20px)}#caption.show{opacity:1;transform:translate(-50%)}body[data-screen=task] #caption{top:calc(env(safe-area-inset-top) + 66px);padding:8px 12px;font-size:.9rem;bottom:auto;transform:translate(-50%,-20px)}body[data-screen=task] #caption.show{transform:translate(-50%)}footer{text-align:center;color:var(--muted);padding:12px 0;font-size:.8rem}footer a{color:inherit}
