/* ════════════════════════════════════════════════════════════
   COSMO — v4.2
   Two-theme token system. Every component reads --bg/--fg/--line
   /--card, so a section only declares data-theme="dark|light"
   and everything inside adapts. Sections alternate strictly.
   ════════════════════════════════════════════════════════════ */

/* ── brand + scale (theme independent) ───────────────────── */
:root{
  --o:#f26522;                 /* carried from v3 */
  --o-lt:#ff7c3f;
  --o-dk:#d9541a;
  --o-soft:rgba(242,101,34,.14);

  --disp:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;
  --ui:'Inter Tight',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;

  /* one type scale, used everywhere — nothing sets an ad-hoc size */
  --fs-display:clamp(42px,7.6vw,118px);
  --fs-h2:clamp(31px,4.9vw,66px);
  --fs-h3:clamp(23px,2.3vw,33px);
  --fs-h4:clamp(18px,1.5vw,21px);
  --fs-lede:clamp(16px,1.12vw,18.5px);
  --fs-body:16.5px;
  --fs-sm:15px;
  --fs-label:11px;             /* mono labels never go below this */

  --e:cubic-bezier(.16,1,.3,1);
  --e-io:cubic-bezier(.65,0,.35,1);

  --r:16px;
  --gut:clamp(20px,5vw,76px);
  --maxw:1360px;
}

/* ── the two themes ──────────────────────────────────────── */
[data-theme="dark"]{
  --bg:#0c0c0f;
  --bg-deep:#08080a;
  --fg:#f7f5f2;
  --muted:#9ca0a6;             /* 6.9:1 on --bg — readable body text */
  --faint:#71757b;
  --line:rgba(255,255,255,.11);
  --line-2:rgba(255,255,255,.22);
  --card:#15151a;
  --card-2:#1d1d24;
  --shadow:0 40px 90px -40px rgba(0,0,0,.9);
}
[data-theme="light"]{
  --bg:#f7f5f1;
  --bg-deep:#eeeae4;
  --fg:#131216;
  --muted:#605b55;             /* 7.1:1 on --bg */
  --faint:#8a847c;
  --line:rgba(19,18,22,.12);
  --line-2:rgba(19,18,22,.24);
  --card:#ffffff;
  --card-2:#fffefc;
  --shadow:0 40px 84px -40px rgba(40,33,26,.34);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;scrollbar-gutter:stable}
body{
  background:#0c0c0f;color:#f7f5f2;
  font-family:var(--ui);font-size:var(--fs-body);line-height:1.68;font-weight:400;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
ul{list-style:none}
button,input{font:inherit;color:inherit;background:none;border:none}
button{cursor:pointer}
::selection{background:var(--o);color:#fff}
section[id],div[id]{scroll-margin-top:96px}
:focus-visible{outline:2px solid var(--o);outline-offset:3px;border-radius:6px}

/* grain */
body::after{
  content:'';position:fixed;inset:0;z-index:400;pointer-events:none;opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:190px;
}

/* ── section shell ───────────────────────────────────────── */
.sec{background:var(--bg);color:var(--fg);position:relative}
.sec+.sec{border-top:1px solid var(--line)}
.shell{max-width:var(--maxw);margin:0 auto;padding:clamp(78px,9.5vw,152px) var(--gut)}

/* ── type primitives ─────────────────────────────────────── */
h1,h2,h3,h4{font-family:var(--disp);letter-spacing:-.035em;line-height:.98}
.t-display{font-size:var(--fs-display);font-weight:800;letter-spacing:-.045em;line-height:.94}
.t-h2{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.04em;line-height:.99}
.t-h3{font-size:var(--fs-h3);font-weight:700;letter-spacing:-.03em;line-height:1.1}
.t-h4{font-size:var(--fs-h4);font-weight:700;letter-spacing:-.025em;line-height:1.2}

.lbl{font-family:var(--mono);font-size:var(--fs-label);font-weight:400;letter-spacing:.16em;
     text-transform:uppercase;line-height:1.5}
.kicker{color:var(--o);display:inline-flex;align-items:center;gap:11px}
.kicker::before{content:'';width:24px;height:1px;background:currentColor;opacity:.65}
.kicker.mid::before{display:none}

.lede{color:var(--muted);font-size:var(--fs-lede);line-height:1.78}
.body-sm{color:var(--muted);font-size:var(--fs-sm);line-height:1.75}

/* consistent vertical rhythm for every section head */
.head{margin-bottom:clamp(38px,4.6vw,66px)}
.head-split{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(26px,5vw,80px);align-items:end}
.head h2{margin-top:20px}
.head-mid{text-align:center;max-width:680px;margin:0 auto clamp(38px,4.6vw,66px)}
.head-mid h2{margin:20px 0 18px}

/* ── reveal engine ───────────────────────────────────────── */
[data-rv]{opacity:0;transform:translateY(28px);transition:opacity .85s var(--e),transform .95s var(--e);
          transition-delay:var(--d,0ms)}
[data-rv].in{opacity:1;transform:none}
[data-rv="scale"]{transform:translateY(30px) scale(.975)}

.ln{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.wd{display:inline-block;transform:translateY(106%) rotate(2deg);opacity:0;
    transition:transform 1s var(--e),opacity .75s var(--e);
    transition-delay:calc(var(--i) * 52ms + var(--d,0ms))}
.in .wd{transform:none;opacity:1}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
                       transition-duration:.001ms!important;transition-delay:0ms!important}
  [data-rv],.wd{opacity:1!important;transform:none!important}
}

/* ══ BUTTONS — two variants, both theme-aware ═════════════ */
.btn{
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--ui);font-size:14px;font-weight:600;letter-spacing:-.005em;line-height:1;
  padding:17px 28px;border-radius:100px;border:1px solid transparent;
  transition:color .4s var(--e),border-color .4s var(--e),box-shadow .4s var(--e);
}
.btn::before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;
             transform:translateY(101%);transition:transform .55s var(--e)}
.btn:hover::before{transform:translateY(0)}
.btn .ar{transition:transform .45s var(--e)}
.btn:hover .ar{transform:translateX(4px)}

.btn-o{background:var(--o);color:#fff;box-shadow:0 12px 32px -14px rgba(242,101,34,.85)}
.btn-o::before{background:var(--fg)}
.btn-o:hover{color:var(--bg)}

.btn-line{border-color:var(--line-2);color:var(--fg)}
.btn-line::before{background:var(--fg)}
.btn-line:hover{color:var(--bg);border-color:var(--fg)}

.btn-lg{padding:20px 36px;font-size:15px}
.btn-full{width:100%}

/* ══ CURSOR ═══════════════════════════════════════════════ */
.cur,.cur-dot{position:fixed;top:0;left:0;z-index:500;pointer-events:none;border-radius:50%;opacity:0}
.cur{width:32px;height:32px;border:1px solid rgba(242,101,34,.9);margin:-16px 0 0 -16px;
     transition:width .3s var(--e),height .3s var(--e),margin .3s var(--e),background .3s var(--e),
                opacity .25s,border-color .3s}
.cur-dot{width:5px;height:5px;background:var(--o);margin:-2.5px 0 0 -2.5px;transition:opacity .25s}
body.cur-on .cur,body.cur-on .cur-dot{opacity:1}
body.cur-lg .cur{width:62px;height:62px;margin:-31px 0 0 -31px;background:rgba(242,101,34,.15);border-color:transparent}
body.cur-lg .cur-dot{opacity:0}
@media(hover:none),(pointer:coarse){.cur,.cur-dot{display:none}}

/* ══ SCROLL PROGRESS ══════════════════════════════════════ */
.prog{position:fixed;top:0;left:0;right:0;height:2px;z-index:300;transform:scaleX(0);transform-origin:0 50%;
      background:linear-gradient(90deg,var(--o-dk),var(--o),var(--o-lt))}

/* ══ TICKER ═══════════════════════════════════════════════ */
.ticker{overflow:hidden;position:relative;display:flex}
.ticker-in{display:flex;flex-shrink:0;align-items:center;animation:slide 34s linear infinite;will-change:transform}
.ticker:hover .ticker-in{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-100%)}}
.ticker span{white-space:nowrap}

/* ══ HEADER ═══════════════════════════════════════════════ */
.hdr{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:0 var(--gut);height:80px;color:#f7f5f2;
  border-bottom:1px solid transparent;
  transition:transform .55s var(--e),background .45s var(--e),height .45s var(--e),border-color .45s var(--e);
}
.hdr.stuck{background:rgba(12,12,15,.74);backdrop-filter:blur(20px) saturate(1.5);
           -webkit-backdrop-filter:blur(20px) saturate(1.5);border-bottom-color:rgba(255,255,255,.11);height:70px}
