/* colors of the sample site in the hero, registered so they can fade between business types */
@property --a{syntax:'<color>';inherits:true;initial-value:#1E5A43;}
@property --b{syntax:'<color>';inherits:true;initial-value:#0F3527;}
@property --pop{syntax:'<color>';inherits:true;initial-value:#F1D38A;}

:root{
  color-scheme:dark;
  --abyss:#05080D;
  --deep:#0A1018;
  --shelf:#101925;
  --ice:#96D7FF;
  --ice-bright:#CDEEFF;
  --ice-deep:#2F9BE0;
  --on-ice:#04121C;
  --silver:#C7CED6;
  --text:#E8EFF6;
  --muted:#8C9AAB;
  --dim:#66748A;
  --line:rgba(150,215,255,.14);
  --line-strong:rgba(150,215,255,.32);
  --ease:cubic-bezier(.2,.7,.1,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --wrap:1240px;
  --gut:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--abyss);color:var(--text);font-family:Archivo,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip;}
body::before{content:"";position:fixed;inset:0;z-index:-3;pointer-events:none;background:
  radial-gradient(60% 45% at 85% 0%,rgba(47,155,224,.13),transparent 70%),
  radial-gradient(50% 40% at 0% 100%,rgba(150,215,255,.06),transparent 70%);}
h1,h2,h3,h4{margin:0 0 .5em;font-stretch:125%;font-weight:780;line-height:1.04;letter-spacing:-.03em;}
h2{font-size:clamp(2rem,4.4vw,3.75rem);text-wrap:balance;}
h3{font-size:1.4rem;font-stretch:112%;font-weight:720;letter-spacing:-.015em;line-height:1.15;}
p{margin:0 0 1em;}
a{color:inherit;}
img,video,canvas{max-width:100%;display:block;}
::selection{background:var(--ice);color:var(--on-ice);}
:focus-visible{outline:2px solid var(--ice);outline-offset:3px;border-radius:4px;}
main{overflow-x:clip;}
.wrap{width:min(100% - 2 * var(--gut),var(--wrap));margin-inline:auto;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.ico{width:18px;height:18px;flex:none;}
.skip{position:fixed;left:16px;top:-80px;z-index:100;background:var(--ice);color:var(--on-ice);padding:12px 18px;border-radius:10px;font-weight:650;text-decoration:none;transition:top .3s var(--ease);}
.skip:focus{top:16px;}
.link{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--ease),color .3s;}
.link:hover{background-size:100% 1px;color:var(--ice);}

/* scroll progress */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:70;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--ice-deep),var(--ice));box-shadow:0 0 12px rgba(150,215,255,.8);}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border-radius:999px;border:1px solid transparent;font:inherit;font-weight:650;font-size:1rem;line-height:1.1;text-decoration:none;white-space:nowrap;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .35s var(--ease),box-shadow .35s,color .3s,border-color .3s,background-color .3s;}
.btn-primary{background:var(--ice);color:var(--on-ice);}
.btn-primary::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.8) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease);}
.btn-primary:hover::before{transform:translateX(120%);}
.btn-primary:hover{box-shadow:0 12px 44px -8px rgba(150,215,255,.6);}
.btn-ghost{border-color:var(--line-strong);color:var(--text);}
.btn-ghost::before{content:"";position:absolute;inset:-1px;z-index:-1;background:var(--ice);border-radius:inherit;transform:translateY(102%);transition:transform .45s var(--ease);}
.btn-ghost:hover{color:var(--on-ice);border-color:var(--ice);}
.btn-ghost:hover::before{transform:none;}
.btn-sm{padding:11px 18px;font-size:.92rem;}

/* nav */
.nav{position:fixed;top:14px;left:0;right:0;z-index:60;pointer-events:none;}
.nav-inner{pointer-events:auto;width:min(100% - 2 * var(--gut),var(--wrap));margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 8px 8px 10px;border-radius:999px;border:1px solid transparent;transition:background-color .45s,border-color .45s,box-shadow .45s,backdrop-filter .45s;}
.nav.scrolled .nav-inner{background:rgba(8,13,20,.74);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);border-color:var(--line);box-shadow:0 24px 44px -26px rgba(0,0,0,.9);}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:780;font-stretch:118%;font-size:1.08rem;letter-spacing:-.02em;white-space:nowrap;}
.brand img{width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 1px var(--line-strong);transition:transform .7s var(--ease),box-shadow .4s;}
.brand:hover img{transform:rotate(-14deg) scale(1.06);box-shadow:0 0 0 1px var(--ice),0 0 24px rgba(150,215,255,.5);}
.nav-links{position:relative;display:flex;gap:2px;}
.nav-links a{position:relative;z-index:1;padding:9px 14px;border-radius:999px;font-size:.94rem;font-weight:520;color:var(--muted);text-decoration:none;transition:color .25s;}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--text);}
.nav-pill{position:absolute;top:0;left:0;height:100%;width:0;border-radius:999px;background:rgba(150,215,255,.11);border:1px solid var(--line);opacity:0;pointer-events:none;transition:transform .5s var(--ease),width .5s var(--ease),opacity .3s;}
.nav-right{display:flex;align-items:center;gap:8px;}
.icon-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:var(--ice);text-decoration:none;transition:background-color .3s,color .3s,border-color .3s,transform .4s var(--ease);}
.icon-btn:hover{background:var(--ice);border-color:var(--ice);color:var(--on-ice);transform:translateY(-2px);}
.menu-toggle{display:none;position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:rgba(8,13,20,.6);color:var(--text);cursor:pointer;}
.menu-toggle::before,.menu-toggle::after{content:"";position:absolute;left:13px;right:13px;top:50%;height:2px;margin-top:-1px;border-radius:2px;background:currentColor;transition:transform .45s var(--ease);}
.menu-toggle::before{transform:translateY(-4px);}
.menu-toggle::after{transform:translateY(4px);}
.menu-toggle[aria-expanded="true"]::before{transform:rotate(45deg);}
.menu-toggle[aria-expanded="true"]::after{transform:rotate(-45deg);}

