.topbar{position:fixed;top:0;left:0;height:3px;width:0;background:var(--orange);z-index:1100}
.cv-hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:radial-gradient(ellipse at 70% 60%,#1a1209,var(--bg) 65%)}
.cv-hero canvas,.cv-hero video,.stage canvas,.stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cv-copy{position:relative;z-index:2;padding:120px 8vw 150px;max-width:960px}
.cv-copy h1{font-size:clamp(3.2rem,9.5vw,8.6rem);line-height:.92;letter-spacing:-.04em}
.cv-copy p{max-width:520px;margin:28px 0 36px;color:var(--text-muted);font-size:1.15rem}
.hero-actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.cue{position:absolute;left:8vw;bottom:28px;z-index:2;color:var(--text-dim);font-size:.75rem;letter-spacing:.3em;text-transform:uppercase}
.cue::after{content:"";display:block;width:1px;height:46px;margin-top:10px;background:linear-gradient(var(--orange),transparent);animation:cue 1.8s infinite}
@keyframes cue{50%{transform:scaleY(.4);transform-origin:top}}
.journey{height:calc(800vh + 90vh);position:relative}
.stage{position:sticky;top:0;height:100vh;overflow:hidden;background:#06142e}
.stage video{opacity:0;transition:opacity .8s}
.vig{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#06142e 0,transparent 7%,transparent 93%,#06142e 100%),radial-gradient(ellipse at center,transparent 45%,rgba(6,20,48,.7)),linear-gradient(90deg,rgba(6,20,48,.65),transparent 60%)}
.copy{position:absolute;left:8vw;bottom:15vh;max-width:min(560px,84vw);opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s;pointer-events:none}
.copy.on{opacity:1;transform:none}
.copy small{color:var(--orange);font-weight:600;letter-spacing:.25em;text-transform:uppercase}
.copy h2{font-size:clamp(2.4rem,5.6vw,5.2rem);line-height:.94;margin:14px 0 20px;letter-spacing:-.035em}
.copy p{color:#cbd5e1;max-width:460px;font-size:1.1rem}
.hud{text-align:right;font-family:'Space Grotesk',sans-serif;position:absolute;right:90px;bottom:15vh;color:var(--text-muted);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase}
.rail{position:fixed;right:34px;top:50%;transform:translateY(-50%);height:44vh;width:2px;background:rgba(255,255,255,.18);z-index:900;opacity:0;transition:opacity .5s}
.rail.show{opacity:1}
.rail i{position:absolute;left:0;top:0;width:100%;height:0;background:var(--orange)}
.rail a{position:absolute;left:-5px;width:12px;height:12px;border-radius:50%;background:#1b2231;border:2px solid #3a4560;transform:translateY(-50%);transition:.3s}
.rail a.on{background:var(--orange);border-color:var(--orange)}
.rail a span{position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}
.rail a.on span{color:var(--text)}
@media(max-width:700px){.rail a span,.hud{display:none}.rail{right:14px}.copy{bottom:10vh}}
@media(prefers-reduced-motion:reduce){.cue::after{animation:none}}
.hud b,.hud span{display:block}.hud span{color:var(--orange);margin-top:6px}
.vig::before{content:"";position:absolute;inset:11vh 4vw;--c:rgba(34,78,158,.85);background:linear-gradient(var(--c),var(--c)) 0 0/28px 2px,linear-gradient(var(--c),var(--c)) 0 0/2px 28px,linear-gradient(var(--c),var(--c)) 100% 0/28px 2px,linear-gradient(var(--c),var(--c)) 100% 0/2px 28px,linear-gradient(var(--c),var(--c)) 0 100%/28px 2px,linear-gradient(var(--c),var(--c)) 0 100%/2px 28px,linear-gradient(var(--c),var(--c)) 100% 100%/28px 2px,linear-gradient(var(--c),var(--c)) 100% 100%/2px 28px;background-repeat:no-repeat}
.stage::before{content:"\25CF  LIVE ROUTE";position:absolute;z-index:3;top:13vh;left:5vw;font-size:.72rem;letter-spacing:.25em;color:#93c5fd;animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.25}}
.stage::after{content:"";position:absolute;inset:-50%;pointer-events:none;mix-blend-mode:overlay;opacity:.35;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='.8' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain .5s steps(4) infinite}
@keyframes grain{25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-2%)}}
.cv-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px)}
.cv-copy h1{text-shadow:0 0 60px rgba(34,78,158,.25)}
@media(prefers-reduced-motion:reduce){.stage::after,.stage::before{animation:none}}
.cv-hero.has-vid #globe{opacity:0}.cv-hero.has-vid{background:#06142e}.cv-hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(6,20,48,.78),rgba(6,20,48,.25) 60%,transparent),linear-gradient(0deg,rgba(6,20,48,.6),transparent 30%)}
.services-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}.process-grid{grid-template-columns:repeat(3,1fr)}.about-line{margin-top:48px;color:var(--text-muted);letter-spacing:.06em;text-align:center}@media(max-width:800px){.process-grid{grid-template-columns:1fr}}

/* brand: hero video lights shifted from orange to theme blue */
.cv-hero video{filter:sepia(1) saturate(2.4) hue-rotate(178deg) brightness(1.08)}

/* ===== Finale: company name after Arrival ===== */
.stage.fin .copy.on{opacity:0;transform:translateY(-24px)}
.stage.fin .hud{opacity:0}
.hud{transition:opacity .6s}
.finale{position:absolute;inset:0;z-index:5;display:grid;place-items:center;text-align:center;pointer-events:none;perspective:900px}
.finale::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(6,20,46,.7),rgba(6,20,46,.94));opacity:0;transition:opacity 1s}
.stage.fin .finale::before{opacity:1}
.finale-in{position:relative;padding:0 6vw}
.finale-eyebrow{display:block;font:600 .8rem 'Inter',sans-serif;letter-spacing:.5em;text-transform:uppercase;color:#93c5fd;opacity:0;transform:translateY(12px);transition:opacity .6s,transform .6s}
.stage.fin .finale-eyebrow{opacity:1;transform:none;transition-delay:.15s}
.finale-name{margin:22px 0 18px;line-height:.95;font-family:'Space Grotesk','Inter',sans-serif;font-weight:700;color:#fff;letter-spacing:-.03em}
.fn-line{display:block;white-space:nowrap;font-size:clamp(2.1rem,8.6vw,7.6rem);text-shadow:0 0 40px rgba(59,130,246,.55)}
.fn-line.sm{font-size:clamp(1.3rem,4.4vw,3.6rem);margin-top:.18em;color:#93c5fd;letter-spacing:.06em;text-shadow:0 0 28px rgba(59,130,246,.5)}
.fn-l{display:inline-block;opacity:0;transform:translateY(46px) rotateX(-80deg) scale(.7);filter:blur(14px);transform-origin:50% 100%;transition:opacity .45s,transform .45s,filter .45s}
.fn-l.sp{width:.28em}
.stage.fin .fn-l{opacity:1;transform:none;filter:blur(0);transition:opacity .7s ease,transform .95s cubic-bezier(.2,1.25,.3,1),filter .8s ease;transition-delay:calc(var(--i)*55ms + .35s)}
.finale-bar{display:block;width:min(360px,60vw);height:3px;margin:0 auto;border-radius:3px;background:linear-gradient(90deg,transparent,#3b82f6,#eb2634,transparent);transform:scaleX(0);transition:transform .6s}
.stage.fin .finale-bar{transform:scaleX(1);transition:transform 1.2s cubic-bezier(.2,.8,.2,1) 1.5s}
.finale-tag{margin-top:20px;font:600 clamp(.8rem,1.6vw,1.1rem) 'Inter',sans-serif;letter-spacing:.55em;text-transform:uppercase;color:#cbd5e1;opacity:0;transform:translateY(12px);transition:opacity .5s,transform .5s}
.stage.fin .finale-tag{opacity:1;transform:none;transition:opacity .9s ease 2s,transform .9s ease 2s}
.finale-cue{position:absolute;left:50%;bottom:6vh;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:#93c5fd;opacity:0;transition:opacity .6s}
.finale-cue i{width:1px;height:34px;background:linear-gradient(#93c5fd,transparent);animation:cue 1.6s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.stage.fin .finale-cue{opacity:.9;transition-delay:2.8s}
@media(max-width:700px){.finale-eyebrow,.finale-tag{letter-spacing:.3em}}
@media(prefers-reduced-motion:reduce){.fn-l,.finale-eyebrow,.finale-tag,.finale-bar,.finale::before{transition:none!important}.finale-cue i{animation:none}}
