:root{color-scheme:dark;--bg:#101816;--panel:#17221e;--panel2:#1e2b25;--ink:#ecede0;--muted:#93a399;--line:#34443a;--mint:#b9dfaa;--gold:#edc77b;--red:#e99e8e;--blue:#94c9dc;--purple:#c0a6df;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 30% 0%,#23392b 0%,transparent 53%),var(--bg);color:var(--ink);min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.38}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button{touch-action:manipulation}button,dialog{color:inherit}a{color:var(--gold)}h1,h2,h3,p{margin:0}h1{font-size:24px;font-weight:600;letter-spacing:-.8px}h2{font-size:17px;font-weight:600}h3{font-size:14px;font-weight:600}small{font-size:12px}.icon{width:20px;height:20px;flex:none;display:inline-block;vertical-align:middle;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.muted{color:var(--muted)}.mono{font-variant-numeric:tabular-nums}.eyebrow{font-size:10px;letter-spacing:2.1px;text-transform:uppercase;color:var(--muted)}.boot-message{padding:36px}.app{max-width:1440px;margin:auto;padding:22px 32px 28px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:40px;height:40px;border:1px solid #7d9772;border-radius:50%;display:grid;place-items:center;color:var(--mint)}.brand-text{display:grid;gap:3px}.top-actions{display:flex;gap:8px;align-items:center}.demo-tag{color:var(--muted);font-size:11px;max-width:145px;line-height:1.5}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--ink);font-size:12px;line-height:1.25;min-height:40px;text-decoration:none}.button:hover:not(:disabled){background:#293b2f;border-color:#61745f}.button.primary{background:var(--mint);color:#19271b;border-color:var(--mint);font-weight:600}.button.danger{color:var(--red)}.button.icon-button{padding:9px;min-width:40px}.button.small{padding:7px 9px;min-height:34px;font-size:11px}.button.gold{color:var(--gold);border-color:#695a3b}.hud{display:grid;grid-template-columns:1fr 1fr 1fr 1.1fr;gap:24px;padding:14px 0 20px;border-bottom:1px solid var(--line);margin-bottom:20px}.hud-stat{display:grid;gap:6px}.stat-label{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.stat-value{font-size:26px;font-weight:500;letter-spacing:-.7px;display:flex;align-items:baseline;gap:4px;font-variant-numeric:tabular-nums}.stat-value small{font-size:13px;color:var(--muted);letter-spacing:0}.stat-value.gold-text{color:var(--gold)}.stat-value.hp-text{color:var(--red)}.stat-value.mint-text{color:var(--mint)}.meter{height:3px;background:#2b3b30;border-radius:10px;overflow:hidden;max-width:200px}.meter>span{display:block;height:100%;background:var(--mint);transition:width .2s}.meter.hp>span{background:var(--red)}.meter.gold>span{background:var(--gold)}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 365px;gap:32px;align-items:start}.map-column{min-width:0}.map-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.map-heading .position{display:flex;gap:9px;align-items:center}.position small{color:var(--muted);font-size:11px}.map-heading .compass{font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center}.map-wrap{max-width:760px;margin:0 auto;position:relative}.board{display:grid;grid-template-columns:repeat(var(--map-columns,8),minmax(0,1fr));gap:6px}.tile{position:relative;aspect-ratio:1;min-width:0;padding:0;border-radius:12px;border:1px solid #435045;background:var(--tile-bg);color:var(--tile-ink);overflow:hidden;transition:transform .16s,border-color .16s,filter .16s;isolation:isolate}.tile::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;background:radial-gradient(ellipse at 30% 20%,var(--tile-glow),transparent 75%)}.tile::after{content:"";position:absolute;inset:5px;border:1px solid currentColor;border-radius:8px;opacity:.08;pointer-events:none}.tile:disabled{opacity:.64;cursor:default}.tile.adjacent:not(:disabled){border-color:#9aae81;box-shadow:inset 0 0 0 1px #8b9e7236}.tile.adjacent:hover{transform:translateY(-2px);filter:brightness(1.18)}.tile.selected{outline:2px solid var(--gold);outline-offset:0;filter:brightness(1.12)}.tile.current{border-color:var(--mint);box-shadow:0 0 0 2px #bbdfa532,0 0 30px #b4d89216;opacity:1}.tile.visited{filter:saturate(.9)}.tile.recovering .tile-art{opacity:.4}.tile.current.visited{filter:none}.tile.forest{--tile-bg:#2b4832;--tile-ink:#a7c68d;--tile-glow:#538454}.tile.plain{--tile-bg:#424a2c;--tile-ink:#c5c58f;--tile-glow:#727c46}.tile.mountain{--tile-bg:#354246;--tile-ink:#b0c2bf;--tile-glow:#657875}.tile.fire{--tile-bg:#54382a;--tile-ink:#daae83;--tile-glow:#9f563b}.tile.city{--tile-bg:#584d31;--tile-ink:#e5c994;--tile-glow:#9d884f}.tile.ruins{--tile-bg:#433b51;--tile-ink:#c7b2df;--tile-glow:#7b6695}.tile.swamp{--tile-bg:#304442;--tile-ink:#9bbeb6;--tile-glow:#51796e}.tile-art{position:absolute;inset:20% 15% 18%;width:70%;height:62%;opacity:.83;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45}.tile-code{position:absolute;left:8px;top:7px;font-size:10px;letter-spacing:.5px;color:var(--tile-ink);opacity:.8}.tile-seen{position:absolute;left:8px;bottom:7px;opacity:.6;font-size:11px}.tile-name{position:absolute;inset:auto 3px 6px;text-align:center;font-size:9px;letter-spacing:.35px;opacity:.7}.tile.current .tile-art{opacity:.27}.player-token{position:absolute;inset:0;display:grid;place-items:center;color:#eff7d9;filter:drop-shadow(0 3px 7px #0008)}.player-token .icon{width:37%;height:37%;stroke-width:1.4}.move-price{position:absolute;right:6px;top:6px;display:flex;gap:2px;align-items:center;font-size:11px;color:var(--ink);background:#0d171bb8;padding:3px 5px;border-radius:6px}.move-price .icon{width:11px;height:11px}.map-legend{display:flex;flex-wrap:wrap;gap:8px 13px;margin-top:14px;justify-content:center;color:var(--muted);font-size:10px}.map-legend span{display:flex;align-items:center;gap:4px}.map-legend .icon{width:14px;height:14px}.travel-note{display:flex;align-items:flex-start;gap:8px;color:var(--muted);margin:16px auto 0;max-width:760px;font-size:11px;line-height:1.6;min-height:38px}.travel-note .icon{width:15px;height:15px;margin-top:1px}.side{min-width:0;display:grid;gap:18px}.decision{border-top:2px solid #8b9d73;padding-top:14px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.section-heading>span{font-size:11px;color:var(--muted)}.context{color:var(--muted);font-size:12px;line-height:1.6;margin:6px 0 12px}.decision-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin-bottom:12px}.cards{display:grid;gap:9px}.choice-card{width:100%;display:grid;grid-template-columns:45px minmax(0,1fr);align-items:center;gap:12px;text-align:left;border:1px solid #42503d;background:linear-gradient(130deg,#27382a,#1a251f);border-radius:12px;padding:13px 14px;min-height:91px;position:relative;color:var(--ink);transition:transform .16s,border-color .16s,background .16s}.choice-card:hover:not(:disabled){border-color:var(--mint);transform:translateX(-3px);background:linear-gradient(130deg,#354932,#202e24)}.choice-card .card-icon{width:44px;height:49px;border:1px solid #84956c40;border-radius:8px;display:grid;place-items:center;color:var(--mint);background:#0b171322}.card-icon .icon{width:27px;height:27px}.choice-card .card-body{display:grid;gap:5px;min-width:0}.card-title{font-size:13px;font-weight:600;line-height:1.25}.card-text{font-size:11px;color:#aabdac;line-height:1.45}.rarity{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.choice-card.rare{border-color:#577381}.choice-card.rare .card-icon,.rarity.rare{color:var(--blue)}.choice-card.epic{border-color:#7d668f}.choice-card.epic .card-icon,.rarity.epic{color:var(--purple)}.choice-card.uncommon{border-color:#62794f}.offer-row{display:grid;grid-template-columns:minmax(0,1fr) 33px;gap:5px}.offer-row .button{padding:4px;min-width:0}.offer-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:11px;color:var(--muted)}.utility-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.empty-state{padding:16px 0 12px;display:grid;gap:9px;color:var(--muted);font-size:12px;line-height:1.6}.empty-state .big-icon{color:var(--mint)}.empty-state .big-icon .icon{width:32px;height:32px}.notice{padding:10px 12px;background:#cbdab609;border-left:2px solid #90a37b;font-size:11px;line-height:1.6;color:#c7d1bf;min-height:36px}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line)}.tab{background:none;border:0;color:var(--muted);padding:9px 8px;font-size:11px;border-bottom:2px solid transparent;display:flex;gap:5px;align-items:center;min-height:38px}.tab.active{color:var(--mint);border-bottom-color:var(--mint)}.tab .icon{width:14px;height:14px}.collection{padding-top:12px;display:grid;gap:10px}.quest{padding-bottom:12px;border-bottom:1px solid #34443a75;display:grid;gap:5px}.quest-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.quest-top strong{font-size:12px;font-weight:500}.quest-top span{font-size:11px;color:var(--gold)}.quest p{font-size:11px;line-height:1.5;color:var(--muted)}.quest .progress-line{font-size:10px;color:#b1c7a6}.quest .button{justify-self:start;margin-top:3px}.squad-card{display:grid;grid-template-columns:35px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #34443a75}.squad-icon{width:34px;height:40px;display:grid;place-items:center;color:var(--mint);background:#afce9520;border-radius:8px}.squad-info{display:grid;gap:4px}.squad-info strong{font-size:12px;font-weight:500}.squad-info small{font-size:10px;color:var(--muted)}.squad-stats{font-size:11px;color:var(--muted);display:flex;gap:10px}.squad-stats .icon{width:12px;height:12px}.inventory-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.bag-item{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:10px 0;border-bottom:1px solid #34443a75;font-size:11px;color:var(--muted)}.bag-item>span{display:flex;align-items:center;gap:6px}.bag-item .icon{width:16px;height:16px}.bag-item strong{color:var(--ink);font-size:13px}.perks{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.perk{font-size:10px;color:var(--mint);padding:5px 7px;border-radius:6px;background:#b6d7920a;border:1px solid #48583b}.journal{font-size:11px;line-height:1.6;color:var(--muted);display:grid;gap:8px}.journal p{padding-left:9px;border-left:1px solid var(--line)}.fighter-select{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}.fighter-select .button[aria-pressed=true]{border-color:var(--mint);color:var(--mint);background:#aacd8520}.arena{display:grid;grid-template-columns:1fr 26px 1fr;gap:7px;align-items:center;margin-bottom:12px}.combatant{min-width:0;padding:14px 8px;background:#203128;border:1px solid #4b6048;border-radius:12px;display:grid;gap:8px;text-align:center}.combatant.enemy{background:#342723;border-color:#6b4b42}.combatant .avatar{height:45px;display:grid;place-items:center;color:var(--mint)}.combatant.enemy .avatar{color:var(--red)}.avatar .icon{width:40px;height:40px}.combatant strong{font-size:11px}.combatant small{font-size:11px;color:var(--muted)}.combatant .meter{max-width:none}.combatant.enemy .meter>span{background:var(--red)}.versus{color:var(--muted);text-align:center;font-size:10px}.intent{font-size:11px;color:var(--red);line-height:1.5;margin-bottom:12px;display:flex;gap:7px;align-items:center}.combat-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.combat-actions .button{padding:10px 5px;font-size:11px;flex-direction:column;gap:5px}.battle-log{font-size:11px;color:var(--muted);line-height:1.55;display:grid;gap:5px;margin-top:12px}.battle-log p:last-child{color:#c7d5c0}.result{border:1px solid #7d9462;border-radius:15px;background:radial-gradient(ellipse at top,#41583844,transparent),#1c2b21;padding:24px;display:grid;gap:15px;text-align:center}.result.lost{border-color:#815748;background:#2c221f}.result-icon{color:var(--gold)}.result-icon .icon{width:48px;height:48px}.result .result-amount{font-size:36px;color:var(--gold);font-weight:500;font-variant-numeric:tabular-nums}.result p{font-size:12px;color:var(--muted);line-height:1.6}.result .result-details{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;font-size:11px;color:var(--muted)}.result-details strong{display:block;color:var(--ink);font-size:18px;margin-bottom:3px}.footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:24px;padding-top:13px;border-top:1px solid #34443a75;font-size:10px;color:var(--muted)}dialog{max-width:min(620px,calc(100vw - 28px));width:100%;max-height:85vh;border:1px solid #5a6b50;border-radius:18px;background:#18251e;padding:24px;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#08100bd9;backdrop-filter:blur(6px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.dialog-header h2{font-size:19px}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shop-item{display:grid;gap:9px;border:1px solid var(--line);padding:12px;border-radius:10px}.shop-item .shop-name{display:flex;gap:7px;align-items:center;font-size:12px;font-weight:500}.shop-item p{font-size:11px;color:var(--muted);line-height:1.5}.shop-item .button{justify-content:space-between}.shop-item .shop-stock{font-size:10px;color:var(--muted)}.help-list{padding-left:22px;display:grid;gap:12px;font-size:13px;line-height:1.6;color:#c3d0bf}.help-note{margin-top:18px;font-size:12px;color:var(--gold);line-height:1.6}.new-run-form{display:grid;gap:16px}.field{display:grid;gap:7px;font-size:12px;color:var(--muted)}.field input,.field select{width:100%;padding:11px 12px;border-radius:8px;background:#101d16;border:1px solid var(--line);color:var(--ink);font-size:14px}.form-note{font-size:11px;color:var(--muted);line-height:1.6}.status-pill{font-size:10px;color:var(--gold)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fatal{padding:35px;max-width:650px;margin:auto}.fatal pre{white-space:pre-wrap;color:var(--red);font-size:12px;margin-top:15px}
.tile-quest{position:absolute;right:5px;top:50%;transform:translateY(-50%);z-index:2;display:grid;place-items:center;width:17px;height:19px;border-radius:4px;background:#142219df;color:var(--gold);pointer-events:none}.tile-quest .icon{width:13px;height:15px;stroke-width:1.8}
@media(min-width:1600px){.app{padding-top:30px}.map-wrap{max-width:800px}.play-layout{grid-template-columns:minmax(0,1fr) 400px;gap:48px}.choice-card{min-height:99px}}
@media(max-width:1050px){.app{padding:18px 22px}.play-layout{grid-template-columns:minmax(0,1fr) 330px;gap:20px}.tile-name{display:none}.board{gap:5px}.tile{border-radius:9px}.tile-code{font-size:9px;left:5px;top:4px}.move-price{font-size:9px;right:4px;top:4px}.choice-card{grid-template-columns:35px 1fr;padding:11px;gap:10px}.choice-card .card-icon{width:35px;height:42px}}
@media(max-width:760px){.app{padding:15px 16px 24px}.topbar{margin-bottom:15px}.brand-mark{width:34px;height:34px}.brand{gap:8px}h1{font-size:21px}.eyebrow{font-size:9px;letter-spacing:1.5px}.demo-tag{display:none}.top-actions{gap:5px}.hud{gap:14px;margin-bottom:17px;padding:12px 0 15px}.stat-label{font-size:10px;gap:4px}.stat-label .icon{width:15px;height:15px}.stat-value{font-size:23px}.stat-value small{font-size:11px}.play-layout{grid-template-columns:1fr;gap:23px}.map-wrap{max-width:530px}.side{grid-template-columns:1fr;gap:16px}.decision{padding-top:13px}.tile-name{display:block;font-size:8px}.tile-code{font-size:9px}.cards{grid-template-columns:1fr}.choice-card{min-height:78px;grid-template-columns:40px 1fr;padding:11px 13px}.card-text{font-size:12px}.choice-card .card-icon{width:40px;height:45px}.map-heading .compass{font-size:10px}.travel-note{margin-top:12px;min-height:0}.footer{margin-top:18px}.collection{max-height:none}.meter{max-width:none}.map-legend{font-size:9px;gap:7px 11px}.map-legend .icon{width:12px;height:12px}}
@media(max-width:400px){.app{padding:12px}.topbar{gap:8px}.top-actions .button{font-size:0;padding:8px;min-width:36px;min-height:36px}.top-actions .button .icon{width:17px;height:17px}.hud{gap:9px}.stat-value{font-size:21px}.stat-label{font-size:9px}.stat-label .icon{width:13px;height:13px}.board{gap:4px}.tile-name{display:none}.tile-art{inset:22% 13% 14%;width:74%;height:64%}.tile-code{font-size:8px}.move-price{padding:2px 3px;font-size:8px}.move-price .icon{width:8px;height:8px}.tile::after{inset:3px}.shop-grid{grid-template-columns:1fr}dialog{padding:18px}.hud-stat:last-child .stat-value{font-size:20px}.hud-stat:last-child .stat-label{white-space:nowrap}}
.hud{grid-template-columns:repeat(5,minmax(0,1fr))}.stat-hint{font-size:10px;color:var(--muted)}.blue-text{color:var(--blue)}.meter.victory>span{background:var(--blue)}.drawn-card{border:1px solid var(--line);border-radius:15px;background:radial-gradient(ellipse at 50% 25%,#425e3638,transparent 75%),#1b2c23;padding:22px 20px;display:grid;justify-items:center;text-align:center;gap:15px;min-height:245px}.drawn-card.uncommon{border-color:#778955}.drawn-card.rare{border-color:#629eac}.drawn-card.epic{border-color:#9d80b8}.drawn-card h3{font-size:18px}.drawn-card p{font-size:12px;line-height:1.65;color:#becdbb;max-width:280px}.drawn-icon{color:var(--mint);padding:15px}.drawn-icon .icon{width:52px;height:52px}.draw-actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.draw-actions .button{min-height:44px}
@media(max-width:760px){.hud{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:17px}.hud-stat:last-child{grid-column:span 2}.drawn-card{min-height:210px}.stat-label{font-size:11px}}
.tile-site{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:24px;height:27px;border:1px solid #ad9157;border-radius:6px;background:#2d2917;color:var(--gold);display:grid;place-items:center;box-shadow:0 2px 9px #0005;pointer-events:none}.tile-site .icon{width:16px;height:16px}.tile.has-quest:not(:disabled){cursor:pointer}.tile.has-quest:hover:not(:disabled){border-color:var(--gold)}.tile-quest{left:7px;right:auto;color:var(--blue);background:#142b34;border-color:#537f90}.site-offer{display:grid;gap:10px;border:1px solid #897243;border-radius:12px;padding:15px;background:#302c1d6b;margin:12px 0 17px}.site-heading{display:flex;gap:7px;align-items:center;color:var(--gold);font-size:10px;letter-spacing:.6px;text-transform:uppercase}.site-offer h3{font-size:15px}.site-offer p{font-size:12px;line-height:1.6;color:#c5cdb8}.site-reward{font-size:11px;line-height:1.6;color:var(--blue)}.site-offer small{font-size:10px;line-height:1.5;color:var(--muted)}.quest-count{font-size:10px;color:var(--muted);padding:0 0 10px;border-bottom:1px solid var(--line);margin-bottom:10px}
@media(max-width:760px){.tile-site{width:19px;height:22px;right:4px}.tile-site .icon{width:13px;height:13px}.tile-quest{left:4px;right:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.tile-cooldown{position:absolute;left:6px;bottom:5px;z-index:3;display:flex;align-items:center;gap:3px;padding:2px 4px;border-radius:5px;background:#14201fe8;color:#cbded4;font-size:10px;font-variant-numeric:tabular-nums;pointer-events:none}.tile-cooldown .icon{width:11px;height:11px}.tile.recovering .tile-name{left:28px}.tile.current .tile-cooldown{color:var(--mint)}
@media(max-width:1050px){.tile-site{width:19px;height:22px;right:4px}.tile-site .icon{width:13px;height:13px}.tile-cooldown{left:3px;bottom:3px;font-size:9px;gap:2px;padding:1px 3px}.tile-cooldown .icon{width:9px;height:9px}}
@media(max-width:760px){.map-wrap{max-width:600px}.tile-name{display:none}.tile-code{left:4px;top:3px;font-size:8px}.move-price{right:2px;top:2px;font-size:8px;gap:1px;padding:2px}.move-price .icon{width:8px;height:8px}.tile-site{width:14px;height:17px;right:2px;top:auto;bottom:3px;transform:none;border-radius:4px}.tile-site .icon{width:10px;height:11px}.tile-quest{left:auto;right:2px;top:auto;bottom:3px;transform:none;width:14px;height:17px}.tile-quest .icon{width:11px;height:12px}.tile-cooldown{font-size:8px;left:2px;gap:1px;padding:1px}.tile-cooldown .icon{width:7px;height:8px}.tile-seen{left:4px;bottom:3px;font-size:9px}.player-token{padding-bottom:5px}.player-token .icon{width:40%;height:40%}}
@media(max-width:360px){.tile-cooldown{left:1px;gap:0;padding:1px 0}.tile-site,.tile-quest{right:1px}}
.tile-event{border-color:#7aaabe;background:#193c49;color:#b9e4f2}.tile.has-card:not(:disabled){border-color:#7098a0}.tile.has-card:hover:not(:disabled){border-color:var(--blue)}

/* v9: distinct map encounters and small one-time landmarks. */
.event-loot,.legend-loot{--event-color:#edc77b;--event-bg:#322c19}
.event-battle,.legend-battle{--event-color:#e8a394;--event-bg:#39251f}
.event-terrain,.legend-terrain{--event-color:#afd7a3;--event-bg:#203a2b}
.event-quest,.legend-quest{--event-color:#a4cedd;--event-bg:#213744}
.event-altar,.legend-altar{--event-color:#c9abe2;--event-bg:#342342}
.event-collector,.legend-collector{--event-color:#e5bc87;--event-bg:#382a1c}
.event-ambush,.legend-ambush{--event-color:#ff897c;--event-bg:#461f20}
.tile-site[class*="event-"]{color:var(--event-color);background:var(--event-bg);border-color:color-mix(in srgb,var(--event-color) 65%,transparent);width:28px;height:29px;right:6px}
.tile-site[class*="event-"] .icon{width:17px;height:17px}
.tile-site .site-rank{position:absolute;right:-5px;bottom:-6px;padding:2px 3px;background:#101c16;color:var(--event-color);border:1px solid currentColor;border-radius:3px;font-size:8px;line-height:1}
.tile.has-special:not(:disabled){border-color:#ad8c73}
.tile.has-special:hover:not(:disabled){border-color:var(--gold)}
.event-legend{gap:8px 13px;line-height:1.5}.event-legend>span{color:var(--event-color)}
.site-preview,.place-card{padding:14px;border:1px solid var(--line);border-radius:11px;margin:12px 0;background:#17291e85}
.site-preview h3,.place-card h3{display:flex;gap:8px;align-items:center;font-size:14px;margin-bottom:9px}
.site-preview h3 small{margin-left:auto;font-size:10px;opacity:.7}
.site-preview p,.place-card p{font-size:12px;line-height:1.65;color:var(--muted)}
.site-preview-loot{border-color:#8e774760}.site-preview-loot h3{color:var(--gold)}
.site-preview-battle{border-color:#9d645460}.site-preview-battle h3{color:var(--red)}
.site-preview-terrain h3{color:var(--mint)}
.place-card small{font-size:10px;line-height:1.6;color:var(--muted)}
.place-card.ambush-warning{background:#37201d70;border-color:#aa584e}.ambush-warning h3{color:#f6a493}.ambush-warning>strong{display:block;font-size:12px;margin-bottom:8px}
.place-altar{border-color:#7f618a}.place-altar h3{color:var(--purple)}
.place-collector{border-color:#7e694a}.place-collector h3{color:var(--gold)}
.place-reward{display:flex;gap:7px;align-items:center;font-size:11px;color:var(--blue);line-height:1.6;margin:12px 0}
.place-reward .icon{width:16px;height:16px}
.place-card.used{opacity:.6}
.turnin-list{display:grid;gap:9px;margin-top:12px}.turnin-item{display:flex;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px solid var(--line);align-items:center}
.turnin-item>div{display:flex;align-items:center;gap:9px;min-width:0}.turnin-item>div>.icon{color:var(--gold);width:24px;height:24px}
.turnin-item span{font-size:11px;line-height:1.5}.turnin-item small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.turnin-item .button{flex:none}
.loot-bonus-hint{display:flex;gap:7px;align-items:center;color:var(--gold)!important;font-size:11px!important;line-height:1.5;padding:9px 0}
.loot-bonus-hint .icon{width:15px;height:15px}
.drawn-card.card-kind-loot{background:radial-gradient(ellipse at 50% 20%,#a5822826,transparent 75%),#20291e}.card-kind-loot .drawn-icon{color:var(--gold)}
.drawn-card.card-kind-battle{background:radial-gradient(ellipse at 50% 20%,#98483933,transparent 75%),#2b2320}.card-kind-battle .drawn-icon{color:var(--red)}
.enemy-trait,.boon-note{font-size:11px;line-height:1.6;margin:10px 0;color:var(--purple);border-left:2px solid #7b6791;padding:7px 10px;background:#4e3a6115}
.boon-note{color:var(--red);border-color:var(--red)}
@media(max-width:1050px){.tile-site[class*="event-"]{width:23px;height:24px;right:5px}.tile-site[class*="event-"] .icon{width:15px;height:15px}}
@media(max-width:760px){.tile-site[class*="event-"]{width:17px;height:18px;right:4px;bottom:5px}.tile-site[class*="event-"] .icon{width:12px;height:12px}.tile-site .site-rank{right:-4px;bottom:-4px;padding:1px 2px;font-size:6px}.event-legend{font-size:10px;gap:7px 12px}.site-preview,.place-card{padding:12px}}
@media(max-width:360px){.tile-site[class*="event-"]{width:14px;height:16px;right:3px}.tile-site[class*="event-"] .icon{width:10px;height:10px}.tile-site .site-rank{right:-3px}}

/* Two active relics and short encounters inside the existing sidebar. */
.artifact-gift{display:flex;gap:8px;align-items:flex-start;margin:8px 0 12px;font-size:11px;line-height:1.6;color:var(--gold)}
.artifact-gift .icon{width:16px;height:16px;margin-top:2px}
.relic-heading,.market-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:5px 0 12px}
.relic-heading h3,.market-heading{font-size:13px;font-weight:500}
.relic-heading>span,.market-heading>span{font-size:10px;color:var(--muted);font-weight:400}
.artifact-collection{margin-bottom:18px}
.relic-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.relic-slot{display:grid;grid-template-columns:17px 1fr;gap:8px;padding:12px 10px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);min-width:0}
.relic-slot small{font-size:10px}.relic-slot .icon{justify-self:end;width:20px;height:20px}
.relic-slot>span{grid-column:1/-1;font-size:11px;line-height:1.5}
.relic-slot.filled{border-style:solid;border-color:#82956b75;background:#b8d89708;color:var(--mint)}
.relic-list{display:grid;gap:8px}
.relic-combat{--relic-color:#e4ab84}.relic-explore{--relic-color:#99c9c0}.relic-economy{--relic-color:#d5be80}
.relic-card{display:grid;grid-template-columns:35px minmax(0,1fr);gap:10px;padding:13px 10px;border:1px solid var(--line);border-radius:10px;background:#11201980;text-align:left}
.relic-card.equipped{border-color:color-mix(in srgb,var(--relic-color) 45%,var(--line))}
.relic-symbol{display:grid;place-items:start center;padding-top:4px;color:var(--relic-color)}
.relic-symbol .icon{width:28px;height:28px;stroke-width:1.4}
.relic-title{display:flex;justify-content:space-between;align-items:start;gap:8px}
.relic-title strong{font-size:12px;font-weight:500;line-height:1.5}
.relic-title small{font-size:9px;white-space:nowrap;color:var(--muted);padding-top:3px}
.relic-card p{font-size:11px;line-height:1.6;color:var(--muted);margin:5px 0}
.relic-charges{font-size:10px;color:var(--relic-color)}
.relic-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.relic-actions .button{font-size:10px;padding:6px 10px}
.relic-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 0 12px;border:0;border-bottom:1px solid var(--line);margin-bottom:7px;background:none;color:var(--muted);font-size:10px;text-align:left}
.relic-strip>span:last-child{display:flex;gap:13px;align-items:center;color:var(--mint)}
.relic-strip .icon{width:18px;height:18px}.relic-strip>span>.icon:last-child{width:13px;color:var(--muted)}
.relic-strip:hover{color:var(--mint)}
.cargo-status{display:flex;align-items:center;gap:10px;color:var(--gold);font-size:12px;padding:10px 0;border-block:1px solid #74633a55}
.cargo-status small{display:block;font-size:10px;color:var(--muted);margin-top:5px}
.encounter-card{gap:11px;padding:18px 14px}.encounter-card .drawn-icon{padding:6px}.encounter-card .drawn-icon .icon{width:36px;height:36px}
.encounter-choices{display:grid;gap:9px;width:100%;margin-top:6px}
.button.encounter-option{display:grid;justify-content:stretch;gap:5px;text-align:left;padding:12px;background:#15241cd6}
.encounter-option strong{font-size:12px;font-weight:500;color:var(--mint)}
.encounter-option span{font-size:11px;line-height:1.6;color:var(--muted)}
.encounter-option small{font-size:10px;color:var(--red)}
.button.encounter-option:disabled{opacity:.65}
.encounter-card+.draw-actions{grid-template-columns:1fr}
.market-dialog{max-width:min(780px,calc(100vw - 28px))}
.market-heading{margin:22px 0 12px}
.relic-market{grid-template-columns:repeat(3,minmax(0,1fr))}
.shop-relic{background:linear-gradient(145deg,color-mix(in srgb,var(--relic-color) 7%,#17241c),#132119);border-color:color-mix(in srgb,var(--relic-color) 35%,var(--line));grid-template-rows:auto 1fr auto auto}
.shop-relic .shop-name{flex-direction:column;align-items:flex-start;gap:12px}
.shop-relic .shop-name .icon{width:30px;height:30px;color:var(--relic-color);stroke-width:1.4}
.shop-item del{color:var(--muted);font-size:10px;margin-right:3px}
.final-appraisal .artifact-collection{margin-top:23px}.final-appraisal .relic-list{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){.relic-market{grid-template-columns:1fr}.shop-relic .shop-name{flex-direction:row;align-items:center}.market-dialog{padding:18px}.final-appraisal .relic-list{grid-template-columns:1fr}.relic-title{flex-wrap:wrap;gap:3px 9px}}

/* A readable expedition ledger, without adding another panel to the map. */
.reward-open{border:0;background:none;padding:0;text-align:left;width:fit-content}
.reward-open:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.tabs{flex-wrap:wrap}
.tab{flex:1 1 auto;justify-content:center;white-space:nowrap}
.score-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:14px 0}
.score-heading>span{font-size:12px;color:var(--muted)}
.score-heading>strong{font-size:24px;font-weight:500;color:var(--gold)}
.score-table{display:grid}
.score-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;padding:13px 0;border-bottom:1px solid var(--line);text-align:left}
.score-row>div{display:grid;gap:5px;align-content:start}
.score-row strong{font-size:12px;font-weight:500}
.score-row small{font-size:10px;line-height:1.5;color:var(--muted)}
.score-value{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.score-value strong{color:var(--mint)}
.score-total{display:flex;justify-content:space-between;gap:16px;padding:18px 0 8px;font-size:12px}
.score-total strong{color:var(--gold);font-weight:500;white-space:nowrap}
.report-subtitle{margin:23px 0 12px;text-align:left;font-size:12px;letter-spacing:.6px;color:var(--muted);text-transform:uppercase}
.rune-collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}
.rune-token{display:grid;justify-items:center;gap:8px;padding:14px 5px;background:#111c1780;border:1px solid var(--line);border-radius:10px;opacity:.48;min-width:0;text-align:center}
.rune-token>span{color:var(--rune-color)}
.rune-token.owned{opacity:1;border-color:color-mix(in srgb,var(--rune-color) 40%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--rune-color) 9%,#142019),#142019)}
.rune-token .icon{width:24px;height:24px}
.rune-token strong{font-size:10px;font-weight:500;line-height:1.5}
.rune-token small{font-size:10px;color:var(--muted)}
.retained-inventory{display:flex;flex-wrap:wrap;gap:8px 15px;font-size:11px;line-height:1.8}
.retained-inventory span{display:flex;gap:5px;align-items:center}
.retained-inventory .icon{width:15px;height:15px;color:var(--mint)}
.report-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 10px}
.report-metrics>div{display:grid;gap:4px;text-align:left}
.report-metrics strong{font-size:19px;font-weight:500;font-variant-numeric:tabular-nums}
.report-metrics span{font-size:10px;line-height:1.5;color:var(--muted)}
.legacy-note{padding:10px;border-left:2px solid var(--gold);color:var(--muted);font-size:11px;line-height:1.65;text-align:left}
.final-main{max-width:920px;margin:28px auto 45px}
.final-main .result{padding:30px;text-align:left;gap:24px}
.result-top{display:flex;align-items:center;gap:20px}
.result-top h2{font-size:28px;letter-spacing:-.8px;margin:5px 0}
.result-top p{max-width:620px}
.settlement{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:20px;padding:25px 0;border-block:1px solid var(--line);align-items:center}
.settlement>div{display:grid;gap:7px}
.settlement span{font-size:11px;color:var(--muted)}
.settlement strong{font-size:24px;font-weight:500;letter-spacing:-.7px;font-variant-numeric:tabular-nums}
.settlement small{font-size:12px;color:var(--muted)}
.settlement .settlement-main strong{font-size:38px;color:var(--gold)}
.mint-text{color:var(--mint)}.hp-text{color:var(--red)}
.final-appraisal .score-row{grid-template-columns:minmax(0,1fr) 140px}
.final-appraisal .score-row strong{font-size:14px}
.final-appraisal .score-row small{font-size:12px}
.final-appraisal .rune-collection{max-width:540px}
.final-appraisal .rune-token{padding:20px 10px}
.final-appraisal .rune-token strong{font-size:12px}
.final-appraisal .score-total{font-size:16px}
.final-appraisal .report-metrics{grid-template-columns:repeat(3,minmax(0,1fr));padding:10px 0}
.result-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:20px;border-top:1px solid var(--line)}
@media(max-width:600px){
  .tabs .tab{padding-inline:6px;font-size:10px}.tabs .icon{width:14px;height:14px}
  .final-main{margin-top:20px}.final-main .result{padding:18px;gap:18px}
  .result-top{gap:12px}.result-top h2{font-size:23px}.result-icon .icon{width:32px;height:32px}
  .settlement{grid-template-columns:1fr 1fr;gap:18px;padding:20px 0}
  .settlement-main{grid-column:1/-1;grid-row:1}.settlement .settlement-main strong{font-size:36px}
  .settlement strong{font-size:23px}.settlement>div:last-child{text-align:right}
  .final-appraisal .score-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}
  .final-appraisal .score-row strong{font-size:12px}.final-appraisal .score-row small{font-size:10px}
  .final-appraisal .score-total{font-size:12px}.report-metrics{gap:15px 8px}
  .final-appraisal .rune-token{padding:14px 5px}.final-appraisal .rune-token strong{font-size:10px}
  .result-bottom{display:grid;gap:15px}.result-bottom .button{width:100%}
}

/* v10: the playing map owns the viewport; decisions and collections are temporary. */
html:has(.app.immersive),body:has(.app.immersive){height:100%;overflow:hidden;overscroll-behavior:none}
.app.immersive{
  --game-top:76px;
  --game-bottom:66px;
  position:fixed;inset:0;width:100%;height:100dvh;max-width:none;
  margin:0;padding:0;overflow:hidden;isolation:isolate;background:var(--bg);
}
.app.finished{position:relative;inset:auto;height:auto;min-height:100dvh;overflow:visible}
.app.immersive .map-stage{
  position:absolute;inset:0;z-index:0;
  padding:calc(var(--game-top) + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(var(--game-bottom) + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
  overflow:hidden;
}
.app.immersive .map-stage .map-wrap{width:100%;height:100%;min-height:0;max-width:none;margin:0}
.app.immersive .map-stage .board{
  width:100%;height:100%;min-height:0;
  grid-template-columns:repeat(var(--map-columns,8),minmax(0,1fr));
  grid-template-rows:repeat(8,minmax(0,1fr));gap:clamp(3px,.55vw,8px);
}
.app.immersive .tile{width:100%;height:100%;min-height:0;aspect-ratio:auto;border-radius:10px}
.app.immersive .tile::after{inset:4px;border-radius:7px}
.app.immersive .tile-art{inset:auto;left:50%;top:50%;width:76%;height:72%;transform:translate(-50%,-50%);pointer-events:none}
.app.immersive .tile-code{left:7px;top:5px;font-size:10px;line-height:1;letter-spacing:.3px;z-index:4}
.app.immersive .move-price{right:6px;top:4px;z-index:4;padding:2px 4px;font-size:10px;line-height:1.15}
.app.immersive .move-price .icon{width:10px;height:10px}
.app.immersive .tile-name{display:block;left:30px;right:30px;bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px;letter-spacing:.25px}
.app.immersive .tile-site[class*="event-"]{right:8px;top:50%;bottom:auto;transform:translateY(-50%);width:26px;height:27px;z-index:3}
.app.immersive .tile-site[class*="event-"] .icon{width:17px;height:17px}
.app.immersive .tile-site .site-rank{right:-4px;bottom:-4px;font-size:8px;padding:1px 3px}
.app.immersive .tile-quest{left:7px;right:auto;top:50%;bottom:auto;transform:translateY(-50%);width:18px;height:21px;z-index:3}
.app.immersive .tile-quest .icon{width:13px;height:15px}
.app.immersive .tile-cooldown{left:6px;bottom:5px;gap:2px;padding:2px 3px;font-size:9px;line-height:1.1}
.app.immersive .tile-cooldown .icon{width:9px;height:9px}
.app.immersive .tile-seen{left:7px;bottom:5px;font-size:10px;line-height:1}
.app.immersive .player-token{padding:0;pointer-events:none}
.app.immersive .player-token .icon{width:clamp(20px,3vw,38px);height:clamp(20px,3vw,38px);max-width:58%;max-height:58%}

.app.immersive .game-bar{
  position:fixed;z-index:20;top:0;left:0;right:0;
  display:grid;grid-template-columns:minmax(140px,1fr) minmax(340px,560px) minmax(40px,1fr);
  align-items:center;gap:16px;
  min-height:64px;padding:calc(10px + env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px)) 10px max(18px,env(safe-area-inset-left,0px));
  background:linear-gradient(180deg,#101c17f5,#101c17e8);border-bottom:1px solid #81966d20;
  box-shadow:0 5px 20px #050c081c;
}
.app.immersive .game-brand{display:flex;align-items:center;gap:9px;min-width:0;white-space:nowrap}
.app.immersive .game-brand>.icon{width:24px;height:24px;color:var(--mint)}
.app.immersive .game-brand .brand-mark{width:30px;height:30px;border-color:#81956c60}
.app.immersive .game-brand .brand-mark .icon{width:19px;height:19px}
.app.immersive .game-brand h1,.app.immersive .game-brand strong{font-size:15px;line-height:1.2;font-weight:500;letter-spacing:-.3px;overflow:hidden;text-overflow:ellipsis}
.app.immersive .game-brand small,.app.immersive .game-brand .demo-tag{display:inline;color:var(--muted);font-size:10px;line-height:1.2;letter-spacing:0}
.app.immersive .compact-hud{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:12px;
  width:100%;margin:0;padding:0;border:0;
}
.app.immersive .compact-hud>*,.app.immersive .compact-hud .hud-stat{min-width:0;grid-column:auto;display:flex;align-items:center;justify-content:center;gap:6px}
.app.immersive .compact-hud .icon{width:17px;height:17px}
.app.immersive .compact-hud .stat-value{display:inline-flex;align-items:center;gap:3px;font-size:19px;font-weight:500;line-height:1;letter-spacing:-.35px;white-space:nowrap}
.app.immersive .compact-hud .stat-value small{font-size:10px;line-height:1;color:var(--muted)}
.app.immersive .compact-hud .reward-open{display:inline-flex;align-items:center;min-width:0;margin:0;line-height:1.15}
.app.immersive .game-menu{justify-self:end;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;min-height:40px;padding:9px;border:1px solid #637b573f;border-radius:10px;background:#1c2b23;color:var(--ink)}
.app.immersive .game-menu .icon{width:19px;height:19px}

.app.immersive .map-position{
  position:fixed;z-index:15;left:max(18px,env(safe-area-inset-left,0px));bottom:calc(19px + env(safe-area-inset-bottom,0px));
  display:flex;align-items:center;gap:7px;max-width:calc(50vw - 90px);min-width:0;
  color:var(--muted);font-size:11px;line-height:1.35;pointer-events:none;
}
.app.immersive .map-position .icon{width:15px;height:15px;color:var(--mint)}
.app.immersive .map-position strong{font-weight:500;color:var(--ink)}
.app.immersive .map-position span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app.immersive .map-position small{font-size:10px;color:var(--muted)}
.app.immersive .game-dock{
  position:fixed;z-index:20;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));
  display:flex;align-items:center;gap:5px;padding:4px;border:1px solid #6075534d;border-radius:13px;
  background:#142119f0;box-shadow:0 5px 24px #050b0733;
}
.app.immersive .game-dock button{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:40px;min-height:40px;padding:9px;border:1px solid transparent;border-radius:9px;background:transparent;color:#b1c4aa}
.app.immersive .game-dock button:hover:not(:disabled),.app.immersive .game-dock button[aria-pressed=true]{color:var(--mint);background:#b9dfaa0c;border-color:#a6bf783d}
.app.immersive .game-dock button .icon{width:20px;height:20px}
.app.immersive .map-actions{
  position:fixed;z-index:20;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);
  display:flex;justify-content:center;gap:7px;max-width:calc(100vw - 390px);
}
.app.immersive .map-actions:empty{display:none}
.app.immersive .map-actions .button{min-height:40px;padding:8px 12px;background:#1c2b23f5;border-color:#61715080;box-shadow:0 4px 18px #0003;font-size:11px;white-space:nowrap}
.app.immersive .map-actions .button.primary{background:var(--mint);border-color:var(--mint);color:#19271b}
.app.immersive .map-actions .icon{width:16px;height:16px}

.app.immersive .event-sheet{
  position:fixed;z-index:30;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);
  width:min(390px,calc(100vw - 32px));max-height:calc(100dvh - 160px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));
  padding:16px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#5b7055 #19271e;
  border:1px solid #6d825887;border-radius:17px;background:#17241df7;
  box-shadow:0 18px 60px #030b0780,0 2px 12px #0208053b;
}
.app.immersive .event-close{position:absolute;z-index:3;right:9px;top:9px;display:grid;place-items:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:7px;border:1px solid #5c705445;border-radius:8px;background:#15221ce8;color:var(--muted)}
.app.immersive .event-close .icon{width:16px;height:16px}
.app.immersive .event-sheet .decision{padding:0;border:0;margin:0}
.app.immersive .event-sheet:has(.event-close) .section-heading{padding-right:32px}
.app.immersive .event-sheet .section-heading{margin-bottom:9px;gap:8px}
.app.immersive .event-sheet h2{font-size:15px;line-height:1.35}
.app.immersive .event-sheet h3{font-size:14px;line-height:1.35}
.app.immersive .event-sheet .context{font-size:11px;line-height:1.5;margin:5px 0 9px}
.app.immersive .event-sheet .decision-meta{font-size:10px;gap:6px;margin-bottom:8px}
.app.immersive .event-sheet .utility-row{margin-top:9px;gap:6px}
.app.immersive .event-sheet .notice{min-height:0;padding:8px 10px;font-size:11px;line-height:1.45}
.app.immersive .event-sheet .drawn-card{min-height:0;padding:14px 12px;gap:10px;border-radius:11px}
.app.immersive .event-sheet .drawn-card h3{font-size:16px}
.app.immersive .event-sheet .drawn-card p{max-width:none;font-size:11px;line-height:1.5}
.app.immersive .event-sheet .drawn-icon{padding:3px}
.app.immersive .event-sheet .drawn-icon .icon{width:34px;height:34px}
.app.immersive .event-sheet .draw-actions{gap:7px;margin-top:9px}
.app.immersive .event-sheet .encounter-choices{gap:7px;margin-top:3px}
.app.immersive .event-sheet .encounter-option{padding:10px;gap:4px}
.app.immersive .event-sheet .encounter-option strong{font-size:11px;line-height:1.4}
.app.immersive .event-sheet .encounter-option span{font-size:11px;line-height:1.45}
.app.immersive .event-sheet .encounter-option small{font-size:10px;line-height:1.4}
.app.immersive .event-sheet .site-preview,.app.immersive .event-sheet .site-offer,.app.immersive .event-sheet .place-card{margin:8px 0;padding:12px;border-radius:10px;gap:8px}
.app.immersive .event-sheet .site-preview p,.app.immersive .event-sheet .site-offer p,.app.immersive .event-sheet .place-card p{font-size:11px;line-height:1.5}
.app.immersive .event-sheet .site-heading{font-size:9px;letter-spacing:.35px}
.app.immersive .event-sheet .place-reward{margin:8px 0;font-size:11px;line-height:1.45}
.app.immersive .event-sheet .artifact-gift{margin:6px 0 8px;font-size:10px;line-height:1.45}
.app.immersive .event-sheet .turnin-list{margin-top:8px;gap:8px}
.app.immersive .event-sheet .turnin-item{gap:8px;padding-top:8px}
.app.immersive .event-sheet .turnin-item>div{gap:7px}
.app.immersive .event-sheet .turnin-item>div>.icon{width:21px;height:21px}
.app.immersive .event-sheet .fighter-select{gap:5px;margin-bottom:8px}
.app.immersive .event-sheet .fighter-select .button{min-height:32px;padding:6px 8px;font-size:10px}
.app.immersive .event-sheet .arena{gap:6px;margin-bottom:8px;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)}
.app.immersive .event-sheet .combatant{padding:9px 6px;gap:5px;border-radius:10px}
.app.immersive .event-sheet .combatant .avatar{height:27px}
.app.immersive .event-sheet .avatar .icon{width:27px;height:27px}
.app.immersive .event-sheet .combatant strong,.app.immersive .event-sheet .combatant small{font-size:10px}
.app.immersive .event-sheet .intent{font-size:11px;line-height:1.45;margin-bottom:8px}
.app.immersive .event-sheet .combat-actions{gap:5px}
.app.immersive .event-sheet .combat-actions .button{min-height:44px;padding:8px 5px;font-size:10px;gap:4px}
.app.immersive .event-sheet .battle-log{max-height:84px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;margin-top:8px;gap:4px;font-size:10px;line-height:1.45}
.app.immersive .event-sheet .enemy-trait,.app.immersive .event-sheet .boon-note{font-size:10px;line-height:1.5;margin:7px 0;padding:6px 8px}

/* These native dialogs are siblings of .app, so their unique v10 classes scope them. */
.collection-dialog,.menu-dialog{width:min(680px,calc(100vw - 28px));max-width:680px;max-height:85dvh;margin:auto;padding:20px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#5b7055 #18251e;border-radius:16px}
.collection-dialog>.dialog-header,.menu-dialog>.dialog-header{position:sticky;top:-20px;z-index:4;background:#18251e;padding:0 0 12px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.collection-dialog .dialog-header h2,.menu-dialog .dialog-header h2{font-size:17px}
.collection-dialog .collection{padding-top:0;max-height:none}
.collection-dialog .relic-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.collection-dialog .tabs{margin-bottom:12px}
.collection-dialog .artifact-collection{margin-bottom:15px}
.menu-dialog .menu-grid,.menu-dialog .menu-list{display:grid;gap:8px}
.menu-dialog .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.menu-dialog .menu-grid>.button,.menu-dialog .menu-list>.button,.menu-dialog>.button{width:100%;justify-content:flex-start;min-height:44px}
.menu-dialog .menu-meta{font-size:11px;color:var(--muted);line-height:1.6;margin-top:15px;overflow-wrap:anywhere}

@media(max-width:900px){
  .app.immersive .game-bar{grid-template-columns:minmax(116px,1fr) minmax(310px,1.8fr) 40px;gap:10px}
  .app.immersive .game-brand{gap:7px}.app.immersive .game-brand h1,.app.immersive .game-brand strong{font-size:14px}
  .app.immersive .compact-hud{gap:8px}.app.immersive .compact-hud .stat-value{font-size:17px}
  .app.immersive .map-actions{max-width:calc(100vw - 315px)}
  .app.immersive .map-position{max-width:calc(50vw - 110px)}
}
@media(max-width:760px){
  .app.immersive{--game-top:96px;--game-bottom:62px}
  .app.immersive .map-stage{padding-inline:max(10px,env(safe-area-inset-left,0px)) max(10px,env(safe-area-inset-right,0px))}
  .app.immersive .map-stage .board{gap:4px}
  .app.immersive .tile{border-radius:7px}.app.immersive .tile::after{inset:3px;border-radius:5px}
  .app.immersive .tile-art{width:80%;height:64%}
  .app.immersive .tile-name{display:none}
  .app.immersive .tile-code{left:4px;top:4px;font-size:8px;letter-spacing:0}
  .app.immersive .move-price{right:3px;top:3px;padding:1px 2px;font-size:8px;gap:1px;border-radius:4px}
  .app.immersive .move-price .icon{width:8px;height:8px}
  .app.immersive .tile-site[class*="event-"]{right:4px;top:auto;bottom:5px;transform:none;width:17px;height:19px;border-radius:4px}
  .app.immersive .tile-site[class*="event-"] .icon{width:12px;height:12px}
  .app.immersive .tile-site .site-rank{right:-3px;bottom:-3px;padding:1px 2px;font-size:6px}
  .app.immersive .tile-quest{left:auto;right:4px;top:auto;bottom:5px;transform:none;width:15px;height:18px;border-radius:4px}
  .app.immersive .tile-quest .icon{width:11px;height:12px}
  .app.immersive .tile-cooldown{left:3px;bottom:4px;font-size:8px;gap:1px;padding:1px 2px}
  .app.immersive .tile-cooldown .icon{width:7px;height:8px}
  .app.immersive .tile-seen{left:4px;bottom:5px;font-size:9px}
  .app.immersive .game-bar{grid-template-columns:minmax(0,1fr) 36px;grid-template-rows:32px 28px;gap:7px 10px;min-height:86px;padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px}
  .app.immersive .game-brand{grid-column:1;grid-row:1;gap:8px}
  .app.immersive .game-brand>.icon{width:22px;height:22px}
  .app.immersive .game-brand .brand-mark{width:27px;height:27px}
  .app.immersive .game-brand h1,.app.immersive .game-brand strong{font-size:14px}
  .app.immersive .game-brand small,.app.immersive .game-brand .demo-tag{font-size:9px}
  .app.immersive .game-menu{grid-column:2;grid-row:1;width:36px;min-width:36px;height:34px;min-height:34px;padding:7px}
  .app.immersive .compact-hud{grid-column:1/-1;grid-row:2;gap:7px;grid-template-columns:repeat(5,minmax(0,1fr))}
  .app.immersive .compact-hud>*,.app.immersive .compact-hud .hud-stat{gap:4px;grid-column:auto}
  .app.immersive .compact-hud .icon{width:14px;height:14px}
  .app.immersive .compact-hud .stat-value{font-size:16px;gap:2px;letter-spacing:-.3px}
  .app.immersive .compact-hud .stat-value small{font-size:9px}
  .app.immersive .game-dock{right:9px;bottom:calc(8px + env(safe-area-inset-bottom,0px));gap:3px;padding:3px;border-radius:11px}
  .app.immersive .game-dock button{width:38px;min-width:38px;height:38px;min-height:38px;padding:8px}
  .app.immersive .game-dock button .icon{width:18px;height:18px}
  .app.immersive .map-position{left:12px;bottom:calc(19px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 158px);font-size:10px;gap:5px}
  .app.immersive .map-position .icon{width:13px;height:13px}.app.immersive .map-position small{font-size:9px}
  .app.immersive .map-actions{bottom:calc(68px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 24px);gap:6px}
  .app.immersive .map-actions .button{min-height:36px;padding:8px 10px;font-size:10px}
  .app.immersive .event-sheet{width:min(390px,calc(100vw - 20px));bottom:calc(66px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 166px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:13px;border-radius:14px}
  .app.immersive:has(.map-actions:not(:empty)) .event-sheet{bottom:calc(116px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 216px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
  .app.immersive .event-close{right:7px;top:7px}
}
@media(max-width:400px){
  .app.immersive .map-stage{padding-inline:8px}.app.immersive .map-stage .board{gap:3px}
  .app.immersive .tile-code{left:3px;top:3px;font-size:7px}
  .app.immersive .move-price{right:2px;top:2px;padding:1px;font-size:7px}.app.immersive .move-price .icon{width:7px;height:7px}
  .app.immersive .tile-site[class*="event-"]{right:3px;bottom:4px;width:14px;height:16px}
  .app.immersive .tile-site[class*="event-"] .icon{width:10px;height:10px}
  .app.immersive .tile-site .site-rank{right:-2px;bottom:-2px;padding:1px;font-size:6px}
  .app.immersive .tile-quest{right:3px;bottom:4px;width:13px;height:16px}
  .app.immersive .tile-cooldown{left:2px;bottom:4px;font-size:7px;gap:1px;padding:1px}
  .app.immersive .tile-cooldown .icon{width:6px;height:7px}
  .app.immersive .compact-hud{gap:4px}.app.immersive .compact-hud>*,.app.immersive .compact-hud .hud-stat{gap:3px}
  .app.immersive .compact-hud .icon{width:12px;height:12px}.app.immersive .compact-hud .stat-value{font-size:14px;letter-spacing:-.4px}
  .app.immersive .compact-hud .stat-value small{font-size:8px}
  .app.immersive .event-sheet{padding:11px}.app.immersive .event-sheet .drawn-card{padding:12px 10px}
  .app.immersive .event-sheet .turnin-item{align-items:flex-start}.app.immersive .event-sheet .turnin-item .button{padding:7px;font-size:10px}
}
@media(max-width:600px){
  .collection-dialog,.menu-dialog{width:calc(100vw - 20px);max-height:85dvh;padding:16px;border-radius:13px}
  .collection-dialog>.dialog-header,.menu-dialog>.dialog-header{top:-16px}
  .collection-dialog .relic-list,.menu-dialog .menu-grid{grid-template-columns:1fr}
}
@media(max-height:520px){
  .app.immersive .tile-site[class*="event-"]{top:auto;bottom:4px;transform:none;width:17px;height:18px}
  .app.immersive .tile-site[class*="event-"] .icon{width:11px;height:11px}
  .app.immersive .tile-site .site-rank{right:-3px;bottom:-3px;padding:1px;font-size:6px}
  .app.immersive .tile-name{display:none}
  .app.immersive .event-sheet{padding:12px}
}
@media(max-height:520px) and (max-width:760px){
  .app.immersive{--game-top:76px;--game-bottom:52px}
  .app.immersive .game-bar{grid-template-rows:25px 22px;gap:4px 8px;min-height:68px;padding-block:calc(5px + env(safe-area-inset-top,0px)) 5px}
  .app.immersive .game-brand>.icon{width:19px;height:19px}.app.immersive .game-brand .brand-mark{width:24px;height:24px}
  .app.immersive .game-menu{height:28px;min-height:28px;width:32px;min-width:32px;padding:6px}
  .app.immersive .compact-hud .stat-value{font-size:13px}.app.immersive .compact-hud .icon{width:12px;height:12px}
  .app.immersive .map-stage .board{gap:2px}.app.immersive .tile::after{inset:2px}
  .app.immersive .tile-code{left:3px;top:2px;font-size:7px}.app.immersive .move-price{top:1px;right:2px;font-size:7px;padding:1px}
  .app.immersive .move-price .icon{width:7px;height:7px}
  .app.immersive .tile-site[class*="event-"]{width:13px;height:13px;bottom:3px;right:4px}
  .app.immersive .tile-site[class*="event-"] .icon{width:9px;height:9px}
  .app.immersive .tile-quest{width:12px;height:13px;bottom:3px}.app.immersive .tile-quest .icon{width:9px;height:10px}
  .app.immersive .tile-cooldown{bottom:3px;left:2px;font-size:7px;padding:1px;gap:1px}.app.immersive .tile-cooldown .icon{width:6px;height:6px}
  .app.immersive .game-dock{bottom:calc(5px + env(safe-area-inset-bottom,0px))}.app.immersive .game-dock button{height:34px;min-height:34px}
  .app.immersive .map-position{bottom:calc(15px + env(safe-area-inset-bottom,0px))}
  .app.immersive .map-actions{bottom:calc(57px + env(safe-area-inset-bottom,0px))}
  .app.immersive .event-sheet{bottom:calc(56px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 136px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
  .app.immersive:has(.map-actions:not(:empty)) .event-sheet{bottom:calc(103px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 183px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
}

/* v10 DOM bindings: compact icon counters, transient messages and the finished header. */
.app.immersive .game-brand>span{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:15px;font-weight:500;letter-spacing:-.3px}
.app.immersive .compact-hud>.hud-stat{width:100%;justify-self:stretch;padding:0;border:0;background:none}
.app.immersive .compact-hud .gold-text{color:var(--gold)}
.app.immersive .game-dock button{position:relative}
.app.immersive .dock-count{position:absolute;top:3px;right:3px;display:grid;place-items:center;min-width:13px;height:13px;padding:0 3px;border-radius:8px;background:var(--gold);color:#1a2419;font-size:8px;line-height:1;font-weight:600;font-variant-numeric:tabular-nums;pointer-events:none}
.app.immersive .game-toast{position:fixed;z-index:35;top:calc(var(--game-top) + env(safe-area-inset-top,0px) + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:min(450px,calc(100vw - 28px));padding:9px 13px;border:1px solid #82936e66;border-radius:9px;background:#17241ef5;box-shadow:0 7px 24px #0004;color:#d8e3ce;font-size:11px;line-height:1.5;text-align:center;pointer-events:none}
.app.immersive .game-toast.storage-warning{border-color:#d59c68aa;background:#35271ff5;color:#f2cdad}
.menu-dialog .menu-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.menu-dialog .menu-links>.button{width:100%;justify-content:flex-start;min-height:44px}
.menu-dialog .event-legend{justify-content:flex-start;margin-block:18px;gap:9px 15px}
.app.finished .game-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;padding:10px 0 18px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.app.finished .game-brand{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:15px}
.app.finished .game-brand>.icon{width:23px;height:23px;color:var(--mint)}
.app.finished .game-brand small{font-size:10px;color:var(--muted)}
.app.finished .compact-hud{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;max-width:600px;justify-self:center;width:100%;margin:0;padding:0;border:0}
.app.finished .compact-hud>.hud-stat{display:flex;align-items:center;justify-content:center;gap:5px;grid-column:auto;min-width:0;width:100%}
.app.finished .compact-hud .icon{width:16px;height:16px}
.app.finished .compact-hud .stat-value{font-size:17px;line-height:1.2;white-space:nowrap}
.app.finished .compact-hud .stat-value small{font-size:10px}
.app.finished .compact-hud .gold-text{color:var(--gold)}
.app.finished .game-menu{width:40px;min-width:40px;min-height:40px;justify-self:end}
@media(max-width:760px){
  .app.immersive .game-brand>span{font-size:14px}
  .app.finished .game-bar{grid-template-columns:minmax(0,1fr) 40px;gap:12px;padding-bottom:15px}
  .app.finished .game-brand{grid-row:1;grid-column:1}.app.finished .game-menu{grid-row:1;grid-column:2}
  .app.finished .compact-hud{grid-row:2;grid-column:1/-1;gap:6px;max-width:none}
  .app.finished .compact-hud .stat-value{font-size:15px}.app.finished .compact-hud .icon{width:13px;height:13px}
}
@media(max-width:400px){
  .menu-dialog .menu-links{grid-template-columns:1fr}
  .app.finished .compact-hud{gap:4px}.app.finished .compact-hud>.hud-stat{gap:3px}
  .app.finished .compact-hud .stat-value{font-size:13px}.app.finished .compact-hud .stat-value small{font-size:8px}
}

/* Context buttons use their own bottom band, never the last row of map cells. */
@media(max-width:760px){
  .app.immersive:has(.map-actions:not(:empty)){--game-bottom:112px}
}
@media(max-height:520px) and (max-width:760px){
  .app.immersive:has(.map-actions:not(:empty)){--game-bottom:101px}
}