/* full-screen menu (small screens) */
.menu{position:fixed;inset:0;z-index:58;display:flex;flex-direction:column;justify-content:center;gap:28px;padding:104px var(--gut) 40px;background:radial-gradient(90% 60% at 100% 0%,rgba(47,155,224,.16),transparent 70%),var(--abyss);clip-path:circle(0 at calc(100% - 44px) 40px);visibility:hidden;transition:clip-path .7s var(--ease-io),visibility 0s .7s;}
.menu.open{clip-path:circle(150% at calc(100% - 44px) 40px);visibility:visible;transition:clip-path .7s var(--ease-io),visibility 0s;}
.menu nav{display:grid;gap:4px;}
.menu nav a{font-size:clamp(2rem,9vw,3.2rem);font-weight:780;font-stretch:125%;letter-spacing:-.03em;line-height:1.15;text-decoration:none;opacity:0;transform:translateY(24px);transition:opacity .5s,transform .7s var(--ease),color .3s;}
.menu.open nav a{opacity:1;transform:none;transition-delay:calc(var(--i) * 55ms + 200ms);}
.menu nav a:hover{color:var(--ice);}
.menu-reach{display:grid;gap:12px;padding-top:24px;border-top:1px solid var(--line);}
.menu-reach a{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--silver);overflow-wrap:anywhere;}
.menu-reach svg{color:var(--ice);}

/* hero */
.hero{position:relative;min-height:100svh;padding:clamp(108px,13vh,148px) 0 36px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;isolation:isolate;}
.hero-map{position:absolute;inset:0;width:100%;height:100%;z-index:-2;-webkit-mask-image:radial-gradient(110% 95% at 65% 45%,#000 25%,transparent 88%);mask-image:radial-gradient(110% 95% at 65% 45%,#000 25%,transparent 88%);}
.hero-glow{position:absolute;left:0;top:0;width:680px;height:680px;margin:-340px 0 0 -340px;z-index:-1;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(150,215,255,.13),transparent 62%);transform:translate3d(var(--gx,70vw),var(--gy,40vh),0);transition:transform .9s var(--ease);will-change:transform;}
.hero h1{font-size:clamp(2.6rem,6.5vw,6.25rem);font-weight:800;line-height:.98;letter-spacing:-.04em;margin:0 0 clamp(26px,3.4vw,48px);}
.hero h1 .ln{display:block;white-space:nowrap;}
.hero h1 .w{display:inline-block;transform-origin:0 100%;transition:font-stretch 1.2s var(--ease),opacity .7s,transform 1.2s var(--ease);transition-delay:calc(var(--i) * 120ms + 120ms);}
.js:not(.loaded) .hero h1 .w{font-stretch:62%;opacity:0;transform:translateY(.4em);}
.hero [data-in]{transition:opacity .9s var(--ease),transform 1.1s var(--ease);transition-delay:calc(var(--d,0) * 1ms);}
.js:not(.loaded) .hero [data-in]{opacity:0;transform:translateY(26px);}
.js:not(.loaded) [data-page="index"] .nav-inner{opacity:0;transform:translateY(-20px);}
.nav-inner{transition:background-color .45s,border-color .45s,box-shadow .45s,opacity .8s .1s,transform .9s var(--ease) .1s;}
.hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:auto auto 1fr;grid-template-areas:"lede stage" "try stage" "cta stage";column-gap:clamp(32px,5vw,80px);row-gap:26px;align-items:start;}
.hero-lede{grid-area:lede;font-size:1.14rem;color:var(--silver);max-width:46ch;margin:0;}
.try{grid-area:try;}
.hero-cta{grid-area:cta;display:flex;flex-wrap:wrap;gap:12px;}
.stage-wrap{grid-area:stage;position:relative;perspective:1400px;}
.try label{display:block;font-size:.93rem;color:var(--muted);margin-bottom:10px;}
.try input{width:100%;font:inherit;font-size:1.12rem;font-weight:600;color:var(--text);padding:16px 18px;border-radius:14px;background:rgba(150,215,255,.05);border:1px solid var(--line-strong);transition:border-color .3s,box-shadow .3s,background-color .3s;}
.try input::placeholder{color:var(--dim);font-weight:450;}
.try input:focus{outline:none;border-color:var(--ice);background:rgba(150,215,255,.09);box-shadow:0 0 0 4px rgba(150,215,255,.16);}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.chip{font:inherit;font-size:.9rem;font-weight:560;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:background-color .35s,color .35s,border-color .35s,transform .35s var(--ease);}
.chip:hover{color:var(--text);border-color:var(--line-strong);transform:translateY(-2px);}
.chip[aria-pressed="true"]{background:var(--ice);border-color:var(--ice);color:var(--on-ice);}

