:root{--bg:#0f0b0d;--ink:#160f12;--cream:#fff4e6;--cream-soft:#fff4e6b8;--line:#fff4e624;--glass:#160f12b3;--slap:#ff3b4e;--slap-deep:#a3172b;--cream-deep:#c4b29a;--zing:#ffd23f;--ready:#3ddc84;--display:"Bagel Fat One", "Bricolage Grotesque", system-ui, sans-serif;color:var(--cream);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Bricolage Grotesque,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);-webkit-tap-highlight-color:transparent;height:100%;margin:0;overflow:hidden}.app{background:radial-gradient(circle at 1px 1px, #fff4e60f 1px, transparent 0) 0 0 / 22px 22px, radial-gradient(ellipse 45% 40% at 22% 18%, #ff3b4e2e, transparent 70%), radial-gradient(ellipse 40% 35% at 80% 85%, #ffd23f1a, transparent 70%), var(--bg);place-items:center;display:grid;position:fixed;inset:0}.phone{aspect-ratio:9/16;background:radial-gradient(ellipse 80% 55% at 50% 38%, #2a2024, var(--ink) 75%);isolation:isolate;max-width:100vw;height:100dvh;position:relative;overflow:hidden}@media (aspect-ratio>=10/16){.phone{height:min(100dvh - 32px,920px);box-shadow:0 0 0 3px var(--ink), 0 0 0 4px #fff4e61f, 0 12px 0 3px var(--slap-deep), 0 40px 90px #000c;border-radius:38px}}.camera,#stage,.dust{width:100%;height:100%;position:absolute;inset:0}.camera{object-fit:cover;display:none}body.live .camera{display:block}.camera.mirror{transform:scaleX(-1)}#stage{touch-action:none}#stage canvas{width:100%;height:100%;display:block}.dust{pointer-events:none;z-index:2}.phone:after{content:"";pointer-events:none;z-index:1;background:linear-gradient(#000000a6,#0000);height:24%;position:absolute;inset:0 0 auto}.logo{align-items:center;gap:6px;display:inline-flex}.logo-mark{flex:none;width:34px;height:auto}.logo-word{letter-spacing:-.02em;color:var(--cream);font-size:1.15rem;font-weight:800}.top{z-index:7;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px;display:flex;position:absolute;inset:0 0 auto}.brand{justify-items:start;gap:6px;display:grid}.online{background:var(--glass);border:1.5px solid var(--line);-webkit-backdrop-filter:blur(12px);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;margin-left:4px;padding:4px 10px 4px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.online i{background:var(--ready);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite breathe;box-shadow:0 0 0 3px #3ddc8433}@keyframes breathe{50%{box-shadow:0 0 0 5px #3ddc8411}}.chip{font:inherit;border:2px solid var(--ink);background:var(--cream);color:var(--ink);box-shadow:0 3px 0 var(--cream-deep), 0 3px 0 2px var(--ink);cursor:pointer;white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:800;transition:transform 80ms,box-shadow 80ms}.chip:active{box-shadow:0 1px 0 var(--cream-deep), 0 1px 0 2px var(--ink);transform:translateY(2px)}.rec-time{background:var(--slap);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-weight:800;display:inline-flex}.rec-time i{background:var(--cream);border-radius:50%;width:9px;height:9px;animation:1s steps(2,start) infinite blink}@keyframes blink{to{visibility:hidden}}.score{z-index:4;pointer-events:none;justify-items:center;display:grid;position:absolute;top:62px;left:50%;translate:-50%}.score strong{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--cream);-webkit-text-stroke:9px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--slap);font-size:4.6rem;font-weight:400;line-height:.95}.score span{background:var(--zing);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);color:var(--ink);letter-spacing:.14em;text-transform:uppercase;border-radius:8px;margin-top:6px;padding:3px 10px 2px;font-size:.8rem;font-weight:800;rotate:-4deg}.score.bump strong{animation:.26s cubic-bezier(.2,1.8,.4,1) bump}@keyframes bump{40%{transform:scale(1.3)rotate(-7deg)}}.start{z-index:6;gap:12px;padding:0 22px;display:grid;position:absolute;inset:72px 0 auto}.start h1{font-family:var(--display);letter-spacing:-.01em;color:var(--cream);-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;margin:0 0 2px;font-size:clamp(2.6rem,13vw,3.5rem);font-weight:400;line-height:.92}.start h1 mark{background:var(--slap);border:3px solid var(--ink);box-shadow:0 6px 0 var(--slap-deep), 0 6px 0 3px var(--ink);color:var(--cream);-webkit-text-stroke:0;border-radius:14px;margin-top:6px;padding:0 12px 4px;display:inline-block;rotate:-3deg}.start p{max-width:30ch;color:var(--cream-soft);margin:0 0 4px;font-size:1.02rem;font-weight:500;line-height:1.35}.start small{color:var(--cream-soft);justify-self:center;font-size:.78rem;font-weight:600}.cta{font:inherit;border:3px solid var(--ink);background:var(--slap);min-height:58px;color:var(--cream);cursor:pointer;box-shadow:0 6px 0 var(--slap-deep), 0 6px 0 3px var(--ink);border-radius:18px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:1.1rem;font-weight:800;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:flex}.cta:active{box-shadow:0 2px 0 var(--slap-deep), 0 2px 0 3px var(--ink);transform:translateY(4px)}.cta:disabled{opacity:.75;cursor:default}.cta svg{flex:none;width:22px;height:22px}.cta.ghost,.cta.alt{background:var(--cream);color:var(--ink);box-shadow:0 5px 0 var(--cream-deep), 0 5px 0 3px var(--ink)}.cta.ghost:active,.cta.alt:active{box-shadow:0 2px 0 var(--cream-deep), 0 2px 0 3px var(--ink)}.cta.ghost{text-align:center;min-height:50px;font-size:.98rem}.controls{z-index:6;padding:0 18px calc(22px + env(safe-area-inset-bottom));justify-items:end;gap:10px;display:grid;position:absolute;inset:auto 0 0 auto}.hint{z-index:6;white-space:nowrap;background:var(--glass);-webkit-backdrop-filter:blur(12px);border:1.5px solid var(--line);border-radius:999px;margin:0;padding:8px 16px;font-size:.9rem;font-weight:700;transition:background .15s,border-color .15s,color .15s;position:absolute;top:168px;left:50%;translate:-50%}.hint.hand-armed{background:var(--ready);border-color:var(--ink);color:var(--ink)}.shutter{border:5px solid var(--cream);width:78px;height:78px;box-shadow:0 0 0 3px var(--ink), inset 0 0 0 3px var(--ink);cursor:pointer;background:0 0;border-radius:50%;padding:0;position:relative}.shutter span{background:var(--slap);border-radius:50%;transition:inset .16s,border-radius .16s;position:absolute;inset:7px}.shutter.on span{border-radius:7px;inset:21px}.shutter.on{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 3px var(--ink), inset 0 0 0 3px var(--ink), 0 0 0 12px #ff3b4e44}}.shutter-label{text-align:center;width:78px;color:var(--cream);text-shadow:0 1px 6px #000;margin:-2px 0 0;font-size:.75rem;font-weight:800}.review{z-index:8;background:var(--ink);grid-template-rows:minmax(0,1fr) auto;display:grid;position:absolute;inset:0}.review video{object-fit:contain;background:#000;width:100%;height:100%;min-height:0}.review-actions{padding:16px 18px calc(18px + env(safe-area-inset-bottom));border-top:2px solid #fff4e614;gap:12px;display:grid}.review-actions .row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.review-actions .chip{min-height:44px;font-size:.95rem}.review-actions .cta{white-space:nowrap;padding:0 10px;font-size:1rem}.hand{border:3px solid var(--slap);width:28px;height:28px;box-shadow:0 0 0 2px var(--ink);pointer-events:none;z-index:7;will-change:transform;background:#fff4e666;border-radius:50%;transition:border-color .12s,background .12s;display:none;position:fixed;top:-14px;left:-14px}.hand.armed{border-color:var(--ready);background:#3ddc8466}.app:not(.mode-play) .hand{visibility:hidden}.loading{z-index:5;text-align:center;background:#0f0b0df0;align-content:start;justify-items:center;gap:10px;padding:30% 24px 0;display:grid;position:absolute;inset:0}.loading.low{align-content:end;padding:0 24px 20%}.loading img{border-radius:20px;width:min(60%,260px);height:auto}.loading .slapping{transform-origin:30% 90%;width:84px;height:auto;animation:.7s ease-in-out infinite slapping}@keyframes slapping{0%,to{transform:rotate(-22deg)}45%{transform:rotate(18deg)translate(6px)}55%{transform:rotate(14deg)translate(4px)}}.loading strong{font-family:var(--display);color:var(--cream);-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;font-size:1.7rem;font-weight:400}.loading p{color:var(--cream-soft);margin:0;font-weight:600}.toast{z-index:10;background:var(--cream);width:max-content;max-width:calc(100% - 32px);color:var(--ink);border:2px solid var(--ink);box-shadow:0 4px 0 var(--ink);text-align:center;border-radius:14px;padding:11px 16px;font-size:.9rem;font-weight:700;position:absolute;top:76px;left:50%;translate:-50%}.drop{z-index:20;border:4px dashed var(--slap);font-family:var(--display);pointer-events:none;background:#0f0b0de6;border-radius:28px;place-content:center;font-size:2rem;display:grid;position:fixed;inset:14px}.icon-btn{border:2px solid var(--ink);background:var(--cream);width:42px;height:42px;box-shadow:0 3px 0 var(--cream-deep), 0 3px 0 2px var(--ink);cursor:pointer;border-radius:50%;place-items:center;font-size:1.2rem;display:grid}.icon-btn:active{box-shadow:0 1px 0 var(--cream-deep), 0 1px 0 2px var(--ink);transform:translateY(2px)}.side{left:14px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:6;gap:12px;display:grid;position:absolute}.round-btn{border:2px solid var(--ink);background:var(--cream);width:64px;color:var(--ink);box-shadow:0 3px 0 var(--cream-deep), 0 3px 0 2px var(--ink);font:inherit;cursor:pointer;border-radius:18px;justify-items:center;gap:2px;padding:8px 0 6px;font-size:.66rem;font-weight:800;display:grid}.round-btn span{font-size:1.25rem;line-height:1}.round-btn:active{transform:translateY(2px)}.link-btn{color:var(--cream);font:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--slap);text-decoration-color:var(--slap);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;justify-self:center;padding:4px 8px;font-size:.9rem;font-weight:700;text-decoration-thickness:2px}.room-card{z-index:5;background:var(--glass);border:1.5px solid var(--line);text-align:center;border-radius:16px;min-width:180px;padding:8px 14px;font-size:.8rem;position:absolute;top:214px;left:50%;translate:-50%}.room-line{background:#fff4e614;border-radius:999px;justify-self:center;margin:0;padding:6px 12px;font-size:.85rem;font-weight:600}.room-card p{margin:0;font-weight:600}.room-card ol{gap:2px;margin:6px 0 0;padding:0;list-style:none;display:grid}.room-card li{justify-content:center;gap:6px;font-weight:600;display:flex}.room-card li.me{color:var(--zing)}.room-card b{font-variant-numeric:tabular-nums}.pop{z-index:9;background:var(--zing);color:var(--ink);border:2px solid var(--ink);white-space:nowrap;pointer-events:none;border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:800;animation:1.1s ease-out forwards pop-up;position:fixed;translate:-50% -50%}@keyframes pop-up{0%{opacity:0;transform:translateY(0)scale(.6)}15%{opacity:1;transform:translateY(-10px)scale(1.1)}to{opacity:0;transform:translateY(-70px)scale(1)}}.sheet-backdrop{z-index:12;background:#0f0b0db3;align-items:end;animation:.16s ease-out fade;display:grid;position:absolute;inset:0}@keyframes fade{0%{opacity:0}}.sheet{max-height:86%;padding:18px 18px calc(20px + env(safe-area-inset-bottom));background:var(--ink);border-top:2px solid #fff4e61f;border-radius:26px 26px 0 0;gap:12px;animation:.22s cubic-bezier(.2,.9,.3,1.1) rise;display:grid;overflow-y:auto}@keyframes rise{0%{transform:translateY(40%)}}.sheet header{justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet h2{font-family:var(--display);margin:0;font-size:1.6rem;font-weight:400;line-height:1.05}.sheet-close{width:36px;height:36px;color:var(--cream);cursor:pointer;background:#fff4e61a;border:0;border-radius:50%;flex:none;font-size:1rem}.sheet-text{color:var(--cream-soft);margin:0;line-height:1.4}.sheet .row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field,.post-score input,.post-score select{width:100%;min-height:48px;color:var(--cream);font:inherit;background:#fff4e60f;border:2px solid #fff4e633;border-radius:14px;padding:0 14px;font-size:1rem;font-weight:600}.field:focus,.post-score input:focus,.post-score select:focus{border-color:var(--zing);outline:none}.post-score select{appearance:none}.post-score select option{color:#000}.consent{color:var(--cream-soft);align-items:flex-start;gap:10px;font-size:.85rem;line-height:1.4;display:flex}.consent input{width:20px;height:20px;accent-color:var(--slap);flex:none;margin:1px 0 0}.link{text-align:center;word-break:break-all;background:#fff4e60f;border:2px dashed #fff4e640;border-radius:14px;padding:12px 14px;font-size:1rem;font-weight:700;display:block}.form-error{color:#ff8c97;margin:0;font-size:.9rem;font-weight:700}.join{gap:12px;display:grid}.tabs{background:#fff4e60f;border-radius:14px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.tabs button{min-height:40px;color:var(--cream-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;font-weight:800}.tabs button[aria-selected=true]{background:var(--cream);color:var(--ink)}.filter{border:2px solid var(--ink);background:var(--zing);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;justify-self:start;padding:6px 12px;font-size:.85rem;font-weight:800}.board{gap:6px;margin:0;padding:0;list-style:none;display:grid}.board li,.board li>button{background:#fff4e60d;border-radius:14px;grid-template-columns:36px 1fr auto;align-items:center;gap:8px;min-height:48px;padding:0 14px 0 8px;display:grid}.board li>button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border:0;padding-right:14px}.board li:has(>button){background:0 0;padding:0;display:block}.board li.me{outline:2px solid var(--zing);background:#ffd23f26}.board .rank{text-align:center;font-size:1.15rem;font-weight:800}.board .who{text-overflow:ellipsis;white-space:nowrap;font-weight:700;display:grid;overflow:hidden}.board .who small{color:var(--cream-soft);font-size:.75rem;font-weight:600}.board strong{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:400}.board-empty{text-align:center;color:var(--cream-soft);margin:8px 0}.board-note{text-align:center;color:var(--cream-soft);margin:0;font-size:.75rem}.post-score{gap:10px;display:grid}.post-score .row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.posted{border:2px solid var(--ink);background:var(--zing);min-height:50px;color:var(--ink);font:inherit;cursor:pointer;border-radius:16px;justify-content:center;align-items:center;gap:8px;font-weight:800;display:flex}@media (prefers-reduced-motion:reduce){.pop,.sheet,.sheet-backdrop{animation:none}.dust{display:none}.shutter.on,.loading .slapping{animation:none}}
