
/* Layout: a voyage outward. Hero launch, a pinned orbit for the ten services, a pinned film strip of work, then landfall at Saturn. */
:root{
  --void:#04050c;      /* deep space, blue-biased black */
  --nebula:#11142b;    /* raised surfaces */
  --gold:#e9b54d;      /* logo gold */
  --flare:#ff8a2b;     /* solar orange, the original CTA colour */
  --star:#f3efe6;      /* text */
  --dust:#9a9db5;      /* secondary text */
  --line:rgba(243,239,230,.12);
  --display:"Unbounded","Arial Black",system-ui,sans-serif;
  --body:"Lexend",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gut:max(16px,env(safe-area-inset-left,0px));
  --gutr:max(16px,env(safe-area-inset-right,0px));
  --ease:cubic-bezier(.22,1,.36,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--void);overflow-x:clip}
body{background:var(--void);color:var(--star);font-family:var(--body);font-size:17px;line-height:1.6;font-weight:300;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--void)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:6px}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.02;margin:0;text-wrap:balance;letter-spacing:-.02em}
p{margin:0}
.wrap{max-width:1240px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gutr)}
.lede{color:var(--dust);font-size:clamp(17px,1.4vw,20px);max-width:52ch}

/* ---------- starfield ---------- */
#stars{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
main,header,footer{position:relative;z-index:1}

/* ---------- cursor glow ---------- */
.glow{position:fixed;left:0;top:0;width:420px;height:420px;margin:-210px 0 0 -210px;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(233,181,77,.13),transparent 62%);transform:translate3d(-999px,-999px,0);transition:opacity .4s}
.dot{position:fixed;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--gold);pointer-events:none;z-index:80;
  mix-blend-mode:difference;transform:translate3d(-99px,-99px,0);transition:width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease)}
.dot.big{width:56px;height:56px;margin:-28px 0 0 -28px}
@media (hover:none),(pointer:coarse){.glow,.dot{display:none}}

/* ---------- nav ---------- */
.nav{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;padding:14px var(--gutr) 0 var(--gut);transition:transform .5s var(--ease)}
.nav.hide{transform:translateY(-120%)}
.nav-in{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:24px;padding:10px 12px 10px 20px;border-radius:999px;
  background:rgba(10,12,28,.55);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border:1px solid var(--line)}
.brand img{height:46px;width:auto}
.menu{display:flex;gap:4px;margin-left:auto;list-style:none;padding:0;margin-block:0;align-items:center}
.menu>li{position:relative}
.menu a,.menu button{display:block;padding:10px 16px;border-radius:999px;font:400 15px var(--body);color:var(--star);background:none;border:0;cursor:pointer;transition:background .3s,color .3s}
.menu a:hover,.menu button:hover{background:rgba(243,239,230,.08)}
.drop{position:absolute;top:calc(100% + 12px);left:50%;width:min(560px,90vw);translate:-50% 0;display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:10px;
  background:rgba(12,14,32,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:22px;
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top center;transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s}
.has-drop:hover .drop,.has-drop:focus-within .drop,.has-drop.open .drop{opacity:1;visibility:visible;transform:none}
.drop a{display:flex;align-items:center;gap:12px;border-radius:14px;padding:8px 12px;font-size:14px}
.drop img{width:30px;height:30px;transition:transform .6s var(--ease)}
.drop a:hover img{transform:rotate(40deg) scale(1.15)}
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;font:500 15px var(--body);border:0;cursor:pointer;
  background:var(--flare);color:#1a0d02;overflow:hidden;isolation:isolate;transition:transform .4s var(--ease),box-shadow .4s}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,var(--gold),#ffd88a);z-index:-1;transform:translateX(-101%);transition:transform .5s var(--ease)}
.btn:hover::before{transform:none}
.btn:hover{box-shadow:0 10px 40px -8px rgba(255,138,43,.6)}
.btn.ghost{background:transparent;color:var(--star);box-shadow:inset 0 0 0 1px rgba(243,239,230,.3)}
.btn.ghost::before{background:var(--star)}
.btn.ghost:hover{color:var(--void)}
.nav .btn{padding:12px 22px}
.burger{display:none;margin-left:auto;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:none;cursor:pointer;position:relative}
.burger span{position:absolute;left:14px;right:14px;height:1.5px;background:var(--star);transition:transform .4s var(--ease),top .4s var(--ease)}
.burger span:nth-child(1){top:19px}.burger span:nth-child(2){top:26px}
.burger[aria-expanded="true"] span:nth-child(1){top:22px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){top:22px;transform:rotate(-45deg)}
.sheet{position:fixed;inset:0;z-index:45;background:rgba(4,5,12,.96);backdrop-filter:blur(10px);padding:calc(100px + env(safe-area-inset-top,0px)) var(--gutr) 40px var(--gut);
  overflow-y:auto;clip-path:circle(0 at calc(100% - 40px) 40px);transition:clip-path .8s var(--ease);visibility:hidden}
.sheet.open{clip-path:circle(150% at calc(100% - 40px) 40px);visibility:visible}
.sheet a{display:block;font:500 clamp(24px,7vw,34px)/1.2 var(--display);padding:8px 0}
.sheet .sub a{font:400 16px var(--body);color:var(--dust);padding:6px 0}
.sheet .sub{columns:2;column-gap:20px;margin:6px 0 18px}
@media (max-width:980px){.menu,.nav .btn{display:none}.burger{display:block}}

/* ---------- hero ---------- */
.hero{overflow-x:clip;min-height:min(100svh,980px);display:grid;align-items:center;padding-top:120px;padding-bottom:80px;position:relative}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:20px}
.kicker{font-size:clamp(16px,1.6vw,20px);color:var(--gold);letter-spacing:.01em;margin-bottom:18px;display:flex;gap:12px;align-items:center}
.kicker::before{content:"";width:40px;height:1px;background:var(--gold)}
.hero h1{font-size:clamp(44px,8.6vw,126px);font-weight:900;letter-spacing:-.045em;line-height:.9}
.hero h1 .row{display:block;overflow:hidden;white-space:nowrap;padding-bottom:.06em}
.hero h1 .ch{display:inline-block;will-change:transform}
.hero h1 .outline{color:transparent;-webkit-text-stroke:1.5px var(--star)}
.hero .lede{margin-top:28px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.astro-wrap{position:relative;aspect-ratio:1;max-width:clamp(420px,36vw,640px);width:100%;justify-self:center}
.orbit{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(233,181,77,.25)}
.orbit.o2{inset:14%;border-color:rgba(243,239,230,.1);border-style:dashed}
.orbit .sat{position:absolute;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 18px 4px rgba(233,181,77,.6)}
.spin{animation:spin 26s linear infinite}.spin.rev{animation-duration:40s;animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.astro{position:absolute;inset:8%;animation:float 7s ease-in-out infinite;filter:drop-shadow(0 30px 60px rgba(0,0,0,.6))}
.astro img{width:100%;height:100%;object-fit:contain}
@keyframes float{0%,100%{transform:translateY(-10px) rotate(-4deg)}50%{transform:translateY(14px) rotate(3deg)}}
.rocks{position:absolute;width:42%;right:-12%;bottom:-6%;opacity:.85;animation:float 11s ease-in-out infinite reverse}
.scroll-cue{position:absolute;left:50%;bottom:26px;translate:-50% 0;width:26px;height:42px;border-radius:20px;border:1px solid rgba(243,239,230,.35)}
.scroll-cue::after{content:"";position:absolute;left:50%;top:8px;width:3px;height:8px;margin-left:-1.5px;border-radius:3px;background:var(--gold);animation:cue 1.8s var(--ease) infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(16px)}}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.astro-wrap{max-width:min(260px,62vw);order:-1;margin-bottom:-10px}.scroll-cue{display:none}}

/* ---------- steps ---------- */
.steps{padding-block:clamp(80px,12vw,160px);position:relative;overflow:hidden}
.steps-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.steps h2{font-size:clamp(38px,6.4vw,92px);font-weight:900;letter-spacing:-.04em}
.steps h2 span{display:block}
.steps .lede{margin-top:24px}
.duo{position:relative;height:clamp(360px,44vw,560px)}
.duo img{position:absolute;filter:drop-shadow(0 30px 50px rgba(0,0,0,.55))}
.duo .a1{width:44%;left:6%;top:4%}
.duo .a2{width:52%;right:2%;bottom:0}
.tether{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.tether path{fill:none;stroke:var(--gold);stroke-width:1.2;stroke-dasharray:4 7;opacity:.55}
@media (max-width:860px){.steps-grid{grid-template-columns:1fr}}

/* ---------- marquee ---------- */
.marquee{border-block:1px solid var(--line);padding-block:26px;overflow:hidden;position:relative;background:rgba(17,20,43,.4)}
.marquee .track{display:flex;width:max-content;animation:marq 32s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee span{font:500 clamp(26px,4vw,52px)/1 var(--display);letter-spacing:-.02em;padding-inline:28px;display:flex;align-items:center;gap:56px;white-space:nowrap}
.marquee span::after{content:"";width:14px;height:14px;background:var(--gold);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.marquee span:nth-child(even){color:transparent;-webkit-text-stroke:1px var(--dust)}
@keyframes marq{to{transform:translateX(-50%)}}
.marquee-note{color:var(--dust);text-align:center;margin-top:18px;font-size:15px}

/* ---------- services orbit ---------- */
.services{padding-block:clamp(90px,12vw,160px) 40px}
.svc-head{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;margin-bottom:clamp(40px,7vw,90px)}
.svc-head h2{font-size:clamp(36px,5.6vw,80px);font-weight:900;letter-spacing:-.04em}
@media (max-width:860px){.svc-head{grid-template-columns:1fr}}
.system{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px)}
.stage{position:sticky;top:12vh;height:76vh;display:grid;place-items:center}
.stage-in{position:relative;width:min(100%,560px);aspect-ratio:1}
.ring{position:absolute;border-radius:50%;border:1px solid var(--line);inset:0}
.ring.r2{inset:12%}.ring.r3{inset:24%;border-color:rgba(233,181,77,.22)}
.wheel{position:absolute;inset:0;transition:transform 1.2s var(--ease)}
.wheel .mk{position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px;border-radius:50%;background:var(--nebula);border:1px solid var(--dust);transition:background .5s,border-color .5s,box-shadow .5s}
.wheel .mk.on{background:var(--gold);border-color:var(--gold);box-shadow:0 0 22px 6px rgba(233,181,77,.55)}
.planet{position:absolute;inset:27%;display:grid;place-items:center}
.planet img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(.6) rotate(-30deg);transition:opacity .8s var(--ease),transform 1.1s var(--ease);filter:drop-shadow(0 0 60px rgba(255,170,90,.18))}
.planet img.on{opacity:1;transform:none}
.planet img.on.turn{animation:turn 60s linear infinite}
@keyframes turn{to{rotate:360deg}}
.stage-label{position:absolute;left:0;right:0;bottom:-6%;text-align:center;font:500 14px var(--body);color:var(--gold);letter-spacing:.02em}
.svc-list{list-style:none;margin:0;padding:0}
.svc{padding-block:clamp(36px,9vh,90px);border-top:1px solid var(--line);opacity:.32;transition:opacity .6s var(--ease)}
.svc.on{opacity:1}
.svc:last-child{border-bottom:1px solid var(--line)}
.svc .num{font:500 14px var(--body);color:var(--gold);font-variant-numeric:tabular-nums}
.svc h3{font-size:clamp(26px,3.2vw,44px);margin:10px 0 14px;letter-spacing:-.03em;transition:transform .6s var(--ease)}
.svc.on h3{transform:translateX(10px)}
.svc p{color:var(--dust);max-width:46ch}
.svc a.more{display:inline-flex;margin-top:18px;font-weight:500;color:var(--star);border-bottom:1px solid var(--gold);padding-bottom:3px;transition:color .3s,gap .3s;gap:8px}
.svc a.more:hover{color:var(--gold);gap:14px}
.svc .mini{display:none;width:120px;height:120px;margin-bottom:16px}
@media (max-width:860px){.system{grid-template-columns:1fr}.stage{display:none}.svc{opacity:1}.svc .mini{display:block;animation:turn 40s linear infinite}.svc.on h3{transform:none}}

/* ---------- sky ---------- */
.sky{position:relative;padding-block:clamp(90px,14vw,200px);overflow:hidden;margin-top:60px}
.sky-bg{position:absolute;inset:-10% 0;background:url(/assets/sun-space.webp) center/cover no-repeat;opacity:.55;will-change:transform}
.sky::after{content:"";position:absolute;inset:0;background:linear-gradient(var(--void),transparent 30%,transparent 70%,var(--void))}
.sky .wrap{position:relative;z-index:1}
.sky h2{font-size:clamp(40px,8vw,120px);font-weight:900;letter-spacing:-.045em;max-width:12ch}
.sky h2 .w{display:inline-block;opacity:.15;transition:opacity .2s}
.sky .lede{margin-top:30px;color:var(--star);font-size:clamp(18px,1.8vw,24px)}

/* ---------- work ---------- */
.work{padding-block:clamp(90px,12vw,150px);overflow:hidden}
.work-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:48px}
.work h2{font-size:clamp(36px,5.6vw,80px);font-weight:900;letter-spacing:-.04em}
.strip{display:flex;gap:22px;width:max-content;padding-left:var(--gut);padding-right:var(--gutr)}
.frame{margin:0;position:relative;width:clamp(240px,26vw,380px);aspect-ratio:4/5;border-radius:24px;overflow:hidden;flex:none;background:var(--nebula);transform-style:preserve-3d}
.frame:nth-child(even){margin-top:60px}
.frame img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform 1.2s var(--ease)}
.frame:hover img{transform:scale(1.02)}
.frame figcaption{position:absolute;left:16px;right:16px;bottom:14px;font-size:14px;color:var(--star);text-shadow:0 2px 12px rgba(0,0,0,.8)}
@media (max-width:860px){.work .scroller{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.frame{scroll-snap-align:center}.frame:nth-child(even){margin-top:0}}

/* ---------- cta ---------- */
.cta{position:relative;padding-block:clamp(110px,14vw,200px) clamp(60px,8vw,110px);text-align:center;overflow:hidden}
.cta .saturn{width:min(760px,96%);margin:0 auto -6%;animation:float 9s ease-in-out infinite;filter:drop-shadow(0 40px 80px rgba(233,181,77,.18))}
.cta h2{font-size:clamp(36px,7.4vw,108px);font-weight:900;letter-spacing:-.05em;position:relative}
.cta h2 span{display:block}
.cta h2 .outline{color:transparent;-webkit-text-stroke:1.5px var(--gold)}
.cta p{color:var(--dust);margin:26px auto 0;max-width:44ch}
.cta .btn{margin-top:40px;padding:20px 36px;font-size:17px}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding-block:56px calc(36px + env(safe-area-inset-bottom,0px))}
.foot{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:32px}
.foot img{height:54px;width:auto}
.foot h4{font:500 15px var(--body);color:var(--gold);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot a{color:var(--dust);font-size:15px;transition:color .3s}
.foot a:hover{color:var(--star)}
.foot p{color:var(--dust);font-size:15px;margin-top:16px;max-width:30ch}
.legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line);color:var(--dust);font-size:14px}
@media (max-width:860px){.foot{grid-template-columns:1fr 1fr}}

/* ---------- reveal / loader ---------- */
.loader{position:fixed;inset:0;z-index:100;background:var(--void);display:grid;place-items:center;transition:opacity .8s var(--ease),visibility .8s}
.loader.done{opacity:0;visibility:hidden}
.loader img{width:min(320px,70vw);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.5;transform:scale(.97)}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .svc{opacity:1}.sky h2 .w{opacity:1}
}
[hidden]{display:none!important}

/* ================= multi-page additions ================= */
.menu a[aria-current="page"],.menu button[aria-current="page"]{color:var(--gold)}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--gold);color:var(--void);padding:10px 16px;border-radius:999px}
.skip:focus{left:16px}

/* page transition curtain */
.curtain{position:fixed;inset:0;z-index:150;pointer-events:none;background:var(--void);transform:scaleY(0);transform-origin:bottom}
.curtain::after{content:"";position:absolute;left:50%;top:50%;width:90px;height:90px;margin:-45px;border-radius:50%;border:1px solid var(--gold);border-top-color:transparent;animation:spin 1s linear infinite;opacity:.8}
.curtain.in{animation:curtainIn .55s var(--ease) forwards}
.curtain.out{transform:scaleY(1);transform-origin:top;animation:curtainOut .7s var(--ease) .05s forwards}
@keyframes curtainIn{to{transform:scaleY(1)}}
@keyframes curtainOut{to{transform:scaleY(0)}}

/* inner-page hero */
.phero{padding-top:clamp(140px,18vw,210px);padding-bottom:clamp(50px,7vw,90px);position:relative}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--dust);margin-bottom:22px;list-style:none;padding:0}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.5}
.crumbs a:hover{color:var(--gold)}
.phero h1{font-size:clamp(40px,7vw,104px);font-weight:900;letter-spacing:-.045em;line-height:.95;max-width:14ch}
.phero .lede{margin-top:26px}
.phero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.phero-planet{position:relative;aspect-ratio:1;max-width:460px;width:100%;justify-self:center}
.phero-planet img{position:absolute;inset:10%;width:80%;height:80%;object-fit:contain;animation:turn 80s linear infinite;filter:drop-shadow(0 0 80px rgba(255,170,90,.2))}
.phero-planet img.wide{inset:20% -10%;width:120%;height:60%;animation:float 9s ease-in-out infinite}
.phero-planet .orbit{inset:0}
@media (max-width:860px){.phero-grid{grid-template-columns:1fr}.phero-planet{max-width:240px;order:-1;margin-bottom:-20px}}

.section{padding-block:clamp(70px,10vw,130px)}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;margin-bottom:clamp(36px,6vw,70px)}
.section-head h2,.h2{font-size:clamp(32px,4.8vw,64px);font-weight:900;letter-spacing:-.04em}
@media (max-width:860px){.section-head{grid-template-columns:1fr}}

/* process (a real sequence, so numbered) */
.process{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative;counter-reset:step}
.process::before{content:"";position:absolute;left:0;right:0;top:27px;height:1px;background:var(--line)}
.process::after{content:"";position:absolute;left:0;top:27px;height:1px;width:100%;background:linear-gradient(90deg,var(--gold),var(--flare));transform-origin:left;transform:scaleX(var(--p,1))}
.process li{position:relative;padding-top:76px}
.process li::before{counter-increment:step;content:counter(step);position:absolute;top:0;left:0;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  font:700 18px var(--display);background:var(--void);border:1px solid var(--gold);color:var(--gold)}
.process h3{font-size:22px;margin-bottom:10px}
.process p{color:var(--dust);font-size:16px}
@media (max-width:860px){.process{grid-template-columns:1fr;gap:34px}.process::before,.process::after{left:27px;right:auto;top:0;bottom:0;width:1px;height:auto;transform:scaleY(var(--p,1));transform-origin:top}.process li{padding:4px 0 0 80px}}

/* checklist */
.ticks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.ticks li{padding:18px 0 18px 40px;border-top:1px solid var(--line);position:relative}
.ticks li::before{content:"";position:absolute;left:4px;top:24px;width:14px;height:14px;background:var(--gold);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.ticks strong{display:block;font-weight:500;color:var(--star)}
.ticks span{color:var(--dust);font-size:16px}
@media (max-width:760px){.ticks{grid-template-columns:1fr}}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.chips li{padding:10px 18px;border-radius:999px;border:1px solid var(--line);font-size:15px;transition:border-color .3s,color .3s}
.chips li:hover{border-color:var(--gold);color:var(--gold)}

/* faq */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 0;font:500 clamp(18px,1.8vw,22px)/1.35 var(--body)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);position:relative;transition:transform .5s var(--ease),border-color .3s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:10px;right:10px;top:16px;height:1.5px;background:var(--gold)}
.faq summary i::after{transform:rotate(90deg);transition:transform .4s var(--ease)}
.faq details[open] summary i{transform:rotate(180deg);border-color:var(--gold)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq .ans{overflow:hidden;color:var(--dust);max-width:70ch}
.faq .ans p{padding-bottom:24px}

/* service hub cards */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:18px}
.scard{position:relative;display:flex;flex-direction:column;gap:14px;padding:28px;border-radius:26px;background:linear-gradient(160deg,rgba(17,20,43,.85),rgba(17,20,43,.35));border:1px solid var(--line);overflow:hidden;isolation:isolate;transition:border-color .4s,transform .6s var(--ease)}
.scard::after{content:"";position:absolute;inset:auto -30% -60% -30%;height:120%;background:radial-gradient(closest-side,var(--tint,rgba(233,181,77,.25)),transparent);opacity:0;transition:opacity .6s;z-index:-1}
.scard:hover{border-color:rgba(233,181,77,.5);transform:translateY(-6px)}
.scard:hover::after{opacity:1}
.scard img{width:96px;height:96px;object-fit:contain;transition:transform 1.2s var(--ease)}
.scard:hover img{transform:rotate(60deg) scale(1.1)}
.scard h3{font-size:22px;letter-spacing:-.02em}
.scard p{color:var(--dust);font-size:15.5px}
.scard .go{margin-top:auto;font-weight:500;font-size:15px;color:var(--gold)}

