/* Aurora 18: motion uses transform/opacity; no layout animation or per-frame DOM. */
.aurora .game-content{animation:screen-arrive .32s ease-out both}
.aurora .modal{animation:modal-arrive .25s ease-out both}
.aurora button{transition:transform .15s ease,background-color .18s ease,border-color .18s ease}
.aurora button:active:not(:disabled){transform:scale(.97)}
.aurora .progress>span{transition:width .4s cubic-bezier(.2,.7,.2,1)}
.aurora .rank-art{display:block;flex-shrink:0;width:82px;height:82px;background:var(--art-rank18) var(--badge-pos) / 300% 200% no-repeat;border-radius:22%;mask-image:radial-gradient(ellipse at center,#000 51%,#000d 66%,transparent 76%);-webkit-mask-image:radial-gradient(ellipse at center,#000 51%,#000d 66%,transparent 76%)}
.aurora .rank18-screen{max-width:1020px;margin:auto}
.aurora .rank18-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:26px;border:1px solid color-mix(in srgb,var(--rank-color),transparent 55%);background:radial-gradient(ellipse at 50% 17%,color-mix(in srgb,var(--rank-color),#13284b 70%),transparent 55%),linear-gradient(150deg,#132d50,#0a132c 70%);padding:22px 22px 0;box-shadow:0 18px 48px #0004;margin-bottom:24px}
.aurora .rank18-hero h2{font-size:clamp(28px,6vw,40px);margin:2px 0 4px;color:#fff3d7;letter-spacing:-.025em}
.aurora .rank18-hero>.eyebrow{color:var(--rank-color)}
.aurora .rank-badge-stage{position:relative;width:200px;height:190px;display:grid;place-items:center;margin:0 0 13px}
.aurora .rank-current{width:205px;height:205px;animation:crest-float 5s ease-in-out infinite;filter:drop-shadow(0 8px 12px #0007)}
.aurora .rank-division-seal{position:absolute;bottom:-2px;left:calc(50% - 19px);display:grid;place-items:center;width:38px;height:38px;border:1px solid #e7d4a4;border-radius:12px;background:linear-gradient(135deg,#354263,#131c38);color:#fff2c2;font-weight:900;font-size:20px;box-shadow:0 5px 18px #0007}
.aurora .rank-aura{position:absolute;z-index:-1;top:0;left:calc(50% - 175px);width:350px;height:350px;border:1px solid color-mix(in srgb,var(--rank-color),transparent 85%);border-radius:50%;background:conic-gradient(from 0deg,transparent 0 65deg,color-mix(in srgb,var(--rank-color),transparent 84%) 90deg,transparent 120deg 245deg,color-mix(in srgb,var(--rank-color),transparent 88%) 290deg,transparent 330deg);animation:crest-orbit 32s linear infinite}
.aurora .rank-aura:after{content:'';position:absolute;inset:22px;border:1px dashed color-mix(in srgb,var(--rank-color),transparent 73%);border-radius:50%}
.aurora .rank-starfield{position:absolute;inset:0;z-index:-1;opacity:.65;background:radial-gradient(circle at 17% 24%,#cfeaff 0 1px,transparent 2px),radial-gradient(circle at 81% 17%,#ffeab1 0 1px,transparent 2px),radial-gradient(circle at 25% 57%,#87baff 0 1px,transparent 2px),radial-gradient(circle at 75% 47%,#ffc977 0 1px,transparent 2px);animation:stars-breathe 4s ease-in-out infinite}
.aurora .rank-division-pips{display:flex;justify-content:center;gap:6px;color:#365174;margin:3px 0 8px}
.aurora .rank-division-pips i{font-style:normal;font-size:15px}.aurora .rank-division-pips .lit{color:#ffe5a0;text-shadow:0 0 10px #edbc5488}
.aurora .rank18-trophies{font-size:32px;line-height:1.2;color:#fff}.aurora .rank18-trophies small{font-size:12px;font-weight:500;color:#a9bdd7}
.aurora .rank18-meter{width:min(100%,360px);margin:14px auto 18px}.aurora .rank18-meter>.progress{height:7px;margin-bottom:7px}.aurora .rank18-meter .progress>span{background:linear-gradient(90deg,var(--rank-color),#ffe2a7);box-shadow:0 0 13px color-mix(in srgb,var(--rank-color),transparent 35%)}
.aurora .rank18-hero .play-button{width:min(100%,430px);min-height:58px;font-weight:850;border:1px solid #fed788;background:linear-gradient(120deg,#c78c37,#ffdfa0 45%,#dcab59);color:#292039;box-shadow:0 7px 22px #b36b1938}
.aurora .rank18-stats{display:grid;grid-template-columns:.8fr 1.5fr 1fr;width:calc(100% + 44px);margin-top:23px;border-top:1px solid #aec9f01c;background:#08122666;padding:15px 8px;box-sizing:border-box;gap:5px}
.aurora .rank18-stats>span{display:flex;flex-direction:column;gap:3px}.aurora .rank18-stats b{font-size:13px;color:#e9f4ff}.aurora .rank18-stats small{font-size:11px;color:#8ca8c6}
.aurora .rank18-ready{border:1px solid #9adbcb55;border-radius:20px;background:linear-gradient(130deg,#163b48,#18293f);padding:16px;margin:16px 0}.aurora .rank18-ready h2{margin:4px 0 10px}.aurora .rank18-ready .rank-chest{border:0;background:#07172d55;padding:8px;gap:9px}.aurora .rank18-ready .rank-art{width:58px;height:58px}.aurora .rank18-ready .rank-chest h3{font-size:14px}.aurora .rank18-ready .rank-chest button{padding:11px;font-size:12px;min-height:44px}
.aurora .rank18-exclusive{background:linear-gradient(150deg,#253054,#111d38 60%);border:1px solid #c5a2fc55;border-radius:23px;padding:18px;margin:24px 0}.aurora .rank18-exclusive h2{font-size:23px;line-height:1.2;margin:6px 0}.aurora .rank18-exclusive .eyebrow{color:#c9b4f4}
.aurora .rank18-new-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:18px 0}.aurora .rank18-new-cards .card{min-width:0;overflow:hidden;animation:card-reveal .45s ease-out both}.aurora .rank18-new-cards .card:nth-child(2){animation-delay:.06s}.aurora .rank18-new-cards .card:nth-child(3){animation-delay:.12s}.aurora .rank18-new-cards .portrait{filter:none!important;opacity:1!important}.aurora .rank18-new-cards .card-name{font-size:12px}.aurora .rank18-new-cards .card-meta{font-size:10px}.aurora .rank18-new-cards .card:after{pointer-events:none}
.aurora .rank18-exclusive .competitive-progress{flex-wrap:wrap;background:#0a1730aa;padding:13px;border-radius:15px}.aurora .rank18-exclusive .competitive-progress>div{min-width:120px}.aurora .rank18-exclusive .competitive-progress button{margin-left:auto}.aurora .rank-veterans{margin-top:16px}.aurora .rank-veterans summary{min-height:44px;cursor:pointer;color:#a7bbd8;font-size:13px;display:flex;align-items:center}
.aurora .rank-gallery{margin:26px 0}.aurora .rank-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.aurora .rank-gallery-card{background:linear-gradient(155deg,#203455,#111d32);border:1px solid #819ab538;border-radius:18px;padding:10px 4px;min-width:0;color:#e3edf9;display:flex;flex-direction:column;align-items:center;cursor:pointer;min-height:156px}.aurora .rank-gallery-card.current{border-color:var(--rank-color);box-shadow:inset 0 0 25px color-mix(in srgb,var(--rank-color),transparent 91%)}.aurora .rank-gallery-card .rank-art{width:min(90px,100%);height:auto;aspect-ratio:1}.aurora .rank-gallery-card strong{font-size:12px}.aurora .rank-gallery-card span:not(.rank-art){font-size:10px;color:#93aac8;margin-top:4px}.aurora .rank-gallery-card small{font-size:8px;color:var(--rank-color);letter-spacing:.03em;margin-top:8px}.aurora .rank-gallery-card.unreached{background:#111d32}.aurora .rank-gallery-card.unreached .rank-art{opacity:.72}
.aurora .rank-preview{text-align:center}.aurora .rank-preview .rank-art{width:220px;height:220px;margin:auto;animation:crest-float 5s ease-in-out infinite}.aurora .rank-preview h2{font-size:28px}.aurora .rank-preview-pips{color:var(--rank-color);display:flex;justify-content:center;gap:10px;padding:14px}.aurora .rank-promotion{width:135px;height:135px;margin:0 auto;animation:card-reveal .55s ease-out both}.aurora .profile-rank>.rank-art{width:66px;height:66px}
.aurora .abyss-hero{isolation:isolate;background:radial-gradient(ellipse at 50% 25%,#22506a 0,transparent 57%),linear-gradient(145deg,#061e35,#1c214e 70%,#073e49);border-color:#73f4ed66;overflow:hidden}.aurora .abyss-hero:before{content:'';position:absolute;inset:0;z-index:-1;opacity:.45;background:repeating-linear-gradient(110deg,transparent 0 45px,#8af9e906 52px,#66eeed13 67px,transparent 90px);animation:abyss-caustics 9s ease-in-out infinite alternate}.aurora .abyss-hero h1{color:#a6fff3;text-shadow:0 4px 24px #20a3ba55}.aurora .abyss-hero .pirate-captains{position:relative;gap:22px}.aurora .abyss-hero .pirate-captains .portrait{border:1px solid #77e9dfaa;border-radius:20px;animation:crest-float 5s ease-in-out infinite}.aurora .abyss-hero .pirate-captains .portrait:last-child{animation-delay:-2.5s}
.aurora .abyss-stages .pirate-stage{border-color:#80e7eb44;background:linear-gradient(125deg,#153448,#172343)}.aurora .abyss-stages .pirate-stage-scene{background:#17384a;position:relative;overflow:hidden}.aurora .abyss-stages .pirate-stage-scene>.portrait{width:100%;height:100%;min-height:135px;border-radius:0;filter:saturate(.8);opacity:.7}.aurora .abyss-stages .pirate-stage-scene>.portrait>.cost{display:none}.aurora .abyss-stages .pirate-stage-scene>span:last-child{position:absolute;bottom:9px;left:10px;z-index:2;color:#d7fff9;font-size:10px;letter-spacing:.1em}
.aurora .event15-panel{position:relative;overflow:hidden;animation:card-reveal .45s ease-out both}.aurora .event15-panel:nth-child(2){animation-delay:.07s}.aurora .event15-panel:nth-child(3){animation-delay:.14s}.aurora .event15-panel.aurora18,.aurora .challenge15.aurora18{background:radial-gradient(at 25% 20%,#2b6779,#10273d 68%)}.aurora .event15-panel.ember18,.aurora .challenge15.ember18{background:radial-gradient(at 25% 20%,#713c4c,#2c203d 68%)}.aurora .event15-panel.rune18,.aurora .challenge15.rune18{background:radial-gradient(at 25% 20%,#356f58,#152e36 68%)}
.aurora .event15-art:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#fff8ca18 50%,transparent 65%);transform:translateX(-100%);animation:treasure-glint 8s ease-in-out infinite}.aurora .challenge15>.portrait{animation:crest-float 6s ease-in-out infinite}.aurora .pass-stars{font-size:13px;gap:2px}.aurora .pass-progress-card .row>strong{font-size:13px}.aurora .pass-progress-card{border-color:#8fe6db55}.aurora .pass-mission .primary{box-shadow:0 0 18px #55dbb626}.aurora .deck-slot.chosen .card{animation:chosen-card 1.6s ease-in-out infinite}.aurora .battle-dock .card.selected{transform:translateY(-6px);box-shadow:0 0 0 2px #adfff2,0 8px 20px #0007}
@keyframes screen-arrive{from{opacity:.35;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes modal-arrive{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@keyframes card-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes crest-float{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-5px) rotate(.6deg)}}
@keyframes crest-orbit{to{transform:rotate(360deg)}}
@keyframes stars-breathe{50%{opacity:.25;transform:translateY(-3px)}}
@keyframes abyss-caustics{to{transform:translateX(24px);opacity:.7}}
@keyframes treasure-glint{0%,65%{transform:translateX(-110%)}90%,100%{transform:translateX(110%)}}
@keyframes chosen-card{50%{box-shadow:0 0 14px #78efd977}}
@media(min-width:760px){.aurora .rank18-hero{padding-top:28px}.aurora .rank-gallery-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.aurora .rank18-new-cards{max-width:500px;margin:20px auto}.aurora .rank18-new-cards .card-name{font-size:16px}.aurora .rank18-new-cards .card-meta{font-size:12px}.aurora .rank18-exclusive .competitive-progress{max-width:620px;margin:auto}.aurora .rank18-hero .rank-badge-stage{width:230px;height:215px}.aurora .rank-current{width:230px;height:230px}}
@media(max-width:350px){.aurora .rank18-hero{padding:16px 14px 0}.aurora .rank18-exclusive{padding:12px}.aurora .rank18-new-cards{gap:6px}.aurora .rank18-new-cards .card-name{font-size:10px}.aurora .rank-gallery-grid{gap:6px}.aurora .rank-gallery-card strong{font-size:10px}.aurora .rank18-stats{width:calc(100% + 28px)}.aurora .pass-stars{font-size:10px}.aurora .pass-progress-card .row{gap:5px}}
/* Disable continuous decorative motion on budget devices and hidden pages. */
.aurora.economy-mode .rank-current,.aurora.economy-mode .rank-aura,.aurora.economy-mode .rank-starfield,.aurora.economy-mode .abyss-hero:before,.aurora.economy-mode .abyss-hero .portrait,.aurora.economy-mode .event15-art:after,.aurora.economy-mode .challenge15>.portrait,.aurora.economy-mode .deck-slot.chosen .card{animation:none}
.aurora.motion-paused *,.aurora.motion-paused *:before,.aurora.motion-paused *:after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.aurora *,.aurora *:before,.aurora *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.aurora .rank18-meter>.small{color:#bad4e7}
