:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;color:#f5eedb;background:#091b21}*{box-sizing:border-box}body{margin:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);overscroll-behavior:none}main{position:relative;width:min(100%,480px);height:calc(100dvh - var(--safe-top) - var(--safe-bottom));min-height:440px;margin:auto;overflow:hidden;background:#112b32}header{position:absolute;top:20px;left:22px;right:22px;display:flex;align-items:center;justify-content:space-between;z-index:2}header .brand{font-size:11px;letter-spacing:2px;color:#dadbc9;text-decoration:none;font-weight:800}button{font:inherit;border:0;cursor:pointer;touch-action:manipulation}#pause{background:#25444b;color:#f5eedb;border-radius:50%;width:38px;height:38px;font-size:20px}.hud{position:absolute;top:75px;left:22px;right:22px;display:flex;justify-content:space-between;pointer-events:none}.hud small{display:block;font-size:10px;letter-spacing:1.8px;color:#a7bbb3}.hud strong{display:block;font-size:30px;letter-spacing:-1px;margin-top:4px}.right{text-align:right}.right strong{font-size:20px}canvas{width:100%;height:100%;display:block;touch-action:none}#callout{position:absolute;bottom:44px;left:15px;right:15px;text-align:center;font-size:13px;color:#cad5ca;pointer-events:none}#panel{position:absolute;left:20px;right:20px;top:23%;padding:25px 22px;background:rgba(9,27,33,.94);border:1px solid #355056;border-radius:20px;box-shadow:0 20px 70px #00181c66}.eyebrow{font-size:10px;letter-spacing:2px;color:#ed9a64;font-weight:800}h1{font-size:clamp(38px,11vw,54px);line-height:.97;letter-spacing:-2px;margin:16px 0}h1 em{font-style:normal;color:#e69b66}p{font-size:14px;line-height:1.5;color:#bbc9c3;margin-bottom:20px}.instructions{display:grid;gap:7px;margin:18px 0 22px;font-size:12px;color:#b9ccc1}.instructions b{font-size:17px;color:#f5eedb}.instructions i{display:inline-block;width:9px;height:9px;border-radius:3px}.soft{background:#a7c7a6}.noisy{background:#e69561}#start{width:100%;padding:16px 12px;background:#ed9a64;border-radius:10px;color:#142b31;font-size:17px;font-weight:800}#keyboard{display:block;text-align:center;font-size:11px;color:#8da6a1;margin-top:12px}footer{position:absolute;bottom:15px;left:22px;right:22px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.6px;color:#6f9690;pointer-events:none}[hidden]{display:none!important}@media(max-height:640px){#panel{top:19%;padding:18px}h1{font-size:38px;margin:12px 0}p{margin:10px 0;font-size:13px}.instructions{margin:13px 0;gap:5px}#start{padding:13px}.hud{top:60px}header{top:12px}}

#shield{position:absolute;top:136px;left:22px;font-size:10px;font-weight:800;letter-spacing:1px;color:#ddc8a9;pointer-events:none}body{overscroll-behavior:none;touch-action: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}
#panel{max-height:calc(77% - 12px);overflow-y:auto}


header{background:#102631eb;border-radius:9px;padding:5px}.hud{background:#102631d9;border-radius:8px;padding:4px;z-index:1}#shield{z-index:2}

@media(max-height:640px){#shield{top:121px}}

main:has(#panel:not([hidden])) #shield{visibility:hidden}

#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}}

#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}

.instructions{font-size:14px;line-height:1.4}

/* Menus must stay above the HUD and remain scrollable in a short host viewport. */
#panel{z-index:3;touch-action:pan-y;overscroll-behavior:contain}
@media(max-height:540px){#panel{top:72px;max-height:calc(100% - 84px);padding:16px 18px}#panel .eyebrow{margin:0 0 8px}#panel h1{font-size:34px;margin:8px 0}#panel .instructions{margin:10px 0;font-size:13px}#panel #keyboard{margin-top:8px}}

main:has(#panel:not([hidden])) .hud,main:has(#panel:not([hidden])) #callout{visibility:hidden}

/* Keep gameplay visual; status announcements remain available to assistive technology. */
#shield,#callout{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
footer{display:none}#description:empty,#keyboard:empty{display:none}.instructions{margin:12px 0 20px}.instructions b{font-size:16px}

/* Incoming props must not compete with score or control labels. */
header,.hud{background:#102631}

/* One continuous canopy behind the HUD avoids thin prop fragments between cards. */
main::before{content:"";position:absolute;inset:0 0 auto;height:155px;background:linear-gradient(#102631 0 84%,#10263100);z-index:1;pointer-events:none}
.hud{z-index:2}
@media(max-height:640px){main::before{height:140px}}

/* Pause/results are separate compositions, not frozen gameplay fragments. */
#panel{background:#0d252d}
#panel-mascot{width:110px;height:73px;margin:0 auto 14px;background:url('./assets/sloth-atlas-v1.png?v=301572c16859a14f') no-repeat;background-size:331.59px 331.59px;background-position:-4.76px -29.09px}
@media(max-height:640px){#panel-mascot{width:84px;height:56px;background-size:253.21px 253.21px;background-position:-3.63px -22.21px;margin-bottom:8px}#panel{top:84px;max-height:calc(100% - 96px);overflow-y:auto}}

#result-score{display:block;font-size:38px;line-height:1.1;letter-spacing:-1px;color:#f5eedb;font-variant-numeric:tabular-nums;margin:12px 0}#keyboard{white-space:normal;text-wrap:balance}

/* Active movement mode is visible; ordinary ambient announcements remain quiet. */
#power-status{position:absolute;top:132px;left:26px;z-index:3;max-width:calc(100% - 52px);padding:6px 10px;border:1px solid #d8c59a;border-radius:14px;background:#102631ee;color:#fff1cd;font-size:11px;font-weight:800;letter-spacing:.5px;pointer-events:none;font-variant-numeric:tabular-nums}
@media(max-height:640px){#power-status{top:114px;padding:4px 8px}}