.hdr.hide{transform:translateY(-102%)}

.brand{display:flex;align-items:center;gap:12px}
.brand-logo{height:36px;width:auto;display:block;transition:opacity .35s var(--e),transform .55s var(--e)}
.brand:hover .brand-logo{opacity:.85;transform:scale(1.02)}
.ftr .brand-logo{height:42px}
.mark{position:relative;width:40px;height:40px;border-radius:13px;background:var(--o);flex-shrink:0;
      display:grid;place-items:center;font-family:var(--disp);font-weight:800;font-size:19px;color:#fff;
      transition:transform .65s var(--e),border-radius .65s var(--e)}
.brand:hover .mark{transform:rotate(-8deg) scale(1.06);border-radius:50%}
.mark::after{content:'';position:absolute;inset:0;border-radius:inherit;animation:halo 3.4s var(--e-io) infinite}
@keyframes halo{0%{box-shadow:0 0 0 0 rgba(242,101,34,.42)}70%,100%{box-shadow:0 0 0 15px rgba(242,101,34,0)}}
.brand-t{display:flex;flex-direction:column;line-height:1}
.brand-t b{font-family:var(--disp);font-weight:800;font-size:17px;letter-spacing:-.03em}
.brand-t i{font-family:var(--mono);font-style:normal;font-size:9px;letter-spacing:.26em;
           color:rgba(247,245,242,.55);margin-top:6px}

.nav{display:flex;align-items:center;gap:2px;padding:5px;border:1px solid rgba(255,255,255,.11);
     border-radius:100px;background:rgba(255,255,255,.04)}
.nav a{position:relative;padding:9px 16px;border-radius:100px;font-size:14px;font-weight:500;
       color:rgba(247,245,242,.74);transition:color .35s var(--e)}
.nav a::before{content:'';position:absolute;inset:0;border-radius:100px;background:rgba(255,255,255,.1);
               transform:scale(.7);opacity:0;transition:transform .4s var(--e),opacity .3s var(--e)}
.nav a:hover{color:#fff}
.nav a:hover::before{transform:scale(1);opacity:1}
.nav a span{position:relative}

/* dropdown */
.nav-item{position:relative;display:flex}
.drop-trigger{display:inline-flex;align-items:center;gap:6px}
.drop-caret{position:relative;width:11px;height:11px;color:currentColor;opacity:.72;
            transition:transform .35s var(--e),opacity .3s}
.nav-item:hover .drop-caret,.nav-item:focus-within .drop-caret{transform:rotate(-180deg);opacity:1}
.drop{position:absolute;top:calc(100% + 14px);left:50%;z-index:60;min-width:224px;padding:8px;
      transform:translateX(-50%) translateY(8px);
      background:rgba(12,12,15,.9);backdrop-filter:blur(20px) saturate(1.5);
      -webkit-backdrop-filter:blur(20px) saturate(1.5);
      border:1px solid rgba(255,255,255,.12);border-radius:18px;
      box-shadow:0 26px 55px -22px rgba(0,0,0,.75);
      opacity:0;visibility:hidden;pointer-events:none;
      transition:opacity .3s var(--e),transform .38s var(--e),visibility .3s}
.nav-item:hover .drop,.nav-item:focus-within .drop{opacity:1;visibility:visible;pointer-events:auto;
      transform:translateX(-50%) translateY(0)}
/* hover bridge across the gap */
.drop::before{content:'';position:absolute;left:0;right:0;top:-16px;height:16px}
.nav .drop a{display:flex;align-items:center;justify-content:space-between;gap:18px;width:auto;
             padding:12px 14px;border-radius:11px;font-size:14px;font-weight:500;
             color:rgba(247,245,242,.76);transition:background .3s var(--e),color .3s}
.nav .drop a::before{display:none}
.nav .drop a:hover{background:rgba(255,255,255,.08);color:#fff}
.nav .drop a em{font-family:var(--mono);font-style:normal;font-size:10px;letter-spacing:.14em;
                text-transform:uppercase;color:var(--o);opacity:.72}
/* mobile menu group caption */
.menu .ml-group{display:block;width:max-content;margin:22px 0 2px;font-family:var(--mono);
                font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--o);opacity:0;
                transform:translateY(26px);transition:opacity .55s var(--e),transform .65s var(--e)}
body.menu-on .menu .ml-group{opacity:.8;transform:none;transition-delay:calc(var(--i) * 52ms + 110ms)}
.menu a.ml.sub{font-size:clamp(26px,5vw,50px)}

.hdr-cta{display:flex;align-items:center;gap:12px}
.hdr-phone{font-family:var(--mono);font-size:13px;color:rgba(247,245,242,.72);transition:color .35s}
.hdr-phone:hover{color:var(--o)}

.burger{display:none;width:46px;height:46px;border:1px solid rgba(255,255,255,.16);border-radius:50%;place-items:center}
.burger i{display:block;width:17px;height:1.5px;background:#f7f5f2;border-radius:2px;
          transition:transform .45s var(--e)}
.burger i+i{margin-top:5px}
body.menu-on .burger i:first-child{transform:translateY(3.25px) rotate(45deg)}
body.menu-on .burger i:last-child{transform:translateY(-3.25px) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:190;background:#08080a;color:#f7f5f2;
      display:flex;flex-direction:column;justify-content:center;padding:110px var(--gut) 40px;
      clip-path:inset(0 0 100% 0);transition:clip-path .75s var(--e);pointer-events:none}
body.menu-on .menu{clip-path:inset(0 0 0 0);pointer-events:auto}
.menu a.ml{display:flex;align-items:baseline;gap:14px;width:max-content;padding:9px 0;
           font-family:var(--disp);font-weight:800;font-size:clamp(32px,6.6vw,68px);letter-spacing:-.045em;
           opacity:0;transform:translateY(26px);transition:opacity .55s var(--e),transform .65s var(--e),color .3s}
body.menu-on .menu a.ml{opacity:1;transform:none;transition-delay:calc(var(--i) * 52ms + 110ms)}
.menu a.ml:hover{color:var(--o)}
.menu a.ml em{font-family:var(--mono);font-style:normal;font-size:12px;color:var(--o);opacity:.75}
.menu-foot{margin-top:44px;padding-top:26px;border-top:1px solid rgba(255,255,255,.11);
           display:flex;flex-wrap:wrap;gap:14px 30px;color:rgba(247,245,242,.55)}
.menu-foot a{color:var(--o)}

/* ══ 01 · HERO — dark ═════════════════════════════════════ */
/* grid, not flex: a column flex container lets a wide child (the marquee)
   size to max-content and drag the whole hero out, and any stray
   align-items would shift the copy sideways. Grid tracks can do neither. */
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:100%;
      grid-template-rows:1fr auto;align-items:end;justify-items:start;
      overflow:hidden;background:var(--bg-deep);padding-top:104px}
.hero-media{position:absolute;inset:-6% 0 0;z-index:0;will-change:transform}
.hero-media img{width:100%;height:112%;object-fit:cover;object-position:center 42%;
                filter:grayscale(.5) contrast(1.1) brightness(.52);
                transform:scale(1.1);opacity:0;transition:opacity 1.5s var(--e),transform 2.2s var(--e)}
/* state class is namespaced: a bare .go would collide with the shared
   "read on" link class and turn the hero into an inline-flex box */