/* hero stage: the live sample site */
.stage{position:relative;padding:0 7% 8% 0;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s var(--ease),--a .7s,--b .7s,--pop .7s;}
.browser{position:relative;border-radius:16px;background:#0D141E;border:1px solid var(--line-strong);overflow:hidden;box-shadow:0 44px 90px -34px rgba(0,0,0,.95),0 0 120px -24px rgba(150,215,255,.32);}
.browser-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;}
.browser-bar i{width:9px;height:9px;border-radius:50%;background:#243244;}
.url{flex:1;min-width:0;margin-left:10px;padding:5px 12px;border-radius:999px;background:#060B12;color:var(--muted);font-size:.78rem;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.scan{position:absolute;top:0;bottom:0;left:0;width:34%;z-index:4;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,rgba(150,215,255,.5) 85%,#fff);}
.stage.scanning .scan{animation:scan .8s var(--ease-io);}
@keyframes scan{0%{transform:translateX(-100%);opacity:1;}100%{transform:translateX(300%);opacity:0;}}
.handset{position:absolute;right:0;bottom:0;width:25%;border-radius:22px;padding:6px;background:#0D141E;border:1px solid var(--line-strong);box-shadow:-22px 30px 60px -22px rgba(0,0,0,.95);transform:translateZ(70px);}
.badge{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;padding:9px 14px 9px 9px;border-radius:14px;background:rgba(10,16,24,.94);border:1px solid var(--line-strong);font-size:.82rem;line-height:1.25;color:var(--muted);white-space:nowrap;transform:translateZ(110px);}
.badge b{display:block;color:var(--text);font-size:.9rem;font-weight:650;}
.badge svg{width:32px;height:32px;padding:8px;border-radius:50%;background:rgba(150,215,255,.14);color:var(--ice);}
.badge-1{top:-20px;right:12%;}
.badge-2{left:5%;bottom:0;}
.stage-note{margin:18px 0 0;font-size:.9rem;color:var(--muted);max-width:52ch;}

.mini{container-type:inline-size;background:#fff;color:#12171C;display:flex;flex-direction:column;aspect-ratio:16/10;overflow:hidden;font-stretch:100%;}
.mini-nav{display:flex;align-items:center;gap:2cqw;padding:2.6cqw 3.4cqw;}
.mini-logo{width:4.4cqw;height:4.4cqw;border-radius:50%;background:var(--a);flex:none;}
.mini-name{font-weight:800;font-size:3.1cqw;line-height:1.2;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.stage.typing .mini-name::after{content:"";display:inline-block;width:.08em;height:.9em;margin-left:.08em;vertical-align:-.08em;background:currentColor;animation:blink .7s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}
.mini-links{margin-left:auto;display:flex;gap:1.6cqw;flex:none;}
.mini-links i{width:5cqw;height:1cqw;border-radius:1cqw;background:#D5DAE0;}
.mini-hero{position:relative;flex:1;margin:0 2.4cqw;border-radius:2cqw;padding:4.6cqw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2.6cqw;color:#fff;background:linear-gradient(135deg,var(--a),var(--b));overflow:hidden;}
.mini-hero::after{content:"";position:absolute;right:-8cqw;bottom:-14cqw;width:34cqw;height:34cqw;border-radius:50%;border:5cqw solid var(--pop);opacity:.32;}
.mini-head{position:relative;z-index:1;font-weight:800;font-size:5.6cqw;line-height:1.05;letter-spacing:-.02em;max-width:15ch;}
.mini-cta{position:relative;z-index:1;background:var(--pop);color:#12171C;font-weight:700;font-size:2.4cqw;line-height:1.2;padding:1.5cqw 3cqw;border-radius:99px;}
.mini-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8cqw;padding:2.4cqw;}
.mini-tiles span{display:flex;align-items:center;gap:1.4cqw;border:1px solid #E3E7EC;border-radius:1.4cqw;padding:2cqw 2.2cqw;font-size:2.3cqw;line-height:1.2;font-weight:650;color:#2A323B;white-space:nowrap;overflow:hidden;}
.mini-tiles span::before{content:"";width:1.6cqw;height:1.6cqw;border-radius:50%;background:var(--a);flex:none;}
.mini-head,.mini-cta,.mini-tiles span{transition:opacity .22s,transform .3s var(--ease);}
.stage.swap .mini-head,.stage.swap .mini-cta,.stage.swap .mini-tiles span{opacity:0;transform:translateY(8px);}
.mini--phone{aspect-ratio:9/17;border-radius:17px;}
.mini--phone .mini-nav{padding:8cqw 7cqw 5cqw;gap:4cqw;}
.mini--phone .mini-logo{width:9cqw;height:9cqw;}
.mini--phone .mini-name{font-size:6.6cqw;}
.mini--phone .mini-links{flex-direction:column;gap:2cqw;}
.mini--phone .mini-links i{width:8cqw;height:1.6cqw;}
.mini--phone .mini-links i:last-child{display:none;}
.mini--phone .mini-hero{margin:0 5cqw;border-radius:5cqw;padding:8cqw;gap:6cqw;}
.mini--phone .mini-hero::after{right:-22cqw;bottom:-26cqw;width:70cqw;height:70cqw;border-width:10cqw;}
.mini--phone .mini-head{font-size:11cqw;}
.mini--phone .mini-cta{font-size:5.4cqw;padding:3cqw 6cqw;}
.mini--phone .mini-tiles{grid-template-columns:1fr;gap:3cqw;padding:5cqw;}
.mini--phone .mini-tiles span{font-size:5.4cqw;padding:3.6cqw 5cqw;border-radius:3cqw;gap:3cqw;}
.mini--phone .mini-tiles span::before{width:3.4cqw;height:3.4cqw;}

.hero-reach{list-style:none;margin:clamp(28px,3.4vw,44px) 0 0;padding:22px 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px 36px;font-size:.96rem;}
.hero-reach a,.hero-reach span{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--silver);transition:color .3s;}
.hero-reach a:hover{color:var(--ice);}
.hero-reach svg{color:var(--ice);}

/* industries */
.lanes{padding:clamp(56px,8vw,104px) 0;border-block:1px solid var(--line);overflow:hidden;}
.lanes h2{font-size:1.14rem;font-weight:500;font-stretch:100%;letter-spacing:0;line-height:1.5;color:var(--muted);margin:0 0 30px;}
.lane{display:flex;width:max-content;will-change:transform;}
.lane + .lane{margin-top:.35em;}
.lane span{display:inline-flex;align-items:center;gap:.55em;padding-right:.55em;font-size:clamp(2.2rem,6vw,5rem);font-weight:800;font-stretch:125%;letter-spacing:-.035em;line-height:1.12;white-space:nowrap;transition:color .4s,-webkit-text-stroke-color .4s;}
.lane span::after{content:"";width:.26em;height:.26em;border-radius:50%;background:var(--ice);flex:none;}
.lane--outline span{color:transparent;-webkit-text-stroke:1px rgba(150,215,255,.55);}
.lane span:hover{color:var(--ice);-webkit-text-stroke-color:var(--ice);}

/* sections */
.sec{position:relative;padding:clamp(72px,8.5vw,128px) 0;}
.sec-head{max-width:780px;margin-bottom:clamp(40px,6vw,72px);}
.sec-head p,.lede{color:var(--muted);font-size:1.14rem;max-width:56ch;margin:0;}

/* services + pricing */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.spot{position:relative;overflow:hidden;isolation:isolate;}
.spot::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(150,215,255,.16),transparent 65%);transition:opacity .5s;}
.spot:hover::before{opacity:1;}
.plan{border:1px solid var(--line);border-radius:28px;padding:clamp(26px,3.4vw,48px);background:linear-gradient(180deg,rgba(150,215,255,.05),rgba(150,215,255,0) 60%),var(--deep);display:flex;flex-direction:column;transition:border-color .4s,box-shadow .5s;}
.plan:hover{border-color:var(--line-strong);}
.plan--best{border-color:rgba(150,215,255,.5);box-shadow:0 40px 110px -56px rgba(150,215,255,.55);}
.plan--best:hover{border-color:var(--ice);}
.plan-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.plan h3{font-size:1.5rem;margin:0 0 8px;}
.plan-desc{color:var(--muted);margin:0;max-width:34ch;}
.tag{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:650;line-height:1;padding:7px 12px;border-radius:999px;background:var(--ice);color:var(--on-ice);white-space:nowrap;}
.tag--quiet{background:rgba(150,215,255,.1);color:var(--ice);border:1px solid var(--line);}
.price{font-size:clamp(4.6rem,10vw,8.5rem);font-weight:800;font-stretch:125%;letter-spacing:-.05em;line-height:.9;margin:clamp(24px,3vw,40px) 0 12px;color:var(--ice);font-variant-numeric:tabular-nums;transition:font-stretch 1.3s var(--ease) .15s;}
.js .plan:not(.in) .price{font-stretch:62%;}
.price-note{color:var(--muted);font-size:.95rem;margin:0 0 28px;}
.plan ul{list-style:none;margin:0 0 32px;padding:24px 0 0;border-top:1px solid var(--line);display:grid;gap:12px;}
.plan li{display:flex;gap:12px;align-items:flex-start;}
.plan li svg{width:20px;height:20px;color:var(--ice);margin-top:3px;}
.plan .btn{margin-top:auto;align-self:flex-start;}
.help{margin-top:20px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) auto;gap:clamp(20px,4vw,56px);align-items:center;border:1px dashed var(--line-strong);border-radius:28px;padding:clamp(24px,3vw,40px);}
.help h3{margin:0;font-size:1.5rem;}
.help p{margin:0;color:var(--muted);}
.pricing-note{margin:32px 0 0;color:var(--muted);}

/* process */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start;}
.split-head{position:sticky;top:120px;}
.split-head h2,.about-copy h2,.contact-grid h2{font-size:clamp(2rem,3.7vw,3.2rem);}
.timeline{list-style:none;margin:0;padding:0;}
.step{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:clamp(18px,3vw,40px);padding-bottom:clamp(40px,6vw,76px);}
.step:last-child{padding-bottom:0;}
.step::before,.step::after{content:"";position:absolute;left:27px;top:56px;bottom:0;width:2px;}
.step::before{background:var(--line);}
.step::after{background:linear-gradient(180deg,var(--ice),var(--ice-deep));box-shadow:0 0 16px rgba(150,215,255,.7);transform-origin:50% 0;transform:scaleY(var(--f,0));}
.step:last-child::before,.step:last-child::after{display:none;}
.step-num{position:relative;z-index:1;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--abyss);border:1px solid var(--line-strong);font-weight:760;font-stretch:112%;font-size:1rem;color:var(--muted);transition:background-color .5s,color .5s,border-color .5s,box-shadow .5s,transform .6s var(--ease);}
.step h3{font-size:clamp(1.4rem,2.4vw,2rem);font-stretch:125%;font-weight:780;letter-spacing:-.03em;margin:8px 0 10px;transition:color .5s;}
.step p{color:var(--muted);margin:0;max-width:48ch;transition:opacity .5s;}
.js .step:not(.on) h3{color:var(--dim);}
.js .step:not(.on) p{opacity:.55;}
.step.on .step-num{background:var(--ice);color:var(--on-ice);border-color:var(--ice);box-shadow:0 0 0 8px rgba(150,215,255,.12),0 0 44px rgba(150,215,255,.55);transform:scale(1.06);}

/* work: lake video that plays as you scroll */
.work-sec{padding-top:0;}
.scrub{--p:0;--e:min(1,var(--p) * 4);position:relative;height:240vh;}
.scrub-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;place-items:center;isolation:isolate;clip-path:inset(calc((1 - var(--e)) * 9%) calc((1 - var(--e)) * 5%) round calc((1 - var(--e)) * 40px));}
.scrub video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(calc(1.16 - var(--p) * .16));filter:grayscale(1) contrast(1.2) brightness(.8);}
.scrub-tint{position:absolute;inset:0;background:linear-gradient(180deg,#0B3A5E,#2A8FCC);mix-blend-mode:color;}
.scrub-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,8,13,.78) 0%,rgba(5,8,13,.3) 40%,rgba(5,8,13,.35) 60%,rgba(5,8,13,.9) 100%);}
.scrub-text{position:relative;z-index:1;text-align:center;max-width:860px;padding:0 24px;opacity:clamp(0,calc(var(--p) * 5 - .4),1);transform:translateY(calc((1 - clamp(0,calc(var(--p) * 5 - .4),1)) * 44px));}
.scrub-text h2{font-size:clamp(2.3rem,6.2vw,5.25rem);text-shadow:0 6px 40px rgba(0,0,0,.5);}
.scrub-text p{font-size:1.14rem;color:rgba(232,239,246,.86);max-width:48ch;margin:0 auto;}
.scrub-hint{position:absolute;bottom:30px;left:50%;z-index:1;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(232,239,246,.8);font-size:.86rem;opacity:calc(1 - var(--p) * 5);}
.scrub-hint i{width:22px;height:36px;border:2px solid rgba(232,239,246,.8);border-radius:12px;position:relative;}
.scrub-hint i::after{content:"";position:absolute;left:50%;top:6px;width:4px;height:7px;margin-left:-2px;border-radius:2px;background:var(--ice);animation:wheel 1.6s ease-in-out infinite;}
@keyframes wheel{50%{transform:translateY(10px);opacity:.3;}}
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,40px);margin-top:clamp(48px,7vw,96px);}
.work{display:block;text-decoration:none;color:inherit;}
.work-frame{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line-strong);background:#0D141E;transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s var(--ease),box-shadow .5s,border-color .4s;}
.work:hover .work-frame,.work:focus-visible .work-frame{border-color:var(--ice);box-shadow:0 44px 90px -44px rgba(150,215,255,.55);}
.frame-bar{display:flex;gap:7px;padding:11px 14px;}
.frame-bar i{width:9px;height:9px;border-radius:50%;background:#243244;}
.work-shot{overflow:hidden;}
.work-shot img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:top;transition:transform 1.4s var(--ease);}
.work:hover .work-shot img{transform:scale(1.05);}
.work-view{position:absolute;left:50%;bottom:22px;display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;background:var(--ice);color:var(--on-ice);font-weight:650;font-size:.95rem;white-space:nowrap;transform:translate(-50%,180%);transition:transform .55s var(--ease);}
.work:hover .work-view,.work:focus-visible .work-view{transform:translate(-50%,0);}
.work-body{padding:22px 4px 0;}
.work-meta{display:flex;gap:8px;margin-bottom:12px;}
.work h3{margin:0 0 8px;transition:color .3s;}
.work:hover h3{color:var(--ice);}
.work p{color:var(--muted);margin:0;max-width:52ch;}
.next{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;padding:clamp(26px,4vw,56px);border-radius:28px;border:1px dashed var(--line-strong);text-decoration:none;color:inherit;transition:border-color .4s,background-color .4s;}
.next:hover{border-color:var(--ice);background:rgba(150,215,255,.05);}
.next h3{font-size:clamp(1.6rem,3.4vw,2.6rem);font-stretch:125%;font-weight:780;letter-spacing:-.03em;margin:14px 0 8px;}
.next p{color:var(--muted);margin:0;max-width:52ch;}
.live{position:relative;width:8px;height:8px;border-radius:50%;background:var(--ice);}
.live::after,.town--home i::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--ice);animation:ping 2s ease-out infinite;}
@keyframes ping{from{opacity:.7;}to{transform:scale(3.4);opacity:0;}}

