*{box-sizing:border-box}body{margin:0;background:#091a19;color:#f6edce;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}main{width:min(100%,460px);height:min(900px,100dvh);min-height:480px;margin:auto;position:relative;overflow:hidden;background:#163732}header{height:56px;padding:18px 22px;position:absolute;top:0;width:100%;display:flex;align-items:center;justify-content:space-between;z-index:2}a{color:#e1d6b5;font-size:11px;letter-spacing:2px;text-decoration:none;font-weight:800}button{font:inherit;cursor:pointer;border:0;touch-action:manipulation}button:focus-visible{outline:3px solid #fff;outline-offset:3px}#pause{background:#26483f;color:#f6edce;border-radius:50%;width:34px;height:34px;font-weight:900}.hud{position:absolute;top:72px;left:22px;right:22px;display:flex;justify-content:space-between;z-index:2;pointer-events:none}.hud small{display:block;font-size:11px;letter-spacing:2px;font-weight:800;color:#c1c7b0}.hud strong{font-size:32px;font-variant-numeric:tabular-nums}.best{text-align:right}.best strong{font-size:24px}.momentum{position:absolute;top:137px;left:22px;right:22px;z-index:2;display:flex;gap:12px;align-items:center;font-size:10px;letter-spacing:1px;font-weight:900}.momentum meter{width:100%;height:10px}canvas{display:block;width:100%;height:100%;touch-action:none}.overlay{position:absolute;left:20px;right:20px;top:23%;padding:26px 22px;border:1px solid #69816a;background:#102b29f5;border-radius:18px;z-index:3;box-shadow:0 18px 60px #061b1bb0}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:900;color:#cad7ad;margin:0 0 14px}h1{font-size:clamp(40px,11vw,54px);line-height:.98;letter-spacing:-2px;margin:0 0 18px;font-weight:950}h1 em{font-style:normal;color:#ef9653}#message{font-size:15px;line-height:1.55;color:#d5dac1;margin:0 0 22px}.primary{background:#f3a365;color:#162d29;width:100%;padding:17px;border-radius:10px;display:flex;justify-content:space-between;font-weight:850;font-size:17px}.instruction{font-size:12px;line-height:1.5;color:#b9c6ac;margin:14px 0 0}.controls{position:absolute;bottom:35px;left:22px;right:22px;display:flex;justify-content:space-between;align-items:center;z-index:2}.controls button{width:60px;height:56px;border-radius:14px;background:#e8e3c9;color:#15362f;font-size:28px;font-weight:700;box-shadow:0 4px #6b8270}.controls span{font-size:10px;letter-spacing:1px;font-weight:850;text-align:center;max-width:150px}footer{position:absolute;bottom:10px;width:100%;text-align:center;font-size:8px;letter-spacing:1.8px;color:#a5bca0}#final{font-size:28px;font-weight:900;color:#ef9653;margin:0 0 16px}[hidden]{display:none!important}@media(max-height:650px){.overlay{top:22%;padding:18px}h1{font-size:38px;margin-bottom:12px}.eyebrow{margin-bottom:10px}#message{margin-bottom:14px;font-size:14px}.instruction{font-size:11px}.hud{top:56px}.momentum{top:113px}.controls{bottom:30px}}

#duck{width:115px;font-size:13px;background:#eaa16c;touch-action:none}.controls #status{position:absolute;bottom:68px;left:0;right:0;max-width:none;font-size:11px}body{touch-action:none;overscroll-behavior:none}

:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
main{height:calc(100dvh - var(--safe-top) - var(--safe-bottom));min-height:0}
.overlay{max-height:calc(77% - 12px);overflow-y:auto}


#sound{font:700 11px/1.2 system-ui,sans-serif;min-height:40px;min-width:72px;padding:8px;border:1px solid #718f80;border-radius:12px;background:#1b3935;color:#f6ebd5;touch-action:manipulation;flex-shrink:0}header{gap:8px}header .brand,header>a{margin-right:auto}#pause{min-width:40px;min-height:40px;flex-shrink:0}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

#duck{background:linear-gradient(90deg,#ed9b69 var(--duck-charge,100%),#684c3a var(--duck-charge,100%));font-variant-numeric:tabular-nums;font-size:11px}

#snap-results{flex-shrink:0;margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}#snap-board{min-height:44px;padding:10px 18px;border:1px solid #9ab9a6;border-radius:12px;background:#21473f;color:#f7efda;font-size:14px;font-weight:800}#snap-board:disabled{opacity:.6}#snap-portrait{width:36px;height:36px;object-fit:contain}#snap-status{flex-basis:100%;font-size:12px;text-align:center;color:#cfdece;line-height:1.35}

#replay-target,#result-note,#fine,#keyboard{font-size:12px;line-height:1.5;color:#d0ddc9;white-space:normal}#replay-target{margin:0 0 14px}

#hazard-cue{position:absolute;top:34%;left:50%;transform:translateX(-50%);width:max-content;max-width:94%;padding:8px 12px;background:#493e2eee;border:1px solid #efd49a;border-radius:9px;color:#fff0ca;font-size:12px;font-weight:850;letter-spacing:.4px;text-align:center;pointer-events:none;z-index:2}

/* Menus own the composition; play controls and progress return on resume. */
main:has(#overlay:not([hidden])) .controls,
main:has(#overlay:not([hidden])) .momentum,
main:has(#overlay:not([hidden])) .hud{display:none}

/* Quiet foliage behind the fixed HUD; no layout or input layer changes. */
main::before{content:"";position:absolute;inset:0 0 auto;height:174px;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(9,26,25,.65) 0%,rgba(9,26,25,.58) 72%,rgba(9,26,25,0) 100%)}
@media(max-height:650px){main::before{height:148px}}

/* One compact power action; existing hazard/turn prompt retains its own space. */
#power-cue{position:absolute;z-index:2;top:163px;left:50%;transform:translateX(-50%);max-width:94%;padding:4px 9px;border:1px solid #d9c88d;border-radius:7px;background:#233b31ed;color:#fff0bf;font-size:11px;font-weight:800;white-space:nowrap;pointer-events:none}
@media(max-height:650px){#power-cue{top:135px}}
