/* A persistent, readable adventure map for all three difficulty paths. */
[hidden]{display:none!important}
.match-pill #matchStatus{width:auto;height:auto;min-width:0;border-radius:0;background:none;box-shadow:none;white-space:nowrap;line-height:1.3}
.match-pill>span:first-child{flex:none}
.command-creature{position:relative}
.battle-toolbar>div:first-child{min-width:0;padding-right:10px}
#battleStageTitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#battleStageLabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opponent-heading>div:nth-child(2){min-width:0}
#opponentName,#opponentTitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#enemyTrainerName,#enemyTrainerStage{overflow:hidden;text-overflow:ellipsis}
.hero-health{flex-shrink:0}
.difficulty-dialog{width:min(580px,calc(100vw - 28px));padding:28px}
.difficulty-intro{font-size:12px;line-height:1.8;margin:0 auto 20px;max-width:420px}
.difficulty-option{padding:12px 15px;font-size:11px}
.difficulty-option-head strong{font-size:13px}
.difficulty-option-head em{font-size:9px}
.difficulty-options{gap:9px}
.difficulty-eyebrow{font-size:9px}
.first-game-guide>strong{font-size:11px}
.first-game-guide ol{font-size:10px}
.difficulty-actions .modal-primary,.difficulty-actions .result-secondary{height:43px;font-size:12px}
.stage-overlay{position:fixed;inset:0;z-index:42;display:none;place-items:center;padding:24px;background:#07100be8;backdrop-filter:blur(12px);font-family:var(--cn)}
.stage-overlay.open{display:grid}
.stage-dialog{position:relative;width:min(900px,100%);max-height:calc(100dvh - 48px);overflow-y:auto;padding:30px;border:1px solid #d4bf7778;border-radius:20px;background:radial-gradient(ellipse at 0% 0%,#38513b9c,transparent 44%),radial-gradient(ellipse at 100% 55%,#4544263d,transparent 48%),linear-gradient(140deg,#1b2b21,#142119 70%);box-shadow:0 30px 100px #000c,inset 0 0 0 4px #d6ca8e07;scrollbar-width:thin;scrollbar-color:#aa98614d transparent;animation:modal-in .28s cubic-bezier(.2,.8,.2,1)}
.stage-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}
.stage-heading{min-width:0}
.stage-eyebrow{color:#c6b987;font:600 9px/1.5 var(--ui);letter-spacing:2px}
.stage-heading h2{font-size:24px;line-height:1.5;font-weight:600;letter-spacing:.2px;margin:9px 0 6px;color:#f0ead7}
.stage-heading p{margin:0;color:#a9b3a0;font-size:12px;line-height:1.7}
.stage-mode-badge{display:grid;grid-template-columns:25px 1fr;gap:4px 7px;align-items:center;flex:none;min-width:132px;padding:13px 16px;background:#cbb5720c;border:1px solid #d5c08040;border-radius:10px}
.stage-mode-badge>span{grid-row:1/3;font-size:25px;color:#e1ca84;filter:drop-shadow(0 0 8px #d2bb7060)}
.stage-mode-badge strong{font-size:13px;color:#ecdfaF;font-weight:600}
.stage-mode-badge small{font-size:10px;color:#b8baa3}
.stage-map-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px;color:#d9d8bb;font-size:11px}
.stage-map-caption>span:first-child{font-weight:500;letter-spacing:1px}
.stage-legend{display:flex;align-items:center;gap:5px;color:#96a38d;font-size:9px}
.stage-legend i{width:5px;height:5px;margin-left:7px;border-radius:50%;background:#b6d8a0}
.stage-legend i:nth-of-type(2){background:#e6cd7e}
.stage-legend i:nth-of-type(3){background:#67705c}
.stage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;position:relative;margin-bottom:24px}
.stage-node{min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:139px;padding:17px 9px 13px;border:1px solid #a7b68632;border-radius:11px;background:radial-gradient(ellipse at 50% 36%,#7c936728,transparent 72%),#1320189e;box-shadow:inset 0 1px #fff04;color:#dce3cd;text-align:center;font-family:var(--cn);cursor:pointer;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}
.stage-node:not(.locked):not(:disabled):hover{transform:translateY(-3px);border-color:#d4c27c99;box-shadow:0 7px 19px #050b0860,0 0 14px #c6ba711a}
.stage-node:focus-visible,.stage-actions button:focus-visible,.campaign-next:focus-visible{outline:2px solid #f1dd9a;outline-offset:3px}
.stage-number{position:absolute;top:10px;left:12px;color:#889b7b;font:600 10px/1 var(--ui);letter-spacing:1px}
.stage-icon{width:39px;height:39px;margin-top:3px;display:grid;place-items:center;border:1px solid #a7b78753;border-radius:50%;background:radial-gradient(circle at 40% 30%,#75946548,#213a27a6);color:#c4dcac;font-size:20px;box-shadow:0 0 19px #a8bd6a09}
.stage-node strong{max-width:100%;color:inherit;font-size:11px;line-height:1.5;font-weight:500;overflow-wrap:anywhere}
.stage-node small{font-size:9px;color:#95a487;line-height:1.3}
.stage-node.completed{border-color:#a6c48b69;background:radial-gradient(ellipse at 50% 36%,#8baa522d,transparent 72%),#233a256b}
.stage-node.completed .stage-number,.stage-node.completed small{color:#b3cf97}
.stage-node.completed .stage-icon{background:#496c3945;border-color:#afc9819c;color:#d3e8b8}
.stage-node.current{border-color:#d6c17c80;background:radial-gradient(ellipse at 50% 25%,#c6ac4528,transparent 70%),#1c2a1b}
.stage-node.current small{color:#d9c887}
.stage-node.selected{border-color:#e6cd7e;box-shadow:inset 0 0 0 1px #e6cd7e32,0 0 25px #c7b76919;background:radial-gradient(ellipse at 50% 28%,#dfcc6e31,transparent 74%),#2d3723;color:#f3e8ba}
.stage-node.selected .stage-icon{background:radial-gradient(circle at 35% 25%,#ae955a70,#64542d30);border-color:#ead186a8;color:#f6e3a4;box-shadow:0 0 18px #d1ba6730}
.stage-node.selected .stage-number,.stage-node.selected small{color:#e5ce84}
.stage-node.locked,.stage-node:disabled{border-color:#aeb79c19;background:#111c1666;color:#72806c;cursor:not-allowed;box-shadow:none}
.stage-node.locked .stage-icon,.stage-node:disabled .stage-icon{border-color:#98a28522;background:#4253401c;color:#687a61;filter:grayscale(1);opacity:.55}
.stage-node.locked .stage-number,.stage-node.locked small,.stage-node:disabled small{color:#63715d}
.stage-detail{display:grid;grid-template-columns:1.08fr 1fr;gap:26px;position:relative;padding:21px 23px;border:1px solid #cbbb7a3e;border-radius:12px;background:linear-gradient(110deg,#b4a2670f,#090f0a35)}
.stage-detail-eyebrow{color:#bfaf78;font:600 8px/1.5 var(--ui);letter-spacing:1.7px}
.stage-detail h3{margin:6px 0 9px;color:#eddfaf;font-size:18px;line-height:1.5;font-weight:600}
.stage-detail-main>p{color:#adb49f;font-size:11px;line-height:1.8;margin:0 0 12px}
.stage-opponent{display:grid;gap:4px;font-size:10px;line-height:1.7}
.stage-opponent>span{color:#82937a}
.stage-opponent>strong{color:#cbd6b9;font-weight:400}
.stage-detail-tactics{border-left:1px solid #c8c4911b;padding-left:24px;display:flex;flex-direction:column;justify-content:center;gap:13px}
.stage-stats{display:flex;flex-wrap:wrap;gap:7px;color:#cbd5bd;font-size:11px;line-height:1.8}
.stage-stats>span,.stage-stats>div{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px;padding:5px 8px;border:1px solid #b2c39324;border-radius:5px;background:#a1b88109}
.stage-stats b,.stage-stats strong{color:#ecdfad;font-weight:600}
.stage-tip{display:flex;gap:8px;align-items:flex-start;padding:10px 11px;border-radius:7px;background:#c6b56e0a;border:1px solid #c6b56e1c;color:#bab59a}
.stage-tip>span{color:#d4be77;font-size:17px;line-height:1.5;flex:none}
.stage-tip p{margin:0;font-size:10px;line-height:1.8}
.stage-footer{padding-top:18px;display:flex;flex-direction:column;gap:14px}
.stage-footer>p{margin:0;text-align:center;color:#8e9a83;font-size:10px;line-height:1.7}
.stage-actions{display:flex;justify-content:flex-end;gap:9px;align-items:center}
.stage-actions .result-secondary{height:42px;font-size:11px;padding:0 17px}
.stage-actions .modal-primary{width:220px;height:42px;margin:0 0 0 auto;font-size:12px;font-weight:500;background:linear-gradient(110deg,#af945341,#d3bb713a);border-color:#e2cc86a1;color:#f3e5b7;box-shadow:0 4px 14px #070c082f}
.stage-actions .modal-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.result-card .campaign-next{border-color:#e2cc86a1;background:linear-gradient(110deg,#bca05351,#d3bb7140);box-shadow:0 0 20px #d0bb6420;font-size:12px}
.result-campaign-progress{line-height:1.8;color:#ced8b6!important;padding:0 3px}
@media(max-width:700px){
 .stage-overlay{padding:13px}.stage-dialog{padding:22px 18px;max-height:calc(100dvh - 26px);border-radius:14px}.stage-header{gap:12px;margin-bottom:22px}.stage-heading h2{font-size:19px;max-width:290px}.stage-heading p{font-size:10px}.stage-eyebrow{font-size:8px;letter-spacing:1.1px}.stage-mode-badge{min-width:101px;grid-template-columns:18px 1fr;padding:10px;gap:4px}.stage-mode-badge>span{font-size:19px}.stage-mode-badge strong{font-size:11px}.stage-mode-badge small{font-size:8px}.stage-grid{gap:8px}.stage-node{padding:14px 5px 10px;min-height:118px;gap:6px}.stage-node strong{font-size:10px}.stage-node small{font-size:8px}.stage-icon{width:31px;height:31px;font-size:17px}.stage-number{font-size:8px;top:8px;left:8px}.stage-detail{padding:17px;gap:17px}.stage-detail-tactics{padding-left:16px}.stage-detail h3{font-size:15px}.stage-detail-main>p,.stage-stats{font-size:10px}.stage-stats{gap:5px}.stage-stats>span,.stage-stats>div{padding:4px 6px}
}
@media(max-width:480px){
 .stage-header{align-items:flex-start}.stage-heading h2{font-size:17px;line-height:1.6}.stage-heading p{font-size:9px}.stage-mode-badge{min-width:85px;padding:9px 7px;grid-template-columns:1fr;text-align:center}.stage-mode-badge>span{display:none}.stage-eyebrow{font-size:6px;letter-spacing:.8px}.stage-legend{font-size:7px;gap:3px}.stage-map-caption{font-size:10px}.stage-legend i{width:4px;height:4px;margin-left:4px}.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:18px}.stage-node{min-height:91px;display:grid;grid-template-columns:36px 1fr;grid-template-rows:1fr 1fr;column-gap:8px;row-gap:2px;text-align:left;padding:16px 9px 10px}.stage-icon{grid-column:1;grid-row:1/3;width:32px;height:32px;margin:0}.stage-node strong{grid-column:2;align-self:end;line-height:1.6;font-size:11px}.stage-node small{grid-column:2;align-self:start}.stage-number{font-size:7px;top:6px;left:8px}.stage-detail{grid-template-columns:1fr;gap:14px}.stage-detail-tactics{border-left:0;border-top:1px solid #c8c4911b;padding:13px 0 0;gap:10px}.stage-detail-main>p{margin-bottom:8px}.stage-opponent{gap:2px}.stage-actions{flex-wrap:wrap;gap:8px}.stage-actions .result-secondary{flex:1;height:39px;padding:0 8px;font-size:10px}.stage-actions .modal-primary{width:100%;margin:0;order:-1;height:43px}.stage-footer>p{font-size:9px}.difficulty-dialog{padding:23px 18px}.difficulty-intro{font-size:11px;margin-bottom:15px}.difficulty-option{font-size:10px;padding:11px 12px}.first-game-guide ol{font-size:9px}.difficulty-eyebrow{font-size:8px}.result-card{padding:28px}
}
@media(prefers-reduced-motion:reduce){.stage-dialog{animation:none}.stage-node{transition:none}}
