/* v7.2 THE GAUNTLET: route map, encounter/reward cards. Same glass + cut-corner language as the lobby and fight HUD. */
#gauntlet-map{position:absolute;inset:0;z-index:7;display:grid;grid-template-rows:auto 1fr;gap:12px;padding:clamp(10px,2vw,22px);padding-top:max(clamp(10px,2vw,22px),env(safe-area-inset-top,0px));color:#eef3f5;background:radial-gradient(ellipse at 40% 45%,rgba(14,19,24,.93) 0,rgba(7,10,13,.97) 75%);font-family:Barlow,sans-serif}
#gauntlet-map[hidden]{display:none}
.gm-top{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.gm-title small{display:block;font:700 11px/1 Barlow,sans-serif;letter-spacing:.16em;color:#d5ed83}
.gm-title b{font:700 italic 32px/1 "Barlow Condensed",Barlow,sans-serif;text-transform:uppercase}
.g-stats{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font:700 12px/1 Barlow,sans-serif;letter-spacing:.08em;color:#b9c4cc}
.g-stats b{font:700 italic 20px/1 "Barlow Condensed",Barlow,sans-serif;color:#fff;margin-left:4px}
.g-stats .gold b,.gold{color:#ffd36b}.g-stats .safe b{color:#8fd8ff}
.g-hull{display:inline-block;width:120px;height:10px;background:rgba(255,255,255,.08);transform:skewX(-20deg);vertical-align:middle;margin-left:6px;overflow:hidden}
.g-hull i{display:block;height:100%;background:linear-gradient(90deg,#6f9a34,#d5ed83);box-shadow:0 0 10px rgba(213,237,131,.5)}
.gm-quit{margin-left:auto;border-radius:0!important;min-height:40px!important;font-size:13px!important}
.gm-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:16px;min-height:0}
/* The route sits on its own solid board so it reads over any stadium. */
.gm-board{position:relative;min-height:0;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07);background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px;margin:18px 6px 26px}
.gm-board svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.gm-board line{stroke:rgba(255,255,255,.2);stroke-width:3px;vector-effect:non-scaling-stroke;stroke-linecap:round}
.gm-board line.taken{stroke:#d5ed83;stroke-width:4px;filter:drop-shadow(0 0 5px rgba(213,237,131,.85))}
.gm-board line.open{stroke:#d5ed83;stroke-dasharray:8 7;stroke-width:3px}
.gm-tiers{position:absolute;inset:0;pointer-events:none}
.gm-tier{position:absolute;top:-18px;transform:translateX(-50%);font:700 11px/1 Barlow,sans-serif;letter-spacing:.14em;color:#6f7c86}
.gm-board.tall .gm-tier{top:auto;left:-2px;transform:translate(-100%,-50%)}
.g-node{position:absolute;transform:translate(-50%,-50%);width:66px;height:66px;padding:0!important;border:2px solid currentColor!important;border-radius:0!important;background:color-mix(in srgb,currentColor 12%,#0b0f13)!important;color:#fff;display:grid;place-items:center;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);overflow:visible;transition:transform .15s,box-shadow .15s;cursor:pointer}
.g-node svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.g-node>span{position:absolute;bottom:4px;left:0;right:0;text-align:center;font:700 italic 11px/1 "Barlow Condensed",Barlow,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.g-node svg{margin-top:-10px}
.g-node.brawl{color:#ff977f}.g-node.duel{color:#eef3f5}.g-node.elite{color:#ffd36b}.g-node.camp{color:#9dff8a}.g-node.cache{color:#8fd8ff}
.g-node.boss{width:84px;height:84px;color:#ffd36b}.g-node.boss svg{width:36px;height:36px}
.g-node.locked{opacity:.42;cursor:default}
.g-node.done{background:color-mix(in srgb,#d5ed83 22%,#0b0f13)!important;color:#d5ed83;opacity:.8}
.g-node.open{box-shadow:0 0 0 3px rgba(11,15,19,.9),0 0 18px color-mix(in srgb,currentColor 55%,transparent)}
.g-node.open:hover,.g-node.selected{transform:translate(-50%,-50%) scale(1.15)}
.g-node.selected{background:color-mix(in srgb,currentColor 30%,#0b0f13)!important;box-shadow:0 0 0 3px #0b0f13,0 0 0 6px currentColor,0 0 30px color-mix(in srgb,currentColor 60%,transparent)}
.g-node em{position:absolute;top:-22px;left:50%;transform:translateX(-50%);font:700 italic 12px/1 "Barlow Condensed",Barlow,sans-serif;letter-spacing:.1em;color:#0b0f13;background:#d5ed83;padding:3px 6px;font-style:normal}
.gm-side{display:flex;flex-direction:column;gap:12px;min-height:0;justify-content:flex-end}
.gm-detail{padding:16px 18px;background:rgba(18,24,30,.95);border:1px solid rgba(255,255,255,.1);border-top:3px solid #d5ed83;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
.gm-detail>b{display:block;font:700 italic 30px/1 "Barlow Condensed",Barlow,sans-serif;text-transform:uppercase;margin:8px 0 6px}
.gm-detail p{margin:0 0 12px;font-size:14px;color:#c4ced5}
.gm-node-kind{display:flex;align-items:center;gap:8px}.gm-node-kind svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2}
.gm-node-kind small{font:700 11px/1 Barlow,sans-serif;letter-spacing:.14em}
.gm-node-kind.brawl{color:#ff977f}.gm-node-kind.elite,.gm-node-kind.boss{color:#ffd36b}.gm-node-kind.camp{color:#9dff8a}.gm-node-kind.cache{color:#8fd8ff}
.gm-go{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gm-go .gold{font:700 italic 24px/1 "Barlow Condensed",Barlow,sans-serif}
#gm-enter{flex:1;max-width:220px;min-height:52px!important;border-radius:0!important;font:700 italic 24px/1 "Barlow Condensed",Barlow,sans-serif!important;text-transform:uppercase;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.gm-ups{display:flex;flex-wrap:wrap;gap:6px}.gm-ups small{width:100%;font:700 10px/1 Barlow,sans-serif;letter-spacing:.14em;color:#8f9ba5}
.g-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:rgba(213,237,131,.1);border-left:3px solid #d5ed83;font:700 italic 13px/1 "Barlow Condensed",Barlow,sans-serif;letter-spacing:.04em;text-transform:uppercase}
.g-chip i{font-style:normal;color:#d5ed83}.g-chip.empty{opacity:.7;background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.2);text-transform:none;font-style:normal;font-family:Barlow,sans-serif;font-weight:500}
.g-chip.attack{border-color:#ff977f;background:rgba(255,151,127,.1)}.g-chip.attack i{color:#ff977f}
.g-chip.defense{border-color:#8fd8ff;background:rgba(143,216,255,.1)}.g-chip.defense i{color:#8fd8ff}
.gm-legend{display:flex;flex-wrap:wrap;gap:6px 12px;font:700 11px/1 Barlow,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#8f9ba5}
.gm-legend span{display:inline-flex;align-items:center;gap:5px}.gm-legend svg{width:14px;height:14px;fill:none;stroke-width:2.4}
.gm-legend .brawl svg{stroke:#ff977f}.gm-legend .duel svg{stroke:#eef3f5}.gm-legend .elite svg,.gm-legend .boss svg{stroke:#ffd36b}.gm-legend .camp svg{stroke:#9dff8a}.gm-legend .cache svg{stroke:#8fd8ff}
body.on-map #event-toast{display:none}
/* Portrait phones: route on top (bottom → up), details docked below. */
@media (max-aspect-ratio:1/1){
 .gm-main{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
 .gm-board{margin:24px 6px 6px 30px}
 .gm-legend{display:none}
 .gm-top{gap:8px 14px}.gm-title b{font-size:26px}.g-hull{width:84px}.g-stats{gap:10px}.gm-quit{min-height:36px!important;padding:0 12px!important}
 .g-node{width:54px;height:54px}.g-node svg{width:22px;height:22px}.g-node>span{font-size:10px}.g-node.boss{width:68px;height:68px}
 .gm-detail{padding:12px 14px}.gm-detail>b{font-size:26px;margin:6px 0 4px}
 .gm-ups{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.gm-ups small{display:none}.g-chip{flex:0 0 auto}
}
/* Landscape phones: tight header, board left, details right. */
@media (max-height:500px) and (min-aspect-ratio:1/1){
 #gauntlet-map{gap:6px;padding:8px max(12px,env(safe-area-inset-left,0px))}
 .gm-title small{display:none}.gm-title b{font-size:22px}.gm-top{gap:12px}
 .gm-main{grid-template-columns:minmax(0,1fr) 250px}.gm-legend,.gm-ups small{display:none}
 .gm-board{margin:16px 4px 20px}
 .g-node{width:46px;height:46px}.g-node svg{width:18px;height:18px;margin-top:-8px}.g-node>span{font-size:9px}.g-node.boss{width:58px;height:58px}
 .gm-detail{padding:10px 12px}.gm-detail>b{font-size:22px}.gm-detail p{font-size:12px;margin-bottom:8px}#gm-enter{min-height:44px!important;font-size:20px!important}
}

/* Cards shown in the center message: encounter intro, rewards, camp, cache, run end. */
.message-card:has(.g-upgrades,.g-choices,.g-summary){width:min(760px,94vw)!important;max-width:94vw!important;max-height:calc(100dvh - 24px);overflow-y:auto}
@media (max-height:500px){.message-card:has(.g-upgrades,.g-choices){padding:12px 16px!important}.message-card:has(.g-upgrades) h2{font-size:26px}.g-upgrade{padding:10px 12px!important}.g-upgrade i{width:36px;height:36px;font-size:18px}.g-upgrade b{font-size:19px}.g-upgrade small{font-size:12px}}
.g-foes{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:6px 0 10px}
.g-foe{padding:5px 10px;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);font:700 italic 14px/1 "Barlow Condensed",Barlow,sans-serif;text-transform:uppercase;letter-spacing:.04em}
.g-quote{font-style:italic;color:#ffd9cf;margin:0 0 8px}
.g-loot,.g-summary{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin:6px 0 12px;font:700 italic 20px/1.1 "Barlow Condensed",Barlow,sans-serif;text-transform:uppercase}
.g-loot .part{color:#8fd8ff}.g-summary b{font-size:28px}
.g-pick{font:700 11px/1 Barlow,sans-serif;letter-spacing:.16em;color:#d5ed83;text-transform:uppercase;margin:4px 0 8px}
.g-upgrades{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:4px}
.g-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.g-choices.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-upgrade,.g-choice{position:relative;display:grid;gap:5px;justify-items:start;align-content:start;text-align:left;padding:16px!important;min-height:0!important;border-radius:0!important;background:rgba(255,255,255,.045)!important;border:2px solid rgba(255,255,255,.1)!important;color:#fff;cursor:pointer;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);transition:background .12s,border-color .12s,transform .12s}
.g-upgrade{--c:#d5ed83}.g-upgrade.attack{--c:#ff977f}.g-upgrade.defense{--c:#8fd8ff}
.g-upgrade:hover,.g-upgrade:focus-visible{border-color:var(--c)!important;background:color-mix(in srgb,var(--c) 13%,transparent)!important;transform:translateY(-2px)}
.g-choice:hover,.g-choice:focus-visible{background:rgba(213,237,131,.12)!important;border-color:#d5ed83!important}
.g-upgrade i{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:color-mix(in srgb,var(--c) 18%,transparent);border:2px solid var(--c);font-style:normal;font-size:22px;color:var(--c);line-height:1}
.g-cat{font:700 10px/1 Barlow,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--c)}
.g-upgrade b,.g-choice b{font:700 italic 24px/1 "Barlow Condensed",Barlow,sans-serif;text-transform:uppercase}
.g-upgrade small,.g-choice small{font-size:14px;color:#d3dbe1;line-height:1.35}
.g-upgrade kbd{position:absolute;top:10px;right:18px;font:700 12px/1 Barlow,sans-serif;color:#8f9ba5;border:1px solid #3a4652;padding:3px 6px}
body.using-touch .g-upgrade kbd,body.using-gamepad .g-upgrade kbd{display:none}
.g-owned{font-size:12px;color:#8f9ba5;margin:10px 0 0}
.g-choice.risky b{color:#ffd36b}
.g-skip{margin-top:12px;min-height:40px!important;font-size:13px!important}
.message-card .g-stats{justify-content:center;margin:4px 0 12px}

/* Duel/boss fights show the rival's bars; brawls show the rogue count. */
body.wilds.gauntlet-duel .fighter.rival .status-meter{display:block!important}
@media (max-width:760px){
 .g-upgrades,.g-choices,.g-choices.three{grid-template-columns:1fr;gap:8px}
 .g-upgrade{grid-template-columns:46px 1fr;column-gap:12px;align-items:center;padding:12px!important}.g-upgrade i{grid-row:span 3}.g-upgrade b{font-size:21px}.g-upgrade small{font-size:13px}
}