/* about */
.about-grid{align-items:center;}
.about-visual{position:relative;aspect-ratio:1;width:100%;max-width:480px;display:grid;place-items:center;}
.about-visual img{position:relative;z-index:1;width:62%;height:auto;border-radius:50%;box-shadow:0 0 0 1px var(--line-strong),0 0 130px -10px rgba(150,215,255,.4);}
.ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 46s linear infinite;}
.ring text{font-size:15px;font-weight:600;font-stretch:112%;fill:var(--ice);}
.ring circle{fill:none;stroke:var(--line);}
@keyframes spin{to{transform:rotate(360deg);}}
.about-copy p{color:var(--silver);font-size:1.1rem;max-width:58ch;}
.points{list-style:none;margin:30px 0 34px;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);}
.points li{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);font-weight:600;}
.points svg{width:22px;height:22px;color:var(--ice);}

/* faq */
.faq details{border-top:1px solid var(--line);}
.faq details:last-child{border-bottom:1px solid var(--line);}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 4px;font-weight:660;font-stretch:112%;font-size:clamp(1.08rem,1.6vw,1.28rem);line-height:1.3;transition:color .3s,padding .45s var(--ease);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--ice);padding-left:12px;}
.plus{flex:none;position:relative;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);color:var(--ice);transition:transform .55s var(--ease),background-color .3s,border-color .3s,color .3s;}
.plus::before,.plus::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;border-radius:2px;background:currentColor;transition:transform .55s var(--ease);}
.plus::after{transform:rotate(90deg);}
.faq details[open]:not(.closing) .plus{background:var(--ice);border-color:var(--ice);color:var(--on-ice);transform:rotate(180deg);}
.faq details[open]:not(.closing) .plus::after{transform:rotate(0deg);}
.faq-a{overflow:hidden;}
.faq-a p{color:var(--muted);margin:0;padding:0 4px 26px;max-width:60ch;}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:start;}
.reach{list-style:none;margin:clamp(28px,4vw,48px) 0 0;padding:0;border-top:1px solid var(--line);}
.reach li{border-bottom:1px solid var(--line);}
.reach-row{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px 12px;text-decoration:none;color:inherit;overflow:hidden;isolation:isolate;transition:color .35s,padding .5s var(--ease);}
a.reach-row::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ice);transform:scaleX(0);transform-origin:0 50%;transition:transform .55s var(--ease);}
a.reach-row:hover::before,a.reach-row:focus-visible::before{transform:scaleX(1);}
a.reach-row:hover,a.reach-row:focus-visible{color:var(--on-ice);padding-left:22px;}
.reach-k{font-size:.9rem;color:var(--muted);transition:color .35s;}
a.reach-row:hover .reach-k,a.reach-row:focus-visible .reach-k{color:var(--on-ice);}
.reach-v{font-weight:650;font-size:clamp(1rem,1.5vw,1.18rem);overflow-wrap:anywhere;}
.reach-row svg{width:22px;height:22px;color:var(--ice);transition:color .35s,transform .55s var(--ease);}
a.reach-row:hover svg,a.reach-row:focus-visible svg{color:var(--on-ice);transform:scale(1.15) rotate(-8deg);}
.form-card{border-radius:28px;border:1px solid var(--line-strong);background:linear-gradient(180deg,rgba(150,215,255,.07),rgba(150,215,255,.01)),var(--deep);padding:clamp(24px,3.4vw,44px);}
.form-card h3{font-size:1.5rem;margin:0 0 8px;}
.form-card > p{color:var(--muted);font-size:.96rem;margin:0 0 26px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;font-weight:560;color:var(--silver);}
.field.full{grid-column:1/-1;}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1rem;font-weight:450;color:var(--text);background:rgba(5,8,13,.6);border:1px solid var(--line);border-radius:12px;padding:14px 16px;transition:border-color .3s,box-shadow .3s,background-color .3s;}
.field select{-webkit-appearance:none;appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2396D7FF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;}
.field textarea{min-height:130px;resize:vertical;}
.field ::placeholder{color:var(--dim);}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--line-strong);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ice);background-color:rgba(150,215,255,.06);box-shadow:0 0 0 4px rgba(150,215,255,.16);}
.form-card .btn{width:100%;margin-top:20px;}
.form-status{margin:14px 0 0;font-size:.92rem;color:var(--ice);min-height:1.5em;}

