body{animation:page-awake .8s ease-out both}.hero-copy{animation:hero-arrive 1.35s .12s cubic-bezier(.16,1,.3,1) both}.nav{animation:soft-in .9s .35s both}
.opening{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:#07171b;color:#e9e6dc;overflow:hidden;pointer-events:none}
.opening:before{content:"";position:absolute;width:min(76vw,760px);aspect-ratio:1;border:1px solid rgba(212,94,73,.28);border-radius:50%;transform:scale(.25);opacity:0}
.opening-noise{position:absolute;inset:-50%;background-image:radial-gradient(circle,rgba(255,255,255,.12) 0 1px,transparent 1px);background-size:5px 5px;opacity:.12;animation:grain .18s steps(2) infinite}
.opening-compass{position:absolute;left:50%;top:17%;width:46px;height:46px;border:1px solid rgba(233,230,220,.5);border-radius:50%;transform:translate(-50%,-20px);opacity:0}
.opening-compass:before,.opening-compass:after{content:"";position:absolute;background:rgba(233,230,220,.35)}.opening-compass:before{width:1px;height:58px;left:22px;top:-7px}.opening-compass:after{height:1px;width:58px;left:-7px;top:22px}.opening-compass span{position:absolute;inset:9px;border:1px solid var(--coral);border-radius:50%}.opening-compass i{position:absolute;left:20px;top:5px;width:5px;height:18px;background:var(--coral);clip-path:polygon(50% 0,100% 100%,0 100%)}
.opening-place,.opening-title{position:absolute;margin:0;font-size:9px;letter-spacing:.32em;text-align:center;opacity:0}.opening-place{top:29%}.opening-title{bottom:24%;color:#d6b69d}
.opening-name{position:relative;z-index:2;display:flex;gap:.18em;font:400 clamp(66px,13vw,190px)/.8 var(--serif);letter-spacing:-.055em;overflow:hidden}.opening-name span{display:block;transform:translateY(120%)}.opening-name span:last-child{font-style:italic;color:#d6b69d}
.opening-line{position:absolute;bottom:18%;left:50%;width:min(72vw,520px);height:1px;background:linear-gradient(90deg,transparent,var(--coral),transparent);transform:translateX(-50%) scaleX(0)}
.opening-play .opening:before{animation:opening-orbit 2.5s .25s cubic-bezier(.16,1,.3,1) both}.opening-play .opening-compass{animation:compass-in 1s .2s ease-out both,compass-turn 5s 1.1s linear infinite}.opening-play .opening-place{animation:soft-in .8s .35s both}.opening-play .opening-name span:first-child{animation:name-rise 1.05s .65s cubic-bezier(.16,1,.3,1) both}.opening-play .opening-name span:last-child{animation:name-rise 1.05s .84s cubic-bezier(.16,1,.3,1) both}.opening-play .opening-title{animation:soft-in .8s 1.25s both}.opening-play .opening-line{animation:line-open 1.1s 1.4s cubic-bezier(.16,1,.3,1) both}.opening-done .opening{animation:opening-leave 1s cubic-bezier(.76,0,.24,1) both}.opening-done .hero-copy{animation:hero-arrive 1.35s .35s cubic-bezier(.16,1,.3,1) both}
.finale.is-revealed .salvation-image{animation:divine-breathe 7s ease-in-out infinite alternate}.finale.is-revealed .god-rays{animation:rays-breathe 4.2s ease-in-out infinite}.finale.is-revealed .ring-one{animation:ring-turn 16s linear infinite}.finale.is-revealed .ring-two{animation:ring-turn-reverse 22s linear infinite}.finale.is-revealed .mist-one{animation:mist-drift 8s ease-in-out infinite alternate}.finale.is-revealed .mist-two{animation:mist-drift-back 11s ease-in-out infinite alternate}.finale.is-revealed .stars{animation:stars-rise 6s ease-in-out infinite}.finale.is-revealed .revelation-copy .kicker{animation:word-blessing .9s both}.finale.is-revealed .revelation-copy h2{animation:word-blessing 1.15s .12s both}.finale.is-revealed .revelation-copy .coordinates{animation:word-blessing 1s .4s both}.revelation-copy h2 em{background:linear-gradient(90deg,#d45e49,#ffe6ae,#d45e49);background-size:220% auto;color:transparent;-webkit-background-clip:text;background-clip:text;animation:holy-shimmer 4s linear infinite}
@keyframes page-awake{from{background:#07171b}}
@keyframes grain{to{transform:translate3d(2%,-1%,0)}}
@keyframes opening-orbit{0%{transform:scale(.25);opacity:0}45%{opacity:1}100%{transform:scale(1);opacity:.32}}
@keyframes compass-in{to{transform:translate(-50%,0);opacity:1}}
@keyframes compass-turn{to{rotate:360deg}}
@keyframes soft-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes name-rise{to{transform:translateY(0)}}
@keyframes line-open{to{transform:translateX(-50%) scaleX(1)}}
@keyframes opening-leave{0%{opacity:1;clip-path:inset(0)}100%{opacity:0;visibility:hidden;clip-path:inset(0 0 100% 0)}}
@keyframes hero-arrive{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:none}}
@keyframes divine-breathe{to{filter:saturate(1.14) brightness(1.13) contrast(1.02);transform:scale(1.015)}}
@keyframes rays-breathe{50%{opacity:1;filter:blur(2px) brightness(1.22)}}
@keyframes ring-turn{to{rotate:360deg}}
@keyframes ring-turn-reverse{to{rotate:-360deg}}
@keyframes mist-drift{to{translate:7% -3%;opacity:.88}}
@keyframes mist-drift-back{to{translate:-8% 2%;opacity:.58}}
@keyframes stars-rise{50%{background-position:20% 26%,70% 52%;opacity:.58}}
@keyframes word-blessing{from{opacity:0;transform:translateY(28px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes holy-shimmer{to{background-position:220% center}}
@media(max-width:760px){.opening-name{flex-direction:column;gap:.06em;text-align:center;font-size:clamp(68px,24vw,108px)}.opening-place{top:25%;max-width:82%;line-height:1.8}.opening-title{bottom:22%}.opening-compass{top:12%}.opening:before{width:125vw}.finale.is-revealed .ring-one,.finale.is-revealed .ring-two{animation-duration:20s}}
@media(prefers-reduced-motion:reduce){body{animation:none}.opening{display:none}.opening-done .hero-copy{animation:none}.finale.is-revealed .salvation-image,.finale.is-revealed .god-rays,.finale.is-revealed .ring-one,.finale.is-revealed .ring-two,.finale.is-revealed .mist-one,.finale.is-revealed .mist-two,.finale.is-revealed .stars,.finale.is-revealed .revelation-copy *,.revelation-copy h2 em{animation:none}}

/* Restrained chapter motion: geometry and light, never hidden content. */
.motion-ready .chapter .section-no,
.motion-ready .chapter h2,
.motion-ready .chapter blockquote,
.motion-ready .chapter .body-copy,
.motion-ready .chapter .captain-copy>p:last-child {
  transform: translateY(38px);
  filter: blur(3px);
  transition: transform 1s cubic-bezier(.16,1,.3,1), filter 1s ease;
}
.motion-ready .chapter.in-view .section-no,
.motion-ready .chapter.in-view h2,
.motion-ready .chapter.in-view blockquote,
.motion-ready .chapter.in-view .body-copy,
.motion-ready .chapter.in-view .captain-copy>p:last-child {
  transform: translateY(0);
  filter: blur(0);
}
.motion-ready .chapter.in-view h2,
.motion-ready .chapter.in-view blockquote { transition-delay: .09s; }
.motion-ready .chapter.in-view .body-copy,
.motion-ready .chapter.in-view .captain-copy>p:last-child { transition-delay: .2s; }
.portrait-wrap,.captain figure{position:relative;overflow:hidden;clip-path:inset(0 0 8% 0);transition:clip-path 1.25s cubic-bezier(.16,1,.3,1),transform 1.25s cubic-bezier(.16,1,.3,1)}
.in-view .portrait-wrap,.captain.in-view figure{clip-path:inset(0);transform:translateY(0)}
.motion-ready .portrait-wrap,.motion-ready .captain figure{transform:translateY(34px)}
.motion-ready .in-view .portrait-wrap,.motion-ready .captain.in-view figure{transform:none}
.creed article{transition:transform .8s cubic-bezier(.16,1,.3,1),border-color .6s ease,background .6s ease}
.motion-ready .creed article{transform:translateX(28px)}
.motion-ready .creed.in-view article{transform:none}
.motion-ready .creed.in-view article:nth-child(2){transition-delay:.12s}.motion-ready .creed.in-view article:nth-child(3){transition-delay:.24s}
.creed article:hover{transform:translateX(10px);border-color:rgba(212,94,73,.7);background:linear-gradient(90deg,rgba(212,94,73,.08),transparent 65%)}
.procession:before,.horizon:before{content:"";position:absolute;z-index:2;inset:-30% auto -30% -35%;width:32%;background:linear-gradient(90deg,transparent,rgba(255,236,197,.22),transparent);transform:skewX(-14deg) translateX(-30vw);mix-blend-mode:screen;pointer-events:none}
.procession.in-view:before,.horizon.in-view:before{animation:chapter-light 2.4s .2s cubic-bezier(.16,1,.3,1) both}
.portrait-wrap:after,.captain figure:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,241,211,.2) 48%,transparent 64%);transform:translateX(-130%);pointer-events:none}
.in-view .portrait-wrap:after,.captain.in-view figure:after{animation:image-glint 1.8s .45s ease-out both}
.hero-shade{animation:hero-light 9s ease-in-out infinite alternate}
@keyframes chapter-light{to{transform:skewX(-14deg) translateX(165vw)}}
@keyframes image-glint{to{transform:translateX(130%)}}
@keyframes hero-light{to{opacity:.82}}
@media(max-width:760px){.motion-ready .chapter .section-no,.motion-ready .chapter h2,.motion-ready .chapter blockquote,.motion-ready .chapter .body-copy,.motion-ready .chapter .captain-copy>p:last-child{transform:translateY(24px);filter:blur(2px)}.motion-ready .chapter.in-view .section-no,.motion-ready .chapter.in-view h2,.motion-ready .chapter.in-view blockquote,.motion-ready .chapter.in-view .body-copy,.motion-ready .chapter.in-view .captain-copy>p:last-child{transform:none;filter:none}.procession:before,.horizon:before{width:44%}}
@media(prefers-reduced-motion:reduce){.motion-ready .chapter *,.portrait-wrap,.captain figure,.creed article{transform:none!important;filter:none!important;clip-path:none!important;transition:none!important}.procession:before,.horizon:before,.portrait-wrap:after,.captain figure:after,.hero-shade{animation:none!important}}
