:root{color-scheme:dark;--cream:#fff2ce;--amber:#ffb225;--ink:#153b39}*{box-sizing:border-box}html,body{margin:0;height:100%;overscroll-behavior:none}body{font-family:'Trebuchet MS',Arial,sans-serif;color:var(--cream);background:#163c3b url('assets/forest.png') center/cover fixed}body:before{content:'';position:fixed;inset:0;background:#061c2199;backdrop-filter:blur(8px);z-index:-1}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #ffe895;outline-offset:4px}button:disabled{cursor:default}a{color:inherit}.app{height:100dvh;max-width:780px;margin:auto;display:flex;flex-direction:column;background:#173b35;overflow:hidden;box-shadow:0 0 100px #071c2770}header{height:54px;flex-shrink:0;display:flex;align-items:center;gap:20px;padding:7px 18px;background:linear-gradient(#214942,#153b36);border-bottom:1px solid #c3bf7022}.brand{font-size:17px;font-weight:950;letter-spacing:-.8px;text-decoration:none}.brand span{color:#ffae22}.wordmark{font-weight:900;letter-spacing:1px;font-size:22px;color:#ffc34c}.wordmark span{display:block;font-size:8px;letter-spacing:.6px;color:#b7caaa;font-weight:normal}nav{margin-left:auto;display:flex;gap:7px}.tool{border:1px solid #68856766;border-radius:50%;width:32px;height:32px;background:#254d43;color:#fff2ce;font-size:18px}.tool[aria-pressed=true]{background:#ab6c25}.hud{height:70px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:8px 18px;gap:12px;background:#173b35}.plaque{border:1px solid #ad874d66;border-radius:10px;padding:8px 12px;background:linear-gradient(120deg,#73502d,#4a3323);box-shadow:inset 0 1px 0 #caaa6233,0 3px 0 #0d272666}.plaque small{display:block;color:#d4c9a5;font-size:9px;letter-spacing:1.2px}.plaque>span{display:block;font-size:11px;font-weight:bold;margin-top:5px}.plaque small b{color:#ffbf37}.counter{text-align:center;display:flex;align-items:center;gap:12px}.counter strong{font-size:28px;color:#ffc53e;text-shadow:0 2px #33200c}.counter i{font-size:17px;font-style:normal;color:#f8dfad;margin-left:4px}.counter small{max-width:55px;font-size:8px}.lives{text-align:center}.lives>span{color:#ffc94a;letter-spacing:3px}.stage{position:relative;flex:1;min-height:0;overflow:hidden;border-top:2px solid #b88f4d66;border-bottom:2px solid #b88f4d66;isolation:isolate;background:#577b63}canvas{display:block;width:100%;height:100%;touch-action:none}#message{position:absolute;top:14px;left:50%;transform:translateX(-50%);max-width:94%;width:max-content;text-align:center;padding:9px 15px;border-radius:20px;background:#173b35e8;border:1px solid #f2ce7955;color:#fff2c8;font-size:12px;pointer-events:none;opacity:0}#message.show{opacity:1}.overlay{position:absolute;inset:0;background:#0c292e66;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px;z-index:3}.hidden{display:none!important}.card{width:360px;max-width:100%;padding:27px 25px;text-align:center;background:linear-gradient(145deg,#fff3cc,#e9d9aa);color:#354b37;border:3px solid #b28b4e;border-radius:22px;box-shadow:0 8px 0 #684d2c,0 20px 50px #11292766}.leaf-label{font-size:8px;letter-spacing:2px;color:#6b7d45;font-weight:bold}h1{margin:15px 0 12px;font-size:68px;letter-spacing:-4px;line-height:1;color:#e99722;text-shadow:0 3px #a55b26;font-weight:950}h1 span{display:block;font-family:Georgia,serif;font-size:22px;letter-spacing:-.6px;color:#4f643b;text-shadow:none;margin-top:9px}h1.compact{font-family:Georgia,serif;font-size:36px;letter-spacing:-1px;line-height:1.1;color:#34583e;text-shadow:none}.card p{font-size:12px;line-height:1.7;color:#667054}.intro-steps{display:flex;justify-content:space-around;margin:20px 0;font-size:10px}.intro-steps b{display:block;color:#a77b32;font-size:22px;font-family:Georgia;margin-bottom:4px}.primary{border:2px solid #f3c361;border-radius:13px;background:linear-gradient(#ffca4b,#ed9522);color:#683c18;font-weight:900;padding:13px 18px;box-shadow:0 4px #a55d24;display:block;width:100%}.primary:disabled{opacity:.55}.secondary{border:0;background:none;text-decoration:underline;color:#64744d;display:block;margin:16px auto 0;font-size:11px}.card>small{display:block;font-size:8px;letter-spacing:.4px;color:#87906c;margin-top:16px}.controls{padding:10px 20px max(10px,env(safe-area-inset-bottom));background:linear-gradient(#214a3d,#102e2d);flex-shrink:0;text-align:center}.trip{display:flex;justify-content:space-between;align-items:center;max-width:430px;margin:0 auto 9px;font-size:9px;letter-spacing:1px;color:#bccba8}.trip b{color:#ffdb80;margin-left:5px}.trip button{font-size:10px;color:#f9e5ac;background:#345547;border:1px solid #82945e88;padding:7px 12px;border-radius:12px;min-height:34px}.trip button:disabled{opacity:.45}.jump{position:relative;display:block;overflow:hidden;margin:auto;width:min(100%,360px);height:76px;border:4px solid #f7ce6b;border-radius:27px;background:linear-gradient(#ffda66 0%,#ffb72b 23%,#f28b13 80%,#ec8412);box-shadow:0 5px #88481c,0 0 0 4px #8a5a31,inset 0 2px #fff3bd;color:#fff9e8;font-weight:950;font-size:34px;letter-spacing:1px;text-shadow:0 3px #b16420;touch-action:none;user-select:none;-webkit-user-select:none}.jump.charging{transform:translateY(3px);box-shadow:0 2px #88481c,0 0 0 4px #8a5a31,inset 0 2px #fff3bd;background:linear-gradient(#ffe186,#ffbe38,#eb8615)}.jump:disabled{filter:saturate(.55);opacity:.65}.button-glint{position:absolute;top:5px;left:15%;right:15%;height:5px;background:#fff7b488;border-radius:100%}#tip{margin:12px 0 0;font-size:10px;letter-spacing:.4px;color:#c9d1af}dialog{width:min(420px,calc(100% - 30px));max-height:88dvh;overflow:auto;border:3px solid #b28b4e;border-radius:18px;padding:25px;background:#f3e6c2;color:#36543c}dialog::backdrop{background:#092626bb}dialog h2{font:30px Georgia,serif}dialog p{font-size:13px;line-height:1.6}.close{float:right;background:none;border:0;color:#4f6344;font-size:26px} @media(max-width:480px){header{gap:12px;padding:7px 12px;height:48px}.brand{font-size:15px}.wordmark{font-size:20px}.wordmark span{font-size:7px}.hud{padding:7px 10px;gap:7px;height:66px}.plaque{padding:7px 9px}.plaque>span{font-size:9px;max-width:115px}.plaque small{font-size:8px;letter-spacing:.5px}.counter{gap:7px}.counter strong{font-size:25px}.lives>span{letter-spacing:1px}.controls{padding-left:20px;padding-right:20px}.jump{height:72px}.card{padding:22px}h1{font-size:58px}}@media(max-height:600px){header{height:40px}.hud{height:52px}.controls{padding-top:6px;padding-bottom:6px}.trip{margin-bottom:5px}.trip button{min-height:27px;padding:4px 10px}.jump{height:52px;font-size:26px}#tip{margin-top:7px;font-size:8px}.card{padding:15px;max-width:360px}h1{font-size:43px;margin:8px}h1 span{font-size:17px}.card p{font-size:11px;margin:8px}.intro-steps{display:none}.card>small{margin-top:9px}.overlay{position:fixed;z-index:10}.plaque>span{font-size:9px}.counter strong{font-size:22px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* V3: directional controls remain large, with a centred charging button. */
.app{max-width:1120px}.pad{display:flex;align-items:center;justify-content:center;gap:14px;max-width:560px;margin:auto}.pad .jump{flex:1;min-width:0;width:auto;margin:0;font-size:28px}.direction{flex:0 0 68px;height:72px;border:2px solid #c7b574;border-radius:20px;background:linear-gradient(#52755b,#284f42);color:#e6e4b9;font-size:27px;box-shadow:0 4px #0b2826;touch-action:manipulation}.direction[aria-pressed=true]{border-color:#ffd16c;background:linear-gradient(#a4853b,#765327);color:#fff4c1}.direction:disabled{opacity:.5}.trip{max-width:560px;min-height:38px;letter-spacing:.4px}.trip button{font-size:11px;min-height:38px}.trip button[aria-pressed=true]{background:#8b6a31}.keyring{font-size:19px;letter-spacing:4px}.version{display:block;font-size:8px;letter-spacing:1.8px;color:#98ac8c;margin-top:6px}.controls{padding-top:7px}#tip{margin-top:10px}.wordmark span{letter-spacing:.1px}
@media(max-width:480px){.pad{gap:10px}.direction{flex-basis:58px;height:72px;border-radius:18px}.pad .jump{font-size:23px;border-width:3px;border-radius:22px}.controls{padding-left:14px;padding-right:14px}.keyring{font-size:15px;letter-spacing:2px}.trip{font-size:8px}.trip button{font-size:10px;padding:7px 8px}#tip{font-size:9px}.wordmark{font-size:19px}}
@media(max-height:600px){.direction{height:50px;flex-basis:60px}.trip{min-height:30px;margin-bottom:6px}.trip button{min-height:28px}.version{display:none}.pad .jump{height:50px}.controls{padding-top:4px}.hud{height:48px}.app{max-width:1120px}}

.route-up{position:absolute;z-index:2;transform:translate(-50%,-100%);width:68px;height:76px;padding:5px 7px;border:2px solid #cfa45888;border-radius:16px;background:#173b35d9;box-shadow:0 3px 0 #102925,0 0 14px #071d2270;color:#fff1bf;touch-action:manipulation}.route-up[hidden]{display:none}.route-up svg{display:block;width:44px;height:44px;margin:auto;fill:#ffcf4d;stroke:#624423;stroke-width:2;stroke-linejoin:round}.route-up span{display:block;font-size:9px;font-weight:bold;letter-spacing:1px;margin-top:4px}.route-up[aria-pressed=true]{border-color:#bdff9b;background:#245d36ed;box-shadow:0 3px 0 #143d24,0 0 18px #80ec6866}.route-up[aria-pressed=true] svg{fill:#91f56d;filter:drop-shadow(0 2px 2px #153d22)}.trip #fork{min-height:44px;font-size:11px;font-weight:bold}#tip{min-height:22px;line-height:1.4}

.trip #fork[aria-pressed=true]{background:#285e38;border-color:#a2f185;color:#e0ffd2}

nav{gap:4px}.tool{width:30px;height:32px;flex-shrink:0}#music[aria-pressed=false]{opacity:.6}#music[aria-pressed=true]{background:#516b38;color:#ffe8a6}

/* V4: simultaneous hold movement + jump, generous touch targets. */
.direction,.jump,#fork{touch-action:none;user-select:none;-webkit-user-select:none}.direction:active{background:#b6d69a;color:#173d3c;transform:translateY(2px)}#fork{min-width:110px;min-height:52px;font-weight:900}.pad .direction{min-width:80px;min-height:80px}.route-up[hidden]{display:none!important}