.hero.is-loaded .hero-media img{opacity:1;transform:scale(1)}
.hero-tint{position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(78% 54% at 76% 24%,rgba(242,101,34,.28),transparent 62%),
    linear-gradient(180deg,rgba(8,8,10,.9) 0%,rgba(8,8,10,.36) 32%,rgba(8,8,10,.8) 72%,var(--bg-deep) 100%);
}
.hero-grid{position:absolute;inset:0;z-index:2;opacity:.45;
  background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);
  background-size:clamp(62px,7vw,112px) clamp(62px,7vw,112px);
  -webkit-mask-image:radial-gradient(68% 58% at 50% 45%,#000 18%,transparent 76%);
          mask-image:radial-gradient(68% 58% at 50% 45%,#000 18%,transparent 76%);
}
.hero-spot{position:absolute;inset:0;z-index:3;pointer-events:none;
  background:radial-gradient(400px circle at var(--mx,50%) var(--my,38%),rgba(242,101,34,.2),transparent 62%)}

.rain{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.rain i{position:absolute;top:-6%;width:2px;border-radius:2px;opacity:0;animation:drip linear infinite;
        background:linear-gradient(180deg,transparent,rgba(255,255,255,.5),rgba(255,255,255,.04))}
@keyframes drip{0%{transform:translateY(0);opacity:0}10%{opacity:.5}85%{opacity:.26}100%{transform:translateY(118vh);opacity:0}}

/* left-aligned to the same gutter as the header and info strip — not a centred
   max-width box, which drifts the copy inward on wide screens */
.hero-in{position:relative;z-index:6;width:100%;max-width:var(--maxw);margin:0;min-width:0;
         align-self:end;justify-self:start;
         padding:0 var(--gut) clamp(30px,4vw,54px)}
.hero h1{margin-top:22px}
.hero h1 .o{color:var(--o)}
.hero-sub{max-width:460px;margin-top:clamp(26px,3vw,38px)}
.hero-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(24px,2.6vw,32px)}

/* stat item — the hero got too busy, these now live in the proof band */
.stat b{display:block;font-family:var(--disp);font-weight:800;font-size:clamp(36px,4.2vw,58px);
        letter-spacing:-.045em;line-height:.9;font-variant-numeric:tabular-nums;white-space:nowrap}
/* $ sits on the baseline beside the figure, not floated above it */
.stat b sup{font-size:.52em;vertical-align:baseline;position:static;color:var(--o);margin-right:1px}
/* direct child only — this must not catch the counting <span> inside <b> */
.stat>span{display:block;color:var(--faint);margin-top:12px;max-width:132px}

.proof{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(38px,4.4vw,64px);
       padding-top:clamp(30px,3.4vw,46px);border-top:1px solid var(--line)}
.proof .stat{padding-left:clamp(18px,2.6vw,40px);border-left:1px solid var(--line)}
.proof .stat:first-child{padding-left:0;border-left:none}

.hero-tick{position:relative;z-index:6;width:100%;max-width:100%;min-width:0;justify-self:stretch;
           border-top:1px solid rgba(255,255,255,.11);
           border-bottom:1px solid rgba(255,255,255,.11);background:rgba(8,8,10,.55);
           backdrop-filter:blur(8px);padding:15px 0;color:rgba(247,245,242,.66)}
.hero-tick .ticker-in{gap:32px;padding-right:32px}
.hero-tick b{color:var(--o);font-weight:400}
.hero-tick .pip{width:5px;height:5px;border-radius:50%;background:var(--o);flex-shrink:0;opacity:.8}

.scrollcue{position:absolute;right:var(--gut);bottom:112px;z-index:6;display:flex;flex-direction:column;
           align-items:center;gap:12px;color:var(--faint);writing-mode:vertical-rl;letter-spacing:.28em}
.scrollcue::after{content:'';width:1px;height:54px;background:linear-gradient(var(--o),transparent);
                  animation:cue 2.4s var(--e-io) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}
               55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ══ INFO STRIP — dark, tied to hero ══════════════════════ */
.info{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.info>*{position:relative;overflow:hidden;padding:26px var(--gut);border-right:1px solid var(--line);
        display:flex;flex-direction:column;gap:8px}
.info>*:last-child{border-right:none}
.info>*::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,.04);
                transform:translateY(100%);transition:transform .5s var(--e)}
.info a:hover::before{transform:none}
.info em{position:relative;font-style:normal;color:var(--faint)}
.info strong{position:relative;font-weight:500;font-size:15.5px;letter-spacing:-.012em}
.info a strong{color:var(--o)}

/* ══ 02 · BENTO — light ═══════════════════════════════════ */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.cell{
  position:relative;overflow:hidden;border-radius:var(--r);border:1px solid var(--line);
  background:var(--card);padding:clamp(26px,2.5vw,40px);display:flex;flex-direction:column;
  transition:transform .55s var(--e),border-color .45s var(--e),box-shadow .55s var(--e);
}
.cell:hover{transform:translateY(-4px);border-color:var(--line-2);box-shadow:var(--shadow)}
.cell::before{content:'';position:absolute;inset:0;opacity:0;pointer-events:none;
              transition:opacity .4s var(--e);
              background:radial-gradient(300px circle at var(--cx,50%) var(--cy,50%),var(--o-soft),transparent 66%)}
.cell:hover::before{opacity:1}
.cell::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;transform:scaleX(0);
             transform-origin:left;transition:transform .75s var(--e);
             background:linear-gradient(90deg,var(--o),rgba(242,101,34,0))}
.cell:hover::after{transform:scaleX(1)}
.cell>*{position:relative}
.cell h3{margin-bottom:14px}
.cell p{max-width:44ch}
/* shared "read on" affordance — used by bento cells and journal cards */
.go{margin-top:auto;padding-top:28px;display:inline-flex;align-items:center;gap:9px;width:max-content;
    color:var(--fg);transition:color .35s var(--e)}
.go:hover{color:var(--o)}
.go .ar{transition:transform .45s var(--e)}
.go:hover .ar{transform:translateX(5px)}

/* photo cell keeps a dark surface inside the light section — intentional anchor */
.cell-a{grid-column:span 3;grid-row:span 2;min-height:clamp(370px,37vw,520px);justify-content:flex-end;
        padding:0;background:#0c0c0f;border-color:rgba(255,255,255,.1)}
.cell-a:hover{border-color:rgba(255,255,255,.2)}
.cell-a .shot{position:absolute;inset:0;z-index:0}
.cell-a .shot img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);
                  filter:grayscale(.35) brightness(.6) contrast(1.08);
                  transition:transform 1.3s var(--e),filter .9s var(--e)}
