/* Overall ceremony only. The shared race/camp rivalry keeps its own styling. */
.class-series-actions{position:absolute;z-index:5;right:25px;top:108px;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;max-width:90vw}.class-series-actions button{font-size:14px;background:#071e29dc}
.series-final-scene{position:fixed;inset:0;margin:0;padding:0;width:100vw;height:100svh;max-width:none;max-height:none;border:0;background:#041523;color:#fff1ca;overflow:hidden;isolation:isolate;--rift-x:50%;--final-charge:0;--final-reveal:0;--final-release:0;--final-crest-scale:.72;--final-rise:35px}
.series-final-scene::backdrop{background:#03131c}
.series-final-stage,.series-final-duel,.series-final-arena,.series-final-honors{position:absolute;inset:0}
.series-final-duel{opacity:calc(1 - var(--final-reveal));transform:scale(calc(1 + var(--final-charge)*.06));transform-origin:50% 48%}
.series-final-scene .series-tally,.series-final-scene .series-counter,.series-final-scene .series-gem[data-winner='pending'],.series-final-scene .series-victory-intro,.series-final-scene .series-victory-wave,.series-final-scene .series-crown{display:none!important}
.series-final-scene .series-progress{bottom:18%;left:50%;right:auto;transform:translateX(-50%);max-width:75%}
.series-final-scene .series-emblem{bottom:32%;width:min(75%,46vh,490px)}
.series-final-scene .series-emblem img{animation:none!important}
.series-final-scene .series-beams{filter:brightness(calc(1 + var(--final-charge)*.65));transform:scaleY(calc(1 + var(--final-charge)*.55));transform-origin:50% 43%}
.series-final-scene .series-contact{scale:calc(1 + var(--final-charge)*.45);filter:brightness(calc(1 + var(--final-charge)*.8))}
.series-final-scene .series-beam-a{opacity:calc(.45 + var(--energy-a)*.55)}
.series-final-scene .series-beam-b{opacity:calc(.45 + var(--energy-b)*.55)}
.series-final-arena{z-index:3;opacity:var(--final-reveal);overflow:hidden}
.series-final-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;filter:brightness(.8);transform:scale(calc(1.04 - var(--final-reveal)*.04))}
.series-final-atmosphere{position:absolute;inset:0;background:linear-gradient(#020c16a8,transparent 32%,transparent 65%,#020c16e8)}
.series-final-relic{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%) scale(calc(.9 + var(--final-reveal)*.1));width:min(88vw,100vh,1100px);height:83vh;object-fit:contain;filter:drop-shadow(0 14px 30px #000b);pointer-events:none}
.series-final-honors{z-index:2}
.series-final-crest{position:absolute;left:50%;top:52%;width:min(42vw,50vh,600px);aspect-ratio:192/208;transform:translate(-50%,-50%) translateY(var(--final-rise)) scale(var(--final-crest-scale));filter:drop-shadow(0 14px 22px #000b) drop-shadow(0 0 32px #9addff66)}
.series-final-crest[data-team='B']{filter:drop-shadow(0 14px 22px #000b) drop-shadow(0 0 32px #ffbf7266)}
.series-final-crest img{display:block;width:100%;height:100%;object-fit:contain}
.series-final-crest[data-honor='opponent']{left:auto;right:5%;top:auto;bottom:21%;width:min(15vw,20vh,210px);transform:none;opacity:.35;filter:grayscale(.65) drop-shadow(0 8px 16px #0009)}
.series-final-crest[data-honor='shared']{left:35%;width:min(29vw,46vh,490px)}
.series-final-crest[data-honor='shared'][data-team='B']{left:65%}
.series-final-crest[data-honor='quiet']{left:39%;width:min(20vw,28vh,300px);opacity:.35;filter:grayscale(.7)}
.series-final-crest[data-honor='quiet'][data-team='B']{left:61%}
.series-final-heading{position:absolute;top:4.5vh;left:4%;right:4%;text-align:center;z-index:9;pointer-events:none;opacity:var(--final-reveal);transform:translateY(calc(var(--final-rise)*-.35));text-shadow:0 4px 25px #000}
.series-final-heading h1{margin:0;font-family:Georgia,serif;font-weight:500;line-height:1.03}
.series-final-call{display:block;font-size:clamp(42px,6.5vw,110px);letter-spacing:.12em;margin-left:.12em;color:#fff0bb;text-shadow:0 3px 8px #271201,0 0 35px #e8c37c66}
.series-final-name{display:block;margin-top:12px;font-size:clamp(23px,3vw,44px);letter-spacing:.04em;color:#f6e7c8}
.series-final-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.series-final-rift{position:absolute;inset:0;z-index:5;pointer-events:none;mix-blend-mode:screen}
.rift-column{position:absolute;left:var(--rift-x);top:48%;width:clamp(38px,5vw,110px);height:calc(12vh + var(--final-charge)*75vh);transform:translate(-50%,-50%) scaleX(calc(.18 + var(--final-charge)*.82));opacity:calc(var(--final-release)*.95);background:linear-gradient(transparent,#a3edff55 18%,#e5fbff 45%,#fff5d2 55%,#ffc37a77 82%,transparent);filter:blur(5px);box-shadow:0 0 65px #b3edff88}
.rift-release{position:absolute;inset:-20%;opacity:calc(var(--final-release)*.72);background:radial-gradient(ellipse at var(--rift-x) 49%,#fff7d8 0%,#d8f6ffdd 8%,#a0dce775 19%,transparent 50%);transform:scale(calc(.2 + var(--final-release)*1.3))}
.rift-horizon{position:absolute;left:var(--rift-x);top:49%;width:120vw;height:clamp(4px,1.1vh,14px);transform:translate(-50%,-50%) scaleX(calc(.1 + var(--final-charge)*.9));opacity:var(--final-release);background:linear-gradient(90deg,transparent,#87dcff,#fffce2,#ffc27b,transparent);box-shadow:0 0 30px #e1f9ff,0 0 80px #d6f0ff;filter:blur(2px)}
.rift-shards{position:absolute;left:var(--rift-x);top:49%}
.rift-shards i{position:absolute;width:clamp(3px,.35vw,7px);height:clamp(12px,2.2vh,24px);background:#fff1bb;box-shadow:0 0 16px #def9ff;opacity:0;transform:rotate(var(--shard-angle)) translateY(0)}
.series-final-scene:is([data-beat='rift'],[data-beat='reveal']) .rift-shards i{animation:final-rift-shard 1600ms cubic-bezier(.1,.6,.2,1) var(--shard-delay) both}
@keyframes final-rift-shard{0%{opacity:0;transform:rotate(var(--shard-angle)) translateY(0) scaleY(.4)}15%{opacity:1}100%{opacity:0;transform:rotate(var(--shard-angle)) translateY(calc(-1*var(--shard-distance))) scaleY(.2)}}
.series-final-scene[data-beat='settled'] .series-final-duel,.series-final-scene[data-beat='empty'] .series-final-duel,.series-final-scene[data-beat='settled'] .series-final-rift,.series-final-scene[data-beat='empty'] .series-final-rift{display:none}
.series-final-scene[data-empty='true'] .series-final-relic{display:none}
.series-final-scene[data-empty='true'] .series-final-backdrop{filter:brightness(.35) saturate(.45)}
.series-final-scene[data-empty='true'] .series-final-call{font-size:clamp(32px,5vw,76px);letter-spacing:.06em}
.series-final-actions{position:absolute;z-index:12;left:50%;bottom:4vh;transform:translateX(-50%);display:flex;justify-content:center;flex-wrap:wrap;gap:12px;width:90%;pointer-events:auto}
.series-final-actions button{min-height:48px;padding:10px 24px;border:1px solid #d0d9b955;background:#0a2133ed;color:#eadfc0;border-radius:28px;font:600 16px system-ui;cursor:pointer}
.series-final-actions button:disabled{opacity:.4;cursor:default}
.series-final-actions .series-final-continue{background:#e9ce8f;color:#102b35;min-width:205px;box-shadow:0 4px 22px #0008}
.series-final-details{position:absolute;z-index:12;bottom:10px;right:22px;max-height:60vh;max-width:min(360px,86vw);overflow:auto;font:14px/1.5 system-ui;color:#d7dfdc}
.series-final-details[open]{bottom:17%;padding:16px 22px;background:#061925f5;border:1px solid #afc9c155;border-radius:15px}
.series-final-details summary{cursor:pointer;min-height:44px;align-content:center;letter-spacing:.05em}
.series-final-details ol{padding-left:22px}.series-final-class{font:400 18px system-ui;color:#d4e0d3;margin:8px 0}
.series-final-scene :focus-visible{outline:3px solid #ffe4a1;outline-offset:4px}
.series-final-scene[data-paused='true'] *,.series-final-scene[data-paused='true'] *::before,.series-final-scene[data-paused='true'] *::after{animation-play-state:paused!important}
.series-final-scene[data-reduced='true'] *,.series-final-scene[data-skipped='true'] *,.series-final-scene[data-reduced='true'] *::before,.series-final-scene[data-skipped='true'] *::before,.series-final-scene[data-reduced='true'] *::after,.series-final-scene[data-skipped='true'] *::after{animation:none!important;transition:none!important}
@media(max-height:620px){
 .series-final-heading{top:12px}.series-final-call{font-size:clamp(32px,5vw,49px)}.series-final-name{font-size:23px;margin-top:6px}
 .series-final-actions{bottom:14px}.series-final-actions button{min-height:44px;padding:8px 20px}
 .series-final-crest{top:52%;width:min(38vw,50vh)}.series-final-crest[data-honor='shared']{width:min(28vw,45vh)}
 .series-final-details{bottom:3px;right:10px}.class-series-actions{top:75px;right:12px}.class-series-actions button{font-size:12px;min-height:40px;padding:6px 10px}
}
@media(max-width:700px){
 .class-series-actions{top:85px;right:10px;left:10px;max-width:none;justify-content:center}
 .series-final-heading{top:7vh;left:2%;right:2%}.series-final-call{font-size:clamp(34px,9vw,60px);letter-spacing:.08em}.series-final-name{font-size:24px;margin-top:10px}
 .series-final-crest{top:46%;width:min(76vw,46vh)}.series-final-crest[data-honor='opponent']{right:5%;bottom:23%;width:20vw}
 .series-final-crest[data-honor='shared']{top:46%;left:26%;width:44vw}.series-final-crest[data-honor='shared'][data-team='B']{left:74%}
 .series-final-crest[data-honor='quiet']{left:30%;width:32vw}.series-final-crest[data-honor='quiet'][data-team='B']{left:70%}
 .series-final-relic{top:47%;width:130vw;height:67vh}.series-final-backdrop{object-position:center}
 .series-final-actions{bottom:58px;gap:8px}.series-final-actions button{padding:10px 15px}.series-final-actions .series-final-continue{min-width:165px}
 .series-final-details{bottom:4px;right:12px}.series-final-details[open]{bottom:25%}
 .series-final-scene .series-emblem{bottom:39%;width:85%}.series-final-scene .series-progress{bottom:27%}
}
body:has(.series-final-scene[open]) #classBattleHost *,body:has(.series-final-scene[open]) #classBattleHost *::before,body:has(.series-final-scene[open]) #classBattleHost *::after{animation-play-state:paused!important}
#classBattleHost .series-tally,#classBattleHost .series-counter{display:none!important}.class-score-details{position:absolute;left:24px;top:110px;z-index:6;font:14px/1.5 system-ui;color:#d1ddda}.class-score-details summary{min-height:44px;align-content:center;cursor:pointer}.class-score-details[open]{max-width:min(440px,90vw);padding:12px 20px;border:1px solid #c0ceba55;border-radius:12px;background:#061b26f5}.class-score-details p{margin:0 0 8px}
@media(max-height:620px){.class-score-details{top:75px;left:14px}}@media(max-width:700px){.class-score-details{top:133px;left:14px}}

/* Delivered V5 art: its tangible relic opens the Rift, then anchors the stage. */
.series-final-backdrop-twin{clip-path:inset(0 0 0 50%)}.series-final-relic{top:75%;width:30vh;height:30vh;max-width:34vw;filter:drop-shadow(0 10px 18px #000a)}.series-final-crest[data-honor='champion']{top:48%;width:min(42vw,43vh,600px)}.rift-artifact{position:absolute;left:var(--rift-x);top:50%;width:min(72vw,65vh);height:65vh;object-fit:contain;transform:translate(-50%,-50%);opacity:var(--relic-show,0);filter:drop-shadow(0 0 40px #caeaff55)}.series-final-scene[data-empty='true'] .rift-artifact{display:none}
@media(max-height:620px){.series-final-crest[data-honor='champion']{top:48%;width:min(38vw,42vh)}.series-final-relic{top:76%;height:27vh;width:27vh}}
@media(max-width:700px){.series-final-crest[data-honor='champion']{top:43%;width:min(76vw,40vh)}.series-final-relic{top:67%;height:28vh;width:42vw;max-width:42vw}}
.series-final-actions .series-final-honours-next{border-color:#f7e0a5;background:#d5b873;color:#152834}.series-final-scene[data-panel='honours'] .series-final-honors{display:none}.squad-awards-stage{position:absolute;z-index:10;left:5%;right:5%;top:7vh;bottom:18vh;text-align:center;color:#fff0cb;overflow:auto}.squad-awards-stage h2{font:500 clamp(34px,4.5vw,68px)/1.1 Georgia,serif;margin:0 0 5vh;text-shadow:0 3px 20px #000}.squad-award-teams{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:30px}.squad-award-card{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:330px;text-shadow:0 3px 15px #000}.squad-award-card .squad-badge{width:min(28vw,34vh);height:min(28vw,34vh);filter:drop-shadow(0 10px 25px #000a)}.squad-award-card strong{font:500 clamp(26px,3vw,43px) Georgia,serif}.squad-award-card small{font:500 16px system-ui;letter-spacing:.08em;text-transform:uppercase;color:#d2dccc}.squad-award-teams:not([data-count='1']):not([data-count='2']) .squad-award-card .squad-badge{width:150px;height:150px}.squad-award-teams:not([data-count='1']):not([data-count='2']) .squad-award-card strong{font-size:26px}.series-final-rift{mix-blend-mode:normal}.rift-column,.rift-release,.rift-horizon{mix-blend-mode:screen}@media(max-width:700px){.squad-awards-stage{top:8vh;bottom:24vh}.squad-award-teams{gap:25px}.squad-award-card .squad-badge{width:42vw;height:42vw}.squad-award-card strong{font-size:27px}.series-final-actions:has(.series-final-honours-next){gap:6px;bottom:55px}.series-final-actions:has(.series-final-honours-next) button{min-width:0;padding:9px 12px;font-size:14px}}

/* Honours centre the visible emblem; counts only change the fair composition. */
.series-final-scene[data-panel='honours'] .series-final-relic{display:none}
/* Keep complete faction crests visibly separate from the tangible Rift core. */
@media(min-width:701px) and (min-height:621px){
 .series-final-heading{top:1.5vh}
 .series-final-call{font-size:clamp(42px,9vh,110px)}
 .series-final-name{font-size:clamp(23px,4vh,44px);margin-top:8px}
 .series-final-crest:is([data-honor='champion'],[data-honor='shared']){top:39%;width:min(42vw,43vh,600px)}
 .series-final-relic{width:26vh;height:26vh}
}
.squad-awards-stage{top:4vh;bottom:14vh;left:5%;right:5%}
.squad-awards-stage h2{font-size:clamp(32px,3.2vw,60px);line-height:1.05;margin:0 0 1vh;letter-spacing:.02em}
.squad-award-teams{--honour-columns:1;display:grid;grid-template-columns:repeat(var(--honour-columns),minmax(0,1fr));justify-items:center;align-items:start;gap:20px;max-width:1600px;margin:auto}
.squad-award-teams[data-count='2']{--honour-columns:2}.squad-award-teams[data-count='3']{--honour-columns:3}.squad-award-teams[data-count='4']{--honour-columns:4}
.squad-award-teams:not([data-count='1']):not([data-count='2']):not([data-count='3']):not([data-count='4']){--honour-columns:4}
.squad-award-card{width:100%;max-width:none;gap:9px;min-width:0}
.squad-award-card .squad-badge{width:min(46vh,100%);height:auto;aspect-ratio:1;filter:drop-shadow(0 12px 25px #0009) drop-shadow(0 0 25px #a5d4e624)}
.squad-award-card strong{font-size:clamp(28px,2.8vw,43px);line-height:1.08;max-width:min(96%,650px)}
.squad-award-card small{font-size:14px}
.squad-award-teams:is([data-count='3'],[data-count='4']) .squad-award-card .squad-badge{width:min(35vh,100%);height:auto}
.squad-award-teams:not([data-count='1']):not([data-count='2']):not([data-count='3']):not([data-count='4']) .squad-award-card .squad-badge{width:min(25vh,100%);height:auto}
.squad-award-teams:not([data-count='1']):not([data-count='2']) .squad-award-card strong{font-size:clamp(23px,2.2vw,30px)}
@media(max-height:800px){.squad-award-teams{gap:14px}.squad-award-card{gap:7px}.squad-award-card small{font-size:12px}}
@media(max-width:700px){.squad-awards-stage{top:5vh;bottom:24vh}.squad-award-teams{gap:14px}.squad-award-card .squad-badge{width:min(46vh,82vw);height:auto}.squad-award-card strong{font-size:27px}.squad-award-teams:not([data-count='1']){--honour-columns:2}.squad-award-teams:not([data-count='1']) .squad-award-card .squad-badge{width:min(28vh,40vw);height:auto}.squad-award-teams:not([data-count='1']) .squad-award-card strong{font-size:23px}}

/* One finite honour arrival. Animate the outer badge; its atlas alignment stays intact. */
.squad-awards-stage h2{animation:squad-honour-title 380ms cubic-bezier(.16,.82,.28,1) both}
.squad-awards-stage .squad-award-card>.squad-badge{animation:squad-honour-emblem 800ms cubic-bezier(.16,.75,.2,1) 100ms both}
.squad-awards-stage .squad-award-card>strong{animation:squad-honour-name 410ms cubic-bezier(.16,.82,.28,1) 620ms both}
.squad-awards-stage .squad-award-card>small{animation:squad-honour-name 350ms ease-out 730ms both}
@keyframes squad-honour-title{from{opacity:0;transform:translateY(-22px) scale(.95)}to{opacity:1;transform:none}}
@keyframes squad-honour-emblem{0%{opacity:0;transform:translateY(70px) scale(.32) rotate(-12deg)}38%{opacity:1}70%{transform:translateY(-7px) scale(1.035) rotate(1.2deg)}85%{transform:translateY(2px) scale(.988)}100%{opacity:1;transform:none}}
@keyframes squad-honour-name{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
