/* Encounter presentation follows actual resolved events and shared combat state. */
.battle-raid-banner{position:relative;isolation:isolate;display:flex;justify-content:space-between;align-items:center;gap:24px;overflow:hidden;padding:36px;border:1px solid #a47d4655;background:linear-gradient(100deg,#090e12 10%,#101920bb 65%,#19202566);margin:0 0 30px;border-radius:10px}
.battle-raid-banner:before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 85% 40%,#98672e55,transparent 60%),linear-gradient(90deg,#081018 10%,#09121977 65%,#090e12bb);opacity:.75}
.battle-raid-banner h2{font-size:clamp(1.7rem,3vw,3rem);margin:10px 0;color:#ecd4aa}.battle-raid-banner p{max-width:470px;font-size:1rem;line-height:1.65}.battle-raid-banner>span{font:clamp(2rem,6vw,5rem)/1 Georgia,serif;color:#d9ad73;text-align:right}.battle-raid-banner>span small{display:block;font:12px/2.3 sans-serif;letter-spacing:.22em}.battle-raid-banner .button{margin-top:12px}
.battle-sigil{width:62px;height:74px;overflow:hidden;border-radius:7px;flex-shrink:0}.battle-sigil img{width:100%;height:100%;object-fit:cover}.battle-role-label{font-size:.8rem;color:#a3c7b9}.battle-slot-main p,.battle-conditions p,.battle-builder-intro p,.battle-map-preview p{font-size:1rem}.battle-fields label>span,.battle-checks label,.battle-slot details,.battle-slot details p,.battle-bonds{font-size:.875rem}.battle-slot{align-items:start}.battle-slot-main{min-width:0}.battle-slot select{max-width:100%}.battle-slot-actions button{min-width:32px;min-height:44px}.battle-controls .button,.battle-controls select,.battle-controls label{min-height:44px;font-size:.875rem}.battle-controls{gap:8px}
.battle-stage{isolation:isolate;min-height:600px;overflow:hidden;border-color:#9f855761;background:#080e13;transition:background .6s ease;--beat-duration:1800ms}.battle-stage:before{transition:background-image .6s,filter .8s;filter:saturate(.55) brightness(.45)}
.battle-stage[data-domain]:not([data-domain=""]):before{filter:saturate(.82) brightness(.65);opacity:1;background-image:linear-gradient(0deg,#05090bbb,transparent 65%),var(--battle-map)}
.battle-stage[data-domain="stillwater"]{box-shadow:inset 0 0 100px #b8cde345}.battle-stage[data-domain="elevator"]{box-shadow:inset 0 0 100px #e9b36145}.battle-stage[data-domain="rift"]{box-shadow:inset 0 0 100px #49a8a63a}.battle-stage[data-domain="healing"]{box-shadow:inset 0 0 120px #66c39155}.battle-stage[data-domain="petal-loop"]{box-shadow:inset 0 0 100px #b9487666}.battle-stage[data-domain="war-realm"]{box-shadow:inset 0 0 140px #a8604845}
.battle-token-field,.battle-fx-plane{position:absolute;inset:75px 5% 170px;transform-origin:var(--camera-x,50%) var(--camera-y,50%);transition:transform 1.2s ease;z-index:4}.battle-fx-plane{z-index:5;pointer-events:none}.battle-stage[data-camera="focus"] .battle-token-field,.battle-stage[data-camera="focus"] .battle-fx-plane{transform:scale(1.08)}.battle-stage[data-density="dense"] .battle-token-field,.battle-stage[data-density="dense"] .battle-fx-plane{transform:none}
.battle-token{position:absolute;transform:translate(-50%,-50%);transition:left 1.05s cubic-bezier(.2,.6,.15,1),top 1.05s cubic-bezier(.2,.6,.15,1),opacity .8s;min-width:46px;filter:drop-shadow(0 12px 7px #0007)}.battle-token>span{width:clamp(42px,4.5vw,64px);height:clamp(42px,4.5vw,64px);padding:0;border-radius:50%;overflow:hidden;border:2px solid hsl(var(--fighter-hue) 48% 62% / .85);background:#09151e;box-shadow:0 0 0 5px #060b1399;font-size:.8rem}.battle-token>span>img{width:100%;height:100%;object-fit:cover}.battle-token>small{font-size:.8rem;max-width:125px;white-space:normal;line-height:1.2;color:#f6eddc;text-shadow:0 2px 4px #000,0 0 7px #000;background:#071019ba;border-radius:3px;padding:3px 5px;margin-top:7px}.battle-token.kind-boss>span{width:100px;height:100px;border-radius:24% 24% 42% 42%;border-color:#b99462;box-shadow:0 0 0 6px #140a0699,0 0 40px #ce6b4d44}.battle-token.kind-summon>span{width:40px;height:40px;border-style:dashed;border-radius:14px;font-size:.7rem}.battle-token.bond-lead>span{box-shadow:0 0 0 4px #f6cb6580,0 0 22px #deb86066}.battle-token.airborne>span{outline:1px solid #b6e9ff77;outline-offset:5px}.battle-token.acting>span,.battle-token.partner-acting>span{animation:actor-ready 1.2s ease-out}.battle-token.targeted>span{animation:target-recoil 550ms ease-out}.battle-token.out{opacity:.24;filter:grayscale(1)}.battle-token.out>span{box-shadow:none}.battle-stage[data-density="dense"] .battle-token>span{width:28px;height:28px;font-size:10px}.battle-stage[data-density="dense"] .battle-token>small{font-size:12px;max-width:70px}.battle-stage[data-density="dense"] .battle-token.kind-boss>span{width:70px;height:70px}
.spatial-effects{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.area-warning{fill:hsl(var(--effect-hue) 85% 55% / .11);stroke:hsl(var(--effect-hue) 83% 71% / .85);stroke-width:.4;stroke-dasharray:1.7 1.2;animation:area-breathe 1.1s ease-in-out infinite}.area-impact{fill:hsl(var(--effect-hue) 85% 65% / .28);stroke:hsl(var(--effect-hue) 95% 87%);stroke-width:.8;animation:area-release 1.15s ease-out both}.strike-trail{fill:none;stroke:#e1c7a3;stroke-width:.55;stroke-linecap:round;stroke-dasharray:130;stroke-dashoffset:130;animation:trail-travel .55s ease-out forwards;filter:drop-shadow(0 0 3px #edc97a)}.trail-heat{stroke:#f0a774;stroke-width:1.2}.trail-temporal{stroke:#d4bce8;stroke-dasharray:1 2;animation:time-line 1.1s steps(4,end)}.trail-projectile{stroke-width:.25;stroke:#e9ece0}.trail-resonance{stroke:#88ddd6;stroke-width:1;stroke-dasharray:1.3 1}.trail-spatial{stroke:#a2dff3;stroke-width:.7}.trail-water{stroke:#76c7e8;stroke-width:1.4}.trail-gravity{stroke:#a397b3;stroke-width:1.8}.trail-binding{stroke-dasharray:1 1;stroke:#d1d691}.team-trail{stroke:#a4f8ca;animation-delay:.2s}.contact-ring{fill:none;stroke:#f3d7a1;stroke-width:.4;transform-box:fill-box;transform-origin:center;animation:contact-burst .85s ease-out both}.movement-trace{stroke:#d5e2db44;stroke-width:.25;fill:none;stroke-dasharray:.7 1.2}.trace-rift{stroke:#98daffbb;stroke-width:.45;stroke-dasharray:1 3}.departure-ring{fill:none;stroke:#adcbe2;stroke-width:.4;animation:contact-burst 1s ease-out both}.restoration-trail{fill:none;stroke:#94e2ba;stroke-width:.65;stroke-dasharray:1 1;animation:area-breathe 1.2s ease-in-out}.battle-scar{fill:#0303039c;stroke:#bebbb130;stroke-width:.3}.scar-heat{fill:#3a120ad9;stroke:#d4784466}.scar-water{fill:#336e8938;stroke:#81ccd766}.scar-binding{stroke:#91b7c977;stroke-dasharray:.5 1}.battle-number{position:absolute;transform:translate(-50%,-80%);font:600 clamp(16px,2vw,27px)/1.2 Georgia,serif;color:#ffe0c4;text-shadow:0 2px 6px #000;animation:number-rise 1.8s ease-out both}.battle-number.restored{color:#a7f1bb}
.battle-boss-hud:empty{display:none}.raid-health{padding:20px 24px;background:linear-gradient(110deg,#190e0d,#101e22);border:1px solid #98794d66;border-bottom:0;border-radius:8px 8px 0 0}.raid-health>div{display:flex;align-items:baseline;gap:16px}.raid-health strong{font:600 clamp(1.3rem,2.5vw,2rem)/1.2 Georgia,serif;color:#ecd6b4}.raid-health>div>span{font-size:.75rem;color:#b49d84;text-transform:uppercase;letter-spacing:.09em}.raid-health b{margin-left:auto;font-size:1rem;color:#edd0b1;font-variant-numeric:tabular-nums}.raid-health b small{font-size:.875rem;color:#ad9883}.raid-meter{height:9px;border:1px solid #776342;display:block;margin:14px 0 9px;background:#04070a;overflow:hidden}.raid-meter>i{display:block;height:100%;background:linear-gradient(90deg,#9e392e,#d39355,#efd0a1);transition:width .7s}.raid-health footer{display:flex;gap:20px;justify-content:space-between;color:#c3b398;font-size:.75rem}.raid-health footer>span:last-child{max-width:55%;text-align:right}
.battle-domain-label{position:absolute;top:53px;left:22px;z-index:7;max-width:45%;padding:10px 14px;background:#061018d9;border-left:2px solid #c2ab78;pointer-events:none}.battle-domain-label:empty{display:none}.battle-domain-label>span,.battle-domain-label>small{display:block;font-size:.75rem;color:#c3be9c}.battle-domain-label>strong{display:block;font:600 1rem/1.4 Georgia,serif;color:#eddec4}.battle-dialogue{position:absolute;right:24px;bottom:132px;z-index:9;max-width:430px;padding:12px 18px;border-left:2px solid #ab956b;background:#080e18ed;animation:dialogue-in .35s ease}.battle-dialogue:empty{display:none}.battle-speaker{display:block;font-size:.75rem;color:#bea47d;margin-bottom:5px;letter-spacing:.05em}.battle-dialogue q{font:italic 1rem/1.55 Georgia,serif;color:#e6e5d4}.battle-action-beat{position:absolute;right:22px;top:22px;width:110px;z-index:8;color:#c8bfaa;font-size:.65rem;letter-spacing:.08em;text-align:right}.battle-action-beat>i{display:block;margin-top:7px;height:2px;background:#e1c388;transform-origin:left;animation:action-clock var(--beat-duration) linear forwards}.battle-stage-top{padding-right:150px}.battle-stage-bottom{font-size:.75rem;gap:12px}.battle-moment{background:linear-gradient(0deg,#071017fa,#071017da 75%,transparent);padding:30px 24px 20px}.battle-moment h3{font-size:clamp(1.05rem,2.2vw,1.65rem);line-height:1.25;margin:8px 0}.battle-moment p{font-size:.875rem;line-height:1.5;margin:0;color:#c5cbbd;max-width:800px}.battle-moment>.eyebrow{font-size:.75rem}.battle-cue-host{pointer-events:none}.battle-cue{max-width:640px;margin:115px auto 0;background:linear-gradient(120deg,#07111bed,#142025e8);backdrop-filter:blur(8px)}.cue-heading{font-size:.875rem}.cue-cast strong{font-size:clamp(1.1rem,2.7vw,2rem)}.battle-cue p{font-size:.875rem}.battle-stage[data-type="phase"] .battle-cue{border-color:#e0b27a;box-shadow:0 0 75px #b0583544}.battle-stage[data-finisher="brutal"] .contact-ring{stroke-width:1.6}.battle-stage[data-finisher="brutal"] .battle-moment{border-top:2px solid #e6b17c}.battle-stage[data-finisher="brutal"]{animation:finish-impact .36s ease-out}.battle-stage[data-finisher="standard"] .battle-cue-host{display:none}
.battle-health-list{max-height:350px;overflow:auto;overscroll-behavior:contain}.battle-health>div>strong,.battle-health>div>span{font-size:.875rem}.battle-small-meters,.battle-health>small{font-size:.75rem}.battle-statuses{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.battle-statuses span{padding:3px 6px;font-size:.75rem;border:1px solid #93866255;border-radius:3px;color:#cfbaa0}.battle-live-feed p{font-size:.875rem}.battle-encounter-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:25px 0}.battle-encounter-totals>div{padding:15px;border-left:1px solid #827b5555}.battle-encounter-totals b{display:block;color:#d7c493;font:1.8rem Georgia,serif}.battle-encounter-totals span{font-size:.875rem;color:#a6b7ac}.battle-log article strong,.battle-log article p,.battle-analysis p,.battle-analysis li,.battle-table-wrap table{font-size:.875rem}.battle-result>p:not(.battle-victory-scene){font-size:1rem}.battle-path{display:none}
.combat-analysis-panel{border:1px solid #8b98774d;border-radius:9px;overflow:hidden;margin:0 0 38px;background:#0b171c}.combat-profile-heading{display:grid;grid-template-columns:minmax(130px,32%) 1fr;gap:28px;align-items:center;padding:24px}.combat-profile-heading:not(:has(figure)){grid-template-columns:1fr}.combat-profile-heading figure{margin:0;align-self:stretch}.combat-profile-heading img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:5px}.combat-profile-heading figcaption{font-size:.75rem;color:#9eafa1;margin-top:7px}.combat-profile-heading h2{font-size:clamp(1.6rem,3vw,2.5rem);margin:8px 0}.combat-profile-heading p{font-size:1rem;line-height:1.65}.combat-profile-heading .button{font-size:.875rem}.combat-facts{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:0 24px 24px;gap:0 26px}.combat-facts>div{padding:17px 0;border-top:1px solid #adb48c2a}.combat-facts dt{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:#c7b88b}.combat-facts dd{margin:7px 0 0;font-size:.9375rem;line-height:1.6;color:#bacfc6}.combat-analysis-panel>.lab-fineprint{padding:0 24px 20px;font-size:.75rem}.combat-phase-list{display:flex;flex-wrap:wrap;gap:12px;padding:0 24px}.combat-phase-list span{padding:6px 10px;border:1px solid #ba9d6655;font-size:.8rem;color:#d0bc99}
.is-paused .battle-fx-plane *,.is-paused .battle-token *,.is-paused .battle-action-beat *{animation-play-state:paused!important}.minimal-hud .battle-hud,.minimal-hud .battle-live-feed,.minimal-hud .battle-dialogue{display:none}
@keyframes actor-ready{0%{filter:brightness(1)}25%{filter:brightness(1.7);box-shadow:0 0 18px hsl(var(--fighter-hue) 80% 65% / .7)}100%{filter:brightness(1)}}
@keyframes target-recoil{0%,100%{translate:0 0}30%{translate:5px 3px;filter:brightness(1.5)}}
@keyframes area-breathe{50%{fill-opacity:.4;stroke-opacity:.5}}
@keyframes area-release{0%{opacity:0;stroke-width:2}18%{opacity:1}100%{opacity:0;stroke-width:.15}}
@keyframes trail-travel{65%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:.12}}
@keyframes time-line{0%,45%{opacity:.1}50%{opacity:1}100%{opacity:.1}}
@keyframes contact-burst{0%{scale:.3;opacity:1}100%{scale:2.5;opacity:0}}
@keyframes number-rise{0%{opacity:0;translate:0 8px}15%{opacity:1}70%{opacity:1}100%{opacity:0;translate:0 -45px}}
@keyframes action-clock{from{scale:1 1}to{scale:0 1}}
@keyframes dialogue-in{from{opacity:0;translate:10px 0}to{opacity:1;translate:0 0}}
@keyframes finish-impact{20%{translate:-3px 2px}50%{translate:3px -1px}100%{translate:0 0}}
@media(max-width:750px){.battle-raid-banner{padding:24px}.battle-raid-banner>span{display:none}.battle-stage{min-height:570px;height:70vh;max-height:760px}.battle-token-field,.battle-fx-plane{inset:80px 7% 185px}.battle-token>span{width:39px;height:39px}.battle-token.kind-boss>span{width:74px;height:74px}.battle-token>small{font-size:.75rem;max-width:83px}.battle-dialogue{bottom:157px;right:12px;max-width:75%;padding:8px 12px}.battle-dialogue q{font-size:.875rem}.battle-domain-label{top:50px;left:12px;max-width:52%;padding:7px 10px}.battle-domain-label>strong{font-size:.875rem}.raid-health{padding:16px}.raid-health>div{flex-wrap:wrap;gap:6px 12px}.raid-health>div>span{width:100%}.raid-health footer{font-size:.75rem}.raid-health footer>span:last-child{max-width:45%}.battle-encounter-totals{grid-template-columns:1fr 1fr}.battle-cue{margin:110px 12px 0}.battle-cue p{display:none}.battle-moment{padding:28px 15px 25px}.battle-moment p{font-size:.8125rem}.battle-stage-bottom{font-size:.65rem}.battle-stage-bottom>span:last-child{display:none}.combat-profile-heading{gap:18px;padding:18px;grid-template-columns:1fr}.combat-profile-heading img{max-width:380px;margin:auto}.combat-facts{grid-template-columns:1fr;padding:0 18px 18px}.battle-hud{grid-template-columns:1fr}.battle-health-list{max-height:240px}.battle-sigil{width:48px;height:58px}}
@media(prefers-reduced-motion:reduce){.battle-stage *,.combat-analysis-panel *{animation:none!important;transition:none!important}.battle-token-field,.battle-fx-plane{transform:none!important}.battle-stage{animation:none!important}}
html[data-motion="quiet"] .battle-stage *,html[data-motion="quiet"] .battle-stage{animation:none!important;transition:none!important}html[data-motion="quiet"] .battle-token-field,html[data-motion="quiet"] .battle-fx-plane{transform:none!important}

.battle-token[hidden]{display:none!important}

/* Simulation Extras: quiet HUD, persistent tactical ground, expressive transformation sequences. */
.simulation-extras{margin:24px 0;padding:20px 24px;background:linear-gradient(110deg,#121b20,#0a1619);border-left:3px solid #d5ae69;display:flex;justify-content:space-between;align-items:center;gap:24px}.simulation-extras h3{font-size:1rem;letter-spacing:.12em;color:#e7c687;margin:0 0 8px}.simulation-extras p{font-size:.9375rem;line-height:1.6;margin:0;max-width:720px}.simulation-extras .battle-check{flex-shrink:0}
.battle-stage[data-camera-mode] .battle-token-field,.battle-stage[data-camera-mode] .battle-fx-plane,.battle-stage[data-camera-mode] .battle-ground{transform:scale(var(--shot-zoom,1));transform-origin:var(--camera-x,50%) var(--camera-y,50%);transition:transform 1.4s cubic-bezier(.2,.65,.3,1),transform-origin 1.4s ease}.battle-stage[data-camera-mode="fixed"] .battle-token-field,.battle-stage[data-camera-mode="fixed"] .battle-fx-plane,.battle-stage[data-camera-mode="fixed"] .battle-ground{transform:none!important}.battle-ground{position:absolute;inset:75px 5% 170px;z-index:3;pointer-events:none}.arena-destruction{height:100%;width:100%;overflow:visible}.arena-obstacle{fill:#6a7b7b;stroke:#bfd0bb;stroke-width:.22}.arena-rubble{fill:#373e3e;stroke:#b0a485;stroke-width:.6}.terrain-mark{stroke-width:.35;fill:#020709a6;stroke:#ad9a7770}.terrain-crater{stroke-width:1;stroke:#514d4b;fill:#020405c9}.terrain-fracture{fill:none;stroke:#090e13;stroke-width:1;filter:drop-shadow(0 .2px .1px #cbbb8866)}.terrain-fire{fill:#d451213d;stroke:#ffa954a0;filter:drop-shadow(0 0 3px #ff7a2444)}.terrain-ice{fill:#a7e7ff4d;stroke:#cceaffc4}.terrain-mine{fill:#ba8de136;stroke:#f2caff;stroke-dasharray:1 2}
.battle-token.awakened>span{border-width:2px;box-shadow:0 0 16px hsl(var(--fighter-hue) 80% 65%/.35),inset 0 0 13px hsl(var(--fighter-hue) 70% 70%/.15)}.battle-token[data-motif="fists"]>span{border-color:#7bcaff;box-shadow:0 0 25px #319cff66}.battle-token[data-motif="armor"]>span{border-radius:5px;border-width:4px}.battle-token[data-motif="clock"]>span{border-style:dashed;border-color:#ffe599}.battle-token[data-motif="berserk"]>span{border-color:#ff7272}.battle-token[data-motif="spectrum"]>span{border-color:#d995f5;box-shadow:7px 0 18px #40cedb66,-7px 0 18px #e657ac66}.battle-token[data-motif="sixfold"]>span{border-style:double;border-width:5px}.battle-token[data-motif="rejection"]>span{outline:4px solid #c5dcf222;outline-offset:8px}
.battle-transformation{position:absolute;inset:0;z-index:15;pointer-events:none}.battle-transformation:empty{display:none}.awakening-sequence{position:absolute;inset:0;overflow:hidden;background:linear-gradient(90deg,#050912f5,#081118b8);color:#f3ebd9;animation:awake-in .6s ease both}.awakening-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 72% 44%,hsl(var(--awake-hue) 80% 55%/.22),transparent 60%);animation:awake-wash 5s ease both}.awakening-geometry{position:absolute;width:min(65%,500px);height:90%;right:0;top:0;overflow:visible;stroke:hsl(var(--awake-hue) 75% 75%);stroke-width:.25;fill:none;opacity:.7}.awakening-orbit{transform-origin:50px 50px;animation:awake-orbit 4s ease both;animation-delay:calc(var(--i)*100ms);stroke-dasharray:calc(15 + var(--i)*5) 3}.awakening-ray{stroke-dasharray:60;stroke-dashoffset:60;animation:awake-ray 2s ease forwards;animation-delay:calc(var(--i)*100ms)}.awakening-fragment{fill:hsl(var(--awake-hue) 70% 65%/.1);animation:awake-fragment 3.5s ease both;animation-delay:calc(var(--i)*45ms)}.awakening-boundary{transform-origin:center;animation:awake-orbit 4s ease both;stroke-width:.6}.awakening-core{fill:hsl(var(--awake-hue) 90% 80%/.12);animation:awake-core 4s ease both}.awakening-caption{position:absolute;left:7%;right:7%;top:22%;max-width:80%;text-shadow:0 3px 20px #000}.awakening-caption .eyebrow{font-size:.875rem;letter-spacing:.18em;color:hsl(var(--awake-hue) 75% 78%)}.awakening-caption h3{font:600 clamp(1.9rem,4.6vw,3.7rem)/1.07 Georgia,serif;max-width:760px;margin:18px 0 22px;letter-spacing:-.03em;animation:awake-title 1.2s .35s both}.awakening-beats{position:relative;min-height:52px;margin-bottom:18px}.awakening-beats>span{position:absolute;inset:0;font-size:1.0625rem;line-height:1.5;opacity:0;animation:awake-beat 1.65s forwards;animation-delay:calc(.3s + var(--beat)*1.5s)}.awakening-beats>span:last-child{animation-name:awake-last}.awakening-caption q{display:block;font:italic 1.1rem/1.6 Georgia,serif;max-width:620px}.awakening-caption>p{font-size:.875rem;line-height:1.65;color:#bdcbd2;max-width:680px;margin-top:24px}.awakening-interpretation{position:absolute;bottom:26px;left:7%;font-size:.75rem;color:#a4b3bf}.motif-fists{--awake-hue:208!important}.motif-blossom{--awake-hue:277!important}.motif-clock,.motif-sun,.motif-sixfold{--awake-hue:44!important}.motif-aurora .awakening-wash,.motif-spectrum .awakening-wash{background:conic-gradient(from 30deg at 80% 40%,#34ae9833,#714baa44,#be697933,#37aa8833);filter:blur(30px)}.motif-fracture .awakening-geometry{stroke-dasharray:2 5;animation:fracture-shift 4s steps(4) both}.motif-armor .awakening-fragment{stroke-width:1.5;fill:#83989c33}.motif-pact .awakening-fragment{stroke-width:.8;stroke-dasharray:3 2}.motif-stillwater .awakening-geometry{transform:scaleY(.45);top:25%}.motif-sanctuary .awakening-boundary,.motif-icon .awakening-boundary{rx:20px}.motif-bass .awakening-orbit{stroke-width:.9;animation:awake-bass 1.5s ease 2}.motif-triad .awakening-fragment{stroke-width:1.3}.motif-maw .awakening-fragment,.motif-tendrils .awakening-fragment{stroke-width:.7;fill:#102e2955}.motif-flesh .awakening-geometry{stroke-width:1.6;opacity:.35}.motif-hunt .awakening-orbit{stroke-dasharray:2 12}.motif-chains .awakening-ray{stroke-dasharray:1 1;stroke-width:1}.motif-courses .awakening-boundary{stroke-dasharray:4 1}.motif-mirrors .awakening-fragment{fill:#c09bdd22;stroke-width:.5}.motif-overload .awakening-wash{background:radial-gradient(ellipse at 80% 45%,#fff4d277,#f45c2522,transparent 70%)}
.battle-stage:has(.awakening-sequence) .battle-cue-host{display:none}.battle-cue-host{inset:52px 20px auto}.battle-cue{margin:0 auto;max-width:640px;padding:12px 20px;animation:cue-enter .45s both,cue-away .6s 2s forwards}.battle-cue .cue-lines,.battle-cue>p{display:none}.battle-cue .cue-seal{font-size:1.8rem;min-width:28px;width:32px;height:32px}.battle-cue .cue-cast strong{font-size:clamp(1rem,2vw,1.45rem)}.battle-cue .cue-heading{font-size:.75rem}.battle-dialogue{max-width:460px;bottom:154px;display:grid;gap:10px}.battle-dialogue>div+div{padding-top:8px;border-top:1px solid #ab956b33}.battle-dialogue em{font-size:.875rem;line-height:1.5}.battle-stage .major-moment{animation:none}.battle-stage[data-finisher="brutal"]{animation:none}.battle-stage[data-type="galaxy-impact"]{box-shadow:inset 0 0 130px #fcbd6355}.galaxy-perimeter{fill:#e38b201a;stroke:#ffc76c;stroke-width:.35;stroke-dasharray:2 1}.galaxy-lethal{fill:#fd624525;stroke:#ff7c65;stroke-width:.65}.galaxy-sky{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 50% -20%,#fff4c866,#816abb33 40%,transparent 75%)}.galaxy-sky i{position:absolute;left:calc(30% + var(--i,1)*8%);top:0;width:2px;height:75%;background:linear-gradient(transparent,#aabdff88,#f9dda599,transparent);transform:rotate(12deg);filter:blur(1px)}.galaxy-sky i:nth-child(2){left:42%;transform:rotate(-14deg);background:linear-gradient(#f0bf7666,transparent)}.galaxy-sky i:nth-child(3){left:60%;transform:rotate(22deg)}.galaxy-sky i:nth-child(4){left:72%;transform:rotate(-32deg)}.galaxy-detonation{background:radial-gradient(ellipse,#fff1c677,#ee945144,transparent 70%);animation:detonation-resolve 3s both}.galaxy-countdown{position:absolute;left:50%;top:75px;transform:translateX(-50%);text-align:center;z-index:12;padding:12px 24px;background:#130f13e8;border:1px solid #dfac6766;pointer-events:none}.galaxy-countdown>span,.galaxy-countdown>small{display:block;font-size:.75rem;letter-spacing:.08em;color:#f2c889}.galaxy-countdown>strong{font:2rem/1.2 Georgia,serif;color:#fff1d6}.battle-command-panel{padding:22px;background:#0c1920;border:1px solid #b59a6666;margin:16px 0}.battle-command-panel[hidden]{display:none}.command-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.command-head h3{font-size:1.1rem;margin:0}.command-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.command-grid label,.command-position label{display:grid;gap:7px;font-size:.875rem;color:#bfcfca}.command-grid select,.command-position input{background:#142831;color:#eceddf;border:1px solid #8a9c8855;border-radius:4px;padding:11px;min-width:0;width:100%;font-size:1rem}.command-position{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.command-position label{width:100px}.command-position p{max-width:400px;font-size:.875rem}.command-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.command-hint,.command-queue{font-size:.875rem;line-height:1.6;color:#c9be9c}.command-open .battle-token-field{cursor:crosshair}.command-open .battle-token{cursor:pointer}.command-open .battle-token:hover>span{outline:2px solid #edce83;outline-offset:3px}.command-queue{border-top:1px solid #879a7733;padding-top:12px}.aftermath-conversation{display:grid;gap:18px;margin:24px 0;padding:24px;background:#0a171e;border-left:2px solid #c3a36a}.aftermath-conversation>div>span{display:block;font-size:.875rem;color:#c7b37e;margin-bottom:7px}.aftermath-conversation q{font:italic 1.05rem/1.65 Georgia,serif}.aftermath-action p{font-size:.9375rem;line-height:1.7;color:#aec1b9}.battle-controls>label select{max-width:150px}.battle-camera-caption{font-size:.75rem;color:#a4b9b4}
@keyframes awake-in{from{opacity:0}to{opacity:1}}@keyframes awake-title{from{opacity:0;translate:0 18px;filter:blur(7px)}to{opacity:1;translate:0 0;filter:blur(0)}}@keyframes awake-wash{0%{opacity:0}30%{opacity:1}100%{opacity:.65}}@keyframes awake-orbit{from{scale:.25;rotate:-80deg;opacity:0}to{scale:1;rotate:20deg;opacity:.7}}@keyframes awake-ray{to{stroke-dashoffset:0}}@keyframes awake-fragment{0%{opacity:0;scale:.5}45%{opacity:1}100%{opacity:.5;scale:1.1}}@keyframes awake-core{0%{scale:.1;opacity:0}50%{scale:1;opacity:1}100%{scale:2;opacity:.3}}@keyframes awake-beat{0%{opacity:0;translate:0 8px}15%,75%{opacity:1;translate:0 0}100%{opacity:0}}@keyframes awake-last{0%{opacity:0;translate:0 8px}20%,100%{opacity:1;translate:0 0}}@keyframes awake-bass{0%{scale:.5;opacity:0}30%{opacity:1}100%{scale:1.3;opacity:0}}@keyframes fracture-shift{0%,100%{translate:0 0}20%{translate:4px 0}40%{translate:-4px 2px}60%{translate:0 -3px}}@keyframes cue-away{to{opacity:0;translate:0 -8px}}@keyframes detonation-resolve{from{opacity:1;scale:.6}to{opacity:.12;scale:1.3}}
@media(max-width:750px){.simulation-extras{display:block;padding:18px}.simulation-extras .battle-check{margin-top:14px}.battle-ground{inset:80px 7% 185px}.awakening-caption{top:20%;max-width:90%}.awakening-caption h3{font-size:2rem}.awakening-caption q{font-size:1rem}.awakening-caption>p{font-size:.8125rem;margin-top:14px}.awakening-beats{min-height:64px}.awakening-beats>span{font-size:.9375rem}.awakening-geometry{width:100%;opacity:.35;right:-25%}.command-grid{grid-template-columns:1fr}.battle-command-panel{padding:18px}.battle-dialogue{max-width:90%;right:12px;bottom:162px;gap:5px;padding:8px 12px}.battle-dialogue .battle-speaker{font-size:.75rem}.battle-cue-host{inset:55px 12px auto}.battle-cue{width:100%;padding:10px 14px}.battle-cue .cue-heading{font-size:.75rem}.galaxy-countdown{top:70px;width:70%}.command-head{align-items:start}.aftermath-conversation{padding:18px}}
@media(prefers-reduced-motion:reduce){.awakening-beats>span{display:none}.awakening-beats>span:last-child{display:block;opacity:1}.battle-stage[data-camera-mode] .battle-ground{transform:none!important}.awakening-caption h3{opacity:1;filter:none}.awakening-ray{stroke-dashoffset:0}.awakening-fragment,.awakening-orbit{opacity:.5}}
html[data-motion="quiet"] .awakening-beats>span{display:none}html[data-motion="quiet"] .awakening-beats>span:last-child{display:block;opacity:1}html[data-motion="quiet"] .battle-ground{transform:none!important}
/* Reserve motion for the subject; the interface itself stays steady. */
.battle-stage[data-type]{animation:none}.battle-stage[data-type="finish"] .battle-token.targeted>span{animation:target-recoil .8s ease both}.battle-stage[data-type="galaxy-impact"] .battle-token.targeted>span{animation:target-recoil 1s ease both}
.command-position[hidden]{display:none}
.battle-stage[data-camera-mode="cinematic"][data-shot="track"] .battle-token-field,.battle-stage[data-camera-mode="cinematic"][data-shot="track"] .battle-fx-plane,.battle-stage[data-camera-mode="cinematic"][data-shot="track"] .battle-ground{animation:camera-track var(--beat-duration) cubic-bezier(.2,.6,.3,1) both}.battle-stage[data-camera-mode="cinematic"][data-shot="clash"] .battle-token-field,.battle-stage[data-camera-mode="cinematic"][data-shot="clash"] .battle-fx-plane,.battle-stage[data-camera-mode="cinematic"][data-shot="clash"] .battle-ground{animation:camera-clash var(--beat-duration) ease both}.battle-stage[data-type="galaxy-descent"]:before{filter:saturate(.35) brightness(.3);transition:filter 2s ease}
@keyframes camera-track{0%,20%{transform-origin:var(--track-x) var(--track-y)}80%,100%{transform-origin:var(--track-tx) var(--track-ty)}}@keyframes camera-clash{0%,100%{transform:scale(var(--shot-zoom)) rotate(0)}50%{transform:scale(var(--shot-zoom)) rotate(.6deg)}}
@media(max-width:750px){.awakening-caption{top:16%}.awakening-caption h3{font-size:clamp(1.65rem,5vw,2rem)}.awakening-interpretation{bottom:16px}.awakening-caption>p{max-width:90%}}
/* Tactical cover footprints: let the arena remain visible underneath. */
.arena-obstacle{fill:#07101420;stroke:#b9c8bc65;stroke-width:.2;stroke-dasharray:1 1;rx:.5}
.cover-corners{fill:none;stroke:#bfc9b68c;stroke-width:.3}
.cover-label{position:absolute;transform:translate(-50%,-50%);color:#d4dcc6b3;font:600 8px/1.3 var(--font-mono,monospace);letter-spacing:.07em;text-shadow:0 1px 3px #000;white-space:nowrap;pointer-events:none}
.cover-label small{display:block;text-align:center;font-size:7px;opacity:.65}
[data-density="dense"] .cover-label{display:none}
/* A single local contact frame, not a full-screen flash or repeated strobe. */
.combat-contact{position:absolute;width:clamp(65px,13vw,150px);aspect-ratio:1;transform:translate(-50%,-50%);opacity:0;animation:contact-frame .4s var(--contact-delay,120ms) ease-out both;pointer-events:none;z-index:8}
.combat-contact i,.combat-contact b,.combat-contact em{position:absolute;inset:0;background:#f2d295;clip-path:polygon(50% 0,55% 36%,89% 10%,64% 45%,100% 50%,63% 56%,91% 91%,56% 64%,50% 100%,44% 64%,10% 90%,35% 55%,0 50%,35% 44%,10% 10%,45% 36%)}
.combat-contact b{inset:22%;background:#101516;transform:rotate(17deg)}
.combat-contact em{inset:8%;border:2px solid #ffe9b080;border-radius:50%;background:none;clip-path:none}
.contact-finisher{width:clamp(110px,22vw,250px)}
.contact-finisher i{background:#f2b36a}
.last-stand-cue{position:absolute;left:50%;top:8%;transform:translateX(-50%);display:grid;text-align:center;gap:4px;padding:13px 28px;max-width:85%;background:linear-gradient(90deg,transparent,#211014eb 20%,#211014eb 80%,transparent);border-block:1px solid #de957340;color:#fff0dd;z-index:9;pointer-events:none;animation:last-stand-reveal 1.65s ease-out both}
.last-stand-cue span{font:700 10px/1.3 var(--font-mono,monospace);letter-spacing:.3em;color:#efa677}
.last-stand-cue strong{font-size:clamp(15px,2vw,23px)}
.last-stand-cue small{font-size:10px;color:#ccbeb7}
.last-stand-cue.still{animation:none}
@keyframes contact-frame{0%{opacity:0;transform:translate(-50%,-50%) scale(.75)}8%,28%{opacity:.9;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.17)}}
@keyframes last-stand-reveal{0%{opacity:0;filter:blur(4px)}18%,80%{opacity:1;filter:none}100%{opacity:0;filter:none}}
.is-paused .combat-contact,.is-paused .last-stand-cue{animation-play-state:paused}
@media(max-width:600px){.cover-label{font-size:6px;letter-spacing:0}.cover-label small{display:none}.last-stand-cue{padding:9px 14px}.last-stand-cue small{font-size:9px}}
@media(prefers-reduced-motion:reduce){.combat-contact{display:none}.last-stand-cue{animation:none}}
html[data-motion="quiet"] .combat-contact{display:none}
html[data-motion="quiet"] .last-stand-cue{animation:none}
/* Painted playable environments share the same tactical coordinate system. */
.battle-stage:before{background-image:var(--battle-map);background-size:var(--map-size,cover);background-position:var(--map-x,0%) var(--map-y,0%);filter:saturate(.88) brightness(.78)}
.battle-stage[data-light="night"]:before{filter:saturate(.65) brightness(.48)}
.battle-stage[data-light="noon"]:before{filter:saturate(.95) brightness(.88)}
.battle-stage[data-damage="3"]:before{filter:saturate(.55) brightness(.67)}
.battle-stage[data-type="result"]:before{filter:saturate(.7) brightness(.68)}
.battle-stage-light{opacity:.48}.battle-stage:after{opacity:.24}
.terrain-mark{fill:#12171b22;stroke:#bba88633;stroke-width:.2}.terrain-crater{fill:#10171938;stroke:#c3b79b45;stroke-width:.4}.terrain-fracture{stroke:#131a20a0;stroke-width:.45;filter:none}.terrain-fire{fill:#bf4a2428;stroke:#e99a4f80}.terrain-ice{fill:#b1e7f526;stroke:#ddf9ff8c}.battle-scar{opacity:.18}
.arena-obstacle{fill:#07101412;stroke:#c3d7c67a}.cover-label{color:#e5f0d3c9;text-shadow:0 1px 4px #020708}.battle-token.out{opacity:.24}
/* Item art rides the fighter token; attack trails use the resolved endpoints. */
.weapon-host{position:absolute;left:0;top:0;pointer-events:none;width:100%;height:44px}
.weapon-arm{position:absolute;left:48%;top:20px;width:70px;height:70px;transform:translateY(-50%) rotate(var(--weapon-angle,0deg));transform-origin:0 50%;z-index:2;pointer-events:none}
.weapon-sprite{display:block;width:100%;height:100%;background-image:var(--weapon-atlas);background-size:var(--weapon-size,600% 400%);background-position:var(--weapon-x) var(--weapon-y);background-repeat:no-repeat;transform:rotate(var(--sprite-tilt,0deg));transform-origin:18% 50%;filter:drop-shadow(0 2px 2px #000c)}
.weapon-arm .weapon-sprite{opacity:.9}.weapon-active .weapon-sprite{animation:weapon-swing min(850ms,var(--beat-duration,850ms)) cubic-bezier(.16,.8,.18,1) both}
.weapon-shot.weapon-active .weapon-sprite{animation-name:weapon-recoil}.weapon-punch.weapon-active .weapon-sprite,.weapon-thrust.weapon-active .weapon-sprite{animation-name:weapon-thrust}.weapon-spin.weapon-active .weapon-sprite{animation-name:weapon-spin}.weapon-cast.weapon-active .weapon-sprite{animation-name:weapon-channel}
.weapon-cast{width:57px;height:57px}.weapon-none{width:44px;height:44px;opacity:.6}.weapon-punch{width:48px;height:48px}
.battle-token.weapon-striking{animation:token-lunge min(900ms,var(--beat-duration,900ms)) ease-in-out both;z-index:7}
.battle-token>span{position:relative;z-index:3;background:#0a1727ed;box-shadow:0 2px 10px #000a;border-radius:50%;transform:none}
.battle-token>small{position:relative;z-index:5;text-shadow:0 2px 5px #000;background:#08111dcc;border-radius:3px;padding:3px 5px}
.battle-token>i{z-index:6}.battle-token.kind-boss>.weapon-host .weapon-arm{width:96px;height:96px}
.weapon-effects{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;--weapon-hue:45}
.weapon-effects path,.weapon-effects ellipse{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}
.projectile-flight{stroke:hsl(var(--weapon-hue) 90% 80%);stroke-width:3;stroke-dasharray:8 100;stroke-dashoffset:8;filter:drop-shadow(0 0 3px hsl(var(--weapon-hue) 90% 65%));animation:shot-travel var(--travel-time,260ms) 45ms linear both}
.projectile-shotgun{stroke-width:6;stroke-dasharray:3 4 3 90}.projectile-fire,.projectile-water{stroke-width:7}.projectile-railgun{stroke-width:5}.projectile-ice{stroke-dasharray:2 2 2 94}
.muzzle-bloom{fill:#f4deb3;animation:muzzle-pop .18s ease-out both;vector-effect:non-scaling-stroke}
.weapon-slash{stroke:#f8e6c0;stroke-width:5;filter:drop-shadow(0 0 4px hsl(var(--weapon-hue) 80% 68%));stroke-dasharray:45;animation:slash-draw .42s 70ms ease-out both}
.blunt-trace{stroke-width:9;stroke:#e6c89c;stroke-dasharray:8 4;opacity:.5}.clash-cross{stroke:#ffe1a4;stroke-width:4;animation:clash-cross .65s ease-out both}.clash-pressure{stroke:#e9b98080;stroke-width:2;animation:pressure-release .8s ease-out both;transform-box:fill-box;transform-origin:center}
.weapon-still .projectile-flight{animation:none;stroke-dasharray:2 4;stroke-dashoffset:0;opacity:.55}.weapon-still .weapon-slash{animation:none;opacity:.4}.weapon-still .muzzle-bloom,.weapon-still .clash-cross,.weapon-still .clash-pressure{display:none}
.battle-clash-host{position:absolute;inset:0;z-index:11;pointer-events:none;overflow:hidden}
.weapon-clash-tableau{position:absolute;inset:0;background:radial-gradient(ellipse at center,#07111fcc 0%,#030812bb 65%);animation:clash-tableau 1.8s ease both;pointer-events:none}
.clash-letterbox{position:absolute;inset:0;border-top:35px solid #03060c;border-bottom:45px solid #03060c}
.clash-weapon{position:absolute;top:calc(40% - 110px);width:240px;height:240px;filter:drop-shadow(0 0 12px #cea26850)}
.clash-left{left:calc(50% - 190px);animation:clash-left 1.7s cubic-bezier(.14,.82,.2,1) both}.clash-right{right:calc(50% - 190px);animation:clash-right 1.7s cubic-bezier(.14,.82,.2,1) both}
.clash-seam{position:absolute;left:50%;top:15%;height:50%;width:2px;transform:rotate(24deg);background:linear-gradient(transparent,#ffe3a7,transparent);box-shadow:0 0 35px 6px #d9a55577;animation:clash-cross .8s ease-out both}
.clash-caption{position:absolute;top:68%;left:10%;right:10%;display:grid;gap:7px;text-align:center;color:#fff0d6;text-shadow:0 2px 6px #000}.clash-caption>span{font:700 12px/1.3 monospace;letter-spacing:.3em;color:#edc280}.clash-caption strong{font:600 clamp(16px,2vw,27px)/1.4 Georgia,serif}.clash-caption i{font-style:normal;color:#cdae76;margin:0 8px}.clash-caption small{font-size:13px;color:#d2c4a9}
.is-paused .weapon-striking,.is-paused .battle-clash-host *{animation-play-state:paused!important}
@keyframes weapon-swing{0%{transform:rotate(calc(var(--sprite-tilt) - 65deg))}28%,38%{transform:rotate(calc(var(--sprite-tilt) + 45deg))}100%{transform:rotate(var(--sprite-tilt))}}
@keyframes weapon-recoil{0%,100%{transform:translateX(0) rotate(var(--sprite-tilt))}15%{transform:translateX(-12px) rotate(calc(var(--sprite-tilt) - 8deg))}35%{transform:translateX(-3px) rotate(var(--sprite-tilt))}}
@keyframes weapon-thrust{0%,100%{transform:translateX(0) rotate(var(--sprite-tilt))}24%,35%{transform:translateX(19px) rotate(var(--sprite-tilt))}}
@keyframes weapon-spin{0%{transform:rotate(calc(var(--sprite-tilt) - 100deg))}35%{transform:rotate(calc(var(--sprite-tilt) + 100deg))}100%{transform:rotate(var(--sprite-tilt))}}
@keyframes weapon-channel{0%,100%{filter:drop-shadow(0 0 2px #deb66655)}40%{filter:drop-shadow(0 0 10px #f4d68faa);transform:translateY(-7px) rotate(var(--sprite-tilt))}}
@keyframes token-lunge{0%,100%{transform:translate(-50%,-50%)}22%,35%{transform:translate(calc(-50% + var(--lunge-x)),calc(-50% + var(--lunge-y)))}}
@keyframes shot-travel{0%{stroke-dashoffset:8;opacity:1}80%{opacity:1}100%{stroke-dashoffset:-100;opacity:0}}
@keyframes slash-draw{0%{stroke-dashoffset:45;opacity:0}20%{opacity:1}60%{stroke-dashoffset:0;opacity:.9}100%{stroke-dashoffset:-25;opacity:0}}
@keyframes muzzle-pop{0%{opacity:.9}100%{opacity:0}}
@keyframes clash-cross{0%,12%{opacity:0}25%,50%{opacity:.9}100%{opacity:0}}
@keyframes pressure-release{0%{transform:scale(.3);opacity:0}20%{opacity:.85}100%{transform:scale(1.8);opacity:0}}
@keyframes clash-tableau{0%{opacity:0}12%,70%{opacity:1}100%{opacity:0;visibility:hidden}}
@keyframes clash-left{0%{transform:translateX(-150px) rotate(-35deg)}25%,65%{transform:translateX(0) rotate(5deg)}100%{transform:translateX(-35px) rotate(-10deg)}}
@keyframes clash-right{0%{transform:translateX(150px) scaleX(-1) rotate(-35deg)}25%,65%{transform:translateX(0) scaleX(-1) rotate(5deg)}100%{transform:translateX(35px) scaleX(-1) rotate(-10deg)}}
[data-density="dense"] .weapon-arm{width:38px;height:38px;top:14px;opacity:.65}[data-density="dense"] .weapon-striking{animation:none}
@media(max-width:750px){.weapon-arm{width:51px;height:51px;top:18px}.weapon-punch{width:37px;height:37px}.clash-weapon{width:170px;height:170px;top:calc(39% - 85px)}.clash-left{left:calc(50% - 140px)}.clash-right{right:calc(50% - 140px)}.clash-caption{left:6%;right:6%;top:65%}}
@media(prefers-reduced-motion:reduce){.weapon-striking,.weapon-active .weapon-sprite{animation:none!important}.weapon-clash-tableau{display:none}.weapon-effects *{animation:none!important}.projectile-flight{stroke-dasharray:2 4;opacity:.5}}
html[data-motion="quiet"] .weapon-striking,html[data-motion="quiet"] .weapon-active .weapon-sprite{animation:none!important}html[data-motion="quiet"] .weapon-clash-tableau{display:none}
.weapon-clash-tableau{--clash-time:min(1800ms,var(--beat-duration,1800ms));animation-duration:var(--clash-time)}.clash-left,.clash-right{animation-duration:var(--clash-time)}
