﻿/* Type system — the logo carries the Zuume Edge Cut wordmark (baked into the logo
   image). Everything else pairs Archivo (display) with Space Grotesk + Space Mono. */
:root{
  --display:"Archivo",sans-serif;
  --mark:url("../assets/mark.png");
  --accent:#006fff;
  --on-accent:#ffffff;
  /* fixed dark surfaces (feature bands look dark in BOTH themes) */
  --void:#050506;
  --ink:#0b0b0c;
  --line-d:rgba(255,255,255,.14);
  --body-d:#c4c8cc;
  --steel:#9ba1a6;
  /* themed surfaces + text — light defaults, flipped by [data-theme=dark] */
  --surface:#ffffff;
  --surface-2:#eef1f3;
  --surface-3:#e3e7ea;
  --text:#0b0b0c;
  --muted:#5a5e63;
  --line:rgba(11,11,12,.14);
  --cut:18px;
  --cut-sm:10px;
  --maxw:1240px;
}
[data-theme="dark"]{
  --surface:#0d0e10;
  --surface-2:#141519;
  --surface-3:#2b2e33;
  --text:#f4f6f7;
  --muted:#9aa0a6;
  --line:rgba(255,255,255,.14);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--surface);
  color:var(--text);
  font-family:"Space Grotesk",system-ui,sans-serif;
  font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--accent);color:var(--on-accent)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}

/* ---------- shared ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.eyebrow{
  font-family:"Space Mono",monospace;font-size:12px;font-weight:700;
  letter-spacing:.32em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:12px;color:var(--muted);
}
.eyebrow::before{content:"";width:26px;height:1.5px;background:var(--accent);display:inline-block}
.display{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.9;letter-spacing:-.015em}
/* Force heavy weight + tight tracking on every Archivo display element */
.hero h1,.sec-head h2,.cap h3,.cap__no,.proj h3,.step h3,.step__no,
.stat__n,.ticker__row span,.ethos__big,.cta h2,.clients__grid span,.mmenu a{
  font-weight:900;letter-spacing:-.02em;
}
.chamfer{clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)))}
.chamfer-sm{clip-path:polygon(0 0,calc(100% - var(--cut-sm)) 0,100% var(--cut-sm),100% 100%,var(--cut-sm) 100%,0 calc(100% - var(--cut-sm)))}

.btn{
  font-family:"Space Mono",monospace;font-size:13px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;padding:16px 26px;display:inline-flex;align-items:center;gap:10px;
  cursor:pointer;border:1.5px solid var(--text);background:transparent;color:var(--text);
  transition:transform .25s cubic-bezier(.2,.7,.3,1),background .25s,color .25s;
}
.btn .arw{transition:transform .25s}
.btn:hover{transform:translateY(-3px)}
.btn:hover .arw{transform:translate(4px,-4px)}
.btn--solid{background:var(--text);color:var(--surface)}
.btn--solid:hover{background:#000}
.btn--ghost-d{border-color:var(--line-d);color:#fff}
.btn--ghost-d:hover{background:rgba(255,255,255,.06)}
.btn--solid-d{background:#fff;color:#000;border-color:#fff}
.btn--accent{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn--accent:hover{background:#2a86ff;border-color:#2a86ff}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.08s}.rv[data-d="2"]{transition-delay:.16s}
.rv[data-d="3"]{transition-delay:.24s}.rv[data-d="4"]{transition-delay:.32s}
.rv[data-d="5"]{transition-delay:.40s}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;height:84px;
  display:flex;align-items:center;
  background:rgba(5,5,6,.72);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-d);
  transition:height .3s,background .3s;
}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;width:100%}
.nav__logo{height:52px;width:auto;transition:height .3s}
.nav.shrink{height:66px}.nav.shrink .nav__logo{height:44px}
.nav__links{display:flex;gap:34px;align-items:center}
.nav__links a{
  font-family:"Space Mono",monospace;font-size:12.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--body-d);transition:color .2s;position:relative;
}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-7px;height:1.5px;width:0;background:var(--accent);transition:width .25s}
.nav__links a:hover{color:#fff}.nav__links a:hover::after{width:100%}
.nav__cta.btn{padding:13px 22px}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:26px;height:2px;background:#fff;display:block;transition:.3s}
.nav__right{display:flex;align-items:center;gap:0}
.themebtn{width:44px;height:44px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--line-d);background:transparent;color:#fff;cursor:pointer;margin-left:18px;transition:border-color .25s,color .25s}
.themebtn:hover{border-color:var(--accent);color:var(--accent)}
.themebtn svg{width:18px;height:18px}
.themebtn .i-sun{display:none}
[data-theme="dark"] .themebtn .i-sun{display:block}
[data-theme="dark"] .themebtn .i-moon{display:none}

/* ---------- hero ---------- */
.hero{
  position:relative;
  background:var(--void);
  color:#fff;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:120px 0 60px;
  overflow:hidden;
}
.hero__grid{
  position:absolute;inset:0;opacity:.26;pointer-events:none;
  background-image:
    linear-gradient(var(--line-d) 1px,transparent 1px),
    linear-gradient(90deg,var(--line-d) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(120% 110% at 50% 42%,#000 18%,transparent 78%);
  -webkit-mask-image:radial-gradient(120% 110% at 50% 42%,#000 18%,transparent 78%);
}
.hero--orbital::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 44%, rgba(255,255,255,.035) 0%, rgba(255,255,255,0) 24%),
    radial-gradient(circle at 50% 44%, rgba(0,111,255,.09) 0%, rgba(0,111,255,0) 40%);
  opacity:.85;
  pointer-events:none;
}
.hero__curve-glow{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}
.hero__curve-glow::before,
.hero__curve-glow::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  width:min(1100px, 120vw);
  height:min(600px, 78vh);
  border-radius:50%;
  filter:blur(10px);
  pointer-events:none;
}
.hero__curve-glow::before{
  border-top:1px solid rgba(255,255,255,.11);
  border-bottom:1px solid rgba(0,111,255,.10);
  opacity:.55;
  transform:translate(-50%, -50%) rotate(-8deg);
}
.hero__curve-glow::after{
  width:min(980px, 108vw);
  height:min(500px, 68vh);
  border-top:1px solid rgba(255,255,255,.07);
  border-bottom:1px solid rgba(0,111,255,.08);
  opacity:.32;
  transform:translate(-50%, -50%) rotate(10deg);
}

.hero__orbital-field{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  overflow:hidden;
}
.hero__orbit{
  position:absolute;
  left:50%;
  top:45%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:1px solid rgba(255,255,255,.035);
  opacity:.7;
  animation:heroOrbitSpin var(--dur,18s) linear infinite;
}
.hero__orbit::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:50%;
  border-top:1px solid rgba(255,255,255,.04);
  border-bottom:1px solid rgba(0,111,255,.05);
  opacity:.55;
}
.hero__orbit-star{
  position:absolute;
  left:50%;
  top:0;
  width:var(--size,7px);
  height:var(--size,7px);
  transform:translate(-50%, -50%);
  animation:heroStarPulse var(--pulse,4.2s) ease-in-out infinite;
  filter:drop-shadow(0 0 6px rgba(255,255,255,.08));
}
.hero__orbit-star::before{
  content:"";
  position:absolute;inset:0;
  background:var(--spark, rgba(255,255,255,.85));
  -webkit-mask:url("../assets/mark.svg") center/contain no-repeat;
  mask:url("../assets/mark.svg") center/contain no-repeat;
}
.hero__orbit-star--blue::before{
  background:rgba(0,111,255,.72);
}
.hero__dust{
  position:absolute;
  width:var(--size,4px);
  height:var(--size,4px);
  left:var(--x,50%);
  top:var(--y,50%);
  transform:translate(-50%,-50%);
  opacity:var(--opacity,.16);
  animation:heroDustFloat var(--dur,8s) ease-in-out infinite;
}
.hero__dust::before{
  content:"";
  position:absolute;inset:0;
  background:rgba(255,255,255,.72);
  -webkit-mask:url("../assets/mark.svg") center/contain no-repeat;
  mask:url("../assets/mark.svg") center/contain no-repeat;
}
.hero__dust--blue::before{background:rgba(0,111,255,.55)}

@keyframes heroOrbitSpin{
  from{transform:translate(-50%,-50%) rotate(0deg)}
  to{transform:translate(-50%,-50%) rotate(360deg)}
}
@keyframes heroStarPulse{
  0%,100%{opacity:.28; transform:translate(-50%, -50%) scale(.92)}
  50%{opacity:.75; transform:translate(-50%, -50%) scale(1.06)}
}
@keyframes heroDustFloat{
  0%,100%{opacity:var(--opacity,.16); transform:translate(-50%,-50%) translate3d(0,0,0) scale(1)}
  50%{opacity:calc(var(--opacity,.16) * 1.35); transform:translate(-50%,-50%) translate3d(var(--dx,8px), var(--dy,-6px), 0) scale(1.08)}
}

.hero .wrap{
  position:relative;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
}
.hero__center{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  max-width:960px;
  margin:0 auto;
}
.hero__eyebrow{color:var(--steel)}
.hero h1{
  font-size:clamp(56px,8vw,118px);
  margin:24px 0 0;
  line-height:.9;
}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln span{
  display:block;
  transform:translateY(110%);
  animation:rise .9s cubic-bezier(.2,.7,.3,1) forwards
}
.hero h1 .ln:nth-child(2) span{animation-delay:.12s}
.hero h1 .ln:nth-child(3) span{animation-delay:.24s}
.hero h1 .thin{-webkit-text-stroke:1.5px #fff;color:transparent}
@keyframes rise{to{transform:none}}

.hero__sub{
  max-width:520px;
  color:var(--body-d);
  font-size:19px;
  line-height:1.7;
  margin:0;
  letter-spacing:.01em;
  text-align:center;
}
.hero__sub--accent{
  color:#c4c8cc;
  font-size:19px;
  line-height:1.7;
  max-width:520px;
  margin-bottom:38px;
  letter-spacing:.01em;
  text-align:center;
}
.hero__sub--divider{
  width:40px;
  height:2px;
  background:var(--accent);
  margin:30px auto 20px;
  border:none
}
.hero__cta{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}

.hero__meta{
  position:absolute;left:32px;bottom:30px;z-index:4;
  font-family:"Space Mono",monospace;font-size:11.5px;letter-spacing:.2em;
  color:var(--steel);text-transform:uppercase;display:flex;gap:22px;align-items:center;
}
.scrollcue{
  position:absolute;right:32px;bottom:30px;z-index:4;
  font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.25em;color:var(--steel);
  writing-mode:vertical-rl;text-transform:uppercase;display:flex;align-items:center;gap:12px
}
.scrollcue::after{
  content:"";
  width:1.5px;
  height:46px;
  background:linear-gradient(var(--steel),transparent);
  animation:cue 1.8s ease-in-out infinite
}
@keyframes cue{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}

/* old hero logo hidden */
.hero__right,.hero__logo-stage,.hero__logo-glow,.hero__logo-float{display:none !important}

@media(max-width:900px){
  .hero{padding:110px 0 72px}
  .hero__curve-glow::before{
    width:min(920px, 150vw);
    height:min(520px, 70vh);
  }
  .hero__curve-glow::after{
    width:min(820px, 140vw);
    height:min(430px, 58vh);
  }
  .hero__meta{
    left:50%;
    transform:translateX(-50%);
    bottom:26px;
    flex-wrap:wrap;
    justify-content:center;
    width:calc(100% - 64px);
    row-gap:8px;
  }
}
@media(max-width:640px){
  .hero h1{font-size:clamp(48px,14vw,84px)}
  .hero__sub,.hero__sub--accent{font-size:17px}
  .hero__curve-glow::before{
    width:150vw;
    height:56vh;
  }
  .hero__curve-glow::after{
    width:136vw;
    height:48vh;
  }
  .scrollcue{right:18px;bottom:22px}
}

/* ---------- the mark (flat 2D animation, kept upright to match the logo) ---------- */
.stage{display:flex;align-items:center;justify-content:center;min-height:360px}
.markstage{position:relative;width:360px;height:360px;display:flex;align-items:center;justify-content:center}
.mark-glow{
  position:absolute;width:330px;height:330px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,111,255,.45) 0%,rgba(0,111,255,.12) 38%,transparent 66%);
  filter:blur(8px);animation:glow 4.6s ease-in-out infinite;
}
@keyframes glow{0%,100%{opacity:.4;transform:scale(.85)}50%{opacity:.95;transform:scale(1.1)}}
.mark-float{animation:float 6.5s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(-7px) scale(1)}50%{transform:translateY(7px) scale(1.03)}}
.mark{width:300px;height:296px;background:var(--mark) center/contain no-repeat;display:block}
/* twinkle glints — small sparkles that flash near the mark */
.glint{position:absolute;animation:twinkle var(--tw,3.4s) ease-in-out infinite;animation-delay:var(--dl,0s)}
.glint svg{display:block;width:100%;height:100%}
.glint svg path{fill:var(--accent)}
.glint--1{top:34px;right:-30px;width:22px;height:22px;--tw:3.2s;--dl:.3s}
.glint--2{bottom:48px;left:-32px;width:14px;height:14px;--tw:4.2s;--dl:1.8s}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.3) rotate(-25deg)}50%{opacity:1;transform:scale(1) rotate(20deg)}}