/* closing call + footer */
.closing{position:relative;overflow:hidden;isolation:isolate;border-top:1px solid var(--line);padding:clamp(72px,10vw,140px) 0 0;}
.closing-map{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.75;-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 78%);mask-image:linear-gradient(180deg,#000 0%,transparent 78%);}
.closing-inner{display:flex;flex-direction:column;align-items:flex-start;gap:28px;}
.closing h2{font-size:clamp(2.2rem,5.4vw,4.6rem);max-width:13ch;margin:0 0 .3em;}
.closing-inner p{color:var(--silver);font-size:1.14rem;margin:0;}
.closing-actions{display:flex;flex-wrap:wrap;gap:12px;}
.wordmark{display:flex;justify-content:center;margin:clamp(56px,8vw,112px) 0 0;white-space:nowrap;font-size:clamp(2.4rem,12vw,13.25rem);font-weight:300;font-stretch:125%;letter-spacing:-.04em;line-height:.95;-webkit-user-select:none;user-select:none;}
.wordmark span{display:inline-block;transition:font-weight .45s var(--ease),color .45s;}
.wordmark.in span{animation:swell 1.9s var(--ease) calc(var(--i) * 70ms) backwards;}
@keyframes swell{0%{font-weight:300;}35%{font-weight:900;color:var(--ice);}100%{font-weight:300;}}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:40px;padding:clamp(40px,6vw,72px) 0 40px;margin-top:clamp(32px,5vw,56px);border-top:1px solid var(--line);}
.footer-grid p{color:var(--muted);font-size:.95rem;max-width:34ch;margin:16px 0 0;}
.footer-grid h4{font-size:.95rem;font-stretch:100%;font-weight:600;letter-spacing:0;color:var(--muted);margin:0 0 16px;}
.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:.98rem;}
.footer-grid li{overflow-wrap:anywhere;}
.socials{display:flex;gap:8px;margin-top:20px;}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:22px 0 28px;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted);}