.cell-a:hover .shot img{transform:scale(1.1);filter:grayscale(0) brightness(.72) contrast(1.04)}
.cell-a .shot::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,8,10,.12),rgba(8,8,10,.7) 52%,rgba(8,8,10,.96))}
.cell-a .inner{position:relative;z-index:2;padding:clamp(26px,2.5vw,40px);color:#f7f5f2}
.cell-a .inner h3{margin-top:22px}
.cell-a .inner p{color:#a4a8ae}
.cell-a .go{color:#f7f5f2}

.cell-b{grid-column:span 3}
.cell-c{grid-column:span 2}
.cell-d{grid-column:span 1;background:var(--o);border-color:var(--o);color:#fff;
        justify-content:space-between;gap:22px}
.cell-d:hover{border-color:var(--o)}
.cell-d::before,.cell-d::after{display:none}
.cell-d em{font-style:normal;opacity:.85}
.cell-d .num{font-family:var(--disp);font-weight:800;font-size:clamp(20px,1.75vw,24px);
             letter-spacing:-.035em;line-height:1.15}
.cell-d .go{color:#fff;padding-top:0}
.cell-d .go:hover{color:#fff}

.drip{width:13px;height:17px;border-radius:0 62% 62% 62%;transform:rotate(45deg);flex-shrink:0;
      background:linear-gradient(140deg,rgba(255,255,255,.85),var(--o))}

/* ══ 03 · TUNNEL — dark, scroll-pinned ════════════════════ */
.track{height:340vh;position:relative}
.stage{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;
       justify-content:center;padding:clamp(86px,12vh,104px) var(--gut) 0}
.stage-in{max-width:var(--maxw);margin:0 auto;width:100%}
.stage::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(66% 52% at calc(8% + var(--p,0) * 78%) 64%,
             rgba(242,101,34,calc(.05 + var(--p,0) * .15)),transparent 60%)}

.t-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:22px;
        margin-bottom:clamp(16px,3vh,42px)}
.t-head h2{margin-top:18px}
.t-count{color:var(--faint);display:flex;align-items:baseline;gap:8px}
.t-count b{color:var(--o);font-weight:400;font-size:32px;letter-spacing:-.03em;
           font-variant-numeric:tabular-nums;min-width:56px;text-align:right}

.panels{display:grid;min-height:clamp(150px,22vh,232px)}
.panel{grid-area:1/1;max-width:560px;opacity:0;transform:translateY(20px);pointer-events:none;
       transition:opacity .5s var(--e),transform .65s var(--e)}
.panel.on{opacity:1;transform:none;pointer-events:auto}
.panel .no{color:var(--o);display:block;margin-bottom:16px}
.panel h3{font-size:clamp(28px,3.3vw,48px);font-weight:800;letter-spacing:-.04em;margin-bottom:16px}
.panel p{color:var(--muted);font-size:var(--fs-lede);line-height:1.78}

/* vh-based so the pinned stage never outgrows a short viewport */
.rail{position:relative;margin-top:clamp(14px,2vh,32px);height:clamp(130px,22vh,280px)}
.rail-line{position:absolute;left:0;right:0;bottom:32px;height:1px;background:var(--line)}
.rail-fill{position:absolute;left:0;bottom:32px;height:1px;background:var(--o);
           width:calc(var(--p,0) * 100%);box-shadow:0 0 14px 1px rgba(242,101,34,.55)}
.rail-ticks{position:absolute;left:0;right:0;bottom:32px;display:flex;justify-content:space-between}
.rail-ticks i{width:1px;height:11px;background:var(--line-2);transform:translateY(-100%)}

/* the car — nose points RIGHT, travelling left → right.
   left + translateX are paired so it starts flush left and ends flush
   right at any size, rather than a fixed % that overflows when large. */
.car{position:absolute;bottom:32px;z-index:2;
     width:min(27vw,46vh,460px);      /* vh term keeps it inside the rail on short screens */
     left:calc(var(--p,0) * 100%);
     transform:translate(calc(var(--p,0) * -100%),7.7%);
     will-change:left,transform}
.car svg{display:block;width:100%;height:auto;overflow:visible}
.car .edge{stroke:rgba(255,255,255,.24);stroke-width:1.5;stroke-linejoin:round}
.car .seam{stroke:rgba(0,0,0,.5);stroke-width:1.4}
.car .belt{stroke:rgba(255,255,255,.2);stroke-width:1.3}
.car .crease{stroke:rgba(255,255,255,.09);stroke-width:2}
.car .sill{fill:rgba(0,0,0,.4)}
.car .handle{fill:rgba(255,255,255,.32)}
.car .mirror{fill:#23232b;stroke:rgba(255,255,255,.24);stroke-width:1.2}
.car .lamp-f{fill:#ffdfb4}
.car .lamp-r{fill:#e04a2c}
.car .caliper{fill:none;stroke:var(--o);stroke-width:3;stroke-linecap:round;opacity:.85}
.car .rim-g{transform-box:fill-box;transform-origin:center;animation:spin 1.5s linear infinite}
/* wet-paint highlight, only once it's through the dry */
.car .sheen{opacity:0}
.stage[data-phase="3"] .car .sheen{animation:sheen 2.4s var(--e) infinite}
@keyframes sheen{0%{opacity:0;transform:translateX(-130px)}
                 25%{opacity:.9}65%{opacity:.45}100%{opacity:0;transform:translateX(520px)}}
/* road film clears once the car is through the brushes */
.car .grime{transition:opacity 1s var(--e)}
.stage[data-phase="3"] .car .grime{opacity:0}

/* cylindrical brush: the pill stays put and the stripes roll across it.
   Spinning the whole shape read as a propeller, not a rotating drum. */
.brush{position:absolute;bottom:32px;width:min(5.6vw,11vh,88px);height:calc(100% - 32px);
       border-radius:100px;overflow:hidden;opacity:0;transition:opacity .45s var(--e)}
.brush::before{content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,rgba(242,101,34,.62) 0 9px,rgba(255,255,255,.13) 9px 18px);
  background-size:36px 100%;animation:brushroll .55s linear infinite}
@keyframes brushroll{to{background-position:36px 0}}
/* cylinder shading — dark at the edges, a highlight down the middle */
.brush::after{content:'';position:absolute;inset:0;border-radius:100px;
  background:linear-gradient(90deg,rgba(0,0,0,.6),rgba(0,0,0,0) 32%,rgba(255,255,255,.07) 50%,
             rgba(0,0,0,0) 68%,rgba(0,0,0,.6))}
/* placed where the car's centre actually is during phase 2 */
.brush-1{left:44%}.brush-2{left:58%}
.stage[data-phase="2"] .brush{opacity:1}
@keyframes spin{to{transform:rotate(360deg)}}

.foam{position:absolute;left:38%;right:34%;bottom:32px;height:calc(100% - 32px);overflow:hidden;
      pointer-events:none;opacity:0;transition:opacity .45s var(--e)}
.stage[data-phase="2"] .foam{opacity:1}
.foam i{position:absolute;bottom:-20px;border-radius:50%;animation:rise linear infinite;
        background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.75),rgba(255,255,255,.12) 52%,transparent 74%)}
@keyframes rise{0%{transform:translateY(0) scale(.5);opacity:0}18%{opacity:.7}
                100%{transform:translateY(-172px) translateX(var(--dx,10px)) scale(1.1);opacity:0}}

.t-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:clamp(12px,2vh,28px)}
.t-foot em{font-style:normal;color:var(--faint)}
.t-foot em b{color:var(--muted);font-weight:400;transition:color .35s}
.stage[data-phase="1"] .t-foot em b:nth-of-type(1),
.stage[data-phase="2"] .t-foot em b:nth-of-type(2),
.stage[data-phase="3"] .t-foot em b:nth-of-type(3){color:var(--o)}

@media(prefers-reduced-motion:reduce){
  .track{height:auto}
  .stage{position:static;height:auto;padding:clamp(78px,9.5vw,140px) var(--gut)}
  .panels{grid-auto-flow:row;gap:44px;min-height:0}
  .panel{grid-area:auto;opacity:1;transform:none;pointer-events:auto}
  .rail,.t-count{display:none}
}

/* ══ 04 · COMPARE — light ═════════════════════════════════ */
.cmp{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/9;background:#0a0a0c;
     box-shadow:var(--shadow);touch-action:pan-y;cursor:ew-resize;isolation:isolate}
/* both layers are the SAME size box, so the two photos always line up */
.cmp-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
         -webkit-user-drag:none;user-select:none;pointer-events:none}
.cmp-after{filter:saturate(1.14) contrast(1.05) brightness(1.05)}
.cmp-layer{position:absolute;inset:0;z-index:2;
           clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0);
           -webkit-clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0)}
.cmp-before{filter:grayscale(.62) brightness(.74) contrast(.95) blur(.4px)}
/* layered road film: warm haze + fine dust, so "before" reads dirty, not just dark */
.cmp-haze{position:absolute;inset:0;pointer-events:none;
          background:linear-gradient(180deg,rgba(126,101,66,.4),rgba(96,80,58,.22) 55%,rgba(70,58,42,.45))}
.cmp-dust{position:absolute;inset:0;pointer-events:none;opacity:.42;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.35' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' fill='%23a08256'/%3E%3C/svg%3E");
  background-size:220px}

.chip{position:absolute;top:18px;z-index:4;padding:9px 14px;border-radius:100px;
      backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.chip-b{left:18px;background:rgba(8,8,10,.62);color:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.16)}
.chip-a{right:18px;background:var(--o);color:#fff}

.handle{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:2px;z-index:5;transform:translateX(-1px);
        background:linear-gradient(180deg,transparent,#fff 10%,#fff 90%,transparent);
        box-shadow:0 0 18px rgba(0,0,0,.4)}
.knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;
      background:var(--o);display:grid;place-items:center;box-shadow:0 14px 38px rgba(242,101,34,.5);
      transition:transform .4s var(--e)}
.cmp:hover .knob{transform:translate(-50%,-50%) scale(1.07)}
.knob svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2}
.knob::after{content:'';position:absolute;inset:-9px;border-radius:50%;border:1px solid rgba(242,101,34,.5);
             animation:halo2 3s var(--e-io) infinite}
@keyframes halo2{0%{transform:scale(1);opacity:.9}75%,100%{transform:scale(1.5);opacity:0}}
/* keyboard-operable: the range sits under the pointer handlers but still tabs + arrows */
.cmp-range{position:absolute;inset:0;z-index:3;width:100%;height:100%;opacity:0;margin:0;pointer-events:none}
.cmp-range:focus-visible~.handle .knob{box-shadow:0 0 0 3px var(--bg),0 0 0 6px var(--o)}
.cmp-hint{margin-top:22px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--faint)}

/* ══ 05 · PLANS — dark ════════════════════════════════════ */
.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1160px;margin:0 auto;
            perspective:1500px}
.plan{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);
      padding:clamp(28px,2.7vw,42px);display:flex;flex-direction:column;
      transform-style:preserve-3d;
      transition:transform .45s var(--e),box-shadow .45s var(--e),border-color .45s var(--e)}
.plan:hover{border-color:var(--line-2);box-shadow:var(--shadow)}
.plan>*{transform:translateZ(26px)}
.plan-name{color:var(--faint)}
.price{display:flex;align-items:flex-start;gap:4px;margin:22px 0 18px;
       font-family:var(--disp);font-weight:800;letter-spacing:-.055em}