/* ---------- ticker ---------- */
.ticker{background:var(--ink);color:#fff;border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d);overflow:hidden;padding:18px 0}
.ticker__row{display:flex;gap:0;width:max-content;animation:slide 32s linear infinite}
.ticker__row span{font-family:var(--display);text-transform:uppercase;font-size:26px;letter-spacing:.02em;padding:0 28px;display:inline-flex;align-items:center;gap:28px;white-space:nowrap;color:#fff}
.ticker__row span::after{content:"";width:15px;height:15px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 4 Q55 45 96 50 Q55 55 50 96 Q45 55 4 50 Q45 45 50 4 Z' fill='%239ba1a6'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- section base ---------- */
.sec{padding:120px 0}
.sec--frost{background:var(--surface-2)}
.sec--ink{background:var(--ink);color:#fff}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:64px;flex-wrap:wrap}
.sec-head h2{font-size:clamp(40px,5.4vw,76px);max-width:14ch}
.sec-head p{max-width:36ch;color:var(--muted)}
.sec--ink .sec-head p{color:var(--body-d)}

/* ---------- capabilities ---------- */
.caps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cap{
  background:var(--surface);border:1.5px solid var(--text);padding:34px 30px 30px;
  position:relative;min-height:228px;display:flex;flex-direction:column;
  transition:transform .3s cubic-bezier(.2,.7,.3,1),background .3s,color .3s;
}
.cap:hover{transform:translateY(-6px);border-color:var(--accent)}
.cap__face{font-family:"Space Mono",monospace;font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--muted);margin-bottom:auto}
.cap:hover .cap__face{color:var(--accent)}
.cap__no{position:absolute;top:28px;right:30px;font-family:var(--display);font-size:30px;color:var(--surface-3);line-height:1}
.cap:hover .cap__no{color:var(--accent);opacity:.5}
.cap h3{font-family:var(--display);text-transform:uppercase;font-size:28px;margin:26px 0 12px;letter-spacing:.01em}
.cap p{font-size:15px;color:var(--muted)}
.cap:hover p{color:var(--muted)}

/* ---------- work ---------- */
.work{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.proj{
  position:relative;border:1.5px solid var(--line);background:var(--surface-2);
  aspect-ratio:16/11;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;
  padding:30px;color:var(--text);transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.proj.big{grid-column:span 2;aspect-ratio:16/7}
.proj:hover{transform:translateY(-6px)}
.proj__art{position:absolute;inset:0;z-index:0;background:var(--ink);overflow:hidden}
.proj__art::before{
  content:"";position:absolute;inset:-30%;
  background:
    repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 2px,transparent 2px 22px),
    radial-gradient(60% 60% at 30% 20%,rgba(255,255,255,.22),transparent 70%);
  transition:transform .6s ease;
}
.proj:hover .proj__art::before{transform:scale(1.08) rotate(2deg)}
.proj__art .glyph{position:absolute;font-family:var(--display);color:rgba(255,255,255,.07);font-size:clamp(120px,22vw,300px);line-height:.8;right:-2%;bottom:-12%;text-transform:uppercase}
.proj__inner{position:relative;z-index:1;color:#fff;width:100%}
.proj__top{position:absolute;top:30px;left:30px;right:30px;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;color:#fff}
.proj__cat{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--steel)}
.proj__metric{font-family:"Space Mono",monospace;font-size:12px;font-weight:700;letter-spacing:.12em;border:1px solid rgba(0,111,255,.5);padding:6px 12px;color:var(--accent);background:rgba(0,111,255,.1)}
.proj h3{font-family:var(--display);text-transform:uppercase;font-size:clamp(30px,3.4vw,46px);line-height:.95}
.proj__svc{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--body-d);margin-top:10px}
.proj__mark{position:absolute;bottom:28px;right:28px;z-index:1;width:44px;height:43px;background:var(--mark) center/contain no-repeat;opacity:.8;transition:transform .4s cubic-bezier(.2,.7,.3,1),opacity .3s}
.proj:hover .proj__mark{opacity:1;transform:scale(1.22) translateY(-2px)}

/* ---------- process ---------- */
.proc{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;border:1.5px solid var(--line-d);
  overflow:hidden;
}

/* ── Step card ── */
.step{
  position:relative;
  padding:40px 32px 44px;
  border-right:1.5px solid var(--line-d);
  min-height:320px;
  display:flex;flex-direction:column;
  overflow:hidden;
  cursor:default;
  transition:background .35s ease;
}
.step:last-child{border-right:0}
.step:hover{background:rgba(255,255,255,.025)}

/* top row: number + tag */
.step__top{
  display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:auto;
}
.step__no{
  font-family:var(--display);font-size:72px;line-height:.8;
  font-weight:900;letter-spacing:-.02em;
  -webkit-text-stroke:1.5px rgba(255,255,255,.25);
  color:transparent;
  transition:-webkit-text-stroke-color .35s ease;
}
.step:hover .step__no{
  -webkit-text-stroke-color:rgba(0,111,255,.7);
}
.step__tag{
  font-family:"Space Mono",monospace;font-size:10px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;
  color:rgba(0,111,255,.7);
  background:rgba(0,111,255,.08);
  border:1px solid rgba(0,111,255,.2);
  padding:5px 10px;border-radius:4px;
  white-space:nowrap;
}

/* title */
.step__title{
  font-family:var(--display);text-transform:uppercase;
  font-size:28px;font-weight:900;letter-spacing:-.015em;
  margin:28px 0 10px;color:#fff;
  transition:transform .45s cubic-bezier(.16,1,.3,1),color .3s ease;
}
.step:hover .step__title{color:var(--accent)}

/* short description — always visible */
.step__short{
  font-size:14px;color:var(--body-d);line-height:1.6;
  transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .35s ease;
}

/* ── Reveal panel — slides down on hover ── */
.step__reveal{
  overflow:hidden;
  max-height:0;
  opacity:0;
  transform:translateY(-12px);
  transition:
    max-height .55s cubic-bezier(.16,1,.3,1),
    opacity    .4s ease .08s,
    transform  .5s cubic-bezier(.16,1,.3,1) .05s;
}
.step:hover .step__reveal{
  max-height:260px;
  opacity:1;
  transform:translateY(0);
}

.step__detail{
  font-size:13.5px;color:var(--body-d);line-height:1.65;
  margin-top:18px;
}

.step__bullets{
  list-style:none;margin:14px 0 0;padding:0;
  display:flex;flex-direction:column;gap:7px;
}
.step__bullets li{
  font-family:"Space Mono",monospace;font-size:11px;
  letter-spacing:.08em;color:rgba(255,255,255,.5);
  display:flex;align-items:center;gap:8px;
}
.step__bullets li::before{
  content:"";width:18px;height:1.5px;
  background:var(--accent);flex:none;
}

.step__cta{
  display:inline-block;margin-top:16px;
  font-family:"Space Mono",monospace;font-size:11px;
  font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);
  transition:letter-spacing .25s ease,opacity .25s ease;
}
.step__cta:hover{letter-spacing:.22em}

/* accent bar at bottom */
.step__bar{
  position:absolute;left:0;bottom:0;
  height:2px;width:0;background:var(--accent);
  transition:width .55s cubic-bezier(.16,1,.3,1);
}
.step.in .step__bar{width:100%}
.step:hover .step__bar{width:100%!important}


/* ═══════════════════════════════════════════
   PROCESS — split layout: left heading + right cards
   ═══════════════════════════════════════════ */
.proc-sec{ background:var(--void); padding:100px 0 110px }

/* two-column wrapper */
.proc-layout{
  display:grid;
  grid-template-columns: 280px 1fr;
  gap:0 60px;
  align-items:start;
}

/* ── Left column: sticky heading ── */
.proc-left-col{
  position:sticky;
  top:120px;
  padding-top:6px;
}
.proc-eyebrow{
  display:block;
  font-family:"Space Mono",monospace;
  font-size:10px; font-weight:700; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(0,111,255,.7);
  margin-bottom:20px;
}
.proc-heading{
  font-family:"Archivo",sans-serif;
  font-size:clamp(48px,5vw,72px);
  font-weight:900; line-height:.92; letter-spacing:-.04em; text-transform:uppercase;
  color:#fff; margin:0 0 24px;
}
.proc-sub{
  font-size:14px; line-height:1.7;
  color:rgba(255,255,255,.35);
  font-family:"Space Mono",monospace;
  letter-spacing:.04em;
}

/* ── Right column: card stack ── */
.hsteps{
  display:flex;
  flex-direction:column;
  gap:16px;
}

/* hover drop-bounce: card falls then springs back */
@keyframes cardDrop{
  0%  { transform: translateY(0)    rotate(0deg); }
  22% { transform: translateY(12px) rotate(1.2deg); }
  55% { transform: translateY(-6px) rotate(-.6deg); }
  78% { transform: translateY(4px)  rotate(.3deg); }
  100%{ transform: translateY(0)    rotate(0deg); }
}
.hstep.hstep--drop{
  animation: cardDrop .55s cubic-bezier(.36,.07,.19,.97) both;
}

/*
 * Arc swing: card starts at 4-o'clock (lower-right, rotated CW)
 * and sweeps counter-clockwise along a circular path to 12-o'clock (natural position).
 */
@keyframes cardArcIn{
  0%  {
    transform: translate(130px, 90px) rotate(28deg) scale(0.82);
    opacity: 0;
  }
  18% { opacity: 1; }
  65% {
    transform: translate(14px, 10px) rotate(4deg) scale(0.99);
  }
  100%{
    transform: translate(0, 0) rotate(0deg) scale(1);
    opacity: 1;
  }
}

/* ── Single card ── */
.hstep{
  position:relative;
  border-radius:20px;
  background:rgba(255,255,255,.04);
  border:1.5px solid rgba(255,255,255,.09);
  overflow:hidden;
  cursor:default;
  /* hidden until JS adds hs-in */
  opacity:0;
  will-change: transform, opacity;
  transition:background .3s ease, border-color .3s ease;
}
.hstep:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.16);
}
/* JS adds this → arc sweep plays, card stays visible after */
.hstep.hs-in{
  animation:cardArcIn .85s cubic-bezier(.16,1,.3,1) forwards;
}

/* inner two-column layout */
.hstep__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:36px 40px;
}

/* left: tag + title + desc + bullets */
.hstep__left{
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1;
}
.hstep__tag{
  display:inline-block;
  font-family:"Space Mono",monospace;
  font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(0,111,255,.9);
  background:rgba(0,111,255,.1);
  border:1px solid rgba(0,111,255,.25);
  border-radius:100px;
  padding:4px 14px;
  width:fit-content;
}
.hstep__title{
  font-family:"Archivo",sans-serif;
  font-size:clamp(22px,2.2vw,30px);
  font-weight:900; letter-spacing:-.03em; text-transform:uppercase;
  color:#fff; margin:0;
  transition:color .3s ease;
}
.hstep:hover .hstep__title{ color:var(--accent) }
.hstep__desc{
  font-size:14px; line-height:1.7;
  color:rgba(255,255,255,.42);
  max-width:42ch;
}