/* always-there Facebook + email buttons */
.dock{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:55;display:flex;flex-direction:column;gap:10px;opacity:0;visibility:hidden;transform:translateY(40px);transition:transform .6s var(--ease),opacity .4s,visibility 0s .6s;}
.dock.show{opacity:1;visibility:visible;transform:none;transition:transform .6s var(--ease),opacity .4s,visibility 0s;}
.dock a{position:relative;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:rgba(10,16,24,.86);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line-strong);color:var(--ice);text-decoration:none;transition:background-color .3s,color .3s,border-color .3s,transform .4s var(--ease),box-shadow .4s;}
.dock a:hover,.dock a:focus-visible{background:var(--ice);border-color:var(--ice);color:var(--on-ice);transform:translateY(-3px);box-shadow:0 12px 34px -8px rgba(150,215,255,.6);}
.dock .ico{width:20px;height:20px;}
.dock a span{position:absolute;right:calc(100% + 10px);top:50%;padding:7px 12px;border-radius:999px;background:var(--ice);color:var(--on-ice);font-size:.84rem;font-weight:650;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(8px,-50%);transition:opacity .3s,transform .4s var(--ease);}
.dock a:hover span,.dock a:focus-visible span{opacity:1;transform:translate(0,-50%);}

/* scroll reveals (only when JavaScript is running) */
.js [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform 1.1s var(--ease);transition-delay:calc(var(--i,0) * 90ms);}
.js [data-reveal="left"]{transform:translateX(-44px);}
.js [data-reveal="right"]{transform:translateX(44px);}
.js [data-reveal="zoom"]{transform:scale(.92);}
.js [data-reveal="rise"]{transform:translateY(60px) rotateX(8deg);transform-origin:50% 100%;}
.js [data-reveal].in{opacity:1;transform:none;}
.wd{display:inline-block;overflow:hidden;vertical-align:top;padding:.1em .04em .2em;margin:-.1em -.04em -.2em;}
.js [data-split] .wd > span{display:inline-block;transform:translateY(118%);transition:transform 1s var(--ease);transition-delay:calc(var(--i) * 60ms);}
.js [data-split].in .wd > span{transform:none;}
.rule{height:1px;margin-bottom:clamp(40px,6vw,72px);background:linear-gradient(90deg,var(--ice),rgba(150,215,255,.12) 55%,transparent);transform-origin:0 50%;}
.js .rule{transform:scaleX(0);transition:transform 1.6s var(--ease);}
.js .rule.in{transform:scaleX(1);}

/* small screens */
@media (max-width:1399px){
  .dock{display:none;}
}
@media (max-width:1080px){
  .nav-links{display:none;}
  .menu-toggle{display:block;}
}
@media (max-width:900px){
  .hero{justify-content:flex-start;}
  .hero-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"lede" "try" "stage" "cta";row-gap:28px;}
  .stage-wrap{margin-top:14px;}
  .split,.contact-grid{grid-template-columns:minmax(0,1fr);}
  .split-head{position:static;}
  .about-visual{max-width:380px;}
  .help{grid-template-columns:minmax(0,1fr);}
  .help .btn{justify-self:start;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:720px){
  .nav .btn{display:none;}
  .hero h1{font-size:13.2vw;}
  .hero h1 .w{display:block;}
  .plans,.work-grid,.form-grid,.points{grid-template-columns:minmax(0,1fr);}
  .badge{font-size:.76rem;padding:7px 12px 7px 7px;}
  .badge b{font-size:.82rem;}
  .badge-1{right:4%;}
  .badge-2{display:none;}
  .reach-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;}
  .reach-k{grid-column:1/-1;}
  .closing-actions,.closing-actions .btn,.hero-cta .btn{width:100%;}
  .footer-grid{grid-template-columns:1fr;gap:32px;}
}
@media (max-width:480px){
  .nav-inner{gap:10px;padding:6px 6px 6px 8px;}
  .nav-right{gap:6px;}
  .brand{gap:9px;font-size:1rem;}
  .brand img{width:36px;height:36px;}
  .icon-btn{width:38px;height:38px;}
  .menu-toggle{width:40px;height:40px;}
  .menu-toggle::before,.menu-toggle::after{left:12px;right:12px;}
}
@media (max-width:350px){
  .nav .brand span{display:none;}
}

