/* Project Station · light graphic system */
:root{
  --bg:#FBFAF5;--bg2:#F2F0E8;--white:#fff;--ink:#0F1626;--ink2:#2C3448;--muted:#6C7488;--line:rgba(15,22,38,.1);--line2:rgba(15,22,38,.16);
  --blue:#2D5BFF;--coral:#FF5A36;--lime:#C6F135;--violet:#7A4BFF;--sun:#FFC13B;--mint:#2ED3A0;--pink:#FF6FB5;
  --t-blue:#E4EBFF;--t-coral:#FFE6DF;--t-lime:#EEF9C9;--t-violet:#ECE5FF;--t-sun:#FFF1CC;--t-mint:#D9F7EC;--t-pink:#FFE1F0;
  --f:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --r:28px;--r-sm:18px;--r-lg:40px;
  --sh:0 1px 2px rgba(15,22,38,.04),0 12px 40px -14px rgba(15,22,38,.18);
  --sh-hover:0 2px 4px rgba(15,22,38,.05),0 30px 60px -20px rgba(15,22,38,.28);
  --ease:cubic-bezier(.2,.8,.2,1);--wrap:1320px;
}
*{box-sizing:border-box}
/* Native smooth scrolling is the right default and is what mobile and
   reduced-motion users get. But when Lenis is running it is a second easing
   engine layered on the first: the browser eases toward a target that Lenis is
   already easing toward, and the two compound into exactly the lag this was
   meant to avoid. Lenis stamps .lenis on the root, so hand scrolling entirely
   to it there. */