/* checklist bullets */
.hstep__list{
  list-style:none; padding:0; margin:4px 0 0;
  display:flex; flex-direction:column; gap:8px;
}
.hstep__list li{
  font-size:13.5px;
  color:rgba(255,255,255,.6);
  display:flex; align-items:center; gap:10px;
}
.hstep__list li::before{
  content:"";
  width:18px; height:18px; flex:none;
  border-radius:50%;
  background:rgba(0,111,255,.15) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='%23006fff' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 10px 10px;
  border:1.5px solid rgba(0,111,255,.35);
  transition:background-color .3s ease, border-color .3s ease;
}
.hstep:hover .hstep__list li::before{
  background-color:rgba(0,111,255,.28);
  border-color:rgba(0,111,255,.7);
}

/* right: big number + arrow */
.hstep__right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  flex-shrink:0;
}
.hstep__bigno{
  font-family:"Archivo",sans-serif;
  font-size:clamp(64px,7vw,96px);
  font-weight:900; line-height:1; letter-spacing:-.05em;
  -webkit-text-stroke:1.5px rgba(255,255,255,.12);
  color:transparent;
  user-select:none;
  transition:-webkit-text-stroke-color .35s ease;
}
.hstep:hover .hstep__bigno{ -webkit-text-stroke-color:rgba(0,111,255,.5) }
.hstep__arrow{
  font-size:24px;
  color:rgba(255,255,255,.2);
  transition:transform .35s cubic-bezier(.22,1,.36,1), color .35s ease;
}
.hstep:hover .hstep__arrow{ color:var(--accent); transform:translate(5px,-5px) }

/* bottom accent sweep */
.hstep__bar{
  position:absolute; left:0; bottom:0;
  height:2px; width:0; background:var(--accent);
  transition:width .65s cubic-bezier(.22,1,.36,1);
}
.hstep:hover .hstep__bar{ width:100% }

/* ── Responsive ── */
@media(max-width:1024px){
  .proc-layout{ grid-template-columns:200px 1fr; gap:0 36px }
  .proc-heading{ font-size:clamp(38px,4vw,54px) }
}
@media(max-width:768px){
  .proc-layout{ grid-template-columns:1fr; gap:40px 0 }
  .proc-left-col{ position:static }
  .hstep__inner{ padding:28px 28px }
  .hstep__bigno{ font-size:64px }
}
@media(max-width:480px){
  .hstep__inner{ flex-direction:column; align-items:flex-start; padding:24px 22px }
  .hstep__right{ flex-direction:row; width:100%; justify-content:space-between; align-items:center }
  .hstep__bigno{ font-size:48px }
  .hstep__desc{ display:none }
}


/* ═══════════════════════════════════════════
   WORK — scroll-driven radial portfolio reveal
   ═══════════════════════════════════════════ */

/* tall section so scroll has room to scrub */
.work-sec{
  position:relative;
  height:280vh;
  background:var(--void);
}

/* sticky viewport-height inner container */
.work-sec__pin{
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

/* pulsing center glow */
@keyframes glowPulse{
  0%,100%{ transform:scale(1);   opacity:.18 }
  50%    { transform:scale(1.35); opacity:.06 }
}
.work-glow{
  position:absolute;
  width:480px; height:480px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(0,111,255,.55) 0%, transparent 70%);
  animation:glowPulse 3.5s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}

/* section header — scrolls above the sticky stage */
.work-header{
  text-align:center;
  padding:90px 0 50px;
  position:relative;
  z-index:2;
}
.work-title__eye{
  font-family:"Space Mono",monospace;
  font-size:9px; font-weight:700; letter-spacing:.26em; text-transform:uppercase;
  color:rgba(0,111,255,.7);
}
.work-title__h{
  font-family:"Archivo",sans-serif;
  font-size:clamp(36px,5vw,64px);
  font-weight:900; letter-spacing:-.04em; text-transform:uppercase;
  color:#fff; margin:0; line-height:1;
}

/* section label — left side, vertically centered, out of card cluster */
.work-label{
  position:absolute;
  left:48px; top:50%;
  transform:translateY(-50%) translateX(-20px);
  text-align:left;
  z-index:2;
  pointer-events:none;
  opacity:0;
  transition:opacity .6s ease, transform .6s ease;
}
.work-label.wl-in{
  opacity:1;
  transform:translateY(-50%) translateX(0);
}
.work-label__eye{
  font-family:"Space Mono",monospace;
  font-size:10px; font-weight:700; letter-spacing:.26em; text-transform:uppercase;
  color:rgba(0,111,255,.8);
  display:block; margin-bottom:14px;
}
.work-label__heading{
  font-family:"Archivo",sans-serif;
  font-size:clamp(36px,4.5vw,60px);
  font-weight:900; letter-spacing:-.04em; text-transform:uppercase;
  color:#fff; margin:0; line-height:.92;
}
.work-label__heading span{
  -webkit-text-stroke:1.5px rgba(255,255,255,.28);
  color:transparent;
}

/* stage — zero-size center anchor */
.work-stage{
  position:relative;
  width:0; height:0;
  z-index:1;
}

/* ── SVG connecting lines ── */
.work-lines{
  position:absolute;
  left:-600px; top:-450px;
  width:1200px; height:900px;
  pointer-events:none;
  z-index:1;
  overflow:visible;
}
.wline{
  stroke:rgba(0,111,255,.45);
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-dasharray:1000;
  stroke-dashoffset:1000;
  transition:none;
  opacity:0;
}

/* ── center logo orb ── */
@keyframes orbRing{
  from{ transform:scale(1); opacity:.6 }
  to  { transform:scale(2); opacity:0  }
}
/* orb: fixed 100×100 box, centered on stage via negative margin */
.work-orb{
  position:absolute;
  left:0; top:0;
  width:100px; height:100px;
  margin-left:-50px; margin-top:-50px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,8,24,.92);
  border:1.5px solid rgba(0,111,255,.5);
  border-radius:22px;
  box-shadow:0 0 32px rgba(0,111,255,.3), inset 0 1px 0 rgba(255,255,255,.06);
  transform:scale(var(--orb-sc,0));
  opacity:var(--orb-op,0);
  will-change:transform,opacity;
  z-index:5;
  pointer-events:none;
  overflow:visible;
}
.work-orb__ring{
  position:absolute;
  width:100%; height:100%;
  border-radius:22px;
  border:1.5px solid rgba(0,111,255,.3);
  pointer-events:none;
}
.work-orb__ring--1{ animation:orbRing 2.6s ease-out infinite; }
.work-orb__ring--2{ animation:orbRing 2.6s ease-out .9s infinite; }
.work-orb__logo{
  width:62px; height:62px;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 0 14px rgba(0,111,255,.8)) brightness(1.1);
}

/* ── individual video card ── */
.wcard{
  position:absolute;
  width:290px;
  /* centered via translate(-50%,-50%) + JS vars */
  transform: translate(
    calc(-50% + var(--tx,0) * 1px),
    calc(-50% + var(--ty,0) * 1px)
  ) scale(var(--sc,.85)) rotate(calc(var(--rot,0) * 1deg));
  opacity:var(--op,0);
  filter:blur(calc(var(--bl,6) * 1px));
  will-change:transform,opacity,filter;
  cursor:pointer;
  z-index:2;
}

.wcard__thumb{
  position:relative;
  border-radius:14px;
  overflow:hidden;
  aspect-ratio:16/9;
  background:#111;
  border:1.5px solid rgba(255,255,255,.08);
  box-shadow:0 16px 48px rgba(0,0,0,.6);
}
.wcard__thumb img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
}
.wcard:hover .wcard__thumb img{ transform:scale(1.06) }

/* dark overlay on hover */
.wcard__overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.2) 60%, transparent 100%);
  opacity:0;
  transition:opacity .35s ease;
}
.wcard:hover .wcard__overlay{ opacity:1 }

/* CTA button slides up from bottom */
.wcard__cta{
  position:absolute;
  bottom:14px; left:50%;
  transform:translateX(-50%) translateY(20px);
  white-space:nowrap;
  font-family:"Space Mono",monospace;
  font-size:10px; font-weight:700; letter-spacing:.1em;
  color:#fff;
  background:rgba(0,111,255,.9);
  border:1px solid rgba(0,111,255,1);
  border-radius:100px;
  padding:7px 16px;
  text-decoration:none;
  opacity:0;
  transition:opacity .3s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.wcard:hover .wcard__cta{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

/* card meta below thumb */
.wcard__meta{
  padding:10px 4px 0;
  display:flex; flex-direction:column; gap:4px;
}
.wcard__tag{
  font-family:"Space Mono",monospace;
  font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(0,111,255,.75);
}
.wcard__title{
  font-family:"Archivo",sans-serif;
  font-size:14px; font-weight:800; letter-spacing:-.02em; text-transform:uppercase;
  color:rgba(255,255,255,.85); margin:0;
}

/* hover: card lifts */
.wcard:hover{
  z-index:10;
}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1.5px solid var(--line);border-bottom:1.5px solid var(--line)}
.stat{padding:46px 24px;text-align:center;border-right:1.5px solid var(--line)}
.stat:last-child{border-right:0}
.stat__n{font-family:var(--display);font-size:clamp(48px,6vw,76px);line-height:.9;color:var(--accent)}
.stat__l{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:10px}

/* ---------- ethos ---------- */
.ethos{padding:130px 0;background:var(--ink);color:#fff;position:relative;overflow:hidden}
.ethos__big{font-family:var(--display);text-transform:uppercase;font-size:clamp(40px,6vw,90px);line-height:.98;max-width:18ch}
.ethos__big em{font-style:normal;-webkit-text-stroke:1.5px var(--accent);color:transparent}
.ethos__row{display:flex;justify-content:space-between;gap:40px;margin-top:50px;flex-wrap:wrap;align-items:flex-end}
.ethos__p{max-width:46ch;color:var(--body-d);font-size:17px}
.ethos__sig{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--steel)}

/* ---------- trusted brands ---------- */
.trusted{
  position:relative;
  min-height:120vh;
  display:flex;align-items:center;justify-content:center;
  background:#0b0b0f;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.06);
}

/* radial glow in the center */
.trusted__glow{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 55% 55% at 50% 50%, rgba(0,111,255,.07) 0%, transparent 70%);
  transition:opacity .6s ease;
}
.trusted.is-expanded .trusted__glow{opacity:2}

/* the absolute-positioned stage — logos float inside this */
.trusted__stage{
  position:relative;
  width:0;height:0;
  /* perspective for Z-depth illusion on hover */
  perspective:900px;
  transform-style:preserve-3d;
}

/* individual brand card */
.tbrand{
  position:absolute;
  /* no frame — just image + name stacked */
  width:170px;
  /* offset so item is centred on its anchor point */
  margin-left:-85px;margin-top:-85px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  /* position driven entirely by JS via CSS vars */
  transform:translate(calc(var(--tx,0) * 1px), calc(var(--ty,0) * 1px)) scale(var(--sc,0.84));
  opacity:var(--op,0.72);
  filter:blur(var(--bl,0px));
  transition:
    transform .95s cubic-bezier(.16,1,.3,1),
    opacity   .7s ease,
    filter    .7s ease;
  cursor:default;
  user-select:none;
  will-change:transform,opacity,filter;
}
/* raw logo image — every brand exact same shape & size */
.tbrand__img{
  width:140px; height:140px;
  object-fit:cover;
  border-radius:50%;
  display:block;
  background:#fff;
  box-shadow:0 8px 28px rgba(0,0,0,.45);
  transition:transform .3s ease, box-shadow .3s ease;
}
.tbrand:hover .tbrand__img{
  transform:scale(1.07);
  box-shadow:0 12px 38px rgba(0,111,255,.35);
}
.tbrand__name{
  font-family:"Space Grotesk",system-ui,sans-serif;
  font-size:16px; font-weight:700;
  color:#fff;
  letter-spacing:.01em;
  white-space:normal; max-width:150px; line-height:1.25;
  text-align:center;
  text-shadow:0 2px 10px rgba(0,0,0,.6);
}

/* center label */
.trusted__center{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%) scale(var(--cs,0.95));
  text-align:center;pointer-events:none;
  opacity:var(--co,0);
  filter:blur(var(--cb,6px));
  transition:opacity .7s ease, filter .7s ease, transform .7s cubic-bezier(.16,1,.3,1);
  white-space:nowrap;
}
.trusted__kicker{
  font-family:"Space Mono",monospace;
  font-size:11px;font-weight:700;letter-spacing:.3em;
  text-transform:uppercase;color:rgba(0,111,255,.8);
  margin-bottom:10px;
}
.trusted__title{
  font-size:clamp(32px,5vw,64px);
  color:#fff;line-height:.95;
}

