@import url('arcade.css?v=20260928-7');
body{min-height:100svh;background:var(--ink);overflow-x:hidden}#gameContainer{width:min(100%,1024px,calc((100svh - 55px)*1.142857));margin:12px auto 0;padding:0 8px}#gameContent{position:relative}#gameCanvas{width:100%;height:auto;display:block;background:#111d31;border:1px solid #44566b;border-radius:0;image-rendering:pixelated}#pauseButtonDesktop{position:absolute;right:12px;top:12px;background:#101d2bc9;width:42px;height:42px;min-height:42px;font-size:20px;z-index:3}.overlay{position:fixed;inset:0;background:#101421f5;z-index:100;overflow-y:auto;padding:42px 16px 28px;display:flex;align-items:flex-start;justify-content:center}.menu-card{width:min(100%,420px);margin:auto 0;background:var(--panel);border:3px solid var(--line);border-radius:0;padding:24px;text-align:center;box-shadow:6px 6px 0 #080b13}.menu-card h2{font-size:clamp(22px,4vw,28px);letter-spacing:0;line-height:1.2;margin:8px 0 18px;text-transform:uppercase}.menu-card h1{font-size:clamp(32px,8vw,42px);letter-spacing:.02em;margin:18px 0 24px;text-shadow:3px 3px 0 #000}.menu-card h1 span{color:var(--gold)}.menu-emblem{margin:24px auto 16px;width:72px;height:70px}.menu-emblem img{height:70px;image-rendering:pixelated}.btn{display:flex;width:100%;margin:10px 0;min-height:48px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}.menu-grid .btn{margin:0;font-size:13px}.back-link{display:inline-block;margin:12px 0 0;color:var(--muted);font-size:13px;text-decoration:none;min-height:44px;padding:12px 0}.notice{font-size:12px;background:#324332;color:#bdddab;border-radius:0;padding:10px}.control-btn{touch-action:none;user-select:none;-webkit-user-select:none;font-size:23px;min-width:48px;min-height:48px}#mobileControls{display:none;padding:12px 0 calc(12px + env(safe-area-inset-bottom));width:100%}.controls-row{display:flex;gap:9px;justify-content:space-between}.controls-row .control-btn{flex:1;max-width:74px;height:56px;border-radius:0}.controls-content,.credits-content{text-align:left;font-size:14px;color:var(--muted)}.controls-content h3{font-size:14px;color:var(--paper);margin:20px 0 8px}.controls-content dl{display:grid;grid-template-columns:1fr 1fr;gap:8px}.controls-content dd{margin:0}.credits-content p{padding:14px 0;border-bottom:1px solid var(--line);margin:0}.credits-content span,.credits-content strong{display:block}.credits-content span{font-size:11px;color:var(--muted)}.credits-content strong{color:var(--paper);font-size:16px;margin:4px 0}.credits-content a{color:var(--gold);font-size:13px;text-decoration:none;min-height:44px;padding:12px 0}.stats-grid{display:grid;gap:0;text-align:left;margin:16px 0;border-top:2px solid var(--line);border-bottom:2px solid var(--line);padding:8px 0}.stats-grid>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:5px 0}.stats-grid span,.final-score span{font-size:13px;color:var(--muted)}.stats-grid strong{font-size:20px;color:var(--gold)}.stats-grid>div:last-child{border-top:1px solid var(--line);margin-top:5px;padding-top:9px}.recap-flag{height:58px;display:block;margin:16px auto;image-rendering:pixelated}.credit-block{font-size:12px;color:var(--muted);line-height:1.6;padding:6px 0}.credit-block p{margin:2px 0}.next-level{border-top:1px solid var(--line);padding-top:10px;margin-top:4px}.next-level p{margin:5px 0}.next-level p.muted{font-size:12px}.recap-note{font-size:11px;color:var(--muted);margin:16px 0}.final-score{padding:20px;background:#0b1828;border-radius:0;margin:20px 0}.final-score strong{font:42px ui-monospace,monospace;color:var(--gold)}.score-name{text-align:left}.score-name:has(input.hidden){display:none}#scoresList{text-align:left;list-style-position:inside;padding:0;max-height:45svh;overflow-y:auto;font:15px ui-monospace,monospace}#scoresList li{padding:12px 0;border-bottom:1px solid var(--line)}#transitionError{font-size:12px;color:#ffb5aa}#levelCompleteScreen{z-index:110}#levelLoadingScreen{z-index:120}#topScoresScreen,#controlsScreen,#creditsScreen{z-index:130}#testMapPicker{margin:12px 0}body>.preview-banner{position:relative}.start-card{border-color:transparent;background:transparent;box-shadow:none}.start-card .title-sprite{margin-top:4px}.menu-grid{gap:8px}.menu-grid .btn{font-size:13px}.recap-card h2{margin-bottom:8px}.recap-card .stats-grid{grid-template-columns:1fr;gap:0}.recap-card .stats-grid strong{font-size:20px}.recap-card .credit-block{padding:4px 0}.controls-content p{margin-bottom:16px}.next-level p{font-size:13px}.credits-content p{padding:10px 0}@media(max-width:700px),(pointer:coarse){#mobileControls{display:block}#pauseButtonDesktop{display:none}#gameContainer{width:min(100%,calc((100svh - 125px)*1.142857));margin-top:6px}.menu-card{padding:24px 20px;border-radius:0}.overlay{padding:38px 12px 20px}.menu-card h1{font-size:36px}.menu-emblem{margin-top:16px}.menu-grid{margin:12px 0}.stats-grid{gap:8px}.stats-grid strong{font-size:23px}}@media(max-height:480px) and (orientation:landscape){#gameContainer{width:min(70vw,calc((100svh - 20px)*1.142857));margin-top:4px}#mobileControls{position:fixed;bottom:8px;left:8px;right:8px;width:auto;pointer-events:none}.controls-row{gap:4px}.controls-row .control-btn{pointer-events:auto;max-width:54px}.controls-row #pauseButtonMobile{margin-left:auto;margin-right:auto}.menu-card{margin:0}.overlay{padding-top:32px}}

