@font-face{font-family:Fredoka;src:url(../Fredoka.ttf)format("truetype");font-weight:300 700;font-display:block}@font-face{font-family:Inter;src:url(../Inter.ttf)format("truetype");font-weight:100 900;font-display:block}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html,body{color:#fff;touch-action:none;overscroll-behavior:none;background:#7fc0f4;height:100%;margin:0;font-family:Fredoka,Inter,-apple-system,sans-serif;overflow:hidden}#view{width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}.safe{--l:max(env(safe-area-inset-left), 14px);--r:max(env(safe-area-inset-right), 14px);--b:max(env(safe-area-inset-bottom), 12px);--ink:#17345e;--gold:#ffc53d}.ink{color:#fff;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill}.hudpanel{left:calc(var(--l) + 2px);justify-items:start;gap:1px;font-weight:700;display:grid;position:absolute;top:10px}.hearts{gap:3px;margin-bottom:1px;display:flex}.hearts svg{fill:#ff4f5e;width:23px;height:21px;stroke:var(--ink);stroke-width:2.4px;paint-order:stroke;filter:drop-shadow(0 2px #0a1e4659);transition:transform .2s,fill .2s}.hearts svg.gone{fill:#17345e8c;transform:scale(.82)}.speed{align-items:baseline;gap:4px;line-height:1;display:flex}.speed b{font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:#fff;-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;font-size:40px;font-weight:700}.speed span,.alt{color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;font-size:14px;font-weight:600}.alt{font-variant-numeric:tabular-nums;font-size:16px}.breath{border:2.5px solid var(--ink);opacity:0;background:#17345eb3;border-radius:8px;width:120px;height:13px;margin-top:5px;transition:opacity .25s;overflow:hidden}.breath.on{opacity:1}.breath i{background:#7ee8ff;border-radius:5px;height:100%;display:block}.shake{animation:.4s shake}@keyframes shake{20%{transform:translate(-5px)}45%{transform:translate(5px)}70%{transform:translate(-3px)}}.compass{background:#17345e8c;border:2.5px solid #17345ee6;border-radius:16px;width:220px;height:32px;margin-left:-110px;position:absolute;top:10px;left:50%;overflow:hidden}.strip{width:0;position:absolute;top:0;bottom:0;left:50%}.mark,.tick,.goal{white-space:nowrap;text-align:center;width:40px;margin-top:-10px;font-size:15px;font-weight:700;line-height:20px;position:absolute;top:50%;left:-20px}.tick:before{content:"";background:#fff9;border-radius:2px;width:3px;height:9px;margin:6px auto 0;display:block}.goal{color:var(--ink);background:var(--gold);border-radius:10px;width:58px;font-size:12px;left:-29px}.needle{border:6px solid #0000;border-top-color:#fff;width:0;height:0;margin-left:-6px;position:absolute;top:0;left:50%}.warn{border:3px solid var(--ink);opacity:0;white-space:nowrap;background:#e5483a;border-radius:13px;padding:5px 15px;font-size:15px;font-weight:700;transition:opacity .15s;position:absolute;top:50px;left:50%;transform:translate(-50%)}.warn.on{opacity:1}.warn.thin{background:#5168c9}.tip{text-align:center;opacity:0;background:#17345edb;border-radius:13px;max-width:46%;padding:6px 13px;font-size:13.5px;font-weight:500;line-height:1.25;transition:opacity .25s,transform .25s;position:absolute;top:48px;left:50%;transform:translate(-50%,-8px)}.tip.on{opacity:1;transform:translate(-50%)}.place{white-space:nowrap;color:#fff;-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;opacity:0;font-size:36px;font-weight:700;transition:opacity .5s;position:absolute;top:28%;left:50%;transform:translate(-50%)}.place.on{opacity:1}.prompt{white-space:nowrap;color:#fff;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;opacity:0;font-size:24px;font-weight:700;transition:opacity .12s,transform .12s;position:absolute;bottom:26%;left:50%;transform:translate(-50%)scale(.9)}.prompt.on{opacity:1;transform:translate(-50%)scale(1)}.prompt.urgent{color:var(--gold);animation:.5s infinite alternate pulse}@keyframes pulse{to{transform:translate(-50%)scale(1.12)}}.zone{pointer-events:auto;touch-action:none;position:absolute;top:58px;bottom:0}.zone.left{width:50%;left:0}.zone.right{width:50%;right:0}.stick{pointer-events:none;opacity:.72;background:#17345e4d;border:3px solid #fff9;border-radius:50%;width:124px;height:124px;margin:-62px 0 0 -62px;transition:opacity .12s;position:absolute}.stick.held{opacity:1}.stick i{border:3px solid var(--ink);background:#fff;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 3px #0a1e4666}.flapbtn{right:calc(var(--r) + 14px);bottom:calc(var(--b) + 14px);pointer-events:none;background:#17345e66;border:3px solid #ffffff8c;border-radius:50%;align-content:center;place-items:center;width:96px;height:96px;transition:transform 80ms,background 80ms;display:grid;position:absolute}.flapbtn .glyph svg{fill:#fff;filter:drop-shadow(0 2px #0a1e4680);width:34px;height:34px;display:block}.flapbtn b{color:#fff;-webkit-text-stroke:3.5px var(--ink);paint-order:stroke fill;font-size:15px;font-weight:700;line-height:1.05}.flapbtn small{white-space:nowrap;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;font-size:11.5px;font-weight:600;position:absolute;bottom:-13px}.flapbtn.down{background:#ffc53d8c;transform:scale(.92)}.flapbtn.tucked{background:#5aaaff99;transform:translateY(8px)scale(.82)}.flapbtn.call{background:#ffc53de6;animation:.35s infinite alternate call}@keyframes call{to{transform:scale(1.14)}}.ring{pointer-events:none;width:122px;height:122px;position:absolute;top:-13px;left:-13px;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:7px}.ring .bg{stroke:#17345e8c}.ring .fg{stroke:var(--gold);stroke-linecap:round;transition:stroke .15s}.ring .fg.low{stroke:#ff6a5a}.roundbtn{pointer-events:auto;border:3px solid var(--ink);width:46px;height:46px;box-shadow:0 3px 0 var(--ink);color:#fff;background:#2f7fe0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:9px}.roundbtn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.roundbtn svg{fill:#fff;width:26px;height:24px}.roundbtn.map svg{fill:none;color:#fff}.roundbtn.wings{right:calc(var(--r) + 56px)}.roundbtn.map{right:var(--r)}.badge{border:2px solid var(--ink);text-align:center;background:#ff5a3c;border-radius:10px;min-width:19px;padding:0 4px;font-size:12px;font-weight:700;line-height:19px;position:absolute;top:-6px;right:-6px}.sheet{pointer-events:auto;opacity:0;font-family:Fredoka,Inter,sans-serif;transition:opacity .2s;display:flex;position:absolute;inset:0}.sheet.on{opacity:1}.card{color:#233;border:4px solid var(--ink);box-shadow:0 6px 0 var(--ink), 0 18px 50px #0a1e4659;background:#f7f1e3;border-radius:24px}.fit{margin:10px var(--r) 10px auto;touch-action:pan-y;flex-direction:column;gap:9px;width:min(430px,58%);max-height:calc(100% - 20px);padding:14px 18px;display:flex;overflow-y:auto}.fit h2{color:var(--ink);margin:0;font-size:24px;font-weight:700}.fit .sub{color:#5b6170;margin-top:-5px;font-size:14px}.fit button,.plain{font:inherit}.parts{gap:6px;display:grid}.slotname{color:#5b6170;margin-top:3px;font-size:13px;font-weight:600}.part{text-align:left;width:100%;color:var(--ink);background:#fff;border:3px solid #d9d0bb;border-radius:14px;align-items:center;gap:10px;padding:8px 11px;font-size:15px;font-weight:600;display:flex}.part.fitted{background:#eafaf1;border-color:#2fa96f}.part .sw{border-radius:8px;flex:none;width:22px;height:22px;box-shadow:inset 0 0 0 2px #0000001f}.part small{color:#5b6170;margin-top:1px;font-size:12px;font-weight:500;display:block}.part .tag{color:#1f8f5a;margin-left:auto;font-size:13px;font-weight:700}.stats{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.stat{color:#5b6170;background:#fff;border-radius:12px;padding:6px 9px;font-size:12px;font-weight:500}.stat b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:18px;font-weight:700;display:block}.stat .up{color:#1f8f5a}.stat .dn{color:#d4552e}.row{flex:none;gap:9px;display:flex}.cta{border:3px solid var(--ink);height:46px;box-shadow:0 3px 0 var(--ink);color:#fff;background:#39b86f;border-radius:15px;flex:1;font-size:17px;font-weight:700}.cta:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.cta.ghost{color:var(--ink);background:#e9e1cc}.mapwrap{gap:14px;max-height:94%;margin:auto;padding:12px;display:flex}.mapwrap canvas{aspect-ratio:1;border-radius:14px;height:min(78vh,340px)}.mapside{flex-direction:column;gap:8px;width:210px;font-size:14px;display:flex}.mapside h2{color:var(--ink);margin:0;font-size:21px;font-weight:700}.mapside .hint{color:#5b6170;line-height:1.3}.title{pointer-events:auto;background:linear-gradient(#103c8247,#0000 42%);flex-direction:column;align-items:center;padding:18px 0 24px;transition:opacity .35s;display:flex;position:absolute;inset:0}.logo{letter-spacing:.005em;color:#fff;-webkit-text-stroke:9px var(--ink);paint-order:stroke fill;filter:drop-shadow(0 5px 0 var(--ink));font-size:66px;font-weight:700;line-height:1}.logo .gold{color:var(--gold)}.title p{color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;margin:8px 0 0;font-size:19px;font-weight:600}.play{border:4px solid var(--ink);height:62px;box-shadow:0 6px 0 var(--ink), 0 12px 24px #0a1e4659;color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;background:#39b86f;border-radius:20px;margin-top:auto;padding:0 58px;font:700 28px Fredoka,sans-serif}.play:active{box-shadow:0 2px 0 var(--ink);transform:translateY(4px)}.flash{opacity:0;pointer-events:none;background:#fff;position:absolute;inset:0}.vig{pointer-events:none;opacity:0;background:radial-gradient(#0000 48%,#0a1028bf 100%);position:absolute;inset:0}.speedfx{pointer-events:none;opacity:0;background:radial-gradient(#fff0 56%,#ffffff8c 100%);position:absolute;inset:0}.hurtfx{pointer-events:none;opacity:0;background:radial-gradient(#ff282800 40%,#eb1e32bf 100%);position:absolute;inset:0}.hurtfx.on{animation:.6s hurt}@keyframes hurt{0%{opacity:1}to{opacity:0}}#ui:after{content:"";opacity:0;pointer-events:none;background:#0b2348;transition:opacity .6s;position:absolute;inset:0}#ui.fainted:after{opacity:1}.hide{display:none!important}.titled .hudpanel,.titled .compass,.titled .zone,.titled .stick,.titled .flapbtn,.titled .roundbtn{opacity:0;pointer-events:none}#turn{z-index:50;text-align:center;background:#7fc0f4;justify-content:center;align-items:center;padding:24px;font-size:30px;font-weight:700;display:none;position:fixed;inset:0}@media (orientation:portrait) and (pointer:coarse){#turn{display:flex}}