/* mobile: smaller cards, tighter spread */
@media(max-width:700px){
  .trusted{min-height:100vh}
  .tbrand{width:120px;margin-left:-60px;margin-top:-60px;gap:10px}
  .tbrand__name{font-size:13px}
  .tbrand__img{width:96px;height:96px}
  .trusted__title{font-size:clamp(22px,7vw,38px)}
}

/* ---------- contact ---------- */
.cta{background:var(--void);color:#fff;padding:120px 0;position:relative;overflow:hidden}
.cta__grid{position:absolute;inset:0;opacity:.4;background-image:linear-gradient(var(--line-d) 1px,transparent 1px),linear-gradient(90deg,var(--line-d) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(100% 80% at 50% 0%,#000,transparent 75%);-webkit-mask-image:radial-gradient(100% 80% at 50% 0%,#000,transparent 75%)}
.cta .wrap{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center}
.cta__mark{width:96px;height:95px;background:var(--mark) center/contain no-repeat;margin-bottom:36px}
.cta h2{font-family:var(--display);text-transform:uppercase;font-size:clamp(40px,6.2vw,86px);line-height:.96;max-width:16ch}
.cta p{color:var(--body-d);margin:24px 0 36px;max-width:44ch;font-size:18px}
.cta__actions{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}

/* ---------- footer ---------- */
.foot{background:#000;color:#fff;padding:70px 0 40px;border-top:1px solid var(--line-d)}
.foot__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid var(--line-d)}
.foot__brand .display{font-size:34px;margin-bottom:16px}
.foot__logo{height:84px;width:auto;margin-bottom:18px}
.foot__brand p{color:var(--steel);font-size:14px;max-width:30ch}
.foot__col h4{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel);margin-bottom:18px;font-weight:700}
.foot__col a{display:block;color:var(--body-d);font-size:14.5px;margin-bottom:11px;transition:color .2s}
.foot__col a:hover{color:#fff}
.foot__bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;gap:20px;flex-wrap:wrap}
.foot__bottom p{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.1em;color:var(--steel)}
.totop{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--body-d);display:inline-flex;align-items:center;gap:8px}
.totop:hover{color:#fff}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .hero .wrap{grid-template-columns:1fr;gap:10px}
  .stage{order:-1;min-height:300px}
  .caps{grid-template-columns:repeat(2,1fr)}
  .proc{grid-template-columns:repeat(2,1fr)}
  .step:nth-child(2){border-right:0}
  .step:nth-child(-n+2){border-bottom:1.5px solid var(--line-d)}
  .step__no{font-size:58px}
  .step__title{font-size:24px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1.5px solid var(--line)}
  .foot__top{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .wrap{padding:0 20px}
  .nav__links{display:none}
  .nav__cta{display:none}
  .burger{display:flex}
  .sec{padding:80px 0}
  .caps,.work{grid-template-columns:1fr}
  .proj.big{grid-column:span 1;aspect-ratio:16/11}
  .proc{grid-template-columns:1fr}
  .step{border-right:0;border-bottom:1.5px solid var(--line-d);min-height:auto}
  .step:last-child{border-bottom:0}
  .stats{grid-template-columns:1fr}
  .stat{border-right:0;border-bottom:1.5px solid var(--line)}
  .stat:last-child{border-bottom:0}
  .foot__top{grid-template-columns:1fr}
  .hero__meta{display:none}.scrollcue{display:none}
  .markstage{transform:scale(.82)}
  .stage{min-height:280px}
  .sec-head{margin-bottom:44px}
  .ethos__row{flex-direction:column;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .hero h1 .ln span{transform:none}
  .mark-float,.mark-glow,.glint{animation:none}
  .mark-glow{opacity:.7}.glint{opacity:.9}
  .rv{opacity:1;transform:none}
}

/* mobile menu */
.mmenu{position:fixed;inset:0;z-index:60;background:var(--void);transform:translateY(-100%);transition:transform .4s cubic-bezier(.2,.7,.3,1);display:flex;flex-direction:column;justify-content:center;padding:0 32px}
.mmenu.open{transform:none}
.mmenu a{font-family:var(--display);text-transform:uppercase;font-size:38px;color:#fff;padding:14px 0;border-bottom:1px solid var(--line-d)}
.mmenu__close{position:absolute;top:28px;right:24px;background:none;border:0;color:#fff;font-size:34px;cursor:pointer;line-height:1}
/* ---------- custom star cursor (desktop pointers only) ---------- */
@media (hover:hover) and (pointer:fine){
  html.has-cursor, html.has-cursor *{cursor:none !important}
}
.cursor{display:none;position:fixed;left:0;top:0;z-index:99999;pointer-events:none;mix-blend-mode:difference;will-change:transform;opacity:1;transition:opacity .25s}
html.has-cursor .cursor{display:block}
.cursor.hidden{opacity:0}
.cursor__inner{position:absolute;width:20px;height:20px;transform:translate(-50%,-50%) scale(1);transition:transform .22s cubic-bezier(.2,.7,.3,1)}
.cursor.hover .cursor__inner{transform:translate(-50%,-50%) scale(2.05)}
.cursor.down .cursor__inner{transform:translate(-50%,-50%) scale(.6)}
.cursor__star{width:100%;height:100%;display:block;animation:cspin 7s linear infinite}
.cursor__star path{fill:#fff}
@keyframes cspin{to{transform:rotate(360deg)}}

/* ============================================================
   v2 — 3D hero cube layout, caps head, testimonials, polish
   ============================================================ */

/* hero 3D mark container (replaces the old .markstage) */
.hero-cube-wrap{position:relative;display:flex;align-items:center;justify-content:center;min-height:460px;width:100%}
.hero-cube-wrap canvas{display:block;margin:0 auto;max-width:100%;height:auto;cursor:none}

/* hero headline — a little breathing room so the huge type doesn't bleed */
.hero h1{line-height:.98;letter-spacing:-.02em}
.hero h1 .ln{padding-bottom:.015em}

/* capabilities section head (user markup uses .caps-sec-head) */
.caps-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:64px;flex-wrap:wrap}
.caps-sec-head h2{font-size:clamp(40px,5.4vw,76px);max-width:14ch}
.caps-sec-head p{max-width:36ch;color:var(--muted)}

/* outlined ".thin" word works on any section head, not just the hero */
.sec-head .thin,.caps-sec-head .thin{-webkit-text-stroke:1.5px var(--text);color:transparent}

/* ---------- testimonials ---------- */
.tlist{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tcard{background:var(--surface);border:1.5px solid var(--text);padding:34px 30px;display:flex;flex-direction:column;gap:22px;min-height:266px;transition:transform .3s cubic-bezier(.2,.7,.3,1),border-color .3s}
.tcard:hover{transform:translateY(-6px);border-color:var(--accent)}
.tcard__star{width:28px;height:28px;flex:none}
.tcard__star svg{width:100%;height:100%;display:block}
.tcard__star path{fill:var(--accent)}
.tcard blockquote{font-size:18px;line-height:1.5;color:var(--text);font-weight:500;margin:0}
.tcard figcaption{margin-top:auto;display:flex;flex-direction:column;gap:3px}
.tcard__name{font-weight:700;color:var(--text)}
.tcard__role{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

@media(max-width:980px){
  .hero-cube-wrap{min-height:340px}
  .tlist{grid-template-columns:1fr}
}
@media(max-width:680px){
  .hero-cube-wrap{min-height:300px}
}


/* ---------- testimonial stacked rotation, reference style ---------- */
.testi-sec{
  position:relative;
  overflow:hidden;
}
.testi-sec::before{
  content:"";
  position:absolute;
  top:10%;
  right:-12%;
  width:520px;
  height:520px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(0,111,255,.15) 0%, rgba(0,111,255,.05) 42%, transparent 72%);
  filter:blur(12px);
  pointer-events:none;
}
.testi-head{
  position:relative;
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:32px;
  margin-bottom:58px;
  flex-wrap:wrap;
}
.testi-head h2{
  font-size:clamp(42px,5.4vw,78px);
  margin-top:18px;
}
.testi-head .thin{
  -webkit-text-stroke:1.2px var(--text);
  color:transparent;
}
.testi-head p{
  max-width:42ch;
  color:var(--muted);
}
.testi-showcase{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:54px;
  align-items:center;
}
.testi-copy__tag{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:"Space Mono",monospace;
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:18px;
}
.testi-copy__tag::before{
  content:"";
  width:24px;
  height:1.5px;
  background:var(--accent);
}
.testi-copy h3{
  font-family:var(--display);
  font-size:clamp(30px,3.1vw,48px);
  line-height:.98;
  text-transform:uppercase;
  letter-spacing:-.02em;
  margin:0 0 18px;
  color:var(--text);
}
.testi-copy p{
  color:var(--muted);
  max-width:44ch;
}
.testi-dots{
  display:flex;
  gap:10px;
  margin-top:28px;
  flex-wrap:wrap;
}
.testi-dot{
  width:11px;
  height:11px;
  border-radius:999px;
  border:0;
  background:rgba(11,11,12,.18);
  cursor:pointer;
  transition:width .28s ease, background .28s ease, transform .28s ease;
}
[data-theme="dark"] .testi-dot{
  background:rgba(255,255,255,.18);
}
.testi-dot:hover{
  transform:translateY(-2px);
}
.testi-dot.is-active{
  width:34px;
  background:var(--accent);
}
.testi-stack-wrap{
  position:relative;
  min-height:455px;
  perspective:1200px;
  display:flex;
  align-items:center;
  justify-content:center;
  isolation:isolate;
}
.testi-stack-wrap::before{
  content:"";
  position:absolute;
  width:390px;
  height:390px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(0,111,255,.18) 0%, rgba(0,111,255,.06) 44%, transparent 73%);
  filter:blur(10px);
  z-index:-1;
}
.testi-card{
  position:absolute;
  left:50%;
  top:50%;
  width:min(100%, 585px);
  min-height:278px;
  padding:30px 30px 26px;
  background:linear-gradient(180deg, var(--surface) 0%, var(--surface-2) 100%);
  border:1.5px solid var(--line);
  border-radius:28px;
  box-shadow:0 24px 70px rgba(0,0,0,.13);
  display:flex;
  flex-direction:column;
  gap:18px;
  transform:translate3d(-50%, -50%, 0) scale(.86) rotateX(0deg);
  opacity:0;
  pointer-events:none;
  transition:
    transform .78s cubic-bezier(.22,1,.36,1),
    opacity .58s ease,
    filter .58s ease,
    box-shadow .42s ease;
  will-change:transform, opacity;
}
[data-theme="dark"] .testi-card{
  background:linear-gradient(180deg, #15171c 0%, #0f1013 100%);
  box-shadow:0 28px 80px rgba(0,0,0,.42);
}
.testi-card.is-active{
  transform:translate3d(-50%, -50%, 120px) scale(1) rotateX(0deg);
  opacity:1;
  z-index:5;
  filter:none;
  pointer-events:auto;
  animation:testiFloat 4.8s ease-in-out infinite;
}
.testi-card.is-next{
  transform:translate3d(-50%, -39%, 20px) scale(.94) rotateX(-7deg);
  opacity:.68;
  z-index:4;
  filter:blur(.15px);
}
.testi-card.is-after{
  transform:translate3d(-50%, -29%, -80px) scale(.88) rotateX(-10deg);
  opacity:.36;
  z-index:3;
  filter:blur(.35px);
}
.testi-card.is-prev{
  transform:translate3d(-50%, -67%, -110px) scale(.9) rotateX(8deg);
  opacity:0;
  z-index:2;
}
.testi-card.is-hidden{
  transform:translate3d(-50%, -16%, -140px) scale(.82) rotateX(-14deg);
  opacity:0;
  z-index:1;
}
@keyframes testiFloat{
  0%,100%{ transform:translate3d(-50%, -50%, 120px) scale(1) rotateX(0deg) translateY(0); }
  50%{ transform:translate3d(-50%, -50%, 120px) scale(1) rotateX(0deg) translateY(-8px); }
}
.testi-card__quote{
  font-family:var(--display);
  font-size:78px;
  line-height:.68;
  color:var(--accent);
  opacity:.18;
  display:block;
  height:44px;
}
.testi-card__text{
  font-size:18px;
  line-height:1.65;
  color:var(--text);
  font-weight:500;
  margin:0;
}
.testi-card__person{
  margin-top:auto;
  display:flex;
  align-items:center;
  gap:16px;
  padding-top:8px;
}
.testi-card__avatar{
  width:66px;
  height:66px;
  border-radius:20px;
  padding:4px;
  background:linear-gradient(135deg, rgba(0,111,255,.22), rgba(255,255,255,.04));
  border:1px solid rgba(0,111,255,.18);
  flex:none;
}
.testi-card__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:16px;
}
.testi-card__meta{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.testi-card__meta strong{
  font-size:16px;
  color:var(--text);
}
.testi-card__meta span{
  font-family:"Space Mono",monospace;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.testi-stack-wrap:hover .testi-card.is-active{
  box-shadow:0 34px 90px rgba(0,0,0,.18);
}
[data-theme="dark"] .testi-stack-wrap:hover .testi-card.is-active{
  box-shadow:0 34px 90px rgba(0,0,0,.52);
}

@media(max-width:1100px){
  .testi-showcase{
    grid-template-columns:1fr;
    gap:38px;
  }
  .testi-copy{
    text-align:center;
  }
  .testi-copy p{
    margin:0 auto;
  }
  .testi-dots{
    justify-content:center;
  }
}
@media(max-width:680px){
  .testi-head{
    margin-bottom:34px;
  }
  .testi-stack-wrap{
    min-height:385px;
  }
  .testi-card{
    min-height:258px;
    padding:24px 21px 21px;
    border-radius:22px;
  }
  .testi-card__text{
    font-size:16px;
    line-height:1.6;
  }
  .testi-card__avatar{
    width:56px;
    height:56px;
    border-radius:17px;
  }
  .testi-card__avatar img{
    border-radius:13px;
  }
}


/* ---------- exact hover interaction for testimonial stack ---------- */
/* Hovering any visible card brings that card to front, like the reference. */
.testi-card{
  cursor:pointer;
  transform-style:preserve-3d;
}
.testi-card.is-next,
.testi-card.is-after{
  pointer-events:auto;
}
.testi-card.is-active{
  border-color:rgba(0,111,255,.32);
}
.testi-card.is-next:hover,
.testi-card.is-after:hover{
  opacity:.92;
}
.testi-card.is-active.is-tilting{
  transition:
    opacity .58s ease,
    filter .58s ease,
    box-shadow .42s ease;
}
.testi-card__avatar{
  overflow:hidden;
}
.testi-card__avatar img{
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
.testi-card:hover .testi-card__avatar img{
  transform:scale(1.08);
}
.testi-stack-wrap.is-paused::after{
  content:"Scroll on card to switch";
  position:absolute;
  bottom:12px;
  left:50%;
  transform:translateX(-50%);
  font-family:"Space Mono",monospace;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  opacity:.65;
}
.nav__logo{
  object-fit:contain;
}
.hero__logo-float{
  object-fit:contain;
}


/* ---------- click based testimonial interaction ---------- */
.testi-card.is-next,
.testi-card.is-after,
.testi-card.is-active{
  cursor:pointer;
}
.testi-card.is-next,
.testi-card.is-after{
  pointer-events:auto;
}
.testi-stack-wrap.is-paused::after{
  content:"Scroll on card to switch";
}


/* ---------- mouse wheel testimonial interaction ---------- */
.testi-stack-wrap::after{
  content:"Scroll on card to switch";
  position:absolute;
  bottom:12px;
  left:50%;
  transform:translateX(-50%);
  font-family:"Space Mono",monospace;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  opacity:.68;
  pointer-events:none;
}
.testi-card.is-next,
.testi-card.is-after,
.testi-card.is-active{
  cursor:pointer;
}


/* ---------- card-only scroll testimonial behavior ---------- */
.testi-sec{
  overscroll-behavior:auto;
}
.testi-stack-wrap{
  overscroll-behavior:contain;
}
.testi-stack-wrap::after{
  content:"Scroll on card to switch";
}
.testi-card.is-active{
  transform:translate3d(-50%, -50%, 120px) scale(1) rotateX(0deg);
}
.testi-card.is-next{
  transform:translate3d(-50%, -39%, 20px) scale(.94) rotateX(-7deg);
}
.testi-card.is-after{
  transform:translate3d(-50%, -29%, -80px) scale(.88) rotateX(-10deg);
}
.testi-card.is-active,
.testi-card.is-next,
.testi-card.is-after{
  cursor:pointer;
}


/* ---------- stronger subtle hero background curve ---------- */
.hero__curve-lines{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:1;
  pointer-events:none;
  opacity:.95;
}
.hero__curve{
  fill:none;
  stroke:url(#heroCurveGrad);
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
}
.hero__curve--glow{
  stroke-width:18;
  opacity:.26;
  filter:url(#heroCurveBlur);
}
.hero__curve--line{
  stroke-width:2.1;
  opacity:.62;
}
.hero__curve--thin{
  stroke-width:1.1;
  opacity:.26;
}
.hero__orbital-field{
  z-index:2;
}
.hero .wrap{
  z-index:5;
}
.hero__curve-glow::before{
  opacity:.34;
}
.hero__curve-glow::after{
  opacity:.22;
}
@media(max-width:700px){
  .hero__curve-lines{
    transform:scale(1.2);
    opacity:.72;
  }
  .hero__curve--glow{
    stroke-width:14;
    opacity:.18;
  }
  .hero__curve--line{
    stroke-width:1.6;
    opacity:.42;
  }
}


/* ---------- 3D floating hero curve motion ---------- */
.hero{
  perspective:1200px;
}
.hero__curve-lines{
  transform-origin:50% 50%;
  transform-style:preserve-3d;
  animation:heroCurveFloat3D 8.5s ease-in-out infinite;
  will-change:transform, opacity, filter;
}
.hero__curve--glow{
  animation:heroCurveGlowBreathe 6.8s ease-in-out infinite;
}
.hero__curve--line{
  stroke-dasharray:1300;
  stroke-dashoffset:0;
  animation:heroCurveLineFlow 10s ease-in-out infinite;
}
.hero__curve--thin{
  animation:heroCurveThinDrift 9s ease-in-out infinite;
}
@keyframes heroCurveFloat3D{
  0%,100%{
    transform:
      translate3d(0, 0, 0)
      rotateX(0deg)
      rotateY(0deg)
      rotateZ(0deg)
      scale(1);
    opacity:.88;
    filter:blur(0px);
  }
  25%{
    transform:
      translate3d(18px, -10px, 70px)
      rotateX(6deg)
      rotateY(-8deg)
      rotateZ(-1.4deg)
      scale(1.025);
    opacity:.96;
    filter:blur(.15px);
  }
  50%{
    transform:
      translate3d(-12px, 8px, -35px)
      rotateX(-5deg)
      rotateY(7deg)
      rotateZ(1.2deg)
      scale(.992);
    opacity:.78;
    filter:blur(.35px);
  }
  75%{
    transform:
      translate3d(10px, 12px, 45px)
      rotateX(4deg)
      rotateY(5deg)
      rotateZ(.8deg)
      scale(1.015);
    opacity:.9;
    filter:blur(.18px);
  }
}
@keyframes heroCurveGlowBreathe{
  0%,100%{opacity:.20;stroke-width:17}
  50%{opacity:.34;stroke-width:22}
}
@keyframes heroCurveLineFlow{
  0%,100%{stroke-dashoffset:0;opacity:.48}
  50%{stroke-dashoffset:-180;opacity:.66}
}
@keyframes heroCurveThinDrift{
  0%,100%{transform:translateY(0);opacity:.20}
  50%{transform:translateY(-16px);opacity:.34}
}

/* Small depth shift for orbit field so stars feel behind and around the curve */
.hero__orbital-field{
  transform-style:preserve-3d;
  animation:heroOrbitalDepthFloat 12s ease-in-out infinite;
}
@keyframes heroOrbitalDepthFloat{
  0%,100%{transform:translateZ(0) rotateX(0deg)}
  50%{transform:translateZ(35px) rotateX(2.5deg)}
}

@media(max-width:700px){
  .hero__curve-lines{
    animation:heroCurveFloatMobile 9s ease-in-out infinite;
  }
  @keyframes heroCurveFloatMobile{
    0%,100%{transform:scale(1.18) translate3d(0,0,0) rotateZ(0deg);opacity:.68}
    50%{transform:scale(1.22) translate3d(8px,-8px,0) rotateZ(-1.2deg);opacity:.82}
  }
}


/* ---------- full rotating hero curve, same curve shape ---------- */
.hero__curve-lines{
  transform-origin:50% 50%;
  transform-style:preserve-3d;
  animation:heroCurveFullRotate 18s linear infinite !important;
  will-change:transform;
}
.hero__curve--line{
  animation:heroCurveLineBreathe 5.8s ease-in-out infinite !important;
}
.hero__curve--glow{
  animation:heroCurveGlowBreatheSoft 6.5s ease-in-out infinite !important;
}
.hero__curve--thin{
  animation:heroCurveThinBreathe 7.2s ease-in-out infinite !important;
}

/* the whole same curve now rotates 360deg like the reference */
@keyframes heroCurveFullRotate{
  0%{
    transform:
      rotateX(58deg)
      rotateZ(0deg)
      scale(1.12);
    opacity:.82;
  }
  50%{
    transform:
      rotateX(58deg)
      rotateZ(180deg)
      scale(1.12);
    opacity:.88;
  }
  100%{
    transform:
      rotateX(58deg)
      rotateZ(360deg)
      scale(1.12);
    opacity:.82;
  }
}
@keyframes heroCurveLineBreathe{
  0%,100%{opacity:.48;stroke-width:2}
  50%{opacity:.62;stroke-width:2.35}
}
@keyframes heroCurveGlowBreatheSoft{
  0%,100%{opacity:.18;stroke-width:16}
  50%{opacity:.28;stroke-width:20}
}
@keyframes heroCurveThinBreathe{
  0%,100%{opacity:.16}
  50%{opacity:.26}
}

/* keep stars subtle while curve rotates */
.hero__orbital-field{
  animation:heroOrbitalDepthFloat 14s ease-in-out infinite !important;
}

@media(max-width:700px){
  .hero__curve-lines{
    animation:heroCurveFullRotateMobile 20s linear infinite !important;
  }
  @keyframes heroCurveFullRotateMobile{
    0%{transform:rotateX(54deg) rotateZ(0deg) scale(1.36);opacity:.62}
    50%{transform:rotateX(54deg) rotateZ(180deg) scale(1.36);opacity:.72}
    100%{transform:rotateX(54deg) rotateZ(360deg) scale(1.36);opacity:.62}
  }
}


/* ---------- reference style curve motion: full rotate + up/down wave ---------- */
/* Same curve shape, only animation changed. */
.hero__curve-lines{
  transform-origin:50% 50%;
  transform-box:fill-box;
  transform-style:preserve-3d;
  animation:heroCurveRotateUpDown 14s ease-in-out infinite !important;
  will-change:transform, opacity;
}

/* curve moves like the reference: top → center → bottom → center → top, while rotating */
@keyframes heroCurveRotateUpDown{
  0%{
    transform:
      translate3d(0, -170px, 0)
      rotateX(58deg)
      rotateZ(0deg)
      scale(1.18);
    opacity:.72;
  }
  12.5%{
    transform:
      translate3d(0, -95px, 55px)
      rotateX(58deg)
      rotateZ(45deg)
      scale(1.18);
    opacity:.82;
  }
  25%{
    transform:
      translate3d(0, 0, 85px)
      rotateX(58deg)
      rotateZ(90deg)
      scale(1.18);
    opacity:.9;
  }
  37.5%{
    transform:
      translate3d(0, 95px, 55px)
      rotateX(58deg)
      rotateZ(135deg)
      scale(1.18);
    opacity:.82;
  }
  50%{
    transform:
      translate3d(0, 170px, 0)
      rotateX(58deg)
      rotateZ(180deg)
      scale(1.18);
    opacity:.72;
  }
  62.5%{
    transform:
      translate3d(0, 95px, -45px)
      rotateX(58deg)
      rotateZ(225deg)
      scale(1.18);
    opacity:.8;
  }
  75%{
    transform:
      translate3d(0, 0, -70px)
      rotateX(58deg)
      rotateZ(270deg)
      scale(1.18);
    opacity:.88;
  }
  87.5%{
    transform:
      translate3d(0, -95px, -45px)
      rotateX(58deg)
      rotateZ(315deg)
      scale(1.18);
    opacity:.8;
  }
  100%{
    transform:
      translate3d(0, -170px, 0)
      rotateX(58deg)
      rotateZ(360deg)
      scale(1.18);
    opacity:.72;
  }
}

/* softer breathing only, no static flat look */
.hero__curve--line{
  animation:heroCurveLineSoftPulse 5.5s ease-in-out infinite !important;
}
.hero__curve--glow{
  animation:heroCurveGlowSoftPulse 5.5s ease-in-out infinite !important;
}
.hero__curve--thin{
  animation:heroCurveThinSoftPulse 6.5s ease-in-out infinite !important;
}
@keyframes heroCurveLineSoftPulse{
  0%,100%{opacity:.42;stroke-width:1.8}
  50%{opacity:.62;stroke-width:2.35}
}
@keyframes heroCurveGlowSoftPulse{
  0%,100%{opacity:.14;stroke-width:15}
  50%{opacity:.28;stroke-width:21}
}
@keyframes heroCurveThinSoftPulse{
  0%,100%{opacity:.12}
  50%{opacity:.25}
}

/* keep text always clearly above the moving curve */
.hero .wrap{
  z-index:6;
}
.hero__orbital-field{
  z-index:2;
}

@media(max-width:700px){
  .hero__curve-lines{
    animation:heroCurveRotateUpDownMobile 15s ease-in-out infinite !important;
  }
  @keyframes heroCurveRotateUpDownMobile{
    0%{transform:translate3d(0,-120px,0) rotateX(56deg) rotateZ(0deg) scale(1.48);opacity:.55}
    25%{transform:translate3d(0,0,60px) rotateX(56deg) rotateZ(90deg) scale(1.48);opacity:.72}
    50%{transform:translate3d(0,120px,0) rotateX(56deg) rotateZ(180deg) scale(1.48);opacity:.55}
    75%{transform:translate3d(0,0,-50px) rotateX(56deg) rotateZ(270deg) scale(1.48);opacity:.68}
    100%{transform:translate3d(0,-120px,0) rotateX(56deg) rotateZ(360deg) scale(1.48);opacity:.55}
  }
}


/* ---------- reference style floating curve, not full spin ---------- */
/* In the reference, the curve is a large glowing ribbon that floats up/down and slightly slides.
   It does not look like a full spinning wheel. */
.hero__curve-lines{
  transform-origin:50% 50%;
  transform-box:fill-box;
  transform-style:preserve-3d;
  animation:heroCurveReferenceFloat 11s ease-in-out infinite !important;
  will-change:transform, opacity, filter;
}

/* Main floating motion: down → center → up → center → down */
@keyframes heroCurveReferenceFloat{
  0%,100%{
    transform:
      translate3d(0, 95px, 0)
      rotateX(0deg)
      rotateY(0deg)
      rotateZ(0deg)
      scale(1.08);
    opacity:.78;
    filter:blur(0px);
  }
  25%{
    transform:
      translate3d(-22px, 24px, 35px)
      rotateX(3deg)
      rotateY(-2deg)
      rotateZ(-1.2deg)
      scale(1.1);
    opacity:.9;
    filter:blur(.08px);
  }
  50%{
    transform:
      translate3d(0, -92px, 65px)
      rotateX(5deg)
      rotateY(2deg)
      rotateZ(1.3deg)
      scale(1.12);
    opacity:.96;
    filter:blur(.12px);
  }
  75%{
    transform:
      translate3d(24px, 18px, 32px)
      rotateX(2deg)
      rotateY(3deg)
      rotateZ(.8deg)
      scale(1.09);
    opacity:.86;
    filter:blur(.06px);
  }
}

/* Make the curve feel like a luminous ribbon, but still subtle */
.hero__curve--glow{
  stroke-width:28 !important;
  opacity:.20 !important;
  animation:heroCurveReferenceGlow 7s ease-in-out infinite !important;
}
.hero__curve--line{
  stroke-width:4.2 !important;
  opacity:.62 !important;
  animation:heroCurveReferenceLine 7s ease-in-out infinite !important;
}
.hero__curve--thin{
  stroke-width:1.4 !important;
  opacity:.22 !important;
  animation:heroCurveReferenceThin 8s ease-in-out infinite !important;
}

@keyframes heroCurveReferenceGlow{
  0%,100%{opacity:.14;stroke-width:24}
  50%{opacity:.24;stroke-width:32}
}
@keyframes heroCurveReferenceLine{
  0%,100%{opacity:.46;stroke-width:3.8}
  50%{opacity:.68;stroke-width:4.8}
}
@keyframes heroCurveReferenceThin{
  0%,100%{opacity:.14;transform:translateY(14px)}
  50%{opacity:.28;transform:translateY(-18px)}
}

/* stronger soft backdrop around the curve, like the screenshot */
.hero__curve-glow::before{
  opacity:.46 !important;
  filter:blur(18px);
}
.hero__curve-glow::after{
  opacity:.30 !important;
  filter:blur(16px);
}

/* Keep stars behind the ribbon and subtle */
.hero__orbital-field{
  z-index:2;
  opacity:.72;
  animation:heroOrbitalDepthFloat 14s ease-in-out infinite !important;
}

/* Text must stay on top */
.hero .wrap{
  z-index:7;
}

@media(max-width:700px){
  .hero__curve-lines{
    animation:heroCurveReferenceFloatMobile 11s ease-in-out infinite !important;
  }
  @keyframes heroCurveReferenceFloatMobile{
    0%,100%{transform:translate3d(0,80px,0) rotateZ(0deg) scale(1.42);opacity:.58}
    50%{transform:translate3d(0,-72px,40px) rotateZ(1.4deg) scale(1.48);opacity:.76}
  }
  .hero__curve--glow{stroke-width:22 !important;opacity:.16 !important}
  .hero__curve--line{stroke-width:3.2 !important;opacity:.44 !important}
}


/* ---------- final reference hero: floating galaxy ribbon behind centered text ---------- */
/* This is the final intended behavior:
   - centered text
   - one large glowing ribbon/curve behind the text
   - slow up/down floating motion
   - slight left/right drift
   - subtle scale + blur change for 3D illusion
   - small background star particles softly pulsing/drifting
   - dark background, premium, low brightness
*/

.hero{
  perspective:1200px;
}

.hero__curve-lines{
  transform-origin:50% 50%;
  transform-box:fill-box;
  transform-style:preserve-3d;
  animation:heroRibbonFloat 11.5s ease-in-out infinite !important;
  will-change:transform, opacity, filter;
  opacity:.92;
}

@keyframes heroRibbonFloat{
  0%,100%{
    transform:
      translate3d(0, 88px, 0)
      rotateX(1deg)
      rotateY(0deg)
      rotateZ(0deg)
      scale(1.07);
    opacity:.76;
    filter:blur(0px);
  }
  25%{
    transform:
      translate3d(-22px, 30px, 28px)
      rotateX(3deg)
      rotateY(-1.5deg)
      rotateZ(-1deg)
      scale(1.09);
    opacity:.87;
    filter:blur(.08px);
  }
  50%{
    transform:
      translate3d(0, -86px, 52px)
      rotateX(5deg)
      rotateY(1.5deg)
      rotateZ(1.2deg)
      scale(1.11);
    opacity:.96;
    filter:blur(.12px);
  }
  75%{
    transform:
      translate3d(22px, 20px, 24px)
      rotateX(2deg)
      rotateY(2deg)
      rotateZ(.6deg)
      scale(1.085);
    opacity:.84;
    filter:blur(.06px);
  }
}

.hero__curve--glow{
  stroke-width:28 !important;
  opacity:.18 !important;
  animation:heroRibbonGlow 7s ease-in-out infinite !important;
}
.hero__curve--line{
  stroke-width:4.1 !important;
  opacity:.58 !important;
  animation:heroRibbonLine 7s ease-in-out infinite !important;
}
.hero__curve--thin{
  stroke-width:1.3 !important;
  opacity:.18 !important;
  animation:heroRibbonThin 8.2s ease-in-out infinite !important;
}

@keyframes heroRibbonGlow{
  0%,100%{opacity:.12;stroke-width:24}
  50%{opacity:.22;stroke-width:32}
}
@keyframes heroRibbonLine{
  0%,100%{opacity:.44;stroke-width:3.7}
  50%{opacity:.66;stroke-width:4.7}
}
@keyframes heroRibbonThin{
  0%,100%{opacity:.12;transform:translateY(12px)}
  50%{opacity:.24;transform:translateY(-16px)}
}

/* Stronger but subtle light bed behind the ribbon */
.hero__curve-glow::before{
  opacity:.42 !important;
  filter:blur(20px);
}
.hero__curve-glow::after{
  opacity:.28 !important;
  filter:blur(18px);
}

/* Ambient particle field */
.hero__orbital-field{
  z-index:2;
  opacity:.82;
  animation:heroAmbientFieldDrift 18s ease-in-out infinite !important;
  transform-style:preserve-3d;
}
@keyframes heroAmbientFieldDrift{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(0,-10px,20px)}
}

.hero__particle{
  position:absolute;
  width:var(--size,5px);
  height:var(--size,5px);
  left:var(--x,50%);
  top:var(--y,50%);
  transform:translate(-50%,-50%);
  opacity:var(--opacity,.16);
  animation:
    heroParticleFloat var(--dur,8.8s) ease-in-out infinite,
    heroParticlePulse var(--pulse,4.4s) ease-in-out infinite;
  animation-delay:var(--delay,0s);
  will-change:transform, opacity;
}
.hero__particle::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.76);
  -webkit-mask:url("../assets/mark.svg") center/contain no-repeat;
  mask:url("../assets/mark.svg") center/contain no-repeat;
}
.hero__particle--blue::before{
  background:rgba(0,111,255,.62);
}
.hero__particle--dim::before{
  background:rgba(255,255,255,.46);
}
@keyframes heroParticleFloat{
  0%,100%{
    transform:translate(-50%,-50%) translate3d(0,0,0) scale(1);
  }
  50%{
    transform:translate(-50%,-50%) translate3d(var(--dx,10px), var(--dy,-8px), 14px) scale(1.06);
  }
}
@keyframes heroParticlePulse{
  0%,100%{opacity:calc(var(--opacity,.16) * .92)}
  50%{opacity:calc(var(--opacity,.16) * 1.32)}
}

/* keep text dominant */
.hero .wrap{
  z-index:7 !important;
}
.hero__center{
  position:relative;
  z-index:7;
}
.hero h1,
.hero__sub,
.hero__sub--accent,
.hero__cta,
.hero__eyebrow{
  position:relative;
  z-index:7;
}

/* Mobile */
@media(max-width:700px){
  .hero__curve-lines{
    animation:heroRibbonFloatMobile 11s ease-in-out infinite !important;
  }
  @keyframes heroRibbonFloatMobile{
    0%,100%{
      transform:translate3d(0,72px,0) scale(1.42);
      opacity:.56;
    }
    50%{
      transform:translate3d(0,-68px,36px) scale(1.47);
      opacity:.76;
    }
  }
  .hero__curve--glow{stroke-width:22 !important;opacity:.14 !important}
  .hero__curve--line{stroke-width:3.1 !important;opacity:.42 !important}
}


/* ---------- exact reference style hero ribbon ---------- */
/* Replaces the thin SVG curve look with a large glowing multi-layer ribbon.
   This is closer to the Framer reference: big curved band, center dip,
   orange top glow, white core, blue lower glow, floating up/down behind text. */

.hero__curve-lines{
  display:none !important;
}

.hero__ribbon-wrap{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
  transform-style:preserve-3d;
  animation:heroRibbonWholeFloat 10.5s ease-in-out infinite;
  will-change:transform, filter, opacity;
}

.hero__ribbon{
  position:absolute;
  left:50%;
  top:50%;
  width:150vw;
  min-width:1900px;
  height:420px;
  border-radius:50%;
  transform:translate(-50%, -50%) rotate(7deg);
  opacity:.8;
  will-change:transform, opacity, filter;
}

/* orange upper glow */
.hero__ribbon--orange{
  height:390px;
  top:47%;
  background:
    radial-gradient(ellipse at center,
      rgba(255,112,34,.85) 0%,
      rgba(255,145,44,.56) 10%,
      rgba(255,145,44,.18) 22%,
      rgba(255,145,44,0) 56%);
  filter:blur(18px);
  opacity:.48;
}

/* main soft white body */
.hero__ribbon--white{
  height:360px;
  top:52%;
  background:
    radial-gradient(ellipse at center,
      rgba(255,255,255,.78) 0%,
      rgba(255,255,255,.50) 11%,
      rgba(255,255,255,.16) 25%,
      rgba(255,255,255,0) 58%);
  filter:blur(14px);
  opacity:.58;
}

/* blue lower glow */
.hero__ribbon--blue{
  height:390px;
  top:58%;
  background:
    radial-gradient(ellipse at center,
      rgba(0,111,255,.86) 0%,
      rgba(0,111,255,.52) 12%,
      rgba(0,111,255,.18) 26%,
      rgba(0,111,255,0) 60%);
  filter:blur(22px);
  opacity:.46;
}

/* crisp central light edge, still subtle */
.hero__ribbon--core{
  height:310px;
  top:54%;
  background:
    radial-gradient(ellipse at center,
      rgba(255,255,255,.62) 0%,
      rgba(255,255,255,.34) 7%,
      rgba(0,111,255,.20) 17%,
      rgba(0,111,255,0) 46%);
  filter:blur(5px);
  opacity:.50;
}

@keyframes heroRibbonWholeFloat{
  0%,100%{
    transform:
      translate3d(0, 72px, 0)
      scale(1.03)
      rotateX(0deg);
    opacity:.76;
    filter:blur(0px);
  }
  25%{
    transform:
      translate3d(-18px, 22px, 18px)
      scale(1.045)
      rotateX(1.5deg);
    opacity:.86;
    filter:blur(.1px);
  }
  50%{
    transform:
      translate3d(0, -58px, 38px)
      scale(1.06)
      rotateX(2.5deg);
    opacity:.95;
    filter:blur(.2px);
  }
  75%{
    transform:
      translate3d(18px, 18px, 18px)
      scale(1.04)
      rotateX(1deg);
    opacity:.84;
    filter:blur(.08px);
  }
}

/* Separate layer breathing, so it feels alive */
.hero__ribbon--orange{animation:heroRibbonOrangeBreathe 7s ease-in-out infinite}
.hero__ribbon--white{animation:heroRibbonWhiteBreathe 7.8s ease-in-out infinite}
.hero__ribbon--blue{animation:heroRibbonBlueBreathe 8.2s ease-in-out infinite}
.hero__ribbon--core{animation:heroRibbonCoreBreathe 6.8s ease-in-out infinite}

@keyframes heroRibbonOrangeBreathe{
  0%,100%{opacity:.34;transform:translate(-50%, -50%) rotate(7deg) translateY(-18px)}
  50%{opacity:.56;transform:translate(-50%, -50%) rotate(7deg) translateY(-34px)}
}
@keyframes heroRibbonWhiteBreathe{
  0%,100%{opacity:.46;transform:translate(-50%, -50%) rotate(7deg) translateY(0)}
  50%{opacity:.66;transform:translate(-50%, -50%) rotate(7deg) translateY(-18px)}
}
@keyframes heroRibbonBlueBreathe{
  0%,100%{opacity:.34;transform:translate(-50%, -50%) rotate(7deg) translateY(22px)}
  50%{opacity:.52;transform:translate(-50%, -50%) rotate(7deg) translateY(34px)}
}
@keyframes heroRibbonCoreBreathe{
  0%,100%{opacity:.36;transform:translate(-50%, -50%) rotate(7deg) translateY(6px)}
  50%{opacity:.56;transform:translate(-50%, -50%) rotate(7deg) translateY(-10px)}
}

/* Stars must feel like tiny background dust, not visible icons */
.hero__orbital-field{
  z-index:2;
  opacity:.58 !important;
}
.hero__particle{
  opacity:var(--opacity,.10) !important;
}
.hero__particle::before{
  background:rgba(255,255,255,.52) !important;
}
.hero__particle--blue::before{
  background:rgba(0,111,255,.42) !important;
}
.hero__particle--dim::before{
  background:rgba(255,255,255,.30) !important;
}

/* Strong dark vignette so the ribbon does not overpower the title */
.hero--orbital::after,
.hero--stars::after,
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 52%, rgba(5,5,6,0) 0%, rgba(5,5,6,.12) 38%, rgba(5,5,6,.78) 88%),
    linear-gradient(180deg, rgba(5,5,6,.35) 0%, rgba(5,5,6,0) 35%, rgba(5,5,6,.55) 100%);
}

.hero .wrap{
  z-index:8 !important;
}
.hero__center{
  z-index:8 !important;
}

/* Make center title read like reference: text sits in front of ribbon */
.hero h1{
  text-shadow:0 12px 44px rgba(0,0,0,.46);
}

@media(max-width:900px){
  .hero__ribbon{
    width:180vw;
    min-width:1200px;
    height:350px;
  }
  .hero__ribbon-wrap{
    animation:heroRibbonWholeFloatMobile 10.5s ease-in-out infinite;
  }
  @keyframes heroRibbonWholeFloatMobile{
    0%,100%{transform:translate3d(0,54px,0) scale(1.04);opacity:.68}
    50%{transform:translate3d(0,-48px,24px) scale(1.08);opacity:.86}
  }
}

@media(max-width:640px){
  .hero__ribbon{
    min-width:950px;
    height:310px;
  }
  .hero__ribbon--orange{opacity:.30}
  .hero__ribbon--white{opacity:.42}
  .hero__ribbon--blue{opacity:.34}
  .hero__ribbon--core{opacity:.36}
}


/* ---------- final visible 3D hero curve + stars ---------- */
/* Force-hide old experimental ribbon system */
.hero__ribbon-wrap,
.hero__ribbon,
.hero__curve-lines{
  display:none !important;
}

/* stage */
.hero{
  perspective:1400px;
}
.hero__curve-stage{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
  transform-style:preserve-3d;
}
.hero__curve-svg{
  position:absolute;
  inset:-6% -8%;
  width:116%;
  height:112%;
  overflow:visible;
  transform-origin:50% 50%;
  transform-style:preserve-3d;
  will-change:transform, filter;
  animation:heroCurveFloat3D 11s ease-in-out infinite;
}

/* actual visible curve */
.hero__curve-path{
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.hero__curve-path--glow1{
  stroke:url(#iceCurveOrange);
  stroke-width:130;
  opacity:.18;
  filter:url(#curveBlurBig);
}
.hero__curve-path--glow2{
  stroke:url(#iceCurveBlue);
  stroke-width:96;
  opacity:.22;
  filter:url(#curveBlurBig);
}
.hero__curve-path--main{
  stroke:url(#iceCurveOrange);
  stroke-width:62;
  opacity:.82;
  filter:url(#curveBlurSmall);
}
.hero__curve-path--highlight{
  stroke:rgba(255,255,255,.75);
  stroke-width:28;
  opacity:.72;
  filter:url(#curveBlurSmall);
}
.hero__curve-path--shadow{
  stroke:rgba(0,111,255,.72);
  stroke-width:42;
  opacity:.34;
  filter:url(#curveBlurBig);
}

/* 3D floating motion */
@keyframes heroCurveFloat3D{
  0%,100%{
    transform:
      translate3d(0, 58px, 0)
      rotateX(14deg)
      rotateY(0deg)
      rotateZ(-4deg)
      scale(1.02);
    filter:blur(0px);
  }
  25%{
    transform:
      translate3d(-16px, 18px, 24px)
      rotateX(17deg)
      rotateY(-3deg)
      rotateZ(-2deg)
      scale(1.035);
    filter:blur(.08px);
  }
  50%{
    transform:
      translate3d(0, -52px, 60px)
      rotateX(18deg)
      rotateY(3deg)
      rotateZ(2deg)
      scale(1.05);
    filter:blur(.14px);
  }
  75%{
    transform:
      translate3d(18px, 16px, 24px)
      rotateX(15deg)
      rotateY(2deg)
      rotateZ(0deg)
      scale(1.03);
    filter:blur(.06px);
  }
}

/* make background glow visible but subtle */
.hero__curve-glow{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}
.hero__curve-glow::before{
  content:"";
  position:absolute;
  left:50%;
  top:54%;
  width:min(1200px, 120vw);
  height:min(520px, 64vh);
  transform:translate(-50%, -50%);
  background:radial-gradient(ellipse at center, rgba(0,111,255,.22) 0%, rgba(0,111,255,.08) 28%, rgba(0,111,255,0) 62%);
  filter:blur(26px);
  opacity:.65;
}
.hero__curve-glow::after{
  content:"";
  position:absolute;
  left:50%;
  top:48%;
  width:min(1200px, 120vw);
  height:min(500px, 60vh);
  transform:translate(-50%, -50%);
  background:radial-gradient(ellipse at center, rgba(255,143,44,.12) 0%, rgba(255,143,44,.06) 26%, rgba(255,143,44,0) 58%);
  filter:blur(28px);
  opacity:.55;
}

/* stars */
.hero__orbital-field{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  overflow:hidden;
}
.hero__star{
  position:absolute;
  width:var(--size,5px);
  height:var(--size,5px);
  left:var(--x,50%);
  top:var(--y,50%);
  opacity:var(--opacity,.18);
  transform:translate(-50%, -50%);
  will-change:transform, opacity;
  animation:
    heroStarDrift var(--dur,8.4s) ease-in-out infinite,
    heroStarPulse var(--pulse,4.2s) ease-in-out infinite;
  animation-delay:var(--delay,0s);
}
.hero__star::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.86);
  -webkit-mask:url("../assets/mark.svg") center/contain no-repeat;
  mask:url("../assets/mark.svg") center/contain no-repeat;
}
.hero__star--blue::before{
  background:rgba(92,166,255,.88);
}
.hero__star--dim::before{
  background:rgba(255,255,255,.52);
}
@keyframes heroStarDrift{
  0%,100%{transform:translate(-50%, -50%) translate3d(0,0,0) scale(1)}
  50%{transform:translate(-50%, -50%) translate3d(var(--dx,10px), var(--dy,-8px), 12px) scale(1.08)}
}
@keyframes heroStarPulse{
  0%,100%{opacity:calc(var(--opacity,.18) * .88)}
  50%{opacity:calc(var(--opacity,.18) * 1.4)}
}

/* keep text strongest */
.hero .wrap{
  position:relative;
  z-index:8 !important;
}
.hero__center{
  position:relative;
  z-index:8 !important;
}
.hero h1{
  text-shadow:0 16px 54px rgba(0,0,0,.42);
}

/* vignette to keep focus on text */
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:6;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 52%, rgba(5,5,6,0) 0%, rgba(5,5,6,.08) 34%, rgba(5,5,6,.70) 88%),
    linear-gradient(180deg, rgba(5,5,6,.32) 0%, rgba(5,5,6,0) 32%, rgba(5,5,6,.44) 100%);
}

/* mobile */
@media(max-width:900px){
  .hero__curve-svg{
    inset:-4% -18%;
    width:136%;
    height:112%;
    animation:heroCurveFloat3DMobile 11s ease-in-out infinite;
  }
  @keyframes heroCurveFloat3DMobile{
    0%,100%{transform:translate3d(0,44px,0) rotateX(14deg) rotateZ(-4deg) scale(1.1)}
    50%{transform:translate3d(0,-40px,36px) rotateX(18deg) rotateZ(1deg) scale(1.15)}
  }
  .hero__curve-path--glow1{stroke-width:92}
  .hero__curve-path--glow2{stroke-width:72}
  .hero__curve-path--main{stroke-width:44}
  .hero__curve-path--highlight{stroke-width:18}
  .hero__curve-path--shadow{stroke-width:30}
}


/* ---------- clean mobile version v2 ----------
   Desktop remains as-is.
   Mobile fixes:
   - no hero animation
   - portfolio becomes simple vertical cards
   - trusted brands becomes simple vertical/grid section
   - no central orb/logo in portfolio
   - no huge overlapping trusted title
   - no horizontal overflow
------------------------------------------------ */

.vision-second-line{
  display:inline-block;
  margin-top:.08em;
}

@media(max-width:768px){
  html,
  body{
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
  }

  *,
  *::before,
  *::after{
    box-sizing:border-box;
  }

  img,
  video,
  canvas,
  svg{
    max-width:100%;
  }

  body{
    min-width:0 !important;
  }

  section,
  header,
  footer,
  main{
    max-width:100vw !important;
    overflow-x:hidden !important;
  }

  .wrap{
    width:calc(100% - 28px) !important;
    max-width:calc(100vw - 28px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  /* HERO MOBILE: static, clean */
  .hero{
    min-height:auto !important;
    height:auto !important;
    padding-top:96px !important;
    padding-bottom:64px !important;
    overflow:hidden !important;
  }

  .hero__curve-stage,
  .hero__curve-svg,
  .hero__curve-glow,
  .hero__grid,
  .hero__orbital-field,
  .hero__star,
  .hero__particle,
  .hero__orbit,
  .hero__orbit-star,
  .hero__dust,
  .hero__ribbon-wrap,
  .hero__curve-lines{
    display:none !important;
    animation:none !important;
    transform:none !important;
  }

  .hero::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:0;
    background:
      radial-gradient(circle at 50% 18%, rgba(0,111,255,.18), transparent 42%),
      radial-gradient(circle at 50% 76%, rgba(255,122,31,.08), transparent 44%);
  }

  .hero .wrap,
  .hero__center,
  .hero__content,
  .hero__inner{
    position:relative !important;
    z-index:2 !important;
  }

  .hero__center{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    width:100% !important;
    max-width:100% !important;
    min-height:auto !important;
    gap:16px !important;
  }

  .hero__eyebrow,
  .eyebrow{
    font-size:.68rem !important;
    line-height:1.35 !important;
    letter-spacing:.12em !important;
    white-space:normal !important;
    max-width:100% !important;
    text-align:center !important;
  }

  .display{
    width:100% !important;
    max-width:100% !important;
    font-size:clamp(3rem, 17vw, 5.25rem) !important;
    line-height:.88 !important;
    letter-spacing:-.055em !important;
    text-align:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .display .ln,
  .display .ln span{
    display:block !important;
    overflow:visible !important;
    transform:none !important;
  }

  .hero__sub,
  .hero__sub--accent,
  .hero p{
    max-width:100% !important;
    font-size:1rem !important;
    line-height:1.48 !important;
    text-align:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .hero__cta{
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:center !important;
    gap:12px !important;
    margin-top:10px !important;
  }

  .hero__cta .btn,
  .hero__cta a,
  .btn{
    width:100% !important;
    max-width:100% !important;
    justify-content:center !important;
    text-align:center !important;
  }

  /* TRUSTED BRANDS MOBILE: no floating orbit */
  .trusted{
    min-height:auto !important;
    height:auto !important;
    display:block !important;
    padding:64px 14px !important;
    overflow:hidden !important;
    background:#090a0f !important;
  }

  .trusted__glow{
    display:none !important;
  }

  .trusted__center{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    left:auto !important;
    transform:none !important;
    opacity:1 !important;
    filter:none !important;
    white-space:normal !important;
    text-align:center !important;
    pointer-events:auto !important;
    margin:0 auto 34px !important;
    width:100% !important;
    max-width:100% !important;
    order:0;
  }

  .trusted__kicker{
    font-size:10px !important;
    letter-spacing:.24em !important;
    margin-bottom:12px !important;
  }

  .trusted__title{
    font-size:clamp(42px, 13vw, 64px) !important;
    line-height:.9 !important;
    letter-spacing:-.055em !important;
    white-space:normal !important;
    max-width:100% !important;
    overflow-wrap:normal !important;
  }

  .trusted__stage{
    position:relative !important;
    width:100% !important;
    height:auto !important;
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:24px 16px !important;
    perspective:none !important;
    transform:none !important;
    transform-style:flat !important;
    margin:0 auto !important;
    max-width:420px !important;
    order:1;
  }

  .tbrand{
    position:relative !important;
    width:100% !important;
    margin:0 !important;
    transform:none !important;
    opacity:1 !important;
    filter:none !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:10px !important;
    min-width:0 !important;
  }

  .tbrand__img{
    width:96px !important;
    height:96px !important;
    border-radius:50% !important;
    object-fit:cover !important;
    box-shadow:0 10px 30px rgba(0,0,0,.35) !important;
  }

  .tbrand__name{
    font-size:13px !important;
    line-height:1.25 !important;
    max-width:130px !important;
    white-space:normal !important;
    text-align:center !important;
  }

  /* WORK / PORTFOLIO MOBILE: no sticky universe, no center logo, simple vertical cards */
  .work-sec{
    height:auto !important;
    min-height:0 !important;
    padding:58px 0 !important;
    overflow:hidden !important;
    background:var(--void) !important;
  }

  .work-header{
    padding:0 14px 26px !important;
    text-align:center !important;
  }

  .work-title__h{
    font-size:clamp(38px, 12vw, 58px) !important;
    line-height:.95 !important;
  }

  .work-sec__pin{
    position:relative !important;
    top:auto !important;
    height:auto !important;
    min-height:0 !important;
    display:block !important;
    overflow:visible !important;
    padding:0 14px !important;
  }

  .work-stage{
    position:relative !important;
    width:100% !important;
    height:auto !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:28px !important;
    z-index:1 !important;
    max-width:430px !important;
    margin:0 auto !important;
  }

  .work-lines,
  .wline,
  .work-orb,
  .work-orb__ring,
  .work-glow{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    animation:none !important;
  }

  .wcard{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    width:100% !important;
    max-width:100% !important;
    transform:none !important;
    opacity:1 !important;
    filter:none !important;
    z-index:1 !important;
    cursor:pointer !important;
    margin:0 !important;
  }

  .wcard__thumb{
    width:100% !important;
    border-radius:18px !important;
    overflow:hidden !important;
    aspect-ratio:16/9 !important;
    box-shadow:0 18px 40px rgba(0,0,0,.42) !important;
  }

  .wcard__thumb img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    transform:none !important;
  }

  .wcard__overlay{
    opacity:.18 !important;
  }

  .wcard__cta{
    opacity:1 !important;
    transform:translateX(-50%) translateY(0) !important;
    bottom:12px !important;
    font-size:9px !important;
    padding:7px 13px !important;
  }

  .wcard__meta{
    padding:12px 4px 0 !important;
    gap:6px !important;
  }

  .wcard__tag{
    font-size:9px !important;
    letter-spacing:.18em !important;
  }

  .wcard__title{
    font-size:18px !important;
    line-height:1.05 !important;
    letter-spacing:-.03em !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
  }

  /* Generic mobile vertical safety */
  .services-grid,
  .capabilities-grid,
  .brands-grid,
  .testimonial-grid,
  .cards,
  .grid,
  .footer__grid,
  .studio__grid,
  .about__grid,
  .contact__grid,
  .process__grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
    width:100% !important;
    max-width:100% !important;
  }

  .card,
  .service-card,
  .testimonial-card,
  .brand-card,
  .panel,
  .tile{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    transform:none !important;
  }

  .testi-showcase{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:24px !important;
  }

  .testi-stack-wrap,
  .testimonial-stack,
  .testimonials-stack,
  .testimonial-cards,
  .testimonials__stack{
    position:relative !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    transform:none !important;
    overflow:visible !important;
  }

  .testi-card,
  .testimonial-stack > *,
  .testimonials-stack > *,
  .testimonial-cards > *,
  .testimonials__stack > *{
    position:relative !important;
    inset:auto !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    width:100% !important;
    max-width:100% !important;
    pointer-events:auto !important;
  }

  section{
    padding-top:54px !important;
    padding-bottom:54px !important;
  }

  h1,h2,h3,p{
    max-width:100%;
    overflow-wrap:break-word;
  }

  .vision-second-line{
    display:block !important;
    margin-top:.08em;
  }
}

@media(max-width:390px){
  .wrap{
    width:calc(100% - 24px) !important;
    max-width:calc(100vw - 24px) !important;
  }

  .display{
    font-size:clamp(2.7rem, 16.5vw, 4.55rem) !important;
  }

  .trusted__stage{
    grid-template-columns:1fr 1fr !important;
    gap:22px 12px !important;
  }

  .tbrand__img{
    width:88px !important;
    height:88px !important;
  }

  .tbrand__name{
    font-size:12px !important;
  }
}


/* ---------- added YouTube video card support ---------- */
/* Desktop: place 7th featured card cleanly under the center without breaking existing layout */
@media(min-width:769px){
  .work-stage .wcard[data-wi="6"]{
    --tx: 0;
    --ty: 380;
    --sc: .92;
    --op: 1;
    --bl: 0;
    --rot: -2;
  }

  .work-stage .wcard[data-wi="6"] .wcard__thumb{
    border-color:rgba(0,111,255,.22);
    box-shadow:0 20px 60px rgba(0,111,255,.16), 0 16px 48px rgba(0,0,0,.6);
  }
}

/* Mobile: new card remains part of same clean vertical list */
@media(max-width:768px){
  .work-stage .wcard[data-wi="6"]{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    width:100% !important;
    max-width:100% !important;
    transform:none !important;
    opacity:1 !important;
    filter:none !important;
    margin:0 !important;
  }
}


/* ---------- featured YouTube video section fixed ---------- */
/* New YouTube video is now outside the orbital Selected Work stage,
   so the center Ice Cube logo/orb will not cover the thumbnail. */

.featured-video-sec{
  position:relative;
  background:var(--void, #050506);
  color:#fff;
  padding:92px 0;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.06);
}

.featured-video-sec::before{
  content:"";
  position:absolute;
  inset:auto -20% 8% -20%;
  height:360px;
  background:radial-gradient(ellipse at center, rgba(0,111,255,.20), transparent 65%);
  filter:blur(24px);
  pointer-events:none;
}

.featured-video-card{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:34px;
  align-items:center;
  padding:28px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:28px;
  background:linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
  box-shadow:0 28px 80px rgba(0,0,0,.45);
}

.featured-video-eyebrow{
  display:block;
  font-family:"Space Mono", monospace;
  font-size:10px;
  font-weight:800;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:rgba(0,111,255,.9);
  margin-bottom:14px;
}

.featured-video-title{
  font-family:"Archivo", sans-serif;
  font-size:clamp(34px, 4.6vw, 66px);
  line-height:.92;
  letter-spacing:-.055em;
  text-transform:uppercase;
  margin:0 0 18px;
}

.featured-video-copy p{
  color:var(--body-d, rgba(255,255,255,.70));
  font-size:16px;
  line-height:1.55;
  max-width:42ch;
  margin:0 0 24px;
}

.featured-video-thumb{
  position:relative;
  display:block;
  border-radius:24px;
  overflow:hidden;
  aspect-ratio:16/9;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 24px 70px rgba(0,0,0,.50), 0 0 60px rgba(0,111,255,.14);
  background:#101018;
}

.featured-video-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .55s cubic-bezier(.22,1,.36,1), filter .55s ease;
}

.featured-video-thumb:hover img{
  transform:scale(1.045);
  filter:brightness(.86);
}

.featured-play{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  width:74px;
  height:74px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-left:5px;
  background:rgba(0,111,255,.92);
  color:#fff;
  font-size:28px;
  box-shadow:0 0 42px rgba(0,111,255,.42);
}

/* Hide accidental old 7th orbital card if browser still caches markup */
.wcard[data-wi="6"]{
  display:none !important;
}

@media(max-width:768px){
  .featured-video-sec{
    padding:58px 0 !important;
  }

  .featured-video-card{
    grid-template-columns:1fr !important;
    gap:22px !important;
    padding:18px !important;
    border-radius:22px !important;
  }

  .featured-video-copy{
    text-align:center;
  }

  .featured-video-title{
    font-size:clamp(36px, 12vw, 56px) !important;
  }

  .featured-video-copy p{
    margin-left:auto;
    margin-right:auto;
    font-size:14.5px;
  }

  .featured-video-btn{
    width:100%;
    justify-content:center;
  }

  .featured-video-thumb{
    border-radius:18px;
  }

  .featured-play{
    width:58px;
    height:58px;
    font-size:22px;
  }
}
