/* ============================================================
   Vahti — rebuilt to the measured template spec
   Container 1200 · radius 56 · Jost 72/48/24/18
   ============================================================ */

:root{
  --black:#000;
  --grey:#f0f0f0;
  --white:#fff;

  --on-dark:#fff;
  --on-dark-mute:rgba(255,255,255,.6);
  --on-light:#000;
  --on-light-mute:rgba(0,0,0,.6);

  --line-dark:rgba(255,255,255,.12);
  --line-light:rgba(0,0,0,.10);

  --display:"Jost",sans-serif;
  --ui:"Space Grotesk",sans-serif;

  --r-card:56px;
  --r-thumb:40px;
  --r-btn:44px;

  --ease:cubic-bezier(.22,.61,.36,1);

  /* Atmosphere. The template's own hero asset is pure neutral greyscale;
     set --warm-strength:0 for the exact template look, raise it for the
     warm sepia cast. */
  --warm:58,38,22;
  --warm-strength:.5;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--black);color:var(--on-dark);
  font-family:var(--display);font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-weight:400}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}

.container{width:100%;max-width:1240px;margin-inline:auto;padding-inline:20px}

/* ---------- type scale (measured) ---------- */
h1{font-size:72px;line-height:80px;letter-spacing:-1.44px}
h2{font-size:48px;line-height:52px;letter-spacing:-.96px}
h3,h4{font-size:24px;line-height:30px;letter-spacing:-.48px}
.eyebrow{display:inline-block;font-size:16px;line-height:24px;letter-spacing:-.16px;margin-bottom:20px}
p,.lede{font-size:18px;line-height:26px}

/* section shells */
section{position:relative}
.s-pain,.s-solution-intro,.s-solution,.s-services,.s-process{padding-block:120px}
.s-proof,.s-why,.s-quotes,.s-contact{padding-block:100px}

.light{background:var(--grey);color:var(--on-light)}
.white{background:var(--white);color:var(--on-light)}
.light p,.white p{color:var(--on-light-mute)}
.s-pain p,.s-proof p,.s-why p,.s-quotes p,.s-contact p,.s-hero p{color:var(--on-dark-mute)}

.head{margin-bottom:60px;max-width:820px}
.head h2{max-width:15ch}

/* ---------- shared atoms ---------- */
.tick{
  width:18px;height:18px;flex:0 0 18px;border-radius:50%;position:relative;display:inline-block;
  background:rgba(255,255,255,.10);border:1px solid var(--line-dark);
}
.tick::after{
  content:"";position:absolute;left:5.5px;top:4.5px;width:4px;height:7px;
  border:solid rgba(255,255,255,.92);border-width:0 1.5px 1.5px 0;transform:rotate(42deg);
}
.light .tick,.white .tick{background:rgba(0,0,0,.06);border-color:var(--line-light)}
.light .tick::after,.white .tick::after{border-color:rgba(0,0,0,.75)}

.pill{
  display:inline-flex;align-items:center;gap:8px;
  font-size:16px;letter-spacing:-.16px;color:#fff;
  padding:10px 20px 10px 14px;border:1px solid var(--line-dark);border-radius:999px;
  background:rgba(255,255,255,.05);backdrop-filter:blur(8px);
}
.pill-ico{width:16px;height:16px}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:52px;padding:16px 24px;border-radius:var(--r-btn);border:0;cursor:pointer;
  background:#fff;color:#000;font-family:var(--display);font-size:16px;letter-spacing:-.16px;
  position:relative;overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.btn::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0) 46%,rgba(0,0,0,.06));}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 40px -12px rgba(255,255,255,.5)}
.light .btn:hover,.white .btn:hover{box-shadow:0 14px 40px -14px rgba(0,0,0,.45)}
.btn-sm{height:44px;padding:12px 20px;font-size:15px}
.btn-block{width:100%;margin-top:6px}
.btn span{position:relative;z-index:1}

.link{display:inline-flex;align-items:center;gap:8px;font-size:16px;letter-spacing:-.16px;transition:gap .25s var(--ease)}
.link:hover{gap:13px}
.arw{width:13px;height:13px;position:relative;display:inline-block}
.arw::before{content:"";position:absolute;inset:0;margin:auto;width:9px;height:9px;border:solid currentColor;border-width:1.4px 1.4px 0 0;transform:rotate(45deg)}

