/* High definition character illustration and cinematic finale. */
.character-layer img{transform:none;image-rendering:auto;filter:drop-shadow(0 20px 28px #020b0b88);max-width:60%;height:91%;object-fit:contain}
.character-layer .hero-yulan{left:0;bottom:26px;height:88%;max-width:45%;transform:none}
.character-layer .hero-huangmian{right:-1%;bottom:34px;height:96%;max-width:64%;transform:none}
.art-orbit{inset:26px 5% 20px;background:radial-gradient(ellipse,#bb43391e,#432a2a0c 55%,transparent);border-color:#e0b78925;box-shadow:inset 0 0 0 16px #caab7d04}
.art-orbit::after{opacity:.5}.art-orbit span{right:-8px;letter-spacing:.28em;opacity:.75}.art-caption{top:-4px}.name-yulan{left:-2%;bottom:40px}.name-huangmian{right:0;bottom:12px}.art-name{font-size:15px}.intro-art .blank-feather-wrap{left:41%;top:44%;width:65px;opacity:.85}
.intro-heading h1{font-weight:500;text-shadow:0 3px 28px #080d0d20}.intro-heading h1 span{color:#d96552}.intro-shell{gap:1vw;grid-template-columns:.9fr 1.15fr}.intro-art{height:580px}.intro-copy{padding-left:2vw}.intro-meta{letter-spacing:.13em}.intro-copy .btn.primary{padding:15px 30px;background:linear-gradient(110deg,#be493e,#db6751);border:1px solid #ed95804f;box-shadow:0 8px 32px #72231a30}
.pg-avatar{height:250px;width:170px}.pg-role{width:180px}.pg-avatar img{object-fit:contain}.role-detail>img{height:390px;max-width:100%;}.journey-guide img{object-fit:contain;object-position:center}
#ch-phoenix{overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#63363233,transparent 60%),radial-gradient(ellipse at 80% 20%,#97664c12,transparent 55%),#102525}
#finaleStage{inset:104px 4vw 218px;z-index:2;pointer-events:none}.phoenix-scene{position:relative;height:100%;width:min(1080px,100%);max-height:690px;isolation:isolate;display:grid;place-items:center}
.phoenix-illustration{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:translateY(24px) scale(.88);filter:brightness(.6) saturate(.5) blur(5px);transition:opacity 2.3s ease,filter 2.8s ease,transform 3.3s cubic-bezier(.16,1,.3,1);z-index:2;pointer-events:none}
.revealing .phoenix-illustration{opacity:1;transform:translateY(0) scale(1);filter:brightness(1) saturate(1) blur(0)}
.settled .phoenix-illustration{animation:phoenixBreath 7s ease-in-out infinite;filter:drop-shadow(0 15px 40px #cf4e3d24)}
.phoenix-halo{position:absolute;width:65%;aspect-ratio:1;border:1px solid #d5b38520;border-radius:50%;opacity:0;background:radial-gradient(ellipse,#be513a0c,transparent 72%);box-shadow:0 0 100px #b44b2c08;transition:opacity 2s;z-index:0}
.phoenix-halo::after{content:'';position:absolute;inset:8%;border-radius:50%;border:1px dashed #d5b38514;transform:rotate(17deg)}.revealing .phoenix-halo{opacity:1}
.converging-feathers{position:absolute;inset:0;z-index:3;transition:opacity 1.1s}.journey-particle{position:absolute;opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--turn)) scale(.8)}
.journey-particle svg{width:100%;height:auto;max-height:none!important;display:block}.assembling .journey-particle{animation:plumeArrival 2.6s cubic-bezier(.22,.61,.24,1) var(--arrival) both}.settled .converging-feathers{opacity:0}
.personal-plume{position:absolute;left:32.5%;top:47%;width:32px;z-index:4;opacity:0;transform:translate(-50%,180px) rotate(-25deg) scale(1.7);transition:transform 1.3s cubic-bezier(.16,1,.3,1),opacity .6s,filter 1.2s;filter:drop-shadow(0 0 10px #fce1b398)}
.personal-plume svg{width:100%;height:auto;max-height:none!important}.assembling .personal-plume{opacity:1;transform:translate(-50%,-50%) rotate(-14deg) scale(1)}.settled .personal-plume{filter:drop-shadow(0 0 13px #ffe8b4);animation:personalGlow 3s ease-in-out infinite}
.phoenix-stardust{position:absolute;inset:0;opacity:0;z-index:1;transition:opacity 2s}.revealing .phoenix-stardust{opacity:.55}.phoenix-stardust i{position:absolute;left:var(--star-x);top:var(--star-y);width:2px;height:2px;background:#e0b27e;border-radius:50%;box-shadow:0 0 8px #e0b27e;animation:sparkle 4s var(--star-time) ease-in-out infinite}
.phoenix-aureole{position:absolute;left:50%;top:45%;width:min(800px,80vw);aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,#c2573710,transparent 65%);border:1px solid #dfae7820;border-radius:50%}
.finale-pre{z-index:5;height:100%;min-height:0;width:100%;transition:opacity .9s,transform .9s;transform:none}.finale-pre.departing{opacity:0;pointer-events:none;transform:translateY(-16px);visibility:hidden;transition:opacity .7s,transform .7s,visibility 0s .7s}.finale-pre .finale-line{font-weight:400;color:var(--paper);letter-spacing:.25em}.finale-title{bottom:91px;padding:14px 15px 18px;background:none}.finale-title h1{font-size:clamp(27px,3.2vw,43px);font-weight:400;letter-spacing:.2em}.finale-title p{color:#d6b89b;font-size:11px;margin:8px 0 20px;letter-spacing:.2em}.finale-actions .btn{padding:12px 26px;font-size:12px}
@keyframes plumeArrival{0%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--turn)) scale(.8)}15%{opacity:.9}65%{opacity:.7}100%{opacity:0;transform:translate(-50%,-50%) rotate(0) scale(.4)}}
@keyframes phoenixBreath{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes sparkle{0%,100%{opacity:.2;scale:1}50%{opacity:1;scale:1.5}}
@keyframes personalGlow{0%,100%{opacity:.9}50%{opacity:1;filter:drop-shadow(0 0 16px #ffe8b4)}}
@media(min-width:1500px){.intro-art{height:640px}.intro-shell{min-height:670px}}
@media(max-width:1100px){.intro-art{height:500px}.intro-heading h1{font-size:58px}}
@media(max-width:900px){.intro-art{height:435px}.intro-heading h1{font-size:47px}.intro-shell{grid-template-columns:1fr 1.1fr;gap:15px}.pg-avatar{width:140px;height:220px}.pg-role{width:150px}.personal-plume{width:26px}.art-name{font-size:13px}}
@media(max-width:600px){.intro-art{height:375px;margin-top:25px;width:100%}.character-layer .hero-yulan{left:1%;height:87%;max-width:42%;bottom:20px}.character-layer .hero-huangmian{right:-1%;height:93%;max-width:66%;bottom:27px}.intro-copy{padding-left:0}.intro-heading h1{font-size:44px}.art-caption{top:-5px}.name-yulan{left:0;bottom:22px}.name-huangmian{bottom:5px}.art-name small{font-size:8px}.intro-art .blank-feather-wrap{left:39%;top:45%;width:42px}.art-orbit{inset:30px 3% 20px}.art-orbit span{display:none}.art-footnote{bottom:-18px}.intro-bottom{margin-top:18px}.pg-avatar{width:100px;height:170px}.pg-role{width:108px}.role-detail>img{height:270px}.role-detail{gap:18px}#finaleStage{inset:125px 0 250px}.phoenix-scene{width:100%;height:100%}.phoenix-halo{width:88%}.personal-plume{width:20px;top:48%}.finale-title{bottom:88px;padding:10px 15px}.finale-title h1{font-size:24px;letter-spacing:.08em}.finale-title p{font-size:10px;letter-spacing:.1em}.finale-actions{gap:8px}.finale-actions .btn{font-size:11px;padding:10px 20px}.finale-pre .finale-line{font-size:21px}.phoenix-aureole{width:94vw}}
@media(max-height:760px) and (min-width:901px){.intro-art{height:440px}.intro-shell{min-height:470px}.intro-heading h1{font-size:58px}#finaleStage{inset:115px 2vw 208px}.finale-title{bottom:82px}.finale-title h1{font-size:30px}.finale-title p{margin:6px 0 14px}}
@media(prefers-reduced-motion:reduce){.phoenix-illustration,.personal-plume,.journey-particle,.phoenix-stardust i{animation:none!important}.revealing .phoenix-illustration{opacity:1;transform:none}.assembling .personal-plume{opacity:1;transform:translate(-50%,-50%)}.converging-feathers{display:none}}
.art-caption{top:-28px}
#finaleStage{inset:125px 4vw 260px}
.phoenix-scene{width:min(100%,calc((100vh - 385px)*1.333333));height:auto;aspect-ratio:4/3;max-height:100%}
@media(max-width:600px){.art-caption{top:-7px}#finaleStage{inset:125px 0 250px}.phoenix-scene{width:100%;height:auto;aspect-ratio:4/3;max-height:100%}}
@media(max-height:760px) and (min-width:901px){#finaleStage{inset:120px 4vw 230px}.phoenix-scene{width:min(100%,calc((100vh - 350px)*1.333333))}}
.artwork-actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:22px;font-size:11px}.artwork-actions button,.artwork-actions a{color:#993e32;text-decoration:none;padding:7px 0;border-bottom:1px solid #b8866866}.full-character-art{display:block;width:min(100%,650px);height:auto;margin:20px auto;background:radial-gradient(ellipse,#ecd6bc88,transparent 70%)}.art-back{font-size:11px;color:#993e32}
.finale-pre .finale-line.show{opacity:1;transform:none}
@media(max-width:600px){.phoenix-scene{width:92vw}}
