/* ============================================================
   Northforge AI Studio
   Design canvas: 1748 × 9029 (Figma: Home Page, node 1:85)
   Desktop geometry is 1:1 with the Figma file; the canvas is
   uniformly zoomed between 1200px and 1748px viewports, and
   re-flows below 1200px.
   ============================================================ */

/* ---------- fonts ---------- */
@font-face{font-family:Satoshi;src:url(assets/fonts/Satoshi-300.woff2)format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:Satoshi;src:url(assets/fonts/Satoshi-400.woff2)format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Satoshi;src:url(assets/fonts/Satoshi-500.woff2)format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Satoshi;src:url(assets/fonts/Satoshi-700.woff2)format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Inter;src:url(assets/fonts/Inter.woff2)format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:Manrope;src:url(assets/fonts/Manrope-500.woff2)format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Poppins;src:url(assets/fonts/Poppins-300.woff2)format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:Poppins;src:url(assets/fonts/Poppins-400.woff2)format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url(assets/fonts/Poppins-500.woff2)format("woff2");font-weight:500;font-display:swap}

/* ---------- tokens ---------- */
:root{
  --lime:#dffe00;
  --lime-2:#b5cf00;
  --ink:#0d0d0d;
  --ink-deep:#030b0c;
  --paper:#fff;
  --paper-warm:#fffff7;
  --grey-50:#f6f6f6;
  --grey-100:#f0f0f0;
  --grey-tile:#f3f0f1;
  --grey-blog:#f9f9f9;
  --txt-mute:#c2c1c1;
  --txt-grey:#7a7a7a;
  --txt-eyebrow:#909090;
  --sans:Satoshi,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --ui:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --poppins:Poppins,Inter,sans-serif;
  --manrope:Manrope,Inter,sans-serif;
  --btn:radial-gradient(126.28px 33.01px at 47.6px 10.3px,#dffe00 0%,#c9e40b 50%,#b3c915 100%);
  --shadow-card:20px 20px 40px rgba(0,0,0,.08);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--paper);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
h1,h2,h3,p,ul,figure,form{margin:0;padding:0}
ul{list-style:none}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
::selection{background:var(--lime);color:#000}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--lime);color:#000;padding:12px 20px}
.skip-link:focus{left:16px;top:16px}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px}

/* ---------- canvas ---------- */
section,.endcap>*{position:relative;width:100%}
.stage{position:relative;width:1748px;height:100%;margin-inline:auto}

/* ---------- shared atoms ---------- */
.ico-arrow{
  width:12.695px;height:12.695px;flex:none;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 overflow=%22visible%22 style=%22display: block;%22 width=%2213.6946%22 height=%2213.6946%22 viewBox=%220 0 13.6946 13.6946%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath id=%22Icon%22 d=%22M0.5 13.1946L13.1946 0.5M13.1946 13.1946V0.5H0.5%22 stroke=%22black%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") no-repeat center/contain;
  mask:url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 overflow=%22visible%22 style=%22display: block;%22 width=%2213.6946%22 height=%2213.6946%22 viewBox=%220 0 13.6946 13.6946%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath id=%22Icon%22 d=%22M0.5 13.1946L13.1946 0.5M13.1946 13.1946V0.5H0.5%22 stroke=%22black%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") no-repeat center/contain;
}
.ico-arrow--sm{width:13.69px;height:13.69px}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  width:174px;height:56px;flex:none;
  font-family:var(--sans);font-weight:500;font-size:18px;line-height:32px;
  color:#000;position:relative;isolation:isolate;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),filter .35s var(--ease);
}
.btn--lime{background-image:var(--btn)}
.btn--lime::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:var(--lime);opacity:0;transition:opacity .35s var(--ease);
}
.btn--lime:hover{transform:translateY(-2px);box-shadow:0 10px 30px -8px rgba(223,254,0,.45)}
.btn--lime:hover::after{opacity:1}
.btn--lime:active{transform:translateY(0)}
.btn--wide{width:200px}
.btn--flat{background-image:none;background-color:#b5cf00}
.btn--white{
  width:225px;background:#fff;border:1px solid rgba(249,249,249,.67);
  font-size:20px;
}
.btn--white:hover{transform:translateY(-2px);box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}
.btn span{white-space:nowrap}

.eyebrow{
  display:flex;align-items:center;width:171px;height:25px;padding-left:7px;
  font-family:var(--ui);font-weight:400;font-size:20px;line-height:25.2px;
  letter-spacing:-.18px;color:var(--txt-eyebrow);white-space:nowrap;
}
.eyebrow::before{content:"";width:25px;height:25px;margin-right:8px;flex:none;background:var(--lime-2);
  -webkit-mask:url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 overflow=%22visible%22 style=%22display: block;%22 width=%2225%22 height=%2225%22 viewBox=%220 0 25 25%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cg id=%22SVG%22%3E%3Cpath id=%22Vector%22 fill-rule=%22evenodd%22 clip-rule=%22evenodd%22 d=%22M2.34375 12.5C2.34375 6.89063 6.89063 2.34375 12.5 2.34375C18.1094 2.34375 22.6562 6.89063 22.6562 12.5C22.6562 18.1094 18.1094 22.6562 12.5 22.6562C6.89063 22.6562 2.34375 18.1094 2.34375 12.5ZM8.59375 9.96042C8.59375 9.20625 9.20625 8.59375 9.96146 8.59375H15.0385C15.7938 8.59375 16.4062 9.20625 16.4062 9.96146V15.0385C16.4062 15.7938 15.7938 16.4062 15.0385 16.4062H9.9625C9.78285 16.4064 9.60494 16.3711 9.43894 16.3024C9.27294 16.2337 9.12211 16.133 8.99508 16.006C8.86805 15.8789 8.76731 15.7281 8.69862 15.5621C8.62994 15.3961 8.59466 15.2182 8.59479 15.0385V9.9625L8.59375 9.96042Z%22 fill=%22%23B5CF00%22/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg preserveAspectRatio=%22none%22 overflow=%22visible%22 style=%22display: block;%22 width=%2225%22 height=%2225%22 viewBox=%220 0 25 25%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cg id=%22SVG%22%3E%3Cpath id=%22Vector%22 fill-rule=%22evenodd%22 clip-rule=%22evenodd%22 d=%22M2.34375 12.5C2.34375 6.89063 6.89063 2.34375 12.5 2.34375C18.1094 2.34375 22.6562 6.89063 22.6562 12.5C22.6562 18.1094 18.1094 22.6562 12.5 22.6562C6.89063 22.6562 2.34375 18.1094 2.34375 12.5ZM8.59375 9.96042C8.59375 9.20625 9.20625 8.59375 9.96146 8.59375H15.0385C15.7938 8.59375 16.4062 9.20625 16.4062 9.96146V15.0385C16.4062 15.7938 15.7938 16.4062 15.0385 16.4062H9.9625C9.78285 16.4064 9.60494 16.3711 9.43894 16.3024C9.27294 16.2337 9.12211 16.133 8.99508 16.006C8.86805 15.8789 8.76731 15.7281 8.69862 15.5621C8.62994 15.3961 8.59466 15.2182 8.59479 15.0385V9.9625L8.59375 9.96042Z%22 fill=%22%23B5CF00%22/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain}
.eyebrow--bright::before{background:var(--lime)}
.eyebrow--lime{color:var(--lime-2)}

.sec-head{display:flex;flex-direction:column;align-items:center;gap:20px}
.sec-title{
  font-family:var(--sans);font-weight:500;font-size:55px;line-height:52.8px;
  letter-spacing:-1.32px;color:#000;height:61.47px;display:flex;align-items:center;
  white-space:nowrap;width:var(--tw,auto);
}

/* ---------- brand ---------- */
.brand{display:flex;align-items:center;gap:6.99px}
.brand__mark{width:40.667px;height:40.673px;flex:none;margin-top:3.16px}
.brand__text{display:block;position:relative;width:166.79px;height:47px}
.brand__name{
  position:absolute;left:0;top:0;
  font-weight:700;font-size:22.738px;line-height:23.099px;
  letter-spacing:.2274px;text-transform:uppercase;color:#fff;
}
.brand__sub{
  position:absolute;left:0;top:26.21px;
  font-family:var(--ui);font-weight:400;font-size:18.915px;line-height:20.774px;
  letter-spacing:9.6466px;color:var(--lime);white-space:nowrap;
}

/* ═══════════════ NAVBAR ═══════════════ */
.navbar-wrap{position:fixed;top:45.484px;left:0;right:0;z-index:60;display:flex;justify-content:center;pointer-events:none}
.navbar{
  pointer-events:auto;position:relative;
  width:1508px;height:81px;padding:12px 12px 12px 16px;
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(0,0,0,.08);border:1px solid rgba(255,255,255,.08);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
}
.navbar-wrap.is-stuck .navbar{
  background:rgba(9,9,9,.72);border-color:rgba(255,255,255,.12);
  box-shadow:0 18px 50px -24px rgba(0,0,0,.9);
}
.navlinks{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;align-items:center;gap:32px;
}
.navlinks a{
  font-weight:500;font-size:18px;line-height:normal;color:#fff;white-space:nowrap;
  position:relative;padding-block:4px;
}
.navlinks a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--lime);transform:scaleX(0);transform-origin:left;
  transition:transform .38s var(--ease);
}
.navlinks a:hover::after{transform:scaleX(1)}
.navlinks__sep{width:1px;height:22.993px;background:rgba(255,255,255,.55)}
.navtoggle{display:none}
.mobilemenu{display:none}

/* ═══════════════ HERO ═══════════════ */
.hero{height:875px;background:var(--ink);overflow:hidden}
.hero__under{position:absolute;inset:0;pointer-events:none}
.hero__comet{
  position:absolute;left:calc(50% - 874px + 973.5px);top:-305px;width:460px;height:1200px;
  transform:rotate(20deg);
  background:linear-gradient(90deg,
    rgba(179,201,21,0) 0%,
    rgba(179,201,21,.065) 20.6%,
    rgba(179,201,21,.109) 30.4%,
    rgba(179,201,21,.149) 40.2%,
    rgba(179,201,21,.19) 50%,
    rgba(179,201,21,.143) 59.8%,
    rgba(179,201,21,.034) 69.6%,
    rgba(179,201,21,0) 79.4%,
    rgba(179,201,21,0) 100%);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 30%,rgba(0,0,0,.94) 40%,rgba(0,0,0,.7) 58%,rgba(0,0,0,.55) 70%,rgba(0,0,0,.44) 80%,rgba(0,0,0,.2) 90%,rgba(0,0,0,0) 98%);
  mask-image:linear-gradient(180deg,#000 0%,#000 30%,rgba(0,0,0,.94) 40%,rgba(0,0,0,.7) 58%,rgba(0,0,0,.55) 70%,rgba(0,0,0,.44) 80%,rgba(0,0,0,.2) 90%,rgba(0,0,0,0) 98%);
}
.hero__comet2{
  position:absolute;left:calc(50% - 874px + 710px);top:330px;width:600px;height:520px;
  background:radial-gradient(closest-side,rgba(179,201,21,.055) 0%,rgba(179,201,21,.035) 45%,rgba(179,201,21,0) 100%);
}
.hero__beam{display:none}
.hero__stage{z-index:1}
.hero__mockup{position:absolute;left:1011px;top:219.59px;width:582.7px;height:655.41px;object-fit:contain}
.hero__glow{position:absolute;left:975.5px;top:0;width:772.5px;height:982.5px;max-width:none;pointer-events:none}
.hero__copy{position:absolute;left:117.9px;top:260px;width:744.64px;display:flex;flex-direction:column;gap:32px;align-items:flex-start}
.hero__title{
  font-weight:500;font-size:84px;line-height:1.1;letter-spacing:-2.4px;
  color:var(--paper-warm);width:100%;
}
.hero__title .accent{color:var(--lime-2)}
.hero__lede{
  font-weight:400;font-size:24px;line-height:1;letter-spacing:-.18px;
  color:var(--txt-mute);width:537.74px;
}
.hero__actions{display:flex;align-items:center;gap:21px}
.hero__scan{position:absolute;left:calc(50% - 874px);top:306px;width:1748px;height:569px;max-width:none}
.hero__swoosh{position:absolute;left:841.56px;top:431.31px;width:40px;height:47px}
.hero__rule{
  position:absolute;left:222.55px;top:836.36px;width:1279.99px;height:3px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.05) 32%,rgba(255,255,255,.075) 50%,rgba(255,255,255,.05) 68%,transparent);
}