/* visitors who prefer less motion get a still page */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none !important;transition-duration:.01ms !important;transition-delay:0s !important;}
  .scrub{height:auto;}
  .scrub-sticky{position:relative;height:80vh;clip-path:none;}
  .scrub video{transform:none;}
  .scrub-text{opacity:1;transform:none;}
  .scrub-hint{display:none;}
  .js .step:not(.on) h3{color:inherit;}
  .js .step:not(.on) p{opacity:1;}
}

/* ---------- full-site additions ---------- */

/* moving between pages: supporting browsers slide the old page out and the new one in */
@view-transition{navigation:auto;}
::view-transition-old(root){animation:page-out .28s cubic-bezier(.65,0,.35,1) both;}
::view-transition-new(root){animation:page-in .6s cubic-bezier(.2,.7,.1,1) both;}
@keyframes page-out{to{opacity:0;transform:translateY(-14px);}}
@keyframes page-in{from{opacity:0;transform:translateY(24px);}}
.nav{view-transition-name:site-nav;}

/* inner-page hero */
.hero--page{min-height:0;display:block;padding:clamp(148px,21vh,210px) 0 clamp(52px,6.5vw,88px);border-bottom:1px solid var(--line);}
.hero--page h1{font-size:clamp(2.4rem,6vw,5.4rem);line-height:1;max-width:17ch;margin:0 0 clamp(20px,2.4vw,30px);text-wrap:balance;}
.hero--page .hero-lede{font-size:1.2rem;max-width:56ch;}
.hero--page .hero-cta{margin-top:30px;}
.hero--page .hero-map{-webkit-mask-image:linear-gradient(100deg,transparent 10%,#000 80%);mask-image:linear-gradient(100deg,transparent 10%,#000 80%);}
.hero-split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:center;}
.hero-split .about-visual{justify-self:end;}

/* section heading with a button beside it */
.sec-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 40px;flex-wrap:wrap;margin-bottom:clamp(36px,5vw,64px);}
.sec-top .sec-head{margin-bottom:0;}
.after-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(36px,5vw,56px);}

/* home: package rows */
.packs{border-top:1px solid var(--line);}
.pack{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto;align-items:center;gap:clamp(16px,4vw,56px);padding:clamp(24px,3.4vw,44px) clamp(8px,1.6vw,24px);border-bottom:1px solid var(--line);text-decoration:none;color:inherit;overflow:hidden;isolation:isolate;transition:color .4s,padding .55s var(--ease);}
.pack::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ice);transform:scaleY(0);transform-origin:50% 100%;transition:transform .55s var(--ease);}
.pack:hover::before,.pack:focus-visible::before{transform:scaleY(1);}
.pack:hover,.pack:focus-visible{color:var(--on-ice);padding-left:clamp(16px,2.6vw,40px);}
.pack h3{font-size:clamp(1.5rem,2.8vw,2.3rem);font-stretch:125%;font-weight:780;letter-spacing:-.03em;margin:0;}
.pack p{margin:0;color:var(--muted);transition:color .4s;}
.pack-price{font-size:clamp(2.6rem,5.4vw,4.6rem);font-weight:800;font-stretch:125%;letter-spacing:-.05em;line-height:1;color:var(--ice);text-align:right;transition:color .4s;}
.pack-price small{display:block;font-size:.85rem;font-weight:500;font-stretch:100%;letter-spacing:0;line-height:1.4;color:var(--muted);margin-top:8px;transition:color .4s;}
.pack:hover p,.pack:hover .pack-price,.pack:hover .pack-price small,.pack:focus-visible p,.pack:focus-visible .pack-price,.pack:focus-visible .pack-price small{color:var(--on-ice);}

