:root{color:#2f2927;font-synthesis:none;--font-ui:"Trebuchet MS", ui-rounded, system-ui, sans-serif;--font-display:Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Black", sans-serif;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:18px;--ink:#2f2927;--ink-muted:#493d39;--cream:#fff9dd;--cream-title:#fff7d2;--sky:#65c9ee;--orange:#f48b36;--accent:#ffd98a;--accent-hover:#ffc968;background:#eaf8f1;font-family:Trebuchet MS,ui-rounded,system-ui,sans-serif}*{box-sizing:border-box}body{background-color:#d8f2ed;background-image:radial-gradient(circle at 50% 42%,#ffffffb8,#0000 33%),linear-gradient(#d8f3ef 0%,#c9ebe1 58%,#b8dfca 100%);min-width:320px;min-height:100dvh;margin:0;overflow:hidden}button{font:800 var(--text-md)/1 var(--font-ui);letter-spacing:.01em}#app{min-height:100dvh;padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));place-content:center;gap:12px;display:grid}#game-shell{aspect-ratio:9/16;border:4px solid var(--ink);max-width:calc(100vw - 24px);height:min(100dvh - 62px,760px);box-shadow:0 10px 0 var(--ink), 0 18px 34px #2f292738;background:var(--sky);position:relative;overflow:hidden}#game,#game canvas{display:block;width:100%!important;height:100%!important}#loading-screen{z-index:50;text-align:center;background:var(--sky);opacity:1;visibility:visible;place-content:center;gap:26px;transition:opacity .16s,visibility 0s linear .16s;display:grid;position:absolute;inset:0}.loading-mark{color:var(--cream-title);font-family:var(--font-display);letter-spacing:.01em;text-shadow:0 4px 0 var(--ink), 2px 0 0 var(--ink), -2px 0 0 var(--ink);font-size:48px;font-weight:900;line-height:.82}.loading-mark span{color:var(--orange)}.loading-bar{border:3px solid var(--ink);background:var(--cream);width:124px;height:12px;margin:0 auto;overflow:hidden}.loading-bar span{background:var(--orange);width:42%;height:100%;animation:.9s ease-in-out infinite alternate loading-slide;display:block}[data-game-ready=true] #loading-screen{opacity:0;visibility:hidden;pointer-events:none}#hud{pointer-events:none;opacity:0;position:absolute;inset:0}[data-game-ready=true] #hud{opacity:1}@keyframes loading-slide{0%{transform:translate(-15%)}to{transform:translate(155%)}}.top-bar{z-index:20;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;inset:14px 14px auto}.score-block{color:#fff;min-width:62px;text-shadow:0 2px 0 var(--ink), 1px 0 0 var(--ink), -1px 0 0 var(--ink)}.score-label{font-size:var(--text-xs);letter-spacing:.04em;font-weight:800;line-height:1;display:block}#score{font-size:34px;line-height:1;display:block}.run-best{font-size:var(--text-xs);margin-top:4px;font-weight:800;display:block}.run-best strong{font-size:var(--text-sm)}.controls{pointer-events:auto;gap:8px;display:flex}#challenge-banner{z-index:20;color:var(--cream);border:2px solid var(--cream);letter-spacing:.07em;white-space:nowrap;text-shadow:none;background:#2f2927d6;margin:0;padding:6px 10px;font-size:10px;font-weight:900;position:absolute;top:14px;left:84px}#challenge-banner[hidden]{display:none}#challenge-banner.is-beaten{color:var(--ink);background:var(--accent);border-color:var(--ink)}.icon-button{width:38px;height:38px;color:var(--ink);background:var(--cream);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);cursor:pointer;place-items:center;padding:0;display:grid}.icon-button[hidden]{display:none}.icon-button:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.icon-button:disabled{opacity:.45;cursor:default}.icon-button svg{stroke-width:3px;stroke-linecap:square;stroke-linejoin:miter;shape-rendering:crispedges;width:19px;height:19px}.install-toolbar-button span{font-size:var(--text-xs);display:none}.panel{text-align:center;pointer-events:auto;width:min(292px,100% - 32px);position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.panel--start{width:min(310px,100% - 28px);top:43%}.panel--start.panel--challenge{top:calc(43% + 31px)}.panel--start .eyebrow{margin-bottom:12px}.panel--start h1{line-height:.86}.panel--start .action-hint{margin-top:12px}.panel--compact{background:var(--cream);border:4px solid var(--ink);box-shadow:0 8px 0 var(--ink);padding:25px 22px 27px}.panel[hidden]{display:none}.eyebrow{font-size:var(--text-xs);letter-spacing:.09em;color:var(--ink-muted);text-shadow:0 1px #ffffffa6;margin:0 0 9px;font-weight:800;line-height:1.2}h1,h2{color:var(--cream-title);font-family:var(--font-display);text-transform:uppercase;text-shadow:0 3px 0 var(--ink), 2px 0 0 var(--ink), -2px 0 0 var(--ink);margin:0;font-weight:900;line-height:.8}h1{letter-spacing:.01em;font-size:clamp(48px,16cqw,66px)}h1 span{color:var(--orange)}h2{color:var(--orange);font-size:40px;line-height:1}.primary-button{min-height:50px;color:var(--ink);background:var(--accent);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);cursor:pointer;padding:0 22px}.primary-button:hover{background:var(--accent-hover)}.primary-button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}.start-actions{gap:12px;width:min(250px,100%);margin:22px auto 0;display:grid}.start-actions .primary-button{width:100%}.start-button{justify-content:center;align-items:center;gap:9px;min-height:54px;display:inline-flex}.start-button svg{stroke-width:3px;width:19px;height:19px}#play-normally-button[hidden]{display:none}.action-hint{font-size:var(--text-xs);color:var(--ink-muted);margin:10px 0 0;font-weight:700}.secondary-button{color:var(--ink);background:var(--cream);justify-content:center;align-items:center;gap:7px;display:inline-flex}.secondary-button:hover{background:#fff3b8}.secondary-button svg{stroke-width:3px;width:18px;height:18px}#game-over-panel{padding:21px 26px 23px}#game-over-panel .eyebrow{margin-bottom:12px}#game-over-panel h2{white-space:nowrap;font-size:35px}#game-over-panel .result-grid{margin:18px 0 20px}.game-over-actions{gap:12px;display:grid}.game-over-actions .action-hint{margin:-2px 0 4px}.game-over-actions .primary-button{width:100%;min-width:0;min-height:48px;font-size:var(--text-sm);justify-content:center;align-items:center;gap:7px;padding-inline:10px;display:inline-flex}.game-over-actions>.primary-button{min-height:50px}.game-over-actions svg{stroke-width:3px;width:17px;height:17px}.game-over-secondary-actions{grid-template-columns:1fr 1fr;gap:11px;display:grid}.game-over-secondary-actions .primary-button{font-size:var(--text-xs)}.new-best{color:var(--orange);font-size:var(--text-md);margin:-10px 0 18px;font-weight:900}.new-best[hidden]{display:none}.result-grid{grid-template-columns:1fr 1fr;margin:22px 0;display:grid}.result-grid>div+div{border-left:2px solid #d8c5b4}.result-grid span{font-size:var(--text-xs);letter-spacing:.04em;color:var(--ink-muted);font-weight:800;display:block}.result-grid strong{font-size:28px;display:block}.pause-resume{justify-content:center;align-items:center;gap:8px;width:100%;margin-top:22px;display:inline-flex}.pause-resume svg{stroke-width:3px;width:18px;height:18px}.keyboard-hint{text-align:center;font-size:var(--text-xs);letter-spacing:.04em;color:var(--ink);margin:0;font-weight:800}button:focus-visible{outline-offset:3px;outline:3px solid #fff}#install-dialog,#settings-dialog{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:0}#install-dialog::backdrop,#settings-dialog::backdrop{background:#2f29277a}.install-sheet{left:50%;bottom:max(18px, env(safe-area-inset-bottom));text-align:center;background:var(--cream);border:4px solid var(--ink);width:min(332px,100% - 28px);box-shadow:0 8px 0 var(--ink);padding:25px 20px 22px;position:absolute;transform:translate(-50%)}.install-sheet h2{font-size:38px}.sheet-close{width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.sheet-close svg{stroke-width:3px;stroke-linecap:square;stroke-linejoin:miter;width:23px;height:23px}.install-steps{text-align:left;gap:10px;margin-top:22px;display:grid}.install-steps>div{border:3px solid var(--ink);background:#fff;grid-template-columns:36px 1fr;align-items:center;gap:10px;min-height:50px;padding:6px 12px;display:grid}.install-steps svg{stroke-width:2.5px;stroke-linecap:square;stroke-linejoin:miter;width:23px;height:23px}.install-steps span{font-size:var(--text-sm);font-weight:800}.install-steps strong{width:20px;height:20px;color:var(--ink);background:var(--accent);place-items:center;margin-right:5px;display:inline-grid}.settings-sheet{bottom:50%;transform:translate(-50%,50%)}.setting-controls{gap:10px;margin-top:22px;display:grid}.setting-toggle{min-height:50px;color:var(--ink);border:3px solid var(--ink);text-align:left;cursor:pointer;background:#fff;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:8px 13px;display:grid}.setting-toggle svg{stroke-width:2.5px;stroke-linecap:square;stroke-linejoin:miter;width:22px;height:22px}.setting-toggle strong{font-size:var(--text-sm);letter-spacing:.03em}.setting-toggle span{font-size:var(--text-xs);color:var(--ink-muted);font-weight:700}@media (width<=540px),(pointer:coarse){#app{padding:0;display:block}#game-shell{aspect-ratio:auto;width:100vw;max-width:none;height:100dvh;box-shadow:none;border:0}.keyboard-hint,.prompt-desktop{display:none}.prompt-mobile{display:inline}.panel{width:min(292px,100% - 48px)}.panel--start{width:min(310px,100% - 44px);top:43%}.panel--compact{padding:22px 20px 24px}h1{font-size:clamp(43px,14cqw,58px)}h2{font-size:35px}.install-sheet{width:min(332px,100% - 48px);padding:23px 18px 21px}.install-sheet h2{font-size:33px}.install-steps,.setting-controls{margin-top:18px}#game-over-panel{padding:22px 22px 23px}#game-over-panel h2{font-size:clamp(30px,9vw,35px)}}@media (width>=541px) and (pointer:fine){.prompt-mobile{display:none}}@media (width>=360px){.install-toolbar-button{grid-template-columns:19px auto;gap:7px;width:auto;padding:0 9px}.install-toolbar-button span{display:block}}.has-challenge .install-toolbar-button{grid-template-columns:1fr;gap:0;width:38px;padding:0}.has-challenge .install-toolbar-button span{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}.loading-bar span{width:100%;animation:none}}
