/* Cinematic introduction is an enhancement: without JavaScript, the complete hero remains visible. */
.p-globe-intro{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:1;transition:opacity .35s ease;}
.hero-intro .p-header{animation:ips-nav-enter 1.1s .4s cubic-bezier(.16,1,.3,1) both}
.hero-intro .p-map-art{animation:ips-map-enter 1.45s 2.05s cubic-bezier(.2,.7,.2,1) both}
.hero-intro .p-hero-copy{z-index:2;animation:ips-copy-enter 1.05s 2.35s cubic-bezier(.16,1,.3,1) both}
.hero-intro .p-hero-copy .p-eyebrow{animation:ips-copy-item .85s 2.15s ease both}
.hero-intro .p-hero-copy h1{animation:ips-copy-item 1s 2.35s cubic-bezier(.16,1,.3,1) both}
.hero-intro .p-hero-lede{animation:ips-copy-item .9s 2.6s ease both}
.hero-intro .p-hero-actions{animation:ips-copy-item .9s 2.8s ease both}
.hero-intro .p-map-note,.hero-intro .p-map-readout,.hero-intro .p-scroll,.hero-intro .p-hero-index{animation:ips-detail-enter .9s 2.65s ease both}
@keyframes ips-nav-enter{from{opacity:0;transform:translateY(-110%)}to{opacity:1;transform:translateY(0)}}
@keyframes ips-map-enter{from{opacity:0;filter:blur(9px)}to{opacity:1;filter:blur(0)}}
@keyframes ips-copy-enter{from{opacity:0}to{opacity:1}}
@keyframes ips-copy-item{from{opacity:0;transform:translateY(22px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes ips-detail-enter{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.p-globe-intro{display:none!important}.hero-intro .p-header,.hero-intro .p-map-art,.hero-intro .p-hero-copy,.hero-intro .p-hero-copy .p-eyebrow,.hero-intro .p-hero-copy h1,.hero-intro .p-hero-lede,.hero-intro .p-hero-actions,.hero-intro .p-map-note,.hero-intro .p-map-readout,.hero-intro .p-scroll,.hero-intro .p-hero-index{animation:none!important;opacity:1!important;filter:none!important}}