/* live sample previews */
.samples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,32px);margin-top:clamp(48px,7vw,96px);}
.sample{position:relative;}
.frame{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line-strong);background:#0D141E;transform:perspective(1400px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s var(--ease),box-shadow .5s,border-color .4s;}
.sample:hover .frame,.sample:focus-within .frame{border-color:var(--ice);box-shadow:0 44px 90px -44px rgba(150,215,255,.55);}
.frame-bar{align-items:center;}
.frame-view{position:relative;aspect-ratio:16/10;overflow:hidden;background:#0D141E;}
.frame-view iframe{position:absolute;left:0;top:0;width:1280px;height:800px;border:0;background:#fff;transform-origin:0 0;transform:scale(var(--s,.3));pointer-events:none;}
.sample:hover .work-view,.sample:focus-within .work-view{transform:translate(-50%,0);}
.sample-body{padding:22px 4px 0;}
.sample-body h3{font-size:1.45rem;margin:0 0 8px;}
.sample-link{text-decoration:none;transition:color .3s;}
.sample-link::after{content:"";position:absolute;inset:0;z-index:2;}
.sample:hover .sample-link{color:var(--ice);}
.sample-body p{color:var(--muted);margin:0;}
.feats{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:11px;}
.feats li{display:flex;gap:11px;align-items:flex-start;color:var(--silver);}
.feats svg{width:20px;height:20px;color:var(--ice);margin-top:3px;flex:none;}
.feats--lg li{font-size:1.08rem;padding:16px 0;border-bottom:1px solid var(--line);}
.feats--lg{gap:0;border-top:1px solid var(--line);}
.cases{display:grid;gap:clamp(64px,9vw,128px);}
.case{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:center;}
.case:nth-child(even) .frame{order:2;}
.case .sample-body{padding:0;}
.case .sample-body h3{font-size:clamp(1.8rem,3.2vw,2.7rem);font-stretch:125%;font-weight:780;letter-spacing:-.03em;margin-bottom:12px;}
.case .sample-body p{font-size:1.08rem;}
.case-actions{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;}

/* home: four steps across */
.steps-row{--p:0;--g:clamp(16px,2.4vw,32px);position:relative;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:var(--g);list-style:none;margin:0;padding:0;}
.steps-row::before,.steps-row::after{content:"";position:absolute;left:28px;right:calc((100% - (var(--n,4) - 1) * var(--g)) / var(--n,4) - 28px);top:27px;height:2px;}
.steps-row::before{background:var(--line);}
.steps-row::after{background:linear-gradient(90deg,var(--ice),var(--ice-deep));box-shadow:0 0 16px rgba(150,215,255,.7);transform-origin:0 50%;transform:scaleX(var(--p));}
.hstep .step-num{margin-bottom:22px;}
.hstep h3{font-size:1.3rem;margin:0 0 8px;transition:color .5s;}
.hstep p{color:var(--muted);margin:0;font-size:.98rem;transition:opacity .5s;}
.js .hstep:not(.on) h3{color:var(--dim);}
.js .hstep:not(.on) p{opacity:.55;}
.hstep.on .step-num{background:var(--ice);color:var(--on-ice);border-color:var(--ice);box-shadow:0 0 0 8px rgba(150,215,255,.12),0 0 44px rgba(150,215,255,.55);transform:scale(1.06);}

/* services: what every site includes + side-by-side table */
.includes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);}
.includes--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.include{padding:clamp(22px,2.8vw,40px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.include svg{width:28px;height:28px;color:var(--ice);margin-bottom:20px;transition:transform .55s var(--ease);}
.include:hover svg{transform:translateY(-5px) scale(1.12);}
.include h3{font-size:1.22rem;margin:0 0 8px;}
.include p{color:var(--muted);margin:0;font-size:.99rem;}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:24px;}
.compare{width:100%;min-width:580px;border-collapse:collapse;}
.compare th,.compare td{padding:18px clamp(14px,2vw,28px);text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;}
.compare tr:last-child th,.compare tr:last-child td{border-bottom:0;}
.compare thead th{font-stretch:112%;font-weight:720;font-size:1.15rem;padding-top:24px;padding-bottom:24px;}
.compare thead th span{display:block;font-stretch:100%;font-weight:500;font-size:.92rem;color:var(--ice);margin-top:4px;}
.compare tbody th{font-weight:500;color:var(--silver);}
.compare td svg{width:22px;height:22px;color:var(--ice);vertical-align:middle;}
.compare .no{color:var(--dim);}
.compare .best{background:rgba(150,215,255,.06);}
.compare tbody tr{transition:background-color .3s;}
.compare tbody tr:hover{background:rgba(150,215,255,.04);}

/* process: what each step asks of you and gives back, plus timing */
.step-io{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px;max-width:60ch;transition:opacity .5s;}
.step-io div{border-top:1px solid var(--line);padding-top:14px;}
.step-io b{display:block;font-size:.9rem;font-weight:600;color:var(--ice);margin-bottom:6px;}
.step-io span{color:var(--silver);font-size:.98rem;}
.js .step:not(.on) .step-io{opacity:.45;}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.fact{border:1px solid var(--line);border-radius:28px;padding:clamp(26px,3.4vw,44px);background:linear-gradient(180deg,rgba(150,215,255,.05),rgba(150,215,255,0) 60%),var(--deep);}
.fact b{display:block;font-size:clamp(2.1rem,4.2vw,3.5rem);font-stretch:125%;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--ice);margin:14px 0 14px;}
.fact p{color:var(--muted);margin:0;}

/* about: home base and nearby towns */
.area{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:center;}
.area-map{position:relative;aspect-ratio:11/10;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:var(--deep);}
.area-map canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.8;}
.town{position:absolute;left:var(--x);top:var(--y);}
.town i{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--silver);box-shadow:0 0 0 4px rgba(199,206,214,.14);}
.town span{position:absolute;left:14px;top:-.8em;font-size:.92rem;font-weight:600;white-space:nowrap;text-shadow:0 0 12px var(--deep),0 0 4px var(--deep);}
.town--left span{left:auto;right:14px;}
.town--home i{left:-7px;top:-7px;width:14px;height:14px;background:var(--ice);box-shadow:none;}
.town--home span{font-size:1.05rem;font-stretch:112%;font-weight:720;color:var(--ice);}

/* faq page: questions in groups */
.faq-group{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(20px,5vw,80px);padding:clamp(40px,5.5vw,72px) 0;border-top:1px solid var(--line);}
.faq-group:first-child{border-top:0;padding-top:0;}
.faq-group h2{font-size:clamp(1.5rem,2.6vw,2.1rem);margin:0;position:sticky;top:120px;align-self:start;}

/* 404 */
.lost{min-height:100svh;display:grid;place-items:center;text-align:center;}
.lost b{display:block;font-size:clamp(6rem,24vw,18rem);font-stretch:125%;font-weight:800;letter-spacing:-.06em;line-height:.85;color:transparent;-webkit-text-stroke:1.5px var(--ice);}
.lost h1{font-size:clamp(1.8rem,4vw,3rem);margin:24px auto 12px;max-width:none;}
.lost .hero-cta{justify-content:center;}

@media (max-width:900px){
  .hero-split,.case,.area,.faq-group{grid-template-columns:minmax(0,1fr);}
  .hero-split .about-visual{justify-self:start;max-width:320px;order:-1;}
  .case:nth-child(even) .frame{order:0;}
  .samples{grid-template-columns:minmax(0,1fr);max-width:560px;}
  .includes{grid-template-columns:repeat(2,minmax(0,1fr));}
  .faq-group h2{position:static;}
  .steps-row{grid-template-columns:minmax(0,1fr);gap:28px;}
  .steps-row::before,.steps-row::after{display:none;}
  .hstep{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:18px;}
  .hstep .step-num{grid-row:1 / span 2;margin:0;}
  .hstep h3{align-self:end;}
}
@media (max-width:720px){
  .hero--page{padding-top:132px;}
  .pack{grid-template-columns:minmax(0,1fr) auto;}
  .pack p{grid-column:1 / -1;grid-row:2;}
  .includes,.includes--2,.facts,.step-io{grid-template-columns:minmax(0,1fr);}
  .case-actions .btn,.after-row .btn{width:100%;}
  .compare{min-width:0;font-size:.92rem;table-layout:fixed;}
  .compare th,.compare td{padding:14px 10px;}
  .compare thead th{font-size:1rem;}
  .compare thead th span{font-size:.82rem;}
}
@media (prefers-reduced-motion: reduce){
  @view-transition{navigation:none;}
  .js .hstep:not(.on) h3{color:inherit;}
  .js .hstep:not(.on) p,.js .step:not(.on) .step-io{opacity:1;}
}
