:root{
  --v3-ink:#07100c;
  --v3-paper:rgba(231,224,198,.07);
  --v3-jade:#7fd2a7;
  --v3-gold:#e0bd72;
  --v3-red:#d45d48;
  --v3-demon:#b27ac5;
}

body{
  background:
    radial-gradient(circle at 50% -20%,rgba(102,167,128,.18),transparent 36%),
    linear-gradient(145deg,#111b15 0,#060b08 72%);
}
body:after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.08;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:screen;
}

.game-shell{max-width:1780px;padding:16px clamp(14px,2vw,34px) 34px}
.topbar{position:relative;z-index:10;min-height:70px;background:linear-gradient(90deg,rgba(7,14,10,.72),transparent 42%,rgba(7,14,10,.72));backdrop-filter:blur(14px)}
.drawer-toggle{font-size:10px;color:var(--v3-gold)}
.drawer-toggle[aria-pressed=true]{color:#101710;background:var(--v3-gold);border-color:var(--v3-gold)}
.status-ribbon{position:relative;z-index:9;margin:10px 0 14px;border-color:rgba(224,189,114,.18);background:linear-gradient(90deg,rgba(14,25,18,.93),rgba(26,37,29,.78),rgba(14,25,18,.93))}

.main-grid{grid-template-columns:minmax(215px,.58fr) minmax(560px,1.9fr) minmax(245px,.68fr);gap:12px;transition:grid-template-columns .35s ease}
.panel{border-color:rgba(218,228,205,.12);background:linear-gradient(150deg,rgba(26,38,30,.9),rgba(10,17,12,.92));box-shadow:0 24px 70px rgba(0,0,0,.32)}
.map-panel,.story-panel{min-height:0}
.map-collapsed .main-grid{grid-template-columns:0 minmax(650px,2.4fr) minmax(245px,.68fr)}
.codex-collapsed .main-grid{grid-template-columns:minmax(215px,.58fr) minmax(650px,2.4fr) 0}
.map-collapsed.codex-collapsed .main-grid{grid-template-columns:0 minmax(720px,1fr) 0}
.map-collapsed .map-panel,.codex-collapsed .right-stack{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);overflow:hidden}
.map-panel,.right-stack{transition:opacity .28s,transform .28s,visibility .28s}

.panel-heading{padding:15px 16px 11px}
.map{height:365px;margin-top:0;background:radial-gradient(circle at 48% 42%,rgba(102,153,121,.13),transparent 44%)}
.map-node i{background:rgba(20,35,26,.9);box-shadow:0 8px 24px rgba(0,0,0,.4),inset 0 0 18px rgba(127,210,167,.05)}
.map-node.active i{background:var(--v3-jade);box-shadow:0 0 0 5px rgba(127,210,167,.08),0 0 28px rgba(127,210,167,.3)}
.fate-clock{margin:0 14px 12px;background:linear-gradient(90deg,rgba(224,189,114,.08),rgba(127,210,167,.04))}

