/* A short branded curtain, using the approved logo's original vector paths. */
.site-transition{display:none;position:fixed;inset:0;z-index:100;place-items:center;background:#080e0b;color:var(--ink);overflow:hidden}
.intro-identity{width:min(780px,78vw);position:relative}
.intro-logo{display:block;width:100%;height:auto;overflow:visible}
.intro-skip{position:absolute;right:clamp(22px,4vw,65px);bottom:max(28px,env(safe-area-inset-bottom));padding:10px 2px;min-height:44px;font-size:.8125rem;letter-spacing:.12em;border-bottom:1px solid #c9a45170;color:#d8c698}
html[data-motion]{overflow:hidden}
html[data-motion] .site-transition{display:grid}
html[data-motion="intro"] body>:not(.site-transition):not(script){visibility:hidden}
html[data-motion="intro"] .intro-mark{animation:fluke-reveal 850ms cubic-bezier(.18,.7,.2,1) both}
html[data-motion="intro"] .intro-letter{animation:letter-reveal 260ms ease var(--letter-delay) both}
html[data-motion="intro"] .intro-rule{stroke-dasharray:1;stroke-dashoffset:1;animation:gold-trace 600ms cubic-bezier(.2,.7,.2,1) var(--rule-delay) both}
html[data-motion="intro"] .intro-skip{animation:letter-reveal 350ms ease 700ms both}
html[data-motion="intro"] .hero-brand,html[data-motion="intro"] .central-nav,html[data-motion="intro"] .central-nav a,html[data-motion="intro"] .central-nav:before,html[data-motion="intro"] .central-nav:after{animation-play-state:paused}
html[data-motion="revealing"] .intro-skip{display:none}
html[data-motion="revealing"] .site-transition{animation:curtain-open 720ms cubic-bezier(.76,0,.24,1) both}
html[data-motion="revealing"] .intro-identity{animation:identity-depart 420ms ease both}
html[data-motion="revealing"] .landing-banner .banner-image img{animation:photograph-arrive 1200ms cubic-bezier(.2,.7,.2,1) both}
@keyframes fluke-reveal{from{opacity:0;clip-path:inset(0 50% 0 50%)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes letter-reveal{from{opacity:0}to{opacity:1}}
@keyframes gold-trace{to{stroke-dashoffset:0}}
@keyframes curtain-open{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 100% 0)}}
@keyframes identity-depart{to{opacity:0;translate:0 -22px}}
@keyframes photograph-arrive{from{transform:scale(1.025);filter:brightness(.82)}to{transform:scale(1);filter:brightness(1)}}
/* The duplicated visual label rolls through a mask; each link has one accessible name. */
.nav-label{position:relative;display:block;overflow:hidden;line-height:1.4}
.nav-front,.nav-back{display:block;transition:transform 460ms cubic-bezier(.22,.75,.2,1),color 320ms ease}
.nav-back{position:absolute;inset:0;color:var(--gold);transform:translateY(110%)}
a:hover>.nav-label .nav-front,a:focus-visible>.nav-label .nav-front{transform:translateY(-110%)}
a:hover>.nav-label .nav-back,a:focus-visible>.nav-label .nav-back{transform:translateY(0)}
/* Repeat visits use immediate page content; hover and keyboard-focus feedback remain. */
html[data-return-visit="true"] .hero-brand,html[data-return-visit="true"] .central-nav,html[data-return-visit="true"] .central-nav a,html[data-return-visit="true"] .central-nav:before,html[data-return-visit="true"] .central-nav:after{animation:none}
@media(max-width:600px){.intro-identity{width:92vw}.intro-skip{font-size:.75rem;right:24px;bottom:max(25px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.site-transition{display:none!important}html[data-motion]{overflow:visible}html[data-motion] body>:not(.site-transition):not(script){visibility:visible}.nav-front,.nav-back{transition:none}.nav-back{display:none}a:hover>.nav-label .nav-front,a:focus-visible>.nav-label .nav-front{transform:none;color:var(--gold)}}