/* prev/next */
.pn{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pn a{display:flex;align-items:center;gap:18px;padding:22px;border-radius:22px;border:1px solid var(--line);transition:border-color .3s,background .3s}
.pn a:hover{border-color:var(--gold);background:rgba(17,20,43,.6)}
.pn a.next{justify-content:flex-end;text-align:right}
.pn img{width:56px;height:56px;object-fit:contain}
.pn small{display:block;color:var(--dust);font-size:13px}
.pn b{font-weight:500}
@media (max-width:640px){.pn{grid-template-columns:1fr}.pn a.next{justify-content:flex-start;text-align:left;flex-direction:row-reverse}}

/* about */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.split p+p{margin-top:18px}
.split p{color:var(--dust)}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.value{padding:30px;border-radius:24px;border:1px solid var(--line);background:rgba(17,20,43,.45)}
.value h3{font-size:22px;margin:16px 0 10px}
.value p{color:var(--dust);font-size:16px}
.value img{width:64px;height:64px;object-fit:contain}
@media (max-width:860px){.values{grid-template-columns:1fr}}

/* blog */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.post{display:flex;flex-direction:column;border-radius:26px;overflow:hidden;border:1px solid var(--line);background:rgba(17,20,43,.5);transition:transform .6s var(--ease),border-color .4s}
.post:hover{transform:translateY(-6px);border-color:rgba(233,181,77,.5)}
.post .pimg{aspect-ratio:16/10;overflow:hidden}
.post .pimg img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.post:hover .pimg img{transform:scale(1.07)}
.post .pb{padding:24px;display:flex;flex-direction:column;gap:12px;flex:1}
.post .meta{font-size:13.5px;color:var(--gold)}
.post h3{font-size:21px;letter-spacing:-.02em;line-height:1.2}
.post p{color:var(--dust);font-size:15.5px}
@media (max-width:960px){.posts{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.posts{grid-template-columns:1fr}}
.article{max-width:720px;margin:0 auto}
.article .cover{border-radius:26px;overflow:hidden;margin-bottom:48px;aspect-ratio:16/8}
.article .cover img{width:100%;height:100%;object-fit:cover}
.prose{font-size:18.5px;line-height:1.75;color:#d9d6ce}
.prose h2{font-size:clamp(24px,2.6vw,32px);margin:48px 0 16px;letter-spacing:-.03em;color:var(--star)}
.prose p{margin:0 0 20px}
.prose ul{margin:0 0 22px;padding-left:22px}
.prose li{margin-bottom:10px}
.prose li::marker{color:var(--gold)}
.prose strong{color:var(--star);font-weight:500}
.progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:70;background:linear-gradient(90deg,var(--gold),var(--flare));transform-origin:left;transform:scaleX(0)}

/* contact */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,6vw,90px);align-items:start}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.form{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:clamp(22px,4vw,44px);border-radius:30px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(17,20,43,.9),rgba(17,20,43,.45));position:relative;overflow:hidden}
.form .full{grid-column:1/-1}
@media (max-width:640px){.form{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field label{font-size:14.5px;font-weight:500;color:var(--star)}
.field label .opt{color:var(--dust);font-weight:300}
.field input,.field select,.field textarea{width:100%;font:300 16px var(--body);color:var(--star);background:rgba(4,5,12,.6);border:1px solid rgba(243,239,230,.18);border-radius:14px;padding:14px 16px;transition:border-color .3s,box-shadow .3s;appearance:none;-webkit-appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:44px}
.field select option{background:var(--nebula)}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(233,181,77,.15)}
.field .err{font-size:13.5px;color:#ff9b7a;min-height:0}
.field.bad input,.field.bad select,.field.bad textarea{border-color:#ff9b7a}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pills label{cursor:pointer;position:relative}
.pills input{position:absolute;opacity:0;pointer-events:none}
.pills span{display:inline-block;padding:10px 16px;border-radius:999px;border:1px solid rgba(243,239,230,.2);font-size:14.5px;font-weight:400;transition:all .3s var(--ease)}
.pills input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--void)}
.pills input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.hp{position:absolute;left:-5000px}
.form-foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.form-foot p{font-size:14px;color:var(--dust);max-width:36ch}
.btn[disabled]{opacity:.7;cursor:progress}
.btn .spin-dot{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .8s linear infinite;display:none}
.btn.busy .spin-dot{display:inline-block}
.form-msg{grid-column:1/-1;padding:14px 18px;border-radius:14px;font-size:15px;display:none}
.form-msg.error{display:block;background:rgba(255,120,90,.12);border:1px solid rgba(255,155,122,.4);color:#ffc4b0}
.sent{display:none;text-align:center;padding:clamp(30px,6vw,60px) 10px}
.sent.show{display:block}
.sent .rocket{width:120px;margin:0 auto 20px;animation:float 5s ease-in-out infinite}
.sent h2{font-size:clamp(28px,4vw,44px);margin-bottom:14px}
.sent p{color:var(--dust);max-width:40ch;margin:0 auto}
.side-list{list-style:none;padding:0;margin:34px 0 0;display:grid;gap:0}
.side-list li{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.side-list li b{font-weight:500;display:block}
.side-list li span{color:var(--dust);font-size:15.5px}
.side-list img{width:40px;height:40px;flex:none;object-fit:contain}

/* 404 */
.lost{min-height:100svh;display:grid;place-items:center;text-align:center;padding-block:120px}
.lost .big{font:900 clamp(110px,26vw,320px)/.85 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--gold);position:relative}
.lost .big img{position:absolute;width:32%;left:34%;top:8%;animation:float 6s ease-in-out infinite}
.lost h1{font-size:clamp(26px,3.6vw,44px);margin:20px 0 14px}
.lost p{color:var(--dust);max-width:44ch;margin:0 auto 30px}
.row-btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* home: how we work + faq wrappers reuse .section */
.cta-band{padding-block:clamp(70px,9vw,120px);text-align:center;position:relative;overflow:hidden;border-top:1px solid var(--line)}
.cta-band h2{font-size:clamp(34px,6vw,84px);font-weight:900;letter-spacing:-.045em;max-width:16ch;margin:0 auto}
.cta-band p{color:var(--dust);margin:22px auto 34px;max-width:46ch}
.cta-band .ring-bg{position:absolute;left:50%;top:50%;width:min(900px,140vw);aspect-ratio:1;translate:-50% -50%;border-radius:50%;border:1px solid rgba(233,181,77,.15);z-index:-1}
.cta-band .ring-bg::after{content:"";position:absolute;inset:18%;border-radius:50%;border:1px dashed rgba(243,239,230,.08)}
@media (prefers-reduced-motion:reduce){.curtain{display:none}}
/* socials */
.socials{display:flex;flex-wrap:wrap;gap:10px}
.soc{display:inline-flex;align-items:center;gap:10px;padding:10px 16px 10px 12px;border-radius:999px;border:1px solid var(--line);font-size:14.5px;color:var(--star);transition:border-color .3s,background .3s,transform .4s var(--ease)}
.soc svg{width:20px;height:20px;flex:none;color:var(--gold);transition:transform .5s var(--ease)}
.soc:hover{border-color:var(--gold);background:rgba(233,181,77,.08);transform:translateY(-2px)}
.soc:hover svg{transform:rotate(-12deg) scale(1.15)}
.nav-soc{display:flex;gap:6px}
.nav-soc .soc{padding:9px;border:0}.nav-soc .soc span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:1140px){.nav-soc{display:none}}
.sheet .socials{margin-top:26px}
.sheet .soc{font:400 15px var(--body);display:inline-flex;padding:10px 16px 10px 12px}

/* ================= THEME: deep-navy planetarium (client reference) ================= */
:root{
  --void:#071427;        /* page navy */
  --void-2:#040b18;      /* deepest */
  --nebula:#0e2140;      /* raised navy */
  --gold:#62d6d2;        /* accent: teal (lines, active states) */
  --flare:#e6f1ff;       /* primary button: ice white */
  --star:#f4f7fb;
  --dust:#a7b4c8;
  --line:rgba(214,230,255,.13);
  --display:"Cinzel","Trajan Pro","Times New Roman",serif;
  --body:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --glow:0 0 22px rgba(170,215,255,.45),0 0 2px rgba(255,255,255,.9);
}
html{background:var(--void-2)}
body{background:radial-gradient(120% 90% at 50% 18%,#14305a 0%,#0b1b35 38%,#061024 70%,#040b18 100%) fixed var(--void-2);font-weight:400;font-size:16px}
h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:.01em;line-height:1.08}
.eyebrow{display:block;font:700 12px/1.2 var(--body);letter-spacing:.28em;text-transform:uppercase;color:var(--star);margin-bottom:14px}
.tline{display:block;width:44px;height:2px;background:var(--gold);border-radius:2px;margin:22px 0}
.tline.c{margin-inline:auto}

/* buttons: ice pills with glow */
.btn{background:var(--flare);color:#0a1830;font:700 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;padding:16px 28px;box-shadow:var(--glow)}
.btn::before{background:#ffffff}
.btn:hover{box-shadow:0 0 34px rgba(170,215,255,.7),0 0 2px #fff}
.btn.ghost{background:transparent;color:var(--star);box-shadow:inset 0 0 0 1px rgba(230,241,255,.45)}
.btn.ghost::before{background:var(--flare)}
.btn.ghost:hover{color:#0a1830}
.round{width:44px;height:44px;border-radius:50%;display:inline-grid;place-items:center;background:var(--flare);color:#0a1830;box-shadow:var(--glow);transition:transform .4s var(--ease),box-shadow .4s}
.round:hover{transform:scale(1.08);box-shadow:0 0 34px rgba(170,215,255,.7)}
.round svg{width:16px;height:16px}

/* nav: thin bar with divider, teal underline on active */
.nav{padding:0 var(--gutr) 0 var(--gut)}
.nav-in{max-width:1240px;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;border-bottom:1px solid var(--line);padding:16px 0}
.nav.scrolled .nav-in{background:transparent}
.nav::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(6,16,36,.85),rgba(6,16,36,0));opacity:0;transition:opacity .5s;pointer-events:none;z-index:-1}
.nav.scrolled::before{opacity:1}
.brand img{height:40px}
.menu a,.menu button{font:600 13px var(--body);letter-spacing:.02em;border-radius:0;padding:10px 14px;position:relative;background:none!important}
.menu a::after,.menu button::after{content:"";position:absolute;left:14px;right:14px;bottom:-17px;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .45s var(--ease)}
.menu a:hover::after,.menu button:hover::after,.menu [aria-current="page"]::after{transform:scaleX(1)}
.menu [aria-current="page"]{color:var(--star)}
.nav .btn{padding:11px 20px;font-size:11px}
.drop{background:rgba(9,22,44,.96);top:calc(100% + 20px)}
.burger{border-color:var(--line)}
.sheet{background:rgba(5,13,28,.97)}
.sheet a{font-family:var(--display);font-weight:500}

/* type scale on inner pages */
.phero h1{font-weight:500;letter-spacing:.01em;line-height:1.04;font-size:clamp(36px,5.2vw,74px)}
.section-head h2,.h2,.svc-head h2,.work h2,.steps h2,.cta-band h2{font-weight:500;letter-spacing:.01em}
.steps h2{font-size:clamp(36px,5.6vw,80px)}
.cta h2{font-weight:500;letter-spacing:.01em;font-size:clamp(34px,6.2vw,92px)}
.cta h2 .outline{-webkit-text-stroke:1px var(--gold)}
.sky h2{font-weight:500;letter-spacing:.01em}
.kicker{font:700 12px var(--body);letter-spacing:.28em;text-transform:uppercase;color:var(--star)}
.kicker::before{display:none}
.lede{color:var(--dust);font-size:clamp(15.5px,1.2vw,18px);line-height:1.75}
.crumbs{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
.scard,.value,.post,.form,.pn a{background:linear-gradient(160deg,rgba(20,44,82,.55),rgba(10,24,48,.35))}
.scard h3,.value h3,.post h3{font-weight:500;letter-spacing:.01em}
.process li::before{font-family:var(--display);font-weight:500;background:var(--void)}
.faq summary{font-family:var(--body);font-weight:500;font-size:clamp(16px,1.5vw,19px)}
.marquee{background:rgba(10,24,48,.5)}
.marquee span{font-family:var(--display);font-weight:500;letter-spacing:.04em}
.marquee span::after{clip-path:none;width:6px;height:6px;border-radius:50%}
.ticks li::before{clip-path:none;width:8px;height:8px;border-radius:50%;top:27px;box-shadow:0 0 12px var(--gold)}
.prose{color:#dbe4f0}
.prose h2{font-weight:500;letter-spacing:.01em}
.field input,.field select,.field textarea{background:rgba(4,11,24,.55)}
.pills input:checked+span{color:#0a1830}
.dot{background:var(--gold)}
.glow{background:radial-gradient(circle,rgba(98,214,210,.10),transparent 62%)}
.loader{background:var(--void-2)}
.curtain{background:var(--void-2)}
.lost .big{-webkit-text-stroke:1px var(--gold);font-family:var(--display);font-weight:500}
footer{background:rgba(4,11,24,.55)}
.foot h4{font:700 12px var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--star)}

/* ================= HOME: planet carousel hero ================= */
.ph{position:relative;height:100svh;min-height:620px;overflow:hidden}
.ph-planets{position:absolute;inset:0;pointer-events:none}
.ph-p{position:absolute;left:0;top:0;width:var(--S);height:var(--S);margin:calc(var(--S) / -2) 0 0 calc(var(--S) / -2);will-change:transform;pointer-events:auto;border:0;background:none;padding:0;cursor:pointer;border-radius:50%}
.ph-p img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 -10px 60px rgba(120,180,255,.18))}
.ph-p .spinner{width:100%;height:100%;animation:turn 140s linear infinite}
.ph-p.ringed .spinner{animation:none}
.ph-p.is-center{cursor:default}
.ph-p:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.ph-copy{position:absolute;left:0;right:0;top:calc(env(safe-area-inset-top,0px) + clamp(96px,14vh,150px));text-align:center;padding-inline:max(16px,env(safe-area-inset-left,0px));z-index:3}
.ph-copy h2{font-size:clamp(42px,7.4vw,104px);font-weight:500;letter-spacing:.02em;line-height:1}
.ph-copy p{max-width:520px;margin:0 auto;color:var(--star);opacity:.9;font-size:clamp(13.5px,1.05vw,15px);line-height:1.75}
.ph-copy .btn{margin-top:clamp(22px,4vh,40px)}
.ph-swap{transition:filter .55s var(--ease),opacity .55s var(--ease),transform .55s var(--ease)}
.ph.is-swapping .ph-swap{filter:blur(12px);opacity:0;transform:translateY(6px)}
.ph-lab{position:absolute;top:var(--labY,60%);z-index:3;font:500 13px var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--star);opacity:.85;background:none;border:0;cursor:pointer;padding:10px;transition:opacity .4s,color .4s}
.ph-lab:hover{opacity:1;color:var(--gold)}
.ph-lab.l{left:clamp(64px,8vw,130px)}
.ph-lab.r{right:clamp(64px,8vw,130px)}
.ph-down{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom,0px));translate:-50% 0;z-index:4;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(10,24,48,.65);backdrop-filter:blur(6px);color:var(--star);border:1px solid var(--line)}
.ph-down svg{width:16px;height:16px;animation:bob 2s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(4px)}}
.ph-count{position:absolute;right:max(16px,env(safe-area-inset-right,0px));bottom:max(26px,env(safe-area-inset-bottom,0px));z-index:4;font:600 12px var(--body);letter-spacing:.2em;color:var(--dust)}
.ph-count b{color:var(--star);font-weight:700}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* detail state (revealed on scroll) */
.ph-detail{position:absolute;left:0;right:0;top:50%;translate:0 -50%;z-index:3;pointer-events:none;opacity:0}
.ph-detail .wrap{display:grid;grid-template-columns:minmax(0,520px);}
.ph-detail h2{font-size:clamp(38px,5.4vw,78px);font-weight:500;letter-spacing:.02em;line-height:1}
.ph-detail p{color:var(--star);opacity:.88;font-size:clamp(13.5px,1.05vw,15px);line-height:1.8;max-width:44ch}
.ph-detail .acts{display:flex;align-items:center;gap:14px;margin-top:34px}
.ph-zoomcopy{position:absolute;right:max(24px,6vw);bottom:clamp(60px,12vh,140px);z-index:3;max-width:400px;text-align:right;opacity:0;pointer-events:none}
.ph-zoomcopy .tline{margin:0 0 18px auto}
.ph-zoomcopy p{color:var(--star);font-size:clamp(14px,1.1vw,16px);line-height:1.8;text-shadow:0 2px 20px rgba(0,0,0,.7)}
.ph-shade{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(55% 55% at 88% 86%,rgba(4,11,24,.88),rgba(4,11,24,.35) 60%,rgba(4,11,24,.2));opacity:0}

/* mobile focus card (no pinning) */
.focus-m{display:none}
@media (max-width:860px){
  .ph{min-height:640px}
  .ph-lab{top:auto;bottom:calc(max(18px,env(safe-area-inset-bottom,0px)) + 64px);font-size:11px;letter-spacing:.18em;padding:12px 6px;text-shadow:0 2px 10px rgba(0,0,0,.6)}
  .ph-lab.l{left:12px}.ph-lab.r{right:12px}
  .ph-lab.l::before{content:"\2039  "}.ph-lab.r::after{content:"  \203A"}
  .ph-copy{top:calc(env(safe-area-inset-top,0px) + 92px)}
  .ph-detail,.ph-zoomcopy,.ph-shade{display:none}
  .focus-m{display:block;padding-block:70px 30px}
  .focus-m h2{font-size:clamp(34px,9vw,52px)}
  .focus-m p{color:var(--dust);margin-top:4px}
  .focus-m .acts{display:flex;gap:12px;align-items:center;margin-top:26px}
}

/* service cards section on home */
.svc-grid .scard .lbl2{font:700 11px var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
/* inner hero, reference layout: copy left, planet right */
.phero .tline{margin:26px 0}
.phero .lede{margin-top:0;color:var(--star);opacity:.88}
.phero-planet{max-width:540px}
.phero-planet img{inset:0;width:100%;height:100%;animation:turn 160s linear infinite;filter:drop-shadow(0 0 70px rgba(110,170,255,.25))}
.phero-planet img.wide{inset:18% -12%;width:124%;height:64%}

/* hero entrance (CSS, so it never fights the carousel tweens) */
@keyframes phIn{from{opacity:0;filter:blur(12px);transform:translateY(26px)}to{opacity:1;filter:none;transform:none}}
@keyframes phFade{from{opacity:0}to{opacity:1}}
.ph-enter .ph-copy>*{animation:phIn 1.3s cubic-bezier(.22,1,.36,1) both}
.ph-enter .ph-copy>*:nth-child(1){animation-delay:.5s}.ph-enter .ph-copy>*:nth-child(2){animation-delay:.6s}.ph-enter .ph-copy>*:nth-child(3){animation-delay:.7s}
.ph-enter .ph-copy>*:nth-child(4){animation-delay:.8s}.ph-enter .ph-copy>*:nth-child(5){animation-delay:.9s}
.ph-enter .ph-lab,.ph-enter .ph-down,.ph-enter .ph-count{animation:phFade 1.2s ease 1.1s both}

/* ===== hero v2 ===== */
.ph-copy h1{font-size:clamp(40px,7vw,100px);font-weight:500;letter-spacing:.02em;line-height:1;text-shadow:0 4px 40px rgba(4,11,24,.6)}
.ph-copy h1 .c{display:inline-block;animation:chIn .9s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d)}
@keyframes chIn{from{opacity:0;transform:translateY(.35em) rotate(4deg);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
.ph.is-swapping .ph-copy h1 .c{animation:none}
.ph-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:clamp(22px,4vh,40px)}
.ph-btns .btn{margin:0}
.ph-halo{position:absolute;left:50%;top:var(--haloY,64%);width:min(140vw,1700px);aspect-ratio:1;translate:-50% -50%;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(var(--tint),.32),rgba(var(--tint),.10) 45%,transparent 70%);transition:background 1.2s ease;z-index:0}
.ph-p .para{width:100%;height:100%;transform:translate(calc(var(--mx,0) * -14px),calc(var(--my,0) * -10px));transition:transform .8s cubic-bezier(.22,1,.36,1)}
.ph-p.is-side .para{transform:none}
.ph-p.is-side{transition:filter .4s}
.ph-p.is-side:hover{filter:brightness(1.25) drop-shadow(0 0 30px rgba(170,215,255,.45))}
.ph.grabbing{cursor:grabbing}
.ph-lab{display:inline-flex;align-items:center;gap:10px}
.ph-lab .chev{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:border-color .3s,background .3s,transform .4s var(--ease)}
.ph-lab .chev svg{width:14px;height:14px}
.ph-lab:hover .chev{border-color:var(--gold);background:rgba(98,214,210,.1)}
.ph-lab.l:hover .chev{transform:translateX(-4px)}.ph-lab.r:hover .chev{transform:translateX(4px)}
.ph-dots{position:absolute;left:max(16px,env(safe-area-inset-left,0px));bottom:max(30px,env(safe-area-inset-bottom,0px));z-index:4;display:flex;gap:6px;padding-left:clamp(0px,3vw,40px)}
.ph-dot{width:22px;height:22px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center;position:relative}
.ph-dot::before{content:"";width:16px;height:2px;border-radius:2px;background:rgba(214,230,255,.28);transition:width .4s var(--ease),background .3s}
.ph-dot i{position:absolute;left:3px;top:10px;width:16px;height:2px;border-radius:2px;background:var(--gold);transform:scaleX(0);transform-origin:left}
.ph-dot.on::before{background:rgba(214,230,255,.55)}
.ph.manual .ph-dot.on::before{background:var(--gold)}
.ph-dot:hover::before{background:var(--star)}
.ph-down{width:auto;height:auto;padding:0;background:none;border:0;backdrop-filter:none;display:flex;flex-direction:column;align-items:center;gap:10px}
.ph-down svg{width:44px;height:44px;padding:13px;border-radius:50%;background:rgba(10,24,48,.65);border:1px solid var(--line);box-sizing:border-box}
.ph-down .hint{font:600 10.5px var(--body);letter-spacing:.24em;text-transform:uppercase;color:var(--dust)}
.d-chips{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.d-chips li{font:600 12px var(--body);letter-spacing:.04em;padding:8px 14px;border-radius:999px;border:1px solid rgba(98,214,210,.35);color:var(--star);background:rgba(98,214,210,.06)}
.ph-zoomcopy .zlink{display:inline-block;margin-top:14px;font:700 12px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid currentColor;padding-bottom:3px}
.focus-m{transition:opacity .4s}
.focus-m.dim{opacity:.25}
@media (max-width:860px){
  .ph-dots{left:50%;translate:-50% 0;padding:0;bottom:calc(max(18px,env(safe-area-inset-bottom,0px)) + 64px)}
  .ph-lab{bottom:calc(max(18px,env(safe-area-inset-bottom,0px)) + 100px)}
  .ph-lab .chev{width:26px;height:26px}
  .ph-down .hint{display:none}
  .ph-count{display:none}
  .ph-halo{width:200vw}
  .ph-btns .btn{padding:14px 20px}
}
@media (prefers-reduced-motion:reduce){.ph-copy h1 .c{animation:none}.ph-halo{transition:none}}
@media (max-width:860px){
  .ph-lab{display:none}
  .ph-dots{bottom:calc(max(18px,env(safe-area-inset-bottom,0px)) + 58px);gap:2px}
  .ph-dot{width:18px}.ph-dot::before{width:12px}.ph-dot i{width:12px;left:3px}
}
.ph-down .hint{text-shadow:0 1px 12px rgba(4,11,24,.9)}

/* ================= v5 site-wide upgrades ================= */
::selection{background:rgba(98,214,210,.35);color:#fff}
html{scrollbar-color:#24406b var(--void-2);scrollbar-width:thin}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--void-2)}::-webkit-scrollbar-thumb{background:#24406b;border-radius:10px;border:2px solid var(--void-2)}
[id]{scroll-margin-top:100px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
img{height:auto}

/* reading/scroll progress under the nav */
.nprog{position:fixed;left:0;top:env(safe-area-inset-top,0px);height:2px;width:100%;z-index:61;background:linear-gradient(90deg,var(--gold),#a9f0ee);transform-origin:left;transform:scaleX(0);pointer-events:none}
/* back to top */
.totop{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:max(18px,env(safe-area-inset-bottom,0px));z-index:40;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:var(--star);background:rgba(10,24,48,.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transform:translateY(16px) scale(.9);pointer-events:none;transition:opacity .4s,transform .5s var(--ease)}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.totop svg{width:52px;height:52px;transform:rotate(-90deg)}
.totop svg path{transform:rotate(90deg);transform-origin:24px 24px}
.totop .trk{fill:none;stroke:var(--line);stroke-width:2}
.totop .val{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:132;stroke-dashoffset:calc(132 - 132 * var(--sp,0));stroke-linecap:round}
.totop:hover{background:rgba(20,44,82,.9)}
/* whatsapp float (only when a number is set) */
.wa-float{position:fixed;left:max(18px,env(safe-area-inset-left,0px));bottom:max(18px,env(safe-area-inset-bottom,0px));z-index:40;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;box-shadow:0 10px 30px rgba(37,211,102,.35);transition:transform .4s var(--ease)}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:28px;height:28px}

/* nav extras */
.drop{width:min(640px,92vw)}
.drop a{align-items:center}
.drop a span{display:flex;flex-direction:column;line-height:1.25}
.drop a b{font-weight:600;font-size:14px}
.drop a small{font-size:11.5px;color:var(--dust);letter-spacing:.02em}
.drop a:hover{background:rgba(98,214,210,.08)}
.drop .drop-all{grid-column:1/-1;justify-content:center;font:700 11px var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);border-top:1px solid var(--line);border-radius:0 0 14px 14px;margin-top:6px;padding:12px}
.menu a::after,.menu button::after{display:block}
.drop a::after{display:none!important}
.nav .btn .short{display:none}
@media (max-width:1240px){.nav .btn .long{display:none}.nav .btn .short{display:inline}}
.sheet a,.sheet .sub{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i,0) * 60ms + .15s)}
.sheet.open a,.sheet.open .sub{opacity:1;transform:none}
.sheet .sub a{opacity:1;transform:none}

/* footer */
.wordmark{font:500 clamp(30px,8.6vw,138px)/1 var(--display);letter-spacing:0;text-align:center;margin-top:60px;color:transparent;-webkit-text-stroke:1px rgba(214,230,255,.16);user-select:none;white-space:nowrap;overflow:hidden}
.legal a{color:var(--dust);margin-left:18px;transition:color .3s}
.legal a:hover{color:var(--gold)}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:-20px 0 28px}
.filters button{font:600 12.5px var(--body);letter-spacing:.04em;padding:10px 18px;border-radius:999px;border:1px solid var(--line);background:none;color:var(--star);cursor:pointer;transition:all .3s var(--ease)}
.filters button:hover{border-color:var(--gold)}
.filters button.on{background:var(--flare);color:#0a1830;border-color:var(--flare);box-shadow:var(--glow)}
.scard.is-out{display:none}
.scard .lbl2{margin-top:-4px}

/* industries */
.inds{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.ind{padding:26px 22px;border-radius:24px;border:1px solid var(--line);background:linear-gradient(170deg,rgba(20,44,82,.55),rgba(10,24,48,.2));transition:border-color .4s,transform .6s var(--ease)}
.ind:hover{border-color:rgba(98,214,210,.5)}
.ind img{width:60px;height:60px;object-fit:contain;margin-bottom:18px;transition:transform 1.2s var(--ease)}
.ind:hover img{transform:rotate(50deg) scale(1.1)}
.ind h3{font-size:19px;margin-bottom:10px}
.ind p{color:var(--dust);font-size:14.5px;line-height:1.65}
@media (max-width:1100px){.inds{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.inds{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.inds{grid-template-columns:1fr}}

/* why */
.why-list{list-style:none;margin:0;padding:0;display:grid;gap:0}
.why-list li{padding:26px 0 26px 56px;border-top:1px solid var(--line);position:relative}
.why-list li:last-child{border-bottom:1px solid var(--line)}
.why-list li::before{content:"";position:absolute;left:8px;top:32px;width:22px;height:22px;border-radius:50%;border:1px solid var(--gold);box-shadow:inset 0 0 0 6px var(--void),inset 0 0 0 11px var(--gold)}
.why-list h3{font-size:22px;margin-bottom:8px}
.why-list p{color:var(--dust)}

/* work lightbox */
.frame .zoomable{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}
.frame .zoomable:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}
.drag-hint{text-align:center;color:var(--dust);font-size:13px;letter-spacing:.08em;margin-top:30px}
.lb{position:fixed;inset:0;z-index:140;background:rgba(3,8,18,.92);backdrop-filter:blur(8px);display:grid;place-items:center;padding:60px 16px;opacity:0;pointer-events:none;transition:opacity .4s}
.lb.open{opacity:1;pointer-events:auto}
.lb figure{margin:0;max-width:min(900px,92vw);text-align:center}
.lb img{max-height:76vh;width:auto;margin:0 auto;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.6);transform:scale(.94);transition:transform .5s var(--ease)}
.lb.open img{transform:none}
.lb figcaption{margin-top:16px;color:var(--star);font-size:15px}
.lb button{position:absolute;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:rgba(10,24,48,.7);color:var(--star);cursor:pointer;font-size:22px;display:grid;place-items:center}
.lb .x{top:max(16px,env(safe-area-inset-top,0px));right:16px}
.lb .pv{left:16px;top:50%}.lb .nx{right:16px;top:50%}
.lb button:hover{border-color:var(--gold)}

/* service sub-nav */
.subnav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 74px);z-index:30;margin-top:10px}
.subnav .wrap{display:flex;gap:6px;align-items:center;overflow-x:auto;scrollbar-width:none;padding-block:8px}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav a{flex:none;font:600 12.5px var(--body);letter-spacing:.04em;padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:rgba(7,20,39,.8);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .3s,color .3s}
.subnav a:hover,.subnav a.on{border-color:var(--gold);color:var(--gold)}
.subnav .subnav-cta{margin-left:auto;background:var(--flare);color:#0a1830;border-color:var(--flare)}
.subnav .subnav-cta:hover{color:#0a1830;box-shadow:var(--glow)}
.nav.hide~main .subnav,.subnav.up{top:calc(env(safe-area-inset-top,0px) + 8px)}

/* first 30 days */
.weeks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.weeks li{padding:26px;border-radius:22px;border:1px solid var(--line);background:rgba(10,24,48,.45);position:relative;overflow:hidden}
.weeks li::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,var(--gold),transparent)}
.weeks .wk{font:700 11px var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.weeks h3{font-size:20px;margin:12px 0 8px}
.weeks p{color:var(--dust);font-size:15px}
@media (max-width:900px){.weeks{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.weeks{grid-template-columns:1fr}}

/* related article */
.rel{display:flex;align-items:center;gap:22px;padding:18px;border-radius:24px;border:1px solid var(--line);background:rgba(10,24,48,.45);transition:border-color .3s}
.rel:hover{border-color:var(--gold)}
.rel img{width:150px;aspect-ratio:16/10;object-fit:cover;border-radius:16px;flex:none}
.rel small{display:block;font:700 11px var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.rel b{display:block;font:500 clamp(18px,2vw,24px)/1.25 var(--display)}
.rel em{display:inline-block;margin-top:8px;font-style:normal;font-size:13px;color:var(--dust)}
@media (max-width:560px){.rel{flex-direction:column;align-items:flex-start}.rel img{width:100%}}

/* blog */
.post .tag{display:inline-block;margin-right:10px;padding:3px 10px;border-radius:999px;border:1px solid rgba(98,214,210,.4);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.post .go{margin-top:auto;font:700 11.5px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
@media (min-width:961px){.posts.feat>.post:first-child{grid-column:span 2;flex-direction:row}.posts.feat>.post:first-child .pimg{aspect-ratio:auto;width:55%}.posts.feat>.post:first-child h3{font-size:30px}}
.article-grid{display:grid;grid-template-columns:minmax(0,720px) 240px;gap:60px;justify-content:center;align-items:start}
.article-grid .article{margin:0}
.toc{position:sticky;top:120px;padding:22px;border-radius:20px;border:1px solid var(--line);background:rgba(10,24,48,.45)}
.toc b{display:block;font:700 11px var(--body);letter-spacing:.2em;text-transform:uppercase;margin-bottom:12px}
.toc ol{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.toc a{display:block;font-size:13.5px;line-height:1.4;color:var(--dust);padding:6px 0 6px 12px;border-left:2px solid var(--line);transition:color .3s,border-color .3s}
.toc a:hover,.toc a.on{color:var(--star);border-color:var(--gold)}
@media (max-width:1000px){.article-grid{grid-template-columns:minmax(0,720px)}.toc{display:none}}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:40px 0;padding-top:26px;border-top:1px solid var(--line)}
.share span{font:700 11px var(--body);letter-spacing:.2em;text-transform:uppercase;margin-right:8px}
.share a,.share button{font:600 13px var(--body);color:var(--star);padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:none;cursor:pointer;transition:border-color .3s,color .3s}
.share a:hover,.share button:hover{border-color:var(--gold);color:var(--gold)}
.post-cta{display:flex;gap:22px;align-items:center;padding:26px;border-radius:24px;border:1px solid rgba(98,214,210,.35);background:linear-gradient(160deg,rgba(20,44,82,.6),rgba(10,24,48,.3));margin-bottom:20px}
.post-cta img{width:80px;height:80px;object-fit:contain;flex:none}
.post-cta b{font:500 22px/1.25 var(--display);display:block}
.post-cta p{color:var(--dust);font-size:15px;margin:8px 0 16px}
@media (max-width:560px){.post-cta{flex-direction:column;align-items:flex-start}}

/* contact extras */
.msg-meta{display:flex;justify-content:space-between;gap:10px}
.count{font-size:12.5px;color:var(--dust);font-variant-numeric:tabular-nums}
.count.warn{color:#ffc4b0}
.draft{font-size:13px;color:var(--gold)}

/* 404 */
.lost-links{list-style:none;padding:0;margin:44px auto 0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:820px}
.lost-links a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;border:1px solid var(--line);font-size:13.5px;transition:border-color .3s}
.lost-links a:hover{border-color:var(--gold)}
.lost-links img{width:28px;height:28px;object-fit:contain}

/* breadcrumbs nav */
nav[aria-label="Breadcrumb"]{display:block}

/* shooting-star layer is canvas; twinkle handled in JS */
@media (prefers-reduced-motion:reduce){.sheet a,.sheet .sub{transition:none;opacity:1;transform:none}.totop{transition:none}}
@media (max-width:640px){
  .svc-grid{gap:12px}
  .scard{display:grid;grid-template-columns:64px 1fr;column-gap:16px;row-gap:6px;padding:20px;align-items:start}
  .scard img{width:64px;height:64px;grid-row:1/span 4}
  .scard .lbl2,.scard h3,.scard p,.scard .go{grid-column:2}
  .scard h3{font-size:19px}
  .scard p{font-size:14.5px}
  .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut)}
  .filters::-webkit-scrollbar{display:none}
  .filters button{flex:none}
}

/* v6: calmer, steadier hero */
.ph-p .spinner{animation:none!important}
.ph-p .para{transform:none!important;transition:none}
.phero-planet img{animation:none!important}
.ph-line{font:400 clamp(20px,2.1vw,30px)/1.3 var(--display);letter-spacing:.02em;color:var(--star);margin:4px auto 16px;max-width:none}
.ph-copy p#phText{color:var(--dust)}
.ph-swap{transition:opacity .38s ease,transform .38s ease;filter:none!important}
.ph.is-swapping .ph-swap{filter:none;opacity:0;transform:translateY(8px)}
.ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;background:linear-gradient(transparent,rgba(6,16,36,.6));pointer-events:none;z-index:2}
.nav.hide{transform:none}
html{scroll-behavior:auto}
.ph-enter .ph-copy>*:nth-child(6){animation-delay:1s}
.nav::before{background:rgba(7,20,39,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav.scrolled .nav-in{border-bottom-color:transparent}
.subnav{top:calc(env(safe-area-inset-top,0px) + 76px)!important}
.ph-copy .ph-line{font:400 clamp(20px,2.2vw,32px)/1.3 var(--display);letter-spacing:.03em;color:var(--star);opacity:1;margin:0 auto 14px;max-width:none;text-transform:none}
.ph-down .hint{display:none}
/* send buttons */
.send-row{display:flex;flex-wrap:wrap;gap:10px}
.btn.send svg{width:18px;height:18px}
.btn.send.wa{background:#25d366;color:#05210f;box-shadow:0 0 22px rgba(37,211,102,.35)}
.btn.send.wa::before{background:#5ee08f}
.btn.send.gm{background:var(--flare);color:#0a1830}
.linkbtn{all:unset;cursor:pointer;color:var(--gold);border-bottom:1px solid currentColor;font-size:14px}
.linkbtn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.alt-app{font-size:14px;color:var(--dust);margin:-6px 0 0}
.sent-again{margin-top:18px;display:flex;gap:20px;justify-content:center;flex-wrap:wrap}

/* ===== v7 performance: same look, far cheaper to draw ===== */
.nav::before{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgba(7,20,39,.96)!important}
.subnav a,.ph-down svg,.totop,.drop,.lb,.sheet,.nav-in{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.subnav a{background:rgba(9,24,46,.96)}
.drop{background:rgba(9,22,44,.98)}
.totop{background:rgba(10,24,48,.95)}
.ph-p img,.phero-planet img,.cta .saturn,.duo img,.astro{filter:none!important}
.phero-planet::before{content:"";position:absolute;inset:-6%;border-radius:50%;background:radial-gradient(closest-side,rgba(110,170,255,.22),transparent 72%);z-index:-1}
.phero-planet{isolation:isolate}
.ph-p{contain:layout style}

/* ===== v7 polish ===== */
/* hero copy changes in a gentle cascade */
.ph-copy .ph-swap{transition:opacity .34s ease,transform .45s cubic-bezier(.22,1,.36,1)}
.ph-copy #phEyebrow{transition-delay:0s}.ph-copy #phTitle{transition-delay:.04s}.ph-copy #phLine{transition-delay:.08s}.ph-copy #phText{transition-delay:.12s}.ph-copy .ph-btns{transition-delay:.16s}
.ph.is-swapping .ph-copy .ph-swap{transform:translateY(-10px)}
/* the WebTechVerse slide shows a different face of Earth from the Content slide */
.ph-p.brandp img{transform:rotate(155deg) scaleX(-1)}
/* accent lines draw in */
.phero .tline,.ph-detail .tline{transform-origin:left;animation:lineIn 1s .5s cubic-bezier(.22,1,.36,1) both}
.tline.c{transform-origin:center}
@keyframes lineIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* process steps light up as the line reaches them */
.process li::before{transition:background .5s,color .5s,box-shadow .5s}
.process li.lit::before{background:var(--gold);color:#06202a;box-shadow:0 0 24px rgba(98,214,210,.5)}
/* first-30-days top line draws */
.weeks li::after{transform-origin:left;transform:scaleX(0);transition:transform 1.1s cubic-bezier(.22,1,.36,1) .2s}
.weeks li.seen::after{transform:scaleX(1)}
/* lazy images */
img.fadein{opacity:0;transition:opacity .6s ease}
img.fadein.in{opacity:1}
/* mobile reel indicator */
.reel-bar{display:none}
@media (max-width:860px){.reel-bar{display:block;height:2px;margin:18px max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));background:var(--line);border-radius:2px;overflow:hidden}.reel-bar i{display:block;height:100%;background:var(--gold);border-radius:2px;transition:transform .15s linear}}
/* card hover: lift only (no filters) */
.scard,.ind,.post,.value{will-change:auto}
.scard:hover,.ind:hover,.post:hover{transform:translateY(-6px)}
@media (prefers-reduced-motion:reduce){.phero .tline,.ph-detail .tline{animation:none}.weeks li::after{transform:none;transition:none}img.fadein{opacity:1}}

/* ================= INTRO: space start screen ================= */
.intro{display:none}
html.intro-on{overflow:hidden}
html.intro-on .intro{display:grid}
.intro{position:fixed;inset:0;z-index:300;place-items:center;align-content:center;gap:0;background:radial-gradient(90% 70% at 50% 45%,#10284d 0%,#071427 45%,#030913 100%);color:var(--star);text-align:center;overflow:hidden;
  transition:opacity .75s cubic-bezier(.65,0,.35,1),transform .9s cubic-bezier(.65,0,.35,1)}
.intro canvas{position:absolute;inset:0;width:100%;height:100%}
.intro-glow{position:absolute;left:50%;top:44%;width:min(900px,140vw);aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(closest-side,rgba(233,181,77,.16),rgba(98,214,210,.06) 45%,transparent 70%);animation:glowIn 2s ease both}
@keyframes glowIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
.intro-core{position:relative;width:min(230px,52vw);aspect-ratio:1;display:grid;place-items:center;margin-bottom:28px}
.intro-orbit{position:absolute;inset:-14%;width:128%;height:128%;overflow:visible;animation:orbitSpin 14s linear infinite}
.intro-orbit circle{fill:none;stroke-linecap:round}
.intro-orbit .o1{stroke:rgba(98,214,210,.55);stroke-width:.8;stroke-dasharray:604;stroke-dashoffset:604;animation:draw 1.6s .25s cubic-bezier(.65,0,.35,1) forwards}
.intro-orbit .o2{stroke:rgba(233,181,77,.35);stroke-width:.6;stroke-dasharray:3 6;opacity:0;animation:fadeIn 1s .9s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadeIn{to{opacity:1}}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
.intro-sat{position:absolute;inset:-14%;animation:orbitSpin 3.6s linear infinite;opacity:0;animation:orbitSpin 3.6s linear infinite,fadeIn .6s 1.5s ease forwards}
.intro-sat i{position:absolute;top:-4px;left:50%;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--gold);box-shadow:0 0 14px 4px rgba(98,214,210,.7)}
.intro-emblem{width:78%;height:auto;opacity:0;transform:scale(.6) rotate(-60deg);animation:emblemIn 1.4s .45s cubic-bezier(.22,1,.36,1) forwards;filter:drop-shadow(0 0 30px rgba(233,181,77,.35))}
@keyframes emblemIn{to{opacity:1;transform:none}}
.intro-word{font:500 clamp(34px,6.4vw,78px)/1 var(--display);letter-spacing:.14em;margin:0;white-space:nowrap;padding-left:.14em}
.intro-word span{display:inline-block;opacity:0;transform:translateY(.4em);animation:letterIn .8s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(1s + var(--i) * 55ms)}
@keyframes letterIn{to{opacity:1;transform:none}}
.intro-tag{font:700 clamp(10.5px,1.1vw,13px) var(--body);letter-spacing:.38em;text-transform:uppercase;color:var(--gold);margin:18px 0 0;padding-left:.38em;opacity:0;animation:fadeIn .9s 1.8s ease forwards}
.intro-load{position:absolute;left:50%;bottom:max(46px,calc(env(safe-area-inset-bottom,0px) + 30px));translate:-50% 0;display:flex;align-items:center;gap:14px;opacity:0;animation:fadeIn .6s .6s ease forwards}
.intro-load .bar{width:min(220px,46vw);height:2px;border-radius:2px;background:rgba(214,230,255,.15);overflow:hidden}
.intro-load .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#a9f0ee);transform-origin:left;transform:scaleX(0)}
.intro-load .pct{font:600 12px var(--body);letter-spacing:.12em;color:var(--dust);min-width:3.5ch;font-variant-numeric:tabular-nums;text-align:left}
.intro-skip{position:absolute;top:max(20px,env(safe-area-inset-top,0px));right:max(20px,env(safe-area-inset-right,0px));font:600 11.5px var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--dust);background:rgba(214,230,255,.06);border:1px solid var(--line);border-radius:999px;padding:10px 16px;cursor:pointer;transition:color .3s,border-color .3s}
.intro-skip:hover{color:var(--star);border-color:var(--gold)}
.intro.leaving{opacity:0;transform:scale(1.08)}
.intro.leaving .intro-core{transition:transform .9s cubic-bezier(.65,0,.35,1);transform:scale(2.4)}
@media (prefers-reduced-motion:reduce){.intro{display:none!important}}
.intro.leaving{pointer-events:none}

/* ================= LIVING PLANETS ================= */
.ph-p{isolation:isolate}
.ph-p .spinner{will-change:transform}
/* fixed day/night lighting: the surface turns underneath it, like a real planet */
.ph-p .shade,.phero-planet .shade{position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:
    radial-gradient(circle at 30% 26%,rgba(255,255,255,.16),transparent 34%),
    radial-gradient(circle at 34% 30%,transparent 46%,rgba(2,7,18,.42) 70%,rgba(2,7,18,.82) 96%);
  box-shadow:inset -18px -22px 60px rgba(2,7,18,.55),inset 6px 8px 22px rgba(190,225,255,.12)}
.ph-p[data-p="sun"] .shade,.phero-planet[data-p="sun"] .shade{background:radial-gradient(circle at 50% 50%,transparent 55%,rgba(255,140,40,.15) 75%,transparent 100%);box-shadow:none}
.ph-p.ringed .shade,.phero-planet.ringedp .shade{display:none}
/* atmosphere: a soft rim of the planet's own colour that slowly breathes */
.ph-p::before{content:"";position:absolute;inset:-4%;border-radius:50%;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,transparent 88%,rgba(var(--tint,120,180,255),.55) 95%,transparent 100%);
  animation:breathe 6s ease-in-out infinite}
.ph-p[data-p="sun"]::before{inset:-12%;background:radial-gradient(closest-side,rgba(255,170,60,.0) 60%,rgba(255,170,60,.35) 80%,transparent 100%)}
.ph-p.ringed::before{display:none}
@keyframes breathe{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.015)}}
/* orbit ring + moon around the centre planet */
.ph-ring{position:absolute;overflow:visible;pointer-events:none;transform:rotate(-8deg);transform-origin:center}
.ph-ring ellipse{fill:none;stroke-width:1}
.ph-ring.back{z-index:0}.ph-ring.back ellipse{stroke:rgba(98,214,210,.18);stroke-dasharray:2 7}
.ph-ring.front{z-index:3;clip-path:inset(50% 0 0 0)}.ph-ring.front ellipse{stroke:rgba(98,214,210,.38);stroke-dasharray:2 7}
.ph-moon{position:absolute;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;pointer-events:none;will-change:transform}
.ph-moon img{width:100%;height:100%;border-radius:50%;box-shadow:0 0 18px rgba(170,215,255,.45)}
.ph-moon::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 28%,transparent 40%,rgba(2,7,18,.7) 85%)}
.ph-ring,.ph-moon{transition:opacity .4s}
@media (max-width:860px){.ph-moon{width:24px;height:24px;margin:-12px 0 0 -12px}}

/* inner-page planets: slow spin, same lighting, ring and moon */
.phero-planet.live{position:relative}
.phero-planet.live .pspin{position:absolute;inset:0;animation:turn 180s linear infinite}
.phero-planet.live .pspin img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;animation:none!important}
.phero-planet.live.ringedp .pspin{animation:float 9s ease-in-out infinite}
.phero-planet.live.ringedp .pspin img{inset:18% -12%;width:124%;height:64%}
.phero-planet.live .pring{position:absolute;inset:-9% -16%;border-radius:50%;border:1px dashed rgba(98,214,210,.28);transform:rotateX(74deg) rotate(-8deg);pointer-events:none}
.phero-planet.live .pmoon{position:absolute;inset:-9% -16%;animation:turn 16s linear infinite;pointer-events:none;transform-style:preserve-3d}
.phero-planet.live .pmoon img{position:absolute;top:50%;left:-2%;width:30px;height:30px;margin-top:-15px;border-radius:50%;box-shadow:0 0 14px rgba(170,215,255,.4)}
.phero-planet.live::after{content:"";position:absolute;inset:-3%;border-radius:50%;z-index:-1;background:radial-gradient(closest-side,transparent 86%,rgba(120,180,255,.45) 95%,transparent 100%);animation:breathe 6s ease-in-out infinite}
.phero-planet.live.ringedp::after,.phero-planet.live[data-p="sun"]::after{display:none}
@media (prefers-reduced-motion:reduce){.ph-p::before,.phero-planet.live .pspin,.phero-planet.live .pmoon,.phero-planet.live::after{animation:none}}

/* inner-page moon: elliptical orbit, passes behind and in front of the planet */
.phero-planet.live .pmoon{position:absolute;inset:0;animation:none;transform:none}
.phero-planet.live .pmoon img{position:absolute;left:0;top:0;margin:0;width:30px;height:30px;animation:porbit 18s linear infinite}
@keyframes porbit{0.00%{left:50.00%;top:35.00%;transform:translate(-50%,-50%) scale(0.75);z-index:0}4.17%{left:64.49%;top:35.51%;transform:translate(-50%,-50%) scale(0.76);z-index:0}8.33%{left:78.00%;top:37.01%;transform:translate(-50%,-50%) scale(0.77);z-index:0}12.50%{left:89.60%;top:39.39%;transform:translate(-50%,-50%) scale(0.79);z-index:0}16.67%{left:98.50%;top:42.50%;transform:translate(-50%,-50%) scale(0.82);z-index:0}20.83%{left:104.09%;top:46.12%;transform:translate(-50%,-50%) scale(0.86);z-index:0}25.00%{left:106.00%;top:50.00%;transform:translate(-50%,-50%) scale(0.90);z-index:0}29.17%{left:104.09%;top:53.88%;transform:translate(-50%,-50%) scale(0.94);z-index:3}33.33%{left:98.50%;top:57.50%;transform:translate(-50%,-50%) scale(0.97);z-index:3}37.50%{left:89.60%;top:60.61%;transform:translate(-50%,-50%) scale(1.01);z-index:3}41.67%{left:78.00%;top:62.99%;transform:translate(-50%,-50%) scale(1.03);z-index:3}45.83%{left:64.49%;top:64.49%;transform:translate(-50%,-50%) scale(1.04);z-index:3}50.00%{left:50.00%;top:65.00%;transform:translate(-50%,-50%) scale(1.05);z-index:3}54.17%{left:35.51%;top:64.49%;transform:translate(-50%,-50%) scale(1.04);z-index:3}58.33%{left:22.00%;top:62.99%;transform:translate(-50%,-50%) scale(1.03);z-index:3}62.50%{left:10.40%;top:60.61%;transform:translate(-50%,-50%) scale(1.01);z-index:3}66.67%{left:1.50%;top:57.50%;transform:translate(-50%,-50%) scale(0.98);z-index:3}70.83%{left:-4.09%;top:53.88%;transform:translate(-50%,-50%) scale(0.94);z-index:3}75.00%{left:-6.00%;top:50.00%;transform:translate(-50%,-50%) scale(0.90);z-index:3}79.17%{left:-4.09%;top:46.12%;transform:translate(-50%,-50%) scale(0.86);z-index:0}83.33%{left:1.50%;top:42.50%;transform:translate(-50%,-50%) scale(0.82);z-index:0}87.50%{left:10.40%;top:39.39%;transform:translate(-50%,-50%) scale(0.79);z-index:0}91.67%{left:22.00%;top:37.01%;transform:translate(-50%,-50%) scale(0.77);z-index:0}95.83%{left:35.51%;top:35.51%;transform:translate(-50%,-50%) scale(0.76);z-index:0}100.00%{left:50.00%;top:35.00%;transform:translate(-50%,-50%) scale(0.75);z-index:0}}
.phero-planet.live .pspin,.phero-planet.live .shade{z-index:1}
.phero-planet.live .pmoon{z-index:auto}
.phero-planet.live{isolation:isolate}
@media (prefers-reduced-motion:reduce){.phero-planet.live .pmoon img{animation:none;left:96%;top:50%}}
.phero-planet.live::after{background:radial-gradient(closest-side,transparent 90%,rgba(var(--tint,120,180,255),.4) 96%,transparent 100%)}
.ph-p::before{background:radial-gradient(closest-side,transparent 90%,rgba(var(--tint,120,180,255),.5) 96%,transparent 100%)}

/* ================= LIQUID GLASS ================= */
:root{
  --glass-fill:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.04) 42%,rgba(120,170,255,.05));
  --glass-edge:linear-gradient(145deg,rgba(255,255,255,.55),rgba(255,255,255,.08) 35%,rgba(98,214,210,.18) 70%,rgba(255,255,255,.35));
  --glass-shadow:0 10px 40px rgba(2,8,20,.45),inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(255,255,255,.04);
}
/* glass surfaces: frosted fill, bright specular edge, light that follows the pointer */
.scard,.ind,.post,.value,.weeks li,.form,.why-list li,.rel,.post-cta,.toc,.pn a,.lost-links a,.d-chips li,.filters button:not(.on),.share a,.share button,.subnav a:not(.subnav-cta),.side-list li{
  position:relative;background:var(--glass-fill),rgba(12,28,56,.42)!important;border:1px solid transparent!important;
  box-shadow:var(--glass-shadow)}
.scard::before,.ind::before,.post::before,.value::before,.weeks li::before,.form::before,.rel::before,.post-cta::before,.toc::before,.pn a::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:2;
  background:var(--glass-edge);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
/* pointer-following highlight (set by script; costs only a background repaint on hover) */
.scard,.ind,.post,.value,.form,.post-cta{background-image:radial-gradient(420px circle at var(--gx,50%) var(--gy,-30%),rgba(170,225,255,.13),transparent 45%),var(--glass-fill)!important}
/* sheen that sweeps across on hover */
.scard>*,.ind>*,.post>*,.value>*{position:relative;z-index:1}
.scard::after,.ind::after,.value::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.12) 48%,transparent 60%);transform:translateX(-120%);transition:transform 1.1s cubic-bezier(.22,1,.36,1);opacity:1}
.scard:hover::after,.ind:hover::after,.value:hover::after{transform:translateX(120%)}
.scard{overflow:hidden}.ind{overflow:hidden}.value{overflow:hidden}

