:root{--bg:#12495a;--bg-ray:#1a5a6c;--ink:#3b2410;--gold:#f2b632;--gold-hi:#ffe08a;--gold-lo:#b8741a;--red:#d62828;--cream:#fff6dc;--green:#5fae6e;--panel:#082832b8;--text:#fff6dc;--muted:#a9cbd3;--radius:16px;--font:"Baloo 2", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body.m420{--bg:#1f5135;--bg-ray:#286541;--panel:#0a2816b8}*{box-sizing:border-box}html,body{height:100%;color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;margin:0;overflow:hidden}html{background:var(--bg)}body{background:0 0}body.m420{background:var(--bg)}body:before{content:"";background:repeating-conic-gradient(from 0deg at 50% 50%, var(--bg-ray) 0 10deg, var(--bg) 10deg 20deg);z-index:-1;animation:90s linear infinite spin;position:fixed;inset:-50%}@keyframes spin{to{transform:rotate(360deg)}}button{font:inherit;color:inherit;cursor:pointer}#game{max-width:560px;height:100dvh;padding:max(8px, env(safe-area-inset-top)) 16px max(10px, env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto auto;grid-template-areas:"hud""stage""bank""tools";gap:8px;margin:0 auto;display:grid}.hud{grid-area:hud;gap:6px;display:grid}.stats{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.stat{background:var(--panel);text-align:center;border-radius:12px;min-width:0;padding:6px 10px;line-height:1.1}.stat small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;display:block}.stat b{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:20px;display:block;overflow:hidden}#pot b{color:var(--gold-hi)}#time b.low{color:#ff7a6b;animation:.5s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.4}}.heat{border:3px solid var(--ink);background:#00000059;border-radius:9px;height:18px;position:relative;overflow:hidden}.heat:after{content:"";background:repeating-linear-gradient(45deg,#d6282859 0 6px,#d6282826 6px 12px);border-left:2px dashed #ff9b8f;position:absolute;inset:0 0 0 70%}.heat i{background:linear-gradient(90deg,#ffe08a,#f2b632 60%,#ff5a36);width:0%;transition:width 80ms linear;position:absolute;inset:0 auto 0 0}.heat.red i{animation:.3s ease-in-out infinite alternate heatpulse}@keyframes heatpulse{to{filter:brightness(1.35)}}.stage{touch-action:none;grid-area:stage;place-items:center;min-height:0;display:grid;position:relative}#teapot{aspect-ratio:600/520;cursor:pointer;transform-origin:50% 90%;width:min(92%,440px);max-height:100%;filter:drop-shadow(0 0 calc(var(--glow,0) * 40px) rgba(255, 80, 40, calc(var(--glow,0) * .9)));z-index:1;position:relative}#teapot svg{width:100%;height:100%;display:block}#teapot.heavy{animation:.32s cubic-bezier(.3,1.6,.5,1) heavy}#teapot.shake{animation:80ms linear infinite shake}#teapot.gone{animation:3s ease-in-out gone}#teapot.homerun{animation:1s ease-in-out homerun}#teapot.ready{filter:drop-shadow(0 0 14px #fff0a0e6)}#teapot.dodge{animation:.3s ease-out dodge}#teapot.dance{animation:.6s ease-in-out dance}#teapot.lidpop [data-part=lid]{transform-box:fill-box;transform-origin:50% 100%;animation:.9s cubic-bezier(.2,.9,.4,1) lidpop}@keyframes dodge{40%{transform:translate(-28%)rotate(-12deg)}to{transform:none}}@keyframes dance{25%{transform:rotate(-10deg)translateY(-6%)}50%{transform:rotate(10deg)}75%{transform:rotate(-6deg)translateY(-4%)}}@keyframes lidpop{40%{transform:translateY(-120%)rotate(-30deg)}to{transform:none}}#flash{opacity:0;pointer-events:none;z-index:6;background:#fff;position:absolute;inset:0}#flash.on{animation:.35s ease-out flash}@keyframes flash{0%{opacity:.95}to{opacity:0}}.bubble.buzz{animation:60ms linear infinite buzz}@keyframes buzz{50%{transform:translate(calc(2px - 50%))scale(1)}}#strike.extend{animation:.25s ease-out extend}@keyframes extend{50%{transform:rotate(30deg)scale(1.25,1.4)}}@keyframes squash{40%{transform:scale(1.12,.86)}to{transform:none}}@keyframes heavy{30%{transform:scale(1.25,.7)rotate(-4deg)}60%{transform:scale(.92,1.1)rotate(3deg)}to{transform:none}}@keyframes shake{25%{transform:translate(-3px,1px)rotate(-1deg)}75%{transform:translate(3px,-1px)rotate(1deg)}}@keyframes gone{0%{opacity:0;transform:scale(.2)rotate(-30deg)}80%{opacity:0;transform:scale(.2)}90%{opacity:1;transform:scale(1.15,.8)}to{transform:none}}@keyframes homerun{40%{transform:translate(140%,-160%)rotate(540deg)scale(.3)}41%{transform:translate(-140%,-160%)scale(.3)}to{transform:none}}.shatter{z-index:2;pointer-events:none;position:absolute}.shatter .piece{animation:2.94s cubic-bezier(.15,.8,.3,1) forwards shard-fly;position:absolute;inset:0}.shatter .piece svg{width:100%;height:100%;display:block}@keyframes shard-fly{0%{transform:none}16%{transform:translate(var(--dx), var(--dy)) rotate(var(--r))}55%{transform:translate(calc(var(--dx) * 1.1), calc(var(--dy) + 28%)) rotate(calc(var(--r) * 1.3))}80%{transform:translate(calc(var(--dx) * 1.1), calc(var(--dy) + 28%)) rotate(calc(var(--r) * 1.3))}to{transform:none}}#teapot svg{transform:scale(calc(1 + var(--belly,0) * .12), calc(1 + var(--belly,0) * .05));transform-origin:50% 88%;transition:transform .25s cubic-bezier(.3,1.6,.5,1),filter .3s}#teapot.soaked svg{transform:scale(calc((1 + var(--belly,0) * .12) * .97), calc((1 + var(--belly,0) * .05) * .9));filter:saturate(.7)brightness(.9)}#teapot.shakeoff{animation:.6s ease-in-out shakeoff}@keyframes shakeoff{15%{transform:rotate(-9deg)}30%{transform:rotate(9deg)}45%{transform:rotate(-7deg)}60%{transform:rotate(6deg)}80%{transform:rotate(-3deg)}}#stage{will-change:transform}#game.hitstop #teapot,#game.hitstop #teapot *,#game.hitstop #strike{animation-play-state:paused!important}#teapot.flashhit svg{animation:.12s ease-out flashhit}@keyframes flashhit{0%{filter:brightness(1.7)saturate(1.2)}to{filter:none}}#teapot.squash{animation:.16s ease-out squash-tilt}@keyframes squash-tilt{40%{transform:scale(1.12, .86) rotate(calc(var(--tilt,1) * 4deg))}to{transform:none}}#streak{z-index:5;pointer-events:none;color:var(--cream);text-shadow:0 3px 0 var(--ink), 0 0 12px #0006;font-size:34px;font-weight:900;position:absolute;top:34%;left:6%;transform:rotate(-8deg)}#streak[data-tier="1"]{color:var(--gold-hi)}#streak[data-tier="2"]{color:#ffb36b;font-size:40px}#streak[data-tier="3"]{color:#ff5a36;font-size:46px;animation:.25s infinite alternate heatpulse}#streak.pop{animation:.18s cubic-bezier(.3,1.8,.5,1) streakpop}@keyframes streakpop{0%{transform:rotate(-8deg)scale(1.5)}}#vignette{z-index:4;pointer-events:none;opacity:0;background:radial-gradient(#0000 45%,#d628288c 80%);transition:opacity .3s;animation:.9s ease-in-out infinite alternate vignettepulse;position:absolute;inset:-20%}@keyframes vignettepulse{to{filter:brightness(1.4)}}#fx-gl{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}#belly-meter{z-index:5;background:var(--panel);border:2px solid var(--gold);color:var(--gold-hi);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:800;position:absolute;top:6px;right:6px}#fx{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}#strike{pointer-events:none;z-index:2;transform-origin:80% 80%;filter:drop-shadow(0 6px #00000040);width:clamp(72px,20vw,130px);position:absolute;top:6%;right:4%;transform:rotate(30deg)}#strike svg{width:100%;display:block}#strike .fuse{color:#ff5a36;text-shadow:0 2px 0 var(--ink), 0 0 6px #fff;font-size:32px;font-weight:800;position:absolute;bottom:0;right:0}#strike.swing{animation:.18s ease-in swing}#strike.throw{animation:.25s ease-in forwards throw}@keyframes swing{0%{transform:rotate(40deg)}60%{transform:translate(-30%,40%)rotate(-50deg)}to{transform:rotate(30deg)}}@keyframes throw{0%{transform:translate(0)scale(1)}to{opacity:0;transform:translate(-120%,140%)scale(.6)}}.bubble{background:var(--cream);max-width:min(86%,380px);color:var(--ink);border:3px solid var(--ink);opacity:0;z-index:4;text-align:center;pointer-events:none;border-radius:18px;padding:10px 14px;font-size:17px;font-weight:700;line-height:1.2;transition:opacity .15s,transform .15s;position:absolute;top:2%;left:50%;transform:translate(-50%)scale(.6)}.bubble:after{content:"";background:var(--cream);border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);width:18px;height:18px;position:absolute;bottom:-12px;left:50%;transform:translate(-50%)rotate(45deg)}.bubble.on{opacity:1;transform:translate(-50%)scale(1)}.bubble.loud{background:#ffd9cf;font-size:20px}.bubble.loud:after{background:#ffd9cf}#banner,#tap-hint,#toast,#charge{z-index:5;pointer-events:none;text-align:center;position:absolute;left:50%;transform:translate(-50%)}#banner{background:var(--red);border:3px solid var(--ink);border-radius:12px;width:100%;padding:8px 12px;font-size:17px;font-weight:800;top:0}#tap-hint{letter-spacing:.08em;color:var(--gold-hi);text-shadow:0 3px 0 var(--ink);font-size:22px;font-weight:800;animation:.8s ease-in-out infinite alternate pulse;bottom:4%}@keyframes pulse{to{transform:translate(-50%)scale(1.12)}}#toast{background:var(--panel);border:2px solid var(--gold);opacity:0;white-space:nowrap;border-radius:12px;padding:8px 14px;font-weight:800;transition:opacity .2s;top:30%}#toast.on{opacity:1}#charge{border:3px solid var(--ink);background:#00000059;border-radius:8px;width:60%;height:14px;bottom:2%;overflow:hidden}#charge i{background:linear-gradient(90deg, var(--gold), #ff5a36);width:0;height:100%;display:block}#charge.perfect-zone:after{content:"";background:#ffffff59;width:10%;position:absolute;top:0;bottom:0;right:0}#bank{border:4px solid var(--ink);border-radius:var(--radius);background:linear-gradient(#7ed08b, var(--green));color:#fff;letter-spacing:.04em;text-shadow:0 2px #00000059;box-shadow:0 5px 0 var(--ink);grid-area:bank;padding:12px;font-size:22px;font-weight:800;transition:transform 50ms}#bank:active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}#bank:disabled{filter:grayscale(.8)brightness(.8)}#bank.urgent{animation:.35s ease-in-out infinite alternate urgent}@keyframes urgent{to{background:linear-gradient(#ffb36b,#ff6a3d);transform:scale(1.03)}}#bank kbd{opacity:.7;border:1px solid;border-radius:4px;margin-left:6px;padding:0 4px;font-size:12px}.tools-wrap{grid-area:tools;min-width:0}#tools{scrollbar-width:none;gap:8px;padding:4px 2px 6px;display:flex;overflow-x:auto}#tools::-webkit-scrollbar{display:none}.tool{border:3px solid var(--ink);background:var(--panel);border-radius:14px;flex:none;place-items:center;width:62px;height:62px;padding:0;font-size:30px;display:grid;position:relative}.tool.sel{background:var(--gold);box-shadow:0 0 0 3px var(--gold-hi)}.tool .ic{width:44px;height:44px;display:block}.tool .ic svg{width:100%;height:100%;display:block}.tool.locked{cursor:default;background:#fff6dc24;border-style:dashed}.tool.locked .ic{filter:brightness(0)opacity(.55)}.tool.trial{animation:.5s infinite alternate urgent;box-shadow:0 0 0 3px #7ef0ff}.tool .key{color:var(--muted);font-size:10px;position:absolute;top:2px;left:5px}.tool.sel .key{color:var(--ink)}.tool .cd{background:conic-gradient(#0000008c calc(var(--cd,0) * 1turn), transparent 0);pointer-events:none;border-radius:11px;position:absolute;inset:0}.loadout{justify-content:center;gap:8px;padding:2px 0 4px;display:flex}.slot{border:3px solid var(--ink);background:var(--panel);width:74px;height:74px;color:var(--muted);border-radius:16px;place-items:center;padding:0;font-size:30px;font-weight:800;display:grid;position:relative}.slot .ic{width:52px;height:52px;display:block}.slot .ic svg{width:100%;height:100%;display:block}.slot .key{color:var(--muted);font-size:11px;position:absolute;top:2px;left:6px}.slot .cd{background:conic-gradient(#0000008c calc(var(--cd,0) * 1turn), transparent 0);pointer-events:none;border-radius:13px;position:absolute;inset:0}.slot.sel{background:var(--gold);box-shadow:0 0 0 3px var(--gold-hi)}.slot.sel .key{color:var(--ink)}.slot.empty{background:0 0;border-style:dashed}.slot.active{outline:3px dashed var(--cream);outline-offset:3px}.slot.trial{animation:.5s infinite alternate urgent;box-shadow:0 0 0 3px #7ef0ff}.tool.in-loadout{box-shadow:inset 0 0 0 3px var(--gold)}.unlock-add{border:2px solid var(--ink);background:var(--gold);color:var(--ink);border-radius:8px;margin-top:4px;padding:2px 6px;font-size:11px;font-weight:800}.tool-info{color:var(--muted);justify-content:space-between;gap:8px;min-height:18px;font-size:13px;display:flex}.tool-info b{color:var(--text)}.tool-info span:last-child{text-align:right}.corner{justify-content:flex-end;gap:6px;display:flex}.corner #install{background:var(--gold);color:var(--ink);margin-right:auto}.corner #install[hidden]{display:none}.corner button{border:2px solid var(--ink);background:var(--panel);border-radius:10px;padding:2px 8px;font-size:13px;font-weight:700}.corner #about-open{min-width:28px;font-family:Georgia,serif;font-style:italic}#about{color:inherit;max-width:min(420px,92vw)}#about::backdrop{background:#0a0602b3}#about p{text-align:left;margin:8px 0;line-height:1.4}#about button{margin-top:10px}#results{z-index:30;background:#04161cd1;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}#results[hidden]{display:none}body.m420 #results{background:#06180cd9}.card{background:var(--bg);border:4px solid var(--ink);text-align:center;width:min(100%,420px);box-shadow:0 8px 0 var(--ink);border-radius:22px;padding:16px;animation:.35s cubic-bezier(.3,1.6,.5,1) pop}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.card h2{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:16px}#results-score{color:var(--gold-hi);text-shadow:0 4px 0 var(--ink);margin:4px 0;font-size:46px;font-weight:800}#results-title{background:var(--red);border:3px solid var(--ink);border-radius:10px;padding:4px 12px;font-size:20px;font-weight:800;display:inline-block;transform:rotate(-2deg)}.card .mini{width:160px;margin:6px auto 0}.card .quote{color:var(--cream);margin:6px 0;font-style:italic}.card .note{color:var(--muted);margin:4px 0;font-size:14px}.card .note.win{color:#9ff0a8;font-weight:700}.card .unlocks{margin:8px 0 4px}.combobook{text-align:left;margin:6px 0;font-size:13px}.combobook summary{cursor:pointer;color:var(--gold-hi);text-align:center;font-weight:800}.combo-head{display:none}.combo-list{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.combo-row{background:#0003;border-radius:10px;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;padding:4px 8px;display:grid}.combo-row.found{background:#f2b6322e}.combo-seq{align-items:center;gap:2px;display:inline-flex}.combo-icon{width:24px;height:24px;display:inline-block}.combo-icon svg{width:100%;height:100%;display:block}.combo-unknown{text-align:center;width:24px;color:var(--muted);font-weight:800}.combo-arrow{color:var(--muted);font-size:11px}.combo-riddle{color:var(--muted);grid-column:1/-1;font-size:12px}.card .unlocks:empty{display:none}.unlock-head{color:var(--gold-hi);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:15px;font-weight:800}.unlock-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.unlock-chip{flex-direction:column;align-items:center;gap:2px;animation:.35s cubic-bezier(.3,1.6,.5,1) backwards pop;display:inline-flex}.unlock-chip:nth-child(2){animation-delay:50ms}.unlock-chip:nth-child(3){animation-delay:.1s}.unlock-chip:nth-child(4){animation-delay:.15s}.unlock-chip:nth-child(n+5){animation-delay:.2s}.unlock-icon{border:3px solid var(--ink);background:var(--gold);width:44px;height:44px;box-shadow:0 0 0 2px var(--gold-hi);border-radius:12px;padding:4px}.unlock-icon svg{width:100%;height:100%;display:block}.unlock-name{color:var(--cream);font-size:12px;font-weight:700}.card input{border:3px solid var(--ink);background:var(--cream);width:100%;color:var(--ink);font:inherit;-webkit-user-select:text;user-select:text;border-radius:12px;margin:8px 0;padding:10px 12px;font-size:16px;font-weight:700}.card .row{grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;display:grid}.card .row button{border:4px solid var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:14px;padding:12px 8px;font-size:17px;font-weight:800}#challenge{background:var(--gold);color:var(--ink)}#again{background:var(--green);color:#fff}@media (width>=900px){#game{grid-template:"tools stage hud"1fr"tools stage bank"/300px 1fr 300px;gap:16px;max-width:1200px;padding:24px}.tools-wrap{flex-direction:column;gap:8px;min-height:0;display:flex}#tools{flex-wrap:wrap;align-content:flex-start;overflow:hidden auto}.tool{width:64px;height:64px}.tool-info{flex-direction:column}.tool-info span:last-child{text-align:left}.hud{align-content:start}.stats{grid-template-columns:1fr}.stat b{font-size:28px}.heat{height:24px}#teapot{width:min(90%,560px)}}
