@font-face{font-family:CastWenKai;src:url('/assets/fonts/nekorin-wenkai.woff2') format('woff2');font-display:swap}
[data-entering] [data-target="moving-portraits.caption"]{visibility:hidden!important}
.cast-stage{--paper:#faf7f2;--ink:#2e2425;--accent:#995064;--rule:color-mix(in srgb,var(--ink) 27%,transparent);--quiet:color-mix(in srgb,var(--ink) 75%,var(--paper));--serif:Georgia,CastWenKai,'Songti SC',serif;position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;border:0;margin:0;background:transparent;color:var(--ink);overflow:hidden;font:16px/1.65 var(--serif);overscroll-behavior:contain}
.cast-stage::backdrop{background:transparent}.cast-stage *{box-sizing:border-box}.cast-stage :focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.cast-surface{position:absolute;inset:0;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 5%,var(--paper)),var(--paper) 47%,color-mix(in srgb,var(--accent) 7%,var(--paper)));opacity:0;transition:opacity .48s}.cast-stage[data-open] .cast-surface{opacity:1}
.cast-surface:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,color-mix(in srgb,var(--ink) 2%,transparent) 3px 4px);opacity:.56}
.cast-scroll{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}
.cast-bar{width:min(91%,1600px);margin:auto;min-height:68px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule);position:relative;z-index:1}
.cast-back{font:14px/1.3 var(--serif);background:transparent;border:0;color:var(--ink);padding:0;min-height:44px;cursor:pointer}.cast-brand{font:600 13px/1.4 var(--serif);letter-spacing:.16em}
.cast-layout{width:min(91%,1450px);margin:auto;padding:clamp(32px,5vh,65px) 0 36px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.38fr) minmax(0,1fr);gap:28px clamp(22px,4vw,72px);align-items:center;align-content:center;min-height:calc(100svh - 68px)}
.cast-lead,.cast-notes{min-width:0}.cast-lead{align-self:center;padding-bottom:6%}.cast-name{margin:0;color:var(--ink);font:500 clamp(52px,7.6vw,124px)/1.04 var(--serif);letter-spacing:-.065em}.cast-alias,.cast-role{color:var(--quiet);font:15px/1.5 var(--serif);margin:12px 0 0;letter-spacing:.06em}.cast-role{margin-top:5px}
.cast-story{border-top:1px solid var(--rule);margin-top:clamp(22px,4vh,48px);padding-top:18px;color:var(--ink);font-size:clamp(16px,1.45vw,21px);line-height:1.85;overflow-wrap:anywhere;text-wrap:pretty}.cast-story p{margin:0}.cast-story p+p{margin-top:.5em}
.cast-center{min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;grid-column:2}.cast-portrait{margin:0;position:relative;width:min(100%,calc(58svh * var(--ratio)));aspect-ratio:var(--ratio);isolation:isolate;background:transparent}.cast-portrait:before{content:"";position:absolute;inset:-5px;border:1px solid var(--rule);z-index:-1}
.cast-portrait img,.cast-stage img.cast-flight{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;margin:0}.cast-stage img.cast-flight{position:fixed;inset:auto;z-index:5;pointer-events:none;transform:none}
.cast-birth,.cast-color{font:13px/1.5 var(--serif);letter-spacing:.08em;color:var(--quiet);text-align:center;margin:0}.cast-color{display:flex;align-items:center;gap:8px}.cast-color:before{content:"";width:15px;height:2px;background:var(--accent)}
.cast-notes{align-self:center}.cast-facts{margin:0;display:grid;gap:15px}.cast-note{border-top:1px solid var(--rule);padding-top:7px}.cast-note dt{font-size:12px;letter-spacing:.1em;color:var(--quiet);margin:0 0 4px}.cast-note dd{font-size:clamp(15px,1.16vw,18px);line-height:1.7;margin:0;white-space:pre-line;overflow-wrap:anywhere;text-wrap:pretty}
.cast-quote{grid-column:1/-1;margin:0 auto;padding-top:4px;max-width:48ch;color:var(--ink);font:400 clamp(22px,2.4vw,38px)/1.55 var(--serif);white-space:pre-line;text-align:center;text-wrap:balance}.cast-quote:before{content:"";display:block;width:32px;margin:0 auto 12px;border-top:1px solid var(--accent)}
.cast-stage[data-person=taki]{--paper:#211a1c;--ink:#f8e9db;--quiet:#d1bdb6;--rule:#64504e}.cast-stage[data-person=taki] .cast-name{font-style:italic;letter-spacing:-.085em}.cast-stage[data-person=taki] .cast-portrait:before{inset:-7px;border:3px double #9a716d}
.cast-stage[data-person=moli]{--paper:#edf4f3;--ink:#203d4e}.cast-stage[data-person=mio],.cast-stage[data-person=suki]{--paper:#fcf0ef;--ink:#573637}.cast-stage[data-person=lingyu]{--paper:#f0eff2;--ink:#30394b}.cast-stage[data-person=lingyu] .cast-portrait:before{border-top:3px double #9297a1}
.cast-stage[data-person=anan]{--paper:#f4eef6;--ink:#46324c}.cast-stage[data-person=xiaoshe]{--paper:#eaf2ed;--ink:#22473c}.cast-stage[data-person=zaozao]{--paper:#fff2eb;--ink:#652a3c}.cast-stage[data-person=quemao]{--paper:#342838;--ink:#f5eaf6}.cast-stage[data-person=hotaru]{--paper:#192542;--ink:#eff2ff}.cast-stage[data-person=lianmian]{--paper:#eeedf4;--ink:#36374b}
.cast-stage:not([data-arrived]) :is(.cast-bar,.cast-lead,.cast-notes,.cast-quote,.cast-birth,.cast-color){opacity:0}.cast-stage:not([data-arrived]) .cast-portrait:before{opacity:0}
@media(max-width:760px){
 .cast-bar{min-height:48px;width:90%}.cast-layout{width:88%;min-height:0;padding:20px 0 40px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px 16px}.cast-lead{display:contents}.cast-name,.cast-alias,.cast-role,.cast-center,.cast-story,.cast-quote,.cast-notes{grid-column:1/-1}
 .cast-name{text-align:center;font-size:clamp(47px,13vw,82px);grid-row:1}.cast-alias,.cast-role{text-align:center;margin:-15px 0 0;font-size:13px}.cast-center{display:grid;grid-template-columns:1fr minmax(0,4.5fr) 1fr;gap:8px;width:100%;align-items:center;margin:3px auto 4px}
 .cast-portrait{width:100%;max-width:min(100%,calc(46svh * var(--ratio)));justify-self:center;grid-column:2;grid-row:1}.cast-birth,.cast-color{writing-mode:vertical-rl;font-size:12px;letter-spacing:.05em;grid-row:1;justify-self:center;max-height:39svh;text-align:start;line-height:1.6}.cast-birth{grid-column:1}.cast-color{grid-column:3}.cast-color:before{height:15px;width:2px}
 .cast-story{order:2;margin:0;padding:12px 0 0;font-size:17px;line-height:1.8}.cast-notes{order:3}.cast-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cast-note dd{font-size:15px}.cast-quote{order:4;max-width:100%;font-size:22px}.cast-quote:before{margin-bottom:10px}.cast-stage:not([data-arrived]) .cast-story,.cast-stage:not([data-arrived]) .cast-name{opacity:0}
}
@media(prefers-reduced-motion:reduce){.cast-surface{transition:none}}
