html.intro-running,html.intro-running body{overflow:hidden}
.intro{position:fixed;inset:0;z-index:1000;background:#020813;color:#fff;overflow:hidden;font-family:'DM Sans',sans-serif;isolation:isolate;transition:opacity .75s ease,visibility .75s}
.intro[hidden]{display:none}.intro.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.intro canvas{position:absolute;inset:0;width:100%;height:100%}
.intro:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 25%,#01071170 100%);pointer-events:none}
.intro-brand{position:absolute;left:5%;top:max(28px,env(safe-area-inset-top));z-index:2;display:flex;align-items:center;gap:17px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#cadbdd}
.intro-brand img{width:105px;height:auto;background:#f5f4eb;border-radius:8px;padding:8px}
.intro-skip{position:absolute;right:5%;top:max(28px,env(safe-area-inset-top));z-index:4;min-height:44px;padding:10px 18px;border:1px solid #ffffff40;background:#07121d70;color:#fff;border-radius:30px;font-size:11px;backdrop-filter:blur(8px)}
.intro-copy{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px;pointer-events:none;animation:intro-copy 4.7s both}
.intro-copy p{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#bce9d1;margin:0 0 17px}
.intro-copy h2{font:500 clamp(39px,6.8vw,96px)/1.04 'Manrope',sans-serif;letter-spacing:-.065em;margin:0;text-shadow:0 2px 50px #020813}
.intro-copy h2 em{color:#c7f16c}.intro-copy small{margin-top:22px;font-size:12px;letter-spacing:.035em;color:#c5d7dc}
.intro-bottom{position:absolute;bottom:max(32px,env(safe-area-inset-bottom));left:5%;right:5%;z-index:2;display:flex;justify-content:space-between;align-items:end;font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:#b3c9cc}
.intro-track{width:130px;height:1px;background:#ffffff25;margin-top:13px;overflow:hidden}.intro-track span{display:block;height:100%;background:#c7f16c;transform-origin:left;animation:intro-progress 5.2s linear both}
.intro-flare{position:absolute;inset:0;z-index:3;background:#f5f4eb;opacity:0;pointer-events:none;animation:intro-flare 5.3s both}
.intro-replay{position:fixed;z-index:80;bottom:18px;right:18px;background:#17291f;color:#f5f4eb;border:1px solid #ffffff40;box-shadow:0 5px 25px #0002;border-radius:30px;padding:13px 18px;font-size:11px;min-height:44px}.intro-running .intro-replay{visibility:hidden}
html.intro-running .hero h1>span{animation-play-state:paused}
@keyframes intro-copy{0%,10%{opacity:0;transform:translateY(14px)}25%,65%{opacity:1;transform:translateY(0)}88%,100%{opacity:0;transform:translateY(-10px)}}
@keyframes intro-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes intro-flare{0%,76%{opacity:0}96%,100%{opacity:1}}
@media(max-width:600px){.intro-brand>span{display:none}.intro-brand img{width:95px}.intro-copy h2{font-size:clamp(39px,11vw,58px)}.intro-copy p{font-size:8px;letter-spacing:.22em}.intro-bottom{font-size:8px;letter-spacing:.1em}.intro-track{width:90px}.intro-bottom>span{max-width:125px;text-align:right;line-height:1.8}}
@media(prefers-reduced-motion:reduce){.intro-copy{animation:none}.intro-flare{animation:none}.intro-track span{animation:none}.intro{transition:none}}

/* Replay lives beside the contact action in the opening header. */
.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
header .intro-replay{position:static;z-index:auto;box-shadow:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;padding:12px 15px;border-color:#17291f30;background:transparent;color:var(--ink)}
header .intro-replay:hover{background:#17291f0a}
header .intro-replay>span:first-child{font-size:20px;line-height:1}
@media(max-width:1100px){.header-actions{order:2;margin-left:auto}}
@media(max-width:600px){header{padding-left:4%;padding-right:4%;gap:6px}header .brand img{width:82px}.header-actions{gap:6px}header .intro-replay{width:44px;height:44px;padding:0;flex-shrink:0}.replay-label{display:none}header .nav-cta{font-size:9px;padding:8px;gap:5px}}