/* glass buttons */
.btn{background-image:linear-gradient(180deg,rgba(255,255,255,.9),rgba(214,232,255,.9))!important;box-shadow:0 0 22px rgba(170,215,255,.35),inset 0 1px 0 #fff,inset 0 -2px 6px rgba(120,160,220,.35)}
.btn.ghost{background-image:var(--glass-fill)!important;background-color:rgba(12,28,56,.35)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),inset 0 1px 0 rgba(255,255,255,.35),0 8px 24px rgba(2,8,20,.35)}
.btn.ghost:hover{color:#0a1830}
.btn.send.wa{background-image:linear-gradient(180deg,#43e283,#22c066)!important}
.round{background-image:linear-gradient(180deg,#fff,#d6e8ff)!important;box-shadow:0 0 22px rgba(170,215,255,.4),inset 0 -2px 5px rgba(120,160,220,.35)}

/* glass nav pill once you scroll (small area, so the blur stays cheap) */
.nav{padding-top:10px}
.nav::before{display:none!important}
.nav-in{border-radius:999px;padding:10px 12px 10px 22px;border:1px solid transparent;transition:background .5s,box-shadow .5s,border-color .5s,padding .5s}
.nav.scrolled .nav-in{background:var(--glass-fill),rgba(9,22,44,.62)!important;backdrop-filter:blur(14px) saturate(160%)!important;-webkit-backdrop-filter:blur(14px) saturate(160%)!important;
  border-color:rgba(255,255,255,.14)!important;box-shadow:0 12px 40px rgba(2,8,20,.5),inset 0 1px 0 rgba(255,255,255,.2)}
.menu a::after,.menu button::after{bottom:-3px}
.drop{background:var(--glass-fill),rgba(9,22,44,.94)!important;border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 60px rgba(2,8,20,.6),inset 0 1px 0 rgba(255,255,255,.15)}
.subnav{top:calc(env(safe-area-inset-top,0px) + 84px)!important}

/* glass hero controls */
.ph-lab .chev,.ph-down svg,.totop,.intro-skip{background:var(--glass-fill),rgba(12,28,56,.45)!important;border:1px solid rgba(255,255,255,.2)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 6px 18px rgba(2,8,20,.35)}
.d-chips li{border-radius:999px}
.field input,.field select,.field textarea{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02)),rgba(4,11,24,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.ph.offscreen .ph-p::before{animation-play-state:paused}
/* glass, tuned for speed: tighter shadows, none on small items */
:root{--glass-shadow:0 6px 16px rgba(2,8,20,.35),inset 0 1px 0 rgba(255,255,255,.2)}
.d-chips li,.filters button:not(.on),.share a,.share button,.subnav a:not(.subnav-cta),.side-list li,.lost-links a,.why-list li{box-shadow:inset 0 1px 0 rgba(255,255,255,.14)!important}
.scard,.ind,.post,.value,.weeks li,.form,.rel,.post-cta,.toc,.pn a{contain:paint}
.phero{overflow-x:clip}

/* ================= v9: match the client's reference video ================= */
:root{--display:"Cormorant Garamond","Cormorant","Times New Roman",serif}
h1,h2{font-weight:600;text-transform:uppercase;letter-spacing:.015em}
h3{font-weight:600;letter-spacing:.005em}
body{background:radial-gradient(120% 85% at 50% 12%,#10223f 0%,#0a172d 42%,#060f1f 75%,#040a15 100%) fixed var(--void-2)}
/* calmer glow behind the big planet, thin atmosphere rim like the reference */
.ph-halo{background:radial-gradient(closest-side,rgba(var(--tint),.16),rgba(var(--tint),.05) 45%,transparent 68%)}
.ph-p::before{inset:-5%!important;animation:none!important;opacity:1!important;background:radial-gradient(closest-side,rgba(var(--tint,120,180,255),.22) 86%,rgba(var(--tint,120,180,255),.06) 94%,transparent 100%)!important}
.ph-p[data-p="sun"]::before{inset:-10%!important;background:radial-gradient(closest-side,rgba(255,170,60,.26) 50%,rgba(255,150,40,.08) 74%,transparent 100%)!important}
.ph-detail .wrap{padding-left:clamp(24px,7vw,130px)}
/* centred copy: eyebrow, serif title, short teal rule, two quiet lines, one pill */
.ph-copy{top:calc(env(safe-area-inset-top,0px) + clamp(92px,13vh,140px))}
.ph-copy .eyebrow{font:700 12px/1.2 var(--body);letter-spacing:.32em;margin-bottom:12px;color:#fff}
.ph-copy h1{font-family:var(--display);font-size:clamp(46px,6.4vw,96px);font-weight:600;letter-spacing:.025em;line-height:.98;text-shadow:none;-webkit-font-smoothing:antialiased}
.ph-copy .tline{width:34px;height:2px;margin:20px auto 22px}
.ph-copy p#phText{max-width:540px;font:500 13px/1.8 var(--body);color:#d8e2ef;opacity:.95;letter-spacing:.01em}
.ph-copy p#phText b{color:#fff;font-weight:600}
.ph-btns{margin-top:clamp(22px,4vh,36px)}
.ph-btns .btn{padding:14px 28px;font-size:11px;letter-spacing:.16em}
/* the video's crossfade: copy blurs out, new copy blurs in, nothing slides */
.ph-copy .ph-swap{transition:opacity .5s ease,filter .5s ease!important;filter:blur(0)!important;transform:none!important}
.ph.is-swapping .ph-copy .ph-swap{opacity:0;filter:blur(16px)!important;transform:none!important}
.ph-copy #phEyebrow,.ph-copy #phTitle,.ph-copy #phText,.ph-copy .ph-btns{transition-delay:0s!important}
/* side labels: plain spaced serif caps beside the half-hidden neighbour planets */
.ph-lab{font:600 15px var(--display);letter-spacing:.26em;opacity:.78;gap:0;text-shadow:0 1px 14px rgba(4,10,21,.8)}
.ph-lab .chev{display:none}
.ph-lab.l{left:clamp(96px,10vw,170px)}.ph-lab.r{right:clamp(96px,10vw,170px)}
.ph-down svg{background:rgba(6,14,28,.78);border-color:rgba(214,230,255,.18)}
/* detail + zoom stages */
.ph-detail .eyebrow{color:#fff;letter-spacing:.3em}
.ph-detail h2{font-size:clamp(44px,5.6vw,84px);font-weight:600;letter-spacing:.02em;line-height:.98}
.ph-detail p{font:500 13.5px/1.85 var(--body);color:#d8e2ef}
.d-chips{display:none}
.ph-zoomcopy p{font:500 14px/1.85 var(--body)}
@media (max-width:860px){
  .ph-copy h1{font-size:clamp(32px,9.4vw,64px);letter-spacing:.015em}
  .ph-copy .eyebrow{font-size:10.5px;letter-spacing:.22em}
  .ph-copy p#phText{font-size:13px;padding-inline:6px}
  .ph-lab{font-size:12px;letter-spacing:.2em}
  .ph-lab.l{left:12px}.ph-lab.r{right:12px}
}
/* footer columns could not shrink below their longest link, which widened phones by ~36px */
@media (max-width:860px){.foot{grid-template-columns:repeat(2,minmax(0,1fr))}.foot>*{min-width:0}.foot a,.foot li,.foot p{overflow-wrap:anywhere}}

/* dots: phones only (desktop navigates by the side planets, like the reference) */
@media (min-width:861px){.ph-dots{display:none!important}}
.ph-count{display:none!important}
.ph-lab{transition:opacity .5s ease,filter .5s ease,color .3s}
.ph.is-swapping .ph-lab{opacity:0;filter:blur(8px)}
/* v10: darker deep-space background */
body{background:radial-gradient(110% 80% at 50% 8%,#0d1729 0%,#081020 38%,#04080f 72%,#020407 100%) fixed #020407}
html{background:#020407}
.ph-halo{background:radial-gradient(closest-side,rgba(var(--tint),.12),rgba(var(--tint),.035) 45%,transparent 68%)}
#phFocus{will-change:auto}
:root{--void:#050a14;--void-2:#020407;--nebula:#0b1526}
.intro{background:radial-gradient(90% 70% at 50% 45%,#0c1a30 0%,#050a14 45%,#010306 100%)}
/* photoreal Earth renders: lighting is baked in, so no extra shade, no mirror trick, no spin */
.ph-p.brandp img{transform:none!important}
.ph-p[data-p="earth"] .shade,.ph-p[data-p="home"] .shade,.phero-planet[data-p="earth"] .shade{display:none}
.phero-planet[data-p="earth"] .pspin{animation:none}
/* zoom stage: copy sits right of centre like the reference, on a soft dark wash so it always reads */
.ph-zoomcopy{bottom:clamp(110px,24vh,260px);right:clamp(28px,8vw,150px);max-width:420px}
.ph-zoomcopy .tline{width:46px;margin:0 0 20px auto}
.ph-zoomcopy p{font:500 15px/1.9 var(--body);color:#fff;text-shadow:0 2px 26px rgba(0,0,0,.95),0 0 3px rgba(0,0,0,.7)}
.ph-zoomcopy .zlink{margin-top:18px;text-shadow:0 1px 14px rgba(0,0,0,.9)}
.ph-shade{background:radial-gradient(55% 65% at 90% 68%,rgba(2,4,8,.86),rgba(2,4,8,.42) 55%,rgba(2,4,8,.12) 85%)}
.ph-zoomcopy p{font-size:clamp(15px,1vw,18px)}.ph-zoomcopy{max-width:clamp(380px,26vw,480px)}

/* ================= v11: living background (from the first version) ================= */
#stars{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.glow{position:fixed;left:0;top:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;pointer-events:none;z-index:0;opacity:0;
  background:radial-gradient(circle,rgba(120,200,255,.13) 0%,rgba(98,214,210,.07) 32%,transparent 66%);transition:opacity .6s ease;will-change:transform}
.glow.on{opacity:1}
@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.glow{display:none}}

/* ================= v11: "Ten services, one orbit" planet system ================= */
.orbit-sec{padding-block:clamp(90px,12vw,160px) 60px;position:relative}
.orbit-sec .svc-head h2{font-size:clamp(40px,5.6vw,84px);font-weight:600;letter-spacing:.01em}
.orbit-sec .stage{top:10vh;height:80vh}
.orbit-sec .stage-in{width:min(100%,600px)}
.orbit-sec .ring{border-color:rgba(214,230,255,.10)}
.orbit-sec .ring.r2{border-style:solid;border-color:rgba(214,230,255,.07)}
.orbit-sec .ring.r3{border-color:rgba(98,214,210,.28);box-shadow:0 0 60px rgba(98,214,210,.06) inset}
.orbit-sec .ring.orbit-dash{inset:6%;border:1px dashed rgba(214,230,255,.12);animation:turn 120s linear infinite}
.orbit-sec .satellite{position:absolute;inset:6%;animation:turn 26s linear infinite;pointer-events:none}
.orbit-sec .satellite b{position:absolute;left:50%;top:-4px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:#e6f1ff;box-shadow:0 0 14px 4px rgba(150,220,255,.55)}
.orbit-sec .wheel .mk{background:#0b1526;border-color:rgba(214,230,255,.35)}
.orbit-sec .wheel .mk.on{background:var(--gold);border-color:var(--gold);box-shadow:0 0 22px 6px rgba(98,214,210,.5)}
.orbit-sec .planet{inset:25%}
.orbit-sec .planet img{filter:none!important;transform:scale(.55) rotate(-40deg) translateY(30px);transition:opacity .9s var(--ease),transform 1.2s var(--ease)}
.orbit-sec .planet img.on{transform:none}
.orbit-sec .planet img.ringed{inset:-12% -42%;width:auto;height:auto}
.orbit-sec .planet-glow{position:absolute;inset:18%;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(120,180,255,.22),rgba(120,180,255,.06) 60%,transparent);transition:background .9s ease}
.orbit-sec .stage-in[data-p="sun"] .planet-glow{background:radial-gradient(closest-side,rgba(255,170,60,.34),rgba(255,140,40,.08) 60%,transparent)}
.orbit-sec .stage-in[data-p="mars"] .planet-glow,.orbit-sec .stage-in[data-p="venus"] .planet-glow{background:radial-gradient(closest-side,rgba(240,130,80,.24),rgba(240,130,80,.06) 60%,transparent)}
.orbit-sec .stage-in[data-p="jupiter"] .planet-glow,.orbit-sec .stage-in[data-p="saturn"] .planet-glow{background:radial-gradient(closest-side,rgba(230,180,120,.22),rgba(230,180,120,.05) 60%,transparent)}
.orbit-sec .stage-num{position:absolute;left:50%;top:50%;translate:-50% -50%;font:600 clamp(140px,22vw,300px)/1 var(--display);color:transparent;-webkit-text-stroke:1px rgba(214,230,255,.07);z-index:-1;pointer-events:none}
.orbit-sec .stage-num.flip{animation:numIn .9s var(--ease) both}
@keyframes numIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.orbit-sec .stage-label{bottom:-4%;font:700 11px var(--body);letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.orbit-sec .svc{padding-block:clamp(40px,11vh,110px);border-top-color:rgba(214,230,255,.08);opacity:.28;transition:opacity .6s var(--ease)}
.orbit-sec .svc.on{opacity:1}
.orbit-sec .svc .num{font:700 12px var(--body);letter-spacing:.22em;color:var(--gold)}
.orbit-sec .svc .num i{font-style:normal;color:var(--dust);opacity:.7}
.orbit-sec .svc h3{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(30px,3.3vw,48px);letter-spacing:.02em;line-height:1.02}
.orbit-sec .svc p{font-size:15px;line-height:1.85;color:#c7d3e3}
.orbit-sec .svc a.more{font:700 11px var(--body);letter-spacing:.2em;text-transform:uppercase;border-bottom-color:var(--gold);align-items:center}
.orbit-sec .svc a.more span{transition:transform .3s var(--ease)}.orbit-sec .svc a.more:hover span{transform:translateX(4px)}
@media (max-width:860px){.orbit-sec .svc{opacity:1;padding-block:34px}.orbit-sec .svc .mini{width:96px;height:96px}}
@media (prefers-reduced-motion:reduce){.orbit-sec .ring.orbit-dash,.orbit-sec .satellite{animation:none}}
.orbit-sec .planet img[data-p="earth"],.orbit-sec .svc .mini[src*="p-earth"]{animation:none!important}
.orbit-sec .planet img{opacity:0!important}
.orbit-sec .planet img.on{opacity:1!important}
/* hero bottom edge melts into space instead of cutting the planets off with a hard line */
.ph::after{height:200px;background:linear-gradient(rgba(3,6,12,0),rgba(3,6,12,.75) 60%,rgba(3,6,12,.97));z-index:2}
.ph::after{z-index:4}
.glow{width:640px;height:640px;margin:-320px 0 0 -320px;background:radial-gradient(circle,rgba(130,205,255,.17) 0%,rgba(98,214,210,.085) 30%,rgba(98,214,210,.02) 50%,transparent 66%)}
.orbit-sec .planet img.ringed{inset:auto;left:-40%;top:-10%;width:180%;height:120%;object-fit:contain}
/* orbit: planets travel along the ring into the centre */
.orbit-sec .planet img{transform:translate(var(--fx,0),var(--fy,60%)) rotate(var(--fr,0deg)) scale(.45);transition:opacity .7s ease,transform 1.15s cubic-bezier(.65,0,.25,1)}
.orbit-sec .planet img.on{transform:none}
.orbit-sec .planet img.ringed{left:-26%}
@media (prefers-reduced-motion:reduce){.orbit-sec .planet img{transition:opacity .3s}}

/* ================= v13: orbit + sky sections exactly as in the first version ================= */
.orbit-sec,.sky{--v1-gold:#e9b54d;--v1-star:#f3efe6;--v1-dust:#9a9db5;--v1-line:rgba(243,239,230,.12);--v1-display:"Unbounded","Arial Black",system-ui,sans-serif;--v1-body:"Lexend",system-ui,sans-serif}
.orbit-sec{padding-block:clamp(90px,12vw,160px) 40px;font-family:var(--v1-body)}
.orbit-sec .svc-head h2{font-family:var(--v1-display);font-weight:900;text-transform:none;font-size:clamp(36px,5.6vw,80px);letter-spacing:-.04em;line-height:1.02;color:var(--v1-star)}
.orbit-sec .svc-head .lede{font-family:var(--v1-body);font-weight:300;color:var(--v1-dust);font-size:clamp(17px,1.4vw,20px)}
.orbit-sec .stage{top:12vh;height:76vh}
.orbit-sec .stage-in{width:min(100%,560px)}
.orbit-sec .ring{border:1px solid var(--v1-line);box-shadow:none}
.orbit-sec .ring.r2{border-color:var(--v1-line)}
.orbit-sec .ring.r3{border-color:rgba(233,181,77,.22);box-shadow:none}
.orbit-sec .wheel .mk{background:#11142b;border-color:var(--v1-dust)}
.orbit-sec .wheel .mk.on{background:var(--v1-gold);border-color:var(--v1-gold);box-shadow:0 0 22px 6px rgba(233,181,77,.55)}
.orbit-sec .planet-glow{display:none}
.orbit-sec .planet{inset:27%}
.orbit-sec .planet img{transform:scale(.6) rotate(-30deg)!important;transition:opacity .8s var(--ease),transform 1.1s var(--ease)!important;filter:drop-shadow(0 0 60px rgba(255,170,90,.18))!important}
.orbit-sec .planet img.on{transform:none!important}
.orbit-sec .stage-label{bottom:-6%;font:500 14px var(--v1-body);letter-spacing:.02em;text-transform:none;color:var(--v1-gold)}
.orbit-sec .svc{padding-block:clamp(36px,9vh,90px);border-top:1px solid var(--v1-line);opacity:.32}
.orbit-sec .svc:last-child{border-bottom:1px solid var(--v1-line)}
.orbit-sec .svc.on{opacity:1}
.orbit-sec .svc .num{font:500 14px var(--v1-body);letter-spacing:0;color:var(--v1-gold);font-variant-numeric:tabular-nums}
.orbit-sec .svc h3{font-family:var(--v1-display);font-weight:700;text-transform:none;font-size:clamp(26px,3.2vw,44px);letter-spacing:-.03em;line-height:1.02;margin:10px 0 14px;color:var(--v1-star)}
.orbit-sec .svc.on h3{transform:translateX(10px)}
.orbit-sec .svc p{font:300 17px/1.6 var(--v1-body);color:var(--v1-dust);max-width:46ch}
.orbit-sec .svc a.more{font:500 17px var(--v1-body);letter-spacing:0;text-transform:none;color:var(--v1-star);border-bottom:1px solid var(--v1-gold);padding-bottom:3px;margin-top:18px;gap:8px}
.orbit-sec .svc a.more:hover{color:var(--v1-gold);gap:14px}
@media (max-width:860px){.orbit-sec .svc.on h3{transform:none}}
.sky h2{font-family:var(--v1-display)!important;font-weight:900!important;text-transform:none!important;letter-spacing:-.04em!important;line-height:1!important}
.sky .lede{font-family:var(--v1-body);font-weight:300}
.glow.warm{background:radial-gradient(circle,rgba(233,181,77,.16),rgba(233,181,77,.05) 40%,transparent 62%)}
@media (max-width:860px){.orbit-sec .svc{opacity:1}}
/* v14: the desktop hero is a scroll carousel, so the old detail panel is not used there */
.ph.scroll-carousel .ph-detail,.ph.scroll-carousel ~ .focus-m{display:none}

/* ================= v14: everything after the astronauts is the first version ================= */
.v1{--v1-gold:#e9b54d;--v1-flare:#ff8a2b;--v1-star:#f3efe6;--v1-dust:#9a9db5;--v1-line:rgba(243,239,230,.12);--v1-display:"Unbounded","Arial Black",system-ui,sans-serif;--v1-body:"Lexend",system-ui,sans-serif;font-family:var(--v1-body);font-weight:300}
.v1 h2{font-family:var(--v1-display)!important;font-weight:900!important;text-transform:none!important;letter-spacing:-.04em!important;line-height:1.02!important;color:var(--v1-star)}
.v1 .lede{font-family:var(--v1-body);font-weight:300;color:var(--v1-dust);font-size:clamp(17px,1.4vw,20px)}
.marquee.v1{border-block:1px solid var(--v1-line);background:rgba(17,20,43,.4)}
.marquee.v1 span{font:500 clamp(26px,4vw,52px)/1 var(--v1-display);letter-spacing:-.02em;text-transform:none;color:var(--v1-star)}
.marquee.v1 span::after{background:var(--v1-gold)}
.marquee.v1 span:nth-child(even){color:transparent;-webkit-text-stroke:1px var(--v1-dust)}
.work.v1 h2{font-size:clamp(36px,5.6vw,80px)}
.work.v1 .frame{border-radius:24px}
.work.v1 .frame figcaption{font:300 14px var(--v1-body);text-transform:none;letter-spacing:0;color:var(--v1-star)}
.work.v1 .drag-hint{display:none}
.cta.v1 h2{font-size:clamp(36px,7.4vw,108px)!important;letter-spacing:-.05em!important}
.cta.v1 h2 .outline{color:transparent;-webkit-text-stroke:1.5px var(--v1-gold)}
.cta.v1 p{color:var(--v1-dust);font:300 17px/1.6 var(--v1-body)}
.cta.v1 .saturn{filter:drop-shadow(0 40px 80px rgba(233,181,77,.18))!important}
.cta.v1 .btn{background:var(--v1-flare);color:#04050c;font:500 17px var(--v1-body);letter-spacing:0;text-transform:none;padding:20px 36px;border-radius:999px;box-shadow:none}
.cta.v1 .btn::before{background:linear-gradient(110deg,var(--v1-gold),#ffd88a)}
.cta.v1 .btn:hover{box-shadow:0 10px 40px -8px rgba(255,138,43,.6)}
.sky.v1 h2{font-size:clamp(40px,8vw,120px)}
.sky.v1 .lede{color:var(--v1-star);font-size:clamp(18px,1.8vw,24px)}
.ph-copy .ph-swap,.ph-lab{transition-duration:var(--swap,.5s)!important}
.cta.v1 .btn{background:#ff8a2b!important;color:#04050c!important;overflow:hidden;isolation:isolate}
.cta.v1 .btn::before{background:linear-gradient(110deg,#e9b54d,#ffd88a)!important;transform:translateX(-101%);transition:transform .5s var(--ease);z-index:-1}
.cta.v1 .btn:hover::before{transform:none}
.orbit-sec.v1 .svc-head h2{font-size:clamp(36px,5vw,72px)}
@media (max-width:860px){.orbit-sec .system{grid-template-columns:minmax(0,1fr)}.orbit-sec .svc h3,.v1 h2{overflow-wrap:anywhere}}
.orbit-sec,.work.v1,.cta.v1,.sky.v1,.marquee.v1{overflow-x:clip}
.ph.fast .ph-copy .ph-swap,.ph.fast .ph-lab{filter:none!important}.ph.fast .ph-halo{transition:none}

/* ================= v16: the page opens on the solar system ================= */
.orbit-sec.start{padding-block:clamp(96px,12vh,130px) 60px}
.orbit-sec.start .stage{top:max(96px,11vh);height:calc(100svh - max(110px,13vh))}
.orbit-sec.start .stage-in{width:min(100%,600px,calc(100svh - 190px))}
.orbit-sec .wheel .mk{cursor:pointer;padding:0}
.orbit-sec .wheel .mk:hover{border-color:var(--v1-gold);transform:scale(1.4)}
.orbit-sec .wheel .mk:focus-visible{outline:2px solid var(--v1-gold);outline-offset:3px}
/* brand stop: the hero */
.svc-brand{min-height:calc(100svh - 150px);display:flex;flex-direction:column;justify-content:center;opacity:1!important;border-top:0!important;padding-block:20px 60px!important}
.svc-brand .kicker{display:flex;align-items:center;gap:14px;font:500 15px var(--v1-body);color:var(--v1-gold)}
.svc-brand .kicker::before{content:"";width:34px;height:1px;background:var(--v1-gold)}
.svc-brand h1{font-family:var(--v1-display);font-weight:900;text-transform:none;font-size:clamp(52px,7.4vw,118px);line-height:.92;letter-spacing:-.045em;margin:18px 0 22px;color:var(--v1-star)}
.svc-brand h1 span{display:block}
.svc-brand h1 .outline{color:transparent;-webkit-text-stroke:1.5px var(--v1-star)}
.svc-brand .tagline{font:500 clamp(19px,1.7vw,24px)/1.35 var(--v1-body)!important;color:var(--v1-star)!important;margin-bottom:12px}
.svc-brand .acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.v1btn{background:#ff8a2b!important;color:#04050c!important;font:500 15px var(--v1-body)!important;letter-spacing:0!important;text-transform:none!important;padding:15px 26px!important;border-radius:999px;box-shadow:none!important;overflow:hidden;isolation:isolate}
.v1btn::before{background:linear-gradient(110deg,#e9b54d,#ffd88a)!important;transform:translateX(-101%);transition:transform .5s var(--ease);z-index:-1}
.v1btn:hover::before{transform:none}.v1btn:hover{box-shadow:0 10px 40px -8px rgba(255,138,43,.6)!important}
.v1ghost{background:transparent!important;color:var(--v1-star)!important;font:500 15px var(--v1-body)!important;letter-spacing:0!important;text-transform:none!important;padding:15px 26px!important;box-shadow:inset 0 0 0 1px rgba(243,239,230,.3)!important}
.v1ghost::before{background:var(--v1-star)!important}.v1ghost:hover{color:#04050c!important}
.scroll-cue{display:inline-flex;align-items:center;gap:12px;margin-top:46px;font:500 13px var(--v1-body);color:var(--v1-dust);letter-spacing:.04em}
.scroll-cue i{width:22px;height:34px;border:1px solid rgba(243,239,230,.35);border-radius:12px;position:relative}
.scroll-cue i::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--v1-gold);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
.svc-heading{list-style:none;padding-block:clamp(50px,10vh,100px) 10px}
.svc-heading h2{font-family:var(--v1-display);font-weight:900;font-size:clamp(36px,5vw,72px);letter-spacing:-.04em;line-height:1.02;color:var(--v1-star);margin:0 0 18px}
.svc-heading .lede{max-width:46ch}
/* the vertical orbit: a track down the list with a stop for every planet, filling gold as you travel */
.orbit-sec.start .svc-list{position:relative;padding-left:52px;--prog:0}
.orbit-sec.start .svc-list::before,.orbit-sec.start .svc-list::after{content:"";position:absolute;left:14px;top:calc(100svh * .5);bottom:120px;width:1px;background:linear-gradient(rgba(243,239,230,0),rgba(243,239,230,.16) 6%,rgba(243,239,230,.16) 94%,rgba(243,239,230,0))}
.orbit-sec.start .svc-list::after{background:linear-gradient(var(--v1-gold),#ffd88a);bottom:auto;height:calc((100% - 100svh * .5 - 120px) * var(--prog));transition:height .9s var(--ease);box-shadow:0 0 12px rgba(233,181,77,.6)}
.orbit-sec.start .svc{position:relative}
.orbit-sec.start .svc:not(.svc-brand)::before{content:"";position:absolute;left:-44px;top:calc(clamp(36px,9vh,90px) + 2px);width:13px;height:13px;border-radius:50%;background:#0b1020;border:1px solid rgba(154,157,181,.7);transition:background .5s,border-color .5s,box-shadow .5s,transform .5s var(--ease);z-index:1}
.orbit-sec.start .svc.on:not(.svc-brand)::before{background:var(--v1-gold);border-color:var(--v1-gold);box-shadow:0 0 18px 5px rgba(233,181,77,.5);transform:scale(1.25)}
.orbit-sec.start .svc{border-top-color:transparent}
.orbit-sec.start .svc:last-child{border-bottom:0}
@media (max-width:860px){
  .orbit-sec.start{padding-top:96px}
  .svc-brand{min-height:auto;padding-block:10px 30px!important}
  .svc-brand .mini{display:block;width:min(64vw,260px)!important;height:auto!important;margin:0 auto 26px;animation:none!important}
  .svc-brand h1{font-size:clamp(46px,14vw,72px)}
  .orbit-sec.start .svc-list{padding-left:34px}
  .orbit-sec.start .svc-list::before,.orbit-sec.start .svc-list::after{left:6px;top:420px}
  .orbit-sec.start .svc-list::after{height:calc((100% - 540px) * var(--prog))}
  .orbit-sec.start .svc:not(.svc-brand)::before{left:-34px;top:36px}
  .orbit-sec.start .svc .mini{width:84px;height:84px}
}
@media (prefers-reduced-motion:reduce){.scroll-cue i::after{animation:none}}
.scroll-cue{align-self:flex-start;white-space:nowrap}
/* perf: no live drop-shadow on the spinning planet; a static warm glow sits behind it instead */
.orbit-sec .planet img{filter:none!important;will-change:transform,opacity}
.orbit-sec .planet-glow{display:block!important;inset:16%;background:radial-gradient(closest-side,rgba(255,170,90,.16),rgba(255,170,90,.05) 55%,transparent)!important}
.orbit-sec .planet img{will-change:auto}
.orbit-sec .planet img:not(.on){visibility:hidden;transition:opacity .8s var(--ease),transform 1.1s var(--ease),visibility 0s 1.1s!important}
.orbit-sec .planet img.on{visibility:visible;transition:opacity .8s var(--ease),transform 1.1s var(--ease),visibility 0s!important}
.scroll-cue i{flex:none}

/* ================= v17: scroll-track hero with the first version's typography ================= */
.ph.scroll-track .ph-detail{display:none}
.ph-copy{--v1-gold:#e9b54d;--v1-star:#f3efe6;--v1-dust:#b4b7cc}
.ph-copy .eyebrow{font:500 15px/1.2 "Lexend",system-ui,sans-serif!important;letter-spacing:.02em!important;text-transform:none!important;color:var(--v1-gold)!important;margin-bottom:12px}
.ph-copy h1{font-family:"Unbounded","Arial Black",system-ui,sans-serif!important;font-weight:900!important;text-transform:none!important;letter-spacing:-.045em!important;font-size:clamp(38px,5.2vw,80px)!important;line-height:1!important;max-width:15ch;margin-inline:auto}
.ph-copy .tline{background:var(--v1-gold);margin:18px auto 18px}
.ph-copy p#phText{font:300 17px/1.65 "Lexend",system-ui,sans-serif!important;color:var(--v1-dust)!important;max-width:560px}
.ph-copy p#phText b{font-weight:500;color:var(--v1-star)}
.ph.is-brand #phBtn{background:#ff8a2b;color:#04050c;font:500 15px "Lexend",system-ui,sans-serif;letter-spacing:0;text-transform:none;padding:15px 28px;box-shadow:none}
.ph.is-brand #phBtn::before{background:linear-gradient(110deg,#e9b54d,#ffd88a)}
.ph:not(.is-brand) #phBtn{background:none!important;box-shadow:none!important;color:var(--v1-star);font:500 17px "Lexend",system-ui,sans-serif;letter-spacing:0;text-transform:none;padding:0 0 4px;border-radius:0;border-bottom:1px solid var(--v1-gold)}
.ph:not(.is-brand) #phBtn::before{display:none}
.ph:not(.is-brand) #phBtn:hover{color:var(--v1-gold)}
.ph-lab{font:500 13px "Lexend",system-ui,sans-serif!important;letter-spacing:.06em!important;text-transform:none!important}
@media (max-width:860px){.ph-copy h1{font-size:clamp(32px,9vw,46px)!important}.ph-copy p#phText{font-size:15px!important}}
.ph.is-brand #phBtn{background-image:none!important;background-color:#ff8a2b!important}.ph.is-brand #phBtn:hover{box-shadow:0 10px 40px -8px rgba(255,138,43,.6)!important}
.ph-p .shade{box-shadow:none!important}.ph-p{will-change:transform,opacity}

/* ================= v18: one typographic system, everywhere ================= */
:root{--display:"Unbounded","Arial Black",system-ui,sans-serif;--body:"Lexend",system-ui,-apple-system,"Segoe UI",sans-serif;--gold:#e9b54d;--gold-2:#ffd88a}
body{font-family:var(--body);font-weight:300;letter-spacing:.005em}
h1,h2{font-family:var(--display)!important;font-weight:800!important;text-transform:none!important;letter-spacing:-.035em!important;line-height:1.04!important}
h3{font-family:var(--body);font-weight:600;letter-spacing:-.01em;text-transform:none}
.eyebrow{font:600 12px/1.2 var(--body)!important;letter-spacing:.22em!important;text-transform:uppercase!important;color:var(--gold)!important;display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.8}
.ph-copy .eyebrow{display:inline-flex}
.tline{background:linear-gradient(90deg,var(--gold),var(--gold-2))!important}
/* headings: warm-white with a gold sheen that sweeps across once when they come into view */
h1:not(:has(.outline)):not(:has(.w)):not(:has(.ch)),h2:not(:has(.outline)):not(:has(.w)):not(:has(.ch)){
  background:linear-gradient(105deg,#f6f2ea 0%,#f6f2ea 42%,#ffe3a3 48%,#e9b54d 50%,#ffe3a3 52%,#f6f2ea 58%,#f6f2ea 100%);background-size:300% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent}
h1.lit,h2.lit{animation:sheen 2.4s cubic-bezier(.4,0,.2,1) .15s both}
@keyframes sheen{from{background-position:100% 0}to{background-position:0 0}}
h2 span[style*="color"]{-webkit-text-fill-color:currentColor}
@media (prefers-reduced-motion:reduce){h1.lit,h2.lit{animation:none}}

/* ================= v18: "Your launch sequence" ================= */
.mission{position:relative;padding-block:clamp(90px,12vw,160px) clamp(70px,9vw,120px);overflow-x:clip}
.mission::before{content:"";position:absolute;left:50%;top:38%;width:min(1100px,120vw);aspect-ratio:2.4;translate:-50% -50%;border-radius:50%;background:radial-gradient(closest-side,rgba(98,140,255,.10),rgba(233,181,77,.04) 55%,transparent);pointer-events:none}
.m-head{text-align:center;max-width:760px;margin:0 auto clamp(40px,6vw,70px)}
.m-head h2{font-size:clamp(36px,5vw,72px);margin:14px 0 18px}
.m-head .lede{margin-inline:auto;color:#b4b7cc;font-size:clamp(16px,1.3vw,19px)}
.traj{position:relative;--h:170px}
.traj .path{position:absolute;left:0;right:0;top:0;width:100%;height:var(--h);overflow:visible}
.traj .path path{fill:none;stroke-linecap:round}
.traj .path .base{stroke:rgba(243,239,230,.14);stroke-width:1.5;stroke-dasharray:3 7;vector-effect:non-scaling-stroke}
.traj .path .lit{stroke:url(#trailG);stroke-width:2.5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px rgba(233,181,77,.55))}
.traj .comet{position:absolute;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff6dc;box-shadow:0 0 10px 3px rgba(255,216,138,.9),0 0 34px 10px rgba(233,181,77,.45);z-index:3;will-change:transform}
.stops{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,32px);position:relative;z-index:2}
.stop{padding-top:calc(var(--oy,40px) - 46px);text-align:center}
.stop .orb{position:relative;width:92px;height:92px;margin:0 auto 26px;border-radius:50%}
.stop .orb img{width:100%;height:100%;object-fit:contain;transition:transform 1s var(--ease),filter .8s;filter:grayscale(.65) brightness(.6);animation:turn 70s linear infinite}
.stop .orb img.still{animation:none}
.stop .orb i{position:absolute;inset:-12px;border-radius:50%;border:1px solid rgba(233,181,77,0);transition:border-color .8s,box-shadow .8s}
.stop.lit .orb img{filter:none;transform:scale(1.08)}
.stop.lit .orb i{border-color:rgba(233,181,77,.55);box-shadow:0 0 30px rgba(233,181,77,.25),inset 0 0 20px rgba(233,181,77,.12)}
.stop .snum{font:600 11px var(--body);letter-spacing:.22em;text-transform:uppercase;color:#7f84a3;transition:color .6s}
.stop.lit .snum{color:var(--gold)}
.stop h3{font:800 clamp(22px,2vw,30px)/1.1 var(--display);letter-spacing:-.03em;margin:10px 0 12px;color:#f6f2ea}
.stop p{color:#b4b7cc;font-size:15px;line-height:1.7;max-width:30ch;margin:0 auto}
.stop .get{display:inline-block;margin-top:14px;font:500 13px var(--body);color:#f3efe6;padding:7px 14px;border-radius:999px;border:1px solid rgba(233,181,77,.28);background:rgba(233,181,77,.06)}
.stop{opacity:.55;transition:opacity .8s var(--ease)}
.stop.lit{opacity:1}
.promises{list-style:none;margin:clamp(60px,8vw,100px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.promises li{position:relative;padding:28px 26px;border-radius:22px;background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.015));border:1px solid rgba(243,239,230,.09);overflow:hidden;transition:transform .5s var(--ease),border-color .5s}
.promises li::after{content:"";position:absolute;inset:auto -30% -60% auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(closest-side,rgba(233,181,77,.16),transparent);pointer-events:none}
.promises li:hover{transform:translateY(-4px);border-color:rgba(233,181,77,.35)}
.promises svg{width:30px;height:30px;color:var(--gold);margin-bottom:16px}
.promises h3{font:700 19px/1.2 var(--display);letter-spacing:-.02em;color:#f6f2ea;margin:0 0 8px}
.promises p{color:#b4b7cc;font-size:15px;line-height:1.7}
@media (max-width:860px){
  .traj .path,.traj .comet{display:none}
  .stops{grid-template-columns:1fr;gap:0;padding-left:28px;border-left:1px dashed rgba(243,239,230,.18);margin-left:46px}
  .stop{padding:0 0 38px 0!important;text-align:left;display:grid;grid-template-columns:76px 1fr;column-gap:18px;align-items:start;opacity:1}
  .stop .orb{grid-row:span 4;width:64px;height:64px;margin:0 0 0 -66px}
  .stop p{margin:0}
  .promises{grid-template-columns:1fr}
}
.ph.scroll-track ~ .focus-m,.focus-m{display:none!important}

/* ================= v18: cursor ================= */
/* the light slowly cycles through space hues: teal, blue, violet, gold */
.glow{animation:hueShift 16s linear infinite}
.glow.warm{animation:none}
@keyframes hueShift{0%{filter:hue-rotate(0deg)}50%{filter:hue-rotate(110deg)}100%{filter:hue-rotate(0deg)}}
.cdot,.cring{position:fixed;left:0;top:0;pointer-events:none;z-index:9999;border-radius:50%;opacity:0;transition:opacity .3s}
.has-cursor .cdot,.has-cursor .cring{opacity:1}
.cdot{width:8px;height:8px;margin:-4px 0 0 -4px;background:#ffd24a;box-shadow:0 0 10px 2px rgba(255,210,74,.7)}
.cring{width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid rgba(255,210,74,.55);transition:opacity .3s,width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s,border-color .35s}
.cring.big{width:58px;height:58px;margin:-29px 0 0 -29px;background:rgba(255,210,74,.08);border-color:rgba(255,210,74,.8)}
.cring.down{width:26px;height:26px;margin:-13px 0 0 -13px}
.cring.text{opacity:0!important}
@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.cdot,.cring{display:none}.glow{animation:none}}

/* ================= v18: one button system (the first version's orange) ================= */
.btn{background:#ff8a2b!important;background-image:none!important;color:#120a02!important;font:500 15px/1 var(--body)!important;letter-spacing:.005em!important;text-transform:none!important;padding:15px 26px;border-radius:999px;box-shadow:0 8px 30px -12px rgba(255,138,43,.55)!important;overflow:hidden;isolation:isolate;transition:transform .35s var(--ease),box-shadow .35s}
.btn::before{background:linear-gradient(110deg,#e9b54d,#ffd88a)!important;transform:translateX(-101%);transition:transform .5s var(--ease);z-index:-1}
.btn:hover::before{transform:none}
.btn:hover{transform:translateY(-1px);box-shadow:0 14px 40px -10px rgba(255,138,43,.7)!important}
.btn.ghost{background:transparent!important;color:#f3efe6!important;box-shadow:inset 0 0 0 1px rgba(243,239,230,.32)!important}
.btn.ghost::before{background:#f3efe6!important}
.btn.ghost:hover{color:#120a02!important}
.nav .btn{padding:12px 20px!important;font-size:14px!important}
.round{background:#ff8a2b!important;color:#120a02!important;box-shadow:0 8px 24px -10px rgba(255,138,43,.6)!important}
.ph:not(.is-brand) #phBtn{color:#f3efe6!important;box-shadow:none!important;padding:0 0 4px!important;font-size:17px!important}
/* inner page heroes: a touch lighter so long titles don't stack into a wall */
.phero h1{font-size:clamp(34px,4.3vw,64px)!important;max-width:16ch}
.lede{font-weight:300}
.subnav .subnav-cta{background:#ff8a2b!important;color:#120a02!important;border-color:#ff8a2b!important}
.filters button.on{background:#ff8a2b!important;color:#120a02!important;border-color:#ff8a2b!important}
:root{--flare:#ff8a2b}
.has-drop:focus-within .drop,.has-drop.open .drop{transition:opacity .25s,transform .25s,visibility 0s!important}
.field .err{display:block;min-height:1.35em;line-height:1.35}
@media (max-width:600px){.cta.v1 h2{font-size:clamp(28px,8.6vw,44px)!important}.sky.v1 h2{font-size:clamp(38px,11vw,60px)}}
.mission .stop .get{line-height:1.35}
@media (max-width:860px){.stops{border-left-color:rgba(233,181,77,.28)}}

/* ================= v19: "Countdown to launch" ================= */
.launch{position:relative;min-height:100svh;display:flex;align-items:center;padding-block:clamp(80px,10vh,120px);overflow:hidden}
.launch::before{content:"";position:absolute;inset:auto 0 0;height:45%;background:radial-gradient(60% 100% at 50% 100%,rgba(233,181,77,.10),transparent 70%);pointer-events:none}
.launch-grid{display:grid;grid-template-columns:1.05fr .55fr 1fr;gap:clamp(20px,3vw,48px);align-items:center;width:100%}
.lc-kicker{font:500 15px var(--body);color:var(--gold);margin:0 0 14px}
.launch h2{font-size:clamp(34px,4vw,60px);margin:0 0 14px}
.lc-lede{color:#9aa0b8;font-size:16px;line-height:1.6;max-width:34ch}
.lc-count{position:relative;height:clamp(150px,22vw,300px);margin:6px 0 4px;overflow:hidden}
.lc-count span{display:block;font:900 clamp(150px,22vw,300px)/1 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:2px rgba(233,181,77,.85);
  background:linear-gradient(to top,#e9b54d 0,#ffd88a var(--fill,0%),transparent var(--fill,0%));-webkit-background-clip:text;background-clip:text}
.lc-count span.roll{animation:roll .55s cubic-bezier(.2,.8,.2,1)}
@keyframes roll{from{transform:translateY(60%);opacity:0}to{transform:none;opacity:1}}
.lc-ticks{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap}
.lc-ticks button{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;border:1px solid rgba(243,239,230,.14);background:rgba(255,255,255,.02);color:#9aa0b8;font:500 14px var(--body);cursor:pointer;transition:color .3s,border-color .3s,background .3s}
.lc-ticks button b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(243,239,230,.08);font:700 12px var(--display);color:#f3efe6}
.lc-ticks button:hover{color:#f3efe6;border-color:rgba(233,181,77,.5)}
.lc-ticks button.on{color:#120a02;background:var(--gold);border-color:var(--gold)}
.lc-ticks button.on b{background:#120a02;color:var(--gold)}
.lc-ticks button.done{color:#f3efe6;border-color:rgba(233,181,77,.35)}
/* rocket column */
.lc-rocket{height:min(72vh,640px);display:flex;justify-content:center}
.lc-track{position:relative;width:100%;height:100%;border-left:1px dashed rgba(243,239,230,.14);margin-left:50%}
.lc-track>i{position:absolute;left:-5px;width:9px;height:1px;background:rgba(243,239,230,.35)}
.lc-track>i span{position:absolute;left:16px;top:-8px;font:400 12px var(--body);color:#6f7591;white-space:nowrap}
.lc-trail{position:absolute;left:-1px;bottom:0;width:2px;height:var(--alt,0%);background:linear-gradient(to top,rgba(255,138,43,0),#ff8a2b 40%,#ffd88a);box-shadow:0 0 14px rgba(255,170,60,.6)}
.rk{position:absolute;left:0;bottom:var(--alt,0%);width:46px;margin-left:-23px;transform:translateY(50%);will-change:bottom}
.rk-svg{display:block;width:46px;height:auto;filter:drop-shadow(0 6px 18px rgba(0,0,0,.5))}
.rk .flame{position:absolute;left:50%;top:92%;width:16px;height:calc(26px + var(--thrust,0) * 46px);margin-left:-8px;border-radius:50% 50% 50% 50%/30% 30% 70% 70%;
  background:radial-gradient(ellipse at 50% 15%,#fff 0 18%,#ffd88a 30%,#ff8a2b 60%,rgba(255,80,20,0) 75%);filter:blur(.4px);animation:flick .12s ease-in-out infinite alternate;transform-origin:top center}
@keyframes flick{from{transform:scaleX(.88) scaleY(.94)}to{transform:scaleX(1.08) scaleY(1.06)}}
.rk .smoke{position:absolute;left:50%;top:100%;width:70px;height:40px;margin-left:-35px;border-radius:50%;background:radial-gradient(closest-side,rgba(220,225,240,.22),transparent);opacity:calc(1 - var(--thrust,0));transform:translateY(calc(var(--thrust,0)*40px))}
/* stage copy */
.lc-stages{position:relative;min-height:330px}
.lc-st,.lc-go{position:absolute;inset:0 0 auto;opacity:0;transform:translateY(24px);transition:opacity .5s var(--ease),transform .6s var(--ease);pointer-events:none}
.lc-st.on,.lc-go.on{opacity:1;transform:none;pointer-events:auto}
.lc-st.past{transform:translateY(-24px)}
.lc-mini{display:none}
.lc-st h3,.lc-go h3{font:800 clamp(34px,3.6vw,54px)/1 var(--display);letter-spacing:-.04em;color:#f6f2ea;margin:0 0 18px}
.lc-st p{color:#b4b9cf;font-size:17px;line-height:1.7;max-width:38ch;margin:0}
.lc-st .lc-get{margin-top:24px;padding-top:18px;border-top:1px solid rgba(243,239,230,.1);color:#f3efe6;font-weight:500}
.lc-st .lc-get span{display:block;font-weight:400;font-size:13px;color:var(--gold);margin-bottom:4px}
.lc-go p{color:#b4b9cf;font-size:17px;line-height:1.7;max-width:36ch;margin:0 0 26px}
.launch.go .lc-count span{-webkit-text-stroke-color:transparent}
/* phones: no pinning, the countdown reads top to bottom */
@media (max-width:860px){
  .launch{min-height:0;display:block}
  .launch-grid{grid-template-columns:1fr;gap:0}
  .lc-count,.lc-ticks,.lc-rocket{display:none}
  .lc-stages{min-height:0;margin-top:30px;border-left:1px dashed rgba(233,181,77,.35);padding-left:24px}
  .lc-st,.lc-go{position:relative;opacity:1;transform:none;pointer-events:auto;margin-bottom:38px}
  .lc-mini{display:block;font:900 64px/1 var(--display);color:transparent;-webkit-text-stroke:1.5px var(--gold);margin-bottom:8px}
  .lc-st h3{font-size:30px;margin-bottom:10px}
}
@media (prefers-reduced-motion:reduce){.rk .flame{animation:none}}

/* ================= v19: inner-page design system ================= */
/* labels: sentence case, no tracking, no dashes */
.eyebrow{font:500 14px/1.3 var(--body)!important;letter-spacing:0!important;text-transform:none!important}
.eyebrow::before{display:none}
.crumbs,.crumbs a,.crumbs li{font:400 13px var(--body)!important;letter-spacing:0!important;text-transform:none!important;color:#8a90aa}
.scard .lbl2,.post .meta,.stop .snum{letter-spacing:.02em!important;text-transform:none!important}

/* countdown strip (replaces the plain four-step row) */
.cd-strip{position:relative;margin-top:clamp(30px,5vw,60px)}
.cd-line{position:relative;height:2px;background:repeating-linear-gradient(90deg,rgba(243,239,230,.22) 0 6px,transparent 6px 14px);margin:0 0 36px}
.cd-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,#ff8a2b,#ffd88a);box-shadow:0 0 14px rgba(255,170,60,.6);transition:width 2.6s cubic-bezier(.65,0,.35,1)}
.cd-rk{position:absolute;left:0;top:50%;width:26px;transform:translate(-50%,-50%) rotate(90deg);transition:left 2.6s cubic-bezier(.65,0,.35,1)}
.cd-rk .rk-svg{width:26px;height:auto}
.cd-rk .flame{position:absolute;left:50%;top:92%;width:9px;height:20px;margin-left:-4.5px;border-radius:50%/30% 30% 70% 70%;background:radial-gradient(ellipse at 50% 15%,#fff 0 18%,#ffd88a 30%,#ff8a2b 60%,transparent 75%);animation:flick .12s infinite alternate}
.cd-strip.in .cd-fill{width:100%}.cd-strip.in .cd-rk{left:100%}
.cd-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.cd-list li{opacity:.35;transform:translateY(10px);transition:opacity .6s,transform .6s var(--ease);transition-delay:calc(var(--i) * .5s)}
.cd-strip.in .cd-list li{opacity:1;transform:none}
.cd-n{display:block;font:900 clamp(56px,6vw,92px)/1 var(--display);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(233,181,77,.8);margin-bottom:14px;transition:color .6s;transition-delay:calc(var(--i) * .5s + .3s)}
.cd-strip.in .cd-n{color:rgba(233,181,77,.16)}
.cd-strip.in .cd-go .cd-n{color:var(--gold);-webkit-text-stroke-color:transparent}
.cd-list h3{font:800 22px/1.1 var(--display);letter-spacing:-.03em;color:#f6f2ea;margin:0 0 8px}
.cd-list p{color:#a9aec6;font-size:15px;line-height:1.65;margin:0}
@media (max-width:860px){.cd-list{grid-template-columns:1fr 1fr;row-gap:30px}.cd-line{display:none}.cd-list li{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cd-list li,.cd-n,.cd-fill,.cd-rk{transition:none}}

/* launch-pad call to action */
.cta-band.pad{padding-block:clamp(80px,10vw,140px);text-align:left;overflow:hidden}
.cta-band.pad .ring-bg{display:none}
.pad-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,5vw,80px);align-items:center}
.pad-copy h2{font-size:clamp(36px,4.6vw,68px);margin:0 0 18px;max-width:14ch}
.pad-copy p{color:#a9aec6;font-size:18px;line-height:1.6;max-width:44ch;margin:0}
.pad-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.pad-art{position:relative;aspect-ratio:1;max-width:440px;width:100%;justify-self:center}
.pad-orbit{position:absolute;inset:6%;border-radius:50%;border:1px dashed rgba(243,239,230,.16);animation:turn 90s linear infinite}
.pad-orbit.o2{inset:22%;border-style:solid;border-color:rgba(233,181,77,.22);animation-duration:60s;animation-direction:reverse}
.pad-planet{position:absolute;right:-4%;top:6%;width:46%;transform:rotate(-12deg);filter:drop-shadow(0 20px 40px rgba(0,0,0,.5))}
.pad-rocket{position:absolute;left:50%;bottom:16%;width:64px;margin-left:-32px;animation:hover 4s ease-in-out infinite}
.pad-rocket .rk-svg{width:64px;height:auto}
.pad-rocket .flame{position:absolute;left:50%;top:92%;width:20px;height:46px;margin-left:-10px;border-radius:50%/30% 30% 70% 70%;background:radial-gradient(ellipse at 50% 15%,#fff 0 18%,#ffd88a 30%,#ff8a2b 60%,transparent 75%);animation:flick .12s infinite alternate}
.pad-base{position:absolute;left:28%;right:28%;bottom:8%;height:10px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,170,60,.45),transparent)}
@keyframes hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media (max-width:860px){.pad-grid{grid-template-columns:1fr}.pad-art{max-width:300px}}
@media (prefers-reduced-motion:reduce){.pad-orbit,.pad-rocket{animation:none}}

/* service catalogue cards: bigger, the planet breaks out of the card */
.svc-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))!important;gap:22px!important}
.scard{position:relative;padding:34px 28px 28px!important;border-radius:26px!important;overflow:hidden;min-height:300px;display:flex;flex-direction:column;background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.012))!important;border:1px solid rgba(243,239,230,.08)!important;box-shadow:none!important;transform:none!important}
.scard img{position:absolute;right:-34px;top:-34px;width:150px!important;height:150px!important;opacity:.95;transition:transform 1.2s var(--ease)}
.scard:hover img{transform:rotate(25deg) scale(1.06)}
.scard .lbl2{font:500 13px var(--body)!important;color:var(--gold)!important;margin-top:auto}
.scard h3{font:800 24px/1.1 var(--display)!important;letter-spacing:-.03em!important;color:#f6f2ea;margin:0 0 12px!important;max-width:11ch;order:-1;margin-top:64px!important}
.scard p{color:#a9aec6;font-size:15px;line-height:1.65;margin:0 0 22px}
.scard .go{font:500 15px var(--body)!important;letter-spacing:0!important;text-transform:none!important;color:#f3efe6!important;border-bottom:1px solid var(--gold);align-self:flex-start;padding-bottom:3px}
.scard:hover{border-color:rgba(233,181,77,.35)!important}

/* industries and values: open columns divided by hairlines, not boxes */
.inds,.values{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important;gap:0!important;border-top:1px solid rgba(243,239,230,.1)}
.ind,.value{background:none!important;border:0!important;border-right:1px solid rgba(243,239,230,.08)!important;border-radius:0!important;box-shadow:none!important;padding:30px 24px 10px!important;transform:none!important}
.ind:last-child,.value:last-child{border-right:0!important}
.ind img,.value img{width:64px!important;height:64px!important;margin-bottom:20px}
.ind h3,.value h3{font:800 20px/1.15 var(--display)!important;letter-spacing:-.03em!important;color:#f6f2ea;margin:0 0 10px}
.ind p,.value p{color:#a9aec6;font-size:15px;line-height:1.65}
@media (max-width:860px){.ind,.value{border-right:0!important;border-bottom:1px solid rgba(243,239,230,.08)!important;display:grid;grid-template-columns:56px 1fr;column-gap:16px;padding:22px 0!important}.ind img,.value img{grid-row:span 2;width:52px!important;height:52px!important}}

/* first 30 days: a timeline, because it is one */
.weeks{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;position:relative;padding-top:34px!important}
.weeks::before{content:"";position:absolute;left:0;right:0;top:9px;height:2px;background:linear-gradient(90deg,#ff8a2b,#ffd88a 60%,rgba(255,216,138,.15))}
.weeks li{background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0 22px 0 0!important;position:relative}
.weeks li::before{content:"";position:absolute;left:0;top:-31px;width:12px;height:12px;border-radius:50%;background:#0b1020;border:2px solid var(--gold);box-shadow:0 0 0 5px rgba(233,181,77,.1)}
.weeks li::after{display:none!important}
@media (max-width:860px){.weeks{grid-template-columns:1fr!important;padding:0 0 0 26px!important}.weeks::before{left:5px;right:auto;top:0;bottom:0;width:2px;height:auto;background:linear-gradient(#ff8a2b,rgba(255,216,138,.15))}.weeks li{padding:0 0 26px!important}.weeks li::before{left:-26px;top:4px}}

/* footer */
footer{position:relative;border-top:1px solid rgba(243,239,230,.08)!important;background:linear-gradient(rgba(5,8,16,0),rgba(5,8,16,.7))!important}
.foot h4{font:500 14px var(--body)!important;letter-spacing:0!important;text-transform:none!important;color:var(--gold)!important}
.foot a{color:#a9aec6}
.foot a:hover{color:#f3efe6}
.wordmark{font-family:var(--display)!important;font-weight:900!important;letter-spacing:-.05em!important;color:transparent!important;-webkit-text-stroke:1px rgba(233,181,77,.22)!important}
.section{padding-block:clamp(64px,8vw,120px)!important}

/* ================= v20: "Every brand takes the same route" — a flight between planets ================= */
.launch{display:none}
.route{position:relative;height:100svh;min-height:620px;overflow:hidden}
.rt-head{position:absolute;left:0;right:0;top:clamp(96px,13vh,130px);z-index:4;transition:opacity .5s,transform .5s var(--ease);pointer-events:none}
.route.moving .rt-head{opacity:0;transform:translateY(-20px)}
.rt-kicker{font:500 15px var(--body);color:var(--gold);margin:0 0 12px}
.rt-head h2{font-size:clamp(34px,4.4vw,66px);margin:0 0 12px;max-width:16ch}
.rt-lede{color:#a9aec6;font-size:17px;margin:0}
.rt-world{position:absolute;left:0;top:0;height:100%;width:300vw;will-change:transform;z-index:1}
.rt-path{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.rt-path path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}
.rt-path #rtPath{stroke:rgba(243,239,230,.22);stroke-width:1.5;stroke-dasharray:2 10}
.rt-path .lit{stroke:url(#rtGrad);stroke:#ffb347;stroke-width:2.5;filter:drop-shadow(0 0 6px rgba(255,170,60,.7))}
.rt-pl{position:absolute;width:var(--sz);aspect-ratio:1;translate:-50% -50%;z-index:1}
.rt-pl[data-k="0"]{left:14%;top:52%;--sz:min(34vh,330px)}
.rt-pl[data-k="1"]{left:35.33%;top:33%;--sz:min(19vh,190px)}
.rt-pl[data-k="2"]{left:56.67%;top:61%;--sz:min(27vh,270px)}
.rt-pl[data-k="3"]{left:82.67%;top:33%;--sz:min(48vh,470px)}
.rt-pl img{width:100%;height:100%;object-fit:contain;filter:brightness(.55) saturate(.7);transform:scale(.9);transition:filter 1s var(--ease),transform 1.2s var(--ease)}
.rt-pl[data-k="1"] img,.rt-pl[data-k="2"] img,.rt-pl[data-k="3"] img{animation:turn 120s linear infinite}
.rt-pl::before{content:"";position:absolute;inset:-14%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,190,110,.18),transparent 70%);opacity:0;transition:opacity 1s}
.rt-pl.on img{filter:none;transform:scale(1)}
.rt-pl.on::before{opacity:1}
.rt-tag{position:absolute;left:50%;top:calc(100% + 14px);translate:-50% 0;white-space:nowrap;font:500 14px var(--body);color:#a9aec6;display:flex;align-items:center;gap:8px;transition:color .6s}
.rt-tag b{font:800 12px var(--display);color:var(--gold)}
.rt-pl.on .rt-tag{color:#f3efe6}
.rt-rocket{position:absolute;left:0;top:0;width:34px;height:84px;margin:-42px 0 0 -17px;z-index:3;will-change:transform}
.rt-rocket .rk-svg{width:34px;height:auto;display:block}
.rt-rocket .flame{position:absolute;left:50%;top:92%;width:12px;height:30px;margin-left:-6px;border-radius:50%/30% 30% 70% 70%;background:radial-gradient(ellipse at 50% 15%,#fff 0 18%,#ffd88a 30%,#ff8a2b 60%,transparent 75%);animation:flick .12s infinite alternate}
.rt-cards{position:absolute;left:0;right:0;bottom:clamp(70px,10vh,100px);z-index:4;pointer-events:none}
.rt-card{position:absolute;left:var(--gut,24px);bottom:0;width:min(440px,calc(100% - 48px));padding:26px 28px;border-radius:24px;background:linear-gradient(160deg,rgba(14,20,38,.86),rgba(8,12,24,.78));border:1px solid rgba(243,239,230,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  opacity:0;transform:translateY(20px);transition:opacity .45s var(--ease),transform .55s var(--ease);pointer-events:none}
.rt-card.on{opacity:1;transform:none;pointer-events:auto}
.rt-cimg{display:none}
.rt-where{font:500 13px var(--body);color:var(--gold);margin:0 0 8px}
.rt-card h3{font:800 clamp(28px,2.6vw,40px)/1.05 var(--display);letter-spacing:-.04em;color:#f6f2ea;margin:0 0 12px}
.rt-card p{color:#b4b9cf;font-size:16px;line-height:1.65;margin:0}
.rt-card .rt-get{margin-top:16px;padding-top:14px;border-top:1px solid rgba(243,239,230,.1);color:#f3efe6;font-weight:500}
.rt-card .rt-get span{display:block;font-weight:400;font-size:13px;color:var(--gold);margin-bottom:2px}
.rt-card .btn{margin-top:20px}
.rt-nav{position:absolute;right:var(--gutr,24px);bottom:clamp(70px,10vh,100px);z-index:4;display:flex;gap:6px;padding-right:max(0px,calc((100vw - 1240px)/2))}
.rt-nav button{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid rgba(243,239,230,.14);background:rgba(10,14,28,.6);color:#a9aec6;font:500 14px var(--body);cursor:pointer;transition:color .3s,border-color .3s,background .3s}
.rt-nav button i{width:8px;height:8px;border-radius:50%;background:rgba(243,239,230,.3);transition:background .3s,box-shadow .3s}
.rt-nav button:hover{color:#f3efe6;border-color:rgba(233,181,77,.5)}
.rt-nav button.on{color:#f3efe6;border-color:rgba(233,181,77,.6)}
.rt-nav button.on i,.rt-nav button.done i{background:var(--gold);box-shadow:0 0 10px rgba(233,181,77,.8)}
@media (min-width:1300px){.rt-card{left:calc((100vw - 1240px)/2 + 24px)}}
/* phones: the route reads top to bottom, each stop with its planet */
@media (max-width:860px){
  .route{height:auto;min-height:0;padding-block:80px 40px}
  .rt-head{position:relative;top:0;opacity:1!important;transform:none!important}
  .rt-world,.rt-nav{display:none}
  .rt-cards{position:relative;bottom:auto;margin-top:34px;display:grid;gap:18px;padding-left:28px;border-left:1px dashed rgba(233,181,77,.4);margin-left:24px}
  .rt-card{position:relative;left:auto;width:auto;opacity:1;transform:none;pointer-events:auto;padding:22px}
  .rt-cimg{display:block;width:84px;height:84px;margin:-6px 0 12px}
}
.ph-planets{z-index:1}
/* route: the rocket skims over the top of each planet, info panel on the right, stops on the left */
.rt-pl{translate:-50% calc(-50% + var(--sz) * .58)}
.rt-card{left:auto!important;right:var(--gutr,24px)}
@media (min-width:1300px){.rt-card{right:calc((100vw - 1240px)/2 + 24px)}}
.rt-nav{right:auto;left:var(--gut,24px);padding-right:0;padding-left:max(0px,calc((100vw - 1240px)/2))}
@media (max-width:860px){.rt-card{right:auto!important}}
.rt-pl[data-k="0"]{left:14%;top:47%;--sz:min(30vh,300px)}
.rt-pl[data-k="1"]{left:35.33%;top:30%;--sz:min(18vh,180px)}
.rt-pl[data-k="2"]{left:56.67%;top:54%;--sz:min(25vh,250px)}
.rt-pl[data-k="3"]{left:76.67%;top:32%;--sz:min(40vh,400px)}
.rt-pl{translate:-50% calc(-50% + var(--sz) * .56)}
.rt-path .lit{vector-effect:none;stroke-width:3}
.rt-nav{top:clamp(100px,14vh,128px);bottom:auto;right:var(--gutr,24px);left:auto;padding-left:0;padding-right:max(0px,calc((100vw - 1240px)/2));opacity:0;transition:opacity .5s}
.route.moving .rt-nav{opacity:1}
/* perf: no live filters in the route */
.rt-path .lit{filter:none!important;stroke-width:3}
.rt-pl img{filter:none!important;opacity:.5;transition:opacity 1s var(--ease),transform 1.2s var(--ease)!important;will-change:transform}
.rt-pl.on img{opacity:1}
.rt-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:linear-gradient(160deg,rgba(14,20,38,.96),rgba(8,12,24,.94))!important}
.rt-world{contain:layout style}
/* nav: logo left, links truly centred, actions right */
.nav-in{display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:20px}
.nav-in .brand{justify-self:start}
.nav-in .menu{margin:0!important;justify-self:center}
.nav-right{justify-self:end;display:flex;align-items:center;gap:14px}
@media (max-width:980px){.nav-in{grid-template-columns:1fr auto}.nav-in .menu{display:none}}
.nav-in{padding-left:16px!important;padding-right:16px!important}
html,body{margin:0!important;padding:0}

/* ===== v22: "How we work" as a vertical route. Planets stacked down the page, a rocket flies the
   path between them as you scroll. No pin, no snap: same feel on wheel, trackpad and touch. ===== */
.vroute{position:relative;padding:clamp(96px,14vh,150px) 0 clamp(70px,10vh,120px);overflow-x:clip;
  background:radial-gradient(60% 40% at 50% 12%,rgba(233,181,77,.07),transparent 70%),radial-gradient(50% 30% at 50% 92%,rgba(120,150,255,.06),transparent 70%)}
.vr-head{text-align:center;margin-bottom:clamp(30px,6vh,70px)}
.vr-kicker{font:500 15px var(--body);color:var(--gold);margin:0 0 14px}
.vr-head h2{font-size:clamp(34px,5.2vw,74px);line-height:1.02;margin:0 auto 16px;max-width:14ch}
.vr-lede{color:#a9aec6;font-size:clamp(16px,1.3vw,18px);line-height:1.6;margin:0 auto;max-width:36ch}
.vr-track{position:relative}
.vr-svg{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;z-index:0}
.vr-base{fill:none;stroke:rgba(243,239,230,.2);stroke-width:2;stroke-dasharray:2 11;stroke-linecap:round}
.vr-lit{fill:none;stroke:url(#vrGrad);stroke-width:3;stroke-linecap:round}
.vr-rocket{position:absolute;left:0;top:0;width:30px;height:74px;margin:-37px 0 0 -15px;z-index:3;will-change:transform;pointer-events:none}
.vr-rocket .rk-svg{width:30px;height:auto;display:block;filter:drop-shadow(0 8px 16px rgba(0,0,0,.55))}
.vr-rocket .flame{position:absolute;left:50%;top:92%;width:11px;height:28px;margin-left:-5.5px;border-radius:50%/30% 30% 70% 70%;background:radial-gradient(ellipse at 50% 15%,#fff 0 18%,#ffd88a 30%,#ff8a2b 60%,transparent 75%);animation:flick .12s infinite alternate;transition:opacity .4s}
.vr-rocket.parked .flame{opacity:0}
.vr-stops{list-style:none;margin:0;padding:0;position:relative;z-index:1}
.vr-stop{display:grid;grid-template-columns:minmax(0,1fr) clamp(170px,22vw,290px) minmax(0,1fr);align-items:center;column-gap:clamp(20px,4vw,64px);min-height:clamp(360px,56vh,540px)}
.vr-stop:nth-child(odd){--off:-34px}
.vr-stop:nth-child(even){--off:34px}
.vr-pl{grid-column:2;grid-row:1;justify-self:center;position:relative;left:var(--off,0);width:clamp(140px,16vw,220px);aspect-ratio:1}
.vr-pl img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;animation:turn 140s linear infinite}
.vr-pl[data-p="earth"] img{animation:none}
.vr-halo{position:absolute;inset:-26%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,190,110,.2),transparent 72%);opacity:0;transition:opacity 1s var(--ease)}
.vr-pl::after{content:"";position:absolute;inset:-9%;border-radius:50%;border:1px solid rgba(233,181,77,.35);opacity:0;scale:.92;transition:opacity .9s var(--ease),scale 1.1s var(--ease)}
.vr-num{position:absolute;left:50%;top:calc(100% + 14px);translate:-50% 0;font:800 13px var(--display);letter-spacing:.1em;color:var(--gold)}
.vr-card{position:relative;max-width:460px;padding:clamp(22px,2.4vw,32px);border-radius:26px;background:linear-gradient(160deg,rgba(18,26,48,.8),rgba(8,12,24,.62));border:1px solid rgba(243,239,230,.09);box-shadow:0 30px 60px -30px rgba(0,0,0,.75)}
.vr-card::before{content:"";position:absolute;left:28px;right:28px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,200,120,.8),transparent)}
.vr-stop:nth-child(odd) .vr-card{grid-column:3;grid-row:1;justify-self:start}
.vr-stop:nth-child(even) .vr-card{grid-column:1;grid-row:1;justify-self:end}
.vr-where{display:flex;align-items:center;gap:10px;font:500 13px var(--body);color:var(--gold);margin:0 0 10px;letter-spacing:.02em}
.vr-where span{color:#a9aec6}
.vr-where i{width:18px;height:1px;background:currentColor;opacity:.6}
.vr-card h3{font:800 clamp(28px,3vw,46px)/1.02 var(--display);letter-spacing:-.04em;color:#f6f2ea;margin:0 0 12px}
.vr-desc{color:#b4b9cf;font-size:16.5px;line-height:1.65;margin:0}
.vr-get{margin:18px 0 0;padding-top:14px;border-top:1px solid rgba(243,239,230,.1);color:#f3efe6;font-weight:500;font-size:16px;line-height:1.45}
.vr-get span{display:block;font-size:13px;font-weight:400;color:var(--gold);margin-bottom:3px}
.vr-end{position:relative;z-index:1;text-align:center;max-width:560px;margin:clamp(30px,6vh,70px) auto 0}
.vr-orbit{position:relative;width:clamp(170px,19vw,250px);aspect-ratio:1;margin:0 auto 34px}
.vr-orbit img{display:block;width:100%;height:100%;object-fit:contain;position:relative;z-index:1}
.vr-ringline{position:absolute;inset:-6%;border-radius:50%;border:1px dashed rgba(233,181,77,.3);animation:turn 60s linear infinite}
.vr-end .vr-where{justify-content:center}
.vr-end h3{font:800 clamp(40px,5vw,72px)/1 var(--display);letter-spacing:-.04em;color:#f6f2ea;margin:0 0 14px}
.vr-end p{color:#b4b9cf;font-size:17px;line-height:1.6;margin:0 auto;max-width:34ch}
.vr-end .btn{margin-top:26px}
/* motion states: only once the script is running, so the content is always there without it */
.vr-js .vr-pl img{filter:brightness(.45) saturate(.6);scale:.84;transition:filter 1s var(--ease),scale 1.2s var(--ease)}
.vr-js .vr-stop.on .vr-pl img{filter:none;scale:1}
.vr-js .vr-stop.now .vr-halo,.vr-js .vr-stop.now .vr-pl::after{opacity:1;scale:1}
.vr-js .vr-card,.vr-js .vr-end>:not(.vr-orbit){opacity:0;translate:0 28px;transition:opacity .8s var(--ease),translate .9s var(--ease)}
.vr-js .vr-stop.on .vr-card,.vr-js .vr-end.on>:not(.vr-orbit){opacity:1;translate:0 0}
.vr-js .vr-end>.vr-where{transition-delay:.05s}.vr-js .vr-end>h3{transition-delay:.12s}.vr-js .vr-end>p{transition-delay:.2s}.vr-js .vr-end>.btn{transition-delay:.28s}
.vr-js .vr-orbit img{filter:brightness(.45) saturate(.6);scale:.84;transition:filter 1s var(--ease),scale 1.2s var(--ease)}
.vr-js .vr-end.on .vr-orbit img{filter:none;scale:1}
/* tablets and small laptop windows */
@media (max-width:1100px){.vr-stop{min-height:clamp(340px,50vh,480px)}.vr-stop:nth-child(odd){--off:-20px}.vr-stop:nth-child(even){--off:20px}}
/* phones: planets run down the left with the path, each stop's card beside it */
@media (max-width:820px){
  .vroute{padding-top:88px}
  .vr-head{text-align:left}
  .vr-head h2,.vr-lede{margin-left:0}
  .vr-stop{grid-template-columns:72px minmax(0,1fr);column-gap:18px;min-height:0;padding:26px 0;align-items:start}
  .vr-pl{grid-column:1;width:72px;left:0;margin-top:20px}
  .vr-num{display:none}
  .vr-stop:nth-child(n) .vr-card{grid-column:2;justify-self:stretch;max-width:none}
  .vr-card{padding:20px 20px 22px;border-radius:22px}
  .vr-card::before{left:20px;right:20px}
  .vr-card h3{font-size:clamp(26px,7vw,34px)}
  .vr-desc{font-size:15.5px}
  .vr-rocket{width:22px;height:56px;margin:-28px 0 0 -11px}
  .vr-rocket .rk-svg{width:22px}
  .vr-rocket .flame{width:8px;height:20px;margin-left:-4px}
  .vr-end{margin-top:24px}
  .vr-orbit{width:150px}
  .vr-js .vr-card{translate:0 18px}
}
@media (prefers-reduced-motion:reduce){.vr-pl img,.vr-ringline,.vr-rocket .flame{animation:none}.vr-js .vr-card,.vr-js .vr-end>*{transition:none}}
/* ----- v22b: life. Flowing light, sparks, floating planets with little moons, arrival pulses, side rail ----- */
.vr-glow{fill:none;stroke:#ffb347;stroke-width:10;stroke-linecap:round;opacity:.14}
.vr-svg{will-change:transform}
.vr-svg2{z-index:1}
.vr-hot{fill:none;stroke:#fff3d0;stroke-width:3.5;stroke-linecap:round;opacity:.9}
.vr-sparks{position:absolute;left:0;top:0;width:0;height:0;z-index:2;pointer-events:none}
.vr-sparks i{position:absolute;left:0;top:0;border-radius:50%;margin:-2px 0 0 -2px;box-shadow:0 0 8px 2px rgba(255,170,60,.55);will-change:transform,opacity}
.vr-rk-in{display:block;position:relative;animation:vrSway 2.6s ease-in-out infinite;transform-origin:50% 40%}
@keyframes vrSway{0%,100%{rotate:-3deg}50%{rotate:3deg}}
.vr-rocket::before{content:"";position:absolute;left:50%;top:50%;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,180,90,.28),transparent 70%);opacity:calc(.35 + var(--thrust,0) * .65);transition:opacity .3s}
.vr-rocket .flame{height:calc(22px + var(--thrust,0) * 38px);transition:height .25s,opacity .4s}
@media (max-width:820px){.vr-rocket .flame{height:calc(16px + var(--thrust,0) * 26px)}.vr-rocket::before{width:80px;height:80px;margin:-40px 0 0 -40px}}
/* planets float, each with a small moon on a tilted orbit */
.vr-pl{animation:vrFloat 7s ease-in-out infinite;cursor:pointer}
.vr-stop:nth-child(2) .vr-pl{animation-delay:-2s}.vr-stop:nth-child(3) .vr-pl{animation-delay:-4.5s}.vr-stop:nth-child(4) .vr-pl{animation-delay:-1s}
@keyframes vrFloat{0%,100%{translate:0 -7px}50%{translate:0 7px}}
.vr-orb{position:absolute;inset:-20%;border-radius:50%;border:1px dashed rgba(243,239,230,.16);transform:rotate(-18deg) scaleY(.36);z-index:2;pointer-events:none}
.vr-sat{position:absolute;inset:0;border-radius:50%;animation:turn 9s linear infinite}
.vr-stop:nth-child(2) .vr-sat{animation-duration:12s}.vr-stop:nth-child(3) .vr-sat{animation-duration:7.5s}.vr-stop:nth-child(4) .vr-sat{animation-duration:14s}
.vr-sat::before{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#ffd88a 45%,#c98a22);box-shadow:0 0 12px 3px rgba(255,200,110,.6);animation:vrSatFade 9s linear infinite;animation-duration:inherit}
@keyframes vrSatFade{0%,18%{opacity:.12}30%,70%{opacity:1}82%,100%{opacity:.12}}
.vr-sat{animation-direction:normal}
.vr-sat::before{animation-delay:0s}
/* arrival pulse */
.vr-burst{position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:0}
.vr-pl.burst .vr-burst::before,.vr-pl.burst .vr-burst::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,200,120,.75);box-shadow:0 0 30px rgba(255,170,60,.45);animation:vrPulse 1.6s cubic-bezier(.2,.7,.3,1) both}
.vr-pl.burst .vr-burst::after{animation-delay:.28s;border-width:1px}
@keyframes vrPulse{from{opacity:1;scale:.9}to{opacity:0;scale:1.9}}
.vr-js .vr-stop.now .vr-halo{animation:vrBreathe 3.2s ease-in-out infinite}
@keyframes vrBreathe{0%,100%{scale:1;opacity:.75}50%{scale:1.12;opacity:1}}
/* cards: ghost numeral, pointer light, staggered reveal */
.vr-card{overflow:hidden;isolation:isolate}
.vr-card::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(255,190,110,.12),transparent 60%);opacity:0;transition:opacity .4s}
.vr-card:hover::after{opacity:1}
.vr-ghost{position:absolute;right:-6px;top:-24px;z-index:-1;font:900 clamp(110px,11vw,170px)/1 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px rgba(243,239,230,.09);pointer-events:none;user-select:none}
.vr-card::before{transform-origin:left;transition:transform 1.1s var(--ease) .15s}
.vr-js .vr-card::before{transform:scaleX(0)}
.vr-js .vr-stop.on .vr-card::before{transform:none}
.vr-js .vr-card>:not(.vr-ghost){opacity:0;translate:0 14px;transition:opacity .6s var(--ease),translate .7s var(--ease)}
.vr-js .vr-stop.on .vr-card>:not(.vr-ghost){opacity:1;translate:0 0}
.vr-js .vr-stop.on .vr-card>.vr-where{transition-delay:.12s}
.vr-js .vr-stop.on .vr-card>h3{transition-delay:.2s}
.vr-js .vr-stop.on .vr-card>.vr-desc{transition-delay:.3s}
.vr-js .vr-stop.on .vr-card>.vr-get{transition-delay:.42s}
.vr-js .vr-ghost{opacity:0;translate:0 30px;transition:opacity 1.2s var(--ease) .2s,translate 1.4s var(--ease) .2s}
.vr-js .vr-stop.on .vr-ghost{opacity:1;translate:0 0}
/* side rail */
.vr-hud{position:fixed;right:max(22px,env(safe-area-inset-right,0px));top:50%;translate:16px -50%;z-index:30;display:flex;flex-direction:column;gap:14px;padding:16px 12px;border-radius:999px;background:rgba(8,12,24,.55);border:1px solid rgba(243,239,230,.08);opacity:0;pointer-events:none;transition:opacity .45s var(--ease),translate .55s var(--ease)}
.vr-hud.show{opacity:1;translate:0 -50%;pointer-events:auto}
.vr-hud button{position:relative;z-index:1;width:22px;height:22px;display:grid;place-items:center;border:0;background:none;padding:0;cursor:pointer}
.vr-hud button i{width:9px;height:9px;border-radius:50%;background:#0b1020;border:1.5px solid rgba(243,239,230,.35);transition:background .3s,border-color .3s,box-shadow .3s,scale .3s}
.vr-hud button.done i,.vr-hud button.on i{background:var(--gold);border-color:var(--gold)}
.vr-hud button.on i{scale:1.35;box-shadow:0 0 0 5px rgba(233,181,77,.18),0 0 14px rgba(233,181,77,.8)}
.vr-hud button span{position:absolute;right:calc(100% + 14px);top:50%;translate:6px -50%;white-space:nowrap;font:500 13px var(--body);color:#f3efe6;background:rgba(8,12,24,.85);border:1px solid rgba(243,239,230,.1);padding:6px 11px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .25s,translate .3s var(--ease)}
.vr-hud button:hover span,.vr-hud button:focus-visible span,.vr-hud button.on span{opacity:1;translate:0 -50%}
.vr-hud-bar{position:absolute;left:50%;top:27px;bottom:27px;width:2px;margin-left:-1px;background:rgba(243,239,230,.12);border-radius:2px;overflow:hidden}
.vr-hud-bar i{position:absolute;inset:0;background:linear-gradient(#ffd88a,#ff8a2b);transform-origin:top;transform:scaleY(0)}
.vr-hud{display:none}
@media (min-width:1360px) and (min-height:600px) and (hover:hover){.vr-hud{display:flex}}
@media (hover:none){.vr-hud button span{display:none}}
/* pause the ambient loops while the section is off screen */
.vroute:not(.vr-live) .vr-pl,.vroute:not(.vr-live) .vr-sat,.vroute:not(.vr-live) .vr-sat::before,.vroute:not(.vr-live) .vr-rk-in,.vroute:not(.vr-live) .vr-pl img{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.vr-pl,.vr-sat,.vr-sat::before,.vr-rk-in,.vr-halo{animation:none!important}.vr-pl.burst .vr-burst::before,.vr-pl.burst .vr-burst::after{animation:none}}
/* compact route on inner pages */
.vr-compact{padding-block:clamp(70px,10vh,110px) clamp(50px,8vh,90px)}
.vr-compact .vr-head h2{font-size:clamp(30px,4vw,56px);max-width:18ch}
.vr-compact .vr-stop{min-height:clamp(280px,42vh,400px)}
.vr-compact .vr-pl{width:clamp(110px,12vw,170px)}
.vr-compact .vr-orbit{width:clamp(130px,14vw,190px)}
.vr-compact .vr-end h3{font-size:clamp(34px,4vw,56px)}
@media (max-width:820px){.vr-compact .vr-stop{min-height:0}.vr-compact .vr-pl{width:64px}}

/* ===== v23: life layer ===== */
/* headings rise in word by word, then the gold sheen sweeps across */
h2.wsplit .wr{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .05em .16em;margin:0 -.05em -.16em}
h2.wsplit .wi{display:inline-block;-webkit-text-fill-color:#f6f2ea;translate:0 108%;rotate:5deg;transform-origin:0 100%;transition:translate .95s cubic-bezier(.2,.8,.2,1) calc(var(--i,0) * 70ms),rotate .95s cubic-bezier(.2,.8,.2,1) calc(var(--i,0) * 70ms)}
h2.wsplit span[style*="color"] .wi{-webkit-text-fill-color:currentColor}
h2.wsplit.rise .wi{translate:0 0;rotate:0deg}
/* buttons: a light glint passes over the main buttons every few seconds */
.btn:not(.ghost){overflow:hidden;isolation:isolate}
.btn:not(.ghost)::after{content:"";position:absolute;top:0;bottom:0;left:0;width:60%;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 0,rgba(255,255,255,.55) 50%,transparent 100%);translate:-180% 0;skew:-18deg;animation:glint 5.5s cubic-bezier(.4,0,.2,1) 2s infinite}
@keyframes glint{0%{translate:-180% 0}22%,100%{translate:260% 0}}
.btn .arr,.btn svg{transition:translate .35s var(--ease)}
.btn:hover .arr,.btn:hover svg{translate:4px 0}
/* astronauts drift */
#duo .a1{animation:drift 7s ease-in-out infinite}
#duo .a2{animation:drift 8.5s ease-in-out -3s infinite}
@keyframes drift{0%,100%{translate:0 -10px}50%{translate:0 12px}}
#tether{stroke-dasharray:6 8}
/* milestones */
.work-prog{position:absolute;left:var(--gut,24px);right:var(--gutr,24px);bottom:clamp(30px,6vh,60px);height:2px;max-width:1240px;margin:0 auto;background:rgba(243,239,230,.1);border-radius:2px;overflow:hidden}
.work-prog i{position:absolute;inset:0;background:linear-gradient(90deg,#ffd88a,#ff8a2b);transform-origin:left;transform:scaleX(0)}
@media (max-width:860px){.work-prog{display:none}}
.work.v1{position:relative}
.strip{counter-reset:fr}
.frame{counter-increment:fr;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s var(--ease),box-shadow .5s}
.frame.tilting{transition:transform .12s linear,box-shadow .5s;box-shadow:0 30px 60px -20px rgba(0,0,0,.7),0 0 0 1px rgba(233,181,77,.35)}
.frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(500px circle at var(--gx,50%) var(--gy,0%),rgba(255,220,160,.18),transparent 45%);opacity:0;transition:opacity .4s}
.frame.tilting::after{opacity:1}
.frame figcaption{display:flex;align-items:center;gap:10px;transition:translate .5s var(--ease)}
.frame figcaption::before{content:counter(fr,decimal-leading-zero);font:800 12px var(--display);color:var(--gold);letter-spacing:.08em}
.frame:hover figcaption{translate:0 -6px}
.frame::before{content:"";position:absolute;inset:auto 0 0 0;height:45%;z-index:0;pointer-events:none;background:linear-gradient(transparent,rgba(4,6,14,.75))}
.frame figcaption{z-index:1}
/* closing call-to-action: outline fills with gold, Saturn floats, stars twinkle */
.cta.v1 h2 .outline{background:linear-gradient(90deg,#ffd88a,#e9b54d) 0 0/var(--fill,0%) 100% no-repeat;-webkit-background-clip:text;background-clip:text}
.cta.v1 .saturn{animation:satFloat 9s ease-in-out infinite}
@keyframes satFloat{0%,100%{translate:0 -8px}50%{translate:0 10px}}
.cta.v1{position:relative}
.cta.v1::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(2px 2px at 12% 22%,#fff,transparent),radial-gradient(1.5px 1.5px at 82% 18%,#ffe3a3,transparent),radial-gradient(2px 2px at 70% 64%,#fff,transparent),radial-gradient(1.5px 1.5px at 24% 72%,#ffe3a3,transparent),radial-gradient(2px 2px at 48% 12%,#fff,transparent),radial-gradient(1.5px 1.5px at 90% 80%,#fff,transparent),radial-gradient(2px 2px at 6% 52%,#ffe3a3,transparent);
  animation:twinkle 3.8s ease-in-out infinite alternate}
.cta.v1::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(1.5px 1.5px at 34% 30%,#fff,transparent),radial-gradient(2px 2px at 60% 26%,#ffe3a3,transparent),radial-gradient(1.5px 1.5px at 16% 88%,#fff,transparent),radial-gradient(2px 2px at 78% 44%,#fff,transparent),radial-gradient(1.5px 1.5px at 94% 36%,#ffe3a3,transparent),radial-gradient(2px 2px at 40% 84%,#fff,transparent);
  animation:twinkle 2.9s ease-in-out -1.4s infinite alternate}
.cta.v1 .wrap{position:relative;z-index:1}
@keyframes twinkle{from{opacity:.15}to{opacity:1}}
/* service, industry and value cards: their planets turn and lift on hover */
.scard img,.ind img,.value img{transition:rotate 1.2s var(--ease),scale 1.2s var(--ease),translate 1.2s var(--ease),filter .6s}
.scard:hover img,.ind:hover img,.value:hover img{rotate:28deg;scale:1.08;translate:0 -4px;filter:drop-shadow(0 0 22px rgba(255,190,110,.35))}
/* footer: a gold light runs slowly through the big wordmark; links get a sliding underline */
.wordmark{background:linear-gradient(100deg,transparent 0 45.5%,rgba(255,216,138,.55) 49%,rgba(255,236,190,.8) 50%,rgba(255,216,138,.55) 51%,transparent 54.5% 100%) 0 0/300% 100% no-repeat;-webkit-background-clip:text;background-clip:text;animation:wmSweep 7s linear infinite}
@keyframes wmSweep{from{background-position:120% 0}to{background-position:-20% 0}}
footer ul a{position:relative;display:inline-block;transition:color .3s,translate .35s var(--ease)}
footer ul a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
footer ul a:hover{color:#f6f2ea;translate:3px 0}
footer ul a:hover::after{transform:scaleX(1);transform-origin:left}
footer h4{position:relative;padding-left:14px}
footer h4::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px rgba(233,181,77,.8);animation:pulseDot 2.6s ease-in-out infinite}
@keyframes pulseDot{0%,100%{opacity:.5;scale:.8}50%{opacity:1;scale:1.15}}
@media (prefers-reduced-motion:reduce){.btn::after,#duo .a1,#duo .a2,.cta.v1 .saturn,.cta.v1::before,.cta.v1::after,.wordmark,footer h4::before{animation:none!important}h2.wsplit .wi{translate:none;rotate:none;transition:none}}
/* service pages: timeline fills with a comet, included items and chips come alive */
.weeks{--wk:0}
.weeks::before{transform-origin:left;transform:scaleX(var(--wk))}
.weeks::after{content:"";position:absolute;top:4px;left:calc(var(--wk) * 100%);width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#fff6dc;box-shadow:0 0 0 4px rgba(255,200,120,.25),0 0 22px 6px rgba(255,170,60,.7);opacity:calc(var(--wk) * 8);pointer-events:none}
.weeks li::before{transition:background .4s,box-shadow .5s,scale .5s var(--ease)}
.weeks li.lit::before{background:var(--gold);scale:1.2;box-shadow:0 0 0 6px rgba(233,181,77,.18),0 0 18px rgba(233,181,77,.8)}
.weeks li h3,.weeks li p,.weeks li .wk{transition:opacity .6s,translate .6s var(--ease)}
.weeks li:not(.lit) h3,.weeks li:not(.lit) p{opacity:.45}
@media (max-width:860px){.weeks::before{transform-origin:top;transform:scaleY(var(--wk))}.weeks::after{left:6px;top:calc(var(--wk) * 100%)}.weeks li::before{left:-26px;top:4px}}
.ticks li{transition:background .4s,padding-left .45s var(--ease)}
.ticks li::before{transition:scale .45s var(--ease),box-shadow .45s;animation:pulseDot 3s ease-in-out infinite}
.ticks li:nth-child(2n)::before{animation-delay:-1.1s}.ticks li:nth-child(3n)::before{animation-delay:-2s}
.ticks li:hover{background:linear-gradient(90deg,rgba(233,181,77,.07),transparent 70%);padding-left:48px}
.ticks li:hover::before{scale:1.6;box-shadow:0 0 18px 3px rgba(233,181,77,.8)}
.chips li{animation:chipDrift 6s ease-in-out infinite;transition:border-color .3s,color .3s,box-shadow .4s,background .4s}
.chips li:nth-child(2n){animation-duration:7.5s;animation-delay:-2s}.chips li:nth-child(3n){animation-duration:8.5s;animation-delay:-4s}
.chips li:hover{box-shadow:0 0 24px rgba(233,181,77,.3);background:rgba(233,181,77,.06)}
@keyframes chipDrift{0%,100%{translate:0 -4px}50%{translate:0 5px}}
@media (prefers-reduced-motion:reduce){.chips li,.ticks li::before{animation:none}}
.weeks li{contain:none!important;overflow:visible!important}
/* about: follow our journey, with a little orbiting system around the emblem */
.journey-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,90px);align-items:center}
.jy-art{position:relative;width:min(440px,100%);aspect-ratio:1;margin-left:auto}
.jy-ring{position:absolute;border-radius:50%;border:1px dashed rgba(243,239,230,.14);animation:turn 30s linear infinite}
.jy-ring.r1{inset:30%;animation-duration:14s}
.jy-ring.r2{inset:16%;animation-duration:24s;animation-direction:reverse}
.jy-ring.r3{inset:2%;animation-duration:40s}
.jy-ring img{position:absolute;left:50%;top:0;width:clamp(28px,7%,44px);translate:-50% -50%;animation:turn 30s linear infinite reverse;filter:drop-shadow(0 0 12px rgba(255,190,110,.25))}
.jy-ring.r1 img{width:26px}
.jy-ring.r3 img{width:clamp(40px,12%,58px)}
.jy-ring img.b{top:auto;bottom:0;translate:-50% 50%;width:22px}
.jy-core{position:absolute;inset:38%;display:grid;place-items:center;border-radius:50%;background:radial-gradient(closest-side,rgba(233,181,77,.25),transparent 70%);animation:vrBreathe 4s ease-in-out infinite}
.jy-core img{width:80%;filter:drop-shadow(0 0 22px rgba(233,181,77,.45))}
@media (max-width:820px){.journey-grid{grid-template-columns:1fr}.jy-art{margin:10px auto 0;width:min(320px,86vw)}}
@media (prefers-reduced-motion:reduce){.jy-ring,.jy-ring img,.jy-core{animation:none}}
html.leaving main,html.leaving footer{opacity:0;translate:0 -14px;filter:blur(3px);transition:opacity .24s ease,translate .24s ease,filter .24s ease}
.cta.v1::before,.cta.v1::after{will-change:opacity}
@media (max-width:860px){.phero-planet.sm-m{max-width:min(48vw,220px);margin-inline:auto 0}}
/* marquee: the star separators spin and glow, outlined words light up on hover */
.marquee span::after{animation:turn 6s linear infinite;filter:drop-shadow(0 0 6px rgba(233,181,77,.8))}
.marquee span{transition:color .4s,-webkit-text-stroke-color .4s}
.marquee span:nth-child(even):hover{-webkit-text-stroke-color:var(--gold)}
.marquee span:nth-child(odd):hover{color:var(--gold)}
/* social pills lift and glow */
.socials a{transition:translate .35s var(--ease),box-shadow .4s,border-color .4s,color .3s}
.socials a:hover{translate:0 -3px;box-shadow:0 10px 26px -10px rgba(233,181,77,.55);border-color:rgba(233,181,77,.55)}
@media (prefers-reduced-motion:reduce){.marquee span::after{animation:none}}
/* route cards: richer content */
.vr-card{max-width:500px}
.vr-where{flex-wrap:wrap}
.vr-when{margin-left:auto;font-style:normal;font:600 11.5px var(--body);letter-spacing:.06em;color:#ffd88a;padding:5px 11px;border-radius:999px;border:1px solid rgba(233,181,77,.35);background:rgba(233,181,77,.08)}
.vr-promise{font:500 clamp(17px,1.35vw,19.5px)/1.4 var(--body);color:#f3efe6;margin:0 0 10px}
.vr-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:9px}
.vr-list li{position:relative;padding-left:26px;color:#c9cde0;font-size:15px;line-height:1.5}
.vr-list li::before{content:"";position:absolute;left:2px;top:.42em;width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(233,181,77,.7);background:radial-gradient(circle,#ffd88a 0 30%,transparent 36%)}
.vr-js .vr-stop.on .vr-card>.vr-promise{transition-delay:.26s}
.vr-js .vr-stop.on .vr-card>.vr-desc{transition-delay:.34s}
.vr-js .vr-stop.on .vr-card>.vr-list{transition-delay:.44s}
.vr-js .vr-stop.on .vr-card>.vr-get{transition-delay:.54s}
.vr-js .vr-list li{opacity:0;translate:-10px 0;transition:opacity .5s var(--ease),translate .6s var(--ease)}
.vr-js .vr-stop.on .vr-list li{opacity:1;translate:0 0}
.vr-js .vr-stop.on .vr-list li:nth-child(1){transition-delay:.5s}.vr-js .vr-stop.on .vr-list li:nth-child(2){transition-delay:.6s}.vr-js .vr-stop.on .vr-list li:nth-child(3){transition-delay:.7s}.vr-js .vr-stop.on .vr-list li:nth-child(4){transition-delay:.8s}
.vr-stop{min-height:clamp(440px,64vh,620px)}
.vr-compact .vr-stop{min-height:clamp(400px,56vh,560px)}
@media (max-width:820px){.vr-stop,.vr-compact .vr-stop{min-height:0}.vr-promise{font-size:16.5px}.vr-list li{font-size:14.5px}.vr-when{margin-left:0}}

/* ===== v25: "How we work" teaser (links to the full route page) ===== */
.how-teaser{position:relative;padding:clamp(70px,11vh,130px) 0}
.ht-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,80px);align-items:center}
.ht-copy h2{font-size:clamp(32px,4.4vw,62px);line-height:1.03;margin:0 0 16px;max-width:14ch}
.ht-copy .lede{max-width:40ch;margin:0 0 28px}
.ht-route{position:relative;display:block;padding:26px clamp(14px,2.4vw,30px) 22px;border-radius:28px;border:1px solid rgba(243,239,230,.08);background:radial-gradient(120% 90% at 50% 0%,rgba(233,181,77,.08),transparent 60%),linear-gradient(160deg,rgba(18,26,48,.55),rgba(8,12,24,.35));transition:border-color .4s,translate .5s var(--ease)}
.ht-route:hover{border-color:rgba(233,181,77,.35);translate:0 -4px}
.ht-route ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;position:relative;z-index:1}
.ht-route li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}
.ht-pl{display:block;width:clamp(58px,8vw,104px);aspect-ratio:1;margin-bottom:10px;border-radius:50%;animation:htGlow 6s ease-in-out infinite;animation-delay:calc(var(--i) * 1.5s - .4s)}
.ht-pl img{width:100%;height:100%;object-fit:contain;animation:turn 90s linear infinite}
.ht-route li:first-child .ht-pl img{animation:none}
@keyframes htGlow{0%,100%{filter:brightness(.7) saturate(.8);scale:.94}12%{filter:brightness(1.15) drop-shadow(0 0 22px rgba(255,190,110,.55));scale:1.04}30%{filter:none;scale:1}}
.ht-route b{font:700 clamp(13px,1.2vw,16px) var(--display);letter-spacing:-.01em;color:#f6f2ea}
.ht-route small{font-size:12px;color:var(--gold)}
.ht-line{position:absolute;left:calc(12.5% + 20px);right:calc(12.5% + 20px);top:calc(26px + clamp(58px,8vw,104px) / 2);height:0;border-top:2px dashed rgba(243,239,230,.18);z-index:0}
.ht-rk{position:absolute;left:0;top:0;width:18px;height:44px;margin:-22px 0 0 -9px;rotate:90deg;animation:htFly 6s cubic-bezier(.45,0,.25,1) infinite;z-index:2}
.ht-rk .rk-svg{width:18px;height:auto;display:block}
.ht-rk .flame{position:absolute;left:50%;top:92%;width:7px;height:18px;margin-left:-3.5px;border-radius:50%/30% 30% 70% 70%;background:radial-gradient(ellipse at 50% 15%,#fff 0 18%,#ffd88a 30%,#ff8a2b 60%,transparent 75%);animation:flick .12s infinite alternate}
@keyframes htFly{0%{left:0;opacity:0}6%{opacity:1}92%{opacity:1}100%{left:100%;opacity:0}}
@media (max-width:860px){.ht-grid{grid-template-columns:1fr}.ht-route{padding:22px 12px 18px}}
@media (prefers-reduced-motion:reduce){.ht-pl,.ht-pl img,.ht-rk{animation:none}}

/* ===== v25: hero skip button + soft exit ===== */
.ph-down{display:none!important}
.ph-skip{position:absolute;left:50%;bottom:max(22px,env(safe-area-inset-bottom,0px));translate:-50% 0;z-index:6;display:inline-flex;align-items:center;gap:10px;padding:10px 12px 10px 18px;border-radius:999px;
  font:500 14px var(--body);color:#f3efe6;background:rgba(8,12,24,.62);border:1px solid rgba(243,239,230,.16);box-shadow:0 10px 30px -12px rgba(0,0,0,.6);transition:border-color .3s,background .3s,translate .4s var(--ease)}
.ph-skip svg{width:28px;height:28px;padding:7px;border-radius:50%;background:rgba(233,181,77,.16);color:var(--gold);animation:bob 2s ease-in-out infinite;box-sizing:border-box}
.ph-skip:hover{border-color:rgba(233,181,77,.55);background:rgba(14,20,38,.8);translate:-50% -2px}
.ph-enter .ph-skip{animation:phFade 1.2s ease 1.1s both}
@media (max-width:860px){.ph-skip{bottom:max(58px,calc(env(safe-area-inset-bottom,0px) + 50px));font-size:13px;padding:8px 10px 8px 15px}}
.ph.ph-out{opacity:0;transition:opacity .25s ease}
/* the bottom of the hero no longer ends in a dark band: it melts into the page */
.ph::after{height:160px!important;background:linear-gradient(rgba(3,6,12,0),rgba(3,6,12,.35))!important}
/* while the hero is leaving, its lower edge fades out softly instead of cutting the planet */

.ph::after{display:none!important}

/* ===== v25: "Explore" focus view for the ten services ===== */
.svc .more[data-explore]{cursor:pointer}
.svc .more[data-explore] span{display:inline-block;transition:translate .3s var(--ease)}
.svc .more[data-explore]:hover span{translate:4px 0}
.sf{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.sf[hidden]{display:none}
.sf-bg{position:fixed;inset:0;background:radial-gradient(70% 60% at 28% 50%,rgba(var(--tint,233,181,77),.14),transparent 70%),rgba(3,5,12,.975);opacity:0;transition:opacity .45s ease}
.sf.in .sf-bg{opacity:1}
.sf.out .sf-bg{opacity:0}
.sf-in{position:relative;z-index:1;width:min(1240px,100%);min-height:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,70px);padding:clamp(70px,9vh,110px) var(--gutr,24px) clamp(40px,6vh,70px) var(--gut,24px)}
.sf-art{position:relative;justify-self:center;width:min(42vw,74vh,620px);aspect-ratio:1;display:grid;place-items:center}
.sf-glow{position:absolute;inset:-18%;border-radius:50%;background:radial-gradient(closest-side,rgba(var(--tint,233,181,77),.32),rgba(var(--tint,233,181,77),.08) 55%,transparent 72%);opacity:0;scale:.7;transition:opacity 1s ease .25s,scale 1.2s var(--ease) .2s}
.sf-ring{position:absolute;inset:-6%;border-radius:50%;border:1px dashed rgba(243,239,230,.18);opacity:0;scale:.85;transition:opacity .9s ease .45s,scale 1.1s var(--ease) .4s;animation:turn 70s linear infinite}
.sf-ring.r2{inset:-15%;border-style:solid;border-color:rgba(233,181,77,.16);animation-duration:110s;animation-direction:reverse;transition-delay:.55s}
.sf.in .sf-glow,.sf.in .sf-ring{opacity:1;scale:1}
.sf-spin{position:relative;width:100%;height:100%;display:grid;place-items:center;will-change:transform}
.sf-spin img{width:100%;height:100%;object-fit:contain;animation:turn 120s linear infinite;filter:drop-shadow(0 30px 80px rgba(0,0,0,.55))}
.sf-art.ringed .sf-spin img{animation:none}
.sf-art.swap .sf-spin{opacity:0;scale:.82;filter:blur(6px)}
.sf-spin{transition:opacity .32s ease,scale .45s var(--ease),filter .32s ease}
.sf-info{position:relative;max-width:540px}
.sf-info>*{opacity:0;translate:0 22px;transition:opacity .6s var(--ease),translate .7s var(--ease)}
.sf.in .sf-info>*{opacity:1;translate:0 0}
.sf.in .sf-info>:nth-child(1){transition-delay:.35s}.sf.in .sf-info>:nth-child(2){transition-delay:.42s}.sf.in .sf-info>:nth-child(3){transition-delay:.5s}
.sf.in .sf-info>:nth-child(4){transition-delay:.58s}.sf.in .sf-info>:nth-child(5){transition-delay:.64s}.sf.in .sf-info>:nth-child(6){transition-delay:.72s}.sf.in .sf-info>:nth-child(7){transition-delay:.8s}
.sf.out .sf-info>*{opacity:0;translate:0 10px;transition-delay:0s!important;transition-duration:.25s}
.sf-info.swap>*{opacity:0!important;translate:14px 0!important;transition-delay:0s!important;transition-duration:.28s}
.sf-num{display:flex;align-items:center;gap:12px;font:600 13px var(--body);color:var(--gold);margin:0 0 14px;letter-spacing:.03em}
.sf-num i{width:22px;height:1px;background:currentColor;opacity:.6}
.sf-num span+i+span{color:#a9aec6;font-weight:500}
.sf-info h2{font:800 clamp(34px,4vw,62px)/1.02 var(--display);letter-spacing:-.04em;color:#f6f2ea;margin:0 0 16px;-webkit-text-fill-color:#f6f2ea;background:none}
.sf-intro{color:#c3c7da;font-size:clamp(15.5px,1.15vw,17.5px);line-height:1.65;margin:0 0 22px}
.sf-h{font:600 13px var(--body);letter-spacing:.08em;text-transform:uppercase;color:#a9aec6;margin:0 0 12px}
.sf-list{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:10px}
.sf-list li{display:flex;gap:12px;align-items:flex-start;opacity:0;translate:-10px 0;transition:opacity .5s var(--ease),translate .6s var(--ease);transition-delay:calc(.75s + var(--k,0) * .07s)}
.sf.in .sf-list li{opacity:1;translate:0 0}
.sf-info.swap .sf-list li{transition-delay:0s}
.sf-list b{flex:none;width:12px;height:12px;margin-top:5px;border-radius:50%;border:1.5px solid rgba(233,181,77,.75);background:radial-gradient(circle,#ffd88a 0 30%,transparent 36%)}
.sf-list strong{display:block;color:#f3efe6;font-weight:500;font-size:15.5px}
.sf-list small{display:block;color:#a9aec6;font-size:14px;line-height:1.5}
.sf-acts{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px}
.sf-nav{display:flex;justify-content:space-between;gap:12px;padding-top:18px;border-top:1px solid rgba(243,239,230,.1)}
.sf-nav button{display:inline-flex;align-items:center;gap:8px;background:none;border:0;color:#a9aec6;font:500 14px var(--body);cursor:pointer;padding:6px 0;transition:color .3s}
.sf-nav button:hover{color:#f6f2ea}
.sf-nav b{font-weight:500;max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sf-x{position:fixed;top:max(18px,env(safe-area-inset-top,0px));right:max(18px,env(safe-area-inset-right,0px));z-index:2;width:48px;height:48px;border-radius:50%;border:1px solid rgba(243,239,230,.2);background:rgba(8,12,24,.7);color:#f6f2ea;font:300 28px/1 var(--body);cursor:pointer;opacity:0;scale:.8;transition:opacity .4s ease .3s,scale .5s var(--ease) .3s,border-color .3s,rotate .4s var(--ease)}
.sf.in .sf-x{opacity:1;scale:1}
.sf-x:hover{border-color:var(--gold);rotate:90deg}
@media (max-width:860px){
  .sf{align-items:flex-start}
  .sf-in{grid-template-columns:1fr;align-items:start;gap:18px;padding-top:76px}
  .sf-art{width:min(64vw,300px)}
  .sf-info{max-width:none}
  .sf-nav b{max-width:13ch}
}
@media (prefers-reduced-motion:reduce){.sf-spin img,.sf-ring{animation:none}.sf *{transition-duration:.01s!important;transition-delay:0s!important}}

/* ===== v25: sections blend into each other, no divider lines or hard edges ===== */
.marquee,.marquee.v1{border-block:0!important;background:linear-gradient(90deg,transparent,rgba(17,20,43,.45) 18%,rgba(17,20,43,.45) 82%,transparent)!important}
footer{border-top:0!important;background:linear-gradient(rgba(5,8,16,0),rgba(5,8,16,.55) 40%,rgba(5,8,16,.75))!important}
.cta-band{border-top:0!important}
.sky-bg{-webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent)}
.orbit-sec .svc:last-child{border-bottom:0!important}

/* ===== v26: match the original site's space colour exactly ===== */
body{background:#04050c!important}
/* about: the orbit art never pushes the page sideways */
.journey{overflow-x:clip}
@media (max-width:900px){.journey-grid{grid-template-columns:1fr}.jy-art{margin:10px auto 0;width:min(340px,86vw)}}
/* Ten services: keep the planet-and-rings stage on laptop windows and tablets, and give phones a sticky stage too */
@media (min-width:640px) and (max-width:860px){
  .orbit-sec .system{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)!important;gap:22px}
  .orbit-sec .stage{display:grid!important;top:11vh;height:78vh}
  .orbit-sec .svc .mini{display:none!important}
  .orbit-sec .svc{opacity:.28!important;padding-block:clamp(34px,9vh,80px)!important}
  .orbit-sec .svc.on{opacity:1!important}
  .orbit-sec .svc h3{font-size:clamp(24px,3.6vw,34px)!important}
}
@media (max-width:639px){
  .orbit-sec .system{grid-template-columns:1fr!important;gap:0}
  .orbit-sec .stage{display:grid!important;position:sticky;top:62px;height:min(40vh,330px);z-index:2;margin:0 calc(var(--gut,16px) * -1);padding:0 var(--gut,16px);background:linear-gradient(#04050c 92%,rgba(4,5,12,0));padding-bottom:26px}
  .orbit-sec .stage-in{width:min(74vw,33vh)}
  .orbit-sec .stage-label{bottom:-9%}
  .orbit-sec .svc .mini{display:none!important}
  .orbit-sec .svc{opacity:.3!important;padding-block:30px!important}
  .orbit-sec .svc.on{opacity:1!important}
}
