/* Arcade chrome belongs to the same Windows desktop; the arena is drawn by Three.js.
   Type never drops below 11px and every text pair clears 4.5:1. */
.warp-game[hidden],.warp-game [hidden]{display:none!important}
.warp-game.os-window{width:min(94vw,470px);height:min(88svh,760px);max-height:none;min-width:275px}
.warp-game>.os-window-body{padding:0;overflow:hidden;min-height:0;display:flex;flex-direction:column}
.game-shell{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;height:100%;padding:0;border:0;background:#c0c0c0;box-shadow:none}
.game-arena-wrap{position:relative;display:grid;place-items:center;flex:1;min-height:0;overflow:hidden;background:#03152f}

/* Placar: rótulo 11px, valor 20px. */
.game-scoreboard{display:grid;grid-template-columns:1.45fr 1.35fr .75fr 1fr .85fr 1fr;gap:4px;padding:6px 4px;background:#c0c0c0}
.game-scoreboard>div{padding:4px 7px;border:1px solid;border-color:#777 #fff #fff #777;background:#d5d5d5;min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.15}
.game-scoreboard span{font:700 11px/1.3 'Courier New',monospace;color:#3c4050;letter-spacing:.06em}
.game-scoreboard strong{color:#06105d;font:900 18px/1.15 'Courier New',monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.02em}
.game-scoreboard .game-lives-box strong{color:#a8163c;font-size:18px;letter-spacing:1px}
.game-scoreboard .game-dash-box strong{color:#0a5a4a;font-size:18px;letter-spacing:2px}

.game-stage{position:relative;width:auto;height:auto;aspect-ratio:2/3;outline:none;touch-action:none;overflow:hidden;user-select:none;-webkit-user-select:none;cursor:crosshair;background:transparent;box-shadow:inset 0 0 0 1px #06175480}
.game-stage:focus-visible{outline:2px solid #e9ff6f;outline-offset:-2px}
.game-topline{display:flex;justify-content:space-between;gap:8px;position:absolute;inset:0 0 auto;padding:7px 9px;background:linear-gradient(#001448dd,#00144800);color:#eaf9ff;pointer-events:none;font:700 11px/1.4 'Courier New',monospace;letter-spacing:.08em;text-shadow:1px 1px #00155c}
.game-boss{position:absolute;top:66px;left:6%;width:88%;padding:5px 8px 7px;background:#170a2eee;border:1px solid #f686aa;box-shadow:0 2px 8px #19083280;pointer-events:none;color:#ffd4e0}
.game-boss>span{display:block;font:700 11px/1.4 'Courier New',monospace;letter-spacing:.09em;margin-bottom:4px}
.game-boss progress{display:block;appearance:none;width:100%;height:9px;border:0;background:#2d3157}.game-boss progress::-webkit-progress-bar{background:#2d3157}.game-boss progress::-webkit-progress-value{background:linear-gradient(90deg,#d92361,#ff9f7d)}.game-boss progress::-moz-progress-bar{background:#ef477b}
.game-warning{position:absolute;top:22%;left:5%;width:90%;padding:11px;text-align:center;background:#00005ef0;color:#fff0a0;border:2px solid;border-color:#fff #0e1535 #0e1535 #fff;box-shadow:3px 3px #001239;font:bold 12px/1.45 'Courier New',monospace;letter-spacing:.08em;pointer-events:none}
.game-combo{position:absolute;right:12px;top:66px;font:900 15px/1.5 'Courier New',monospace;color:#eaff80;text-shadow:1px 1px #00176c,0 0 7px #004cff;pointer-events:none}
.game-rule{position:absolute;top:26px;left:6%;width:88%;padding:6px 10px;text-align:center;background:#061a44e8;border:2px solid #7fd8ff;color:#eaf9ff;box-shadow:3px 3px #001239;pointer-events:none}
.game-rule span{display:block;font:700 12px/1.35 'Courier New',monospace;letter-spacing:.1em;color:#ffd23f}
.game-rule p{margin:2px 0 0;font:11px/1.4 'Courier New',monospace;color:#dff1ff}
.game-launch{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#eaffff;pointer-events:none;text-shadow:0 0 15px #67dcff,2px 2px #003b98}.game-launch strong{font:900 42px/1 'Courier New',monospace;letter-spacing:.08em}.game-launch span{margin-top:14px;font:700 11px/1.5 'Courier New',monospace;letter-spacing:.14em}

/* Escolha de módulo entre setores. */
.game-upgrade{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px 14px;background:#04122ef5;color:#eaf9ff;z-index:5}
.game-upgrade .game-eyebrow{margin:0;color:#ffd23f}
.game-upgrade-title{margin:0;font:700 19px/1.2 'Courier New',monospace;letter-spacing:.02em;color:#fff;text-align:center}
.game-upgrade-options{display:grid;gap:9px;width:min(420px,100%)}
.game-upgrade-card{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"key label" "key detail";gap:2px 11px;align-items:center;text-align:left;padding:11px 13px;background:#d5d5d5;border:2px solid;border-color:#fff #424242 #424242 #fff;box-shadow:2px 2px #000;cursor:pointer;color:#101a3c}
.game-upgrade-card:hover,.game-upgrade-card:focus-visible{background:#e9f4ff;border-color:#fff #2a4f9e #2a4f9e #fff}
.game-upgrade-card:focus-visible{outline:2px solid #e9ff6f;outline-offset:1px}
.game-upgrade-key{grid-area:key;display:grid;place-items:center;width:26px;height:26px;background:#000080;color:#fff;font:700 14px/1 'Courier New',monospace}
.game-upgrade-card strong{grid-area:label;font:700 14px/1.3 'Courier New',monospace}
.game-upgrade-card small{grid-area:detail;font:11px/1.4 Tahoma,Arial,sans-serif;color:#3c4050}
.game-upgrade-hint{margin:0;font:11px/1.4 'Courier New',monospace;color:#bcd4f0}

/* Menu com abas. */
.game-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;width:min(420px,calc(100% - 20px));max-height:calc(100% - 20px);padding:3px;background:#c0c0c0;border:2px solid;border-color:#fff #292929 #292929 #fff;box-shadow:1px 1px #000,7px 10px 30px #00153580;pointer-events:auto;user-select:text;-webkit-user-select:text}
.game-panel-title{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;background:linear-gradient(90deg,#000080,#0961c6);color:white;font:bold 12px/1.5 Tahoma,Arial,sans-serif;flex-shrink:0}
.game-panel-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:16px 16px 12px;scrollbar-width:thin}
.game-eyebrow{font:700 11px/1.4 'Courier New',monospace;letter-spacing:.1em;color:#3c4050;margin:0 0 9px}
.game-panel h3{font:bold 26px/1.1 'Courier New',monospace;letter-spacing:-.05em;color:#000080;margin:0 0 12px}
.game-panel-description,#game-panel-description{font-size:12px;line-height:1.6;margin:0 0 14px;color:#33384a}
.game-tabs{display:flex;gap:3px;margin:0 0 14px;border-bottom:2px solid #8a8a8a}
.game-tab{flex:1;padding:7px 4px;border:2px solid;border-color:#fff #8a8a8a #8a8a8a #fff;border-bottom:0;background:#c0c0c0;color:#2b3050;font:700 11px/1.3 Tahoma,Arial,sans-serif;cursor:pointer}
.game-tab.is-active{background:#d5d5d5;color:#000080;padding-bottom:9px;margin-bottom:-2px;border-color:#fff #8a8a8a transparent #fff}
.game-instruction{display:flex;align-items:center;gap:12px;margin:12px 0;font-size:12px;color:#20242f}
.game-instruction small{font-size:11px;color:#3c4050}
.game-instruction kbd{flex-shrink:0;min-width:76px;padding:6px 5px;border:1px solid;border-color:#fff #666 #666 #fff;box-shadow:1px 1px 0 #888;background:#e7e7e7;text-align:center;font:700 11px/1.5 'Courier New',monospace;color:#111a50}
.game-hitbox-note{display:flex;align-items:center;gap:7px;color:#2b2f3a;font-size:11px;margin:14px 0}
.game-hitbox-note i{display:inline-block;flex-shrink:0;width:10px;height:10px;border:2px solid white;background:#00d7f0;box-shadow:0 0 0 1px #006278}
.game-threats{margin:12px 0 0;padding:10px 12px;background:#e2e6ef;border:1px solid #97a0b5;font-size:11px;line-height:1.65;color:#20242f}
.game-threats strong{color:#000080}
.game-seed-label{display:block;color:#2b2f3a;font-size:11px;margin:16px 0 5px}
.game-seed-label>span{font-size:11px;color:#3c4050}
.game-seed-label input{display:block;width:100%;height:36px;padding:6px 8px;margin-top:5px;border:2px solid;border-color:#666 #fff #fff #666;background:white;color:#081349;font:12px 'Courier New',monospace;user-select:text;-webkit-user-select:text}
.game-panel-actions{display:flex;gap:8px;flex-wrap:wrap;position:sticky;bottom:0;margin:0;padding:12px 0 0;background:#c0c0c0;z-index:1}
.game-panel-actions .win-btn{flex:1 1 auto;min-width:min(112px,100%);min-height:36px;font-size:12px;padding:7px 9px}
.game-panel-actions .primary{color:#000080;font-weight:700}
.game-panel-actions .primary:focus-visible{outline:2px solid #e9ff6f;outline-offset:-4px}
.game-summary{padding:10px 12px;border:2px solid;border-color:#777 #fff #fff #777;background:#d6d6d6;margin:16px 0 6px}
.game-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:11px;line-height:2;color:#3c4050}
.game-summary strong{font:700 14px/1.6 'Courier New',monospace;color:#000080;text-align:right;overflow-wrap:anywhere;min-width:0}
.game-summary-seal{margin:0 0 10px;padding:7px 9px;text-align:center;background:#000080;color:#ffd23f;font:700 12px/1.4 'Courier New',monospace;letter-spacing:.12em}
.game-records-details{border-top:1px solid #909090;box-shadow:0 -1px #e8e8e8;margin-top:12px;padding-top:10px;font-size:11px}
.game-records-details summary{cursor:pointer;color:#172350;padding:6px 0;line-height:1.5}
.game-records-details summary span{float:right;font-weight:bold}
.game-records-details ol{list-style:none;margin:9px 0;padding:0}
.game-records-details li{display:grid;grid-template-columns:26px 1fr auto;align-items:baseline;gap:9px;padding:6px 0;border-bottom:1px solid #b0b0b0;font:11px/1.5 'Courier New',monospace}
.game-records-details li>span{color:#4a4f5c}
.game-records-details li>strong{color:#000080}
.game-records-details li>small{font-size:11px;color:#3c4050;text-align:right}
.game-records-details .game-record-empty{color:#3c4050;font-size:11px}
.game-records-details p{color:#3c4050;font-size:11px;line-height:1.5;margin:9px 0}
.game-text-button{border:0;background:none;text-decoration:underline;color:#112a83;padding:6px 0;cursor:pointer;font:11px Tahoma,sans-serif}
.game-records-panel{margin:0}

/* Cartão de controles: abre por cima, sem pausar a partida. */
.game-help-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(400px,calc(100% - 24px));padding:16px 18px;background:#d5d5d5;border:2px solid;border-color:#fff #424242 #424242 #fff;box-shadow:3px 3px #001239,7px 10px 26px #00153580;z-index:6}
.game-help-card h3{margin:0 0 10px;font:700 15px/1.3 'Courier New',monospace;color:#000080;letter-spacing:.04em}
.game-help-card ul{margin:0 0 12px;padding-left:18px}
.game-help-card li{margin:6px 0;font-size:12px;color:#20242f;line-height:1.5}
.game-help-card kbd{display:inline-block;min-width:58px;padding:2px 5px;border:1px solid;border-color:#fff #666 #666 #fff;background:#e7e7e7;box-shadow:1px 1px 0 #888;font:700 11px/1.5 'Courier New',monospace;color:#111a50}
.game-help-card p{margin:0 0 12px;font-size:11px;color:#3c4050}
.game-help-card .win-btn{min-height:34px;font-size:12px}

.game-controls{display:flex;align-items:center;gap:8px;min-height:58px;padding:7px 6px 5px;background:#c0c0c0}
.game-energy{flex:1;min-width:0}
.game-energy>div{display:flex;justify-content:space-between;gap:8px;font:700 11px/1.5 'Courier New',monospace;color:#111945;margin-bottom:3px}
.game-energy progress{display:block;appearance:none;width:100%;height:14px;border:2px solid;border-color:#777 #fff #fff #777;background:#1c264c}
.game-energy progress::-webkit-progress-bar{background:#1c264c}
.game-energy progress::-webkit-progress-value{background:repeating-linear-gradient(90deg,#00dfea 0 8px,#0e759f 8px 10px)}
.game-energy progress::-moz-progress-bar{background:#00dfea}
.game-controls .win-btn{min-width:0;min-height:40px;padding:5px 11px;font:bold 12px/1.2 'Courier New',monospace}
.game-controls .game-warp-button{min-width:100px;color:#000080}
.game-controls .game-dash-button{min-width:104px;color:#0a5a4a}
.game-warp-button small,.game-dash-button small{display:block;font:11px/1.4 'Courier New',monospace;letter-spacing:.1em;margin-top:2px}
.game-warp-button.is-ready{box-shadow:1px 1px #000,inset 0 0 0 1px #dffbff;background:#dff5f4}
.game-dash-button.is-ready{box-shadow:1px 1px #000,inset 0 0 0 1px #dffbe8;background:#e2f7e6}
.game-controls .game-help-button{width:44px;height:44px;padding:5px;font-size:14px}
.game-controls button:disabled{color:#5a5a5a;cursor:not-allowed;box-shadow:1px 1px #aaa;background:#c0c0c0}
.game-touch-hint{position:absolute;bottom:10px;left:0;width:100%;margin:0;text-align:center;font:700 11px/1.5 'Courier New',monospace;letter-spacing:.06em;color:#06145c;text-shadow:0 1px 0 #dff6ff;pointer-events:none}

@media(max-width:800px){
  .game-scoreboard{grid-template-columns:repeat(3,1fr)}
  .game-scoreboard strong{font-size:18px}
  .game-controls{min-height:60px}
  .game-controls .win-btn{min-height:44px}
  .game-panel-body{padding:14px 13px 10px}
}
@media(max-width:430px) and (orientation:portrait){
  .game-scoreboard{grid-template-columns:repeat(3,1fr);padding-block:4px}
  .game-scoreboard>div{padding:3px 5px}
  .game-scoreboard span{font-size:11px}
  .game-scoreboard strong{font-size:16px}
  .game-scoreboard .game-lives-box strong{font-size:15px}
  .game-panel{width:calc(100% - 14px);max-height:calc(100% - 14px)}
  .game-panel-body{padding:12px 11px 8px}
  .game-panel h3{font-size:21px}
  .game-instruction{gap:9px}
  .game-instruction kbd{min-width:64px;font-size:11px}
  .game-panel-actions .win-btn{min-width:88px;font-size:11px}
  .game-seed-label{margin-top:11px}
  .game-controls{gap:5px}
  .game-controls .win-btn{padding-inline:7px;font-size:11px}
  .game-controls .game-warp-button,.game-controls .game-dash-button{min-width:84px}
  .game-topline{font-size:11px}
}
@media(orientation:landscape) and (max-height:600px){
  .game-controls{min-height:46px;padding-top:4px}
  .game-controls .win-btn{min-height:36px}
  .game-panel h3{font-size:19px}
}
@media(prefers-reduced-motion:reduce){.warp-game *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* No celular o menu ocupa a tela inteira: nada fica fora de vista. */
@media(max-width:600px) and (orientation:portrait){
  .warp-game .os-titlebar{height:36px}
  .warp-game .title-control{width:25px;height:25px}
  .game-panel{position:absolute;inset:0;width:100%;max-height:none;transform:none;border:0;box-shadow:none;padding:0}
  .game-panel-title{padding:6px 10px}
  .game-panel-body{flex:1;padding:14px 13px 12px}
  .game-panel-actions{position:sticky;bottom:0;padding-bottom:14px}
  .game-panel-actions .win-btn{min-height:44px}
  .game-seed-label input{height:40px;font-size:16px}
  .game-upgrade{padding:16px 12px}
  .game-upgrade-card{padding:13px 14px}
}

.three-scene-snapshot{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;object-fit:fill}
.game-stage>.three-scene,.arcade-frozen-view{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;object-fit:fill}
.game-stage>:not(.three-scene):not(.arcade-frozen-view){z-index:1}
.game-stage>.game-panel{z-index:3}
.game-scoreboard,.game-controls{flex-shrink:0}
.warp-game .os-status{font-size:11px;white-space:nowrap;overflow:hidden;padding-right:30px}
.warp-game .os-status>span:first-child{overflow:hidden;text-overflow:ellipsis}
.warp-game .window-version{display:none}

/* Paisagem baixa: o placar vira uma linha e o rodape encolhe, para a arena respirar. */
@media(max-height:560px){
  .game-scoreboard{grid-template-columns:1.45fr 1.35fr .75fr 1fr .85fr 1fr;gap:2px;padding:3px 2px}
  .game-scoreboard>div{padding:2px 4px;gap:0}
  .game-scoreboard span{font-size:11px;line-height:1.2}
  .game-scoreboard strong{font-size:14px;line-height:1.2;letter-spacing:-.03em}
  .game-scoreboard .game-lives-box strong,.game-scoreboard .game-dash-box strong{font-size:14px;letter-spacing:0}
  .game-controls{min-height:44px;padding:4px 5px 3px;gap:6px}
  .game-controls .win-btn{min-height:34px}
  .game-panel{width:min(420px,calc(100% - 12px));max-height:calc(100% - 12px)}
  .game-panel-body{padding:10px 11px 8px}
  .game-panel h3{font-size:19px;margin-bottom:8px}
  .game-panel-description{font-size:11px;margin-bottom:9px}
  .game-eyebrow{margin-bottom:6px}
  .game-tabs{margin-bottom:9px}
  .game-seed-label{margin:9px 0 4px}
  .game-seed-label input{height:32px}
}