html{scroll-behavior:smooth}
html.lenis,html.lenis body{scroll-behavior:auto}
/* overflow-x:clip, not hidden. `hidden` on one axis forces the other to `auto`,
   which turns body into a scroll container — that broke IntersectionObserver's
   default root, so [data-reveal] elements below the fold never received .is-in
   and stayed at opacity:0 permanently. `clip` suppresses the same horizontal
   overflow without creating a scroller. */
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-family:var(--f);font-variation-settings:"wdth" 88;letter-spacing:-.035em;line-height:.98;font-weight:700}
h1{font-size:clamp(2.6rem,6vw,5.6rem)}h2{font-size:clamp(2rem,4vw,3.4rem)}h3{font-size:clamp(1.4rem,2.2vw,1.9rem);letter-spacing:-.02em}h4{font-size:1.1rem;letter-spacing:-.01em}
p{margin:0}
.lede{font-size:clamp(1.1rem,1.6vw,1.35rem);color:var(--ink2);max-width:36ch;line-height:1.4}
.muted{color:var(--muted)}.small{font-size:.9rem}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(18px,4vw,48px)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;top:-999px;inset-inline-start:8px;background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:999px;z-index:10000}.skip:focus{top:8px}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
.grad{background:linear-gradient(95deg,var(--blue) 0%,var(--violet) 40%,var(--coral) 75%,var(--sun) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-style:normal;background-size:200% 100%;animation:gradShift 8s ease-in-out infinite alternate}
@keyframes gradShift{to{background-position:100% 0}}
.hi{background:linear-gradient(transparent 58%,var(--lime) 58%);padding:0 .1em}

/* icons */
.ic{width:1.3em;height:1.3em;flex:none}
.ico{display:inline-grid;place-items:center;border-radius:50%;flex:none;transition:transform .5s var(--ease)}
.ico--sm{width:40px;height:40px}.ico--sm .ic{width:20px;height:20px}
.ico--md{width:60px;height:60px}.ico--md .ic{width:28px;height:28px}
.ico--lg{width:84px;height:84px}.ico--lg .ic{width:40px;height:40px}
.ico--xl{width:120px;height:120px}.ico--xl .ic{width:56px;height:56px}
.hue-blue{--h:var(--blue);--t:var(--t-blue)}.hue-coral{--h:var(--coral);--t:var(--t-coral)}.hue-lime{--h:#7FA800;--t:var(--t-lime)}.hue-violet{--h:var(--violet);--t:var(--t-violet)}.hue-sun{--h:#D99700;--t:var(--t-sun)}.hue-mint{--h:#0FA57A;--t:var(--t-mint)}.hue-pink{--h:#E03E8E;--t:var(--t-pink)}
.ico.tint{background:var(--t);color:var(--h)}.ico.solid{background:var(--h);color:#fff}
.hue-lime .ico.solid{background:var(--lime);color:var(--ink)}.hue-sun .ico.solid{background:var(--sun);color:var(--ink)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.7rem;padding:.55rem .55rem .55rem 1.4rem;border-radius:999px;font-weight:600;font-size:1rem;border:2px solid transparent;background:var(--ink);color:#fff;cursor:pointer;font-family:var(--f);transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s;white-space:nowrap;line-height:1}
.btn .ico{width:38px;height:38px;background:rgba(255,255,255,.14)}.btn .ico .ic{width:18px;height:18px}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(15,22,38,.5)}
.btn--blue{background:var(--blue)}.btn--coral{background:var(--coral)}
.btn--lime{background:var(--lime);color:var(--ink)}.btn--lime .ico{background:rgba(15,22,38,.1)}
.btn--white{background:#fff;color:var(--ink);border-color:var(--line2)}.btn--white .ico{background:var(--bg2)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line2)}.btn--ghost .ico{background:var(--bg2)}
.btn--lg{font-size:1.1rem;padding:.7rem .7rem .7rem 1.7rem}.btn--lg .ico{width:46px;height:46px}
.btn--sm{font-size:.9rem;padding:.35rem .35rem .35rem 1rem}.btn--sm .ico{width:30px;height:30px}.btn--sm .ico .ic{width:15px;height:15px}
.btn--plain{padding:.7rem 1.4rem}
.link{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--blue)}.link .ic{width:1.1em;height:1.1em;transition:transform .3s}.link:hover .ic{transform:translateX(4px)}

/* header */
.hdr{position:sticky;top:0;z-index:900;padding:14px 0 0;transition:padding .3s}
.hdr__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:rgba(251,250,245,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--line);border-radius:999px;padding:8px 8px 8px 18px;box-shadow:var(--sh)}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:700;font-size:1.15rem;letter-spacing:-.02em}
.brand__mark{width:34px;height:34px;border-radius:12px;background:var(--ink);display:grid;place-items:center;transition:transform .6s var(--ease)}
.brand:hover .brand__mark{transform:rotate(-12deg) scale(1.08)}
.brand__mark svg{width:20px;height:20px}
.nav__list{display:flex;gap:.2rem;list-style:none;margin:0;padding:0}
.nav__item>a{display:inline-block;padding:.6rem .95rem;border-radius:999px;font-weight:600;font-size:.98rem;transition:background .25s}
.nav__item>a:hover,.nav__item>a.is-on{background:var(--bg2)}
.nav__item.has-mega{position:relative}
.mega{position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,10px);width:min(920px,calc(100vw - 40px));background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-hover);padding:1.2rem;opacity:0;pointer-events:none;transition:opacity .25s,transform .35s var(--ease)}
.has-mega:hover .mega,.has-mega:focus-within .mega,.has-mega.is-open .mega{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.mega__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
/* Navigation group labels, not document headings: three <h4> elements ahead of
   the page <h1> broke the heading outline on every page that has a mega menu. */
.mega__col h4,.mega__col-h{margin:0;padding:.6rem .8rem .3rem;font-size:.8rem;color:var(--muted);font-weight:600;font-family:var(--f)}
.mega__link{display:flex;align-items:center;gap:.7rem;padding:.55rem .8rem;border-radius:14px;font-weight:600;font-size:.95rem;transition:background .2s}
.mega__link:hover{background:var(--t)}
.mega__foot{margin-top:.8rem;padding:.9rem 1rem;border-radius:18px;background:var(--bg2);display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.9rem}
.hdr__cta{display:flex;align-items:center;gap:.5rem}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--ink);color:#fff;place-items:center;cursor:pointer}.burger .ic{width:22px;height:22px}
.mnav{position:fixed;inset:0;z-index:890;background:var(--bg);padding:132px 24px 40px;overflow:auto;transform:translateY(-100%);transition:transform .5s var(--ease);opacity:0}
.mnav.is-open{transform:none;opacity:1}
.mnav__list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.mnav__link{display:flex;align-items:center;gap:1rem;font-size:2rem;font-weight:700;letter-spacing:-.03em;padding:.5rem 0}
.mnav__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:1.5rem}
.mnav__grid a{display:flex;align-items:center;gap:.5rem;padding:.7rem .75rem;border-radius:16px;background:#fff;border:1px solid var(--line);font-weight:600;font-size:.88rem;line-height:1.3;min-width:0;overflow-wrap:break-word;hyphens:auto}
@media (max-width:1100px){.nav,.hdr__phone{display:none}.burger{display:grid}.hdr__cta .btn{display:none}}

/* sections */
.sec{padding:clamp(4rem,9vw,8.5rem) 0}.sec--tight{padding:clamp(2.5rem,5vw,4.5rem) 0}
.sec__head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(2rem,4vw,3.5rem);flex-wrap:wrap}
.sec__head .lede{max-width:44ch}
.kicker{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .9rem .4rem .5rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:600;font-size:.85rem;margin-bottom:1.2rem}
.kicker .ico{width:24px;height:24px}.kicker .ico .ic{width:14px;height:14px}
.sec--blue{background:var(--blue);color:#fff}.sec--ink{background:var(--ink);color:#fff}.sec--tint{background:var(--bg2)}
.sec--blue .lede,.sec--ink .lede{color:rgba(255,255,255,.8)}
.sec--blue .kicker,.sec--ink .kicker{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:#fff}
.grid{display:grid;gap:1.2rem}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;box-shadow:var(--sh);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.card:hover{box-shadow:var(--sh-hover)}
.card--tint{background:var(--t);border-color:transparent}
.card--ink{background:var(--ink);color:#fff;border-color:transparent}
.card--blue{background:var(--blue);color:#fff;border-color:transparent}
.tilt{transform-style:preserve-3d;will-change:transform}

/* hero */
.hero{position:relative;min-height:calc(100vh - 90px);display:grid;align-items:center;padding:clamp(3rem,6vw,5rem) 0 clamp(4rem,8vw,7rem);overflow:hidden}
.hero__in{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2rem;align-items:center}
.hero h1{max-width:13ch;font-size:clamp(2.8rem,5.6vw,5.4rem)}
.hero .lede{margin:1.6rem 0 2rem;max-width:34ch}
.hero__acts{display:flex;gap:.7rem;flex-wrap:wrap}
.hero__badges{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:2.2rem}
.badge{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem .45rem .5rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.88rem;font-weight:600;box-shadow:var(--sh)}
.badge .ico{width:26px;height:26px}.badge .ico .ic{width:14px;height:14px}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;pointer-events:none;will-change:transform}
.blob--1{width:52vw;height:52vw;max-width:720px;max-height:720px;background:radial-gradient(circle at 30% 30%,var(--t-blue),var(--blue) 60%,transparent 72%);top:-12%;right:-8%;opacity:.38}
.blob--2{width:36vw;height:36vw;max-width:520px;max-height:520px;background:radial-gradient(circle,var(--coral),transparent 70%);bottom:-10%;left:-6%;opacity:.35}
.blob--3{width:26vw;height:26vw;max-width:380px;max-height:380px;background:radial-gradient(circle,var(--lime),transparent 70%);top:40%;left:35%;opacity:.5}
/* orbit */
.orbit{position:relative;aspect-ratio:1;width:min(100%,560px);margin-left:auto;z-index:2}
.orbit__ring{position:absolute;inset:0;border-radius:50%;border:1.5px dashed var(--line2);animation:spin 60s linear infinite}
.orbit__ring--2{inset:16%;animation-duration:42s;animation-direction:reverse;border-style:solid;border-color:var(--line)}
.orbit__ring--3{inset:33%;animation-duration:28s;border-style:dotted}
.orbit__node{position:absolute;transform:translate(-50%,-50%)}
.orbit__node .ico{box-shadow:var(--sh);animation:counter 60s linear infinite}
.orbit__ring--2 .orbit__node .ico{animation-duration:42s;animation-direction:reverse}
.orbit__center{position:absolute;inset:38%;border-radius:50%;background:#fff;box-shadow:var(--sh-hover);display:grid;place-items:center;text-align:center;padding:1rem}
.orbit__center b{display:block;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.04em;line-height:1;font-variation-settings:"wdth" 85}
.orbit__center span{font-size:.8rem;color:var(--muted);font-weight:600;display:block;margin-top:.2rem}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes counter{to{transform:rotate(-360deg)}}
.chip{position:absolute;display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem .45rem .5rem;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-hover);font-weight:700;font-size:.9rem;z-index:3;will-change:transform}
.chip .ico{width:30px;height:30px}.chip .ico .ic{width:16px;height:16px}

@media (max-width:900px){.hero{min-height:0}.hero__in{grid-template-columns:1fr}.hero h1{max-width:none}.orbit{width:min(78vw,340px);margin:2rem auto 0}.orbit__center b{font-size:1.6rem}.orbit__center span{font-size:.65rem}.chip{display:none}.blob--1{opacity:.25}}
/* marquee */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:1rem 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee__track{display:flex;gap:2.5rem;width:max-content;animation:marq 40s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__item{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.05rem;white-space:nowrap}
.marquee__item .ico{width:34px;height:34px}.marquee__item .ico .ic{width:18px;height:18px}
@keyframes marq{to{transform:translateX(-50%)}}

/* jobs tiles */
.jobs{display:flex;gap:1rem;min-height:520px}
.job{flex:1;position:relative;border-radius:var(--r-lg);padding:2rem;background:var(--t);color:var(--ink);overflow:hidden;cursor:pointer;transition:flex .7s var(--ease);display:flex;flex-direction:column;justify-content:space-between;isolation:isolate}
.job.is-open{flex:2.3}
.job__big{position:absolute;right:-12%;bottom:-18%;width:58%;aspect-ratio:1;border-radius:50%;background:var(--h);opacity:.85;z-index:-1;transition:transform .8s var(--ease)}
.job:hover .job__big,.job.is-open .job__big{transform:scale(1.12) rotate(8deg)}
.job__title{font-size:clamp(2.4rem,5vw,4.8rem);line-height:.9;font-variation-settings:"wdth" 80;letter-spacing:-.045em}
.job__line{max-width:28ch;margin-top:.8rem;font-size:1.05rem;color:var(--ink2)}
.job__chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.2rem;max-height:0;opacity:0;overflow:hidden;transition:max-height .7s var(--ease),opacity .5s .1s}
.job.is-open .job__chips{max-height:300px;opacity:1}
.job__chips a{display:inline-flex;align-items:center;gap:.45rem;background:#fff;border-radius:999px;padding:.4rem .8rem .4rem .45rem;font-weight:600;font-size:.88rem;box-shadow:var(--sh)}
.job__chips .ico{width:24px;height:24px}.job__chips .ico .ic{width:13px;height:13px}
.job .ico--lg{animation:float 6s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-8px) rotate(-4deg)}}
@media (max-width:860px){.jobs{flex-direction:column;min-height:0}.job{min-height:260px}.job.is-open{flex:1}.job__chips{max-height:none;opacity:1}}

/* service wall */
.svc{position:relative;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;border-radius:var(--r);background:#fff;border:1px solid var(--line);min-height:230px;transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .4s;overflow:hidden}
.svc::after{content:"";position:absolute;inset:auto -30% -40% auto;width:70%;aspect-ratio:1;border-radius:50%;background:var(--t);transition:transform .6s var(--ease);z-index:0}
.svc>*{position:relative;z-index:1}
.svc:hover{transform:translateY(-6px);box-shadow:var(--sh-hover)}
.svc:hover::after{transform:scale(1.5)}
.svc:hover .ico{transform:rotate(-10deg) scale(1.1)}
.svc h3{font-size:1.25rem;letter-spacing:-.02em}
.svc p{color:var(--muted);font-size:.95rem}
.svc__go{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:.9rem;color:var(--h)}
.svc__go .ico{width:34px;height:34px}.svc__go .ico .ic{width:16px;height:16px}
.svc--big{min-height:300px;padding:2rem}.svc--big h3{font-size:1.8rem}

/* proof */
.proof{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:2rem;align-items:center}
.proof__stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.stat{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:var(--r);padding:1.4rem;backdrop-filter:blur(8px)}
.stat b{display:block;font-size:clamp(2.4rem,5vw,4rem);letter-spacing:-.045em;line-height:1;font-variation-settings:"wdth" 82}
.stat span{display:block;font-size:.9rem;opacity:.85;margin-top:.4rem}
.stat--hi{background:var(--lime);color:var(--ink);border-color:transparent}
.chart{background:#fff;color:var(--ink);border-radius:var(--r-lg);padding:1.6rem;box-shadow:var(--sh-hover)}
.chart__head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;font-weight:600;font-size:.9rem}
.chart svg{width:100%;height:auto}
.chart .line{fill:none;stroke:var(--blue);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.chart .area{fill:url(#ag);opacity:.9}
.chart .dot{fill:var(--coral);stroke:#fff;stroke-width:3}
.chart__foot{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-top:.4rem}
@media (max-width:900px){.proof{grid-template-columns:1fr}}

/* horizontal cases */
/* Without the pinned desktop scroll (phones, reduced motion, no script) the row swipes natively and snaps to each card. */
.hscroll{position:relative;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:clamp(18px,4vw,48px);scrollbar-width:none;overscroll-behavior-x:contain}
.hscroll::-webkit-scrollbar{display:none}
.hscroll .case{scroll-snap-align:start}
.hscroll.is-pinned{overflow:hidden;scroll-snap-type:none}
.hscroll__nav{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.2rem}
.hscroll.is-pinned+.hscroll__nav{display:none}
.hscroll__btn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line2);background:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s,border-color .2s,opacity .2s}
.hscroll__btn:hover{border-color:var(--ink)}
.hscroll__btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.hscroll__btn:disabled{opacity:.35;cursor:default}
.hscroll__btn .ic{width:18px;height:18px}
.hscroll__btn--prev .ic{transform:scaleX(-1)}
.hscroll__track{display:flex;gap:1.5rem;padding:0 clamp(18px,4vw,48px);will-change:transform}
.case{flex:0 0 min(78vw,820px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:var(--r-lg);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--sh);min-height:440px}
.case__vis{position:relative;padding:2rem;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(150deg,var(--h),var(--ink2) 140%);overflow:hidden}
.case__vis::before{content:"";position:absolute;width:110%;aspect-ratio:1;border-radius:50%;right:-55%;top:-10%;background:rgba(255,255,255,.14)}
.case--lime .case__vis,.case--sun .case__vis{color:var(--ink);background:linear-gradient(150deg,var(--lime),#7FA800 140%)}
.case--sun .case__vis{background:linear-gradient(150deg,var(--sun),#D99700 140%)}
.case__num{font-size:clamp(3.5rem,7vw,6.5rem);letter-spacing:-.05em;line-height:.9;font-variation-settings:"wdth" 80;position:relative}
.case__num span{display:block;font-size:.95rem;letter-spacing:0;font-variation-settings:"wdth" 100;opacity:.85;margin-top:.5rem;font-weight:600}
.case__client{font-weight:700;display:flex;align-items:center;gap:.6rem;position:relative}
.case__body{padding:2rem;display:flex;flex-direction:column;gap:1rem}
.case__body h3{font-size:1.6rem}
.case__tags{display:flex;flex-wrap:wrap;gap:.4rem}
.tag{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:999px;background:var(--bg2);font-size:.8rem;font-weight:600}
.case--sm{flex:none;grid-template-columns:1fr;min-height:0}.case--sm .case__vis{min-height:220px}
@media (max-width:760px){.case{grid-template-columns:1fr;flex-basis:86vw}.case__vis{min-height:220px}}

/* process timeline */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.steps::before{content:"";position:absolute;left:0;right:0;top:42px;height:2px;background:var(--line)}
.steps__bar{position:absolute;left:0;top:42px;height:2px;background:var(--blue);transform-origin:left;transform:scaleX(0);width:100%}
.step{position:relative;padding-top:0}
.step .ico{position:relative;background:#fff;border:2px solid var(--line2);color:var(--ink)}
.step.is-on .ico{border-color:var(--blue);background:var(--blue);color:#fff;transform:scale(1.08)}
.step__n{position:absolute;top:-8px;right:-8px;background:var(--lime);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:700}
.step h3{margin:1rem 0 .4rem;font-size:1.3rem}
.step p{color:var(--muted);font-size:.95rem}
.step__time{display:inline-block;margin-top:.6rem;font-size:.8rem;font-weight:700;color:var(--blue)}
@media (max-width:820px){.steps{grid-template-columns:1fr 1fr}.steps::before,.steps__bar{display:none}}

/* pricing */
.budget{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.8rem 2rem;box-shadow:var(--sh);margin-bottom:2rem}
.budget__top{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.budget__val{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.04em;line-height:1}
.budget__val small{font-size:1rem;color:var(--muted);letter-spacing:0;font-weight:600}
.budget__rec{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem .5rem .5rem;border-radius:999px;background:var(--t);color:var(--h);font-weight:700}
input[type=range].slider{-webkit-appearance:none;appearance:none;width:100%;height:14px;border-radius:999px;background:linear-gradient(90deg,var(--t-lime),var(--t-blue),var(--t-violet));outline:0}
.slider::-webkit-slider-thumb{-webkit-appearance:none;width:34px;height:34px;border-radius:50%;background:var(--ink);border:4px solid #fff;box-shadow:var(--sh-hover);cursor:grab}
.slider::-moz-range-thumb{width:34px;height:34px;border-radius:50%;background:var(--ink);border:4px solid #fff;box-shadow:var(--sh-hover);cursor:grab}
.budget__scale{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-top:.5rem;font-weight:600}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;align-items:start}
.tier{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);transition:transform .5s var(--ease),box-shadow .5s var(--ease),outline-color .3s;outline:3px solid transparent;outline-offset:2px}
.tier.is-rec{outline-color:var(--h);transform:translateY(-8px);box-shadow:var(--sh-hover)}
.tier__head{padding:1.8rem 1.8rem 1.4rem;background:var(--t);position:relative;overflow:hidden}
.tier__head::after{content:"";position:absolute;width:60%;aspect-ratio:1;border-radius:50%;background:var(--h);opacity:.18;right:-20%;top:-30%}
.tier__flag{position:absolute;top:1rem;right:1rem;background:var(--ink);color:#fff;font-size:.72rem;font-weight:700;padding:.3rem .7rem;border-radius:999px;z-index:1}
.tier__name{font-size:1.9rem;letter-spacing:-.03em;display:flex;align-items:center;gap:.7rem;position:relative}
.tier__aud{color:var(--ink2);font-size:.95rem;margin-top:.5rem;position:relative}
.tier__price{font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.04em;line-height:1;margin-top:1.2rem;position:relative;display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .5rem}
.tier__price small{font-size:.9rem;letter-spacing:0;color:var(--muted);font-weight:600}
.tier__body{padding:1.4rem 1.8rem 1.8rem}
.tier__lines{list-style:none;margin:0 0 1.2rem;padding:0;display:grid;gap:.6rem}
.tier__lines li{display:flex;gap:.7rem;align-items:flex-start;font-size:.95rem}
.tier__lines .ico{width:26px;height:26px;margin-top:.05rem}.tier__lines .ico .ic{width:14px;height:14px}
.tier__lines b{display:block}
.tier__lines span{color:var(--muted);font-size:.88rem}
.tier__excl{font-size:.82rem;color:var(--muted);margin:1rem 0}
.tier__meta{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;color:var(--muted);margin-bottom:1.2rem}
.tier .btn{width:100%;justify-content:space-between}
@media (max-width:980px){.tiers{grid-template-columns:1fr}.tier.is-rec{transform:none}}
.pkg-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.pkg-pick label{cursor:pointer}.pkg-pick input{position:absolute;opacity:0}
.pkg-pick .pk{border:2px solid var(--line);border-radius:var(--r-sm);padding:1rem;transition:.25s;display:flex;flex-direction:column;gap:.3rem;height:100%}
.pkg-pick input:checked+.pk{border-color:var(--ink);background:var(--t);transform:translateY(-3px);box-shadow:var(--sh)}
.pkg-pick .pk b{font-size:1.1rem}.pkg-pick .pk span{font-size:.85rem;color:var(--muted)}
@media (max-width:640px){.pkg-pick{grid-template-columns:1fr}}

/* gcc bubbles */
.gcc{position:relative;aspect-ratio:16/9;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);overflow:hidden;background-image:radial-gradient(var(--line2) 1px,transparent 1px);background-size:28px 28px}
.gcc svg.lines{position:absolute;inset:0;width:100%;height:100%}
.gcc .lines path{fill:none;stroke:var(--line2);stroke-width:1.5;stroke-dasharray:4 6;vector-effect:non-scaling-stroke}
.bub{position:absolute;transform:translate(-50%,-50%);border-radius:50%;background:var(--t);color:var(--ink);display:grid;place-items:center;text-align:center;font-weight:700;transition:transform .5s var(--ease),box-shadow .5s;box-shadow:inset 0 0 0 3px var(--h);cursor:pointer;text-decoration:none;line-height:1.05}
.bub:hover,.bub:focus-visible{transform:translate(-50%,-50%) scale(1.12);box-shadow:inset 0 0 0 3px var(--h),var(--sh-hover);z-index:3}
.bub small{display:block;font-size:.65em;font-weight:600;color:var(--h);margin-top:.15em}
.bub--hub{background:var(--h);color:#fff;animation:pulse 3s ease-in-out infinite}
.bub--hub small{color:rgba(255,255,255,.85)}
@keyframes pulse{50%{box-shadow:inset 0 0 0 3px var(--h),0 0 0 18px rgba(45,91,255,.12)}}
.gcc__tip{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:999px;font-size:.88rem;font-weight:600;pointer-events:none;opacity:0;transition:opacity .25s;white-space:nowrap;max-width:92%}
.gcc__tip.is-on{opacity:1}
@media (max-width:640px){.gcc{aspect-ratio:1}.bub{font-size:.8rem}}

/* team */
.founder{position:relative;border-radius:var(--r-lg);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--sh);display:grid;grid-template-columns:200px minmax(0,1fr);min-height:300px}
.avatar{position:relative;background:linear-gradient(160deg,var(--h),var(--ink2) 150%);color:#fff;display:grid;place-items:center;font-size:3.5rem;font-weight:700;letter-spacing:-.05em;overflow:hidden}
.avatar::after{content:"";position:absolute;width:140%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.15);left:-20%;bottom:-70%}
.founder__body{padding:1.8rem;display:flex;flex-direction:column;gap:.5rem}
.founder__role{color:var(--h);font-weight:700;font-size:.9rem}
.founder__areas{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.founder:hover .avatar{background:linear-gradient(160deg,var(--ink2),var(--h) 150%)}
@media (max-width:640px){.founder{grid-template-columns:1fr}.avatar{min-height:160px}}
.seat{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;border-radius:var(--r-sm);background:#fff;border:1px solid var(--line)}
.seat b{display:block}.seat span{font-size:.85rem;color:var(--muted)}
.principle{display:flex;gap:1rem;align-items:flex-start;padding:1.4rem;border-radius:var(--r);background:#fff;border:1px solid var(--line)}
.principle p{color:var(--muted);font-size:.95rem;margin-top:.3rem}

/* posts */
.post-card{display:flex;flex-direction:column;border-radius:var(--r);background:#fff;border:1px solid var(--line);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.post-card:hover{transform:translateY(-6px);box-shadow:var(--sh-hover)}
.post-card__cover{aspect-ratio:16/9;background:var(--t);display:grid;place-items:center;position:relative;overflow:hidden}
.post-card__cover::after{content:"";position:absolute;width:60%;aspect-ratio:1;border-radius:50%;background:var(--h);opacity:.2;right:-20%;bottom:-40%}
.post-card__body{padding:1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.post-card h3{font-size:1.2rem;letter-spacing:-.015em;line-height:1.2}
.post-card__meta{display:flex;gap:.6rem;align-items:center;font-size:.8rem;color:var(--muted);font-weight:600;margin-top:auto}
.cat{display:inline-flex;padding:.3rem .7rem;border-radius:999px;background:var(--t);color:var(--h);font-size:.78rem;font-weight:700}

/* cta band */
.cta{position:relative;border-radius:var(--r-lg);background:var(--ink);color:#fff;padding:clamp(2.5rem,6vw,5rem);overflow:hidden;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2.5rem;align-items:center}
.cta::before{content:"";position:absolute;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--blue),transparent 70%);right:-20%;top:-40%;opacity:.8}
.cta::after{content:"";position:absolute;width:40%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--coral),transparent 70%);left:-10%;bottom:-40%;opacity:.7}
.cta>*{position:relative;z-index:1}
.cta h2{font-size:clamp(2.2rem,4.5vw,4rem)}
.cta .lede{color:rgba(255,255,255,.8);margin-top:1rem}
.sticker{position:absolute;right:6%;top:-22px;background:var(--lime);color:var(--ink);border-radius:50%;width:120px;height:120px;display:grid;place-items:center;text-align:center;font-weight:800;font-size:.95rem;line-height:1.05;transform:rotate(12deg);z-index:2;box-shadow:var(--sh-hover);animation:wobble 5s ease-in-out infinite;letter-spacing:-.02em}
@keyframes wobble{50%{transform:rotate(4deg) translateY(-6px)}}
.form{display:grid;gap:.7rem}
.form input,.form select,.form textarea{width:100%;font:inherit;padding:.9rem 1.1rem;border-radius:16px;border:1.5px solid var(--line2);background:#fff;color:var(--ink);font-size:1rem}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px var(--t-blue)}
.form label{display:grid;gap:.35rem;font-weight:600;font-size:.88rem}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.form .chk{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.9rem}.form .chk input{width:auto}
.form__ok{display:none;padding:1rem;border-radius:16px;background:var(--t-mint);color:#0FA57A;font-weight:600}
.hp{position:absolute!important;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px!important;height:1px!important;overflow:hidden;opacity:0;top:0}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chips label{cursor:pointer}.chips input{position:absolute;opacity:0}
.chips .c{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;border-radius:999px;border:1.5px solid var(--line2);background:#fff;font-weight:600;font-size:.9rem;transition:.2s}
.chips input:checked+.c{background:var(--ink);color:#fff;border-color:var(--ink)}
@media (max-width:860px){.cta{grid-template-columns:1fr}.sticker{width:96px;height:96px;font-size:.8rem;right:4%}.form .row{grid-template-columns:1fr}}

/* footer */
.ftr{padding:4rem 0 2rem;background:#fff;border-top:1px solid var(--line);margin-top:clamp(3rem,6vw,5rem)}
.ftr__top{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2rem}
.ftr__brand p{color:var(--muted);margin-top:.8rem;max-width:32ch;font-size:.95rem}
.ftr__h{font-weight:700;font-size:.85rem;color:var(--muted);margin-bottom:.8rem}
.ftr__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.ftr__col a{font-size:.95rem;font-weight:500}.ftr__col a:hover{color:var(--blue)}
.ftr__news-h{margin-top:1.4rem;font-weight:700;font-size:.9rem}
.ftr__news{display:flex;gap:.4rem;margin-top:.55rem;max-width:380px}
.ftr__news label{flex:1;min-width:0;display:flex}
.ftr__news input{flex:1;min-width:0;width:100%;font:inherit;padding:.7rem 1rem;border-radius:999px;border:1.5px solid var(--line2)}
.ftr__bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}
.ftr__social{display:flex;gap:.5rem}
.ftr__social a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font-weight:700;font-size:.8rem}
.ftr__social a:hover{background:var(--ink);color:#fff}
@media (max-width:900px){.ftr__top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ftr__top{grid-template-columns:1fr}}
.wa-float{position:fixed;right:20px;bottom:20px;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:var(--sh-hover);z-index:800;transition:transform .3s var(--ease)}
.wa-float:hover{transform:scale(1.08)}.wa-float .ic{width:28px;height:28px}

/* inner page hero */
.phero{position:relative;padding:clamp(2.5rem,6vw,5rem) 0 clamp(2.5rem,5vw,4rem);overflow:hidden}
.phero__in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:2rem;align-items:center}
.phero h1{font-size:clamp(2.4rem,5.2vw,4.6rem);max-width:14ch}
.phero .lede{margin-top:1.4rem}
.phero__acts{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem}
.phero__vis{position:relative;display:grid;place-items:center;min-height:300px}
.phero__vis .ico--xl{box-shadow:var(--sh-hover);position:relative;z-index:2}
.phero__vis .ring{position:absolute;border-radius:50%;border:1.5px dashed var(--line2)}
.phero__vis .ring--1{width:70%;aspect-ratio:1;animation:spin 40s linear infinite}
.phero__vis .ring--2{width:100%;aspect-ratio:1;animation:spin 70s linear infinite reverse;border-style:solid;border-color:var(--line)}
.phero__vis .sat{position:absolute;transform:translate(-50%,-50%);z-index:2}
.phero__vis .sat .ico{box-shadow:var(--sh)}
.phero__vis .blob{opacity:.5}
.crumbs{display:flex;gap:.4rem;font-size:.85rem;color:var(--muted);margin-bottom:1.2rem;flex-wrap:wrap;font-weight:600}
.crumbs a:hover{color:var(--ink)}
@media (max-width:860px){.phero__in{grid-template-columns:1fr}.phero__vis{min-height:220px;order:-1;max-width:320px;margin:0 auto}}

/* misc */
.feature{display:flex;gap:1rem;align-items:flex-start;padding:1.4rem;border-radius:var(--r);background:#fff;border:1px solid var(--line);transition:transform .4s var(--ease),box-shadow .4s}
.feature:hover{transform:translateY(-4px);box-shadow:var(--sh-hover)}
.feature b{display:block;font-size:1.05rem;margin-bottom:.25rem}
.feature p{color:var(--muted);font-size:.93rem}
.checklist{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.checklist li{display:flex;gap:.6rem;align-items:flex-start}
.checklist .ico{width:26px;height:26px;margin-top:.1rem}.checklist .ico .ic{width:14px;height:14px}
details.faq{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 1.3rem;transition:box-shadow .3s}
details.faq+details.faq{margin-top:.6rem}
details.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0;font-weight:700;font-size:1.05rem}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary .ico{transition:transform .35s var(--ease);background:var(--bg2)}
details.faq[open] summary .ico{transform:rotate(45deg);background:var(--ink);color:#fff}
details.faq[open]{box-shadow:var(--sh)}
details.faq p{padding:0 0 1.2rem;color:var(--ink2);max-width:70ch}
.fact{padding:1.4rem;border-radius:var(--r);background:var(--t);display:flex;flex-direction:column;gap:.4rem}
.fact b{font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.04em;line-height:1;color:var(--h)}
.fact span{font-size:.9rem;color:var(--ink2)}
.big-num{font-size:clamp(3rem,7vw,6rem);letter-spacing:-.05em;line-height:.9;font-variation-settings:"wdth" 80}
.prose{max-width:72ch;font-size:1.1rem;line-height:1.65}
.prose h2{font-size:1.9rem;margin:2.4rem 0 .8rem}.prose h3{margin:1.8rem 0 .5rem}
.prose p{margin:0 0 1.1rem}.prose ul,.prose ol{padding-left:1.4rem;margin:0 0 1.2rem}.prose li{margin-bottom:.4rem}
.prose a:not(.btn){color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.prose table{width:100%;border-collapse:collapse;font-size:.95rem;margin:1.2rem 0}.prose th,.prose td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--line)}.prose th{background:var(--bg2)}
.prose blockquote{margin:1.5rem 0;padding:1.2rem 1.5rem;border-radius:var(--r-sm);background:var(--t-blue);font-weight:600}
.article{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:3rem;align-items:start}
.toc{position:sticky;top:110px;padding:1.2rem;border-radius:var(--r);background:#fff;border:1px solid var(--line)}
.toc b{font-size:.8rem;color:var(--muted);display:block;margin-bottom:.6rem}
.toc a{display:block;padding:.35rem 0;font-size:.9rem;color:var(--muted);border-left:2px solid var(--line);padding-left:.8rem}
.toc a.is-on{color:var(--ink);border-color:var(--blue);font-weight:600}
@media (max-width:900px){.article{grid-template-columns:1fr}.toc{position:static}}
.progress{position:fixed;top:0;left:0;height:4px;background:var(--blue);width:100%;transform:scaleX(0);transform-origin:left;z-index:1000}
.compare{width:100%;border-collapse:separate;border-spacing:0;font-size:.92rem;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.compare th,.compare td{padding:.9rem 1rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.compare th{background:var(--bg2);font-weight:700}.compare tr:last-child td{border-bottom:0}
.compare td:first-child{font-weight:700;white-space:nowrap}
.table-wrap{overflow:auto;border-radius:var(--r)}
.thanks{display:grid;place-items:center;text-align:center;padding-top:clamp(2rem,6vw,4rem)}
.notfound{display:grid;place-items:center;text-align:center;padding:clamp(2rem,6vw,4rem) 0}
.notfound h1{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-top:.4rem}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.cursor{position:fixed;top:0;left:0;width:26px;height:26px;border-radius:50%;background:var(--blue);pointer-events:none;z-index:9999;mix-blend-mode:multiply;opacity:.55;transform:translate(-50%,-50%);transition:width .3s,height .3s,opacity .3s}
.cursor.is-big{width:70px;height:70px;opacity:.35}
@media (hover:none),(prefers-reduced-motion:reduce){.cursor{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.steps__bar{transform:none}}

/* v3 additions */
.annc{background:var(--ink);color:#fff;font-size:.9rem;font-weight:600;padding:.55rem 0}.annc .wrap{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.annc .ic{color:var(--lime)}.annc a{color:var(--lime);display:inline-flex;align-items:center;gap:.3rem;margin-left:auto}
.avatar img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.phero__vis .cover{width:100%;border-radius:var(--r-lg);box-shadow:var(--sh-hover);object-fit:cover;aspect-ratio:4/3}
.share{display:flex;gap:.4rem;align-items:center;margin-top:1rem;flex-wrap:wrap}.share a,.share button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;font-weight:700;font-size:.8rem;cursor:pointer;font-family:var(--f);color:var(--ink)}.share a:hover,.share button:hover{background:var(--ink);color:#fff}.share .ic{width:16px;height:16px}
.search{display:flex;gap:.3rem;background:#fff;border:1.5px solid var(--line2);border-radius:999px;padding:.3rem .3rem .3rem 1rem;align-items:center}.search input{border:0;font:inherit;outline:0;min-width:180px;background:transparent}
/* outline:0 above is unconditional and outranks the global :focus-visible
   ring, which left the search field with no visible keyboard focus at all. */
.search input:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.search button{width:36px;height:36px;border-radius:50%;border:0;background:var(--ink);color:#fff;display:grid;place-items:center;cursor:pointer}.search .ic{width:16px;height:16px}
.pager{display:flex;gap:.4rem;justify-content:center;margin-top:2rem}.pager a{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font-weight:700}.pager a.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cookie{position:fixed;left:20px;bottom:20px;z-index:850;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-hover);padding:1rem 1.2rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;max-width:min(560px,calc(100vw - 40px));font-size:.9rem}.cookie .ic{width:18px;height:18px;vertical-align:-3px;color:var(--blue)}.cookie a{text-decoration:underline}.cookie>div{display:flex;gap:.4rem;margin-left:auto}
.totop{position:fixed;right:20px;bottom:90px;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:800;transform:translateY(10px)}.totop.is-on{opacity:1;pointer-events:auto;transform:none}.totop .ic{width:20px;height:20px}
.form input[type=file]{padding:.6rem;background:var(--bg2)}

/* ---------- Phase 4: language & currency switcher, logo image ---------- */
.brand__img{display:block;width:auto;max-width:200px;object-fit:contain}
.switch{display:flex;align-items:center;gap:.25rem}
.switch__dd{position:relative}
.switch__dd summary{list-style:none;display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .7rem;border-radius:999px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:.78rem;letter-spacing:.04em;cursor:pointer;line-height:1;transition:.2s}
.switch__dd summary::-webkit-details-marker{display:none}
.switch__dd summary .ic{width:15px;height:15px}
.switch__dd summary:hover,.switch__dd[open] summary{background:var(--ink);color:#fff;border-color:var(--ink)}
.switch__menu{position:absolute;top:calc(100% + 8px);inset-inline-end:0;min-width:190px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh-hover);padding:.5rem;z-index:60;display:grid;gap:2px}
.switch__menu b{display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:.4rem .7rem .3rem}
.switch__menu a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .75rem;border-radius:12px;font-weight:600;font-size:.9rem}
.switch__menu a small{color:var(--muted);font-weight:500;font-size:.75rem}
.switch__menu a:hover{background:var(--bg2)}
.switch__menu a.is-on{background:var(--ink);color:#fff}.switch__menu a.is-on small{color:rgba(255,255,255,.7)}
.mnav__switch{margin-top:1.5rem;display:grid;gap:1rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.mnav__switch b{display:block;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}
.mnav__switch .c.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}
@media (max-width:1060px){.switch{display:none}}

/* ---------- RTL (Arabic) ---------- */
[dir=rtl]{font-family:"IBM Plex Sans Arabic","Bricolage Grotesque",system-ui,sans-serif}
[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3,[dir=rtl] .big-num,[dir=rtl] .orbit__center b,[dir=rtl] .stat b,[dir=rtl] .tier__price,[dir=rtl] .budget__val{letter-spacing:0}
[dir=rtl] h1{line-height:1.2}
[dir=rtl] .hdr__in{padding:8px 18px 8px 8px}
[dir=rtl] .annc a{margin-left:0;margin-right:auto}
[dir=rtl] .orbit{margin-left:0;margin-right:auto}
[dir=rtl] .chip{left:auto}
[dir=rtl] .hero .chip.hue-blue{right:52%;left:auto}[dir=rtl] .hero .chip.hue-lime{right:44%;left:auto}[dir=rtl] .hero .chip.hue-coral{left:6%;right:auto}
[dir=rtl] .prose ul,[dir=rtl] .prose ol{padding-left:0;padding-right:1.4rem}
[dir=rtl] .prose th,[dir=rtl] .prose td,[dir=rtl] .compare th,[dir=rtl] .compare td{text-align:right}
[dir=rtl] .toc a{border-left:0;border-right:2px solid var(--line);padding-left:0;padding-right:.8rem}
[dir=rtl] .steps__bar,[dir=rtl] .progress{transform-origin:right}
[dir=rtl] .step__n{right:auto;left:-8px}
[dir=rtl] .job__big{right:auto;left:-12%}
[dir=rtl] .cookie{left:auto;right:20px}
[dir=rtl] .wa-float,[dir=rtl] .totop{right:auto;left:20px}
[dir=rtl] .totop{left:20px;bottom:88px}
[dir=rtl] .marquee__track{animation-direction:reverse}
[dir=rtl] .hscroll__track{direction:rtl}

[dir=rtl] .ftr__social a,[dir=rtl] .share a{font-family:"Bricolage Grotesque",sans-serif}
[dir=rtl] .tier__price,[dir=rtl] .budget__scale,[dir=rtl] .slider{direction:ltr}
[dir=rtl] .budget__top{flex-direction:row}
[dir=rtl] .switch__menu{inset-inline-end:auto;inset-inline-start:0}
[dir=rtl] .ico .ic.rot,[dir=rtl] .btn .ico svg{transform:scaleX(-1)}
[dir=rtl] .kicker,[dir=rtl] .badge,[dir=rtl] .tag,[dir=rtl] .c{letter-spacing:0}
[dir=rtl] .search button{right:auto;left:6px}
[dir=rtl] .case__client,[dir=rtl] .founder__body,[dir=rtl] .post-card__body{text-align:right}
[dir=rtl] input,[dir=rtl] textarea,[dir=rtl] select{text-align:right}
[dir=rtl] input[type=email],[dir=rtl] input[name=website],[dir=rtl] input[name=phone],[dir=rtl] input[name=linkedin]{direction:ltr;text-align:left}
.hdr__in{position:relative}.nav__item.has-mega{position:static}
.chips input,.pkg-pick input,.chk input[type=checkbox].vh{width:1px!important;height:1px!important;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;margin:0}

/* ---- Generated cover art -------------------------------------------------
   Posts and case studies without an uploaded image get a deterministic
   editorial graphic from src/cover.js instead of a bare tinted block with one
   icon, which read as an unfinished placeholder. The decorative ::after wash
   is suppressed behind artwork so the composition stays clean, and the
   category icon drops to a small corner badge so the cue survives. */
.post-card__cover--art::after{display:none}
.post-card__art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.post-card__badge{position:absolute;inset-inline-start:14px;inset-block-end:14px;z-index:1;display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#fff;box-shadow:var(--sh)}
.post-card__badge svg{width:19px;height:19px;display:block}
/* Case-study panel artwork. The panel is stretched to its sibling's height, so
   space-between left a large dead gap between the client chip and the result
   number. The overlay variant draws in white at low opacity, keeping the
   gradient and the white text on top of it fully legible. */
.case__art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
/* Provenance label for proof that predates the agency. Deliberately plain and
   legible rather than a decorative badge — it is a disclosure, and reading it
   as marketing ornament would defeat the point. */
.case__context{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:var(--muted);background:var(--bg2);border:1px solid var(--line);border-radius:999px;padding:.3rem .7rem;margin-bottom:.7rem;align-self:flex-start;line-height:1}
.case__context svg{width:14px;height:14px;flex:none}
.case__context--hero{margin:0 0 1rem;background:rgba(255,255,255,.6)}

/* ---- proof chart -------------------------------------------------------
   Axis and callout were inline SVG attributes with a hardcoded x position, so
   the peak label sat at a fixed point regardless of how long the string was —
   and it runs in five languages. Both are classed now, the callout is
   end-anchored to the curve's end point, and a halo keeps it legible where it
   crosses the plotted line. */
.chart__axis text{font-family:var(--f);font-size:12px;fill:var(--muted);font-variation-settings:"wdth" 100}
.chart__leader{stroke:var(--ink);stroke-width:1.5;opacity:.35}
.chart__peak{
  font-family:var(--f);font-size:14px;font-weight:700;fill:var(--ink);
  paint-order:stroke;stroke:var(--bg);stroke-width:5px;stroke-linejoin:round;
}

/* A heading that is a section in the outline but sits at card scale visually.
   Used where promoting h3 -> h2 was semantically right but must not change the
   rendered size. */
.h3ish{font-size:clamp(1.4rem,2.2vw,1.9rem);letter-spacing:-.02em}

/* The hidden attribute must win.
   Any author rule that sets display on an element — .cookie sets display:flex —
   outranks the user-agent's [hidden]{display:none}, so el.hidden = true had no
   visible effect and the cookie banner stayed on screen after Allow was
   clicked. This restores the attribute's meaning for every element. */
[hidden]{display:none !important}

/* ---- GCC map ------------------------------------------------------------
   Replaces the dotted-grid bubble field. The frame holds a projected
   coastline; the markers are absolutely positioned on it at real coordinates,
   so they keep the existing .bub styling and hover behaviour. */
/* Square frame on purpose: the SVG viewBox is 0 0 100 100 with
   preserveAspectRatio meet, so any other frame ratio letterboxes the drawing
   and the markers — positioned as CSS percentages of the frame — stop lining
   up with the coastline. Square makes SVG units and frame percentages the
   same thing. */
.gccmap{position:relative;aspect-ratio:1;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);overflow:hidden}
.gccmap__svg{position:absolute;inset:0;width:100%;height:100%}
.gccmap__land{fill:var(--bg2);stroke:var(--line2);stroke-width:.35;vector-effect:non-scaling-stroke}
.gccmap__sea{fill:var(--muted);font-family:var(--f);font-size:3.2px;font-weight:600;letter-spacing:.08em;opacity:.7}


/* Orbit hub: the brand mark at the centre of the service network. The disc
   matches the white chips around it; the station stop pulses like a live
   node, and stops pulsing for anyone who asked for less motion. */
/* Hub: the logo tile alone, no wording, over a wide halo that fills the
   centre of the orbit so it never reads as empty. */
.orbit__halo{position:absolute;inset:14%;border-radius:50%;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(198,241,53,.38) 0,rgba(45,91,255,.16) 38%,rgba(122,75,255,.08) 58%,transparent 72%);filter:blur(2px)}
.orbit__hub{inset:29%;padding:0;z-index:3;background:rgba(255,255,255,.72);backdrop-filter:blur(6px);box-shadow:0 24px 60px -22px rgba(15,22,38,.35),0 0 0 14px rgba(255,255,255,.4),0 0 0 30px rgba(255,255,255,.18)}
.orbit__tile{display:grid;place-items:center;width:62%;aspect-ratio:1;border-radius:24%;background:var(--ink);box-shadow:0 16px 36px -14px rgba(15,22,38,.6),inset 0 0 0 1px rgba(255,255,255,.06)}
.orbit__mark{width:72%;height:auto;display:block;overflow:visible}
.orbit__mark .ps-stop{transform-box:fill-box;transform-origin:center;animation:ps-pulse 2.8s ease-in-out infinite}
@keyframes ps-pulse{0%,100%{stroke-width:4.2}50%{stroke-width:6.4}}
@media (prefers-reduced-motion:reduce){.orbit__mark .ps-stop{animation:none}}
@media (max-width:760px){.orbit__hub{inset:28%}}

/* The visual column: positioning context for the orbit and its chips. */
.hero__vis{position:relative;width:100%}
.hero__vis .orbit{margin-left:auto}
@media (max-width:900px){.hero__vis .orbit{margin:2rem auto 0}}

/* ---- Case study page ----
   Brief, method, obstacles, outcome, then the ask. Built to be scanned: the
   numbers and the disclosure are visible without scrolling, steps are
   numbered, and the CTA arrives where intent peaks rather than only at the
   very bottom. */
.eyebrow{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.9rem}
.eyebrow--light{color:var(--lime)}
.phero__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.cs-h1{font-size:clamp(2.4rem,5.4vw,4.6rem)}
.cs-h2{font-size:clamp(1.7rem,3.2vw,2.6rem);max-width:28ch}
.cs-figs{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.cs-figs__lead{grid-column:1/-1}
.cs-figs__lead b{font-size:clamp(2.6rem,5vw,4rem)}
.cs-figs__time{grid-column:1/-1;display:flex;align-items:center;gap:.6rem;padding:.8rem 1.1rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.95rem;color:var(--ink2)}
.cs-figs__time .ic,.cs-figs__time svg{width:18px;height:18px;flex:none}
.cs-brief{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.cs-brief__goal{font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.4;letter-spacing:-.01em;margin:0;max-width:40ch}
.cs-glance__h{font-size:1.1rem;letter-spacing:-.01em;margin-bottom:.8rem}
.cs-glance dl{margin:0;display:grid;gap:.8rem}
.cs-glance dl>div{display:grid;gap:.15rem;padding-bottom:.8rem;border-bottom:1px solid var(--line)}
.cs-glance dl>div:last-child{border-bottom:0;padding-bottom:0}
.cs-glance dt{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cs-glance dd{margin:0;font-weight:600}
.cs-glance__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.3rem!important}
.cs-glance__tags .tag svg{width:14px;height:14px}
.cs-head{margin-bottom:1.6rem}
.cs-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;counter-reset:s}
.cs-step{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.4rem 1.5rem;box-shadow:var(--sh);display:flex;flex-direction:column;gap:.55rem}
.cs-step__n{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--t);color:var(--h);font-weight:800;font-size:.95rem;letter-spacing:.02em;margin-bottom:.3rem}
.cs-step h3{font-size:1.25rem;letter-spacing:-.02em;line-height:1.15}
.cs-step p{margin:0;color:var(--ink2);font-size:.98rem}
.cs-pair .card{display:flex;flex-direction:column;gap:.8rem}
.cs-pair .card p{margin:0;font-size:1.05rem;line-height:1.6}
.cs-prose{margin:0 auto}
.cs-note{margin:0;padding:clamp(1.8rem,4vw,3rem);border-radius:var(--r-lg);background:var(--t);position:relative}
.cs-note__label{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--h);margin-bottom:1rem}
.cs-note blockquote{margin:0;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.2;font-weight:700;letter-spacing:-.025em;max-width:30ch}
.cs-note__by{margin:1.1rem 0 0;color:var(--ink2);font-size:.95rem}
.cs-cta{border-radius:var(--r-lg);background:var(--ink);color:#fff;padding:clamp(2rem,5vw,4rem);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:2rem;align-items:center}
.cs-cta h2{font-size:clamp(1.9rem,3.6vw,3rem);max-width:20ch}
.cs-cta p{color:rgba(255,255,255,.8);margin:1rem 0 0;max-width:52ch;font-size:1.05rem}
.cs-cta__acts{display:flex;flex-direction:column;gap:1rem}
.cs-cta__alt{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin:0!important;font-size:.95rem}
.link--light{color:var(--lime)}
.cs-more__head{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
a.case__vis{display:block;color:inherit}
@media (max-width:860px){.cs-brief,.cs-cta{grid-template-columns:1fr}.cs-figs{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.cs-figs{grid-template-columns:1fr}}
.cs-card__time{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--ink2)}.cs-card__time svg{width:16px;height:16px}

.founder__p{max-width:64ch;margin:.6rem 0 0;color:var(--ink2);line-height:1.6}

/* ---- World map ----
   Every country in a quiet tone (we work anywhere), focus regions in their
   colour, stations and routes in ink and lime. A region lights up on hover or
   focus wherever it appears: shape, label, city stops, route or list. */

/* ---- Pricing: section nav, comparison table, service prices, add-ons ---- */
.pnav{position:sticky;top:76px;z-index:30;padding:.6rem 0;pointer-events:none}
.pnav__in{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;pointer-events:auto;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:999px;padding:.35rem;box-shadow:var(--sh);width:max-content;max-width:calc(100% - 32px)}
.pnav__in::-webkit-scrollbar{display:none}
.pnav a{white-space:nowrap;padding:.45rem .9rem;border-radius:999px;font-weight:600;font-size:.88rem;color:var(--ink2);transition:background .2s,color .2s}
.pnav a:hover,.pnav a:focus-visible{background:var(--ink);color:#fff}
.ptable{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);background:#fff;box-shadow:var(--sh)}
.ptable table{width:100%;border-collapse:collapse;min-width:760px}
.ptable th,.ptable td{padding:.85rem 1rem;text-align:start;border-bottom:1px solid var(--line);font-size:.92rem;vertical-align:top}
.ptable thead th{position:sticky;top:0;background:#fff;font-size:1.05rem}
.ptable thead th span{display:block;font-weight:800;color:var(--h,var(--ink))}
.ptable thead th small{display:block;font-weight:600;color:var(--muted);font-size:.8rem;margin-top:.2rem}
.ptable tbody th{font-weight:700;color:var(--ink);width:22%}
.ptable td.is-rec,.ptable th.is-rec{background:rgba(45,91,255,.05)}
.ptable__yes,.ptable__no{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;margin-inline-end:.45rem;vertical-align:-4px}
.ptable__yes{background:var(--t-mint);color:#118A63}.ptable__no{background:var(--bg2);color:var(--muted)}
.ptable__yes svg,.ptable__no svg{width:12px;height:12px}
.ptable tfoot td{border-bottom:0;padding:1rem}
.pcard{display:flex;flex-direction:column;gap:.6rem}
.pcard h3{font-size:1.25rem}
.pcard__price b{font-size:1.6rem;letter-spacing:-.03em;color:var(--h)}
.pcard__price small{color:var(--muted);font-weight:600}
.pcard .link{margin-top:auto}
.addons{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.8rem}
.addon{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.3rem;border-radius:var(--r-sm);background:#fff;border:1px solid var(--line);box-shadow:var(--sh)}
.addon b{display:block}.addon p{margin:.2rem 0 0;color:var(--muted);font-size:.9rem}
.addon__price{font-weight:800;color:var(--blue);white-space:nowrap;font-size:.95rem}
.pquote__list{list-style:none;padding:0;margin:1.2rem 0 0;display:grid;gap:.5rem;color:rgba(255,255,255,.85)}
.pquote__list li{display:flex;gap:.5rem;align-items:flex-start}.pquote__list svg{width:18px;height:18px;color:var(--lime);flex:none;margin-top:.15rem}
.pquote .form select{width:100%}
@media (max-width:640px){.pnav{top:64px}.addon{flex-direction:column;align-items:flex-start}}

.incta{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:2rem 0;padding:1.2rem 1.4rem;border-radius:var(--r-sm);background:var(--t-blue);border-inline-start:5px solid var(--blue)}
.incta b{display:block;font-size:1.1rem}.incta p{margin:.2rem 0 0!important;font-size:.95rem;color:var(--ink2)}
.nf-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:2.2rem}
.nf-links a{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .9rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:600}
.nf-links a .ico{width:28px;height:28px}
@media (max-width:760px){.cookie{bottom:84px}}
/* ---- Lead pop-in and mobile action bar ---- */
.popin{position:fixed;right:20px;bottom:20px;z-index:120;width:min(380px,calc(100vw - 32px));background:#fff;border-radius:var(--r);box-shadow:0 30px 80px -20px rgba(15,22,38,.45);padding:1.4rem 1.4rem 1rem;border-top:6px solid var(--h);transform:translateY(24px);opacity:0;transition:transform .4s var(--ease),opacity .4s var(--ease)}
.popin.is-on{transform:none;opacity:1}
.popin__x{position:absolute;top:.7rem;right:.7rem;width:34px;height:34px;border-radius:50%;border:0;background:var(--bg2);cursor:pointer;display:grid;place-items:center}
.popin__x svg{width:16px;height:16px}
.popin__badge{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .65rem;border-radius:999px;background:var(--ink);color:#fff}
.popin__disc{font-size:2.6rem;font-weight:800;letter-spacing:-.05em;line-height:1;margin:.6rem 0 .2rem;color:var(--h)}
.popin.hue-lime .popin__disc{color:#5C7F00}
.popin h2{font-size:1.35rem;letter-spacing:-.02em;margin:.5rem 0 .4rem;padding-inline-end:2rem}
.popin p{margin:0 0 .9rem;color:var(--ink2);font-size:.92rem}
.popin .form{gap:.5rem}.popin .form input{padding:.7rem .9rem}.popin .btn{width:100%;justify-content:space-between}
.popin__later{display:block;margin:.6rem auto 0;border:0;background:none;color:var(--muted);font-size:.82rem;cursor:pointer;text-decoration:underline}
.mbar{display:none}
@media (max-width:760px){
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:110;gap:.5rem;padding:.55rem .7rem calc(.55rem + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
  .mbar a{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border-radius:999px;font-weight:700;font-size:.92rem;padding:.75rem 1rem}
  .mbar__main{flex:1;background:var(--blue);color:#fff}.mbar__main svg{width:18px;height:18px}
  .mbar__offer{background:var(--lime);color:var(--ink)}
  body{padding-bottom:72px}
  .wa-float{bottom:84px!important}.totop{bottom:84px!important}
  .popin{left:16px;right:16px;bottom:84px;width:auto}
}
/* ---- Offers ---- */
.offer{position:relative;display:flex;flex-direction:column;gap:.8rem;padding:clamp(1.5rem,3vw,2.2rem);border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--sh);overflow:hidden}
.offer::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:var(--t);opacity:.8;z-index:0}
.offer>*{position:relative;z-index:1}
.offer__badge{align-self:flex-start;font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .75rem;border-radius:999px;background:var(--ink);color:#fff}
.offer__disc{font-size:clamp(2.6rem,6vw,4.6rem);font-weight:800;letter-spacing:-.05em;line-height:.95;color:var(--h)}
.offer.hue-lime .offer__disc{color:#5C7F00}
.offer__sum{margin:0;color:var(--ink2);font-size:1.05rem;max-width:56ch}
.offer__applies{display:flex;gap:.5rem;align-items:center;margin:0;font-weight:700;font-size:.92rem}
.offer__applies svg{width:18px;height:18px;color:var(--h)}
.offer__acts{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.2rem;margin-top:.4rem}
.offer__ends{display:inline-flex;gap:.4rem;align-items:center;font-weight:600;color:var(--ink2);font-size:.9rem}.offer__ends svg{width:16px;height:16px}
.offer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.offer li{display:flex;gap:.6rem;align-items:flex-start;font-size:.95rem}
.offer li .ico{width:24px;height:24px;flex:none}.offer li .ico svg{width:14px;height:14px}
.offer__terms summary{cursor:pointer;font-weight:700;font-size:.88rem;color:var(--ink2)}
.offer__terms p{margin:.5rem 0 0;font-size:.85rem;color:var(--muted);line-height:1.55}
.offer .btn{align-self:flex-start;margin-top:auto}
.offer--lead{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:2rem;background:linear-gradient(135deg,#fff 0%,var(--t) 100%)}
.offer--lead h2{font-size:clamp(1.8rem,3.4vw,2.8rem)}
.offer__main{display:flex;flex-direction:column;gap:.9rem}
.offer__side{background:rgba(255,255,255,.75);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;display:flex;flex-direction:column;gap:1rem;align-self:start}
.offer__side h3{font-size:1.1rem}
.annc--offer{background:var(--lime);color:var(--ink)}
.annc--offer a{color:var(--ink);font-weight:700}
.annc__badge{display:inline-block;background:var(--ink);color:var(--lime);font-weight:800;padding:.1rem .55rem;border-radius:999px;font-size:.8rem;margin-inline-end:.3rem}
.poffer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.4rem;border-radius:var(--r);background:var(--lime);color:var(--ink);margin-bottom:1.4rem}
.poffer b{font-size:1.4rem;letter-spacing:-.02em}
@media (max-width:860px){.offer--lead{grid-template-columns:1fr}}
/* The hub tile is a span inside .orbit__center, whose generic `span` rule
   (display:block, margin-top) broke the centring: the mark sat ~15px high.
   Restate the tile as a centred grid with no margin. */
.orbit__hub .orbit__tile{display:grid;place-items:center;margin:0;font-size:inherit;color:inherit}
.orbit__hub .orbit__mark{margin:0}

/* ---- Legal pages: sticky contents beside the text ---- */
.legal{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.legal__toc{position:sticky;top:100px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:1.1rem 1.2rem;font-size:.9rem;box-shadow:var(--sh)}
.legal__toc ol{margin:.6rem 0 0;padding-inline-start:1.1rem;display:grid;gap:.35rem;color:var(--ink2)}
.legal__toc a:hover{color:var(--blue)}
.legal__body h2{scroll-margin-top:110px;font-size:1.6rem}
.legal__body table{width:100%;border-collapse:collapse;font-size:.92rem;margin:1rem 0}
.legal__body th,.legal__body td{border:1px solid var(--line);padding:.6rem .7rem;text-align:start;vertical-align:top}
.legal__body th{background:var(--bg2)}
@media (max-width:860px){.legal{grid-template-columns:1fr}.legal__toc{position:static}.legal__body table{display:block;overflow-x:auto}}
@media (max-width:640px){.phero__vis{display:none}.phero{padding-top:1.6rem}}
@media (max-width:640px){.annc--offer .wrap{flex-wrap:nowrap;font-size:.82rem;gap:.45rem}.annc--offer .wrap>span:not(.annc__badge){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.annc--offer a{white-space:nowrap}}
/* Header fit: German, French and Russian labels run longer than English, so
   the brand and nav labels never wrap and the link padding tightens as the
   viewport narrows, until the burger takes over. */
.brand,.nav__item>a,.hdr__cta .btn{white-space:nowrap}
@media (max-width:1440px){.nav__item>a{padding:.6rem .7rem}}
@media (max-width:1380px){.nav__list{gap:0}.nav__item>a{padding:.55rem .6rem;font-size:.95rem}}
/* Price builder: tabs of services on the left, a sticky running estimate on
   the right. Options are whole-row labels so the full row is the hit area. */
.plans .tier__line{font-size:.95rem}
/* Founders: three cards in one row. Name, role, LinkedIn, nothing more. */
.people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.person{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);padding:1.8rem;display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.person:hover{transform:translateY(-4px);box-shadow:var(--sh-hover)}
.person__photo{width:88px;height:88px;border-radius:50%;overflow:hidden;background:linear-gradient(160deg,var(--h),var(--ink2) 150%);color:#fff;display:grid;place-items:center;font-size:1.9rem;font-weight:700;letter-spacing:-.04em;margin-bottom:1rem;box-shadow:0 0 0 4px #fff,0 0 0 5px var(--line)}
.person__photo img{width:100%;height:100%;object-fit:cover}
.person__name{font-size:1.35rem;letter-spacing:-.02em}
.person__role{font-weight:600;color:var(--ink2);margin:0}
.person__tag{margin:0 0 .6rem}
.person__li{margin-top:auto;display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .9rem;border-radius:999px;background:#0A66C2;color:#fff;font-weight:600;font-size:.88rem}
.person__li:hover{background:#004182}
@media (max-width:720px){.people{grid-template-columns:1fr}}
/* About: mission and vision side by side, then the plan as three steps. */
.mv{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.mv__card{border-radius:var(--r-lg);padding:2rem;background:var(--t);border:1px solid var(--line)}
.mv__card--ink{background:var(--ink);color:#fff;border-color:var(--ink)}
.mv__card--ink .eyebrow{color:rgba(255,255,255,.6)}
.mv__text{font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.3;letter-spacing:-.02em;font-weight:600;margin:0}
.plan{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;counter-reset:plan}
.plan__step{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem;box-shadow:var(--sh)}
.plan__when{display:inline-block;background:var(--h);color:#fff;font-weight:700;font-size:.8rem;padding:.3rem .8rem;border-radius:999px;margin-bottom:.9rem}
.plan__step h3{font-size:1.25rem;margin-bottom:.4rem}
.plan__step p{color:var(--ink2);margin:0}
@media (max-width:820px){.mv,.plan{grid-template-columns:1fr}}
/* Even line lengths on headings: no single-word orphans. */
h1,h2,h3{text-wrap:balance}
.lede,.tier__aud,.person__role{text-wrap:pretty}
.grid.g4>.principle{flex-direction:column;gap:.8rem;padding:1.6rem}
.grid.g4>.principle b{font-size:1.1rem}
.pick{display:flex;flex-direction:column;gap:.2rem;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.pick:hover{transform:translateY(-3px);box-shadow:var(--sh-hover)}
.pick .link{margin-top:.6rem;color:var(--h)}
/* Service page intro: the explanation on the left, the fit checklist on the right. */
.svc-intro{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2rem;align-items:start}
.svc-intro__text h2{margin-bottom:1rem}
.svc-intro__text .lede{max-width:60ch;margin-bottom:1rem}
.svc-intro__fit h3{font-size:1.25rem;margin-bottom:1rem}
.svc-intro__fit .checklist{gap:.7rem}
.svc-related__title{font-size:1.25rem;margin:0 0 1rem}
@media (max-width:860px){.svc-intro{grid-template-columns:1fr}}
.start-assure{padding-bottom:0}
.start-assure h2{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.start-assure .card{padding:1.2rem 1.4rem}
.start-assure .card h3{font-size:1.2rem}
.thanks__h{font-size:clamp(1.6rem,3vw,2.4rem);margin-bottom:1.2rem}
.thanks__steps .plan__when{min-width:1.8rem;text-align:center}
.job-more{margin-top:2.4rem}
.job-more h2{font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:1rem}
.job-steps{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.9rem}
.job-steps li{display:flex;gap:.9rem;align-items:flex-start}
.job-steps__n{flex:none;width:2rem;height:2rem;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.9rem}
.job-steps p{margin:.2rem 0 0}
.job-about h3{font-size:1.2rem;margin-bottom:.4rem}
.job-about .link{margin-top:.6rem;display:inline-flex}
.facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
.facts .fact b{font-size:clamp(2rem,3.4vw,2.8rem);letter-spacing:-.04em;line-height:1;color:var(--h)}
.facts .fact span{color:var(--ink2);font-size:.92rem;font-weight:600}
@media (max-width:980px){.facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ---- Mega menu ----
   Panels hang from the header bar, not from their menu item, so a panel
   opened from the right-hand items never runs off screen. A transparent
   bridge covers the gap so moving the pointer down does not close it. */
.nav__item.has-mega{position:static}
.nav__item>a{display:inline-flex;align-items:center;gap:.3rem}
.nav__caret{display:inline-grid;transition:transform .2s var(--ease);opacity:.55}
.nav__caret .ic{width:12px;height:12px}
.has-mega:hover .nav__caret,.has-mega:focus-within .nav__caret{transform:rotate(45deg);opacity:1}
.mega{left:50%;width:min(760px,calc(100vw - 40px));padding:1.2rem;transition:opacity .18s var(--ease),transform .18s var(--ease)}
.mega::before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px}
.has-mega.is-open .nav__caret{transform:rotate(45deg);opacity:1}
.mega--wide{width:min(1120px,calc(100vw - 40px))}
.mega__body{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:1rem}
.mega__col-h{display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:700;color:var(--ink2);text-transform:none;padding:.4rem .6rem .5rem}
.mega__link--rich{align-items:flex-start;padding:.55rem .6rem}
.mega__link--rich b{display:block;font-size:.93rem;line-height:1.25}
.mega__link--rich small{display:block;color:var(--muted);font-weight:500;font-size:.8rem;line-height:1.35;margin-top:.1rem}
.mega__link--rich .ico{flex:none;margin-top:.1rem}
.mega__side{border-radius:var(--r);padding:1.3rem;display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}
.mega__side--ink{background:var(--ink);color:#fff}
.mega__side p{margin:0;color:rgba(255,255,255,.75);font-size:.9rem}
.mega__eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.mega__big{font-size:2.6rem;letter-spacing:-.04em;line-height:1}
.mega__side .btn{margin-top:auto}
.link--light{color:#fff}
.mega__foot{margin-top:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.mega__list{display:grid;gap:.35rem}
.mega__list--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mega__case{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.9rem;align-items:center;padding:.7rem .8rem;border-radius:14px;transition:background .2s}
.mega__case:hover{background:var(--bg2)}
.mega__case b{font-size:1.45rem;letter-spacing:-.03em;line-height:1;color:var(--blue)}
.mega__case span{font-weight:600;font-size:.95rem}
.mega__case small{display:block;color:var(--muted);font-weight:500;font-size:.8rem}
.mega__plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.mega__plan{display:flex;flex-direction:column;gap:.3rem;padding:1rem;border-radius:var(--r);background:var(--t);transition:transform .2s var(--ease)}
.mega__plan:hover{transform:translateY(-2px)}
.mega__plan-name{font-weight:700}
.mega__plan-name em{font-style:normal;font-size:.7rem;background:var(--ink);color:#fff;border-radius:999px;padding:.1rem .45rem;margin-left:.2rem;vertical-align:middle}
.mega__plan b{font-size:1.15rem;letter-spacing:-.02em}
.mega__plan small{color:var(--ink2);font-size:.8rem;line-height:1.35}
.mega__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-top:.6rem}
.mega__tile{display:flex;gap:.6rem;align-items:flex-start;padding:.8rem;border-radius:14px;border:1px solid var(--line);transition:background .2s}
.mega__tile:hover{background:var(--bg2)}
.mega__tile b{display:block;font-size:.92rem}
.mega__tile small{display:block;color:var(--muted);font-size:.8rem;line-height:1.35}
.mega__count{font-style:normal;font-size:.72rem;background:var(--lime);color:var(--ink);border-radius:999px;padding:.05rem .45rem;margin-left:.25rem}
/* Mobile menu: one collapsible section per area. */
.mnav__nav{display:grid;grid-template-columns:minmax(0,1fr);gap:.4rem}
.mnav__sec{border-bottom:1px solid var(--line);padding:.3rem 0 .8rem}
.mnav__sec>summary{list-style:none;display:flex;align-items:center;gap:1rem;font-size:1.6rem;font-weight:700;letter-spacing:-.03em;padding:.5rem 0;cursor:pointer}
.mnav__sec>summary::-webkit-details-marker{display:none}
.mnav__sec>summary::after{content:"+";margin-left:auto;font-weight:500;color:var(--muted);transition:transform .2s}
.mnav__sec[open]>summary::after{transform:rotate(45deg)}
.mnav__h{margin:.8rem 0 .4rem;font-size:.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.mnav__grid--1{grid-template-columns:minmax(0,1fr)}
.mnav__num{color:var(--blue);margin-right:.5rem}
.mnav__link{font-size:1.6rem}
.mnav__cta{margin-top:1rem;justify-content:space-between}
@media (max-width:1180px){.mega--wide .mega__body{grid-template-columns:1fr}.mega--wide .mega__side{display:none}}
/* ---- World map ----
   A dot-matrix map on a soft panel. Grey dots are everywhere we can work;
   coloured dots are the five focus regions, and they grow on hover. Routes
   run from the two team bases. The detail card and region list sit under it. */
.wmap{display:grid;gap:1.2rem}
.wmap__stage{position:relative;border-radius:var(--r-lg);background:radial-gradient(120% 90% at 70% 30%,#EEF2FF 0%,#F7F6F0 60%,#F3F1E9 100%);border:1px solid var(--line);overflow:hidden;box-shadow:var(--sh);padding:clamp(.6rem,2vw,1.4rem) clamp(.4rem,1.5vw,1rem) 3rem}
.wmap__svg{display:block;width:100%;height:auto;overflow:visible}
.wmap__dots{fill:none;stroke-linecap:round;stroke-width:3.6;stroke:#D9D6CB;transition:stroke-width .25s var(--ease),stroke .25s var(--ease)}
.wmap__dots--rest{stroke:#DCD9CF}
.wmap__region{cursor:pointer;outline:none}
.wmap__region .wmap__dots{stroke:color-mix(in srgb,var(--h) 70%,#fff)}
.wmap__region .wmap__dots.hue-lime{stroke:#A9D42A}
.wmap__region:hover .wmap__dots,.wmap__region:focus-visible .wmap__dots,.wmap__region.is-active .wmap__dots{stroke:var(--h);stroke-width:5.4}
.wmap__region .wmap__dots.hue-lime{--h:#86B511}
.wmap__route{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-dasharray:3 6;opacity:.28;animation:wmap-flow 1.6s linear infinite;transition:opacity .25s,stroke .25s,stroke-width .25s}
.wmap__route.is-active{opacity:.95;stroke:var(--blue);stroke-width:2}
@keyframes wmap-flow{to{stroke-dashoffset:-18}}
.wmap__city{fill:#fff;stroke:var(--ink);stroke-width:1.2;opacity:.55;transition:opacity .25s}
.wmap__city.is-active{opacity:1;fill:var(--lime)}
.wmap__station{fill:#fff;stroke:var(--ink);stroke-width:3}
.wmap__station--hq{fill:var(--ink);stroke:var(--lime);stroke-width:3.5}
.wmap__pulse{fill:none;stroke:var(--lime);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:wmap-pulse 2.6s ease-out infinite}
@keyframes wmap-pulse{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
.wmap__pin,.wmap__label{position:absolute;white-space:nowrap;border-radius:999px;font-size:.74rem;font-weight:700;line-height:1;box-shadow:0 6px 16px -8px rgba(15,22,38,.35)}
.wmap__pin{padding:.4rem .65rem;background:var(--ink);color:#fff}
.wmap__pin--hq{transform:translate(-50%,70%)}
.wmap__pin--base{background:#fff;color:var(--ink);border:1px solid var(--line2);transform:translate(12%,-170%)}
.wmap__label{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .35rem .3rem .7rem;background:#fff;color:var(--ink);border:1px solid var(--line);transform:translate(-50%,-50%);transition:background .2s,color .2s,transform .2s var(--ease)}
.wmap__label span{font-variant-numeric:tabular-nums;background:var(--bg2);border-radius:999px;padding:.22rem .45rem;font-weight:600;color:var(--ink2)}
.wmap__label:hover,.wmap__label.is-active{background:var(--h);color:#fff;border-color:transparent;transform:translate(-50%,-50%) scale(1.06)}
.wmap__label:hover span,.wmap__label.is-active span{background:rgba(255,255,255,.22);color:#fff}
.wmap__label[data-region="united-kingdom"]{transform:translate(-118%,-60%)}
.wmap__label[data-region="united-kingdom"]:hover,.wmap__label[data-region="united-kingdom"].is-active{transform:translate(-118%,-60%) scale(1.06)}
.wmap__label[data-region="europe"]{transform:translate(-10%,40%)}
.wmap__label[data-region="europe"]:hover,.wmap__label[data-region="europe"].is-active{transform:translate(-10%,40%) scale(1.06)}
.wmap__legend{position:absolute;left:1rem;right:1rem;bottom:.9rem;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font-size:.74rem;color:var(--ink2)}
.wmap__legend span{display:inline-flex;align-items:center;gap:.4rem}
.wmap__k{width:10px;height:10px;border-radius:50%;display:inline-block}
.wmap__k--hq{background:var(--ink);box-shadow:0 0 0 2px var(--lime)}
.wmap__k--focus{background:linear-gradient(135deg,var(--blue),var(--violet))}
.wmap__k--world{background:#DCD9CF}
.wmap__panel{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:1rem;align-items:start}
.wmap__card{grid-column:1;grid-row:1;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;box-shadow:var(--sh);display:flex;flex-direction:column;gap:.9rem;animation:wmap-in .3s var(--ease)}
.wmap__card[hidden]{display:none}
@keyframes wmap-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wmap__card .wmap__name{margin:0;font-family:var(--f);font-variation-settings:"wdth" 88;font-weight:700;line-height:.98;letter-spacing:-.02em;font-size:1.6rem;text-wrap:balance}
.wmap__card p{margin:0;color:var(--ink2);font-size:.95rem}
.wmap__card .eyebrow{margin:0;color:var(--h,var(--muted))}
.wmap__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.wmap__stats>div{background:var(--t,var(--bg2));border-radius:14px;padding:.85rem .8rem;display:flex;flex-direction:column;gap:.3rem}
.wmap__card[data-card="world"] .wmap__stats>div{background:var(--bg2)}
.wmap__stats b{font-size:1.35rem;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}
.wmap__stats span{font-size:.76rem;color:var(--ink2);line-height:1.35}
.wmap__meta{display:grid;grid-template-columns:1fr 1.4fr;gap:.6rem;margin:0}
.wmap__meta dt{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.wmap__meta dd{margin:.15rem 0 0;font-size:.88rem;font-weight:600}
.wmap__acts{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem}
.wmap__hint{display:flex;align-items:center;gap:.4rem;font-size:.82rem!important;color:var(--muted)!important}
.wmap__hint svg{width:16px;height:16px}
.wmap__list{grid-column:2;grid-row:1;list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.wmap__list a{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border-radius:14px;background:#fff;border:1px solid var(--line);font-weight:600;font-size:.95rem;transition:background .2s,transform .2s var(--ease)}
.wmap__list a i{width:10px;height:10px;border-radius:50%;background:var(--h);flex:none}
.wmap__list a span{margin-left:auto;font-size:.82rem;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.wmap__list a:hover,.wmap__list a:focus-visible,.wmap__list a.is-active{background:var(--t);border-color:transparent;transform:translateX(3px)}
@media (max-width:860px){.wmap__panel{grid-template-columns:1fr}.wmap__list{grid-column:1;grid-row:2}.wmap__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.wmap__pin--hq{transform:translate(-92%,80%)}.wmap__label span,.wmap__pin--base{display:none}.wmap__label{font-size:.62rem;padding:.25rem .45rem}.wmap__pin{font-size:.62rem}.wmap__legend{position:static;padding:.6rem .4rem 0}.wmap__stage{padding-bottom:.6rem}}
@media (prefers-reduced-motion:reduce){.wmap__route,.wmap__pulse{animation:none}}
/* About: goals as a numbered two-by-two list. */
.goals{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.goal{display:flex;gap:1.1rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem;box-shadow:var(--sh)}
.goal__n{flex:none;width:3rem;height:3rem;border-radius:14px;background:var(--t);color:var(--h);display:grid;place-items:center;font-weight:700;font-size:1.05rem;letter-spacing:-.02em}
.goal h3{font-size:1.2rem;margin-bottom:.35rem}
.goal p{margin:0;color:var(--ink2)}
@media (max-width:760px){.goals{grid-template-columns:1fr}}

/* Grid and form children may shrink below their content width, so a long word or a form field never widens the page on small phones */
.grid>*,.ftr__top>*,.legal>*,.form>*{min-width:0}
.job-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.4rem;align-items:center}
@media (max-width:560px){.job-card{gap:1rem}.job-card__body{grid-column:1/-1;grid-row:2}.job-card>.ico--md{grid-column:3;grid-row:1}}

/* Phones: service cards become compact rows (icon, name and one line, arrow), so twelve services fit in about a screen and a half instead of three thousand pixels. */
@media (max-width:560px){
  .svc,.svc--big{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:.9rem;row-gap:.15rem;min-height:0;padding:.95rem 1rem}
  .svc::after{display:none}
  .svc>.ico{grid-row:1/3;width:44px;height:44px}
  .svc>.ico .ic{width:20px;height:20px}
  .svc h3,.svc--big h3{font-size:1.05rem;align-self:end}
  .svc p{font-size:.86rem;line-height:1.35;grid-column:2;align-self:start}
  .svc__go{grid-column:3;grid-row:1/3;margin:0;font-size:0;gap:0}
  .svc__go .ico{width:32px;height:32px}
  .grid.g4:has(>.svc),.grid.g3:has(>.svc){gap:.6rem}
  .hero .orbit{width:min(64vw,250px);margin-top:1.2rem}
}

/* Phones: the audit band sticker is hidden (it covered the heading, which already says free audit); founder cards run horizontally (photo left, name and role right); footer link columns pair up two by two. */
@media (max-width:560px){
  .sticker{display:none}
  .person{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:1rem;row-gap:.1rem;align-items:center;padding:1.1rem 1.2rem}
  .person__photo{grid-row:1/5;width:64px;height:64px;font-size:1.35rem;align-self:start}
  .person__name{font-size:1.15rem}
  .person__tag{margin:0}
  .person__li{margin-top:.5rem;justify-self:start;grid-column:2}
  .people{gap:.7rem}
  .ftr__top{grid-template-columns:1fr 1fr;column-gap:1.2rem}
  .ftr__brand{grid-column:1/-1}
}


/* Phones, start page: the three promises and the plan picker become compact rows (icon left), so the form starts sooner. */
@media (max-width:560px){
  .start-assure .grid{gap:.6rem}
  .start-assure .card{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.9rem;row-gap:.2rem;align-items:start;padding:1rem 1.1rem}
  .start-assure .card>.ico{grid-row:1/3;margin:0}
  .start-assure .card h3{font-size:1.05rem;margin:0 0 .15rem!important}
  .pkg-pick{gap:.5rem}
  .pkg-pick .pk{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.85rem;row-gap:.1rem;align-items:center;padding:.75rem .9rem}
  .pkg-pick .pk>.ico{grid-row:1/4}
  .pkg-pick input:checked+.pk{transform:none}
}

/* Contact hero: text and form side by side on wide screens only; it used to be an inline style, which stopped the layout collapsing on phones. */
@media (min-width:861px){.phero__in--contact{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start}}
.founder--author{grid-template-columns:140px minmax(0,1fr);min-height:0}
.founder--author .avatar{font-size:2.4rem}
@media (max-width:560px){.founder--author{grid-template-columns:72px minmax(0,1fr);gap:1rem}.founder--author .avatar{font-size:1.4rem}}

/* Phones: any card that opens with an icon (promises, next steps, values) runs icon-left, text-right, which roughly halves its height. */
@media (max-width:560px){
  .grid>.card:not(.job-card):has(>.ico:first-child){display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.9rem;row-gap:.2rem;align-items:start;padding:1rem 1.1rem}
  .grid>.card:not(.job-card):has(>.ico:first-child)>.ico:first-child{grid-row:1/span 3;margin:0}
  .grid>.card:not(.job-card):has(>.ico:first-child)>:not(.ico:first-child){grid-column:2}
  .grid>.card:not(.job-card):has(>.ico:first-child)>h3{font-size:1.05rem;margin:0 0 .15rem!important}
  .grid:has(>.card:not(.job-card)>.ico:first-child){gap:.6rem}
}
@media (max-width:560px){
  .principle{display:grid!important;grid-template-columns:auto minmax(0,1fr);column-gap:.9rem;align-items:start;padding:1rem 1.1rem}
  .principle>.ico{margin:0}
  .grid:has(>.principle){gap:.6rem}
}

/* Phones: market quick facts pair up two by two. */
@media (max-width:560px){.mfacts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.6rem}.mfacts>*{padding:1rem!important}}

/* ---- Pricing: 3x3 price list, pinned estimate bar, offer cards ---- */
.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;border:0;margin:0;padding:0;min-width:0}
.pcard{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"ico . tick" "name name name" "note note note" "price price price";align-content:start;row-gap:.3rem;padding:1.3rem 1.3rem 1.2rem;border-radius:var(--r);background:#fff;border:1.5px solid var(--line);cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}
.pcard:hover{border-color:var(--line2);box-shadow:var(--sh)}
.pcard input{position:absolute;opacity:0;pointer-events:none}
.pcard__ico{grid-area:ico;margin-bottom:.6rem}
.pcard__tick{grid-area:tick;width:28px;height:28px;border-radius:50%;border:2px solid var(--line2);display:grid;place-items:center;color:transparent;transition:background .2s,border-color .2s,color .2s}
.pcard__tick .ic{width:15px;height:15px}
.pcard__name{grid-area:name;font-size:1.15rem;letter-spacing:-.02em}
.pcard__note{grid-area:note;color:var(--muted);font-size:.9rem;line-height:1.4}
.pcard__price{grid-area:price;margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--line);font-weight:700}
.pcard:has(input:checked){border-color:var(--ink);background:var(--t);box-shadow:var(--sh)}
.pcard:has(input:checked) .pcard__tick{background:var(--ink);border-color:var(--ink);color:#fff}
.pcard:has(input:checked) .pcard__price{border-top-color:rgba(17,24,39,.12)}
.pcard:has(input:focus-visible){outline:3px solid var(--blue);outline-offset:3px}
.pgrid__extra{margin:1rem 0 0;max-width:70ch}
.pnote{margin-top:1rem}
/* The estimate pins to the bottom of the screen while the price list is in view. */
.pest{position:sticky;bottom:20px;z-index:20;margin-top:1.2rem;display:flex;align-items:center;flex-wrap:wrap;gap:.8rem 1.4rem;padding:.85rem .85rem .85rem 1.5rem;border-radius:var(--r-lg);background:var(--ink);color:#fff;box-shadow:var(--sh-hover)}
.pest__sum{flex:1 1 260px;min-width:0;display:grid;gap:.15rem}
.pest__label{font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.pest__sum b{font-size:1.2rem;letter-spacing:-.01em}
.pest__tip{font-size:.86rem;color:var(--lime)}
.pest__offer{font-size:.86rem;padding:.45rem .9rem;border:1px dashed rgba(255,255,255,.35);border-radius:999px;color:#fff;white-space:nowrap}
.pest__offer b{color:var(--lime)}
.pest__offer:hover{border-color:var(--lime)}
.pbuild:not(.has-picks) .pest__sum b{color:rgba(255,255,255,.75);font-weight:600}
.ocards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.ocard{display:flex;flex-direction:column;gap:.55rem;padding:1.6rem;border-radius:var(--r-lg);background:var(--t);border:1px solid rgba(17,24,39,.06);color:var(--ink);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.ocard:hover{transform:translateY(-4px);box-shadow:var(--sh-hover)}
.ocard:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.ocard__badge{align-self:flex-start;font-size:.74rem;font-weight:700;padding:.28rem .7rem;border-radius:999px;background:#fff}
.ocard__big{font-family:var(--f);font-variation-settings:"wdth" 88;font-size:clamp(2.4rem,4vw,3.2rem);font-weight:700;line-height:1;letter-spacing:-.035em;margin-top:.4rem}
.ocard__title{font-weight:600;line-height:1.35;text-wrap:pretty}
.ocard__go{margin-top:auto;padding-top:.8rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.9rem}
.ocard__go .ic{width:16px;height:16px;transition:transform .2s}
.ocard:hover .ocard__go .ic{transform:translateX(3px)}
@media (max-width:900px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.ocards{grid-template-columns:1fr}}
@media (max-width:760px){
  /* Phones: the estimate bar replaces the bottom action bar on this page, so only one bar is pinned. */
  body:has([data-builder]) .mbar,body:has([data-builder]) .totop{display:none!important}
  .pest{bottom:12px;padding:.8rem .8rem .8rem 1.1rem;gap:.6rem 1rem}
  .pest__offer{display:none}
  .pest .btn{padding:.7rem 1rem;font-size:.92rem}
}
@media (max-width:560px){
  .pgrid{grid-template-columns:1fr;gap:.55rem}
  .pcard{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ico name tick" "ico note tick" "ico price tick";column-gap:.9rem;row-gap:.1rem;padding:.95rem 1rem}
  .pcard__ico{margin:0;align-self:center}
  .pcard__tick{align-self:center}
  .pcard__name{font-size:1.05rem}
  .pcard__note{font-size:.85rem}
  .pcard__price{margin:0;padding:0;border:0;font-size:.92rem}
  .ocard{padding:1.2rem}
  .ocard__big{font-size:2.2rem}
}
.pest__short{display:none}
@media (max-width:560px){
  /* Phones: the estimate bar stays one line high. */
  .pest{flex-wrap:nowrap;gap:.7rem;padding:.65rem .65rem .65rem 1rem;border-radius:999px}
  .pest__sum{flex:1 1 auto}
  .pest__label{font-size:.66rem}
  .pest__sum b{font-size:.92rem;line-height:1.25}
  .pest__tip{display:none}
  .pest__long{display:none}
  .pest__short{display:inline}
  .pest .btn{flex:none;padding:.6rem .7rem .6rem 1rem}
  .ocard{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:1rem;row-gap:.3rem;align-items:center}
  .ocard__badge,.ocard__go{grid-column:1/-1;justify-self:start}
  .ocard__big{margin:0;font-size:2rem}
  .ocard__go{padding-top:.3rem}
}
.svc-reading{margin-top:1.6rem}

/* Markets: region cards under the map */
.mkt-card{display:flex;flex-direction:column;gap:.35rem}
.mkt-card__top{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.6rem}
.mkt-card h3{margin:0 0 .4rem}
.mkt-card__k{margin:.6rem 0 0;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--h)}
.mkt-card__p{margin:0;font-size:.93rem;line-height:1.5;color:var(--ink2)}
.mkt-card__chips{margin-top:.8rem}
.mkt-card__meta{display:flex;align-items:center;gap:.4rem;margin:.9rem 0 .2rem;padding-top:.8rem;border-top:1px solid var(--line);font-size:.86rem;color:var(--muted)}
.mkt-card__meta .ic{width:15px;height:15px}
.mkt-card .link{margin-top:auto;padding-top:.6rem}
/* Three-jobs tiles: closed tiles are narrow, so their titles are set smaller and wrap by word. */
.job__title{font-size:clamp(2.2rem,4vw,4.2rem);overflow-wrap:break-word}
.job:not(.is-open) .job__title{font-size:clamp(1.8rem,2.6vw,2.7rem)}
@media (max-width:860px){.job:not(.is-open) .job__title,.job__title{font-size:clamp(2rem,8vw,2.8rem)}}

/* A service group with a single service: one wide card with its main deliverables. */
.svc--feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(1.2rem,3vw,2.5rem);align-items:center}
.svc__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1.2rem}
.svc__list li{display:flex;align-items:center;gap:.55rem;font-weight:600;font-size:.95rem;color:var(--ink)}
@media (max-width:760px){.svc--feature{grid-template-columns:1fr}.svc__list{grid-template-columns:1fr}}
.mega__col-h--sub{margin-top:.8rem}
.svc--feature .svc__go{justify-content:flex-start;gap:.6rem;margin-top:1.2rem}
.svc--feature h3{margin-top:1rem}
.svc__tick{display:inline-grid;place-items:center;width:26px;height:26px;flex:none;border-radius:50%;background:#fff;color:var(--h);box-shadow:0 1px 2px rgba(15,22,38,.08)}
.svc__tick .ic{width:14px;height:14px}
@media (max-width:560px){.svc.svc--feature{display:block;padding:1.3rem}.svc--feature .svc__go{font-size:.9rem;gap:.6rem;margin:1rem 0 1.2rem}.svc--feature .svc__list{gap:.55rem}}
@media (max-width:560px){.svc--feature .ico--lg{width:52px;height:52px}}
@media (max-width:640px){.prose table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:normal}.prose th,.prose td{min-width:140px}}
