:root{color-scheme:dark;--ink:#142d32;--paper:#f0eadb;--muted:#b1c6c5;--gold:#e2b77e;--line:#3b5a5d;--mint:#92dfcc;--display:'Palatino Linotype','Book Antiqua',Georgia,serif;--body:'Trebuchet MS',sans-serif;--number:'Bahnschrift','Trebuchet MS',sans-serif}
*{box-sizing:border-box}body{margin:0;background:#10262c;color:var(--paper);font:16px var(--body);overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:#213e42;padding:12px 18px;border-radius:5px;transition:background .15s}button:hover{background:#315458;border-color:#80aaa6}button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--gold);border-color:var(--gold);color:#182f34;font-weight:bold}button.primary:hover{background:#f3cea0}small,.eyebrow{font:12px var(--number);letter-spacing:.12em;color:var(--muted)}h1,h2,h3,p{margin:0}h1{font:clamp(30px,4vw,46px)/1 var(--display);letter-spacing:-.04em}h2{font:34px/1.1 var(--display)}h3{font:24px/1.15 var(--display)}p{line-height:1.5;color:var(--muted)}canvas#game{display:block;width:100vw;height:100dvh;touch-action:none}[hidden]{display:none!important}
main{position:fixed;inset:0;overflow:auto;background:radial-gradient(ellipse at 18% 15%,#3a696356,transparent 55%),linear-gradient(125deg,#132b32,#1b373a);padding:32px;display:flex;align-items:center;justify-content:center}.shell{width:min(1080px,100%);animation:appear .35s ease both}.mast{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:26px}.brand{display:flex;align-items:baseline;gap:14px}.brand>span{font:12px var(--number);letter-spacing:.22em;color:var(--gold)}.bank{color:var(--gold);font:14px var(--number);white-space:nowrap}.lobby{display:grid;grid-template-columns:.85fr 1.15fr;gap:30px}.mission{position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;border:1px solid #597c77;border-radius:70px 7px 7px 7px;background:linear-gradient(155deg,#30544f,#1a343b);padding:28px}.mission:after{content:'';position:absolute;inset:14px;border:1px solid #83b2a22c;border-radius:55px 2px 2px 2px;pointer-events:none}.mission-head{z-index:1;padding-left:16px}.mission-head small{color:#a7ddcd}.mission-head h2{font-size:30px;margin-top:8px}.mission-art{position:relative;min-height:240px;display:grid;place-items:center}.mission-art canvas{width:100%;height:auto;max-height:310px;object-fit:contain}.mission-facts{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #80a89a55;padding-top:16px}.mission-facts span{font:14px var(--number);color:#dde8da}.mission p{font-size:14px;margin-top:14px}.roster-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.roster-heading h2{font-size:28px}.roster-heading small{color:var(--gold)}.roster{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.hero{position:relative;text-align:center;padding:10px 8px 12px;min-width:0;background:#19353ac0;border:1px solid #446366;border-radius:5px}.hero.active{border-color:#e2b77e;background:linear-gradient(150deg,#496762,#274447);box-shadow:inset 0 -3px #e2b77e}.hero.active:after{content:'';position:absolute;right:9px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--gold)}.hero canvas{width:100%;height:88px;object-fit:contain}.hero h3{font-size:23px;margin-bottom:3px}.hero small{font-size:12px;letter-spacing:.04em}.selection{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:12px}.selection-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.selection h3{margin-top:4px}.selection p{font-size:14px;line-height:1.4}.selection .passive{color:var(--mint);font-size:13px;text-align:right;max-width:160px}.selection .primary{width:100%;padding:16px 24px;font-size:17px;display:flex;justify-content:space-between;align-items:center}.footer{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.footer p{font-size:13px}.link{background:transparent;border:0;padding:10px 0;color:var(--gold);font-size:14px}.link:hover{background:transparent;color:#ffe0b4}.menu-links{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:flex-end}
/* Combat HUD: keep touch targets large without covering the upper third of the arena. */
#hud{position:fixed;inset:0;pointer-events:none;padding:calc(env(safe-area-inset-top) + 6px) max(8px,env(safe-area-inset-right)) 8px max(8px,env(safe-area-inset-left));max-width:min(100vw,56.25dvh);margin:auto}
#hud button{pointer-events:auto}
/* Arena vignette (Lead, 09-25; CREATIVE_DIRECTION 4.2): the combat column darkens to about 12% navy at its corners and less
   along the edges. It lives on the HUD layer, so the canvas never repaints it, and it hides with the HUD outside a run. */
#hud{background:radial-gradient(ellipse farthest-corner at 50% 52%,#06141a00 58%,#06141a1f 100%)}
.hud-top{padding:5px 8px 7px;background:linear-gradient(115deg,#16353be8,#254a49e8);border:1px solid #88a39670;border-radius:6px}
.topline{display:flex;align-items:center;justify-content:space-between;gap:6px}
.topline>div{flex:1;min-width:0}.topline strong{display:block;font:28px/1 var(--number);font-variant-numeric:tabular-nums}
.topline .right{text-align:right}.topline .right strong{font-size:14px;color:var(--gold)}
.topline small{font-size:10px;letter-spacing:0}
#stageLabel{display:block;max-width:116px;line-height:1.15;margin-bottom:2px}
#pause,#inventory{min-width:44px;min-height:44px;padding:8px;background:#294c50;font:12px var(--body)}
.experience-line{display:flex;align-items:center;gap:7px;margin-top:3px;font:11px/1 var(--number)}
.xp{height:4px;flex:1;background:#304c4d;overflow:hidden;border-radius:4px}
.xp i,.health i{height:100%;display:block;width:100%}
.xp i{background:linear-gradient(90deg,#c08e4c,#f2d591)}
.health{background:#17242c;height:8px;border:1px solid #09171d;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px #e1e9d699}
.health i{background:linear-gradient(90deg,#63b59e,#afe9c2)}
#loadout{margin-top:4px}
.actor-health{position:fixed;transform:translateX(-50%);pointer-events:none;text-align:center;line-height:1}
.actor-health>span{display:inline-block;margin-top:3px;padding:2px 5px;background:#11242de8;border-radius:3px;color:#f0f6e6;font:11px/1 var(--number);white-space:nowrap}
.actor-health.health-low .health i{background:#ff9278}
.boss-health .health{height:9px;box-shadow:0 0 0 1px #ffc7a8}
#bossFill{background:linear-gradient(90deg,#d9634a,#ffc092)}
#bossName{color:#ffe3bf;font-size:11px}
#notice:empty{display:none}
#sound{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 12px);left:8px;min-height:44px;font:11px var(--number);padding:8px;background:#17343beb;border-color:#9aae9760}
.audio-controls{display:grid;gap:16px;text-align:left}.audio-controls label{display:flex;justify-content:space-between;align-items:center}.audio-controls input{width:100%;min-height:44px;accent-color:#eabe72}.audio-controls button{min-height:44px}.audio-controls p{margin:0;min-height:2.5em}
#touchHint{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 26px);right:8px;font-size:12px;color:#17383a;display:none}
.test-speed{min-height:44px;font:12px var(--number)}
.test-speed[aria-pressed="true"]{background:#655033;color:#ffe1ac;border-color:#e2b77e}
#testSpeed{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 12px);right:8px;min-width:80px;padding:8px;background:#17343beb}
#testSpeed[aria-pressed="true"]{background:#655033}
.panel>.speed-note{font-size:13px;margin-bottom:0}
#modal{position:fixed;inset:0;z-index:5;background:#0d252bbd;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.panel{width:min(740px,100%);max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;padding:30px;background:linear-gradient(130deg,#25474b,#17353e);border:1px solid #adbc9e;border-radius:18px 5px 18px 5px;box-shadow:0 25px 80px #061b2590;animation:appear .2s ease}.panel>.eyebrow{display:block;margin-bottom:12px;color:var(--gold)}.panel>p{margin:12px 0 24px;font-size:15px}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.choice{text-align:left;padding:20px;min-height:190px;display:flex;flex-direction:column;gap:14px;border-color:#799286;background:linear-gradient(145deg,#365951,#233f43);border-radius:8px}.choice small{color:var(--gold)}.choice b{font:24px var(--display)}.choice p{font-size:14px}.actions{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:25px 0}.stats strong{display:block;font:30px var(--number);color:var(--gold)}.meta-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px;padding:16px 0}.meta-row p{font-size:14px}.meta-row button{font-size:14px;white-space:nowrap}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:760px){main{padding:18px 16px;align-items:flex-start}.mast{margin-bottom:18px;padding-bottom:14px}.brand{gap:9px}.brand>span{font-size:10px}.bank{font-size:12px}.lobby{grid-template-columns:1fr;gap:18px}.mission{padding:18px 22px;border-radius:40px 5px 5px 5px;display:grid;grid-template-columns:1fr 125px;min-height:152px}.mission-head{padding-left:8px;align-self:center}.mission-head h2{font-size:27px}.mission-art{min-height:0;grid-column:2;grid-row:1/3}.mission-art canvas{width:170px;height:145px;max-width:none;object-fit:contain}.mission-facts{padding-top:8px;border-top:0;justify-content:flex-start;gap:12px}.mission-facts span{font-size:11px}.mission>p{display:none}.roster-heading{margin-bottom:10px}.roster-heading h2{font-size:24px}.roster-heading small{font-size:11px}.hero canvas{height:58px}.hero{padding:5px 5px 9px}.hero h3{font-size:21px}.hero small{font-size:11px}.selection{margin-top:14px;padding-top:14px;gap:10px}.selection h3{font-size:23px}.selection p{font-size:14px}.selection .passive{font-size:12px}.footer{margin-top:16px;gap:8px;align-items:flex-start;flex-direction:column}.footer p{font-size:12px}.menu-links{gap:6px 18px;justify-content:flex-start}.menu-links .link{font-size:13px;padding:6px 0}.choices{grid-template-columns:1fr}.choice{min-height:0;padding:16px;gap:7px}.choice b{font-size:23px}.panel{padding:24px}.panel h2{font-size:30px}#touchHint{display:block}}
#start{width:100%;padding:16px 24px;margin-top:14px;font-size:17px;display:flex;justify-content:space-between;align-items:center}
#notice{position:absolute;left:10px;right:10px;bottom:76px;margin:0;padding:10px 14px;border:1px solid #64807b;border-radius:5px;background:#18363df2;color:var(--paper);font:13px/1.4 var(--body);text-shadow:none}
@media(max-width:760px){#start{position:sticky;bottom:10px;z-index:2;box-shadow:0 8px 20px #10262cbb}.mission-facts span{white-space:nowrap}.mission-facts{gap:10px}.roster-heading h2{font-size:23px}.roster-heading small{white-space:nowrap}}
@media(max-width:360px){main{padding:14px 12px}.brand>span{display:none}.bank{font-size:11px}.hero h3{font-size:19px}.mission{grid-template-columns:1fr 105px}.mission-art canvas{width:145px}.mission-facts{grid-column:1/3}.roster-heading h2{font-size:20px}.roster-heading small{font-size:9px}.selection-title{gap:6px}}
@media(max-height:680px) and (max-width:760px){.mission{min-height:105px;padding:12px 18px}.mission-art canvas{height:98px}.mission-head h2{font-size:23px}.mission-facts{display:none}.hero canvas{height:42px}.roster-heading{gap:5px}.mast{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Illustrated objects complement scalable, live-text expedition instruments. */
.item-art{display:block;width:46px;height:46px;flex:0 0 auto;object-fit:contain}
.panel{position:relative;padding-top:26px;border-color:#859f94;background:radial-gradient(ellipse at 100% 0,#426b6040,transparent 60%),linear-gradient(140deg,#26484b,#17333b)}
.panel:before{content:'';display:block;height:2px;width:48px;background:var(--gold);margin:0 0 20px}
.panel-emblem{float:right;margin:0 0 10px 20px;border:1px solid #68817a;border-radius:50%;padding:9px;background:#1b343a}
.panel-emblem .item-art{width:46px;height:46px}
.panel>h2{max-width:calc(100% - 78px);text-wrap:balance}.panel>p{clear:both}
.inventory-practice-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.inventory-practice-actions button{font-size:14px;min-height:44px}
.contribution-report{margin:28px 0;scroll-margin-top:110px;min-width:0}
.contribution-report h3{margin-bottom:8px}.contribution-intro,.contribution-report .inventory-note{font-size:14px;line-height:1.5}
.contribution-total{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:16px 0;color:var(--gold)}
.contribution-total strong{font:32px var(--number)}.contribution-total span{font-size:14px}
.contribution-row{border-top:1px solid #8ba29966;padding:12px 0;min-width:0}
.contribution-row summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;min-height:44px;cursor:pointer;list-style:none;font-size:16px}
.contribution-row summary::-webkit-details-marker{display:none}.contribution-name{overflow-wrap:anywhere}
.contribution-name:before{content:'+';margin-right:8px;color:var(--gold)}.contribution-row[open] .contribution-name:before{content:'-'}
.contribution-row summary strong,.contribution-row summary small{font-family:var(--number);font-variant-numeric:tabular-nums}
.contribution-row summary small{font-size:14px;color:#b8d9cc}
.contribution-bar{height:5px;background:#122b32;border-radius:3px;overflow:hidden;margin:4px 0 8px}
.contribution-bar span{display:block;height:100%;background:linear-gradient(90deg,#75bbab,#c2e6b7)}
.contribution-row .contribution-bar,.contribution-row .contribution-split{display:block;grid-column:1/-1}
.contribution-row .contribution-split,.contribution-details p,.contribution-details li{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.contribution-row .contribution-split{margin:6px 0;color:#c4d8ce}.contribution-details{padding:8px 12px;background:#102e3555;border-radius:4px}
.contribution-details ul{padding-left:20px;margin:8px 0}
.choice{position:relative;min-width:0;overflow-wrap:anywhere;box-shadow:inset 0 3px #95b39b25}
.choice .item-art{width:66px;height:66px;padding:4px;margin-bottom:2px;border-bottom:1px solid #718c7377}
.choice:hover{background:linear-gradient(145deg,#466e62,#2e5355);border-color:var(--gold)}
.choice:focus-visible{outline-offset:1px}.choice b{font-size:23px;line-height:1.12}
.build-card>.item-art{float:right;width:60px;height:60px;margin:0 0 8px 12px}
.build-card>p{clear:both}.build-card h3{line-height:1.13}
.skill-entry summary .item-art{width:36px;height:36px}.skill-entry summary span{flex:1}
.skill-entry.is-locked summary .item-art{filter:grayscale(1);opacity:.45}.skill-entry.is-locked summary>span{color:#aac0b6}.skill-entry.is-locked summary small{color:#dcc29b}.skill-entry summary small .camp-icon{width:15px;height:15px;vertical-align:middle;margin-right:3px}
.skill-entry summary:after{content:'+';color:var(--gold);font-size:22px}.skill-entry[open] summary:after{content:'-'}
.mission{background:linear-gradient(145deg,#214b49dd,#19333bcc),url('assets/floor.png') center/550px}
.mission-art{filter:drop-shadow(0 10px 5px #0a272830)}
.mission-facts{position:relative;z-index:1}.roster .hero{background:linear-gradient(150deg,#30504b90,#172f37)}
.roster .hero.active{background:linear-gradient(150deg,#506f62,#294449)}



#loadout{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
#loadout .loadout-slot{position:relative;pointer-events:auto;min-width:0;min-height:48px;display:grid;place-items:center;padding:2px;background:#19383de8;border:1px solid #8ba29988;border-radius:4px}
#loadout .loadout-slot:first-child{border-color:var(--gold)}
#loadout .loadout-slot.empty{pointer-events:none;opacity:.45;min-height:48px}
#loadout .item-art{width:40px;height:40px}
#loadout .loadout-glyph{position:relative;width:40px;height:40px;pointer-events:none}
/* The entire gray tile recedes top-to-bottom, not just the icon's opaque pixels. */
#loadout .cooldown-mask{position:absolute;inset:0;display:grid;place-items:center;background:#64717b;border-radius:3px;clip-path:inset(100% 0 0 0);pointer-events:none}
#loadout .cooldown-mask .item-art{filter:grayscale(1) brightness(.9)}
#loadout .loadout-slot[data-phase="ready"],#loadout .loadout-slot[data-phase="active"]{background:#244f48;border-color:#b8edce}
#loadout .loadout-slot::after{content:attr(data-cooldown-text);position:absolute;top:1px;left:1px;border-radius:2px;background:#14232df2;color:#fff1cf;padding:2px 3px;font:10px/1 var(--number);font-variant-numeric:tabular-nums}
#loadout .loadout-slot:not([data-cooldown-text])::after,#loadout [data-cooldown-text=""]::after{display:none}
#loadout [data-phase="active"] .loadout-glyph{filter:drop-shadow(0 0 2px #c4e2d877)}
#loadout .loadout-slot>span{position:absolute;right:2px;bottom:0;background:#173137e8;border:0;padding:1px 3px;color:var(--paper);font:12px var(--number)}
#loadout .slot-name{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
#magazine{width:fit-content;margin-top:3px;padding:2px 6px;background:#17363dde;border-radius:3px;color:#e2ece2;font:11px/1.2 var(--number)}
#magazine.magazine-reload{color:#ffe1ac}
#magazine{max-width:100%;font-size:12px}
#magazine.signature-burst{color:#fff1be;background:#675537}
#magazine.signature-mage{color:#b4eaff}
#magazine .signature-next{display:inline-flex;width:18px;height:18px;vertical-align:middle}
#magazine .signature-next .item-art{width:18px;height:18px;min-width:18px;flex:0 0 18px}
.stats{padding:16px 0;border-block:1px solid #75908055;gap:12px}.stats small{font-size:11px;letter-spacing:.05em}
.stats strong{font-size:34px}.actions>button{min-height:46px}
@media(max-width:760px){
 .panel{padding:20px}.panel-emblem{padding:7px}.panel-emblem .item-art{width:37px;height:37px}
 .panel>h2{max-width:calc(100% - 65px);font-size:29px}.panel>p{font-size:14px}
 .choice{display:grid;grid-template-columns:54px 1fr;column-gap:13px;row-gap:7px;align-items:start;padding:14px}
 .choice .item-art{grid-column:1;grid-row:1/4;width:54px;height:60px;border:0;margin:0}
 .choice small,.choice b,.choice p{grid-column:2}.choice b{font-size:22px}
 .choice p{font-size:13px;line-height:1.4}.panel .actions>button{flex:1 1 auto}
 .skill-entry summary{gap:10px}.skill-entry summary small{max-width:86px;font-size:10px}
 .inventory-actions{top:-20px}.stats{gap:8px}.stats strong{font-size:28px}
}
@media(max-width:360px){.panel{padding:16px}.panel>h2{font-size:26px}.panel-emblem{margin-left:12px}.choices .choice{padding:12px;grid-template-columns:40px 1fr;column-gap:10px}.choice .item-art{width:40px;height:46px}.choice b{font-size:20px}.choice small{font-size:10px}.skill-entry summary small{max-width:72px}.stats small{font-size:9px}.inventory-actions{top:-16px}}
.bank{display:flex;align-items:center;justify-content:flex-end;gap:5px}.bank .item-art{width:21px;height:21px}.bank>span{opacity:.4;margin:0 3px}.hud-gold{display:flex;align-items:center;justify-content:flex-end;gap:4px}.hud-gold .item-art{width:18px;height:18px}
.topline strong.hud-gold{display:flex}.meta-row>.item-art{width:40px;height:40px;flex:none;margin-right:14px}.meta-row>div{flex:1}.meta-row>button{min-height:44px}

.offer-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-top:16px}.offer-actions button{min-height:44px}.offer-actions small{font-size:13px;line-height:1.4;color:var(--muted)}
/* Stage cue (Lead, 09-25): a centred pill instead of a full-width debug strip. The dot follows the telegraph colour
   language: teal for our objectives, gold for stage warnings, red while a named elite or boss is on the field. */
#stageCue{display:flex;align-items:center;gap:7px;width:max-content;max-width:92%;margin:6px auto 0;padding:6px 12px 6px 10px;border-radius:999px;background:#0e2334e6;border:1px solid #6fa3a355;color:#e8f0ea;text-align:center;font:600 12px/1.3 var(--body);letter-spacing:.01em;box-shadow:0 3px 10px #0006;animation:stageCueIn .18s ease-out}
#stageCue[hidden]{display:none}
#stageCue::before{content:'';width:7px;height:7px;border-radius:50%;background:#6fd0bb;flex:none}
#stageCue.stage-warning{border-color:#e2b77e88;color:#ffe9c4}
#stageCue.stage-warning::before{background:#f2c46a}

#stageCue.boss-cue{border-color:#e25a3c99;color:#ffe3d6}
#stageCue.boss-cue::before{background:#ff7a5c;box-shadow:0 0 6px #ff7a5c}
@keyframes stageCueIn{from{opacity:0;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){#stageCue{animation:none}}
@media(max-width:760px){




 #loadout{gap:4px}
 main{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}
 #modal{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}
 .panel{max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)))}
}
@media(max-width:760px){.meta-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px 12px}.meta-row>.item-art{width:34px;height:34px;margin:0}.meta-row>div{min-width:0}.meta-row h3{font-size:22px;overflow-wrap:anywhere}.meta-row>button{grid-column:2;justify-self:start;min-height:44px;padding:10px 16px}}
/* Expedition offers: one readable header, then choices; First Light owns its guided layout. */
.panel[data-screen="upgrade"]:not(.first-light-choice) .panel-emblem,
.panel[data-screen="upgrade"]:not(.first-light-choice)>p:empty{display:none}
.panel[data-screen="upgrade"]:not(.first-light-choice)>h2{max-width:none;margin:8px 0 18px;font-size:clamp(26px,5vw,36px);line-height:1.12}
.panel[data-screen="upgrade"]:not(.first-light-choice) .choice{min-width:0}
.panel[data-screen="upgrade"]:not(.first-light-choice) .choice p{overflow-wrap:anywhere}
@media(max-width:760px){
 .panel[data-screen="upgrade"]:not(.first-light-choice){padding:20px 16px;border-radius:20px}
 .panel[data-screen="upgrade"]:not(.first-light-choice) .choices{gap:10px}
 .panel[data-screen="upgrade"]:not(.first-light-choice) .choice{grid-template-columns:42px minmax(0,1fr);gap:6px 10px;padding:14px 12px;min-height:108px}
 .panel[data-screen="upgrade"]:not(.first-light-choice) .choice .item-art{width:42px;height:42px}
 .panel[data-screen="upgrade"]:not(.first-light-choice) .choice b{font-size:23px;line-height:1.15}
 .panel[data-screen="upgrade"]:not(.first-light-choice) .choice p{margin:0;font-size:13px;line-height:1.4}
 .panel[data-screen="upgrade"]:not(.first-light-choice) .offer-actions{margin-top:12px}
 .panel[data-screen="upgrade"]:not(.first-light-choice) .offer-actions button{flex:1}
}

/* Two-tap confirm for destructive pause actions (Lead, 2026-09-23) */
.confirm-armed{background:#6a2a22!important;color:#ffe6d6!important;border-color:#e2805f!important}
/* Camp → combat loading (Lead, 09-25): calm, centred, never a dead Play button. */
#expeditionPreparing{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 22px;border-radius:16px;background:#0e2334e6;border:1px solid #e2b77e55;color:#fff0ce;font:600 15px/1.35 var(--body,system-ui);text-align:center;box-shadow:0 8px 30px #0008;pointer-events:none}
#expeditionPreparing span svg,#expeditionPreparing span .camp-icon{width:34px;height:34px;animation:expeditionPulse 1.2s ease-in-out infinite}
#expeditionPreparing.is-failed{pointer-events:auto}
#expeditionPreparing.is-failed span svg,#expeditionPreparing.is-failed span .camp-icon{animation:none;opacity:.6}
#expeditionPreparing button{min-height:44px;padding:8px 18px;border-radius:12px;border:1px solid #d5b77e88;background:#24494b;color:#f6dca6;font:600 14px var(--body,system-ui)}
@keyframes expeditionPulse{50%{opacity:.45;transform:scale(.92)}}
@media (prefers-reduced-motion:reduce){#expeditionPreparing span svg,#expeditionPreparing span .camp-icon{animation:none}}