.story-panel{overflow:visible;background:transparent;border-color:rgba(224,189,114,.16)}
.chapter-marker{padding:12px 18px 10px;background:rgba(9,16,11,.74)}
.story-card{position:relative;margin:0;border:0;background:#09110c;box-shadow:0 28px 75px rgba(0,0,0,.48)}
.story-illustration{height:clamp(350px,48vh,530px);isolation:isolate;background:#101914!important}
.story-illustration:before{z-index:2;inset:auto 0 0;width:100%;height:68%;border-radius:0;filter:none;background:linear-gradient(transparent,rgba(5,10,7,.2) 34%,rgba(5,10,7,.94) 100%)}
.story-illustration:after{z-index:2;inset:0;width:auto;height:auto;border-radius:0;filter:none;background:linear-gradient(90deg,rgba(5,10,7,.38),transparent 30%,transparent 70%,rgba(5,10,7,.34)),radial-gradient(circle at 50% 42%,transparent 35%,rgba(5,10,7,.28))}
.scene-ink{position:absolute;inset:0;z-index:0;background-position:center;background-size:cover;filter:saturate(.82) contrast(1.09);transform:scale(1.025);animation:scene-breathe 15s ease-in-out infinite alternate}
.story-illustration[data-scene=sect] .scene-ink{background-image:url("assets/scenes/sect.jpg")}
.story-illustration[data-scene=town] .scene-ink{background-image:url("assets/scenes/town.jpg")}
.story-illustration[data-scene=marsh] .scene-ink{background-image:url("assets/scenes/marsh.jpg")}
.story-illustration[data-scene=valley] .scene-ink{background-image:url("assets/scenes/valley.jpg")}
.story-illustration[data-scene=tomb] .scene-ink{background-image:url("assets/scenes/tomb.jpg")}
.scene-weather{position:absolute;z-index:1;inset:-15%;opacity:.38;pointer-events:none;background:repeating-linear-gradient(108deg,transparent 0 18px,rgba(232,242,232,.17) 19px,transparent 20px);animation:weather-drift 12s linear infinite}
.story-illustration[data-scene=sect] .scene-weather{background:radial-gradient(ellipse at 50% 68%,rgba(235,243,225,.36),transparent 53%)}
.story-illustration[data-scene=marsh] .scene-weather{background-image:radial-gradient(circle,rgba(161,233,215,.68) 0 1px,transparent 2px);background-size:41px 37px;animation:fireflies 9s ease-in-out infinite alternate}
.story-illustration[data-scene=valley] .scene-weather{background:radial-gradient(circle at 50% 95%,rgba(222,69,38,.35),transparent 46%);animation:ember-pulse 3s ease-in-out infinite alternate}
.story-illustration[data-corruption="2"] .scene-ink{filter:saturate(.72) contrast(1.15) hue-rotate(-8deg)}
.story-illustration[data-corruption="3"] .scene-ink{filter:saturate(.88) contrast(1.22) hue-rotate(-16deg);animation:corrupt-scene 5s ease-in-out infinite alternate}
.scene-glyph{z-index:3;opacity:.16;font-size:clamp(90px,12vw,180px);text-shadow:0 0 35px rgba(220,235,219,.3)}
.scene-caption{z-index:5;left:18px;bottom:18px;padding:7px 11px;background:rgba(4,9,6,.72);font-size:9px;letter-spacing:.08em}
.corruption-mark{position:absolute;z-index:5;right:17px;top:16px;padding:6px 9px;border:1px solid rgba(224,189,114,.25);color:rgba(236,218,178,.8);background:rgba(5,10,7,.66);font-size:8px;letter-spacing:.1em}

.story-portrait{position:absolute;z-index:4;right:2%;bottom:-3%;width:min(38%,300px);aspect-ratio:3/4;opacity:0;background-image:url("assets/characters/core-cast.jpg");background-repeat:no-repeat;background-size:400% 200%;filter:drop-shadow(-16px 14px 18px rgba(0,0,0,.56));transform:translateX(28px);transition:opacity .35s,transform .5s,filter .35s;pointer-events:none}
.story-portrait.visible{opacity:1;transform:translateX(0)}
.story-portrait[data-character=mentor-sword]{background-position:0 0}
.story-portrait[data-character=mentor-alchemy]{background-position:33.333% 0}
.story-portrait[data-character=mentor-demon]{background-position:66.666% 0}
.story-portrait[data-character=rival]{background-position:100% 0}
.story-portrait[data-character=ahe]{background-position:0 100%}
.story-portrait[data-character=fox]{background-position:33.333% 100%}
.story-portrait[data-character=li]{background-position:66.666% 100%}
.story-portrait[data-character=elder]{background-position:100% 100%}
.story-portrait.hostile{filter:saturate(.7) contrast(1.18) sepia(.12) hue-rotate(320deg) drop-shadow(-14px 10px 26px rgba(166,45,35,.45))}
.story-portrait.trusted{filter:saturate(1.05) brightness(1.08) drop-shadow(-12px 10px 25px rgba(108,205,158,.28))}

.story-copy{position:relative;z-index:6;min-height:178px;margin-top:-4px;padding:22px 24px 24px;background:linear-gradient(180deg,rgba(7,13,9,.94),rgba(15,24,17,.98));border-top:1px solid rgba(224,189,114,.16)}
.story-copy h2{font-size:clamp(27px,2.5vw,40px);letter-spacing:.04em}
.story-copy>p{max-width:820px;min-height:38px;margin:8px 0 15px;font-size:12px;line-height:1.9}
.choices{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.choice-button{position:relative;align-items:center;min-height:54px;padding:11px 13px 11px 45px;overflow:hidden;background:linear-gradient(110deg,rgba(43,60,48,.76),rgba(22,31,25,.82));transition:.24s}
.choice-button:before{content:attr(data-icon);position:absolute;left:11px;top:50%;display:grid;place-items:center;width:25px;height:25px;border:1px solid rgba(224,189,114,.35);border-radius:50%;color:var(--v3-gold);transform:translateY(-50%)}
.choice-button:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(139,218,171,.13),transparent 68%);transform:translateX(-115%);transition:transform .5s}
.choice-button:hover:not(:disabled):after{transform:translateX(115%)}
.choice-button[data-risk=danger]{border-color:rgba(212,93,72,.36)}
.choice-button[data-risk=demon]{border-color:rgba(178,122,197,.4)}
.choice-button[data-risk=fortune]{border-color:rgba(224,189,114,.38)}

.action-deck{gap:8px;padding:11px 0 0}
.action-card{min-height:67px;background:linear-gradient(120deg,rgba(34,50,39,.88),rgba(15,25,18,.92));border-color:rgba(213,228,210,.12);box-shadow:0 9px 25px rgba(0,0,0,.2)}
.action-card:hover:not(:disabled){box-shadow:0 0 0 1px rgba(127,210,167,.2),0 10px 30px rgba(60,140,95,.16)}
.action-card>i{box-shadow:inset 0 0 18px rgba(127,210,167,.08)}

.destiny-card{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;margin:0 11px 10px;padding:10px;border:1px solid rgba(224,189,114,.2);background:linear-gradient(120deg,rgba(224,189,114,.09),rgba(31,19,38,.16))}
.destiny-glyph{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(224,189,114,.45);border-radius:50%;color:var(--v3-gold);font-size:17px;box-shadow:0 0 20px rgba(224,189,114,.09)}
.destiny-card small,.destiny-card strong,.destiny-card p{display:block;margin:0}
.destiny-card small{color:var(--muted);font-size:7px}.destiny-card strong{margin-top:2px;color:#ead9ad;font-size:10px}.destiny-card p{margin-top:3px;color:#7d8e82;font-size:7px;line-height:1.45}
.world-pulse{margin:0 12px 12px;padding:9px 10px;border-top:1px solid var(--line);background:rgba(5,11,7,.26)}
.world-pulse>span{display:block;color:var(--v3-gold);font-size:7px;letter-spacing:.12em}.world-pulse>strong{display:block;margin:4px 0 7px;color:#a5b3a8;font-size:8px;font-weight:400}
.faction-track{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.faction-mark{height:4px;background:#101712;overflow:hidden}.faction-mark i{display:block;height:100%;background:var(--faction-color,var(--v3-jade));transform-origin:left;transition:transform .45s}
.legacy-codex{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:8px 12px 0;background:var(--line)}.legacy-codex span{display:block;padding:7px 4px;background:#111c15;color:#75847a;font-size:7px;text-align:center}.legacy-codex b{display:block;margin-top:2px;color:var(--v3-gold);font-size:10px}

.destiny-dialog{position:relative;width:min(980px,96vw);max-height:calc(100vh - 38px);overflow:auto;padding:clamp(25px,4vw,45px);border:1px solid rgba(224,189,114,.32);background:radial-gradient(circle at 50% 0,rgba(224,189,114,.12),transparent 35%),linear-gradient(145deg,#1d2921,#0b110d);box-shadow:0 35px 100px rgba(0,0,0,.72);text-align:center}
.destiny-dialog h2{margin:6px 0 5px;font-size:clamp(30px,4vw,47px);font-weight:500}.destiny-dialog>p:not(.eyebrow){margin:0 auto 22px;color:var(--muted);font-size:10px}
.destiny-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.destiny-choice{position:relative;min-height:255px;padding:22px 17px 17px;border:1px solid rgba(224,189,114,.18);background:linear-gradient(155deg,rgba(42,57,46,.84),rgba(20,27,22,.9));text-align:left;cursor:pointer;overflow:hidden;transition:.26s}
.destiny-choice:before{content:"";position:absolute;inset:-40% 20% 35%;border-radius:50%;background:radial-gradient(circle,rgba(224,189,114,.16),transparent 68%);transition:.3s}.destiny-choice:hover{transform:translateY(-7px);border-color:var(--v3-gold);box-shadow:0 22px 48px rgba(0,0,0,.35)}
.destiny-choice>i{position:relative;display:grid;place-items:center;width:56px;height:56px;margin:0 auto 14px;border:1px solid rgba(224,189,114,.48);border-radius:50%;color:var(--v3-gold);font-size:28px;font-style:normal}.destiny-choice small,.destiny-choice strong,.destiny-choice span,.destiny-choice em{position:relative;display:block}.destiny-choice small{color:var(--v3-gold);font-size:8px}.destiny-choice strong{margin:4px 0 8px;font-size:16px}.destiny-choice span{min-height:62px;color:#96a59a;font-size:9px;line-height:1.7}.destiny-choice em{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);color:var(--v3-jade);font-size:8px;font-style:normal}

#combatModal{padding:0;background:rgba(3,7,5,.9)}
.combat-dialog{width:min(1320px,100vw);height:min(860px,100vh);max-height:100vh;padding:clamp(25px,4vh,48px) clamp(18px,4vw,62px);overflow:auto;border:0;background:#07100c;box-shadow:none;isolation:isolate}
.combat-dialog:before{inset:12px;border-color:rgba(224,189,114,.16)}
.combat-backdrop{position:absolute;z-index:-3;inset:0;background-position:center;background-size:cover;filter:saturate(.72) brightness(.45) contrast(1.18);transform:scale(1.03)}
#combatModal[data-scene=sect] .combat-backdrop{background-image:url("assets/scenes/sect.jpg")}
#combatModal[data-scene=town] .combat-backdrop{background-image:url("assets/scenes/town.jpg")}
#combatModal[data-scene=marsh] .combat-backdrop{background-image:url("assets/scenes/marsh.jpg")}
#combatModal[data-scene=valley] .combat-backdrop{background-image:url("assets/scenes/valley.jpg")}
#combatModal[data-scene=tomb] .combat-backdrop{background-image:url("assets/scenes/tomb.jpg")}
#combatModal.final-battle .combat-backdrop{background-image:url("assets/bosses/devouring-king.jpg");background-position:center 28%;filter:saturate(.95) brightness(.54) contrast(1.13)}
.combat-dialog:after{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(180deg,rgba(3,7,5,.28),rgba(3,7,5,.62) 58%,rgba(3,7,5,.94)),radial-gradient(circle at 50% 32%,transparent 18%,rgba(2,5,3,.28) 75%);pointer-events:none}
.boss-phase{position:relative;color:var(--v3-gold);letter-spacing:.18em;text-align:center}
.combat-arena{position:relative;min-height:340px;margin-top:5px;grid-template-columns:1fr 90px 1fr;align-items:center}
.portrait{width:clamp(120px,14vw,190px);height:clamp(120px,14vw,190px);font-size:clamp(52px,7vw,90px);backdrop-filter:blur(7px)}
.enemy-portrait{border-color:rgba(212,93,72,.62);background:radial-gradient(circle,rgba(119,42,33,.72),rgba(18,8,7,.75));box-shadow:0 0 55px rgba(194,57,39,.28)}
.player-portrait{border-color:rgba(127,210,167,.62);background:radial-gradient(circle,rgba(55,112,77,.72),rgba(8,19,12,.76));box-shadow:0 0 55px rgba(80,184,122,.22)}
.combatant h2{font-size:clamp(15px,1.7vw,24px);text-shadow:0 3px 9px #000}.combat-bar{width:min(310px,32vw);height:9px}.versus{font-size:50px;text-shadow:0 0 25px rgba(224,189,114,.38)}
.intent-box{position:relative;align-items:center;max-width:790px;margin:8px auto 0;padding:12px 16px;background:rgba(19,10,9,.56);border-color:rgba(212,93,72,.32);font-size:10px;backdrop-filter:blur(12px)}
.intent-box>i{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(212,93,72,.5);border-radius:50%;color:#e38b79;font-style:normal}
.intent-box[data-intent=guard]>i{color:var(--v3-jade);border-color:rgba(127,210,167,.45)}.intent-box[data-intent=curse]>i,.intent-box[data-intent=devour]>i{color:#cf91dc;border-color:rgba(178,122,197,.5)}
.combat-message{min-height:26px;margin:10px auto;max-width:880px;font-size:10px;text-align:center;text-shadow:0 2px 6px #000}
.combat-actions{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));max-width:1050px;margin:auto;gap:8px}
.combat-action{min-height:70px;background:linear-gradient(135deg,rgba(35,53,41,.86),rgba(13,22,16,.9));backdrop-filter:blur(8px);transition:.22s}
.combat-action.featured{border-color:rgba(127,210,167,.24)}.combat-action:hover:not(:disabled){transform:translateY(-4px);border-color:var(--v3-jade);box-shadow:0 12px 28px rgba(0,0,0,.28)}
.boss-mechanic{display:none;max-width:560px;margin:-14px auto 8px;padding:8px 12px;border:1px solid rgba(224,189,114,.23);background:rgba(24,13,8,.65);color:#c7b98f;font-size:9px;text-align:center}.boss-mechanic.visible{display:block}.boss-mechanic b{color:var(--v3-gold)}
.technique-cut{position:absolute;z-index:20;left:50%;top:42%;opacity:0;color:#fff;font-size:clamp(38px,7vw,90px);font-weight:700;letter-spacing:.14em;text-shadow:0 0 24px currentColor,0 8px 28px #000;transform:translate(-50%,-50%) scale(.72) rotate(-4deg);pointer-events:none}.technique-cut.show{animation:technique-cut .72s ease both}.technique-cut.sword{color:#d9ffff}.technique-cut.alchemy{color:#9ef3bd}.technique-cut.demon{color:#ed8da4}
.combat-dialog.hit{animation:combat-hit .32s}.combat-dialog.heavy-hit{animation:combat-heavy .4s}

.fate-echo,.realm-burst{position:fixed;z-index:120;left:50%;top:50%;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-50%) scale(.86);text-align:center}
.stat-float{position:fixed;z-index:130;pointer-events:none;font-size:13px;font-weight:700;text-shadow:0 2px 8px #000;animation:stat-float .86s ease-out both}.stat-float.gain{color:var(--v3-jade)}.stat-float.loss{color:#ed7764}
.ending-stats{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}
body.path-sword .player-portrait{box-shadow:0 0 65px rgba(173,232,240,.3)}body.path-alchemy .player-portrait{box-shadow:0 0 65px rgba(97,224,142,.3)}body.path-demon .player-portrait{box-shadow:0 0 65px rgba(211,75,106,.32)}
.fate-echo{min-width:min(520px,88vw);padding:24px 35px;border-block:1px solid rgba(224,189,114,.45);background:linear-gradient(90deg,transparent,rgba(8,15,10,.94) 16%,rgba(8,15,10,.94) 84%,transparent)}
.fate-echo.show{visibility:visible;animation:fate-echo 2.7s ease both}.fate-echo span{display:block;color:var(--v3-gold);font-size:9px;letter-spacing:.35em}.fate-echo strong{display:block;margin:6px 0;font-size:clamp(24px,4vw,43px);font-weight:500}.fate-echo p{margin:0;color:#96a69a;font-size:10px}
.realm-burst{display:grid;place-items:center;width:100vw;height:100vh;background:radial-gradient(circle,rgba(224,189,114,.15),rgba(3,8,5,.94) 66%)}.realm-burst.show{visibility:visible;animation:realm-burst 2.25s ease both}.realm-burst span{display:grid;place-items:center;width:130px;height:130px;border:1px solid var(--v3-gold);border-radius:50%;color:var(--v3-gold);font-size:72px;box-shadow:0 0 80px rgba(224,189,114,.18)}.realm-burst strong{display:block;margin-top:18px;font-size:clamp(34px,6vw,76px);font-weight:500;letter-spacing:.1em}.realm-burst p{color:#b3bcae}

body[data-trial=foundation] .story-illustration .scene-ink{filter:saturate(.55) contrast(1.2) brightness(.66)}
body[data-trial=heart] .story-illustration .scene-ink{filter:saturate(.45) hue-rotate(250deg) brightness(.58);transform:scale(1.08)}
body[data-trial=thunder] .story-illustration .scene-ink{filter:saturate(.2) contrast(1.35) brightness(.78)}
body[data-trial=thunder] .story-illustration:after{background:linear-gradient(115deg,transparent 42%,rgba(218,238,255,.85) 44%,transparent 46%),radial-gradient(circle at 50% 30%,rgba(211,233,255,.26),rgba(3,7,5,.7) 65%);animation:lightning 1.8s steps(1) infinite}

@keyframes scene-breathe{to{transform:scale(1.065) translate3d(-.5%,.4%,0)}}
@keyframes weather-drift{to{transform:translate3d(-7%,7%,0)}}
@keyframes fireflies{to{opacity:.7;transform:translateY(-16px)}}
@keyframes ember-pulse{to{opacity:.68;filter:brightness(1.35)}}
@keyframes corrupt-scene{to{filter:saturate(1.1) contrast(1.28) hue-rotate(-24deg) brightness(.86)}}
@keyframes technique-cut{0%{opacity:0;transform:translate(-50%,-50%) scale(.6) rotate(-7deg)}28%{opacity:1;transform:translate(-50%,-50%) scale(1.08) rotate(-3deg)}72%{opacity:1}100%{opacity:0;transform:translate(-50%,-54%) scale(1.16) rotate(-2deg)}}
@keyframes combat-hit{35%{filter:brightness(1.5);transform:translateX(-7px)}65%{transform:translateX(6px)}}
@keyframes combat-heavy{20%{filter:brightness(1.9);transform:translate(-10px,3px)}40%{transform:translate(9px,-2px)}60%{transform:translate(-5px,1px)}}
@keyframes fate-echo{0%{opacity:0;transform:translate(-50%,-50%) scale(.88)}16%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-52%) scale(1.03)}}
@keyframes realm-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(1.08)}15%,76%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.05)}}
@keyframes lightning{0%,88%,100%{opacity:.55}89%{opacity:1}91%{opacity:.25}94%{opacity:.9}}
@keyframes stat-float{0%{opacity:0;transform:translate(-50%,4px) scale(.8)}20%{opacity:1;transform:translate(-50%,-4px) scale(1.08)}100%{opacity:0;transform:translate(-50%,-32px) scale(.94)}}

@media(max-width:1180px){
  .main-grid{grid-template-columns:minmax(210px,.62fr) minmax(500px,1.7fr)}
  .right-stack{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}
  .codex-collapsed .main-grid,.map-collapsed .main-grid,.map-collapsed.codex-collapsed .main-grid{grid-template-columns:minmax(210px,.62fr) minmax(500px,1.7fr)}
  .map-collapsed .map-panel{display:none}.codex-collapsed .right-stack{display:none}
}

@media(max-width:780px){
  .game-shell{padding:8px}
  .main-grid,.codex-collapsed .main-grid,.map-collapsed .main-grid,.map-collapsed.codex-collapsed .main-grid{grid-template-columns:1fr}
  .story-panel{order:-2}.map-panel{order:-1}.right-stack{grid-template-columns:1fr}
  .story-illustration{height:330px}.story-portrait{right:-4%;width:48%}.story-copy{padding:18px 16px}.story-copy h2{font-size:27px}.choices{grid-template-columns:1fr}
  .map-collapsed .map-panel,.codex-collapsed .right-stack{display:none}
  .destiny-grid{grid-template-columns:1fr;max-height:64vh;overflow:auto}.destiny-choice{min-height:185px}
  .combat-dialog{height:100vh;padding:30px 12px 18px}.combat-arena{min-height:300px;grid-template-columns:1fr 34px 1fr;gap:7px}.portrait{width:100px;height:100px;font-size:48px}.versus{font-size:25px}.combat-bar{width:38vw}.combat-actions{grid-template-columns:1fr 1fr}.combat-action{min-height:64px}
}

@media(max-width:480px){
  .drawer-toggle{display:grid!important}.story-illustration{height:280px}.story-portrait{width:54%}.scene-caption{max-width:70%;font-size:7px}.corruption-mark{font-size:7px}.action-deck{padding-top:8px}
  .fate-echo{padding:20px 18px}.combat-arena{min-height:245px}.portrait{width:80px;height:80px;font-size:38px}.combatant h2{font-size:11px}.combat-actions{gap:6px}.combat-action b{font-size:9px}.intent-box{align-items:flex-start;text-align:left}
}

@media(prefers-reduced-motion:reduce){.scene-ink,.scene-weather,.technique-cut,.fate-echo,.realm-burst{animation:none!important}.technique-cut.show,.fate-echo.show,.realm-burst.show{opacity:1}}
