/* A gentle branded crossfade and a staggered, masked title. No loading gate. */
.site-intro,.intro-skip{display:none}
.intro-pending .site-intro,.intro-opening .site-intro{display:block;position:fixed;inset:0;z-index:90;pointer-events:none;color:var(--cream)}
.intro-curtain{position:absolute;inset:0;background:#13231e;will-change:opacity}
.intro-signature{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px;text-align:center}
.intro-signature img{width:76px;height:76px;object-fit:contain;border-radius:50%;margin-bottom:22px}
.intro-wordmark{font:400 clamp(40px,5vw,66px)/.98 var(--serif);letter-spacing:-.025em}
.intro-wordmark em{font-weight:400;color:var(--gold)}
.intro-rule{width:64px;height:1px;background:var(--gold);margin:28px 0 20px;transform-origin:center;animation:intro-rule-in .9s cubic-bezier(.2,.7,.2,1) both}
.intro-place{font:500 10px/1.5 var(--sans);text-transform:uppercase;letter-spacing:.2em;opacity:.7}
.intro-motto{position:absolute;bottom:36px;left:5.5vw;font:normal 24px/1.2 var(--serif);opacity:.7}
.intro-pending .intro-skip,.intro-opening .intro-skip{display:flex;position:fixed;right:5.5vw;bottom:28px;z-index:91;align-items:center;gap:18px;min-height:48px;padding:12px 2px;background:transparent;color:var(--cream);font-size:12px;border-bottom:1px solid #eee9df50}
.intro-pending .intro-signature{animation:intro-signature-in .9s cubic-bezier(.2,.7,.2,1) both}
.intro-pending .hero-line,.intro-opening .hero-line,.intro-pending .hero-enter,.intro-opening .hero-enter{animation:none}
.intro-done .hero-line,.intro-done .hero-enter{animation:none}
.intro-pending .hero-enter,.intro-pending .hero-film,.intro-pending .hero-footer,.intro-pending .hero-note,.intro-pending .site-header{opacity:0}
.intro-title-ready .hero-line{padding:.02em .06em .1em 0;margin-bottom:-.1em;overflow:hidden;overflow:clip}
.intro-title-ready .intro-char{display:inline-block;white-space:pre;transform-origin:50% 100%}
.intro-pending .intro-char{opacity:0;transform:translate3d(0,115%,0) rotate(4deg)}
.intro-opening .intro-curtain{animation:intro-curtain-out 1.8s cubic-bezier(.4,0,.2,1) both}
.intro-opening .intro-signature{animation:intro-signature-out 1.1s cubic-bezier(.4,0,.2,1) both}
.intro-opening .intro-motto,.intro-opening .intro-skip{animation:intro-fade-out 1s ease both}
.intro-opening .hero-photo{animation:intro-landscape-in 3s cubic-bezier(.16,1,.3,1) both}
.intro-opening .intro-char{animation:intro-letter-in 1.6s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.5s + var(--letter-order)*.03s)}
.intro-opening .hero-enter{animation:intro-copy-in 1.2s cubic-bezier(.16,1,.3,1) both;animation-delay:1.15s}
.intro-opening .hero .eyebrow{animation-delay:.7s}
.intro-opening .hero-buttons{animation-delay:1.25s}
.intro-opening .site-header{animation:intro-copy-in 1s cubic-bezier(.16,1,.3,1) .7s both}
.intro-opening .hero-film,.intro-opening .hero-footer,.intro-opening .hero-note{animation:intro-copy-in 1.2s cubic-bezier(.16,1,.3,1) 1.45s both}
.intro-pending .gaika-layer,.intro-opening .gaika-layer{visibility:hidden}
@keyframes intro-curtain-out{from{opacity:1}to{opacity:0}}
@keyframes intro-signature-in{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}
@keyframes intro-signature-out{from{opacity:1;transform:none}to{opacity:0;transform:translate3d(0,-10px,0)}}
@keyframes intro-rule-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes intro-fade-out{to{opacity:0;visibility:hidden}}
@keyframes intro-landscape-in{from{scale:1.025}to{scale:1}}
@keyframes intro-letter-in{from{opacity:0;transform:translate3d(0,115%,0) rotate(4deg)}to{opacity:1;transform:translate3d(0,0,0) rotate(0)}}
@keyframes intro-copy-in{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media(max-width:600px){
 .intro-signature img{width:62px;height:62px;margin-bottom:20px}
 .intro-wordmark{font-size:48px}
 .intro-motto{left:24px;bottom:90px;font-size:21px}
 .intro-pending .intro-skip,.intro-opening .intro-skip{right:24px;bottom:24px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){
 .site-intro,.intro-skip,.intro-pending .site-intro,.intro-opening .site-intro,.intro-pending .intro-skip,.intro-opening .intro-skip{display:none!important}
 .intro-char,.intro-pending .intro-char{opacity:1;transform:none}
 .intro-pending .hero-enter,.intro-pending .hero-film,.intro-pending .hero-footer,.intro-pending .hero-note,.intro-pending .site-header{opacity:1}
 .intro-opening *{animation:none!important}
}
