/* Native scrolling controls the reveal; no wheel interception or scroll lock. */
.flight-anchor{visibility:hidden!important;transform:none!important;opacity:0!important}
.flight-trail{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:19}
.roster .character-button:first-child{box-shadow:0 0 calc(var(--landing-glow,0)*28px) rgba(255,210,64,.65)}
@media(prefers-reduced-motion:reduce){.flight-trail{display:none}}
.ziggy-flight{position:fixed!important;z-index:20;pointer-events:none;max-width:none;background:transparent!important;transition:none!important}
.ziggy-flight canvas{background:transparent!important;opacity:calc(1 - var(--photo-mix,0))!important}
.ziggy-flight:not(.ready) canvas{opacity:0!important}
.ziggy-flight .stage-shadow{display:none}
.fallback-ziggy{display:none}
.flight-photo{position:absolute;inset:0;background:url('./assets/portraits/ziggy.jpg') center 20%/cover no-repeat;opacity:var(--photo-mix,0);border-radius:4px;z-index:3}
.roster .ziggy-landing{animation:none!important;transform:none!important}
.hero-title h1>.title-small{font-size:1em;line-height:.85;color:#f4f3fc}
.hero-title h1>.title-adventure{font-size:.55em;color:var(--yellow)}
@media(prefers-reduced-motion:no-preference){.hero-title p,.hero-title .title-small,.hero-title .title-adventure{animation:title-arrive 1s cubic-bezier(.16,1,.3,1) both}.hero-title .title-small{animation-delay:.12s}.hero-title .title-adventure{animation-delay:.3s}@keyframes title-arrive{from{opacity:0;transform:translateY(45px) scale(.94);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}}
@media(max-width:600px){.hero-title h1>.title-adventure{font-size:.49em}}
.scroll-story .hero-journey{height:calc(var(--hero-height, 720px) + 110svh);position:relative}
.scroll-story .hero{position:sticky;top:0;height:var(--hero-height,720px);min-height:0;max-height:none}
.scroll-story .character-stage{opacity:var(--ziggy-alpha,0);transform:translate3d(var(--ziggy-x,0px),var(--ziggy-y,140px),0) scale(var(--ziggy-scale,.68));transform-origin:50% 80%;will-change:transform,opacity}
.scroll-story .hero-title{transform:translateY(var(--title-y,0px)) scale(var(--title-scale,1));opacity:var(--title-alpha,1);transform-origin:50% 15%;will-change:transform,opacity}
.scroll-story .hero-copy{animation:none;opacity:var(--copy-alpha,.2);translate:0 var(--copy-y,25px)}
.scroll-story .hero-copy:focus-within{opacity:1;translate:none}
.scroll-story .ziggy-label,.scroll-story .sticker{animation:none;opacity:var(--ziggy-alpha,0);translate:0 var(--copy-y,25px)}
.scroll-story #galaxy{transform:scale(var(--space-scale,1));transform-origin:55% 57%;opacity:var(--space-alpha,1)}
.scroll-story .orbit,.scroll-story .spark{opacity:var(--scene-alpha,1)}
.scroll-story .hero-bottom{opacity:var(--scene-alpha,1)}
.scroll-story .crew-heading{opacity:var(--crew-alpha,0);translate:0 var(--crew-y,65px)}
.scroll-story .character-button{opacity:var(--card-alpha,0);translate:0 var(--card-y,65px);rotate:var(--card-angle,3deg)}
.scroll-story .character-button:focus-visible{opacity:1;translate:none;rotate:none}
.scroll-story .character-detail{opacity:var(--detail-alpha,0);translate:0 var(--detail-y,65px)}
.scroll-story .character-detail:focus-within{opacity:1;translate:none}
.scroll-story .ticker{position:relative;z-index:6}
@media(max-width:600px){.scroll-story .hero-journey{height:calc(var(--hero-height,870px) + 85svh)}.scroll-story .hero-bottom:before{content:'Role para conhecer o Ziggy';font-size:10px;margin-right:20px}}
@media(prefers-reduced-motion:reduce){.scroll-story .hero-journey{height:auto}.scroll-story .hero{position:relative}.scroll-story .character-stage,.scroll-story .hero-title,.scroll-story .hero-copy,.scroll-story .ziggy-label,.scroll-story .sticker,.scroll-story #galaxy,.scroll-story .orbit,.scroll-story .spark,.scroll-story .hero-bottom,.scroll-story .crew-heading,.scroll-story .character-button,.scroll-story .character-detail{opacity:1;translate:none;rotate:none;transform:none;will-change:auto}}