/* ═══════════════ SERVICES ═══════════════ */
.services{height:941px;background:var(--paper)}
.services .sec-head{position:absolute;left:580px;top:120px;width:588px}
.services .sec-title{--tw:574.484px}
.svc-grid{position:absolute;left:121px;top:312.17px;display:flex;gap:20px}
.svc-card{
  width:489px;height:524.11px;padding:22.164px;
  background:var(--grey-50);border-top:1px solid var(--lime-2);
  display:flex;flex-direction:column;gap:11.082px;
  filter:drop-shadow(var(--shadow-card));
  transition:transform .5s var(--ease),filter .5s var(--ease);
}
.svc-card:hover{transform:translateY(-6px);filter:drop-shadow(24px 26px 48px rgba(0,0,0,.13))}
.svc-card__media{width:444.67px;height:275.67px;background:#e7e7e7;overflow:hidden;flex:none}
.svc-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.svc-card__media img.is-shifted{object-position:50% 30.8%}
.svc-card:hover .svc-card__media img{transform:scale(1.04)}
.svc-card__title{
  font-family:var(--ui);font-weight:500;font-size:38.788px;line-height:1.2;
  color:#000;height:94px;
}
.svc-card__meta{
  font-family:var(--ui);font-weight:400;font-size:22.164px;line-height:1.2;
  color:#6d6d6d;height:27px;
}
.svc-card__foot{margin-top:11.082px;height:49.87px;display:flex;align-items:flex-end;justify-content:flex-end}
.svc-card__go{display:inline-flex;align-items:center;padding:12.477px;transition:transform .4s var(--ease)}
.svc-card__go img{width:24.917px;height:24.917px}
.svc-card:hover .svc-card__go{transform:translate(4px,-4px)}

/* ═══════════════ ABOUT ═══════════════ */
.about{height:772px;background:var(--grey-100)}
.tile{position:absolute;width:389.98px;height:211.64px;background:var(--grey-tile);overflow:hidden}
.tile--a{left:160px;top:83.23px}
.tile--b{left:588.31px;top:83.23px}
.tile--c{left:159.98px;top:320.86px}
.tile--d{left:588.3px;top:320.86px}
.tile__copy{position:absolute;display:flex;flex-direction:column;width:194px}
.tile--a .tile__copy{left:19.5px;top:50.82px;gap:15px;height:110px}
.tile--b .tile__copy{left:19.49px;top:56.32px;gap:2px;height:99px}
.tile--c .tile__copy{left:19.52px;top:25.32px;gap:18px;height:161px}
.tile--d .tile__copy{left:19.5px;top:33.82px;gap:18px;height:161px}
.tile__num{
  font-family:var(--poppins);font-weight:400;font-size:48px;line-height:73.5px;
  letter-spacing:-1.4px;color:#000;display:flex;align-items:center;
}
.tile--a .tile__num{height:48.99px}
.tile--b .tile__num{height:53.09px}
.tile__num--sm{font-size:40px;line-height:44px;white-space:pre-wrap}
.tile--c .tile__num{height:97.36px}
.tile--d .tile__num{height:90.87px}
.tile__label{
  font-family:var(--ui);font-weight:400;font-size:20px;line-height:26px;
  letter-spacing:-.2px;color:#7e7e7e;height:46.14px;display:flex;align-items:center;
}
.tile__label--light{color:#a4a4a4}
.tile__art{position:absolute;object-fit:cover;transition:transform .6s var(--ease)}
.tile:hover .tile__art{transform:scale(1.07) rotate(-3deg)}
.tile--a .tile__art{left:264.17px;top:83.3px;width:127.13px;height:127.13px}
.tile--b .tile__art{left:247.57px;top:67.33px;width:142.41px;height:142.41px}
.tile--c .tile__art{left:274.42px;top:96.07px;width:115.57px;height:115.57px}
.tile--d .tile__art{left:264.15px;top:85.81px;width:125.83px;height:125.83px}

.about__copy{position:absolute;left:1012px;top:104.05px;width:616px}
.about__copy .eyebrow{padding-left:7px}
.about__title{
  position:absolute;left:0;top:46px;width:431.24px;
  font-weight:500;font-size:55px;line-height:1.1;letter-spacing:-2.4px;color:#000;
}
.about__body{
  position:absolute;left:0;top:189px;width:583.42px;height:80px;
  font-weight:400;font-size:24px;line-height:1.22;letter-spacing:-.18px;color:var(--txt-grey);
}
.about__copy .btn{position:absolute;left:0;top:372.45px}

/* ═══════════════ TOOLS ═══════════════ */
.tools{height:608px;background:var(--ink);overflow:hidden}
.tools__bg{position:absolute;inset:0;pointer-events:none}
.tools__glow{position:absolute;left:calc(50% - 874px + 93.32px);top:-619.11px;width:1549.5px;height:1230px;max-width:none}
.tools__warm{position:absolute;left:calc(50% - 874px);top:0;width:1748px;height:608px;max-width:none}
.tools__pattern{position:absolute;left:calc(50% - 754.59px);top:1.14px;width:1509.18px;height:606.86px;object-fit:cover;opacity:.1;border-radius:15px;max-width:none}
.tools__stage{z-index:1}
.tools__copy{position:absolute;left:119.28px;top:298.14px;transform:translateY(-50%);width:561px;display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.tools__badge{
  display:flex;align-items:center;justify-content:center;
  width:199px;height:43px;border:1px solid #efefef;
  font-family:var(--poppins);font-weight:400;font-size:18px;letter-spacing:.18px;color:var(--lime);
}
.tools__title{font-weight:500;font-size:55px;line-height:60px;color:#f9f9f9}
.tools__body{
  font-family:var(--ui);font-weight:400;font-size:24px;line-height:normal;
  color:rgba(255,255,255,.87);width:501.52px;
}
.tools__col{position:absolute;top:0;width:255px;height:100%}
.tools__col--a{left:1002.6px}
.tools__col--b{left:1297.66px}
.techcard{
  position:absolute;left:0;top:var(--y);width:255px;height:222px;
  background:rgba(3,26,34,.2);border:1px solid rgba(226,226,226,.62);
  box-shadow:0 0 40px rgba(0,0,0,.04);
  transition:border-color .45s var(--ease),background .45s var(--ease),transform .45s var(--ease);
}
.techcard:hover{border-color:rgba(223,254,0,.6);background:rgba(3,26,34,.45);transform:translateY(-3px)}
.techcard__ring{position:absolute;left:64px;top:29px;display:block}
.techcard__ring>img{width:var(--r);height:var(--r);max-width:none}
.techcard__ring>img.techcard__logo{position:absolute;left:var(--ox);top:var(--oy);width:var(--s);height:var(--s)}
.techcard__solo{position:absolute;left:var(--sx);top:var(--sy);width:var(--s);height:var(--s)}
.techcard__label{
  /* Centred on the 255px card rather than positioned by a per-label --lx magic
     number, so a label can be corrected without re-measuring its offset. */
  position:absolute;left:50%;top:var(--ly);transform:translate(-50%,-50%);
  font-family:var(--poppins);font-weight:300;font-size:18px;line-height:normal;
  color:#fff;white-space:nowrap;
}

/* ═══════════════ PROCESS ═══════════════ */
.process{height:1262.56px;background:var(--paper)}
.process .sec-head{position:absolute;left:597.5px;top:96.64px;width:553px}
.process .sec-title{--tw:573.172px}
.proc-grid{position:absolute;left:204px;top:292px;display:grid;grid-template-columns:repeat(3,417px);column-gap:62px;row-gap:32.42px}
.proc{
  position:relative;width:417px;height:370px;background:#fff;
  filter:drop-shadow(var(--shadow-card));
  transition:transform .5s var(--ease),filter .5s var(--ease);
}
.proc:hover{transform:translateY(-6px);filter:drop-shadow(24px 26px 48px rgba(0,0,0,.12))}
.proc--last::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--lime-2)}
.proc__icon{
  position:absolute;left:31.99px;top:39.99px;width:71.03px;height:68.14px;
  background:#fff;border:.25px solid #ccc;
  display:flex;align-items:center;justify-content:center;
  box-shadow:10px 10px 30px rgba(0,0,0,.05);
}
.proc--first .proc__icon{left:39.52px;top:48.51px}
.proc__icon img{width:var(--w);height:var(--h)}
.proc__title{
  position:absolute;left:31.99px;top:195.24px;width:216.52px;height:36.7px;
  display:flex;align-items:center;
  font-weight:500;font-size:26px;line-height:31.2px;letter-spacing:1px;color:#000;
}
.proc__body{
  position:absolute;left:31.99px;top:246.11px;width:326.8px;height:72.42px;
  font-family:var(--ui);font-weight:400;font-size:18px;line-height:25.2px;
  letter-spacing:-.18px;color:var(--txt-grey);
}

/* ═══════════════ WORK ═══════════════ */
.work{height:1101.44px;background:var(--ink);overflow:hidden}
.work__bg{position:absolute;inset:0;pointer-events:none}
.work__orb{position:absolute;left:calc(50% - 874px + 125.26px);width:437.99px;height:437.99px;border-radius:50%}
.work__orb--1{top:-198.14px;background:#2f2f2f}
.work__orb--2{top:239.85px;background:#2c2c2c}
.work__orb--3{top:663.82px;background:#212121}
.work__stage{z-index:1}
.work__head{position:absolute;left:125.26px;top:151.44px;width:903px;display:flex;flex-direction:column;gap:20px}
.work__title{
  font-weight:500;font-size:55px;line-height:1.1;letter-spacing:-2.4px;color:#fff;
  height:61.47px;display:flex;align-items:center;white-space:nowrap;
}
.work__cta{position:absolute;left:1428px;top:172.44px}
.work__grid{position:absolute;left:119.63px;top:358.7px;display:flex;gap:21px}
.wcard{width:494.625px;display:flex;flex-direction:column;gap:19px}
.wcard:nth-child(3){margin-left:-6.63px}
.wcard__media{
  width:100%;height:322px;background:#e7e7e7;overflow:hidden;
  border-top:1px solid var(--lime-2);
}
.wcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.wcard:hover .wcard__media img{transform:scale(1.05)}
.wcard__title{font-weight:500;font-size:32px;line-height:1.2;color:#fff}
.wcard__body{font-weight:400;font-size:24px;line-height:1;letter-spacing:-.18px;color:var(--txt-mute)}

/* ═══════════════ FAQ ═══════════════ */
.faq{height:1069px;background:var(--ink)}
.faq__panel{
  position:absolute;left:calc(50% - 874px + 6px);top:0;width:1736px;height:100%;
  background:#fff;
}
.faq .sec-head{position:absolute;left:calc(124.5px + (1487px - 886px) / 2);top:102.26px;width:886px}
.faq__title{letter-spacing:-1.32px;--tw:836.531px}
.acc{position:absolute;left:124.5px;top:298.73px;width:1487px;display:flex;flex-direction:column;gap:1px}
.acc__item{border:1.46px solid rgba(16,58,58,.33);border-top:0}
.acc__q{
  width:100%;height:115.54px;display:flex;align-items:center;gap:39px;
  padding:30px 420px 30px 37px;text-align:left;
  font-weight:500;font-size:30px;line-height:1.3;color:#021318;
  transition:color .3s var(--ease);
}
.acc__q:hover{color:#000}
.acc__ico{
  width:20.432px;height:20.432px;flex:none;position:relative;
}
.acc__ico::before,.acc__ico::after{
  content:"";position:absolute;background:var(--lime);border-radius:2px;
  transition:transform .4s var(--ease),opacity .3s var(--ease);
}
.acc__ico::before{left:0;top:9.12px;width:20.432px;height:2.19px}
.acc__ico::after{left:9.12px;top:0;width:2.19px;height:20.432px}
.acc__item.is-open{border-color:rgba(16,58,58,1);background:#000}
.acc__item.is-open .acc__q{height:102px;padding-top:30px;padding-bottom:0;align-items:flex-start;color:#fff}
.acc__item.is-open .acc__ico{width:29.568px;margin-left:-4.57px}
.acc__item.is-open .acc__ico::before{width:29.568px;top:8.3px}
.acc__item.is-open .acc__ico::after{opacity:0;transform:scaleY(0)}
.acc__a{
  display:grid;grid-template-rows:0fr;overflow:hidden;
  transition:grid-template-rows .5s var(--ease);
  background:#000;
}
.acc__item.is-open .acc__a{grid-template-rows:1fr}
.acc__a>p{
  min-height:0;overflow:hidden;
  padding:0 0 0 102.84px;width:1228.4px;
  font-family:var(--ui);font-weight:400;font-size:22px;line-height:1.55;
  color:rgba(255,255,255,.96);
}
.acc__item.is-open .acc__a>p{padding-bottom:26px}

/* ═══════════════ INSIGHTS ═══════════════ */
.insights{height:1296px;background:var(--ink)}
.insights__panel{
  position:absolute;left:calc(50% - 874px + 6px);top:0;width:1736px;height:100%;
  background:var(--grey-blog);
}
.insights .sec-head{position:absolute;left:calc(132px + (1491.11px - 886px) / 2);top:87px;width:886px}
.insights__title{height:74px;line-height:63px;--tw:817.688px;justify-content:center}
.post-grid{position:absolute;left:131.06px;top:296px;display:flex;gap:43px}
.post{width:469px;display:flex;flex-direction:column;gap:25.73px}
.post__media{height:362.675px;overflow:hidden;background:#000}
.post__media--framed{box-shadow:0 0 0 1.225px #e9ebf1}
.post__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.post__media img.is-shifted{object-position:50% 18%}
.post:hover .post__media img{transform:scale(1.04)}
.post__tags{display:flex;gap:14.703px;height:30px}
.post__tags span{
  display:flex;align-items:center;height:30px;padding-left:8.8px;
  background:#fff;border:1px solid #d5d5d5;
  font-family:var(--ui);font-weight:400;font-size:14.703px;line-height:24.995px;
  letter-spacing:.0123px;color:var(--txt-grey);white-space:nowrap;
}
.post__tags span:first-child{width:194px}
.post__tags span:last-child{width:180px}
.post__title{
  height:70.562px;width:376.43px;display:flex;align-items:center;
  font-family:var(--ui);font-weight:500;font-size:27.109px;line-height:35.287px;
  letter-spacing:-.5759px;color:#060b13;
}
.post__body{
  height:108.3px;
  font-family:var(--ui);font-weight:400;font-size:17.154px;line-height:29.161px;
  letter-spacing:-.1103px;color:#363d4f;
}
.post__link{
  height:49.01px;width:159.97px;display:flex;align-items:center;gap:10px;
  font-family:var(--ui);font-weight:500;font-size:18px;line-height:29.161px;
  letter-spacing:-.2205px;color:#060b13;
}
.post:nth-child(1) .post__link{align-items:flex-start;padding-top:0}
.post:nth-child(2) .post__link{align-items:flex-start;padding-top:8.91px}
.post:nth-child(3) .post__link{align-items:flex-start;padding-top:12.26px}
.post__link .ico-arrow{margin-top:4px;transition:transform .4s var(--ease)}
.post__link:hover .ico-arrow{transform:translate(3px,-3px)}
.insights__cta{position:absolute;left:790.56px;top:1109.47px}

/* ═══════════════ CTA ═══════════════ */
.endcap{position:relative}
.cta{height:412.86px;background:var(--ink);overflow:visible;z-index:2}
.cta__bg{
  position:absolute;left:calc(50% - 874px + 119.4px);top:0;
  width:1509.18px;height:439.57px;overflow:hidden;pointer-events:none;
}
.cta__glow,.cta__glow2{
  position:absolute;max-width:none;pointer-events:none;
  background:no-repeat center/100% 100%;
}
.cta__glow{left:-2.404px;top:-516.311px;width:1549.5px;height:1187px;
  background-image:url(assets/img/cta-glow-a.webp)}
.cta__glow2{left:-13.919px;top:182.404px;width:1549.5px;height:922px;
  background-image:url(assets/img/cta-glow-b.webp)}
.cta__pattern{
  position:absolute;left:3.86px;top:106px;width:1509.18px;height:439.57px;
  object-fit:cover;opacity:.1;border-radius:15px;max-width:none;
}
.cta__copy{
  position:absolute;left:calc(50% - 408.84px);top:80.29px;width:817.69px;
  display:flex;flex-direction:column;align-items:center;
}
.cta__title{
  font-weight:500;font-size:60px;line-height:63px;letter-spacing:-1.32px;
  color:#fff;height:74px;display:flex;align-items:center;white-space:nowrap;
}
.cta__body{
  margin-top:20px;width:689.52px;height:66px;text-align:center;
  font-weight:400;font-size:24px;line-height:1.38;letter-spacing:-.18px;
  color:rgba(255,255,255,.93);
}
.cta__copy .btn{margin-top:50px}

/* ═══════════════ FOOTER ═══════════════ */
.footer{height:691.14px;background:var(--ink);z-index:1}
.footer__inner{
  position:absolute;left:calc(50% - 874px + 6px);top:0;width:1736px;height:100%;
  background:var(--ink-deep);
}
.brand--lg{position:absolute;left:121.21px;top:172.85px;align-items:flex-start;gap:12.44px}
.brand--lg .brand__mark{width:71.887px;height:71.894px;margin-top:5.58px}
.brand--lg .brand__text{width:294.81px;height:83.05px}
.brand--lg .brand__name{font-size:40.191px;line-height:40.83px;letter-spacing:.4019px}
.brand--lg .brand__sub{top:46.33px;font-weight:300;font-size:33.434px;line-height:36.72px;letter-spacing:17.0514px}

.news{position:absolute;left:113.31px;top:314.85px;width:440.91px;display:flex;flex-direction:column;gap:22px}
.news__title{font-weight:700;font-size:25px;line-height:normal;color:#fff}
.news__row{display:flex;align-items:center;gap:12px}
.news__input{
  width:254.82px;height:56px;padding:14px 84px 15px 17px;
  background:#333;border:0;color:#fff;
  font-family:var(--sans);font-weight:300;font-size:20px;line-height:normal;
  transition:box-shadow .3s var(--ease);
}
.news__fine{
  margin:0;font-family:var(--ui);font-weight:400;font-size:16px;line-height:1.45;
  letter-spacing:-.16px;color:rgba(255,255,255,.55);
}
.news__fine a{color:rgba(255,255,255,.8);text-decoration:underline;text-underline-offset:3px}
.news__fine a:hover{color:var(--lime)}
.news__input::placeholder{color:#fff;opacity:.85}
.news__input:focus{outline:0;box-shadow:inset 0 0 0 1px var(--lime)}

.fcols{position:absolute;left:923px;top:173.14px;width:697px;height:206px}
.fcol{position:absolute;top:0;display:flex;flex-direction:column}
.fcol--services{left:0;width:220px}
.fcol--company{left:316px;width:123px}
.fcol--social{left:535px;width:162px}
.fcol__h{font-weight:700;font-size:30px;line-height:normal;color:#fff;height:41px}
.fcol>a{
  position:absolute;font-weight:400;font-size:22px;line-height:normal;color:#fff;height:30px;
  transition:color .3s var(--ease);
}
.fcol a:hover{color:var(--lime)}
.fcol__h{white-space:nowrap}
.fcol>a:nth-of-type(1){top:66px}
.fcol>a:nth-of-type(2){top:121px}
.fcol>a:nth-of-type(3){top:176px}
.socials{position:absolute;top:66px;left:0;display:flex;gap:12px}
.socials a{position:relative;top:auto;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0 6px;border-radius:6px;background:var(--lime);transition:transform .35s var(--ease)}
.socials a:hover{transform:translateY(-3px)}
.socials img{width:24px;height:24px}
.socials a:last-child img{width:26px;height:26px}

.footer__rule{
  position:absolute;left:111px;top:562.14px;width:1509.18px;height:2px;
  margin:0;border:0;
  background:linear-gradient(180deg,rgba(255,255,255,.124) 50%,rgba(255,255,255,.876) 50%);
}
.footer__bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.footer__bottom>*{pointer-events:auto}
.sayhi{
  position:absolute;left:111px;top:608.46px;display:flex;align-items:center;gap:9px;
  font-family:var(--ui);font-weight:400;font-size:22px;line-height:normal;
  color:rgba(255,255,255,.69);transition:color .3s var(--ease);
}
.sayhi:hover{color:#fff}
.sayhi img{width:37px;height:37px}
.legal{
  position:absolute;left:616.27px;top:613.46px;width:503.48px;padding-left:37.2px;
  font-family:var(--ui);font-weight:400;font-size:22px;line-height:normal;
  color:rgba(255,255,255,.69);
}
.legal__c{
  position:absolute;left:0;top:-1.32px;width:31px;height:31px;
  background:var(--lime);font-size:0;
  -webkit-mask:url("data:image/svg+xml,%3Csvg width=%2231%22 height=%2231%22 viewBox=%220 0 31 31%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Ccircle cx=%2215.5%22 cy=%2215.5%22 r=%2214.35%22 stroke=%22%23000%22 stroke-width=%222.3%22/%3E%3Cpath d=%22M19.63 9.6A7.2 7.2 0 1 0 19.63 21.4%22 stroke=%22%23000%22 stroke-width=%222.2%22 stroke-linecap=%22round%22/%3E%3C/svg%3E") no-repeat center/contain;
          mask:url("data:image/svg+xml,%3Csvg width=%2231%22 height=%2231%22 viewBox=%220 0 31 31%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Ccircle cx=%2215.5%22 cy=%2215.5%22 r=%2214.35%22 stroke=%22%23000%22 stroke-width=%222.3%22/%3E%3Cpath d=%22M19.63 9.6A7.2 7.2 0 1 0 19.63 21.4%22 stroke=%22%23000%22 stroke-width=%222.2%22 stroke-linecap=%22round%22/%3E%3C/svg%3E") no-repeat center/contain;
}
.contactline{
  position:absolute;left:1182.7px;top:613.46px;display:flex;align-items:center;gap:11px;
  font-family:var(--ui);font-weight:400;font-size:22px;line-height:normal;
  color:rgba(255,255,255,.69);white-space:nowrap;
}
.contactline span:first-child,.contactline a:first-child{width:237.82px}
.contactline span:last-child,.contactline a:last-child{width:202.77px}
.contactline a{color:inherit;transition:color .3s var(--ease)}
.contactline a:hover{color:var(--lime)}


/* ═══════════════════════════════════════════════════════════
   ABOUT PAGE  —  Figma: About Us, node 1:605  (1748 × 6169)
   ═══════════════════════════════════════════════════════════ */

.navlinks a.is-current{color:var(--lime)}

/* ---------- hero ---------- */
.ahero{height:673.756px;background:var(--ink);overflow:hidden}
.ahero__stage{z-index:1}

.crumbs{
  position:absolute;left:117.961px;top:200.46px;height:20px;
  display:flex;align-items:center;gap:2px;
  font-weight:500;font-size:18px;line-height:1.1;color:#dbdbdb;
}
.crumbs a{transition:color .3s var(--ease)}
.crumbs a:hover{color:var(--lime)}
.crumbs span{color:var(--lime)}
.crumbs__sep{
  width:18px;height:18px;flex:none;margin-top:1px;background:#dbdbdb;
  -webkit-mask:url("data:image/svg+xml,%3Csvg width=%2218%22 height=%2218%22 viewBox=%220 0 18 18%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M7.6275 14.25c.112.0004.2228-.0243.324-.0724.1012-.048.1904-.1181.261-.2051l3.6225-4.5c.1103-.1342.1706-.30253.1706-.47625 0-.17372-.0603-.34205-.1706-.47625l-3.75-4.5c-.1273-.15316-.3102-.24948-.5086-.26777-.1983-.01828-.3957.04297-.5489.17027-.1532.1273-.2495.31024-.2678.50856-.0182.19832.043.39578.1703.54894l3.3525 4.02-3.24 4.02c-.0917.1101-.15.2441-.1679.3863-.0179.1422.0053.2865.0668.4159.0616.1294.1589.2384.2805.3143.1216.0758.2623.1152.4056.1136z%22 fill=%22%23DBDBDB%22/%3E%3C/svg%3E") no-repeat center/contain;
          mask:url("data:image/svg+xml,%3Csvg width=%2218%22 height=%2218%22 viewBox=%220 0 18 18%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M7.6275 14.25c.112.0004.2228-.0243.324-.0724.1012-.048.1904-.1181.261-.2051l3.6225-4.5c.1103-.1342.1706-.30253.1706-.47625 0-.17372-.0603-.34205-.1706-.47625l-3.75-4.5c-.1273-.15316-.3102-.24948-.5086-.26777-.1983-.01828-.3957.04297-.5489.17027-.1532.1273-.2495.31024-.2678.50856-.0182.19832.043.39578.1703.54894l3.3525 4.02-3.24 4.02c-.0917.1101-.15.2441-.1679.3863-.0179.1422.0053.2865.0668.4159.0616.1294.1589.2384.2805.3143.1216.0758.2623.1152.4056.1136z%22 fill=%22%23DBDBDB%22/%3E%3C/svg%3E") no-repeat center/contain;
}

.ahero__copy{
  position:absolute;left:117.961px;top:260.271px;width:868.742px;
  display:flex;flex-direction:column;gap:32px;align-items:flex-start;
}
.ahero__title{
  font-weight:500;font-size:84px;line-height:1.1;letter-spacing:-2.4px;
  color:#fff;width:100%;
}
.ahero__title .accent{color:var(--lime)}
.ahero__lede{
  font-weight:400;font-size:24px;line-height:1;letter-spacing:-.18px;
  color:var(--txt-mute);width:685.891px;
}

/* Satoshi renders ~1px higher in Chrome than in the Figma raster; nudge to match */
.page-about .sec-title,.vmv__title,.vrow__title,.who__p,.vrow__text,.whycol__p{position:relative;top:1px}

/* ---------- who are we ---------- */
.who{height:1675.107px;background:#fff;color:#000;overflow:hidden}
.who__head{position:absolute;left:118px;top:181.244px;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.who__title{width:1036px;white-space:normal}

.who__orb{position:absolute;left:296.336px;top:1000.574px;width:228.706px;height:228.706px;max-width:none}
.who__ring{position:absolute;left:118px;top:774.515px;width:374.517px;height:374.517px;max-width:none}

.who__shot{position:absolute;margin:0;box-shadow:20px 20px 80px rgba(0,0,0,.08)}
.who__shot img{width:100%;height:100%;object-fit:cover;max-width:none}
.who__shot--facade{left:345.602px;top:504.275px;width:472.047px;height:496.299px}
.who__shot--banner{left:749.563px;top:431.478px;width:878.438px;height:496.299px;overflow:hidden}
.who__shot--banner img{position:absolute;left:0;top:0;width:878.438px;height:802.708px;object-fit:fill}

.who__copy{position:absolute;left:1011px;top:1087.102px;width:617px}
.who__p{
  font-weight:400;font-size:24px;line-height:1.22;letter-spacing:-.18px;color:var(--txt-grey);
  height:90px;margin-bottom:28.792px;
}
.who__p b{font-weight:700;color:#3f3e3e}
.who__p--strong{font-weight:700;color:#3f3e3e;height:32px;margin-bottom:0}

/* ---------- values · mission · vision ---------- */
.vmv{height:1892.137px;background:var(--ink);overflow:hidden}
.vmv__glow{
  position:absolute;left:calc(50% - 874px + 160.09px);top:-637.863px;
  width:1549.5px;height:1230px;max-width:none;pointer-events:none;
}
.vmv .stage{z-index:1}

.vmv__head{position:absolute;left:118px;top:176.137px;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.vmv__title{
  width:765.695px;height:134px;display:flex;align-items:center;
  font-weight:500;font-size:55px;line-height:1.18;letter-spacing:-2.4px;color:#fff;
}

.vmv__rule{position:absolute;left:0;width:1748px;height:0}
/* the hairline lands on a half-pixel in the Figma raster; split it across two rows */
.vmv__rule::before{
  content:"";position:absolute;left:124.328px;top:0;width:1503.672px;height:2px;
  background:linear-gradient(180deg,rgba(255,255,255,var(--a)) 50%,rgba(255,255,255,var(--b)) 50%);
}
.vmv__rule span{position:absolute;width:19.845px;height:9px;background:var(--lime)}
.vmv__rule--1{top:438.137px;--a:.63;--b:.37}
.vmv__rule--1 span{left:114.406px;top:-3.124px}
.vmv__rule--2{top:876.137px;--a:.75;--b:.25}
.vmv__rule--2::before{left:129.922px;width:1498.078px}
.vmv__rule--2 span{left:120px;top:-3.249px}
.vmv__rule--3{top:1369.137px;--a:.37;--b:.63}
.vmv__rule--3::before{left:129.922px;width:1498.078px}
.vmv__rule--3 span{left:120px;top:-2.911px}

.vrow{position:absolute;display:flex;align-items:center;gap:102px;width:1055.46px;height:256px}
.vrow--1{left:120px;top:502.704px}
.vrow--2{left:118px;top:996.052px}
.vrow--3{left:124.328px;top:1489.4px}
.vrow__tile{
  position:relative;flex:none;width:151.218px;height:145.072px;
  background:rgba(255,255,255,.103);
  box-shadow:inset 5px 5px 14px rgba(0,0,0,.19),inset -7px -7px 18px rgba(255,255,255,.062);
}
/* hairline bevel: brighter on the top/left, dimmer on the bottom/right */
.vrow__tile::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.29),rgba(255,255,255,.29)) 0 0/100% 1px no-repeat,
    linear-gradient(rgba(255,255,255,.29),rgba(255,255,255,.29)) 0 0/1px 100% no-repeat,
    linear-gradient(rgba(255,255,255,.137),rgba(255,255,255,.137)) 100% 0/1px 100% no-repeat,
    linear-gradient(rgba(255,255,255,.16),rgba(255,255,255,.16)) 0 100%/100% 1px no-repeat;
}
.vrow__tile img{position:absolute}
.vrow--1 .vrow__tile img{left:30.609px;top:28.036px;width:90px;height:89px}
.vrow--2 .vrow__tile img{left:34.608px;top:31.536px;width:82px;height:82px}
.vrow--3 .vrow__tile img{left:33.608px;top:30.536px;width:84px;height:84px}
.vrow__body{flex:none;width:802.242px;display:flex;flex-direction:column;gap:34px}
.vrow__title{
  height:74px;display:flex;align-items:center;
  font-weight:500;font-size:55px;line-height:1.18;letter-spacing:-2.4px;color:#fff;
}
.vrow__text{
  height:148px;font-weight:400;font-size:24px;line-height:1.22;letter-spacing:-.18px;
  color:rgba(249,249,249,.81);
}

/* ---------- why northforge ---------- */
.why{height:818px;background:#fff;color:#000}
.why__head{position:absolute;left:120px;top:124px;width:1507.563px;display:flex;flex-direction:column;gap:20px;align-items:center}
.why__title{width:1100.563px;white-space:normal}

.whycard{
  position:absolute;left:120px;top:319.47px;width:1507.563px;height:229.367px;
}
.whycard::before{content:"";position:absolute;inset:0;border:1px solid #ccc;pointer-events:none}
.whycol{position:absolute;top:46.114px}
.whycol:nth-of-type(1){left:37.094px;width:298.602px}
.whycol:nth-of-type(2){left:428.953px;width:285px}
.whycol:nth-of-type(3){left:807.211px;width:285px}
.whycol:nth-of-type(4){left:1185.469px;width:285px}
.whycol::before,.whycol::after{content:"";position:absolute;pointer-events:none}
.whycol::before{top:-37.876px;width:1px;height:212.891px;background:#ccc}
.whycol::after{top:1.139px;width:4.1px;height:118.387px;background:var(--lime);margin-left:.9px}
.whycol:nth-of-type(1)::before{display:none}
.whycol:nth-of-type(1)::after{left:-37.094px}
.whycol:nth-of-type(2)::before{left:-65.32px}
.whycol:nth-of-type(2)::after{left:-65.32px}
.whycol:nth-of-type(3)::before{left:-67.539px}
.whycol:nth-of-type(3)::after{left:-67.539px}
.whycol:nth-of-type(4)::before{left:-57.102px}
.whycol:nth-of-type(4)::after{left:-57.102px}
.whycol__h{
  height:36.7px;display:flex;align-items:center;
  font-weight:500;font-size:26px;line-height:31.2px;letter-spacing:1px;color:#000;
}
.whycol__p{
  margin-top:13px;height:87.443px;
  font-weight:400;font-size:24px;line-height:1.22;letter-spacing:-.18px;color:var(--txt-grey);
}
.why__cta{position:absolute;left:773.781px;top:637.84px}

/* endcap on this page sits on flat ink, shifted 2px per the About frame */
.footer--ink{background:var(--ink)}
.page-about .footer--ink{height:697.14px}
.footer--ink .footer__inner{left:calc(50% - 874px + 8px);background:var(--ink)}
.page-about .legal__c{top:-2.32px}


/* ═══════════════════════════════════════════════════════════
   WORK PAGE  —  Figma: Work, node 1:2632  (1748 × 5860)
   ═══════════════════════════════════════════════════════════ */

/* ---------- hero ---------- */
.whero{height:745.208px;background:var(--ink);overflow:hidden}
.whero__stage{z-index:1}
.whero__copy{
  position:absolute;left:117.461px;top:258.46px;width:849px;
  display:flex;flex-direction:column;gap:38px;align-items:flex-start;
}
.whero__title{
  font-weight:500;font-size:84px;line-height:1.1;letter-spacing:-2.4px;
  color:var(--paper-warm);width:748.289px;height:184px;
}
.whero__title .accent{color:var(--lime)}
.whero__lede{
  font-weight:400;font-size:24px;line-height:1;letter-spacing:-.18px;
  color:var(--txt-mute);width:630.086px;
}
.whero .crumbs{left:117.461px}

/* ---------- case studies ---------- */
.cases{height:3018.792px;background:#fff;color:#000;overflow:hidden}
.cases__logos{position:absolute;left:calc(50% - 874px);top:62.064px;width:1748px;height:71px}
.cases__marquee{display:block;width:1748px;height:71px;max-width:none}

.filters{
  position:absolute;left:110.781px;top:241.108px;width:1526.438px;height:37px;
  display:flex;align-items:center;justify-content:space-between;
}
.filters__row{display:flex;align-items:center;gap:23px}
.chip{
  display:flex;align-items:center;justify-content:center;flex:none;
  height:37px;padding:5px 10px;background:#fff;border:1px solid #ccc;
  font-family:var(--sans);font-weight:400;font-size:14.703px;line-height:24.995px;
  letter-spacing:.0123px;color:#605f5f;white-space:nowrap;
  transition:border-color .3s var(--ease),color .3s var(--ease),background .3s var(--ease);
}
.chip:nth-child(2){width:179px}
.chip:nth-child(3){width:179px}
.chip:nth-child(4){width:176px}
.chip:nth-child(5){width:139px}
.chip:hover{border-color:#8b8b8b;color:#000}
.chip--on{
  width:49px;height:35px;background:var(--lime);border-color:var(--lime);
  font-weight:500;font-size:18px;color:#000;
}
.chip--on:hover{border-color:var(--lime);color:#000}

.search{
  position:relative;flex:none;width:246.063px;height:35.8px;
  display:flex;align-items:center;
  background:#fff;border:.4px solid #d5d5d5;padding:6px 17px;
}
.search__input{
  width:100%;border:0;background:none;outline:none;padding:0;
  font-family:var(--sans);font-weight:400;font-size:17px;line-height:normal;color:#000;
}
.search__input::placeholder{color:#000;opacity:1}
.search__input::-webkit-search-cancel-button{display:none}
.search__ico{
  position:absolute;right:17px;width:14px;height:14px;flex:none;background:#000;
  -webkit-mask:url(assets/svg/search.svg) no-repeat center/contain;
          mask:url(assets/svg/search.svg) no-repeat center/contain;
}
.search:focus-within{border-color:#8b8b8b}

.cases__rule{position:absolute;left:110.781px;top:308.108px;width:1526.438px;height:9px}
.cases__rule::before{
  content:"";position:absolute;left:18.547px;top:3.564px;width:1503.672px;height:1px;
  background:linear-gradient(180deg,rgba(186,186,186,.12) 50%,rgba(186,186,186,.88) 50%);
}
.cases__rule span{position:absolute;left:0;top:0;width:19.845px;height:9px;background:var(--lime)}

/* ---------- a case card ---------- */
.case{
  position:absolute;left:112.05px;width:1508px;height:734px;background:#fff;
}
.case::before{content:"";position:absolute;inset:0;border:1px solid #d5d5d5;pointer-events:none;z-index:2}
.case--1{top:392.108px}
.case--2{top:1215.108px}
.case--3{top:2038.108px}

.case__brand{position:absolute;left:48.07px;top:50.242px;width:176.215px;height:139.231px;object-fit:cover}
/* Text client mark: we hold no logo files and no permission to display client
   marks, and an invented logo is what this component carried before. */
.case__brand--text{
  display:flex;flex-direction:column;justify-content:center;gap:8px;
  width:420px;height:139.231px;margin:0;object-fit:none;
}
.case__client{
  font-family:var(--sans);font-weight:500;font-size:34px;line-height:1.1;
  letter-spacing:-.9px;color:#060b13;
}
.case__kind{
  font-family:var(--ui);font-weight:400;font-size:18px;line-height:1.3;
  letter-spacing:-.18px;color:var(--txt-grey);
}
/* counts and ratings are not growth -- only trend metrics keep the arrow */
.stat__num--flat{padding-left:0}
.case__title{
  position:absolute;left:55.734px;top:232.84px;width:519.133px;height:121.139px;
  display:flex;align-items:center;
  font-weight:500;font-size:38px;line-height:49px;letter-spacing:-.5759px;color:#060b13;
}
.stat{position:absolute;top:420px;height:112px}
.stat--a{left:56px;width:301px}
.stat--b{left:387px;width:342px}
.stat__num{
  position:absolute;left:0;top:0;
  display:flex;align-items:center;gap:6px;height:49px;
  font-weight:500;font-size:38px;line-height:49px;letter-spacing:-.5759px;color:#000;white-space:nowrap;
}
.stat__arrow{
  width:43px;height:43px;flex:none;background:#8ff053;transform:scaleY(-1);
  -webkit-mask:url(assets/svg/stat-arrow.svg) no-repeat center/contain;
          mask:url(assets/svg/stat-arrow.svg) no-repeat center/contain;
}
.stat__rule{position:absolute;left:0;top:68.069px;height:1px;background:rgba(203,203,203,1)}
.stat--a .stat__rule{width:301px}
.stat--b .stat__rule{width:329.648px}
.stat__label{
  position:absolute;left:0;top:89px;width:100%;
  font-weight:400;font-size:23px;line-height:1;letter-spacing:-.18px;color:var(--txt-grey);
}

/* Stands in the shot slot. The Figma placeholders showed unrelated products
   and contradicted the copy beside them; a real stack list is honest and is
   what a technical buyer actually wants at this point on the page. */
.case__panel{
  position:absolute;left:764px;top:1px;width:744px;height:730px;z-index:3;
  background:var(--ink);display:flex;flex-direction:column;justify-content:center;
  padding:0 68px;
}
.case__panelh{
  margin:0 0 26px;font-family:var(--ui);font-weight:500;font-size:16px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--lime);
}
.case__stack{display:flex;flex-wrap:wrap;gap:14px;margin:0;padding:0;list-style:none}
.case__stack li{
  padding:11px 20px;border:1px solid rgba(255,255,255,.22);
  font-family:var(--ui);font-weight:400;font-size:19px;letter-spacing:-.19px;
  color:rgba(255,255,255,.86);
}

.case__bar{
  position:absolute;left:0;top:613px;width:766px;height:121px;z-index:1;
  display:flex;align-items:center;background:var(--grey-100);overflow:hidden;
  transition:background .35s var(--ease);
}
.case--1 .case__bar,.case:hover .case__bar{background:var(--lime)}
.case__more{
  display:flex;align-items:center;gap:10px;margin-left:59px;height:24.505px;
  filter:drop-shadow(0 3.676px 4.901px rgba(128,136,151,.16)) drop-shadow(0 .613px 1.225px rgba(102,109,128,.2));
  font-family:var(--ui);font-weight:600;font-size:24px;line-height:29.161px;
  letter-spacing:-.2205px;color:#060b13;white-space:nowrap;
}
.ico-arrow--lg{width:16.199px;height:16.199px;
  -webkit-mask-image:url(assets/svg/arrow-ne-lg.svg);mask-image:url(assets/svg/arrow-ne-lg.svg)}
.case__bar:hover .ico-arrow--lg{transform:translate(3px,-3px)}
.ico-arrow--lg{transition:transform .4s var(--ease)}
.case__shot{position:absolute;left:764px;top:1px;width:744px;height:730px;object-fit:cover;max-width:none;z-index:3}

.cases__more{position:absolute;left:779.05px;top:2861.108px}

/* ---------- testimonials ---------- */
.voices{height:992px;background:var(--grey-blog);color:#000}
.voices__head{position:absolute;left:125.445px;top:103.596px;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.voices__title{
  width:817.688px;height:74px;display:flex;align-items:center;
  font-weight:500;font-size:55px;line-height:63px;letter-spacing:-1.32px;color:#000;
}

.quote{
  position:absolute;top:312.596px;width:493.852px;height:575.808px;margin:0;
  background:#fff;filter:drop-shadow(0 0 33.59px rgba(0,0,0,.08));
}
.quote--1{left:108.224px}
.quote--2{left:624.075px}
.quote--3{left:1139.927px}
.quote__logo{position:absolute;left:44.188px;top:58.033px;width:146px;height:104px;object-fit:cover}
.quote__rate{
  position:absolute;left:44.188px;top:190.033px;
  display:flex;align-items:center;gap:18.475px;height:38px;
}
.quote__score{
  font-family:var(--manrope);font-weight:500;font-size:27.957px;line-height:normal;
  background:radial-gradient(37.86px 34.26px at 21px 19px,#333 0%,#1a1a1a 50%,#0d0d0d 75%,#060606 87.5%,#000 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.quote__stars{display:flex;align-items:center;filter:drop-shadow(0 49.227px 52.369px rgba(21,21,21,.15))}
.quote__stars i{position:relative;width:29.327px;height:29.327px;flex:none}
.quote__stars i::before{
  content:"";position:absolute;left:2.892px;top:2.343px;width:23.543px;height:22.494px;
  background:#f7871b;
  -webkit-mask:url(assets/svg/star.svg) no-repeat center/contain;
          mask:url(assets/svg/star.svg) no-repeat center/contain;
}
.quote__text{
  position:absolute;left:44.188px;top:236.223px;width:381.805px;margin:0;
  font-weight:400;font-size:22px;line-height:30px;
  background:radial-gradient(344.18px 135.22px at 190.9px 75px,#333 0%,#1a1a1a 50%,#0d0d0d 75%,#060606 87.5%,#000 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.quote__by{position:absolute;left:44.188px;top:414.22px;width:287.133px;height:103.555px;margin:0}

/* Upwork-sourced review: no client logo, no avatar -- the provenance line is
   the proof, and an invented face is what this component had before. */
.quote--uw .quote__src{
  position:absolute;left:44.188px;top:58.033px;width:400px;height:104px;margin:0;
  display:flex;align-items:center;gap:11px;
  font-family:var(--ui);font-weight:500;font-size:17px;letter-spacing:-.17px;color:#6b6b6b;
}
.quote--uw .quote__uw{
  width:30px;height:30px;flex:none;background:#14a800;
  -webkit-mask:url(assets/svg/social-upwork.svg) no-repeat center/contain;
          mask:url(assets/svg/social-upwork.svg) no-repeat center/contain;
}
.quote--uw .quote__by{height:auto}
.quote--uw .quote__name{left:0;top:12px;font-size:24px}
.quote--uw .quote__org{
  left:0;top:50px;white-space:normal;width:340px;font-size:16px;line-height:1.4;
}
.quote__face{position:absolute;left:0;top:0;width:103.555px;height:103.555px;border-radius:50%;object-fit:cover}
.quote__name{
  position:absolute;left:119.133px;top:21.383px;
  font-family:var(--manrope);font-weight:500;font-size:27.957px;line-height:normal;white-space:nowrap;
  background:radial-gradient(118.09px 34.26px at 65.5px 19px,#333 0%,#1a1a1a 50%,#0d0d0d 75%,#060606 87.5%,#000 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.quote__org{
  position:absolute;left:119.133px;top:59.172px;
  font-family:var(--poppins);font-weight:400;font-size:15.116px;line-height:normal;white-space:nowrap;
  background:radial-gradient(151.45px 20.73px at 84px 11.5px,#333 0%,#1a1a1a 50%,#0d0d0d 75%,#060606 87.5%,#000 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}


/* ═══════════════════════════════════════════════════════════
   SERVICE PAGE — Mobile App Development
   Figma: node 1:844  (1748 × 6851)
   ═══════════════════════════════════════════════════════════ */

.eyebrow--white{color:#fff}
.eyebrow--flush{width:auto;padding-left:0}

/* ---------- hero ---------- */
.shero{height:718.978px;background:var(--ink);overflow:hidden}
.shero__stage{z-index:1}
.shero__shot{
  position:absolute;left:957.7px;top:167.5px;width:790.3px;height:790.2px;
  object-fit:cover;max-width:none;
}
.shero .crumbs{left:117.961px}
.shero__copy{
  position:absolute;left:117.961px;top:260.271px;width:849px;
  display:flex;flex-direction:column;gap:32px;align-items:flex-start;
}
.shero__title{
  font-weight:500;font-size:84px;line-height:1.1;letter-spacing:-2.4px;
  color:#fff;width:832.188px;height:184px;
}
.shero__title .accent{color:var(--lime)}
.shero__lede{
  font-weight:400;font-size:24px;line-height:1;letter-spacing:-.18px;
  color:var(--txt-mute);width:773.625px;
}

/* ---------- what we do ---------- */
.feat{height:1540.78px;background:#fff;color:#000;overflow:hidden}
.feat .cases__logos{top:73.704px}
.feat__head{
  position:absolute;left:408px;top:375.022px;width:932px;
  display:flex;flex-direction:column;gap:20px;align-items:center;
}
.feat__title{width:929.922px;white-space:normal}

.fgrid{position:absolute;left:186.5px;top:587.882px;width:1375px;height:772.42px}
.fcard{
  position:absolute;width:417.33px;height:369.79px;background:#fff;
  filter:drop-shadow(20px 20px 40px rgba(0,0,0,.08));
  transition:translate .4s var(--ease);
}
.fcard:hover{translate:0 -4px}
.fcard:nth-child(1){left:0;top:0}
.fcard:nth-child(2){left:479px;top:0}
.fcard:nth-child(3){left:958px;top:0}
.fcard:nth-child(4){left:0;top:402.42px}
.fcard:nth-child(5){left:479px;top:402.42px}
.fcard:nth-child(6){left:958px;top:402.42px}
.fcard:nth-child(1) .fcard__tile{left:39.516px;top:48.514px}
.fcard__tile{
  position:absolute;left:31.992px;top:39.99px;width:71.031px;height:68.145px;
  background:#fff;border:.25px solid #ccc;box-shadow:10px 10px 30px rgba(0,0,0,.05);
}
.fcard__ico{position:absolute;max-width:none}
.fcard__ico--custom{left:11.516px;top:10.573px;width:48px;height:47px}
.fcard__ico--arch{left:12.516px;top:11.073px;width:46px;height:46px}
.fcard__ico--ux{left:11.516px;top:10.073px;width:48px;height:48px}
.fcard__ico--cross{left:16.016px;top:14.073px;width:40px;height:40px}
.fcard__ico--perf{left:14.016px;top:12.073px;width:43px;height:44px}
.fcard__ico--ai{left:5.156px;top:6.59px;width:56.855px;height:56.815px}
.fcard__h{
  position:absolute;left:31.992px;top:195.24px;width:353.34px;height:36.7px;
  display:flex;align-items:center;
  font-weight:500;font-size:26px;line-height:31.2px;letter-spacing:1px;color:#000;
}
.fcard__p{
  position:absolute;left:31.992px;top:246.11px;width:326.8px;height:72.42px;
  display:flex;align-items:center;
  font-family:var(--ui);font-weight:400;font-size:18px;line-height:25.2px;
  letter-spacing:-.18px;color:var(--txt-grey);
}

/* ---------- built for growth ---------- */
.growth{height:942.821px;background:var(--ink);overflow:hidden}
.growth__glow{
  position:absolute;left:calc(50% - 874px + 634.551px);top:-159.934px;
  width:1549.5px;height:1230px;max-width:none;pointer-events:none;
}
.growth .stage{z-index:1}
.growth__phone{
  position:absolute;left:1050.836px;top:169.073px;width:579.991px;height:629.682px;
  object-fit:cover;max-width:none;
}
.growth__copy{position:absolute;left:118px;top:260.414px;width:693px;height:447px}
.growth__copy .eyebrow{position:absolute;left:0;top:0}
.growth__title{
  position:absolute;left:0;top:45px;width:765.695px;height:134px;
  display:flex;align-items:center;
  font-weight:500;font-size:55px;line-height:1.18;letter-spacing:-2.4px;color:#fff;
}
.growth__body{
  position:absolute;left:0;top:211px;width:693px;height:148px;
  font-weight:400;font-size:24px;line-height:1.22;letter-spacing:-.18px;
  color:rgba(249,249,249,.81);
}
.growth__cta{position:absolute;left:0;top:391px;width:157px}

/* ---------- tech stack (shares .tools) ---------- */
.page-svc .tools{height:652.291px}
.page-svc .tools__glow{left:calc(50% - 874px + 93.07px);top:0;width:1550px;height:608px}
/* the Figma section is 608 tall inside a 652 band — clip decoration and cards to it */
.page-svc .tools__bg,.page-svc .tools__stage{height:608px;bottom:auto;overflow:hidden}
.page-svc .tools__copy{gap:37px}
.page-svc .tools__title{width:682.836px}
.page-svc .tools__body{width:561px}

/* ---------- SaaS page: geometry deltas from the mobile service page ---------- */
.page-saas .shero__shot{left:978.88px;top:165.0px;width:825.4px;height:644.9px}
.page-saas .shero__title{width:849px}
.page-saas .feat__head{left:366.5px;width:1015px}
.page-saas .feat__title{width:1015px}
.page-saas .growth__phone{left:1005.139px;top:149.339px;width:655.027px;height:655.027px}
.page-saas .growth__copy{height:418px}
.page-saas .growth__title{width:612.656px}
.page-saas .growth__body{height:119px}
.page-saas .growth__cta{top:362px}
.page-saas .why__title{width:1195.906px}
/* on this frame Ellipse 6208 sits ABOVE the tech cards, not behind them */
.page-saas .tools__over{position:absolute;left:0;top:0;width:100%;height:608px;z-index:2;pointer-events:none;overflow:hidden}

/* ---------- AI page: geometry deltas ---------- */
.page-ai .shero__shot{left:981px;top:162px;width:803px;height:557px}
.page-ai .feat__head{left:327.5px;width:1093px}
.page-ai .feat__title{width:1111.563px}

/* ---------- faq (shares .acc) ---------- */
.page-svc .acc__a>p{font-size:24px}
.page-svc .acc__item.is-open .acc__a>p{padding-bottom:19.6px}

.page-svc .footer--ink{height:696.27px}


/* ═══════════════════════════════════════════════════════════
   CONTACT PAGE  —  Figma: Contact Us, node 1:2063  (1748 × 4210)
   ═══════════════════════════════════════════════════════════ */

.chero{
  height:669.677px;background:var(--ink) url(assets/img/contact-hero.webp) no-repeat center top;
  background-size:1748px 670px;overflow:hidden;
}
.chero__stage{z-index:1}
.chero .crumbs{left:117.961px}
.chero__copy{position:absolute;left:118px;top:260px;width:529px}
.chero__title{
  font-weight:500;font-size:84px;line-height:1.1;letter-spacing:-2.4px;
  color:#fff;width:685.891px;
}
.chero__title .accent{color:var(--lime)}

/* ---------- help ---------- */
.help{height:1436.563px;background:#fff;color:#000;overflow:hidden}
.help__head{position:absolute;left:120px;top:118.323px;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.help__title{width:1036px;white-space:normal}

/* contact cards */
.ccard{
  position:absolute;left:120px;width:617px;background:var(--grey-blog);
  filter:drop-shadow(20px 20px 40px rgba(0,0,0,.08));
  transition:translate .35s var(--ease);
}
.ccard--1{top:333.144px;height:115.857px}
.ccard--2{top:507.625px;height:115.857px}
.ccard--map{top:682.323px;height:115.857px}
a.ccard:hover{translate:0 -3px}
.ccard__tile{
  position:absolute;left:31px;top:22px;width:71.031px;height:68.145px;
  background:url(assets/svg/contact-tile.svg) no-repeat center/contain;
}

.ccard__body{position:absolute;left:128.031px;top:23.572px;width:376.434px;display:block}

.ccard__title{
  display:flex;align-items:center;height:36px;
  font-weight:500;font-size:26px;line-height:35.287px;letter-spacing:-.5759px;color:#060b13;
}
.ccard__sub{
  display:block;margin-top:2px;
  font-family:var(--ui);font-weight:400;font-size:22px;line-height:normal;color:#a1a0a0;
}
.ccard__go{
  position:absolute;left:542.465px;top:43.614px;width:24.917px;height:24.917px;
  background:url(assets/svg/arrow-ne-lime.svg) no-repeat center/contain;
  transition:transform .4s var(--ease);
}

a.ccard:hover .ccard__go{transform:translate(3px,-3px)}

/* form */
.cform__frame{
  position:absolute;left:851.93px;top:302.045px;width:763.961px;height:972.611px;
  border:4px solid var(--lime);box-shadow:0 0 60px 30px rgba(0,0,0,.03);pointer-events:none;
}
.cform{position:absolute;left:874px;top:285.323px;width:743px;height:968px;background:#000;overflow:hidden}
.cform__pattern{
  position:absolute;left:-229.4px;top:0;width:1211.99px;height:897.777px;
  opacity:.1;object-fit:cover;max-width:none;pointer-events:none;
}
.cform__glow{
  position:absolute;left:-31.15px;top:238.35px;width:872.648px;height:625.473px;
  background:radial-gradient(closest-side,rgba(223,254,0,.055) 0%,rgba(223,254,0,.03) 55%,rgba(223,254,0,0) 100%);
  pointer-events:none;
}
.cform__grid{
  position:absolute;left:46.5px;top:64px;width:668px;
  display:grid;grid-template-columns:325px 325px;column-gap:18px;row-gap:40px;
}
.cfield{position:relative;height:134.354px;margin:0}
.cfield--wide{grid-column:1 / -1;width:668px}
.cfield__l{
  position:absolute;left:0;top:0;height:53px;display:flex;align-items:center;
  font-weight:500;font-size:24px;line-height:52.8px;letter-spacing:-1.32px;color:#fff;white-space:nowrap;
}
.cfield__i{
  position:absolute;left:0;top:65px;width:100%;height:69.354px;
  background:#2f2f2f;border:0;border-top:1px solid var(--lime);border-bottom:1px solid var(--lime);
  padding:0 18px;font-family:var(--sans);font-size:20px;color:#fff;outline:none;
  transition:background .3s var(--ease);
}
.cfield__i:focus{background:#3a3a3a}
.cform__opt{
  position:absolute;left:48.992px;top:757.89px;width:665.609px;
  display:flex;align-items:center;gap:14px;margin:0;
}
.cform__box{
  appearance:none;-webkit-appearance:none;flex:none;margin:0;
  width:21.523px;height:22.319px;background:#2f2f2f;border:1px solid var(--lime);cursor:pointer;
}
.cform__box:checked{background:var(--lime)}
.cform__opt label{
  width:630.086px;font-weight:400;font-size:20px;line-height:1;letter-spacing:-.18px;color:#fff;cursor:pointer;
}
.cform__send{position:absolute;left:540.602px;top:869.777px}
.cform__fineprint{
  position:absolute;left:48.992px;top:818px;width:665.609px;margin:0;
  font-family:var(--ui);font-weight:400;font-size:16px;line-height:1.45;
  letter-spacing:-.16px;color:rgba(255,255,255,.6);
}
.cform__fineprint a{color:var(--lime);text-decoration:underline;text-underline-offset:3px}
.cform__status{
  position:absolute;left:48.992px;top:869.777px;width:476px;min-height:56px;margin:0;
  display:flex;align-items:center;
  font-family:var(--ui);font-weight:400;font-size:16px;line-height:1.35;
  letter-spacing:-.16px;color:rgba(255,255,255,.72);
}
.cform__status:empty{display:none}
.cform__status.is-err{color:#ff8f8f}
.cform__send:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(1)}
.cform__send:disabled:hover{transform:none;box-shadow:none}

.page-contact .footer--ink{height:698.9px}

/* ═══════════════ THANK YOU ═══════════════ */
/* Built in normal flow rather than on the 1748px absolute canvas: this page has
   no Figma frame to match, and flow is where Phase 4 takes everything anyway. */
.chero--thanks{height:auto;min-height:0;padding:200.46px 0 76px}
/* Put the hero into flow so the lede cannot be clipped by a guessed height --
   .chero__copy is absolute on the contact page and contributes no height. */
.chero--thanks .crumbs{position:relative;left:auto;top:auto;padding-left:117.961px}
.chero--thanks .chero__copy{position:relative;left:auto;top:auto;width:auto;padding:60px 0 0 118px}
.chero--thanks .chero__title{width:auto;max-width:760px}
.thanks__lede{
  width:560px;margin:26px 0 0;
  font-family:var(--ui);font-weight:400;font-size:24px;line-height:1.5;
  letter-spacing:-.24px;color:rgba(255,255,255,.78);
}
.thanks__lede strong{color:#fff;font-weight:500}

.thanks{background:#fff;color:#000;padding:112px 0 132px}
.thanks__head{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding-left:118px}
.thanks .sec-title{white-space:normal;height:auto;width:auto;max-width:840px}
.thanks .sec-title .accent{color:var(--lime-2)}

.thanks__steps{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px;
  margin:72px 0 0;padding:0 118px;list-style:none;
}
.thanks__step{position:relative;padding-top:30px;border-top:2px solid #e4e4e4}
.thanks__step:first-child{border-top-color:var(--lime-2)}
.thanks__n{
  display:block;margin-bottom:18px;
  font-family:var(--poppins);font-weight:400;font-size:20px;line-height:1;
  letter-spacing:.4px;color:var(--txt-eyebrow);font-variant-numeric:tabular-nums;
}
.thanks__h{
  margin:0 0 14px;font-family:var(--sans);font-weight:500;font-size:26px;
  line-height:1.25;letter-spacing:-.5px;color:#000;
}
.thanks__p{
  margin:0;font-family:var(--ui);font-weight:400;font-size:18px;line-height:1.55;
  letter-spacing:-.18px;color:var(--txt-grey);
}
.thanks__alt{
  margin:72px 0 0;padding:0 118px;
  font-family:var(--ui);font-weight:400;font-size:18px;line-height:1.55;color:var(--txt-grey);
}
.thanks__alt a{color:#000;text-decoration:underline;text-underline-offset:3px}
.thanks__alt a:hover{color:var(--lime-2)}
.thanks__back{margin:36px 0 0 118px;width:auto;padding:0 26px}

/* ═══════════════ CASE STUDY DETAIL ═══════════════ */
.cs{background:#fff;color:#000;padding:104px 0 128px}
.cs__facts{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:38px;
  margin:0 0 84px;padding:0 118px 56px;border-bottom:1px solid #e4e4e4;
}
.cs__facts div{display:flex;flex-direction:column;gap:9px}
.cs__facts dt{
  font-family:var(--ui);font-weight:500;font-size:16px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--txt-eyebrow);
}
.cs__facts dd{
  margin:0;font-family:var(--sans);font-weight:500;font-size:20px;line-height:1.4;
  letter-spacing:-.3px;color:#060b13;
}
.cs__body{max-width:768px;padding:0 0 0 118px}
.cs__h2{
  margin:56px 0 20px;font-family:var(--sans);font-weight:500;font-size:34px;
  line-height:1.2;letter-spacing:-.8px;color:#060b13;
}
.cs__body .cs__h2:first-child{margin-top:0}
.cs__p{
  margin:0 0 20px;font-family:var(--ui);font-weight:400;font-size:19px;line-height:1.65;
  letter-spacing:-.19px;color:#3d3d3d;
}
.cs__p strong{font-weight:600;color:#060b13}
.cs__p--stack{color:var(--txt-grey);font-size:18px}
.cs__quote{
  margin:36px 0;padding:28px 32px;background:var(--grey-50);border-left:3px solid var(--lime-2);
}
.cs__quote p{
  margin:0 0 14px;font-family:var(--sans);font-weight:400;font-size:22px;line-height:1.5;
  letter-spacing:-.4px;color:#060b13;
}
.quote__src a{color:inherit;text-decoration:underline;text-underline-offset:3px;transition:color .3s var(--ease)}
.quote__src a:hover{color:#14a800}
.inline-link{color:inherit;text-decoration:underline;text-underline-offset:3px}
.inline-link:hover{color:var(--lime-2)}
.cs__quote footer{
  font-family:var(--ui);font-weight:400;font-size:16px;color:var(--txt-grey);
}
.cs__cta{
  margin:88px 118px 0;padding-top:44px;border-top:1px solid #e4e4e4;
  display:flex;align-items:center;gap:28px;flex-wrap:wrap;
}
.cs__ctaline{
  margin:0;font-family:var(--sans);font-weight:500;font-size:26px;
  letter-spacing:-.5px;color:#060b13;
}
.eyebrow--white{color:#fff}

/* ═══════════════ REVEAL ═══════════════ */
.js .reveal{opacity:0;translate:0 26px;transition:opacity .8s var(--ease),translate .8s var(--ease)}
.js .reveal.is-in{opacity:1;translate:none}
.svc-grid .reveal:nth-child(2),.post-grid .reveal:nth-child(2),.work__grid .reveal:nth-child(2){transition-delay:.09s}
.svc-grid .reveal:nth-child(3),.post-grid .reveal:nth-child(3),.work__grid .reveal:nth-child(3){transition-delay:.18s}
.proc-grid .reveal:nth-child(2){transition-delay:.07s}
.proc-grid .reveal:nth-child(3){transition-delay:.14s}
.proc-grid .reveal:nth-child(4){transition-delay:.05s}
.proc-grid .reveal:nth-child(5){transition-delay:.12s}
.proc-grid .reveal:nth-child(6){transition-delay:.19s}
.tile.reveal:nth-of-type(2){transition-delay:.07s}
.tile.reveal:nth-of-type(3){transition-delay:.14s}
.tile.reveal:nth-of-type(4){transition-delay:.21s}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;translate:none;transition:none}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ≥1748px  → 1:1 with Figma
   1100–1747 → whole canvas uniformly zoomed (var set by JS)
   <1100px  → re-flowed layout
   ═══════════════════════════════════════════════════════════ */

@media (max-width:1099.98px){
  body{zoom:1!important}

  .stage{width:100%;height:auto}
  section,.endcap>*{height:auto!important}

  .wrap{width:min(100% - 40px,720px);margin-inline:auto}

  /* nav */
  .navbar-wrap{top:0;padding:12px 0}
  .navbar{width:calc(100% - 32px);height:66px;padding:10px 10px 10px 14px}
  .navlinks,.navbar__cta{display:none}
  .navtoggle{
    display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:44px;height:44px;align-items:center;
  }
  .navtoggle span{display:block;width:22px;height:2px;background:#fff;transition:transform .35s var(--ease),opacity .25s var(--ease)}
  .navtoggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .navtoggle[aria-expanded=true] span:nth-child(2){opacity:0}
  .navtoggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .brand__mark{width:34px;height:34px;margin-top:2.6px}
  .brand__text{width:140px;height:40px}
  .brand__name{font-size:19px;line-height:19.5px;letter-spacing:.19px}
  .brand__sub{top:22px;font-size:15.8px;line-height:17px;letter-spacing:8.05px}

  .mobilemenu{
    display:block;position:fixed;inset:0;z-index:55;
    background:rgba(9,9,9,.97);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
    padding:120px 28px 48px;
    opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s;
  }
  .mobilemenu[hidden]{display:block}
  .mobilemenu.is-open{opacity:1;visibility:visible}
  .mobilemenu ul{display:flex;flex-direction:column;gap:8px;margin-bottom:32px}
  .mobilemenu a{display:block;padding:14px 0;font-size:28px;font-weight:500;border-bottom:1px solid rgba(255,255,255,.08)}
  .mobilemenu .btn{width:100%}

  /* hero */
  .hero{padding:130px 0 64px;overflow:hidden}
  .hero__glow{left:auto;right:-260px;top:-120px;width:620px;height:790px}
  .hero__comet{left:-140px;top:360px;width:620px;height:620px}
  .hero__comet2{
  position:absolute;left:calc(50% - 874px + 710px);top:330px;width:600px;height:520px;
  background:radial-gradient(closest-side,rgba(179,201,21,.055) 0%,rgba(179,201,21,.035) 45%,rgba(179,201,21,0) 100%);
}
.hero__beam{display:none}
  .hero__copy,.hero__mockup,.hero__swoosh,.hero__rule{position:static}
  .hero__glow{position:absolute}
  .hero__stage{display:flex;flex-direction:column}
  .hero__copy{order:1}
  .hero__mockup{order:2}
  .hero__rule{order:3}
  .hero__copy{width:min(100% - 40px,720px);margin-inline:auto;gap:22px}
  .hero__title{font-size:clamp(38px,8.6vw,64px);letter-spacing:-1.4px}
  .hero__lede{width:100%;font-size:clamp(16px,4vw,20px);line-height:1.45}
  .hero__actions{flex-wrap:wrap;gap:14px}
  .btn--white{width:190px;font-size:17px}
  .hero__swoosh{display:none}
  .hero__mockup{width:min(84%,420px);height:auto;margin:36px auto 0}
  .hero__rule{display:block;width:min(100% - 40px,720px);margin:44px auto 0;height:2px}

  /* generic section rhythm */
  .services,.about,.tools,.process,.work,.faq,.insights{padding:72px 0}
  .sec-head{position:static!important;width:min(100% - 40px,720px)!important;margin-inline:auto;text-align:center}
  .sec-title{font-size:clamp(30px,6.4vw,44px);line-height:1.12;height:auto;white-space:normal;text-align:center;display:block;letter-spacing:-.9px}
  .eyebrow{justify-content:center;font-size:17px}

  /* services */
  .svc-grid{position:static;flex-direction:column;gap:26px;width:min(100% - 40px,720px);margin:38px auto 0}
  .svc-card{width:100%;height:auto;padding:18px}
  .svc-card__media{width:100%;height:auto;aspect-ratio:444.67/275.67}
  .svc-card__title{font-size:clamp(24px,5.4vw,34px);height:auto}
  .svc-card__meta{font-size:17px;height:auto}
  .svc-card__foot{height:auto;margin-top:18px}
  
  /* about */
  .about__tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;width:min(100% - 40px,720px);margin-inline:auto}
  .tile{position:relative;left:auto!important;top:auto!important;width:100%;height:180px}
  .tile__copy{position:absolute;left:18px!important;top:22px!important;width:calc(100% - 120px);height:auto!important}
  .tile__num{font-size:clamp(26px,6vw,40px);line-height:1.15;height:auto!important}
  .tile__num--sm{font-size:clamp(21px,4.6vw,30px);line-height:1.15}
  .tile__label{font-size:15px;line-height:20px;height:auto}
  .tile__art{left:auto!important;right:8px;top:auto!important;bottom:10px;width:86px!important;height:86px!important}
  .about__copy{position:static;width:min(100% - 40px,720px);margin:44px auto 0;text-align:center}
  .about__copy .eyebrow{padding-left:0}
  .about__title{position:static;width:100%;margin-top:14px;font-size:clamp(30px,6.4vw,44px);letter-spacing:-1px}
  .about__body{position:static;width:100%;height:auto;margin-top:18px;font-size:18px;line-height:1.5}
  .about__copy .btn{position:static;margin:26px auto 0}

  /* tools */
  .tools{overflow:hidden}
  .tools__glow{left:-40%;top:-30%;width:180%;height:auto}
  .sec-title{--tw:auto!important}
  .tools__pattern{left:0;top:0;width:100%;height:100%}
  .tools__copy{position:static;transform:none;width:min(100% - 40px,720px);margin-inline:auto;gap:18px}
  .tools__title{font-size:clamp(30px,6.4vw,44px);line-height:1.14}
  .tools__body{width:100%;font-size:18px}
  .tools__col{position:static;width:100%;height:auto;display:flex;gap:16px;margin-top:34px;overflow-x:auto;scrollbar-width:none;padding-inline:20px}
  .tools__col::-webkit-scrollbar{display:none}
  .tools__col--b{margin-top:16px}
  .techcard{position:relative;top:auto!important;flex:none;width:200px;height:176px}
  .techcard__ring{left:50%;top:20px;transform:translateX(-50%)}
  .techcard__ring>img{width:100px;height:100px}
  .techcard__logo{left:calc(50% - 28px)!important;top:22px;width:56px;height:56px}
  .techcard__solo{left:50%;top:24px;transform:translateX(-50%);width:68px;height:68px}
  .techcard__label{left:0!important;top:auto!important;bottom:20px;width:100%;text-align:center;font-size:14px;white-space:normal;padding:0 8px;line-height:1.25}

  /* process */
  .proc-grid{position:static;grid-template-columns:1fr;gap:22px;width:min(100% - 40px,720px);margin:38px auto 0}
  .proc{width:100%;height:auto;padding:28px 26px 30px}
  .proc__icon{position:relative;left:auto!important;top:auto!important}
  .proc__title{position:static;width:auto;height:auto;margin-top:26px}
  .proc__body{position:static;width:100%;height:auto;margin-top:12px}

  /* work */
  .work__orb{left:-120px!important;width:320px;height:320px}
  .work__orb--1{top:60px}
  .work__orb--2{top:520px}
  .work__orb--3{top:980px}
  .work__head{position:static;width:min(100% - 40px,720px);margin-inline:auto;text-align:center;align-items:center}
  .work__head .eyebrow{justify-content:center}
  .work__title{font-size:clamp(30px,6.4vw,44px);line-height:1.14;height:auto;white-space:normal;text-align:center;display:block;letter-spacing:-.9px}
  .work__cta{position:static;margin:26px auto 0;display:flex}
  .work__grid{position:static;flex-direction:column;gap:44px;width:min(100% - 40px,720px);margin:44px auto 0}
  .wcard{width:100%}
  .wcard:nth-child(3){margin-left:0}
  .wcard__media{height:auto;aspect-ratio:494/322}
  .wcard__title{font-size:clamp(22px,5vw,28px)}
  .wcard__body{font-size:18px;line-height:1.45}

  /* faq */
  .faq__panel{position:static;width:100%;height:auto;padding:72px 0}
  .faq{padding:0}
  .acc{position:static;width:min(100% - 40px,720px);margin:38px auto 0}
  .acc__q{height:auto;min-height:78px;gap:20px;padding:22px 20px 22px 22px;font-size:clamp(17px,4vw,22px)}
  .acc__item.is-open .acc__q{height:auto;padding-bottom:8px}
  .acc__a>p{padding:0 22px 0 62px;font-size:16px;width:auto}
  .acc__ico{width:18px;height:18px}
  .acc__ico::before{width:18px;top:8px}
  .acc__ico::after{left:8px;width:2px;height:18px}
  .acc__item.is-open .acc__ico{width:22px;margin-left:0}
  .acc__item.is-open .acc__ico::before{width:22px}

  /* insights */
  .insights__panel{position:static;width:100%;height:auto;padding:72px 0}
  .insights{padding:0}
  .insights__title{height:auto;line-height:1.12}
  .post-grid{position:static;flex-direction:column;gap:48px;width:min(100% - 40px,720px);margin:38px auto 0}
  .post{width:100%}
  .post__media{height:auto;aspect-ratio:469/362.675}
  .post__title{width:100%;height:auto;font-size:clamp(21px,4.8vw,26px);line-height:1.25}
  .post__body{height:auto;font-size:16px;line-height:1.6}
  .post__body br,.proc__body br{display:none}
  .post__tags{flex-wrap:wrap;height:auto;gap:8px}
  .post__tags span{width:auto!important;padding:0 10px}
  .post__link{height:auto!important;padding-top:0!important;align-items:center!important}
  .insights__cta{position:static;margin:38px auto 0;display:flex}

  /* cta */
  .cta{padding:80px 0 90px}
  .cta__bg{left:0;width:100%;height:100%}
  .cta__glow{left:-10%;top:-40%;width:120%;height:120%}
  .cta__glow2{display:none}
  .cta__pattern{left:0;top:0;width:100%;height:100%}
  .cta__copy{position:static;width:min(100% - 40px,720px);margin-inline:auto}
  .cta__title{font-size:clamp(28px,6.6vw,46px);line-height:1.12;height:auto;white-space:normal;text-align:center;display:block}
  .cta__body{width:100%;height:auto;font-size:18px;line-height:1.5}

  /* footer */
  .footer{padding:0}
  .footer__inner{position:static;width:100%;height:auto;padding:64px 0 40px}
  .brand--lg{position:static;width:min(100% - 40px,720px);margin-inline:auto;gap:10px}
  .brand--lg .brand__mark{width:54px;height:54px;margin-top:4px}
  .brand--lg .brand__text{width:220px;height:62px}
  .brand--lg .brand__name{font-size:30px;line-height:30px}
  .brand--lg .brand__sub{top:34px;font-size:25px;line-height:27px;letter-spacing:12.7px}
  .news{position:static;width:min(100% - 40px,720px);margin:36px auto 0}
  .news__row{flex-wrap:wrap}
  .news__input{flex:1 1 200px;width:auto;padding-right:17px}
  .fcols{position:static;width:min(100% - 40px,720px);height:auto;margin:44px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:36px 20px}
  .fcol{position:static;width:auto!important;gap:14px}
  .fcol__h{font-size:22px;height:auto}
  .fcol>a{position:static;font-size:18px;height:auto}
  .fcol--social{grid-column:1 / -1}
  .socials{position:static}
  .footer__rule{position:static;width:min(100% - 40px,720px);margin:40px auto 0;background:rgba(255,255,255,.28)}
  .footer__bottom{position:static;width:min(100% - 40px,720px);margin:26px auto 0;height:auto;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
  .sayhi,.legal,.contactline{position:static;width:auto;font-size:16px}
  .contactline{flex-direction:column;align-items:flex-start;gap:4px}
  .contactline a{display:flex;align-items:center;min-height:44px;width:auto}
  .sayhi img{width:28px;height:28px}

  /* ───────── about page ───────── */
  .page-about .sec-title,.vmv__title,.vrow__title,.who__p,.vrow__text,.whycol__p{top:0}

  .ahero{padding:118px 0 60px;overflow:hidden}
  .ahero__stage{display:flex;flex-direction:column}
  .ahero .hero__glow{position:absolute;left:auto;right:-280px;top:-150px;width:600px;height:760px}
  .crumbs,.ahero__copy{position:static;width:min(100% - 40px,720px);margin-inline:auto}
  .crumbs{margin-bottom:20px;font-size:16px}
  .ahero__copy{gap:22px}
  .ahero__title{font-size:clamp(38px,8.6vw,64px);line-height:1.08;letter-spacing:-1.4px}
  .ahero__lede{width:100%;font-size:clamp(16px,4vw,20px);line-height:1.5}

  .who,.vmv,.why{padding:72px 0}
  .who .stage,.vmv .stage,.why .stage{display:flex;flex-direction:column}

  .who__head{position:static;width:min(100% - 40px,720px);margin-inline:auto;align-items:center;text-align:center}
  .who__title{width:100%}
  .who__ring{display:none}
  .who__orb{position:static;order:4;width:min(46%,220px);height:auto;margin:26px auto 0}
  .who__shot{position:relative;left:auto;top:auto;width:min(100% - 40px,720px);height:auto;margin:34px auto 0}
  .who__shot--facade{order:2;aspect-ratio:472.047/496.299}
  .who__shot--banner{order:3;aspect-ratio:878.438/496.299}
  .who__shot--banner img{position:absolute;left:0;top:0;width:100%;height:auto}
  .who__copy{position:static;order:5;width:min(100% - 40px,720px);margin:38px auto 0}
  .who__p{height:auto;margin-bottom:22px;font-size:clamp(16px,4vw,20px);line-height:1.5}
  .who__p--strong{margin-bottom:0}

  .vmv__glow{left:50%;top:-260px;width:min(1100px,180vw);height:auto;translate:-50% 0}
  .vmv__head{position:static;width:min(100% - 40px,720px);margin-inline:auto;align-items:center;text-align:center}
  .vmv__title{
    width:100%;height:auto;display:block;text-align:center;
    font-size:clamp(30px,6.4vw,44px);line-height:1.15;letter-spacing:-1px;
  }
  .vmv__rule{position:relative;left:auto;top:auto;width:min(100% - 40px,720px);height:9px;margin:44px auto 0}
  .vmv__rule::before{left:24px;width:calc(100% - 24px);top:4px;height:1px;background:rgba(255,255,255,.6)}
  .vmv__rule--1 span,.vmv__rule--2 span,.vmv__rule--3 span{left:0;top:0}
  .vrow{
    position:static;width:min(100% - 40px,720px);height:auto;margin:26px auto 0;
    flex-direction:column;align-items:flex-start;gap:22px;
  }
  .vrow__tile{width:120px;height:115px}
  .vrow--1 .vrow__tile img{left:24.3px;top:22.2px;width:71.4px;height:70.6px}
  .vrow--2 .vrow__tile img{left:27.5px;top:25px;width:65.1px;height:65.1px}
  .vrow--3 .vrow__tile img{left:26.7px;top:24.2px;width:66.7px;height:66.7px}
  .vrow__body{width:100%;gap:16px}
  .vrow__title{
    height:auto;display:block;
    font-size:clamp(28px,6vw,40px);line-height:1.15;letter-spacing:-1px;
  }
  .vrow__text{height:auto;font-size:clamp(16px,4vw,20px);line-height:1.5}

  .why__head{position:static;width:min(100% - 40px,720px);margin-inline:auto}
  .why__title{width:100%}
  .whycard{
    position:static;width:min(100% - 40px,720px);height:auto;margin:36px auto 0;
    display:flex;flex-direction:column;border:1px solid #ccc;
  }
  .whycard::before{display:none}
  .whycol{position:relative;left:auto!important;top:auto!important;width:100%!important;padding:24px 22px 24px 24px}
  .whycol+.whycol{border-top:1px solid #ccc}
  .whycol::before{display:none}
  .whycol::after{left:0!important;top:24px;height:calc(100% - 48px);width:4px;margin-left:0}
  .whycol__h{height:auto;display:block;font-size:20px;line-height:1.3;letter-spacing:.6px}
  .whycol__p{height:auto;width:auto;margin-top:8px;font-size:clamp(16px,4vw,19px);line-height:1.5}
  .why__cta{position:static;margin:32px auto 0;display:flex}

  .legal{padding-left:0}
  .legal__c{position:static;display:inline-block;width:22px;height:22px;vertical-align:-5px;margin-right:4px}

  /* ───────── work page ───────── */
  .case__title,.stat__num,.stat__label{top:0}

  .whero{padding:118px 0 60px;overflow:hidden}
  .whero__stage{display:flex;flex-direction:column}
  .whero .hero__glow{position:absolute;left:auto;right:-280px;top:-150px;width:600px;height:760px}
  .whero .crumbs,.whero__copy{position:static;left:auto;width:min(100% - 40px,720px);margin-inline:auto}
  .whero .crumbs{margin-bottom:20px;font-size:16px}
  .whero__copy{gap:24px}
  .whero__title{
    width:100%;height:auto;
    font-size:clamp(38px,8.6vw,64px);line-height:1.08;letter-spacing:-1.4px;
  }
  .whero__lede{width:100%;font-size:clamp(16px,4vw,20px);line-height:1.5}

  .cases{padding:0 0 72px}
  .voices{padding:72px 0}
  .cases .stage,.voices .stage{display:flex;flex-direction:column}

  .cases__logos{
    position:static;width:100%;height:auto;padding-top:52px;
    overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  }
  .cases__logos::-webkit-scrollbar{display:none}
  .cases__marquee{width:1180px;height:48px}

  .filters{
    position:static;width:min(100% - 40px,720px);height:auto;margin:40px auto 0;
    flex-direction:column;align-items:stretch;gap:18px;
  }
  .filters__row{flex-wrap:wrap;gap:10px}
  .chip,.chip:nth-child(2),.chip:nth-child(3),.chip:nth-child(4),.chip:nth-child(5){
    width:auto;height:34px;padding:5px 14px;font-size:14px;
  }
  .chip--on{width:auto;height:34px;font-size:15px}
  .search{width:100%}

  .cases__rule{position:static;width:min(100% - 40px,720px);margin:24px auto 0}
  .cases__rule::before{left:24px;width:calc(100% - 24px)}

  .case{
    position:static;width:min(100% - 40px,720px);height:auto;margin:34px auto 0;
    display:flex;flex-direction:column;
  }
  .case__shot{position:static;order:1;width:100%;height:auto;aspect-ratio:744/730;z-index:auto}
  .case__brand{position:static;order:2;width:150px;height:118px;margin:26px 0 0 24px}
  .case__title{
    position:static;order:3;width:auto;height:auto;display:block;margin:20px 24px 0;
    font-size:clamp(24px,5.4vw,34px);line-height:1.24;
  }
  .stat{position:static;height:auto;margin:26px 24px 0}
  .stat--a{order:4;left:auto;width:auto}
  .stat--b{order:5;left:auto;width:auto}
  .stat__num{position:static;font-size:30px;line-height:40px}
  .stat__arrow{width:34px;height:34px}
  .stat__rule{position:static;display:block;width:100%!important;margin-top:14px}
  .stat__label{position:static;width:auto;margin-top:14px;font-size:18px}
  .case__bar{
    position:static;order:6;width:auto;height:auto;z-index:auto;
    margin:30px 0 0;padding:26px 24px;
  }
  .case__more{margin-left:0;font-size:20px}
  .cases__more{position:static;margin:34px auto 0;display:flex}

  .voices__head{position:static;width:min(100% - 40px,720px);margin-inline:auto}
  .voices__title{
    width:100%;height:auto;display:block;
    font-size:clamp(30px,6.4vw,44px);line-height:1.15;
  }
  .quote{
    position:static;width:min(100% - 40px,720px);height:auto;
    margin:26px auto 0;padding:34px 26px;
  }
  .quote__logo,.quote__rate,.quote__text,.quote__by{position:static;left:auto;top:auto}
  .quote__logo{width:120px;height:86px}
  .quote__rate{margin-top:22px}
  .quote__text{width:auto;margin-top:18px;font-size:18px;line-height:1.55}
  .quote__by{
    width:auto;height:auto;margin-top:26px;
    display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:center;
  }
  .quote__face{position:static;width:76px;height:76px;grid-row:1 / 3}
  .case__panel{position:static;width:auto;height:auto;padding:32px 26px;order:5}
  .case__panelh{font-size:15px;margin-bottom:20px}
  .case__stack{gap:10px}
  .case__stack li{padding:8px 14px;font-size:16px}
  .case__brand--text{width:auto;height:auto;gap:6px}
  .case__client{font-size:26px}
  .case__kind{font-size:16px}
  .quote--uw .quote__src{position:static;width:auto;height:auto;font-size:16px}
  .quote--uw .quote__by{display:block}
  .quote--uw .quote__name,.quote--uw .quote__org{position:static;left:auto;top:auto;width:auto}
  .quote--uw .quote__name{font-size:21px}
  .quote--uw .quote__org{margin-top:4px;font-size:15px}
  .quote__name{position:static;grid-column:2;align-self:end;font-size:22px}
  .quote__org{position:static;grid-column:2;align-self:start;font-size:14px}

  /* ───────── service page ───────── */
  .shero{padding:118px 0 60px;overflow:hidden}
  .shero__stage{display:flex;flex-direction:column}
  .shero .crumbs,.shero__copy{
    position:static;left:auto;top:auto;order:1;
    width:min(100% - 40px,720px);margin-inline:auto;
  }
  .shero .crumbs{margin-bottom:20px;font-size:15px;flex-wrap:wrap;height:auto}
  .shero__copy{gap:24px}
  .shero__title{
    width:100%;height:auto;
    font-size:clamp(38px,8.6vw,64px);line-height:1.08;letter-spacing:-1.4px;
  }
  .shero__lede{width:100%;font-size:clamp(16px,4vw,20px);line-height:1.5}
  .shero__shot{
    position:static;order:2;width:min(100% - 40px,720px);height:auto;
    margin:34px auto 0;
  }

  .feat{padding:0 0 72px}
  .feat .stage{display:flex;flex-direction:column}
  .feat .cases__logos{top:auto}
  .feat__head{position:static;width:min(100% - 40px,720px);margin:40px auto 0}
  .feat__title{width:100%}
  .fgrid{
    position:static;width:min(100% - 40px,720px);height:auto;margin:34px auto 0;
    display:flex;flex-direction:column;gap:22px;
  }
  .fcard{
    position:relative;left:auto!important;top:auto!important;
    width:100%;height:auto;padding-bottom:30px;
  }
  .fcard__tile,.fcard:nth-child(1) .fcard__tile{
    position:relative;left:auto;top:auto;display:block;
    width:71.031px;height:68.145px;margin:32px 0 0 32px;
  }
  .fcard__h{
    position:static;width:auto;height:auto;display:block;margin:26px 32px 0;
    font-size:22px;line-height:1.3;
  }
  .fcard__p{
    position:static;width:auto;height:auto;display:block;margin:12px 32px 0;
    font-size:17px;line-height:24px;
  }

  .growth{padding:72px 0}
  .growth .stage{display:flex;flex-direction:column}
  .growth__glow{left:50%;top:-140px;width:min(1200px,190vw);height:auto;translate:-50% 0}
  .growth__copy{position:static;width:min(100% - 40px,720px);height:auto;margin-inline:auto}
  .growth__copy .eyebrow,.growth__title,.growth__body,.growth__cta{position:static;left:auto;top:auto}
  .growth__title{
    width:100%;height:auto;display:block;margin-top:20px;
    font-size:clamp(30px,6.4vw,44px);line-height:1.15;letter-spacing:-1px;
  }
  .growth__body{width:100%;height:auto;margin-top:24px;font-size:clamp(16px,4vw,20px);line-height:1.5}
  .growth__cta{margin-top:30px;display:flex}
  .growth__phone{
    position:static;order:2;width:min(84%,420px);height:auto;margin:34px auto 0;
  }

  .page-svc .tools,.page-svc .tools__bg,.page-svc .tools__stage{height:auto;overflow:visible}
  .page-svc .tools{overflow:hidden}
  .page-svc .tools__glow{left:-40%;top:-30%;width:180%;height:auto}
  .page-svc .tools__copy{gap:18px}
  .page-svc .tools__title,.page-svc .tools__body{width:100%}
  .page-svc .tools__copy .eyebrow{justify-content:flex-start}

  .page-svc .acc__a>p{font-size:16px}

  /* ───────── contact page ───────── */
  .chero{padding:118px 0 60px;background-size:cover;background-position:right bottom}
  .chero .crumbs,.chero__copy{
    position:static;left:auto;top:auto;width:min(100% - 40px,720px);margin-inline:auto;
  }
  .chero .crumbs{margin-bottom:20px;font-size:16px}
  .chero__title{
    width:100%;font-size:clamp(38px,8.6vw,64px);line-height:1.08;letter-spacing:-1.4px;
  }

  .help{padding:72px 0}
  .help .stage{display:flex;flex-direction:column}
  .help__head{position:static;width:min(100% - 40px,720px);margin-inline:auto}
  .help__title{width:100%}

  .ccard{
    position:static;left:auto;top:auto;width:min(100% - 40px,720px);height:auto!important;
    margin:22px auto 0;padding:22px 24px 26px;display:block;
  }
  .ccard--1{margin-top:34px}
  .ccard__tile,.ccard--map .ccard__tile{position:relative;left:auto;top:auto;display:block}
  .ccard__body,.ccard--map .ccard__body{position:relative;left:auto;top:auto;width:auto;margin-top:14px}
  .ccard__title{font-size:22px;line-height:1.3;height:auto}
  .ccard__sub{font-size:18px}
  .ccard__go,.ccard--map .ccard__go{position:absolute;right:24px;top:34px;left:auto}
  
  .cform__frame{display:none}
  .cform{
    position:static;width:min(100% - 40px,720px);height:auto;margin:30px auto 0;
    padding:34px 24px 40px;border:4px solid var(--lime);
  }
  .cform__pattern{left:0;top:0;width:100%;height:100%}
  .cform__glow{left:-20%;top:20%;width:140%;height:60%}
  .cform__grid{
    position:relative;left:auto;top:auto;width:100%;
    grid-template-columns:1fr;row-gap:26px;
  }
  .cfield,.cfield--wide{height:auto;width:auto}
  .cfield__l{position:relative;height:auto;font-size:20px;line-height:1.4;white-space:normal}
  .cfield__i{position:relative;top:auto;margin-top:10px;height:58px;font-size:17px}
  .cform__opt{position:relative;left:auto;top:auto;width:auto;margin-top:28px;align-items:flex-start}
  .cform__opt label{width:auto;font-size:16px;line-height:1.4}
  .cform__box{margin-top:3px}
  .cform__send{position:relative;left:auto;top:auto;margin-top:28px}
  .cform__fineprint{position:relative;left:auto;top:auto;width:auto;margin-top:20px;font-size:16px}
  .cform__status{position:relative;left:auto;top:auto;width:auto;min-height:0;margin-top:22px}

  /* thank you */
  .chero--thanks{padding:120px 0 44px}
  .chero--thanks .crumbs,.chero--thanks .chero__copy{padding-left:0;width:min(100% - 40px,720px);margin-inline:auto}
  .chero--thanks .chero__copy{padding-top:26px}
  .thanks__lede{width:auto;font-size:19px;margin-top:20px}
  .thanks{padding:64px 0 72px}
  .thanks__head{padding:0;width:min(100% - 40px,720px);margin-inline:auto}
  .thanks__steps{grid-template-columns:1fr;gap:34px;padding:0;width:min(100% - 40px,720px);margin:40px auto 0}
  .thanks__alt{padding:0;width:min(100% - 40px,720px);margin:44px auto 0;font-size:17px}
  .thanks__back{margin:26px auto 0;width:min(100% - 40px,720px);justify-content:center}

  /* case study detail */
  .cs{padding:60px 0 72px}
  .cs__facts{grid-template-columns:1fr 1fr;gap:26px;padding:0 0 34px;margin-bottom:44px;
             width:min(100% - 40px,720px);margin-inline:auto}
  .cs__body{padding:0;width:min(100% - 40px,720px);margin-inline:auto}
  .cs__h2{font-size:26px;margin:40px 0 16px}
  .cs__p{font-size:17px}
  .cs__quote{padding:22px 20px}
  .cs__quote p{font-size:19px}
  .cs__cta{margin:56px auto 0;width:min(100% - 40px,720px);gap:20px}
  .cs__ctaline{font-size:21px}

  /* saas page: neutralise the desktop geometry deltas */
  .page-saas .shero__shot{
    position:static;left:auto;top:auto;width:min(100% - 40px,720px);height:auto;
  }
  .page-saas .shero__title,.page-saas .feat__title,.page-saas .why__title,
  .page-saas .growth__title,.page-saas .growth__body{width:100%}
  .page-saas .feat__head,.page-ai .feat__head{left:auto;width:min(100% - 40px,720px)}
  .page-ai .feat__title{width:100%}
  .page-ai .shero__shot{position:static;left:auto;top:auto;width:min(100% - 40px,720px);height:auto}
  .page-saas .growth__copy{height:auto}
  .page-saas .growth__title{height:auto}
  .page-saas .growth__body{height:auto}
  .page-saas .growth__cta{top:auto}
  .page-saas .growth__phone{
    position:static;left:auto;top:auto;width:min(84%,420px);height:auto;
  }
  .page-saas .tools__over{position:static;height:auto;z-index:auto;overflow:visible}
  .page-saas .tools__over .tools__glow{left:-40%;top:-30%;width:180%;height:auto}
  .tools__warm{display:none}
}

@media (max-width:560px){
  .about__tiles{grid-template-columns:1fr}
  .vrow__tile{width:104px;height:100px}
  .vrow--1 .vrow__tile img{left:21px;top:19.3px;width:61.9px;height:61.3px}
  .vrow--2 .vrow__tile img{left:23.8px;top:21.7px;width:56.4px;height:56.4px}
  .vrow--3 .vrow__tile img{left:23.1px;top:21px;width:57.8px;height:57.8px}
  .who__orb{width:min(58%,200px)}
  .why__cta{width:100%}
  .tile{height:168px}
  .fcols{grid-template-columns:1fr}
  .hero__actions .btn{width:100%}
  .btn--white{width:100%}
}
