@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(/assets/fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fredoka-latin-700-normal-BOIZVyIN.woff2)format("woff2"),url(/assets/fredoka-latin-700-normal-C8FeHd3X.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}:root{--parchment:#f8efe4;--parchment-2:#fce5c4;--parchment-3:#f2cc9e;--parchment-edge:#deb58c;--cream:#fbf3e6;--wood:#64301f;--night:#3b2218;--scrim:#2e1a12d1;--caramel:#a54d16;--caramel-hi:#dd8c50;--caramel-lo:#612505;--ink:#3e2416;--ink-soft:#6b4a3a;--gold-1:#fdc64b;--gold-2:#fda83b;--gold-edge:#b9772f;--gold-glow:#fda83b8c;--tan-1:#ebb686;--tan-2:#cd946a;--tan-edge:#8a5130;--heart-hp:#e23b36;--heart-hp-hi:#f66a5e;--boss-fill:#e0302c;--boss-frame:#966c41;--dough:#f7d6a6;--touch-btn:#3a241cc7;--touch-rim:#c9a27e;--touch-glyph:#f3d6ae;--touch-pad:#ebd7c34d;--r-pill:999px;--r-btn:16px;--r-card:22px;--shadow-btn:0 3px 0 #8a4a1e, 0 6px 14px #3e241647, inset 0 2px 0 #ffffff73;--shadow-card:0 10px 30px #3e24164d;--focus:0 0 0 3px #fff6e0, 0 0 0 6px var(--gold-2);--font-display:"Fredoka", "Trebuchet MS", system-ui, sans-serif;--font-body:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--inset-t:max(calc(var(--safe-t) + 6px), 10px);--inset-b:max(calc(var(--safe-b) + 6px), 10px);--inset-l:max(calc(var(--safe-l) + 10px), clamp(16px, 3.6vw, 44px));--inset-r:max(calc(var(--safe-r) + 10px), clamp(16px, 3.6vw, 44px))}.btn{border-radius:var(--r-pill);border:2px solid var(--tan-edge);background:linear-gradient(180deg, var(--tan-1), var(--tan-2));min-height:48px;color:var(--ink);font:600 1.05rem/1.1 var(--font-display);letter-spacing:.01em;cursor:pointer;box-shadow:var(--shadow-btn);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:.4em;padding:.55em 1.6em;text-decoration:none;transition:transform .12s,box-shadow .12s,filter .12s;display:inline-flex}.btn:hover{filter:brightness(1.04);transform:translateY(-1px)scale(1.02)}.btn:active{transform:translateY(2px);box-shadow:0 1px #8a4a1e,0 2px 6px #3e241640}.btn:focus-visible{box-shadow:var(--shadow-btn), var(--focus);outline:none}.btn.primary{background:linear-gradient(180deg, var(--gold-1), var(--gold-2));border-color:var(--gold-edge)}.btn.primary:hover{box-shadow:var(--shadow-btn), 0 0 18px var(--gold-glow)}.btn.ghost{color:var(--cream);box-shadow:none;background:#fbf3e61f;border-color:#fbf3e666}.btn[hidden]{display:none}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;color:var(--cream);font-family:var(--font-body);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;background:#2a1c14;margin:0;overflow:hidden}body.play{height:100dvh;position:fixed;inset:0}#game-canvas{touch-action:none;outline:none;width:100vw;height:100dvh;display:block;position:fixed;inset:0}#ui{pointer-events:none;z-index:2;position:fixed;inset:0}.hud{opacity:0;transition:opacity .3s;position:absolute;inset:0}.hud.visible{opacity:1}.hud-hearts{top:calc(var(--inset-t) + 6px);left:var(--inset-l);gap:6px;display:flex;position:absolute}.heart svg{filter:drop-shadow(0 2px #28120a8c);width:clamp(28px,5.2vh,40px);height:auto;display:block}.heart .h-fill{fill:var(--heart-hp);stroke:#4a1a0c;stroke-width:2px}.heart .h-shine{fill:none;stroke:var(--heart-hp-hi);stroke-width:2.4px;stroke-linecap:round}.heart.empty .h-fill{fill:#3c1e148c}.heart.empty .h-shine{stroke:#0000}.hud-boss{top:calc(var(--inset-t) + 4px);text-align:center;width:clamp(220px,34vw,420px);position:absolute;left:50%;transform:translate(-50%)}.hud-boss-name{font:700 .95rem var(--font-display);color:var(--cream);text-shadow:0 2px #00000080;margin-bottom:4px}.hud-boss-track{border-radius:var(--r-pill);border:3px solid var(--boss-frame);background:#3a1f17;height:14px;overflow:hidden}.hud-boss-fill{background:linear-gradient(180deg, #f0524c, var(--boss-fill));transform-origin:0;height:100%;transition:transform .25s ease-out}.hud-toast{top:calc(24% + var(--safe-t));border-radius:var(--r-pill);color:var(--parchment-2);font:600 1.05rem var(--font-display);opacity:0;background:#2e1a12b8;padding:8px 20px;transition:opacity .3s,transform .3s;position:absolute;left:50%;transform:translate(-50%,-8px)}.hud-toast.show{opacity:1;transform:translate(-50%)}.hud-prompt{top:calc(12% + var(--safe-t));max-width:min(80vw,520px);color:var(--ink);border:2px solid var(--parchment-edge);font:600 1rem var(--font-display);text-align:center;opacity:0;background:#fbf3e6eb;border-radius:14px;padding:8px 18px;transition:opacity .25s;position:absolute;left:50%;transform:translate(-50%)}.hud-prompt.show{opacity:1}.hud-prompt kbd{background:var(--ink);min-width:1.6em;color:var(--cream);font:700 .85em var(--font-body);border-radius:6px;margin:0 .1em;padding:0 .35em;display:inline-block}.screens{pointer-events:auto;padding:calc(16px + var(--safe-t)) calc(16px + var(--safe-r)) calc(16px + var(--safe-b)) calc(16px + var(--safe-l));justify-content:center;align-items:center;display:none;position:absolute;inset:0}.screens.open{display:flex}.screens.dim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e100a8c}.screen{justify-content:center;width:100%;animation:.22s ease-out screen-in;display:flex}.screen[hidden]{display:none}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}}.title-card{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.logo{font:700 clamp(3rem, 10vh, 5.6rem) / .95 var(--font-display);color:var(--caramel);letter-spacing:-.01em;text-shadow:0 3px 0 var(--caramel-lo), 0 7px 18px #00000073;-webkit-text-stroke:2px #fbe0b5;paint-order:stroke fill;margin:0}.logo span:last-child{color:#c4682a}.tagline{font:600 clamp(.95rem, 2.6vh, 1.2rem) var(--font-display);color:var(--parchment-2);text-shadow:0 2px 4px #0009;margin:0 0 8px}.menu{flex-direction:column;gap:10px;min-width:240px;display:flex}.fineprint{opacity:.75;margin:6px 0 0;font-size:.8rem}.panel{background:linear-gradient(180deg, var(--parchment-2), var(--parchment-3));color:var(--ink);border:2px solid var(--parchment-edge);border-radius:var(--r-card);box-shadow:var(--shadow-card), 0 0 0 8px var(--wood);max-width:min(94vw,760px);max-height:calc(100dvh - 32px - var(--safe-t) - var(--safe-b));overscroll-behavior:contain;touch-action:pan-y;padding:20px 28px 24px;overflow:auto}.panel h2{text-align:center;font:700 1.9rem var(--font-display);color:var(--wood);margin:0 0 14px}.pause-panel .menu{min-width:260px}.settings-form{gap:10px;min-width:min(420px,80vw);margin-bottom:16px;display:grid}.settings-form label{grid-template-columns:1fr 1.2fr;align-items:center;gap:12px;font-weight:700;display:grid}.settings-form label.check{grid-template-columns:1fr auto}.settings-form input[type=range]{accent-color:var(--caramel);width:100%}.settings-form select{font:inherit;border:2px solid var(--tan-edge);background:var(--cream);color:var(--ink);border-radius:10px;padding:6px 8px}.settings-form input:focus-visible,.settings-form select:focus-visible{outline:3px solid var(--gold-2);outline-offset:2px}.controls-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px 22px;margin-bottom:16px;display:grid}.screen-controls .panel{width:min(94vw,760px)}body.touch-first .controls-col.touch{order:-1}.controls-col h3{font:700 1.1rem var(--font-display);color:var(--caramel);margin:0 0 6px}.controls-col dl{grid-template-columns:auto 1fr;gap:4px 10px;margin:0;font-size:.9rem;display:grid}.controls-col dt{font-weight:700}.controls-col dd{margin:0}.panel .menu{align-items:center}.loading{font:600 1.2rem var(--font-display);color:var(--parchment-2);flex-direction:column;align-items:center;gap:12px;display:flex}.loading-blob{background:var(--dough);border-radius:50% 50% 46% 46%;width:56px;height:48px;animation:.9s ease-in-out infinite alternate knead}@keyframes knead{0%{transform:scale(1.25,.7)}to{transform:scale(.85,1.2)}}.touch-layer{pointer-events:none;display:none;position:absolute;inset:0}.touch-layer.visible{display:block}.tc-stick-zone{pointer-events:auto;touch-action:none;width:42%;height:70%;position:absolute;bottom:0;left:0}.tc-stick{--stick:clamp(120px, 34vh, 160px);left:calc(var(--inset-l) + var(--stick) / 2 + 6px);top:calc(100% - var(--inset-b) - var(--stick) / 2 - 10px);width:var(--stick);aspect-ratio:1;background:var(--touch-pad);opacity:.8;border:2px solid #fbf3e659;border-radius:50%;transition:opacity .15s;position:absolute;transform:translate(-50%,-50%)}.tc-stick.active{opacity:1}.tc-knob{aspect-ratio:1;background:#dcba9f;border-radius:50%;width:44%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px #3c1e1480}.tc-arrow{opacity:.8;border:8px solid #0000;width:0;height:0;position:absolute}.tc-arrow.l{border-right-color:var(--cream);top:50%;left:6px;transform:translateY(-50%)}.tc-arrow.r{border-left-color:var(--cream);top:50%;right:6px;transform:translateY(-50%)}.tc-arrow.d{border-top-color:var(--cream);bottom:6px;left:50%;transform:translate(-50%)}.tc-btn{aspect-ratio:1;background:var(--touch-btn);border:2px solid var(--touch-rim);pointer-events:auto;touch-action:none;border-radius:50%;justify-content:center;align-items:center;width:clamp(56px,17vh,72px);transition:transform 80ms,background 80ms;display:flex;position:absolute}.tc-btn svg{width:52%;height:52%;fill:var(--touch-glyph);stroke:var(--touch-glyph)}.tc-btn em{font:600 .62rem var(--font-display);color:var(--parchment-2);text-shadow:0 1px 2px #000;opacity:.85;font-style:normal;position:absolute;bottom:-1.3em}.tc-btn.down{background:#78482ceb;transform:scale(.9)}.tc-btn.locked{opacity:.35}.touch-layer{--jump:clamp(64px, 20vh, 84px);--btn:clamp(56px, 17vh, 72px);--r0:calc(var(--inset-r) + 1%);--b0:calc(var(--inset-b) + 4%)}.tc-jump{right:var(--r0);bottom:calc(var(--b0) + 12px);width:var(--jump)}.tc-attack{right:calc(var(--r0) + var(--jump) + 14px);bottom:calc(var(--b0) + 4px)}.tc-flatten{right:calc(var(--r0) + var(--jump) + var(--btn) + 30px);bottom:calc(var(--b0))}.tc-grapple{right:var(--r0);bottom:calc(var(--b0) + 12px + var(--jump) + 22px)}.tc-cling{right:calc(var(--r0) + var(--btn) + 20px);bottom:calc(var(--b0) + 12px + var(--jump) + 6px)}.tc-pause{top:var(--inset-t);right:var(--inset-r);pointer-events:auto;touch-action:none;background:#51372e;border:2px solid #fbf3e699;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:46px;height:46px;display:flex;position:absolute}.tc-pause span{background:var(--cream);border-radius:2px;width:5px;height:18px}.rotate-overlay{z-index:10;color:var(--cream);text-align:center;background:#2e1a12eb;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.rotate-card svg{width:72px;color:var(--parchment-2);animation:1.8s ease-in-out infinite rot}@keyframes rot{50%{transform:rotate(-90deg)}}.rotate-card p{font:600 1.1rem var(--font-display);max-width:260px}.rotate-card .btn{margin-top:8px}body.portrait-blocked #rotate,body.context-lost #context-lost{display:flex}.fallback{z-index:20;background:#2a1c14;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.fallback[hidden]{display:none}.fallback-card{text-align:center;max-width:460px}.fallback-card h1{font:700 2.4rem var(--font-display);color:var(--caramel-hi)}.debug-overlay{z-index:50;color:#9f9;pointer-events:none;background:#000000a8;border-radius:6px;margin:0;padding:6px 8px;font:11px/1.35 ui-monospace,Consolas,monospace;position:fixed;bottom:8px;left:8px}.debug-gui{z-index:60!important}@media (prefers-reduced-motion:reduce){.screen,.loading-blob,.rotate-card svg{animation:none}}.panel .btn.ghost{color:var(--ink);border-color:var(--tan-edge);background:#ffffff59}@media (max-height:520px){.panel{box-shadow:var(--shadow-card), 0 0 0 5px var(--wood);padding:12px 18px 14px}.panel h2{margin-bottom:8px;font-size:1.35rem}.btn{min-height:40px;padding:.4em 1.2em;font-size:.95rem}.pause-panel .menu{grid-template-columns:1fr 1fr;gap:8px 10px;display:grid}.pause-panel .menu .btn.primary{grid-column:1/-1}.settings-form{gap:6px;margin-bottom:10px}.controls-col dl{font-size:.8rem}.title-card .menu{gap:7px}}@media (max-height:360px){.title-card{gap:4px}.logo{font-size:clamp(2.2rem,14vh,3rem)}.tagline{margin:0 0 4px}.title-card .fineprint{display:none}.btn{min-height:36px;padding:.3em 1.1em}.title-card .menu{gap:6px}}.fade{opacity:0;pointer-events:none;background:#1a0f0a;transition:opacity .4s;position:absolute;inset:0}.fade.on{opacity:1}.complete-panel{text-align:center;max-width:min(94vw,640px)}.complete-panel h2{font-size:1.8rem}.complete-panel h3{font:700 1.15rem var(--font-display);color:var(--caramel);margin:6px 0 8px}.complete-time{margin:0 0 6px;font-weight:700}.complete-blurb{color:var(--ink-soft);margin:0 0 12px}.choice-row,.menu.row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.menu.row{flex-direction:row;margin-top:14px}.fb-thanks textarea{width:100%;font:inherit;border:2px solid var(--tan-edge);resize:vertical;border-radius:10px;margin:4px 0 6px;padding:6px 8px}.support-block{border:1px dashed var(--parchment-edge);background:#ffffff73;border-radius:14px;margin-top:12px;padding:10px 12px;font-size:.92rem}.support-block p{margin:0 0 8px}.signup{justify-items:center;gap:6px;margin-top:10px;font-size:.92rem;display:grid}.signup input{font:inherit;border:2px solid var(--tan-edge);border-radius:10px;margin-left:6px;padding:6px 8px}.btn.small{min-height:36px;padding:.3em 1em;font-size:.9rem}@media (max-height:520px){.complete-panel h2{font-size:1.3rem}.complete-blurb{display:none}}.donate-row{border:2px dashed var(--tan-edge);text-align:center;background:#fff6;border-radius:14px;justify-items:center;gap:6px;margin:4px 0 12px;padding:10px 12px;display:grid}.donate-row p{margin:0;font-size:.92rem}.support-soon{text-align:center;color:var(--ink-soft);margin:4px 0 0;font-size:.85rem}
