html{scroll-padding-top:var(--bar-height)}body{padding-top:var(--bar-height)}main{position:relative}.crew-scene{scroll-margin-top:var(--bar-height);border-bottom:1px solid var(--line);position:relative}.portrait-spread{min-height:calc(100svh - var(--bar-height));display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);align-items:center;gap:clamp(30px,5vw,84px);padding:36px var(--gutter) 52px;background:var(--paper)}.portrait{width:100%;min-width:0;background:#edece5;overflow:hidden}.portrait img{width:100%;height:auto;max-height:76svh;object-fit:contain}.character-caption{padding:30px 0;max-width:390px}.character-caption h1,.character-caption h2{font-size:clamp(44px,5.5vw,88px);line-height:.96;margin:28px 0 16px}.character-role{font-size:15px;line-height:1.5;color:var(--muted)}.character-intro{font-size:clamp(14px,1.15vw,17px);line-height:1.8;margin-top:30px;max-width:36ch}.provenance{margin:34px 0 0;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:14px}.provenance dt{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}.provenance dd{margin:0;font-size:12px;line-height:1.5}.flag-caption{display:flex;gap:12px;align-items:center;margin-top:24px;font-size:11px;line-height:1.5}.country-flag{font-family:"Segoe UI Emoji","Apple Color Emoji",Arial,sans-serif;font-size:25px}.flag-caption small{display:block;font-size:9px;color:var(--muted);margin-top:2px;max-width:28ch}.narrate{margin-top:20px;min-height:44px;border:0;border-bottom:1px solid var(--line);background:none;font-size:11px;padding:9px 0;text-align:left}.narrate:hover,.narrate[aria-pressed=true]{border-color:var(--blue)}.narrate span{color:#006fa5;font-size:17px;vertical-align:middle;margin-right:7px}.scene-reverse .portrait{grid-column:2;grid-row:1}.scene-reverse .character-caption{grid-column:1;grid-row:1}.scene-reverse .portrait-spread{grid-template-columns:minmax(290px,1fr) minmax(0,1.6fr)}.scene-parallax .portrait-spread{padding-top:70px;padding-bottom:80px}.scene-reveal .portrait-spread{gap:clamp(32px,7vw,116px)}
.roster-index{padding:38px var(--gutter);border-bottom:1px solid var(--line);background:var(--paper);scroll-margin-top:var(--bar-height)}.roster-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.roster-heading h2{font-size:clamp(30px,4vw,52px);margin:12px 0 28px}.index-close{font-size:12px;min-height:44px;padding:12px 0}.roster-index ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px}.roster-index li a{display:grid;grid-template-columns:1fr 8px;gap:5px;padding:15px 0;border-top:1px solid var(--line)}.directory-name{font-size:14px}.directory-role{font-size:10px;color:var(--muted);grid-column:1}.encounter-dot{grid-column:2;grid-row:1;align-self:center;border:1px solid #a6aaa8;width:6px;height:6px;border-radius:50%}.is-encountered .encounter-dot{background:var(--blue);border-color:var(--blue)}.roster-note{font-size:11px;line-height:1.6;color:var(--muted);margin-top:24px}.roster-index:not(:target){display:none}.roster-index:target{display:block;position:fixed;inset:var(--bar-height) 0 0;z-index:60;overflow:auto;padding-bottom:100px}.roster-index:target~main{visibility:hidden}
.sett-finale{scroll-margin-top:var(--bar-height);background:var(--paper)}.finale-stage{padding:70px var(--gutter) 0;background:var(--paper);display:flex;flex-direction:column;justify-content:center;min-height:100svh}.finale-heading{text-align:center}.finale-heading h2{font-size:clamp(46px,6.5vw,96px);line-height:1.02;margin:16px 0}.finale-heading>p:last-child{font-size:14px;line-height:1.6;color:var(--muted)}.crew-constellation{list-style:none;padding:0;margin:42px auto 34px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:22px 12px;width:min(1020px,100%)}.crew-star{flex:0 0 calc(100% / 7 - 12px);text-align:center;position:relative;transition:transform 700ms,opacity 700ms}.crew-star:nth-child(even){transform:translateY(14px)}.crew-star img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#ebe9e0;filter:saturate(.5);transition:filter 600ms}.crew-star span{display:block;margin:9px 0 4px;font-size:11px}.crew-star small{font-size:8px;color:var(--muted);line-height:1.4;display:block;min-height:22px}.crew-star.is-encountered img{filter:none}.crew-star.is-encountered::after{content:"";display:block;width:4px;height:4px;background:var(--blue);border-radius:50%;margin:8px auto}.finale-close{display:flex;align-items:center;justify-content:center;gap:32px;padding:22px 0 40px}.finale-close p{font-size:11px;color:var(--muted);max-width:28ch;line-height:1.6}.finale-stage .sett-foot{margin:0 calc(-1 * var(--gutter));padding-bottom:96px}.js-arrival .scene-pin .portrait-spread{padding-top:calc(var(--bar-height) + 28px)}
@media(min-width:1000px){.scene-pin .portrait-spread{min-height:100svh}.scene-pin .portrait img{max-height:69svh}.js-arrival .finale-stage{padding-top:calc(var(--bar-height) + 24px)}.js-arrival .finale-stage .crew-constellation{margin-top:26px;margin-bottom:12px;max-width:720px}.js-arrival .finale-stage .finale-heading h2{font-size:clamp(46px,5vw,72px)}.js-arrival .finale-stage .sett-foot{padding-top:20px;padding-bottom:88px}.js-arrival .finale-stage .finale-close{padding-bottom:24px}}
@media(max-width:999px){.portrait-spread,.scene-reverse .portrait-spread{grid-template-columns:minmax(0,1.3fr) minmax(250px,1fr);gap:30px;padding-top:30px;padding-bottom:40px;min-height:auto}.character-caption h1,.character-caption h2{font-size:48px}.character-intro{margin-top:20px;font-size:14px}.provenance{margin-top:20px}.roster-index ol{grid-template-columns:repeat(2,minmax(0,1fr))}.crew-star{flex-basis:calc(100% / 5 - 12px)}.crew-constellation{gap:20px 12px}.scene-parallax .portrait-spread{padding-top:40px;padding-bottom:40px}}
@media(max-width:640px){.portrait-spread,.scene-reverse .portrait-spread{display:flex;flex-direction:column;gap:0;padding:20px var(--gutter) 42px}.portrait{order:0}.portrait img{max-height:none}.character-caption{order:1;width:100%;max-width:none;padding:26px 0 0}.character-caption h1,.character-caption h2{font-size:48px;margin:18px 0 10px;max-width:9ch}.character-intro{max-width:42ch;line-height:1.75}.provenance{grid-template-columns:1fr 1fr;gap:18px}.flag-caption{margin-top:18px}.roster-index ol{grid-template-columns:1fr}.roster-heading{display:block}.index-close{display:inline-block;margin-bottom:20px}.roster-heading h2{margin-bottom:10px}.finale-stage{padding-top:52px}.crew-star{flex-basis:calc(100% / 3 - 12px)}.crew-star:nth-child(even){transform:none}.crew-star small{font-size:8px}.crew-star span{font-size:10px}.crew-constellation{gap:18px 12px;margin-top:28px}.finale-close{flex-direction:column;gap:20px;text-align:center;padding-bottom:42px}.finale-close .primary-link{width:100%}.finale-stage .sett-foot{padding-bottom:110px}.scene-parallax .portrait-spread{padding-top:20px;padding-bottom:42px}}
@media(prefers-reduced-motion:reduce){.crew-star:nth-child(even){transform:none}.portrait-spread{height:auto}.crew-star img{filter:none}}