.price sup{font-size:23px;line-height:1;padding-top:13px;color:var(--o)}
.price .amt{font-size:clamp(56px,5.7vw,82px);line-height:.82;font-variant-numeric:tabular-nums}
.price .per{align-self:flex-end;font-family:var(--mono);font-size:var(--fs-label);font-weight:400;
            letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:0 0 11px 9px}
.price-single{margin:-8px 0 18px;font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;color:var(--faint)}
.price-single b{color:var(--fg);font-weight:500}
.plan-desc{color:var(--muted);font-size:var(--fs-sm);line-height:1.72;min-height:52px}
.plan ul{margin:26px 0 30px;padding-top:24px;border-top:1px solid var(--line);flex-grow:1}
.plan li{display:flex;align-items:flex-start;gap:12px;font-size:var(--fs-sm);line-height:1.6;margin-bottom:14px}
.plan li.plus{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--o);margin-bottom:18px;gap:0}
.plan li.plus .ck{display:none}
.ck{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:var(--o-soft);color:var(--o);
    display:grid;place-items:center;font-size:10px;margin-top:2px}

.plan.feat{background:var(--card-2);border-color:transparent}
.plan.feat::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;
  background:conic-gradient(from var(--a,0deg),transparent 0deg,var(--o) 62deg,var(--o-lt) 104deg,
             transparent 172deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;animation:turn 5s linear infinite}
@property --a{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes turn{to{--a:360deg}}
@supports not (background:conic-gradient(from 0deg,red,blue)){.plan.feat{border-color:var(--o)}.plan.feat::before{display:none}}
.badge{position:absolute;top:20px;right:20px;z-index:3;color:var(--o);border:1px solid rgba(242,101,34,.45);
       border-radius:100px;padding:6px 12px;transform:translateZ(32px)}
.plans-note{text-align:center;max-width:640px;margin:34px auto 0;color:var(--faint);
            font-size:13.5px;line-height:1.7}

/* ══ 06 · WHY — light ═════════════════════════════════════
   The diagram argues the headline: 1 and 2 are a straight line
   you walk once, 3 is a closed loop that never resolves.       */
.journey{--node:clamp(54px,5vw,64px);--gap:clamp(14px,2vw,28px);
         position:relative;margin-top:clamp(6px,1.4vw,16px)}

/* brackets label which half of the headline each part is */
.jrn-brackets{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-bottom:22px}
.jbr{grid-column:1/3;display:flex;flex-direction:column;align-items:center;gap:10px}
.jbr-loop{grid-column:3/4}
.jbr em{font-style:normal;color:var(--faint);transition:color .5s var(--e) .95s}
.jbr-cap{width:100%;height:11px;border:1px solid var(--line);border-top:none;border-radius:0 0 4px 4px;
         transition:border-color .5s var(--e) .95s}
.journey.on .jbr-loop em{color:var(--o)}
.journey.on .jbr-loop .jbr-cap{border-color:rgba(242,101,34,.5)}

.jrn-body{position:relative}
/* rail spans node-centre to node-centre: (100% − 2 gaps)/3 columns, halved */
.jrn-rail{position:absolute;z-index:0;top:calc(var(--node) / 2);height:1px;
          left:calc((100% - 2 * var(--gap)) / 6);right:calc((100% - 2 * var(--gap)) / 6)}
.jrn-line{position:absolute;inset:0;
          background:repeating-linear-gradient(90deg,var(--line-2) 0 5px,transparent 5px 11px)}
.jrn-fill{position:absolute;left:0;top:0;height:1px;width:0;background:var(--o);
          box-shadow:0 0 10px rgba(242,101,34,.55);transition:width 1.6s var(--e-io) .35s}
.journey.on .jrn-fill{width:100%}
.jrn-fill::after{content:'';position:absolute;right:-3px;top:-3px;width:7px;height:7px;border-radius:50%;
                 background:var(--o);box-shadow:0 0 14px 3px rgba(242,101,34,.6)}

.jrn-steps{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);
           list-style:none}
.jstep{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;
       opacity:0;transform:translateY(18px);
       transition:opacity .7s var(--e),transform .8s var(--e);
       transition-delay:calc(var(--s) * 360ms + 250ms)}
.journey.on .jstep{opacity:1;transform:none}

.jnode{position:relative;width:var(--node);height:var(--node);border-radius:50%;flex-shrink:0;
       display:grid;place-items:center;background:var(--bg);border:1px solid rgba(242,101,34,.45);
       color:var(--o);font-family:var(--mono);font-size:16px;
       transition:background .55s var(--e),color .55s var(--e),border-color .55s var(--e);
       transition-delay:calc(var(--s) * 360ms + 500ms)}
.journey.on .jnode{background:var(--o);border-color:var(--o);color:#fff}
.jnode i{font-style:normal;position:relative;z-index:2}

/* step three orbits — the part that never ends */
.orbit{position:absolute;top:-13px;left:-13px;width:calc(100% + 26px);height:calc(100% + 26px);
       opacity:0;transition:opacity .6s var(--e) 1.7s}
.journey.on .orbit{opacity:1}
.orb-track{fill:none;stroke:rgba(242,101,34,.22);stroke-width:2}
.orb-arc{fill:none;stroke:var(--o);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:62 227;
         transform:rotate(-90deg);transform-box:fill-box;transform-origin:center;
         animation:orbdash 3.2s linear infinite;animation-play-state:paused}
@keyframes orbdash{to{stroke-dashoffset:-289}}   /* 2πr, r=46 */
.orb-spin{transform-box:fill-box;transform-origin:center;animation:spin 3.2s linear infinite;
          animation-play-state:paused}
.orb-dot{fill:var(--o)}
.journey.on .orb-arc,.journey.on .orb-spin{animation-play-state:running}

.jbody{display:flex;flex-direction:column;align-items:center}
.jstep strong{font-family:var(--disp);font-weight:700;font-size:21px;letter-spacing:-.03em;margin:20px 0 8px}
.jtext{color:var(--muted);font-size:var(--fs-sm);line-height:1.7;max-width:25ch}
.jmeta{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:18px}
.jmeta b{font-weight:400;padding:6px 11px;border-radius:100px;border:1px solid var(--line);
         color:var(--faint);white-space:nowrap}
.jcycle{flex-direction:column;gap:9px}
.jcyc-lead{color:var(--faint)}
.jmeta b.jcyc-slot{color:var(--o);border-color:rgba(242,101,34,.4);background:var(--o-soft);
                   min-width:134px;text-align:center;
                   transition:opacity .34s var(--e),transform .34s var(--e)}
.jmeta b.jcyc-slot.swap{opacity:0;transform:translateY(-7px)}

/* ══ AREAS — orange divider ═══════════════════════════════ */
.areas{background:var(--o);color:#fff;padding:clamp(22px,2.5vw,34px) 0;overflow:hidden;border:none!important}
.areas .ticker-in{animation-duration:28s}
.areas .ticker-in>span{font-family:var(--disp);font-weight:800;font-size:clamp(21px,3.2vw,44px);
                       letter-spacing:-.04em;padding:0 clamp(16px,2vw,30px);transition:opacity .35s}
.areas .ticker-in>span.sep{font-size:clamp(13px,1.5vw,19px);opacity:.55;padding:0}
.areas:hover .ticker-in>span{opacity:.5}
.areas .ticker-in>span:hover{opacity:1}

/* ══ 07 · JOURNAL — light ═════════════════════════════════
   Thumbnails are drawn, not photographed: only two photos exist
   and repeating them 3× would read as placeholder.             */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.post{position:relative;display:flex;flex-direction:column;overflow:hidden;
      border:1px solid var(--line);border-radius:var(--r);background:var(--card);
      transition:transform .55s var(--e),border-color .45s var(--e),box-shadow .55s var(--e)}
.post:hover{transform:translateY(-5px);border-color:var(--line-2);box-shadow:var(--shadow)}

.post-vis{position:relative;aspect-ratio:16/10;background:#0c0c0f;overflow:hidden}
.post-vis img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .6s var(--e)}
.post:hover .post-vis img{transform:scale(1.04)}
.post-vis::before{content:'';position:absolute;inset:0;opacity:.55;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:32px 32px}
.post-vis::after{content:'';position:absolute;inset:0;
  background:radial-gradient(72% 68% at 72% 14%,rgba(242,101,34,.32),transparent 62%)}
.post-vis svg{position:absolute;inset:0;width:100%;height:100%;z-index:2;
              transition:transform 1.1s var(--e)}
.post:hover .post-vis svg{transform:scale(1.06) rotate(-3deg)}

.post-body{display:flex;flex-direction:column;flex-grow:1;padding:clamp(22px,2.2vw,30px)}
.post-cat{color:var(--o);margin-bottom:14px}
.post h3{margin-bottom:12px;transition:color .35s var(--e)}
.post:hover h3{color:var(--o)}
.post p{color:var(--muted);font-size:var(--fs-sm);line-height:1.72}
.post:hover .go{color:var(--o)}
.post:hover .go .ar{transform:translateX(5px)}
/* stretched link: whole card is the target, title is the accessible name */
.post-link::after{content:'';position:absolute;inset:0;z-index:6}
.blog-foot{display:flex;justify-content:center;margin-top:clamp(30px,3.4vw,48px)}

/* ══ 08 · LOCATION — dark ═════════════════════════════════ */
.loc{display:grid;grid-template-columns:.92fr 1.08fr}
.loc-card{padding:clamp(58px,7vw,120px) var(--gut);display:flex;flex-direction:column;justify-content:center}
.loc-card h2{margin:20px 0 22px}
.addr{border-left:2px solid var(--o);padding-left:20px;font-style:normal;margin-top:30px}
.addr strong{display:block;font-family:var(--disp);font-weight:700;font-size:23px;
             letter-spacing:-.035em;margin-bottom:7px}
.addr span{color:var(--faint)}
.loc-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}

.map{position:relative;min-height:min(660px,90vh);background:var(--bg-deep);overflow:hidden;
     border-left:1px solid var(--line)}
.map::before{content:'';position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),
                   linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:48px 48px}
