:root{--bg:#000;--surface:#141414;--surface2:#1f1f1f;--line:#2a2a2a;--text:#fff;--muted:#8e8e93;--yellow:#f2c400;--yellow-dim:#6b5600;--brown:#7a4b12;--red:#ff453a;--green:#30d158;--radius:14px;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-user-select:none;user-select:none;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,system-ui,sans-serif}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input{font:inherit}.app{max-width:430px;min-height:100dvh;padding-bottom:var(--sab);flex-direction:column;margin:0 auto;display:flex}.topbar{height:calc(52px + var(--sat));padding:var(--sat) 8px 0;background:var(--bg);z-index:5;grid-template-columns:44px 1fr 44px;align-items:center;display:grid;position:sticky;top:0}.topbar .icon{width:44px;height:44px;color:var(--text);border-radius:22px;place-items:center;display:grid}.topbar .icon:active{background:var(--surface)}.topbar .icon svg{width:22px;height:22px}.wordmark{text-align:center;letter-spacing:-.04em;font-size:22px;font-weight:800}.wordmark b{color:var(--yellow);font-weight:800}.main{flex-direction:column;flex:1;gap:12px;padding:0 16px 16px;display:flex}.stage{aspect-ratio:1/1.1;background:var(--surface);border-radius:20px;place-items:center;display:grid;position:relative;overflow:hidden}.stage .floor{background:linear-gradient(#0000,#7a4b1240);height:22%;position:absolute;bottom:0;left:0;right:0}.stage.thirsty{box-shadow:inset 0 0 0 2px var(--yellow);background:#1a1600}.stage.late{box-shadow:inset 0 0 0 2px var(--red);background:#1a0705}.stage.flash{animation:.25s 4 flash}@keyframes flash{50%{background:var(--yellow)}}.eel{touch-action:manipulation;will-change:transform;width:100%;height:auto}.eel-body{fill:var(--eel);transition:fill .6s}.eel-outline{fill:#4a2e0a;stroke:#4a2e0a;stroke-width:6px;stroke-linejoin:round}.eel-belly{fill:var(--belly);transition:fill .6s}.eel-fin{fill:var(--brown)}.eel-spot{fill:#c48a1e;opacity:.55}.leder .shorts{fill:#6e4b2a;stroke:#3d2914;stroke-width:1.5px;stroke-linejoin:round}.leder .stitch{fill:none;stroke:#9cc46f;stroke-width:1.2px;stroke-dasharray:2 2;stroke-linecap:round}.leder .strap{fill:none;stroke:#6e4b2a;stroke-width:4.5px;stroke-linecap:round}.leder .strap-line{fill:none;stroke:#9cc46f;stroke-width:1.2px;stroke-linecap:round}.leder .steg{fill:#6e4b2a;stroke:#3d2914;stroke-width:1.2px}.leder .petal{fill:#fff}.leder .pistil{fill:var(--yellow)}.hat .felt{fill:#4a7a3f;stroke:#2b4a25;stroke-width:1.5px;stroke-linejoin:round}.hat .brim{fill:none;stroke:#2b4a25;stroke-width:4px;stroke-linecap:round}.hat .band{fill:none;stroke:#2b4a25;stroke-width:3px}.hat .feather{fill:none;stroke:#fff;stroke-width:2.5px;stroke-linecap:round}.hat .feather-tip{fill:var(--red)}.face .eye{fill:#111}.face .glint{fill:#fff}.face .lid{fill:var(--eel)}.face .cheek{fill:#ff7a7a;opacity:.7}.face .mouth,.face .brow,.face path{fill:none;stroke:#111;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.face .mouth-open{fill:#5a1a1a;stroke:#111;stroke-width:1.5px}.face .tear{fill:#7fc8ff;stroke:none;animation:1.8s infinite tear}.face .bubble{fill:none;stroke:#fff;stroke-width:1.2px;opacity:.6;animation:2.4s infinite bubble}.face .bubble2{animation-delay:.8s}.face .blink{transform-box:fill-box;transform-origin:50%;animation:4.5s infinite blink}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes tear{0%{opacity:0;transform:translateY(0)}30%{opacity:1}to{opacity:0;transform:translateY(14px)}}@keyframes bubble{0%{opacity:0;transform:translateY(0)}40%{opacity:.7}to{opacity:0;transform:translateY(-14px)}}.eel-gone{place-items:center;width:100%;height:100%;display:grid}.eel-sign{border:2px solid var(--brown);color:var(--muted);border-radius:6px;padding:8px 14px;font-weight:700;position:relative;transform:rotate(-4deg)}.eel-sign:after{content:"";background:var(--brown);width:3px;height:40px;position:absolute;top:100%;left:50%}.card{background:var(--surface);border-radius:var(--radius);padding:14px 16px}.card .title{font-size:17px;font-weight:700}.card .sub{color:var(--muted);margin-top:2px;font-size:14px}.card.center{text-align:center}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.pill{background:var(--surface2);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.pill.ok{color:var(--green)}.pill.late{color:var(--red)}.pill.warn{color:var(--yellow)}.countdown{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:56px;font-weight:800;line-height:1}.countdown.late{color:var(--red);font-size:40px}.btn{background:var(--text);color:#000;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:100%;height:56px;font-size:18px;font-weight:800;transition:transform .1s;display:flex}.btn:active{transform:scale(.97)}.btn.yellow{background:var(--yellow)}.btn.ghost{background:var(--surface2);color:var(--text);height:46px;font-size:15px;font-weight:600}.btn:disabled{opacity:.5}.bottle{transform-origin:20% 90%;width:34px;height:74px;transition:transform .4s;position:absolute;top:12%;right:10%}.bottle.pouring{transform:rotate(-110deg)translate(-10px,10px)}.stream{background:linear-gradient(#ffe066,#f2c400);border-radius:3px;width:6px;height:0;animation:.9s forwards pour;position:absolute;top:26%;right:24%}@keyframes pour{20%{height:0}60%{height:34%}to{opacity:0;height:34%}}.hero{text-align:center;padding:22px 16px 18px}.hero .big{letter-spacing:-.04em;font-size:64px;font-weight:800;line-height:1}.hero .big small{color:var(--muted);font-size:28px;font-weight:700}.hero .label{color:var(--muted);margin-top:8px;font-size:13px}.trio{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.trio .card{text-align:center;padding:12px 8px}.trio .v{letter-spacing:-.02em;font-size:22px;font-weight:800}.trio .k{color:var(--muted);margin-top:2px;font-size:12px}.grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cell{aspect-ratio:1;background:var(--surface2);color:var(--muted);border-radius:8px;place-items:center;font-size:11px;font-weight:600;display:grid}.cell.ok{background:var(--yellow);color:#000}.cell.late{background:var(--yellow-dim);color:#fff}.cell.miss{color:var(--red);background:#3a1210}.cell.today{outline:2px solid var(--text);outline-offset:-2px}.legend{color:var(--muted);gap:14px;margin-top:10px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}.h{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 6px;font-size:13px;font-weight:700}.list{flex-direction:column;gap:2px;display:flex}.list .item{background:var(--surface);border-radius:10px;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.list .item.me{outline:1.5px solid var(--yellow)}.list .rank{color:var(--muted);font-size:13px;font-weight:700}.list .name{font-weight:600}.list .meta{color:var(--muted);font-size:12px}.list .score{font-variant-numeric:tabular-nums;font-size:18px;font-weight:800}.list .item button.x{color:var(--muted);margin-left:6px;padding:4px 6px;font-size:12px}.form{gap:8px;margin:8px 0;display:flex}.input{border:1px solid var(--line);background:var(--surface);min-width:0;height:46px;color:var(--text);border-radius:12px;outline:none;flex:1;padding:0 14px}.input:focus{border-color:var(--yellow)}.input.short{flex:0 0 90px}.overlay{z-index:20;background:#000000b3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:430px;padding:16px 16px calc(20px + var(--sab));border-radius:20px 20px 0 0;flex-direction:column;gap:10px;animation:.25s ease-out up;display:flex}@keyframes up{0%{opacity:0;transform:translateY(40px)}}.sheet .grab{background:var(--line);border-radius:2px;width:36px;height:4px;margin:0 auto 6px}.toggle{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.toggle:last-of-type{border-bottom:0}.switch{background:var(--surface2);border-radius:14px;width:46px;height:28px;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:11px;width:22px;height:22px;transition:left .2s;position:absolute;top:3px;left:3px}.switch.on{background:var(--green)}.switch.on:after{left:21px}.hint{color:var(--muted);font-size:13px;line-height:1.4}.hint b{color:var(--text)}.hint.err,.btn.danger{color:var(--red)}.danger{border:1px solid var(--red);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.danger .form{margin:0}.nudge{border:1px solid var(--line);position:relative}.nudge ol{color:var(--muted);margin:8px 0 0;padding-left:20px;font-size:14px;line-height:1.7}.nudge ol b{color:var(--text)}.nudge .share-icon{vertical-align:-3px;color:#2f7cf6;width:16px;height:16px}.nudge button.x{color:var(--muted);padding:4px 6px;font-size:12px;position:absolute;top:10px;right:12px}.nudge .row .btn{flex:1}.dev{grid-template-columns:1fr 1fr;gap:6px;display:grid}.dev button{background:var(--surface2);border-radius:10px;padding:10px;font-size:13px;font-weight:600}.onboard{z-index:30;background:var(--bg);padding:32px 24px calc(32px + var(--sab));flex-direction:column;justify-content:center;gap:18px;max-width:430px;margin:0 auto;display:flex;position:fixed;inset:0}.onboard h1{letter-spacing:-.04em;margin:0;font-size:40px;font-weight:800}.onboard p{color:var(--muted);margin:0;font-size:16px;line-height:1.5}.onboard .eel{align-self:center;width:80%}.toast{left:50%;bottom:calc(24px + var(--sab));background:var(--text);color:#000;z-index:40;border-radius:999px;padding:10px 16px;font-size:14px;font-weight:700;animation:.2s ease-out up;position:fixed;transform:translate(-50%)}.party{z-index:15;pointer-events:none;width:100%;max-width:430px;position:fixed;top:0;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.party .lights{mix-blend-mode:screen;opacity:.55;animation:.5s step-end infinite disco;position:absolute;inset:0}@keyframes disco{0%{background:radial-gradient(circle at 20% 30%,#ff2d95 0,#0000 45%)}25%{background:radial-gradient(circle at 80% 25%,#2dffb5 0,#0000 45%)}50%{background:radial-gradient(circle at 30% 80%,#2d8dff 0,#0000 45%)}75%{background:radial-gradient(circle at 75% 70%,#ffd52d 0,#0000 45%)}}.party .spot{aspect-ratio:1;filter:blur(60px);opacity:.35;mix-blend-mode:screen;border-radius:50%;width:90%;animation:3s ease-in-out infinite alternate sweep;position:absolute}.party .spot.a{background:#ff2d95;top:-20%;left:-20%}.party .spot.b{background:#2dffb5;animation-delay:-1s;bottom:-20%;right:-20%}.party .spot.c{background:#ffd52d;animation-delay:-2s;top:30%;left:30%}@keyframes sweep{to{transform:translate(25%,15%)scale(1.2)}}.party .drop{filter:drop-shadow(0 4px 6px #00000080);animation:linear infinite fall;position:absolute;top:-12vh}@keyframes fall{to{transform:translateY(125vh) rotate(calc(var(--spin,1) * 540deg))}}.party .banner{left:50%;top:calc(14px + var(--sat));color:#000;white-space:nowrap;background:#fff;border-radius:999px;padding:8px 16px;font-size:15px;font-weight:800;animation:.5s ease-in-out infinite alternate bounce;position:absolute;transform:translate(-50%)}@keyframes bounce{to{transform:translate(-50%)translateY(-6px)rotate(-3deg)}}.stage.party{aspect-ratio:auto;z-index:14;border-radius:0;width:100%;max-width:430px;height:100dvh;animation:.5s step-end infinite strobe,.35s ease-out partyIn;position:fixed;top:0;bottom:0;left:50%;transform:translate(-50%)}@keyframes partyIn{0%{opacity:0;scale:.96}}@keyframes strobe{0%{background:#2a0a1c}25%{background:#0a2a1e}50%{background:#0a1a2a}75%{background:#2a230a}}.meter{background:#ffffff1f;border-radius:2px;height:4px;position:absolute;bottom:12px;left:16px;right:16px;overflow:hidden}.meter i{background:var(--yellow);height:100%;transition:width .1s linear;display:block}.meter b{text-align:center;color:var(--muted);font-size:11px;font-weight:600;position:absolute;bottom:8px;left:0;right:0}.onboard .input{flex:none;height:50px}.face .shades{fill:#111}.face .shades-bridge{stroke:#111;stroke-width:2px}.face .tongue{fill:#ff7a9a;stroke:none}.face .grin{stroke-width:2.4px}.blink-group .eye{transform-box:fill-box;transform-origin:50%;animation:4.5s infinite blink}.blink-group .glint{animation:4.5s infinite blinkGlint}@keyframes blinkGlint{0%,92%,to{opacity:1}93%,97%{opacity:0}}
