:root{--ink: #1b1410;--cream: #f6ead0;--yellow: #f2c230;--red: #c93a2b;--font: "Trebuchet MS", "Avenir Next", "Segoe UI", system-ui, sans-serif}html,body{margin:0;height:100%;background:var(--ink);overflow:hidden;overscroll-behavior:none;font-family:var(--font);color:var(--ink)}#stage{position:relative;height:100vh;height:100dvh;aspect-ratio:9 / 16;max-width:100vw;margin:0 auto;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;cursor:crosshair}#scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#grain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.2;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.55  0 0 0 0 0.45  0 0 0 0 0.35  0 0 0 0.9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}#fx{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#hud{position:absolute;top:max(10px,env(safe-area-inset-top));left:10px;right:10px;display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:none}.pill{background:var(--cream);border:3px solid var(--ink);border-radius:999px;box-shadow:0 3px 0 var(--ink);padding:6px 12px;font:800 15px/1 var(--font);color:var(--ink);white-space:nowrap}#count b{font-size:19px}#hud{gap:6px}#hud .pill{padding:6px 10px;font-size:14px}.dots{display:flex;align-items:center;gap:4px}.dots em{font-style:normal;margin-right:2px}.dots i{width:12px;height:12px;border-radius:50%;border:2.5px solid var(--ink);background:transparent;box-sizing:border-box}.dots i.on{background:var(--red)}#whacks i.on{background:var(--yellow)}#mute{pointer-events:auto;cursor:pointer;font-size:16px}#mute.off{opacity:.55;text-decoration:line-through}.float{position:absolute;transform:translate(-50%,-50%);font:900 26px/1 var(--font);color:var(--yellow);-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;white-space:nowrap;animation:rise .85s ease-out forwards}.float.miss{color:var(--cream);font-size:19px}@keyframes rise{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}to{opacity:0;transform:translate(-50%,-190%) scale(1)}}.bubble{position:absolute;transform:translate(-20%,-100%);max-width:62%;background:#fff;border:3px solid var(--ink);border-radius:16px 16px 16px 4px;box-shadow:0 3px 0 var(--ink);padding:8px 12px;font:800 16px/1.25 var(--font);animation:pop .18s ease-out}@keyframes pop{0%{transform:translate(-20%,-80%) scale(.5);opacity:0}}.alert{position:absolute;transform:translate(-50%,-100%);width:26px;height:26px;border-radius:50%;background:var(--red);border:3px solid var(--ink);color:#fff;font:900 18px/26px var(--font);text-align:center;animation:throb .35s ease-in-out infinite alternate}@keyframes throb{to{transform:translate(-50%,-100%) scale(1.25)}}.ring{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;border:3px solid var(--red);box-sizing:border-box}#overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#1b1410b8;cursor:default}#overlay[hidden]{display:none}.panel{width:100%;max-width:340px;background:var(--cream);border:4px solid var(--ink);border-radius:22px;box-shadow:0 7px 0 var(--ink);padding:22px 20px 20px;text-align:center;animation:pop-panel .22s ease-out}@keyframes pop-panel{0%{transform:scale(.85);opacity:0}}.panel .kicker{font:800 13px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;opacity:.65}.panel h1{margin:8px 0 4px;font:900 44px/.95 var(--font);letter-spacing:-.02em}.panel h1.small{font-size:30px;line-height:1.05}.panel .stars{font-size:40px;letter-spacing:6px;color:var(--yellow);-webkit-text-stroke:2.5px var(--ink);margin:6px 0}.panel .stars s{text-decoration:none;color:transparent}.panel .quote{margin:14px 0 0;padding:10px 12px;background:#fff;border:3px solid var(--ink);border-radius:14px;font:700 15px/1.35 var(--font);text-align:left}.panel .quote b{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.6;margin-bottom:2px}.panel .quote.villain{background:#2f3b2c;color:#e5f0c8}.panel ul{margin:14px 0 0;padding:0;list-style:none;font:700 15px/1.6 var(--font)}.panel .stats{margin-top:12px;font:700 14px/1.4 var(--font);opacity:.75}.panel button{margin-top:18px;width:100%;padding:14px;background:var(--yellow);border:4px solid var(--ink);border-radius:14px;box-shadow:0 5px 0 var(--ink);font:900 20px/1 var(--font);color:var(--ink);cursor:pointer}.panel button:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}#tint{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,#3c78aa1a 40%,#14325a80);opacity:0;transition:opacity .25s}#stage.slow #tint{opacity:1}#powers{position:absolute;left:12px;bottom:max(14px,env(safe-area-inset-bottom));display:flex;gap:10px}.power{--fill: 0%;width:72px;height:72px;border-radius:50%;border:4px solid var(--ink);box-shadow:0 4px 0 var(--ink);background:linear-gradient(to top,#6fb6d9 var(--fill),var(--cream) var(--fill));font:900 14px/1 var(--font);color:var(--ink);opacity:.85;cursor:default}.power[data-power=smoke]{background:linear-gradient(to top,#c9c2b2 var(--fill),var(--cream) var(--fill))}.power.ready{opacity:1;cursor:pointer;animation:ready .5s ease-in-out infinite alternate}.power.active{background:var(--yellow);opacity:1}@keyframes ready{to{transform:scale(1.1)}}#stage.smoke #tint{opacity:1;background:#d6cdb938}#steam{--steam-seconds: 2.2s;position:absolute;width:115%;aspect-ratio:1;margin:-62% 0 0 -57.5%;pointer-events:none;opacity:0;filter:blur(7px);background:radial-gradient(circle at 50% 62%,#fff 0 26%,transparent 46%),radial-gradient(circle at 30% 48%,#fff 0 22%,transparent 42%),radial-gradient(circle at 70% 46%,#fff 0 24%,transparent 44%),radial-gradient(circle at 46% 28%,#fff 0 22%,transparent 42%),radial-gradient(circle at 62% 22%,#fff 0 16%,transparent 34%)}#steam.on{animation:steam var(--steam-seconds) ease-out forwards}@keyframes steam{0%{opacity:0;transform:translateY(20%) scale(.2)}14%{opacity:.97;transform:translateY(0) scale(1)}70%{opacity:.94;transform:translateY(-4%) scale(1.08)}to{opacity:0;transform:translateY(-14%) scale(1.2)}}.ranguski{display:block;height:120px;margin:-6px auto 2px}.brief{display:flex;align-items:center;gap:8px;margin-top:10px}.brief .ranguski{height:108px;margin:0 -8px 0 -10px;flex:none}.brief .quote{margin:0}.panel button.quiet{margin-top:10px;padding:10px;background:transparent;border-width:3px;box-shadow:none;font-size:15px}.levels{margin-top:12px;display:grid;gap:8px}.panel button.level{margin:0;padding:10px 12px;display:flex;align-items:center;gap:10px;font-size:17px;text-align:left;background:#fff;border-width:3px;box-shadow:0 3px 0 var(--ink)}.panel button.level b{width:28px;height:28px;border-radius:50%;background:var(--yellow);border:3px solid var(--ink);font-size:15px;line-height:22px;text-align:center;box-sizing:border-box;flex:none}.panel button.level span:nth-of-type(1){flex:1}.panel button.level .stars{font-size:18px;letter-spacing:1px;margin:0;-webkit-text-stroke:1.5px var(--ink)}.panel button.level .note{font-size:11px;font-weight:700;opacity:.7}.panel button.level:disabled{opacity:.5;box-shadow:none;cursor:default}.panel button.level:disabled b{background:#ddd}#light{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.radar{position:absolute;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;border:3px dashed var(--yellow);box-sizing:border-box;animation:spin 2.5s linear infinite}.radar:after{content:"▼";position:absolute;left:50%;top:-30px;transform:translate(-50%);color:var(--yellow);font-size:22px;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;animation:none}@keyframes spin{to{transform:rotate(360deg)}}#wind{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent) 0 22% / 45% 2px no-repeat,linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent) 0 41% / 60% 2px no-repeat,linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent) 0 58% / 38% 2px no-repeat,linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent) 0 74% / 55% 2px no-repeat}#wind.on{animation:gust 1.3s ease-in-out forwards}#wind.on.back{animation-name:gust-back}@keyframes gust{0%{opacity:0;background-position:-60% 22%,-90% 41%,-40% 58%,-120% 74%}30%,70%{opacity:1}to{opacity:0;background-position:190% 22%,230% 41%,170% 58%,260% 74%}}@keyframes gust-back{0%{opacity:0;background-position:190% 22%,230% 41%,170% 58%,260% 74%}30%,70%{opacity:1}to{opacity:0;background-position:-60% 22%,-90% 41%,-40% 58%,-120% 74%}}#powers.many{gap:7px}#powers.many .power{width:54px;height:54px;border-width:3px;font-size:11px}.power[data-power=night]{background:linear-gradient(to top,#8fd98f var(--fill),var(--cream) var(--fill))}.power[data-power=radar]{background:linear-gradient(to top,var(--yellow) var(--fill),var(--cream) var(--fill))}.power.active{background:var(--yellow)}#cutscene{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:18px 16px max(18px,env(safe-area-inset-bottom));box-sizing:border-box;cursor:pointer;background:radial-gradient(circle at 22% 18%,rgba(190,220,150,.16) 0 5%,transparent 6%),radial-gradient(circle at 78% 30%,rgba(190,220,150,.12) 0 3%,transparent 4%),radial-gradient(circle at 64% 12%,rgba(190,220,150,.1) 0 2%,transparent 3%),radial-gradient(ellipse at 50% 38%,#5a7048,#33432d 55%,#1a2418);transition:filter .2s}#cutscene[hidden]{display:none}#cutscene.dark{background:radial-gradient(ellipse at 50% 38%,#1a2118,#0b0f0b 70%)}#cutscene.dark .cut-char{filter:brightness(.3) saturate(.6)}.cut-char{flex:1;min-height:0;max-width:82%;object-fit:contain;margin-bottom:14px;transform-origin:50% 100%}.cut-char.in{animation:cut-in .35s cubic-bezier(.3,1.5,.5,1)}@keyframes cut-in{0%{transform:translateY(14%) scale(.86);opacity:0}}.cut-box{width:100%;max-width:380px;box-sizing:border-box;background:var(--cream);border:4px solid var(--ink);border-radius:18px;box-shadow:0 6px 0 var(--ink);padding:20px 16px 14px;position:relative}.cut-name{position:absolute;top:-15px;left:14px;background:var(--yellow);border:3px solid var(--ink);border-radius:999px;padding:4px 12px;font:900 13px/1 var(--font);letter-spacing:.08em;text-transform:uppercase}.cut-ta{margin:0;font:700 19px/1.45 "Noto Sans Tamil","Tamil Sangam MN","Latha",var(--font)}.cut-en{margin:8px 0 0;font:600 14px/1.35 var(--font);opacity:.7}.cut-hint{margin-top:10px;font:700 12px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--cream);opacity:.55}.cut-skip{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;background:transparent;border:3px solid var(--cream);border-radius:999px;padding:6px 14px;font:800 13px/1 var(--font);color:var(--cream);cursor:pointer}#cutscene.home{background:radial-gradient(ellipse at 50% 38%,#f6dfa8,#d9a468 60%,#8a5a3a)}#rain{position:absolute;top:-20%;right:0;bottom:0;left:-20%;width:140%;height:140%;pointer-events:none;display:none;opacity:.4;background-image:repeating-linear-gradient(105deg,transparent 0 11px,rgba(200,220,255,.55) 11px 12px,transparent 12px 23px);background-size:100% 46px;animation:rain .28s linear infinite}#stage.rain #rain{display:block}@keyframes rain{to{background-position:-12px 46px}}#charge{--charge: 100%;position:absolute;top:calc(max(10px,env(safe-area-inset-top)) + 44px);left:10px;display:flex;align-items:center;gap:6px;padding:4px 8px 4px 10px;background:var(--cream);border:3px solid var(--ink);border-radius:999px;box-shadow:0 3px 0 var(--ink);font:800 11px/1 var(--font);letter-spacing:.06em;pointer-events:none}#charge i{width:84px;height:12px;border:2.5px solid var(--ink);border-radius:4px;box-sizing:border-box;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 2px),var(--ink) calc(25% - 2px) 25%),linear-gradient(90deg,#5fbf6a var(--charge),#fff var(--charge))}#charge.low i{background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 2px),var(--ink) calc(25% - 2px) 25%),linear-gradient(90deg,var(--red) var(--charge),#fff var(--charge))}#charge.empty{animation:no-charge .3s}@keyframes no-charge{25%{transform:translate(-5px)}75%{transform:translate(5px)}}#clock{position:absolute;top:calc(max(10px,env(safe-area-inset-top)) + 44px);right:10px;padding:5px 10px;background:var(--cream);border:3px solid var(--ink);border-radius:999px;box-shadow:0 3px 0 var(--ink);font:800 14px/1 var(--font);font-variant-numeric:tabular-nums;pointer-events:none}.panel .time{font:900 26px/1 var(--font);font-variant-numeric:tabular-nums}.panel .time small{display:block;margin-top:4px;font:700 13px/1 var(--font);opacity:.7}.panel .time.best small{color:#1d7a36;opacity:1}.panel button.level .score{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.plug{position:absolute;width:24px;height:24px;margin:-44px 0 0 -12px;border-radius:50%;background:var(--cream);border:2.5px solid var(--ink);font:700 13px/19px var(--font);text-align:center;box-sizing:border-box;pointer-events:none;opacity:.85}.plug.needed{background:var(--yellow);opacity:1;animation:throb-plug .4s ease-in-out infinite alternate}.plug.dead{opacity:.45;text-decoration:line-through}@keyframes throb-plug{to{transform:scale(1.3)}}#hud{gap:clamp(3px,1.4vw,6px)}#hud .pill{padding:6px clamp(6px,2.4vw,10px);font-size:clamp(11px,3.6vw,14px);min-width:0}#count b{font-size:clamp(14px,4.8vw,19px)}.dots i{width:clamp(9px,3vw,12px);height:clamp(9px,3vw,12px)}@media(min-width:480px){#hud{gap:6px}#hud .pill{padding:6px 10px;font-size:14px}#count b{font-size:19px}.dots i{width:12px;height:12px}}#rotate{display:none}@media(orientation:landscape)and (max-height:500px){#stage>*:not(#rotate){display:none!important}#stage{aspect-ratio:auto;width:100vw;max-width:none}#rotate{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--ink);color:var(--cream);font:600 15px/1.3 var(--font);text-align:center;padding:20px}#rotate b{font-size:24px;font-weight:900}}@media(min-aspect-ratio:1/1)and (min-height:501px){#stage{aspect-ratio:auto;width:min(100vw,200vh);max-width:none}#hud{left:50%;right:auto;width:min(720px,calc(100% - 32px));transform:translate(-50%)}#charge{left:max(16px,calc(50% - 360px))}#clock{right:max(16px,calc(50% - 360px))}#powers{left:20px;bottom:20px}#powers.many .power{width:66px;height:66px;font-size:13px}.panel{max-width:400px}#steam{width:90vh;margin:-48vh 0 0 -45vh}#cutscene{flex-direction:row;align-items:flex-end;justify-content:center;gap:3vw;padding:5vh 6vw}.cut-char{flex:none;height:78vh;max-width:42%;margin-bottom:0}.cut-box{max-width:520px;margin-bottom:9vh;padding:26px 22px 18px}.cut-ta{font-size:24px}.cut-en{font-size:16px}.cut-hint{position:absolute;bottom:3vh;left:0;right:0;text-align:center;margin:0}}