.map::after{content:'';position:absolute;inset:0;
  background:radial-gradient(56% 44% at 44% 48%,rgba(242,101,34,.16),transparent 68%)}
.map svg{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.map .road{fill:none;stroke:rgba(255,255,255,.13);stroke-width:15;stroke-linecap:round}
.map .road-hi{fill:none;stroke:var(--o);stroke-width:2.5;stroke-linecap:round;
              stroke-dasharray:var(--len,1200);stroke-dashoffset:var(--len,1200);
              transition:stroke-dashoffset 2.3s var(--e-io) .15s}
.map.in .road-hi{stroke-dashoffset:0}
.map-lbl{position:absolute;z-index:3;color:var(--faint)}
.lbl-1{left:47%;top:13%;transform:rotate(18deg)}
.lbl-2{right:6%;top:62%;transform:rotate(-32deg)}
.pin{position:absolute;left:41%;top:46%;z-index:4;width:62px;height:62px;display:grid;place-items:center}
.pin::before{content:'';position:absolute;inset:0;border-radius:50%;border:1px solid rgba(242,101,34,.45);
             animation:ping 3s var(--e-io) infinite}
@keyframes ping{0%{transform:scale(.6);opacity:1}80%,100%{transform:scale(1.9);opacity:0}}
.pin b{width:44px;height:44px;border-radius:50%;background:var(--o);display:grid;place-items:center;color:#fff;
       font-family:var(--disp);font-weight:800;font-size:18px;box-shadow:0 12px 32px rgba(242,101,34,.55)}
.tip{position:absolute;left:52%;top:53%;z-index:4;background:rgba(21,21,26,.92);
     backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:12px;padding:15px 20px;
     animation:bob 5s var(--e-io) infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.tip strong{display:block;font-family:var(--disp);font-weight:700;font-size:17px;
            letter-spacing:-.03em;margin-bottom:5px}
.tip span{color:var(--faint)}

/* ══ 08 · FAQ — light ═════════════════════════════════════ */
.faq{display:grid;grid-template-columns:.6fr 1.4fr;gap:clamp(32px,5vw,100px)}
.faq-side{position:sticky;top:110px;align-self:start}
.faq-side h2{margin:20px 0 18px}
.faq-side a{color:var(--o);border-bottom:1px solid rgba(242,101,34,.35);transition:border-color .3s}
.faq-side a:hover{border-color:var(--o)}
.q-item{border-top:1px solid var(--line)}
.q-item:last-child{border-bottom:1px solid var(--line)}
.q-btn{width:100%;display:flex;align-items:flex-start;gap:20px;padding:26px 0;text-align:left;
       transition:color .35s var(--e)}
.q-btn:hover{color:var(--o)}
.q-no{flex-shrink:0;width:26px;color:var(--o);opacity:.85;padding-top:5px}
.q-t{flex:1;font-family:var(--disp);font-weight:700;font-size:clamp(17.5px,1.45vw,22px);
     letter-spacing:-.028em;line-height:1.3}
.q-ic{position:relative;flex-shrink:0;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);
      transition:background .35s var(--e),border-color .35s var(--e),transform .55s var(--e)}
.q-ic::before,.q-ic::after{content:'';position:absolute;top:50%;left:50%;background:currentColor;
                           transform:translate(-50%,-50%)}
.q-ic::before{width:11px;height:1.5px}
.q-ic::after{width:1.5px;height:11px;transition:transform .45s var(--e)}
.q-item.on .q-ic{background:var(--o);border-color:var(--o);color:#fff;transform:rotate(180deg)}
.q-item.on .q-ic::after{transform:translate(-50%,-50%) scaleY(0)}
.q-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .65s var(--e)}
.q-item.on .q-a{grid-template-rows:1fr}
.q-a>div{overflow:hidden;min-height:0}
.q-a p{color:var(--muted);font-size:var(--fs-lede);line-height:1.8;max-width:62ch;padding:0 52px 30px 46px}

/* ══ 09 · FINAL CTA — dark ════════════════════════════════ */
.cta{text-align:center;overflow:hidden;padding:clamp(92px,12vw,180px) var(--gut);background:var(--bg-deep)}
.cta .aurora{position:absolute;border-radius:50%;filter:blur(96px);pointer-events:none}
.cta .a1{width:52vw;height:52vw;left:-10vw;bottom:-24vw;background:rgba(242,101,34,.22);
         animation:float1 17s var(--e-io) infinite}
.cta .a2{width:38vw;height:38vw;right:-8vw;top:-16vw;background:rgba(217,84,26,.17);
         animation:float2 22s var(--e-io) infinite}
@keyframes float1{0%,100%{transform:translate(0,0)}50%{transform:translate(9vw,-6vw)}}
@keyframes float2{0%,100%{transform:translate(0,0)}50%{transform:translate(-7vw,7vw)}}
.cta-in{position:relative;z-index:2;max-width:1080px;margin:0 auto}
.cta h2{margin:22px 0 40px}
.cta-acts{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

/* ══ INNER-PAGE COMPONENTS ═══════════════════════════════ */
/* Centred hero for every inner page (not the homepage .hero) */
.page-hero{
  padding:clamp(180px,22vw,280px) var(--gut) clamp(70px,10vw,120px);
  text-align:center;
  border-bottom:1px solid rgba(255,255,255,.06)}
.page-hero .kicker{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--o);
  margin-bottom:20px;display:inline-flex;align-items:center;gap:10px}
.page-hero .kicker::before,
.page-hero .kicker::after{content:'';width:22px;height:1px;background:var(--o)}
.page-hero h1{
  font-family:var(--disp);font-weight:800;letter-spacing:-.04em;
  line-height:.96;font-size:clamp(36px,6vw,72px);
  max-width:800px;margin:0 auto}
.page-hero .lede,
.page-hero .hero-sub{
  max-width:640px;margin:24px auto 0;
  color:var(--muted);font-size:var(--fs-lede);line-height:1.65}
.page-hero .hero-acts{
  display:flex;flex-wrap:wrap;gap:14px;
  justify-content:center;margin-top:36px}

/* ── breadcrumb bar ── */
.breadcrumb{background:var(--bg-deep,#0c0c0f);border-bottom:1px solid rgba(255,255,255,.06)}
.breadcrumb-inner{
  max-width:var(--maxw);margin:0 auto;padding:14px var(--gut);
  display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:11px;letter-spacing:.06em}
.breadcrumb a{color:var(--muted);text-decoration:none;transition:color .3s}
.breadcrumb a:hover{color:var(--o)}
.breadcrumb .sep{color:rgba(255,255,255,.2);font-weight:300}
.breadcrumb .current{color:var(--o);font-weight:500}

/* ── centred section head ── */
.head-center{text-align:center;max-width:720px;margin-left:auto;margin-right:auto;
  margin-bottom:clamp(38px,4.6vw,66px)}
.head-center h2{margin-top:20px}
.head-center .lede{margin-top:18px;max-width:580px;margin-left:auto;margin-right:auto}

/* ── steps grid (services / plans / location) ── */
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
.step{position:relative;padding:clamp(28px,3vw,40px);border-radius:18px;
  border:1px solid var(--line);background:var(--card);
  transition:border-color .35s,box-shadow .35s,transform .35s}
.step:hover{border-color:var(--o);box-shadow:0 8px 32px rgba(242,101,34,.1);transform:translateY(-4px)}
.step-no{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--o);margin-bottom:16px;display:block}
.step h3{font-family:var(--disp);font-weight:700;font-size:clamp(20px,2.2vw,26px);
  letter-spacing:-.02em;line-height:1.15;margin-bottom:12px}
.step p{color:var(--muted);font-size:var(--fs-body,16px);line-height:1.7}
[data-theme="light"] .step{background:#fff;border-color:rgba(19,18,22,.1);
  box-shadow:0 2px 16px rgba(19,18,22,.06)}
[data-theme="light"] .step:hover{border-color:var(--o);box-shadow:0 12px 40px rgba(242,101,34,.12)}

/* ── plans contact block ── */
.plans-contact{text-align:center;padding:clamp(48px,6vw,80px) clamp(24px,4vw,64px);
  max-width:680px;margin:0 auto;border:1px solid var(--line);border-radius:24px;
  background:var(--card,transparent)}
.plans-contact .kicker{margin-bottom:0}
.plans-contact p{color:var(--muted);font-size:var(--fs-body,16px);line-height:1.7;margin-bottom:20px}
.plans-contact .num{font-family:var(--disp);font-weight:700;font-size:clamp(24px,3.5vw,36px);
  letter-spacing:-.02em;color:var(--o);display:block;margin-bottom:8px}
.plans-contact-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;justify-content:center}

/* ── final CTA (all inner pages) ── */
.cta-final{border-top:1px solid rgba(255,255,255,.06)}
.cta-final-inner{display:flex;flex-direction:column;align-items:center;text-align:center;
  min-height:45vh;justify-content:center}
.cta-final-inner h2{max-width:900px}
.cta-final-acts{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px;justify-content:center}

/* ── location grid (inner page — max-1200, map 60%) ── */
.loc-shell{max-width:1200px}
.loc-grid{display:grid;grid-template-columns:2fr 3fr;gap:clamp(24px,4vw,48px);align-items:start}
.loc-grid>.map{min-height:min(560px,72vh);border-radius:20px;border-left:none}
.loc-details .detail-row{display:flex;align-items:flex-start;gap:14px;padding:18px 0;
  border-bottom:1px solid var(--line)}
.loc-details .detail-row:first-child{padding-top:0}
.loc-details .detail-icon{width:44px;height:44px;border-radius:12px;
  background:rgba(242,101,34,.12);color:var(--o);
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.loc-details .detail-icon svg{width:20px;height:20px}
.loc-details .detail-label{font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}
.loc-details .detail-value{font-weight:600;font-size:var(--fs-body);line-height:1.5}
.loc-details .detail-value a{color:var(--o);text-decoration:none;transition:opacity .3s}
.loc-details .detail-value a:hover{opacity:.75}
.loc-btns{display:flex;flex-wrap:wrap;gap:12px}

/* ── blog pagination ── */
.blog-pagination{display:flex;justify-content:center;align-items:center;gap:8px;
  margin-top:clamp(36px,4vw,56px);flex-wrap:wrap}
.blog-pagination a,.blog-pagination span{display:inline-flex;align-items:center;
  justify-content:center;min-width:44px;height:44px;padding:0 16px;
  border:1px solid var(--line);border-radius:var(--r);font-family:var(--body);
  font-size:var(--fs-sm);font-weight:500;color:var(--fg);text-decoration:none;
  transition:border-color .3s var(--e),background .3s var(--e),color .3s var(--e)}
.blog-pagination a:hover{border-color:var(--o);color:var(--o)}
.blog-pagination .current{background:var(--o);border-color:var(--o);color:#fff}
.blog-pagination .dots{border:none;min-width:auto;padding:0 4px;color:var(--muted)}

/* ── blog grid (full-width variant) ── */
.blog-grid--full{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,36px)}
.blog-grid--full .post{border-radius:18px;overflow:hidden;border:1px solid var(--line);
  background:var(--card);transition:border-color .35s,box-shadow .35s,transform .35s}
.blog-grid--full .post:hover{border-color:var(--o);box-shadow:0 8px 32px rgba(242,101,34,.1);
  transform:translateY(-4px)}
.blog-grid--full .post-vis{overflow:hidden}
.blog-grid--full .post-vis img{width:100%;height:auto;display:block;aspect-ratio:16/10;
  object-fit:cover;transition:transform .5s var(--e)}
.blog-grid--full .post:hover .post-vis img{transform:scale(1.04)}
.blog-grid--full .post-body{padding:clamp(18px,2.4vw,28px)}
.blog-grid--full .post-date{color:var(--faint);margin-bottom:10px;display:block}
.blog-grid--full .post-title{font-family:var(--disp);font-weight:700;
  font-size:clamp(18px,2vw,22px);letter-spacing:-.02em;line-height:1.2;margin-bottom:10px}
.blog-grid--full .post-title a{color:var(--fg);text-decoration:none;transition:color .3s}
.blog-grid--full .post-title a:hover{color:var(--o)}
.blog-grid--full .post-excerpt{color:var(--muted);font-size:var(--fs-sm);line-height:1.7;
  margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.blog-grid--full .post-more{color:var(--o);font-family:var(--mono);font-size:11px;
  letter-spacing:.14em;text-decoration:none;transition:opacity .3s}
.blog-grid--full .post-more:hover{opacity:.7}
.blog-empty{text-align:center;padding:60px 0}

/* ── FAQ grid ── */
.q-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(32px,5vw,72px);align-items:start}
.q-side{position:sticky;top:120px}
.q-note{color:var(--muted);font-size:var(--fs-body);line-height:1.7;margin-top:18px}
.q-note a{color:var(--o);text-decoration:none;transition:opacity .3s}
.q-note a:hover{opacity:.7}

/* ── about page: story (two-col text + image) ── */
.about-story{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  flex-wrap:wrap;gap:clamp(32px,5vw,72px);align-items:center}
.about-story-text{flex:1 1 420px;min-width:0}
.about-story-visual{flex:1 1 380px;min-width:0}
.about-story-text .kicker{margin-bottom:20px}
.about-story-text h2{margin-bottom:clamp(20px,2.6vw,32px)}
.about-para{color:var(--muted);font-size:var(--fs-body,16px);line-height:1.78;margin-bottom:18px}
.about-para:last-child{margin-bottom:0}

.about-img-card{position:relative;border-radius:20px;overflow:hidden;
  border:1px solid var(--line);box-shadow:0 20px 60px rgba(19,18,22,.12)}
.about-img-card img{width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover}
.about-img-badge{position:absolute;bottom:20px;left:20px;
  background:rgba(12,12,15,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-radius:14px;padding:14px 20px;border:1px solid rgba(255,255,255,.1)}
.about-badge-label{color:var(--o);display:block;margin-bottom:2px}
.about-badge-loc{color:rgba(255,255,255,.7);font-size:var(--fs-sm);font-weight:500}

/* ── about page: values (2 × 2 card grid) ── */
.values-grid{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  flex-wrap:wrap;gap:clamp(18px,2.6vw,32px)}
.value-card{
  flex:1 1 calc(50% - 16px);min-width:280px;
  padding:clamp(28px,3.4vw,44px);border-radius:20px;
  border:1px solid var(--line);background:var(--card);
  transition:border-color .35s,box-shadow .35s,transform .35s}
.value-card:hover{border-color:var(--o);box-shadow:0 8px 32px rgba(242,101,34,.12);transform:translateY(-4px)}
.value-icon{width:52px;height:52px;border-radius:14px;
  background:rgba(242,101,34,.12);color:var(--o);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.value-card h3{font-family:var(--disp);font-weight:700;font-size:clamp(20px,2.2vw,24px);
  letter-spacing:-.02em;line-height:1.15;margin-bottom:12px}
.value-card p{color:var(--muted);font-size:var(--fs-body,16px);line-height:1.7}

/* ── about page: visit section (info 40% + map 60%) ── */
.about-visit{
  display:-webkit-box;display:-ms-flexbox;display:flex;
  flex-wrap:wrap;gap:clamp(32px,5vw,48px);align-items:stretch;
  max-width:1200px;margin:0 auto}
.about-visit-info{flex:1 1 320px;min-width:0;
  display:flex;flex-direction:column;justify-content:center}
.about-visit-map{flex:1.5 1 400px;min-width:0}
.about-visit-info .kicker{margin-bottom:20px}
.about-visit-info h2{margin-bottom:clamp(24px,3vw,36px)}
.about-details{display:flex;flex-direction:column;gap:0;margin-bottom:8px}
.about-detail{display:flex;align-items:flex-start;gap:14px;
  padding:16px 0;border-bottom:1px solid var(--line)}
.about-detail:last-child{border-bottom:none}
.about-detail-icon{width:40px;height:40px;border-radius:10px;
  background:rgba(242,101,34,.12);color:var(--o);
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.about-detail div{font-size:var(--fs-body);line-height:1.6;color:var(--muted)}
.about-detail strong{color:var(--fg);font-weight:600}
.about-detail a{color:var(--o);text-decoration:none;transition:opacity .3s}
.about-detail a:hover{opacity:.7}
.about-visit-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.about-visit-map .map{min-height:min(560px,72vh);border-radius:20px;border-left:none}

/* ── dark header for inner pages ── */
body[class*="page-template-template-"] .hdr{
  background:rgba(17,18,21,.97);
  backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  border-bottom:1px solid rgba(255,255,255,.08)}
body[class*="page-template-template-"] .hdr.stuck{background:rgba(14,15,17,.99)}

/* ── inner-page responsive ── */
@media(max-width:768px){
  .steps-grid{grid-template-columns:1fr}
  .loc-grid{grid-template-columns:1fr}
  .blog-grid--full{grid-template-columns:1fr}
  .q-grid{grid-template-columns:1fr}
  .q-side{position:static}
  .about-story{grid-template-columns:1fr}
  .about-story-visual{order:-1}
  .values-grid{grid-template-columns:1fr}
  .about-visit{grid-template-columns:1fr}
}
@media(max-width:640px){
  .page-hero{padding-top:clamp(140px,26vw,200px)}
  .page-hero h1{font-size:clamp(28px,7.5vw,42px)}
  .page-hero .hero-sub{font-size:16px}
  .page-hero .hero-acts{justify-content:center}
  .page-hero .hero-acts .btn{flex:1 1 auto}
  .plans-contact{border-radius:18px;padding:32px 20px}
  .cta-final-inner{min-height:36vh}
  .cta-final-acts .btn{flex:1 1 auto}
  .blog-grid--full .post-body{padding:16px}
  .about-img-badge{bottom:12px;left:12px;padding:10px 14px;border-radius:10px}
  .value-card{padding:24px 20px}
}

/* ══ FOOTER — dark ════════════════════════════════════════ */
.ftr{padding:clamp(52px,6vw,84px) var(--gut) 24px}
.ftr-in{max-width:var(--maxw);margin:0 auto}
.ftr-top{display:grid;grid-template-columns:auto 1fr auto;gap:40px;align-items:start;
         padding-bottom:clamp(42px,5vw,70px)}
.ftr .brand-t i{color:var(--faint)}
.ftr-about{color:var(--muted);font-size:var(--fs-sm);line-height:1.78;max-width:300px}
.ftr-nav{display:flex;flex-wrap:wrap;gap:14px 26px;justify-content:flex-end}
.ftr-nav a{position:relative;color:var(--faint);transition:color .35s}
.ftr-nav a::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--o);
                  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--e)}
.ftr-nav a:hover{color:var(--fg)}
.ftr-nav a:hover::after{transform:scaleX(1)}

/* two stacked copies — no background-clip hacks, crisp in every browser */
.wordmark{position:relative;display:block;line-height:.78;user-select:none;
          font-family:var(--disp);font-weight:800;letter-spacing:-.06em;
          font-size:clamp(70px,16.6vw,280px)}
.wordmark span{display:block}
.wm-base{color:rgba(247,245,242,.07)}
.wm-fill{position:absolute;inset:0;color:var(--o);
         clip-path:inset(0 calc(100% - var(--w,0%)) 0 0);-webkit-clip-path:inset(0 calc(100% - var(--w,0%)) 0 0)}
.ftr-bot{border-top:1px solid var(--line);margin-top:22px;padding-top:22px;display:flex;flex-wrap:wrap;
         justify-content:space-between;gap:12px;color:var(--faint)}
.ftr-legal{display:flex;flex-wrap:wrap;gap:8px 18px}
.ftr-legal a{color:var(--faint);transition:color .35s}
.ftr-legal a:hover{color:var(--o)}

/* ══ MOBILE DOCK ══════════════════════════════════════════ */
.dock{display:none}

/* ══ RESPONSIVE ═══════════════════════════════════════════ */
@media(max-width:1280px){          /* nav labels outgrow the bar before the layout does */
  .nav,.hdr-phone{display:none}
  .burger{display:grid}
}
@media(max-width:1024px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .cell-a{grid-column:span 2;grid-row:auto;min-height:340px}
  .cell-b,.cell-c,.cell-d{grid-column:span 2}
  .cell-d{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}
  .cell-d .num br{display:none}
  .loc{grid-template-columns:1fr}
  .map{min-height:460px;border-left:none;border-top:1px solid var(--line)}
  .plans-grid{grid-template-columns:1fr;max-width:560px}
  .plan.feat{order:-1}
  .blog-grid{grid-template-columns:repeat(2,1fr)}
  .post:last-child{grid-column:1/-1}
  .post:last-child .post-vis{aspect-ratio:21/6}
}
@media(max-width:860px){
  .head-split{grid-template-columns:1fr;gap:18px}
  .faq{grid-template-columns:1fr;gap:32px}
  .faq-side{position:static}
  .info{grid-template-columns:1fr 1fr}
  .info>*{border-bottom:1px solid var(--line)}
  .info>*:nth-child(2n){border-right:none}
  .ftr-top{grid-template-columns:1fr 1fr}
  .ftr-nav{grid-column:1/-1;justify-content:flex-start}
  .track{height:300vh}
  /* journey turns vertical: per-step connectors instead of one long rail */
  .journey{--gap:clamp(28px,5vw,40px)}
  .jrn-brackets,.jrn-rail{display:none}
  .jrn-steps{grid-template-columns:1fr;gap:var(--gap)}
  .jstep{flex-direction:row;align-items:flex-start;text-align:left;gap:18px}
  .jstep::after{content:'';position:absolute;left:calc(var(--node) / 2 - .5px);
                top:calc(var(--node) + 8px);bottom:calc(-1 * var(--gap) - 8px);width:1px;
                background:repeating-linear-gradient(180deg,var(--line-2) 0 5px,transparent 5px 11px)}
  .jstep:last-child::after{display:none}
  .jbody{align-items:flex-start;padding-top:9px}
  .jstep strong{margin-top:0}
  .jtext{max-width:42ch}
  .jmeta{justify-content:flex-start}
  .jcycle{align-items:flex-start}
}
@media(max-width:640px){
  body{padding-bottom:62px;font-size:16px}
  .hdr{height:68px}
  .hero{padding-top:80px}
  .scrollcue{display:none}
  .stats{gap:20px 28px}
  .stat span{max-width:100px}
  .hero-acts .btn{flex:1 1 auto}
  .info{grid-template-columns:1fr}
  .info>*{border-right:none;padding:19px var(--gut)}
  .bento{grid-template-columns:1fr}
  .cell-a,.cell-b,.cell-c,.cell-d{grid-column:span 1}
  .cell-d{flex-direction:column;align-items:flex-start;gap:18px}
  .cmp{aspect-ratio:4/5}
  .knob{width:50px;height:50px}
  .proof{grid-template-columns:1fr}
  .proof .stat{padding:22px 0 0;border-left:none;border-top:1px solid var(--line)}
  .proof .stat:first-child{padding-top:0;border-top:none}
  .proof .stat span{max-width:none}
  .blog-grid{grid-template-columns:1fr}
  .post:last-child{grid-column:auto}
  .post:last-child .post-vis{aspect-ratio:16/10}
  .blog-foot .btn{width:100%}
  .q-btn{gap:14px}
  .q-a p{padding:0 0 26px 40px}
  .cta-acts{flex-direction:column}
  .cta-acts .btn{width:100%}
  .ftr-top{grid-template-columns:1fr;gap:26px}
  .ftr-nav{justify-content:flex-start}
  .ftr-bot{flex-direction:column;gap:8px}
  .stage{padding-top:84px}
  .rail{height:132px}
  .car{width:min(62vw,300px)}
  .track{height:280vh}
  .dock{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:180;
        background:rgba(12,12,15,.94);backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.11);
        color:#f7f5f2}
  .dock a{display:grid;place-items:center;min-height:62px;border-right:1px solid rgba(255,255,255,.11)}
  .dock a:last-child{background:var(--o);color:#fff;border-right:none}
}