.campaign-won .menu-card{border-color:var(--gold)}.campaign-won h2{color:var(--gold)}#victoryMessage{font-size:14px;line-height:1.6;color:var(--paper)}#victoryHero{margin:8px auto 20px}

/* Mobile comfort: use the available viewport, leaving thumb room below play. */
@media (max-width:700px), (pointer:coarse) {
  #gameContainer {
    --play-height:100vh;
    --play-height:100svh;
    --play-top:calc(clamp(18px, 3svh, 28px) + env(safe-area-inset-top, 0px));
    --play-bottom:calc(44px + env(safe-area-inset-bottom, 0px));
    --stage-width:min(100%, calc((var(--play-height) - var(--play-top) - var(--play-bottom) - 201px) * 1.142857));
    display:flex;
    flex-direction:column;
    align-items:center;
    width:100%;
    height:var(--play-height);
    margin:0 auto;
    padding:var(--play-top) max(8px, env(safe-area-inset-right, 0px)) var(--play-bottom) max(8px, env(safe-area-inset-left, 0px));
  }
  #gameContent {width:var(--stage-width);flex-shrink:0;}
  #mobileControls {
    display:block;
    position:static;
    width:100%;
    max-width:376px;
    margin-top:auto;
    padding:0;
    flex-shrink:0;
    pointer-events:auto;
  }
  @supports (height:100dvh) {#gameContainer {--play-height:100dvh;}}
}
@media (max-height:480px) and (orientation:landscape) and (pointer:coarse),
       (max-height:480px) and (orientation:landscape) and (max-width:700px) {
  #gameContainer {
    --play-top:calc(12px + env(safe-area-inset-top, 0px));
    --stage-width:min(70vw, calc(100% - 232px), calc((var(--play-height) - var(--play-top) - var(--play-bottom) - 81px) * 1.142857));
  }
  #mobileControls {width:100%;}
}

/* Separate Pause from the four thumb controls. */
#mobileControls .pause-row{display:flex;justify-content:center;margin-bottom:48px;}
#mobileControls #pauseButtonMobile{width:104px;height:56px;min-height:56px;padding:8px;font-size:16px;}
#mobileControls .controls-row{display:flex;gap:28px;justify-content:space-between;min-height:65px;align-items:center;}
#mobileControls .control-group{display:flex;gap:18px;justify-content:space-between;align-items:center;flex:1;min-width:0;max-width:176px;}
#mobileControls .controls-row .control-btn{flex:0 1 calc((100% - 12px) * .44);min-width:44px;max-width:72px;height:65px;padding:8px;}
@media (max-height:480px) and (orientation:landscape) {
  #mobileControls{max-width:none;}
  #gameContainer{position:relative;}
  #mobileControls .pause-row{position:absolute;top:var(--play-top, 12px);right:max(8px, env(safe-area-inset-right, 0px));margin-bottom:0;}
  #mobileControls #pauseButtonMobile{height:48px;min-height:48px;}
}
