.game-types{display:flex;gap:4px;width:max-content;padding:4px;background:var(--line);border-radius:7px}
.game-types button{min-width:76px;height:34px;border-radius:4px;font-size:12px;color:var(--muted)}
.game-types button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:650;box-shadow:0 1px 3px #0000000b}
.campaign-active .masthead{height:90px}.campaign-active main{padding-top:24px}.campaign-active .game-heading{margin-bottom:24px}.campaign-active .game-heading h2{font-size:25px}.campaign-active .board{--cell:38px}
.campaign-heading{display:flex;flex-direction:column;gap:8px;text-align:right}.campaign-heading>span{font-size:11px;color:var(--muted)}.campaign-heading strong{font-size:15px;font-weight:550;font-variant-numeric:tabular-nums}
.campaign-hud{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,220px);gap:24px;padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--line);align-items:center}
.mission-name{min-width:0}.mission-name>span{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.mission-name strong{font-size:18px;font-weight:550;overflow-wrap:anywhere}
.health-meter{position:relative}.health-label{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:9px}.health-label>span{font-size:11px;color:var(--muted)}.health-label strong{font:600 22px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}.health-label small{font-size:11px;font-weight:400;color:var(--muted)}
.health-track{height:8px;background:var(--line);border-radius:2px;overflow:hidden}#health-fill{height:100%;width:100%;background:var(--green);transition:width .22s ease-out,background-color .18s}
.health-meter[data-condition=injured] #health-fill{background:#b89539}.health-meter[data-condition=critical] #health-fill{background:#c95d50}.health-meter[data-condition=critical] .health-label strong{color:var(--red)}
.damage-number{position:absolute;right:0;top:-12px;color:var(--red);font:650 18px ui-monospace,SFMono-Regular,Menlo,monospace;opacity:0;pointer-events:none}
.damage-flash{position:absolute;inset:0;box-shadow:inset 0 0 36px 10px #cd433c80;opacity:0;pointer-events:none;z-index:4}
.cell.crater,.cell.crater.exploded{background:var(--red-soft);color:var(--red);box-shadow:inset 0 0 0 1px var(--red);cursor:default}.cell.crater svg{width:17px;height:17px}
.stage-clear{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:17px;padding:20px;background:var(--surface);text-align:center}
.stage-clear h3{font-size:22px;font-weight:550;margin:0}.stage-clear p{font-size:12px;color:var(--muted);margin:0;line-height:1.7}.stage-clear .primary-button{margin-top:4px}
.stage-clear{overflow-y:auto;justify-content:flex-start;gap:12px}.stage-clear>*{flex-shrink:0;max-width:100%}.stage-clear>:first-child{margin-top:auto}.stage-clear>:last-child{margin-bottom:auto}
.campaign-summary .section-title{margin-bottom:20px}.run-time>span{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}.run-time>strong{font:500 29px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}
.run-facts{display:flex;justify-content:space-between;gap:14px;margin:18px 0 0;color:var(--muted);font-size:11px}.run-facts strong{font-weight:500;color:var(--text);margin-left:6px}
.campaign-best{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line);margin-top:20px;padding-top:16px;font-size:10px;color:var(--muted)}.campaign-best svg{width:14px;height:14px;color:#a78638}.campaign-best strong{margin-left:auto;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--green)}
.campaign-route-section{margin-bottom:0;border-bottom:0;padding-bottom:0}.campaign-route{list-style:none;margin:0;padding:0;display:grid;gap:2px}.campaign-route li{display:flex;align-items:center;gap:9px;min-height:31px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}
.route-number{width:24px;flex:0 0 24px;text-align:center;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.route-number svg{width:13px;height:13px}.route-mines{margin-left:auto;font-size:10px;white-space:nowrap}.campaign-route .current{color:var(--text);font-weight:600}.campaign-route .current .route-number{color:var(--green);border-left:2px solid var(--green)}.campaign-route .complete{color:var(--green)}.campaign-route li:last-child{border-bottom:0;color:var(--red)}
.wide .campaign-sidebar{grid-template-columns:minmax(190px,1fr) minmax(0,2fr);gap:42px}.wide .campaign-route{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 26px}.wide .campaign-hud{max-width:640px;margin-left:auto;margin-right:auto}
.run-failed .win-art{background:var(--red-soft);color:var(--red);border-color:var(--red)}.run-failed .win-eyebrow{color:var(--red)}
@media(max-width:860px){.campaign-sidebar{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px}.wide .campaign-sidebar{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.wide .campaign-route{grid-template-columns:1fr}}
@media(min-width:861px) and (max-height:900px){.campaign-active .masthead{height:80px}.campaign-active main{padding-top:18px}.campaign-active .board{--cell:36px}.campaign-active .board-stage{padding-top:16px;padding-bottom:16px}}
@media(max-width:620px){.masthead,.campaign-active .masthead{height:auto;min-height:128px;flex-wrap:wrap;gap:16px;padding:18px 0}.game-types{order:3;flex:0 0 auto}.game-types button{height:30px;min-width:65px}.campaign-active .board{--cell:min(38px,calc((100vw - 88px)/9))}.campaign-active .game-heading{display:flex;gap:12px;margin-bottom:24px}.campaign-active .game-heading h2{font-size:22px}.campaign-heading strong{font-size:13px}.campaign-heading>span{font-size:10px}.campaign-hud{grid-template-columns:minmax(0,1fr) 140px;gap:16px;padding-bottom:18px;margin-bottom:18px}.mission-name strong{font-size:16px}.health-label strong{font-size:21px}.campaign-active .counter{min-width:104px}.campaign-active .game-toolbar{gap:7px}.campaign-active .counter strong{font-size:21px}.campaign-active .counter-symbol{width:30px}.campaign-active .board-bottom{gap:8px}.run-time>strong{font-size:24px}.run-facts{flex-direction:column;gap:10px}.campaign-best{flex-wrap:wrap}.campaign-best strong{margin-left:0;width:100%}.campaign-route li{font-size:10px;gap:5px}.route-number{width:20px;flex-basis:20px}.route-mines{font-size:9px}.campaign-sidebar,.wide .campaign-sidebar{gap:20px}.stage-clear h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){#health-fill{transition:none}}