/* inner glow blobs (measured: 461x190 top, 282x138 bottom, radius 999) */
.glow-t,.glow-b{position:absolute;border-radius:999px;background:#fff;pointer-events:none}
.glow-t{width:461px;height:190px;top:-120px;left:50%;transform:translateX(-50%);opacity:.64;filter:blur(60px)}
.glow-b{width:282px;height:138px;bottom:-92px;left:50%;transform:translateX(-50%);opacity:.34;filter:blur(55px)}

/* ---------- nav ---------- */
.nav-wrap{position:fixed;top:20px;left:0;right:0;z-index:50;display:flex;justify-content:center;padding-inline:20px}
.nav{
  display:flex;align-items:center;gap:40px;width:100%;max-width:760px;height:56px;
  padding:10px 24px;border-radius:999px;border:1px solid var(--line-dark);
  background:rgba(16,16,16,.7);backdrop-filter:blur(18px) saturate(140%);
  transition:background .4s,border-color .4s;
}
.nav.scrolled{background:rgba(10,10,10,.92);border-color:rgba(255,255,255,.18)}
.brand{display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.4px}
.brand-mark{width:28px;height:28px;display:grid;place-items:center}
.brand-mark svg{width:24px;height:24px}
.nav-links{display:flex;gap:28px;margin-left:auto;font-size:16px;letter-spacing:-.16px;color:var(--on-dark-mute)}
.nav-links a{transition:color .25s}
.nav-links a:hover{color:#fff}

/* ---------- 1. hero (900px) ---------- */
.s-hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;padding:150px 0 0;overflow:hidden;background:var(--black)}
/* --- hero atmosphere: bright glow anchored bottom-left, diagonal beam
       rising to upper-right, faint haze lower-right, grid + sparkles --- */
.s-hero>div[aria-hidden]{position:absolute;inset:0;pointer-events:none}

.hero-grid{
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 45%,#000 30%,transparent 78%);
          mask-image:radial-gradient(ellipse 80% 70% at 50% 45%,#000 30%,transparent 78%);
}

/* measured: brightest mass sits in the lower-left, ~35% wide x ~30% tall */
.hero-glow{
  background:
    radial-gradient(ellipse 30% 26% at 6% 94%,rgba(255,255,255,.50),transparent 66%),
    radial-gradient(ellipse 52% 42% at 0% 102%,rgba(255,255,255,.26),transparent 72%),
    radial-gradient(ellipse 90% 60% at 30% 108%,rgba(255,255,255,.10),transparent 76%);
  filter:blur(24px);
  -webkit-mask-image:linear-gradient(180deg,#000 60%,rgba(0,0,0,.35) 88%,transparent 100%);
          mask-image:linear-gradient(180deg,#000 60%,rgba(0,0,0,.35) 88%,transparent 100%);
}

/* the diagonal light shaft */
.hero-beam{overflow:hidden}
.hero-beam::before{
  content:"";position:absolute;
  left:-30%;top:-40%;width:160%;height:190%;
  transform:rotate(34deg);transform-origin:0 100%;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,.05) 20%,
    rgba(255,255,255,.16) 34%,
    rgba(255,255,255,.30) 42%,
    rgba(255,255,255,.16) 50%,
    rgba(255,255,255,.05) 64%,
    transparent 82%);
  filter:blur(30px);
}

.hero-haze{
  background:radial-gradient(ellipse 30% 26% at 84% 90%,rgba(255,255,255,.07),transparent 72%);
  filter:blur(20px);
  -webkit-mask-image:linear-gradient(180deg,#000 65%,transparent 100%);
          mask-image:linear-gradient(180deg,#000 65%,transparent 100%);
}

/* four-point sparkles */
.hero-sparkles{
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24'><path d='M12 1l1.7 8.3L22 12l-8.3 1.7L12 23l-1.7-9.3L2 12l8.3-2.7z' fill='rgba(255,255,255,.55)'/></svg>"),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16'><path d='M8 .5l1.2 5.6L15 8l-5.8 1.4L8 15.5l-1.2-6.1L1 8l5.8-1.9z' fill='rgba(255,255,255,.4)'/></svg>"),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12'><path d='M6 .5l.9 4.2L11 6l-4.1 1L6 11.5 5.1 7 1 6l4.1-1.3z' fill='rgba(255,255,255,.32)'/></svg>");
  background-repeat:no-repeat,no-repeat,no-repeat;
  background-position:88% 56%,95% 64%,80% 88%;
}

/* warm cast; set --warm-strength:0 to match the template exactly */
.hero-tint{
  background:linear-gradient(175deg,
    rgba(var(--warm),calc(.55*var(--warm-strength))) 0%,
    rgba(var(--warm),calc(.22*var(--warm-strength))) 26%,
    transparent 62%),
    radial-gradient(ellipse 60% 50% at 8% 96%,rgba(var(--warm),calc(.38*var(--warm-strength))),transparent 70%);
  mix-blend-mode:screen;
}

.hero-in{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.s-hero h1{margin-top:28px}
.s-hero .lede{margin-top:24px;max-width:730px}

.hero-checks{display:flex;gap:32px;flex-wrap:wrap;justify-content:center;margin-top:32px;font-size:16px;letter-spacing:-.16px;color:var(--on-dark-mute)}
.hero-checks li{display:flex;align-items:center;gap:10px}

/* ---------- hero CTA ---------- */
.hero-cta{margin-top:36px}

/* ---------- hero globe ---------- */
.hero-map{width:100%;max-width:1220px;padding-inline:20px;margin-top:60px;
  display:flex;flex-direction:column;gap:18px}

.globe-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.gpill{
  display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border-radius:999px;
  font-family:var(--ui);font-size:12px;text-transform:uppercase;letter-spacing:.06em;
}
.gpill.live{border:1px solid rgba(53,208,127,.28);background:rgba(53,208,127,.08);color:#b6f0d2}
.gpill.muted{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:rgba(255,255,255,.45)}
.dot-live{width:7px;height:7px;border-radius:50%;background:#35d07f;
  box-shadow:0 0 8px rgba(53,208,127,.9);animation:ghPulse 2.4s ease-in-out infinite}
@keyframes ghPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}

.globe-card{
  position:relative;width:100%;aspect-ratio:1/1;max-height:78vh;
  border-radius:56px;border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg,#0c0d10,#050506);overflow:hidden;
}
.globe-glow{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle closest-side at 42% 42%,
    rgba(96,150,255,.55) 0%, rgba(37,84,220,.42) 38%, rgba(30,66,150,.3) 62%,
    rgba(22,44,110,.12) 82%, rgba(16,36,120,0) 100%);
}
.globe{position:absolute;inset:0;width:100%;height:100%;display:block}

.gchip{
  position:absolute;display:flex;align-items:center;gap:9px;
  padding:9px 13px;border-radius:12px;
  border:1px solid rgba(255,255,255,.09);background:rgba(10,11,14,.82);
  backdrop-filter:blur(6px);
  font-family:var(--ui);font-size:12px;text-transform:uppercase;letter-spacing:.06em;
  color:rgba(255,255,255,.82);
  animation:ghDrift 8.5s ease-in-out infinite;
}
.gchip-1{right:9%;top:44%;animation-duration:8.5s;animation-delay:-2.6s}
.gchip-2{right:14%;top:16%;animation-duration:8s;animation-delay:-3.8s}
.gchip-3{left:15%;bottom:16%;animation-duration:9.5s;animation-delay:-5.1s}
@keyframes ghDrift{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.gt-ico{width:14px;height:14px;border-radius:5px;flex:0 0 14px}
.gt-ico.ok{background:#35d07f;box-shadow:0 0 12px rgba(53,208,127,.5)}
.gt-ico.warn{background:#f5b544;box-shadow:0 0 12px rgba(245,181,68,.5)}
.gt-ico.alert{background:#ff5a5a;box-shadow:0 0 12px rgba(255,90,90,.5)}

@media (prefers-reduced-motion:reduce){
  .dot-live,.gchip{animation:none!important}
}

/* ---------- grids (measured: 3x387 / 2x590, gap 20) ---------- */
.g2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}

/* ---------- dark cards (387x322, r56, pad 30) ---------- */
.card-dark{
  position:relative;overflow:hidden;min-height:322px;padding:0;
  border-radius:var(--r-card);
  background:linear-gradient(178deg,#111216 0%,#0a0b0e 46%,#050506 100%);
  border:1px solid rgba(255,255,255,.085);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 48px 90px -46px rgba(0,0,0,.9);
  display:flex;flex-direction:column;
  transition:border-color .4s,transform .4s var(--ease);
}
/* the Stake visual sits flush at the top of the card */
.stake-visual{
  height:176px;flex:none;box-sizing:border-box;padding:22px 26px 14px;
  display:flex;flex-direction:column;overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.07);
  font-family:'Poppins',sans-serif;color:#fff;
}
.card-dark:hover{border-color:rgba(255,255,255,.24);transform:translateY(-3px)}
.card-body{position:relative;z-index:1;margin-top:auto;display:flex;flex-direction:column;gap:12px;padding:20px 26px 26px}
.card-dark h4{font-weight:500}

/* ---------- 3. solution intro (floating points) ---------- */
/* measured: 980x672 stage; pills 250x92 r46 pad 20/30/20/20;
   icon tiles 48x48 with a 210deg dark gradient */
.floating{position:relative;width:980px;max-width:100%;height:672px;margin-inline:auto}

.fp{
  position:absolute;width:250px;height:92px;
  padding:20px 30px 20px 20px;border-radius:46px;
  background:rgba(255,255,255,.6);backdrop-filter:blur(12px);
  display:flex;align-items:center;gap:14px;
  font-size:18px;line-height:26px;color:#000;
  box-shadow:0 0 44px 14px rgba(255,255,255,.7);
  transition:transform .45s var(--ease);
}
.fp:hover{transform:translateY(-4px)}
.fp-ico{
  width:48px;height:48px;flex:0 0 48px;border-radius:16px;
  display:grid;place-items:center;color:#fff;
  background:linear-gradient(210deg,#2b2b2b 20%,#000 50%);
  box-shadow:
    rgba(0,0,0,.34) 0 0.6px 0.6px -0.875px,
    rgba(0,0,0,.33) 0 1.81px 1.81px -1.75px,
    rgba(0,0,0,.29) 0 4.79px 4.79px -2.625px,
    rgba(0,0,0,.15) 0 15px 15px -3.5px;
}
.fp-ico svg{width:22px;height:22px}

/* measured offsets within the 980x672 stage */
.fp1{left:375px;top:60px}
.fp2{left:16px;top:136px}
.fp3{left:714px;top:146px}
.fp4{left:16px;top:424px}
.fp5{left:714px;top:424px}
.fp6{left:375px;top:520px}

.fp-head{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;pointer-events:none;
}
.fp-head h2{margin-top:4px}
.pill-light{
  background:#fff;border:0;color:#000;
  padding:8px 16px;border-radius:99px;font-size:16px;letter-spacing:-.16px;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
}
.pill-light .pill-ico{color:#000}

/* ---------- 4. solution rows ---------- */
.sol-row{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-block:70px;border-top:1px solid var(--line-light)}
.sol-row:first-child{border-top:0;padding-top:0}
.sol-row.rev .sol-copy{order:2}
.sol-copy h2{margin-bottom:20px;max-width:14ch}
.sol-copy p{max-width:46ch}
/* container for the design-generated solution panels */
.sol-visual{
  height:340px;border-radius:var(--r-card);position:relative;overflow:hidden;
  border:1px solid rgba(255,255,255,.085);
  background:linear-gradient(178deg,#111216 0%,#0a0b0e 46%,#050506 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 48px 90px -46px rgba(0,0,0,.9);
  box-sizing:border-box;
  display:flex;flex-direction:column;
  font-family:'Poppins',sans-serif;color:#fff;
}

/* ---------- 5. services (590x538, pad 20, thumb r40) ---------- */
.svc{
  padding:20px;border-radius:var(--r-card);background:var(--grey);
  display:flex;flex-direction:column;gap:16px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.svc:hover{transform:translateY(-4px);box-shadow:0 24px 60px -28px rgba(0,0,0,.4)}
/* container for the design-generated service panels */
.thumb{
  height:300px;border-radius:var(--r-thumb);margin-bottom:8px;
  border:1px solid rgba(255,255,255,.085);
  background:linear-gradient(178deg,#111216 0%,#0a0b0e 46%,#050506 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 48px 90px -46px rgba(0,0,0,.9);
  box-sizing:border-box;padding:26px 30px;
  display:flex;flex-direction:column;
  font-family:'Poppins',sans-serif;color:#fff;overflow:hidden;
}
.svc h3{padding-inline:12px}
.svc p{padding-inline:12px;flex:1}
.svc .link{padding:0 12px 12px}

/* ---------- 6. process (387x316) ---------- */
.step{
  min-height:316px;padding:30px;border-radius:var(--r-card);
  background:var(--grey);display:flex;flex-direction:column;
  transition:transform .4s var(--ease)
}
.step:hover{transform:translateY(-4px)}
.step-n{font-size:16px;letter-spacing:-.16px;color:var(--on-light-mute)}
.step h4{margin:auto 0 14px}

/* ---------- 7. proof ---------- */
/* measured: 4 x 300px columns, 30px padding, 474px tall,
   descending stagger of 0 / 70 / 170 / 270 */
.head.center{margin-inline:auto;text-align:center;display:flex;flex-direction:column;align-items:center}
.head.center h2{max-width:none}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.stat{
  position:relative;min-height:474px;padding:30px;
  display:flex;flex-direction:column;align-items:flex-start;
  border-left:1px solid rgba(255,255,255,.10);
}
.stat:last-child{border-right:1px solid rgba(255,255,255,.10)}
.stat:nth-child(2){padding-top:100px}
.stat:nth-child(3){padding-top:200px}
.stat:nth-child(4){padding-top:300px}

/* glossy raised chip (measured shadow stack) */
.chip{
  display:inline-flex;align-items:center;justify-content:center;
  height:36px;padding:8px 12px;border-radius:18px;
  font-size:16px;font-weight:600;letter-spacing:-.16px;color:#fff;
  background:linear-gradient(180deg,#1c1c1c,#0b0b0b);
  box-shadow:
    rgba(255,255,255,.25) -0.82px 0.82px 2px 0px inset,
    rgba(0,0,0,.34) 0 0.6px 0.6px -0.875px,
    rgba(0,0,0,.33) 0 1.81px 1.81px -1.75px,
    rgba(0,0,0,.29) 0 4.79px 4.79px -2.625px,
    rgba(0,0,0,.15) 0 15px 15px -3.5px;
}
.stat-v{
  display:block;font-size:48px;line-height:52px;letter-spacing:-.96px;
  margin:32px 0 14px;font-variant-numeric:tabular-nums;
}
.stat p{max-width:30ch}

/* result pills: 387x96, radius 46, pad 20/30/20/20 */
.results{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:60px}
.no-stats .results{margin-top:0}
.res{
  display:flex;align-items:center;gap:16px;
  min-height:96px;padding:20px 30px 20px 20px;border-radius:46px;
  background:#000;border:1px solid rgba(255,255,255,.12);
  font-size:16px;line-height:22px;letter-spacing:-.16px;color:var(--on-dark-mute);
  transition:border-color .4s,transform .4s var(--ease);
}
.res:hover{border-color:rgba(255,255,255,.26);transform:translateY(-2px)}
.res-ico{
  width:56px;height:56px;flex:0 0 56px;border-radius:18px;
  display:grid;place-items:center;color:#fff;
  background:linear-gradient(180deg,#1c1c1c,#0b0b0b);
  box-shadow:rgba(255,255,255,.22) -0.8px 0.8px 2px 0 inset, rgba(0,0,0,.4) 0 6px 12px -4px;
}
.res-ico svg{width:24px;height:24px}

/* ---------- 8. why us ---------- */
/* measured: 3 x 387 columns gap 20; media 387x612 r56; cards 387x296 r56 pad 30 */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.why-col{display:flex;flex-direction:column;gap:20px}

/* container for the design-generated dashboard panel */
.why-media{
  height:auto;min-height:612px;border-radius:var(--r-card);overflow:hidden;
  border:1px solid rgba(255,255,255,.085);
  background:linear-gradient(178deg,#111216 0%,#0a0b0e 46%,#050506 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 48px 90px -46px rgba(0,0,0,.9);
  box-sizing:border-box;padding:26px 26px 24px;
  display:flex;flex-direction:column;gap:14px;
  font-family:'Poppins',sans-serif;color:#fff;
}

.why-card{
  min-height:296px;padding:30px;border-radius:var(--r-card);
  background:#0a0a0a;border:1px solid var(--line-dark);
  display:flex;flex-direction:column;justify-content:space-between;
  transition:border-color .4s,transform .4s var(--ease);
}
.why-card:hover{border-color:rgba(255,255,255,.24);transform:translateY(-3px)}
.why-ico{
  width:56px;height:56px;flex:0 0 56px;border-radius:18px;
  display:grid;place-items:center;color:#fff;
  background:linear-gradient(210deg,#2b2b2b 20%,#000 50%);
  box-shadow:
    rgba(0,0,0,.34) 0 0.6px 0.6px -0.875px,
    rgba(0,0,0,.33) 0 1.81px 1.81px -1.75px,
    rgba(0,0,0,.29) 0 4.79px 4.79px -2.625px,
    rgba(0,0,0,.15) 0 15px 15px -3.5px;
}
.why-ico svg{width:26px;height:26px}
.why-txt h4{margin-bottom:12px}

/* ---------- 9. testimonials ---------- */
.quote{
  position:relative;overflow:hidden;margin:0;padding:36px 34px;
  border-radius:var(--r-card);background:#0a0a0a;border:1px solid var(--line-dark);
  display:flex;flex-direction:column;gap:16px;min-height:280px;
  transition:border-color .4s;
}
.quote:hover{border-color:rgba(255,255,255,.24)}
.quote blockquote{margin:0;position:relative;z-index:1;font-size:24px;line-height:30px;letter-spacing:-.48px}
.quote p{position:relative;z-index:1}
.quote figcaption{display:flex;align-items:center;gap:14px;margin-top:auto;position:relative;z-index:1}
.av{width:44px;height:44px;border-radius:50%;background:linear-gradient(140deg,#3a3a3a,#111);border:1px solid var(--line-dark);flex:0 0 44px}
.q-name{display:block;font-size:16px;letter-spacing:-.16px}
.q-role{display:block;font-size:14px;color:var(--on-dark-mute)}

/* ---------- 10. contact ---------- */
.s-contact{overflow:hidden}
.contact-glow{
  position:absolute;bottom:-45%;left:50%;transform:translateX(-50%);
  width:min(1200px,140vw);height:760px;pointer-events:none;
  background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(255,255,255,.12),transparent 70%);filter:blur(26px);
}
.c-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.c-copy h2{margin-bottom:22px;max-width:12ch}
.c-checks{display:flex;flex-direction:column;gap:16px;margin-top:32px;font-size:16px;letter-spacing:-.16px;color:var(--on-dark-mute)}
.c-checks li{display:flex;align-items:center;gap:12px}

.form{
  padding:36px;border-radius:var(--r-card);
  background:rgba(255,255,255,.04);border:1px solid var(--line-dark);backdrop-filter:blur(14px);
  display:flex;flex-direction:column;gap:16px;
}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:16px;letter-spacing:-.16px;color:var(--on-dark-mute)}
.field input,.field select,.field textarea{
  font-family:var(--display);font-size:16px;color:#fff;
  background:rgba(0,0,0,.45);border:1px solid var(--line-dark);border-radius:16px;
  padding:15px 18px;outline:none;resize:vertical;width:100%;
  transition:border-color .25s,background .25s;
}
.field textarea{min-height:92px}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.3)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(255,255,255,.45);background:rgba(0,0,0,.65)}
.field select{appearance:none;cursor:pointer;padding-right:44px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='rgba(255,255,255,.5)' stroke-width='1.4' fill='none'/></svg>");
  background-repeat:no-repeat;background-position:right 18px center;}
.field select option{background:#111;color:#fff}
.form-note{font-size:14px;text-align:center;min-height:1em}
.form-reassure{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;font-size:14px;color:var(--on-dark-mute);padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.form-reassure li{display:flex;align-items:center;gap:8px}
.form-reassure .tick{width:14px;height:14px;flex-basis:14px}
.form-reassure .tick::after{left:4px;top:3px;width:3.2px;height:5.6px}

/* ---------- footer ---------- */
.footer{background:var(--black);overflow:hidden;padding-top:80px}
.foot-top{display:flex;align-items:center;gap:40px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,.08)}
.foot-top .nav-links{margin-left:auto}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:36px;padding-block:60px}
.foot-brand h3{margin-bottom:18px}
.foot-brand h3 span{color:var(--on-dark-mute)}
.foot-brand p{max-width:38ch}
.foot-meta{margin-top:14px;color:rgba(255,255,255,.4)!important}
.foot-col{display:flex;flex-direction:column;gap:14px;font-size:16px;letter-spacing:-.16px;color:var(--on-dark-mute)}
.foot-col h4{font-size:16px;letter-spacing:-.16px;color:#fff;margin-bottom:6px}
.foot-col a{transition:color .25s}
.foot-col a:hover{color:#fff}
.foot-type{
  font-size:clamp(100px,20vw,290px);line-height:.8;letter-spacing:-6px;text-align:center;
  background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0) 76%);
  -webkit-background-clip:text;background-clip:text;color:transparent;user-select:none;
}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:28px;border-top:1px solid rgba(255,255,255,.08);font-size:14px;color:var(--on-dark-mute)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  h1{font-size:56px;line-height:62px;letter-spacing:-1.12px}
  h2{font-size:38px;line-height:44px;letter-spacing:-.76px}
  .g4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1020px){
  /* the floating stage is a fixed 980px, so collapse it before it overflows */
  .floating{width:100%;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .fp{position:static;width:100%}
  .fp-head{position:static;grid-column:1/-1;order:-1;margin-bottom:20px;pointer-events:auto}
}
@media (max-width:900px){
  .s-pain,.s-solution-intro,.s-solution,.s-services,.s-process{padding-block:80px}
  .s-proof,.s-why,.s-quotes,.s-contact{padding-block:70px}
  .g3,.g2{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .stat{min-height:0;padding-top:30px!important}
  .stat:nth-child(3),.stat:nth-child(4){border-top:1px solid rgba(255,255,255,.10)}
  .results{grid-template-columns:1fr}
  .sol-row{grid-template-columns:1fr;gap:32px;padding-block:48px}
  .floating{width:100%;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .why-grid{grid-template-columns:1fr 1fr}
  .why-media{grid-column:1/-1;height:auto;min-height:612px}
  .fp{position:static;width:100%}
  .fp-head{position:static;grid-column:1/-1;order:-1;margin-bottom:20px;pointer-events:auto}
  .sol-row.rev .sol-copy{order:0}
  .c-grid{grid-template-columns:1fr;gap:40px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .nav-links{display:none}
  .foot-top{flex-wrap:wrap;gap:20px}
  :root{--r-card:40px;--r-thumb:28px}
}
@media (max-width:640px){
  .lede br{display:none}
  .hero-map{margin-top:40px;gap:12px}
  .globe-card{border-radius:32px;max-height:none}
  .gchip{font-size:10px;padding:7px 10px;gap:7px}
  .gchip-1{right:2%;top:46%}
  .gchip-2{right:4%;top:10%}
  .gchip-3{left:2%;bottom:12%}
  h1{font-size:40px;line-height:46px;letter-spacing:-.8px}
  h2{font-size:30px;line-height:36px;letter-spacing:-.6px}
  h3,h4{font-size:21px;line-height:27px}
  p,.lede{font-size:16px;line-height:24px}
  .g4,.foot-grid,.stats,.floating,.why-grid{grid-template-columns:1fr}
  .why-media{height:auto;min-height:0}
  .stat{border-left:0;border-top:1px solid rgba(255,255,255,.10)}
  .stat:last-child{border-right:0}
  .hero-checks{flex-direction:column;gap:14px;align-items:center}
  .head{margin-bottom:40px}
  .form,.quote{padding:26px 22px}
  .foot-bottom{justify-content:center;text-align:center}
  :root{--r-card:32px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}

/* ============================================================
   Blog article
   Follows the site's own dark -> light -> dark rhythm: dark
   header for identity, light body because long-form reading on
   pure black is punishing, dark CTA and footer to close.
   ============================================================ */

.read-bar{
  position:fixed;top:0;left:0;right:0;height:2px;z-index:60;
  background:#fff;transform:scaleX(0);transform-origin:0 50%;
  transition:transform .1s linear;
}

/* ---------- header ---------- */
.art-head{
  position:relative;background:var(--black);overflow:hidden;
  padding:190px 0 96px;
}
.art-glow{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 50% 44% at 50% -6%,rgba(255,255,255,.15),transparent 70%),
    radial-gradient(ellipse 34% 30% at 8% 104%,rgba(255,255,255,.10),transparent 72%);
  filter:blur(22px);
}
.art-head .hero-grid{position:absolute;inset:0}
.art-head-in{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.art-back{
  font-family:var(--ui);font-size:12px;letter-spacing:.04em;color:var(--faint);
  margin-bottom:26px;transition:color .25s;
}
.art-back::before{content:"\2190";margin-right:8px}
.art-back:hover{color:#fff}
.art-head h1{
  font-size:clamp(34px,4.6vw,58px);line-height:1.1;letter-spacing:-.022em;
  margin-top:26px;max-width:22ch;
}
.art-standfirst{
  margin-top:24px;max-width:60ch;
  font-size:19px;line-height:1.6;color:var(--on-dark-mute);
}
.art-meta{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;
  margin-top:36px;font-family:var(--ui);font-size:12.5px;color:var(--on-dark-mute);
}
.am-author{display:inline-flex;align-items:center;gap:10px;color:#fff}
.am-av{
  width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.1);border:1px solid var(--line-dark);font-size:12px;
}
.am-sep{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.28)}

/* ---------- body ---------- */
.art{background:var(--white);color:var(--on-light);padding:96px 0 100px}
.art-wrap{width:100%;max-width:640px;margin-inline:auto;padding-inline:24px}
.art-wrap > * + *{margin-top:26px}
.art p{font-size:18.5px;line-height:1.72;color:rgba(0,0,0,.74)}
.art .lead{font-size:22px;line-height:1.6;color:rgba(0,0,0,.86)}
.art h2{
  font-size:clamp(26px,2.9vw,34px);line-height:1.2;letter-spacing:-.02em;
  color:var(--on-light);margin-top:56px;
}
.art h2 + p{margin-top:20px}

.art-list,.art-steps{margin-top:22px;display:flex;flex-direction:column;gap:14px}
.art-list li{
  position:relative;padding-left:30px;
  font-size:18px;line-height:1.65;color:rgba(0,0,0,.74);
}
.art-list li::before{
  content:"";position:absolute;left:6px;top:11px;width:7px;height:7px;
  border-radius:50%;background:rgba(0,0,0,.28);
}
.art-steps{counter-reset:st;gap:22px;margin-top:26px}
.art-steps li{
  counter-increment:st;position:relative;padding-left:52px;
}
.art-steps li::before{
  content:counter(st);position:absolute;left:0;top:-2px;
  width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:var(--black);color:#fff;font-family:var(--ui);font-size:13px;
}
.art-steps b{display:block;font-weight:500;font-size:18.5px;letter-spacing:-.01em;margin-bottom:6px}
.art-steps span{display:block;font-size:17px;line-height:1.6;color:rgba(0,0,0,.62)}

.art-quote{
  margin:48px -40px 0;padding:4px 0 4px 30px;border-left:2px solid var(--black);
}
.art-quote p{
  font-size:23px;line-height:1.48;letter-spacing:-.015em;color:var(--on-light);
}

.callout{
  margin:36px -32px 0;padding:26px 30px;border-radius:24px;
  background:var(--grey);border:1px solid rgba(0,0,0,.07);
}
.callout-k{
  display:block;font-family:var(--ui);font-size:11px;text-transform:uppercase;
  letter-spacing:.08em;color:rgba(0,0,0,.45);margin-bottom:10px;
}
.callout p{font-size:17px;line-height:1.62;color:rgba(0,0,0,.78)}

.art-author{
  display:flex;gap:18px;align-items:flex-start;
  margin-top:64px;padding-top:30px;border-top:1px solid rgba(0,0,0,.1);
}
.aa-av{
  width:48px;height:48px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:var(--black);color:#fff;font-size:18px;
}
.art-author b{display:block;font-weight:500;font-size:17px;margin-bottom:5px}
.art-author span{display:block;font-size:16px;line-height:1.6;color:rgba(0,0,0,.62)}

/* ---------- related ---------- */
.art-more{padding-block:110px}
/* Image-led, borderless. The card is the picture plus the words,
   not a box with things inside it. */
.post{display:flex;flex-direction:column;gap:0;background:none;border:0;padding:0;transition:none}
.post:hover{transform:none;box-shadow:none}
.post-media{
  position:relative;display:block;aspect-ratio:16/10;border-radius:20px;overflow:hidden;
  background:#111216;
}
.post-media img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s var(--ease),opacity .3s}
.post-media.fell-back img{display:none}
.post:hover .post-media img{transform:scale(1.03)}

/* Typographic tile when there is no photograph. Tonal, not rainbow. */
.mtile{
  position:absolute;inset:0;display:none;align-items:flex-end;
  padding:20px 22px;font-size:26px;line-height:1.06;letter-spacing:-.02em;
  color:rgba(255,255,255,.30);
}
.post-media.fell-back .mtile,.feat-vis:not(.has-img) .mtile{display:flex}
.post-media[data-tone="a"],.feat-vis[data-tone="a"]{background:linear-gradient(155deg,#1a1b20,#0a0a0c)}
.post-media[data-tone="b"],.feat-vis[data-tone="b"]{background:linear-gradient(155deg,#161a1e,#08090b)}
.post-media[data-tone="c"],.feat-vis[data-tone="c"]{background:linear-gradient(155deg,#1c1a17,#0b0a09)}
.post-media[data-tone="d"],.feat-vis[data-tone="d"]{background:linear-gradient(155deg,#171a19,#090a0a)}
.post-media[data-tone="e"],.feat-vis[data-tone="e"]{background:linear-gradient(155deg,#191820,#0a0a0d)}

.post-body{display:flex;flex-direction:column;gap:9px;padding:18px 2px 0}
.post h3{
  font-size:20px;line-height:1.24;letter-spacing:-.018em;color:var(--on-light);
  transition:opacity .2s;
}
.post:hover h3{opacity:.62}
.post p{font-size:15.5px;line-height:1.6;color:rgba(0,0,0,.58);flex:1}
.post-f{
  display:flex;align-items:center;gap:9px;margin-top:3px;
  font-family:var(--ui);font-size:11.5px;color:rgba(0,0,0,.4);
}
.post-f i{width:3px;height:3px;border-radius:50%;background:rgba(0,0,0,.2);flex:none}
.post-k{font-family:var(--ui);font-size:11px;letter-spacing:.04em;color:rgba(0,0,0,.45)}

/* ---------- cta ---------- */
.art-cta{position:relative;background:var(--black);padding:110px 0 120px;overflow:hidden}
.art-cta-in{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.art-cta h2{font-size:clamp(28px,3.6vw,44px);line-height:1.14;letter-spacing:-.02em;max-width:18ch}
.art-cta p{margin-top:20px;max-width:48ch;font-size:18px;line-height:1.6;color:var(--on-dark-mute)}
.art-cta .btn{margin-top:34px}

@media (max-width:900px){
  .art-head{padding:150px 0 72px}
  .art{padding:64px 0 70px}
  .art-more{padding-block:72px}
  .art-cta{padding:76px 0 84px}
}
@media (max-width:760px){
  .art-quote,.callout{margin-left:0;margin-right:0}
}
@media (max-width:640px){
  .art p{font-size:17px}
  .art .lead{font-size:19px}
  .art-quote p{font-size:20px}
  .art-meta{gap:10px}
  .art-steps li{padding-left:44px}
}

/* ============================================================
   Blog index
   ============================================================ */
.blog-head{position:relative;background:var(--black);overflow:hidden;padding:186px 0 88px}
.blog-head .hero-grid{position:absolute;inset:0}
.blog-head-in{
  position:relative;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;
}
.bh-k{
  display:block;font-family:var(--ui);font-size:11px;text-transform:uppercase;
  letter-spacing:.16em;color:var(--faint);margin-bottom:20px;
}
.blog-head h1{font-size:clamp(38px,5.4vw,66px);line-height:1.04;letter-spacing:-.028em}
.blog-standfirst{
  max-width:34ch;font-size:16px;line-height:1.6;color:var(--on-dark-mute);
  padding-bottom:8px;
}

.blog{padding:88px 0 110px}

/* ---------- featured ---------- */
.feat[hidden]{display:none}
.feat{
  display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:center;
  margin-bottom:64px;padding-bottom:58px;border-bottom:1px solid rgba(0,0,0,.1);
}
.feat-vis{
  position:relative;aspect-ratio:16/10;border-radius:24px;overflow:hidden;
  background-size:cover;background-position:center;
}
.feat-vis .mtile{font-size:40px;padding:26px 28px}
.feat-txt{display:flex;flex-direction:column;gap:15px}
.feat-tag{
  align-self:flex-start;font-family:var(--ui);font-size:10px;text-transform:uppercase;
  letter-spacing:.12em;color:rgba(0,0,0,.5);
}
.feat-txt h2{
  font-size:clamp(26px,3.1vw,38px);line-height:1.14;letter-spacing:-.024em;color:var(--on-light);
}
.feat-txt p{font-size:17px;line-height:1.62;color:rgba(0,0,0,.6);max-width:50ch}
.feat-meta{
  display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap;
  font-family:var(--ui);font-size:11.5px;color:rgba(0,0,0,.42);
}
.feat-meta i{width:3px;height:3px;border-radius:50%;background:rgba(0,0,0,.22)}
.feat-go{margin-left:auto;display:inline-flex;align-items:center;gap:8px;
  color:var(--on-light);font-size:13px;transition:gap .25s var(--ease)}
.feat-go em{width:11px;height:11px;position:relative;display:inline-block}
.feat-go em::before{content:"";position:absolute;inset:0;margin:auto;width:8px;height:8px;
  border:solid currentColor;border-width:1.4px 1.4px 0 0;transform:rotate(45deg)}
.feat:hover .feat-go{gap:13px}
.feat:hover .feat-txt h2{opacity:.62;transition:opacity .2s}

/* ---------- filters: text with a rule, not pills ---------- */
.blog-bar{
  display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-bottom:38px;
}
.bchips{display:flex;gap:22px;flex-wrap:wrap}
.bchip{
  background:none;border:0;padding:0 0 7px;cursor:pointer;
  font-family:var(--display);font-size:15px;color:rgba(0,0,0,.42);
  border-bottom:1px solid transparent;transition:color .2s,border-color .2s;
}
.bchip:hover{color:rgba(0,0,0,.75)}
.bchip.on{color:var(--on-light);border-bottom-color:var(--on-light)}
.blog-count{font-family:var(--ui);font-size:11.5px;color:rgba(0,0,0,.38)}

.posts{align-items:start;row-gap:46px!important}
.blog-empty{text-align:center;padding:56px 0;color:rgba(0,0,0,.5);font-size:16px}

@media (max-width:900px){
  .blog-head{padding:146px 0 64px}
  .blog-head-in{grid-template-columns:1fr;gap:22px;align-items:start}
  .blog-standfirst{padding-bottom:0}
  .blog{padding:60px 0 76px}
  .feat{grid-template-columns:1fr;gap:24px;margin-bottom:44px;padding-bottom:40px}
  .feat-go{margin-left:0}
  .bchips{gap:16px}
  .bchip{font-size:14px}
}

/* honeypot, never shown to a person */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
