*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overscroll-behavior:none}body{background:#00559f;font-family:Arial,Helvetica,sans-serif;color:#00559f;display:grid;place-items:center}.game{width:min(100%,480px);height:100dvh;max-height:960px;position:relative;overflow:hidden;background:#ffca01;isolation:isolate}canvas{position:absolute;width:100%;height:100%;touch-action:none}.overlay{position:absolute;inset:0;text-align:center;display:flex;align-items:center;flex-direction:column;background:linear-gradient(#ffca01 0%,#ffca01e8 21%,#ffca0100 47%,#ffca01e8 69%,#ffca01 80%);padding:28px 26px 35px}.eyebrow{font-size:12px;letter-spacing:3px;font-weight:800}h1{font-weight:1000;font-size:clamp(64px,13vh,108px);letter-spacing:-7px;line-height:.83;margin:20px 0 0;transform:rotate(-5deg);text-shadow:3px 4px 0 #fff7}h1 span{color:#00559f}.hero-space{flex:1;min-height:100px}.menu-bottom{width:100%;max-width:325px}p{font-weight:700;font-size:17px;margin:12px 0}.primary{border:0;border-radius:16px;color:#fff;background:#00559f;box-shadow:0 6px 0 #003e71;font-size:20px;font-weight:900;padding:19px;width:100%;cursor:pointer;letter-spacing:1px}.primary:active{transform:translateY(3px);box-shadow:0 3px 0 #003e71}.primary:disabled{opacity:.65}.instructions{font-size:13px;line-height:1.55;font-weight:500;margin:15px 0}.logo{width:170px;height:105px;object-fit:contain;mix-blend-mode:multiply}.hud{position:absolute;left:20px;right:20px;top:max(20px,env(safe-area-inset-top));display:flex;gap:12px;align-items:flex-start}.hud>div{border-radius:14px;background:#ffca01;padding:12px 16px;box-shadow:0 3px 0 #00559f15}.hud small{font-size:10px;font-weight:900;letter-spacing:1px;display:block}.hud strong{font-size:28px}.hud em{font-size:14px;font-style:normal}.hud button{margin-left:auto;border:0;width:46px;height:46px;border-radius:50%;background:white;color:#00559f;font-size:23px;cursor:pointer}.jump{position:absolute;bottom:55px;right:22px;background:#ffca01;color:#00559f;border:3px solid #fff;border-radius:50px;padding:17px 22px;font-weight:900;box-shadow:0 4px 0 #00559f66;font-size:16px;touch-action:manipulation}.jump span{font-size:24px;margin-left:12px}.credit{position:absolute;bottom:0;left:0;right:0;background:#00559f;color:white;padding:10px 15px;font-weight:900;font-size:11px;display:flex;justify-content:space-between;pointer-events:none}.credit span{font-size:9px;letter-spacing:1px;font-weight:400}.pause-overlay{position:absolute;inset:0;background:#ffca01ed;padding:40px;display:flex;flex-direction:column;justify-content:center;gap:20px;text-align:center}h2{font-size:45px;line-height:1.05;letter-spacing:-2px}.secondary{background:none;border:0;color:#00559f;font-size:15px;font-weight:800;padding:15px;cursor:pointer}#toast{position:absolute;left:0;right:0;top:130px;text-align:center;font-size:24px;font-weight:900;color:#00559f;pointer-events:none}[hidden]{display:none!important}button:focus-visible{outline:4px solid #307040;outline-offset:5px}@media(max-height:700px){.overlay{padding-top:18px}h1{font-size:72px;margin-top:12px}.logo{height:80px;width:135px}.instructions{margin:10px 0}.primary{padding:14px}.hero-space{min-height:65px}.eyebrow{font-size:10px}}@media(min-width:600px){.game{box-shadow:0 0 90px #002b5f99;border-left:1px solid #ffffff30;border-right:1px solid #ffffff30}}

.logo-wrap{height:112px;overflow:hidden;width:170px;margin:0 auto}.logo{height:auto;width:170px;display:block;transform:translateY(-77px)}@media(max-height:700px){.logo-wrap{height:89px;width:135px}.logo{width:135px;height:auto;transform:translateY(-61px)}}

/* Keep the character in a dedicated, unobstructed row on the cover. */
.overlay{display:grid;grid-template-rows:auto auto minmax(100px,1fr) auto;justify-items:center;gap:10px;background:linear-gradient(#ffca01 0%,#ffca01db 24%,#ffca0110 45%,#ffca01 78%);padding:20px 24px 36px}
.overlay h1{font-size:clamp(58px,10vh,88px);margin:8px 0 0;letter-spacing:-5px}
.hero-space{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;padding:4px 0}
#heroCharacter{display:block;max-height:100%;height:100%;width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 5px 3px #00559f20)}
#heroCharacter:not([src]){visibility:hidden}
.menu-bottom p{margin:8px 0}.menu-bottom .instructions{font-size:13px;margin:12px 0}
#toast{font-size:18px;text-shadow:0 1px 3px white}
@media(max-height:700px){.overlay{gap:5px;padding-top:12px}.overlay h1{font-size:58px}.menu-bottom .logo-wrap{height:73px;width:112px}.menu-bottom .logo{width:112px;transform:translateY(-50px)}.menu-bottom .instructions{margin:8px 0}.menu-bottom p{font-size:14px}}

/* Full horizontal signature supplied for the cover; no cropping. */
.menu-bottom .logo-wrap{width:100%;height:auto;overflow:visible;margin:16px auto 6px}
.menu-bottom .logo{display:block;width:100%;height:auto;max-height:none;transform:none;object-fit:contain}

@font-face{font-family:OnyxArcade;src:url('assets/title-font.woff') format('woff');font-style:normal;font-weight:800;font-display:swap}
.overlay .game-title{font-family:OnyxArcade,'Arial Black',sans-serif;font-style:italic;font-weight:800;font-size:clamp(54px,9.5vh,80px);letter-spacing:-3px;line-height:1.08;transform:rotate(-6deg);margin:8px 0 12px;padding:0 12px;text-shadow:1px 2px 0 #00396a,2px 3px 0 #00396a,3px 4px 0 #00396a,4px 5px 0 #00396a,5px 6px 0 #00396a,6px 7px 0 #00396a,7px 8px 0 #00396a,8px 10px 0 #00396a30}
.game-title span{display:block;paint-order:stroke fill;-webkit-text-stroke:5px white;color:#00559f}
.game-title .title-first{font-size:.73em;letter-spacing:-1px;line-height:1.1}
.game-title .title-last{line-height:1.13}
@media(max-height:700px){.overlay .game-title{font-size:58px;margin:3px 0 9px}}
@media(max-width:350px){.overlay .game-title{font-size:54px;letter-spacing:-3px}}

.overlay{grid-template-rows:auto minmax(100px,1fr) auto}

.pause-icon{display:flex;align-items:center;justify-content:center;gap:5px}.pause-icon i{display:block;width:5px;height:20px;background:currentColor;border-radius:1px}

#sound{position:absolute;right:16px;bottom:116px;z-index:5;display:grid;place-items:center;width:44px;height:44px;border:2px solid #fff;border-radius:50%;background:#ffca01;color:#00559f;cursor:pointer;box-shadow:0 2px 0 #00559f30}.sound-slash{display:none}#sound.muted .sound-slash{display:block}#sound.muted .sound-waves{display:none}.game:has(#menu:not([hidden])) #sound,.game:has(#pauseMenu:not([hidden])) #sound{top:14px;bottom:auto;right:14px}

#countdown{position:absolute;top:110px;left:20px;background:#00559f;color:white;padding:8px 13px;border-radius:12px;font-size:12px;letter-spacing:1px}#clock{font-size:20px;letter-spacing:0;margin-left:8px;font-variant-numeric:tabular-nums}#countdown.urgent{background:#307040}
#victoryHeading{padding-top:20px}#victoryHeading small{font-size:13px;font-weight:900;letter-spacing:3px}#victoryHeading h2{font-size:clamp(26px,5.3vh,38px);line-height:1.1;letter-spacing:-1px;margin:14px 0 0;font-weight:900}#victoryHeading h2 span{color:#307040}.overlay.won .instructions{display:none}.overlay.won #message{font-size:18px;line-height:1.5;white-space:pre-line}.overlay.won #heroCharacter{animation:celebrate .65s ease-out 3}@keyframes celebrate{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@media(prefers-reduced-motion:reduce){.overlay.won #heroCharacter{animation:none}}

#victoryHeading h2{font-family:OnyxArcade,'Arial Black',sans-serif;font-weight:800;font-style:italic;transform:rotate(-4deg);font-size:clamp(27px,4.8vh,38px);line-height:1.18;letter-spacing:-1.2px;text-shadow:2px 3px 0 #00396a,3px 4px 0 #00396a; margin:12px 0 8px}
#victoryHeading h2 span{display:block;color:#00559f;-webkit-text-stroke:4px white;paint-order:stroke fill}
#victoryHeading h2 .thanks-line{font-size:1.2em;color:#307040;margin-top:8px;text-shadow:2px 3px 0 #164b29,3px 4px 0 #164b29}
@media(max-height:700px){#victoryHeading{padding-top:8px}#victoryHeading h2{font-size:27px}}
