@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=DM+Sans:wght@400;500;600&display=swap');
:root{color-scheme:dark;--gold:#e6c492;--ink:#eee7d8;--muted:#b2c4c4;font-family:'DM Sans',sans-serif;background:#071316;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}#stage,.console,#screen{position:absolute;inset:0}#screen{background:#071316;overflow:hidden}#stage:after{content:'';position:absolute;inset:12px;border:1px solid #d9b77899;box-shadow:inset 0 0 0 4px #0a161529,0 0 24px #0005;pointer-events:none;z-index:8}#game{display:block;width:100%;height:100%;outline:0;touch-action:none}#hud{position:absolute;inset:0 0 auto;padding:32px 42px;display:flex;justify-content:space-between;align-items:start;pointer-events:none;background:linear-gradient(#031014aa,transparent);text-shadow:0 2px 14px #000;z-index:2}.brand{font:400 30px 'Cormorant Garamond',Georgia,serif;letter-spacing:7px}.brand span{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:2.7px;margin-top:5px;color:var(--muted)}.stats{display:flex;gap:30px}.stats>span{min-width:65px;font-size:19px;white-space:nowrap}.stats i{font-style:normal;color:var(--gold);margin-right:9px}.stats b{font-weight:400;font-variant-numeric:tabular-nums}.stats small{display:block;font-size:9px;letter-spacing:1.8px;color:var(--muted);margin-top:5px}button{font:500 12px 'DM Sans',sans-serif;color:var(--ink);cursor:pointer;border:1px solid #d9caab44;background:#07191ba8;border-radius:3px;padding:10px 14px;touch-action:manipulation}button:hover:enabled{border-color:var(--gold);background:#23362e}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.primary{background:#e7c695;color:#172627;padding:16px 42px;font-size:14px;letter-spacing:1px}.primary:hover:enabled{background:#ffe2ac}#overlay{position:absolute;inset:0;display:grid;align-items:center;justify-items:start;padding:9%;background:linear-gradient(90deg,#061317eb,#07161965 58%,transparent);z-index:3}.overlay-card{max-width:600px}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold)}h2{font:400 clamp(64px,10vw,145px)/1 'Cormorant Garamond',Georgia,serif;letter-spacing:2px;margin:20px 0}.overlay-card p:not(.eyebrow){color:#c0cecc;line-height:1.8;font-size:15px;margin:24px 0 30px}.toolbar{position:absolute;bottom:32px;right:36px;display:flex;gap:8px;align-items:center;z-index:4}.toolbar #hint{display:none}.controls{position:absolute;left:38px;bottom:34px;z-index:4;font-size:11px;color:var(--muted);max-width:min(540px,80vw)}summary{cursor:pointer;letter-spacing:1px}.controls[open]{padding:20px;background:#07191bf2;border:1px solid #d9caab55;border-radius:4px;bottom:80px}.keys{display:flex;flex-wrap:wrap;gap:14px;margin:16px 0}kbd{font:10px 'DM Sans',sans-serif;border:1px solid #c5d6d43b;padding:4px 6px;border-radius:3px}.controls p{line-height:1.8}footer{display:none}#error{position:absolute;z-index:10;inset:30% 15% auto;padding:24px;background:#402e1d;color:#ffdda1}#overlay.victory{align-items:start;padding-top:90px;background:linear-gradient(#061317d9,transparent 60%)}.victory h2{font-size:42px}.victory .eyebrow{display:none}.touch{display:none;position:absolute;bottom:85px;left:26px;right:26px;z-index:4;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}.touch button{pointer-events:auto;touch-action:none;min-height:50px;min-width:46px;background:#112b3299;user-select:none}.touch button.held{background:var(--gold);color:#172417}.actions,.dpad{display:flex;gap:6px}.actions button{border-radius:50%;width:58px;height:58px;font-size:20px}.actions span{display:block;font-size:9px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[hidden]{display:none!important}.about{overflow:auto;height:auto;max-width:780px;margin:30px auto;padding:24px}.about h1{font:40px 'Cormorant Garamond',serif}.about a{color:var(--gold)}
@media(pointer:coarse){.touch{display:flex}}@media(max-width:700px){#stage:after{inset:7px}#hud{padding:22px}.brand{font-size:24px;letter-spacing:4px}.brand span{font-size:8px;letter-spacing:1px}.stats{gap:12px}.stats>span{min-width:42px;font-size:15px}.stats i{margin-right:4px}.stats small{font-size:7px;letter-spacing:1px}.toolbar{right:20px;left:20px;bottom:20px;justify-content:flex-end;gap:5px}.toolbar button{padding:8px;font-size:10px}.controls{left:24px;bottom:66px}.touch{display:flex;left:20px;right:20px;bottom:106px}#overlay{padding:9%}.overlay-card p:not(.eyebrow){font-size:13px}.eyebrow{font-size:8px;letter-spacing:2px}}@media(max-height:500px){#hud{padding:20px 28px}.brand{font-size:22px}.brand span{font-size:8px}.stats small{font-size:7px}h2{font-size:64px;margin:10px 0}.overlay-card p:not(.eyebrow){margin:10px 0 18px}.toolbar{bottom:20px}.touch{bottom:64px}.controls{bottom:24px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

#developer-panel{position:absolute;z-index:20;right:24px;top:24px;width:min(360px,calc(100% - 32px));max-height:calc(100% - 48px);overflow:auto;padding:22px;background:#0c2024f5;border:1px solid #e6c49288;border-radius:12px;box-shadow:0 18px 60px #0008}#developer-panel header{display:flex;justify-content:space-between;align-items:start;gap:12px}#developer-panel small{font-size:9px;letter-spacing:2px;color:var(--gold)}#developer-panel h2{font:28px 'Cormorant Garamond',serif;letter-spacing:0;margin:8px 0}#developer-panel p{font-size:12px;color:var(--muted);line-height:1.6}#developer-sliders label{display:grid;grid-template-columns:1fr auto;gap:10px;margin:22px 0;font-size:12px}#developer-sliders output{color:var(--gold);font-variant-numeric:tabular-nums}#developer-sliders input{grid-column:1/-1;width:100%;accent-color:var(--gold);cursor:ew-resize}#developer-sliders input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}#developer-reset{width:100%}#developer-panel .developer-help{font-size:10px;margin-bottom:0}@media(max-width:700px){#developer-panel{right:16px;top:16px;max-height:calc(100% - 32px)}}

/* Touch surfaces never enter native text selection or the iOS callout. */
#direction-zone,.touch,.touch *,.toolbar,.toolbar *,.controls summary,.controls summary *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#direction-zone{display:none;position:absolute;inset:0 50% 78px 0;z-index:2;touch-action:none}
.touch{justify-content:flex-end;bottom:88px}.actions{display:grid;grid-template-columns:58px 58px;grid-template-rows:48px 58px;gap:6px 8px;align-items:center;justify-items:center}.actions [data-key=swap]{grid-column:1/3;width:46px;height:46px;min-width:46px;min-height:46px;font-size:18px}.actions [data-key=run]{grid-column:1}.actions [data-key=jump]{grid-column:2}
.utility-icon{display:none;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.controls{bottom:32px;height:37px;display:flex;align-items:center}.controls summary{line-height:37px}.controls[open]{display:block;height:auto;max-height:60vh;overflow:auto}.touch-help{display:none}
@media(pointer:coarse),(max-width:700px){#direction-zone{display:block}.touch{display:flex;bottom:82px}.toolbar{left:auto;right:20px;bottom:20px;gap:6px}.toolbar button{width:42px;height:42px;padding:10px;display:grid;place-items:center}.utility-icon{display:block}.utility-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.controls{left:24px;bottom:20px;height:42px}.controls summary{width:42px;height:42px;display:grid;place-items:center;list-style:none}.controls summary::-webkit-details-marker{display:none}.controls[open]{bottom:72px}.touch-help{display:block}}
@media(pointer:coarse) and (max-height:500px){.touch{bottom:70px;right:24px}.actions{grid-template-rows:42px 54px}.actions button{width:54px;height:54px}.actions [data-key=swap]{width:42px;height:42px;min-height:42px;min-width:42px}}
/* Gameplay owns touch gestures; scrollable help/settings still allow vertical reading. */
html,body,#stage,#stage *{touch-action:none}
.controls[open],.controls[open] *,#developer-panel,#developer-panel *{touch-action:pan-y}
#leaderboard-panel{font-family:'DM Sans',sans-serif;color:var(--ink);background:linear-gradient(145deg,#142d2e,#071316);border:1px solid #d9b77899;border-radius:12px;padding:32px;width:min(620px,calc(100vw - 28px));max-height:90dvh;overflow:auto;box-shadow:0 20px 80px #000b;touch-action:pan-y}#leaderboard-panel::backdrop{background:#020b10c9}#leaderboard-panel h2{font-size:44px;margin:8px 0 12px;letter-spacing:0}#leaderboard-panel p{line-height:1.5;color:var(--muted);font-size:13px}#leaderboard-panel .ranking-close{float:right;font-size:24px;border:0;padding:0 8px}#ranking-form label{display:block;font-size:12px;margin:20px 0 8px}.ranking-entry{display:flex;gap:8px}.ranking-entry input{min-width:0;width:100%;font:16px 'DM Sans',sans-serif;border:1px solid #8ea5a866;background:#041316;color:var(--ink);padding:12px;border-radius:4px}.ranking-entry .primary{padding:12px 18px;font-size:12px;letter-spacing:0;white-space:nowrap}#leaderboard-panel .ranking-note{font-size:11px}#ranking-personal{padding:16px;background:#e6c49218;border:1px solid #e6c49277;border-radius:6px;color:var(--gold);margin:16px 0;line-height:1.6}.ranking-scroll{max-height:36dvh;overflow:auto}.ranking-scroll table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.ranking-scroll caption{text-align:left;font-size:11px;padding:16px 0;color:var(--muted)}.ranking-scroll th{position:sticky;top:0;background:#13292b;text-align:left;font-size:11px;color:var(--muted)}.ranking-scroll td,.ranking-scroll th{padding:12px 8px;border-bottom:1px solid #aec1b322}.ranking-scroll td:last-child,.ranking-scroll th:last-child{text-align:right}.ranking-you{color:var(--gold);background:#e6c49212}.ranking-formula{margin-top:20px;font-size:12px;color:var(--muted)}#leaderboard-panel *{touch-action:pan-y}.ranking-entry input:focus{outline:2px solid var(--gold);outline-offset:2px}@media(max-width:700px){#leaderboard-panel{padding:22px}#leaderboard-panel h2{font-size:36px}.ranking-entry{flex-direction:column}.toolbar{gap:4px}.toolbar button{width:38px;height:40px;padding:8px}}

#touch-guide{position:absolute;left:24px;right:18px;bottom:4px;height:90px;border:1px solid #e7c69580;border-radius:12px;background:transparent;display:grid;place-items:center;pointer-events:none;color:var(--ink);font:500 14px 'DM Sans',sans-serif;letter-spacing:.5px;text-shadow:0 2px 8px #000}#touch-guide i{display:none;width:18px;height:18px;border-radius:50%;background:var(--gold);box-shadow:0 0 14px #e7c69555}#touch-guide.demonstrating span{display:none}#touch-guide.demonstrating i{display:block;animation:thumb-slide 1.4s ease-in-out infinite}@keyframes thumb-slide{0%,12%{transform:translateX(-38px);opacity:.45}65%,85%{transform:translateX(38px);opacity:1}100%{transform:translateX(38px);opacity:0}}@media(max-height:500px){#touch-guide{height:76px;bottom:0}}
