:root{--bg:#05060d;--bg2:#0a0c18;--tx:#eceef6;--mut:#8a90a8;--card:rgba(255,255,255,.035);--line:rgba(255,255,255,.1);--p:#7b8cff;--hot:#ff5a1f;--grad:var(--p);--c:var(--p);--tint:#0a0c18;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px;background:var(--bg)}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--tx);font:400 17px/1.6 Geist,system-ui,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
h1,h2,h3,.logo,.price{font-family:Geist,system-ui,sans-serif}
h1{font-size:clamp(2.3rem,6vw,5.6rem);font-weight:600;line-height:.98;letter-spacing:-.05em;max-width:13ch}
h2{font-size:clamp(1.9rem,4.4vw,3.8rem);font-weight:600;line-height:1.02;letter-spacing:-.045em;max-width:17ch;margin-bottom:28px}
h3{font-weight:600;font-size:1.3rem;line-height:1.2;letter-spacing:-.02em}
a{color:inherit;text-decoration:none}
.container{width:min(1200px,100% - 40px);margin:auto}.narrow{width:min(800px,100% - 40px)}
code{background:var(--card);border:1px solid var(--line);padding:1px 6px;border-radius:5px;font:.82em 'Geist Mono',monospace}
:focus-visible{outline:2px solid var(--hot);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;z-index:500;background:var(--hot);color:#fff;padding:8px 14px;border-radius:6px}.skip:focus{left:8px}
[hidden]{display:none!important}
.progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--hot);z-index:300}
.grain{position:absolute;top:0;left:0;right:0;height:min(100svh,1000px);z-index:5;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* split-word masks */
.wd{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}.wd>i{display:inline-block;font-style:normal;will-change:transform}
/* loader */
.loader{position:fixed;inset:0;background:#05060d;z-index:400;display:flex;align-items:flex-end;padding:5vw}
.loader-in{width:100%;display:flex;align-items:flex-end;gap:24px}
.loader-num{font:300 clamp(4rem,18vw,13rem)/.8 Geist;letter-spacing:-.06em}
.loader-bar{flex:1;height:2px;background:var(--line);margin-bottom:1.2vw}.loader-bar i{display:block;height:100%;width:0;background:var(--hot)}
.loader.done{visibility:hidden}
/* cursor + project peek */
.cursor{position:fixed;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px rgba(5,6,13,.55);pointer-events:none;z-index:350;will-change:transform;opacity:0;transition:width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease),opacity .3s,background .3s}
.cursor.on{opacity:1}.cursor.big{width:84px;height:84px;margin:-42px 0 0 -42px;background:var(--hot);box-shadow:none}
.cursor span{position:absolute;inset:0;display:grid;place-items:center;font:600 .8rem Geist;color:#fff;opacity:0;transition:opacity .2s}.cursor.big span{opacity:1}
.peek{position:fixed;left:0;top:0;width:340px;height:230px;border-radius:18px;z-index:120;pointer-events:none;opacity:0;scale:.8;transition:opacity .3s,scale .4s var(--ease);display:grid;place-items:center;overflow:hidden;background:var(--g,#6f86ff)}
.peek.on{opacity:1;scale:1}
.peek::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 15%,rgba(255,255,255,.4),transparent 55%)}
.peek b{font:600 8rem/1 Geist;letter-spacing:-.06em;color:rgba(5,6,13,.85);z-index:1}.peek span{position:absolute;left:16px;bottom:14px;z-index:1;background:#05060d;color:#fff;font:500 .8rem Geist;padding:6px 12px;border-radius:99px}
@media(hover:none){.cursor,.peek{display:none}}
/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:18px max(20px,calc((100% - 1200px)/2));transition:background .3s,padding .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(5,6,13,.94);border-color:var(--line);padding-top:12px;padding-bottom:12px}
.logo{font-weight:600;font-size:1.2rem;letter-spacing:-.03em;display:flex;align-items:center;gap:10px}.logo svg{width:28px;height:28px}
.nav nav{display:flex;align-items:center;gap:26px}
.nav nav a:not(.btn){font-weight:500;font-size:.95rem;color:var(--mut);transition:color .2s}.nav nav a:not(.btn):hover{color:#fff}
.status-pill{display:flex;align-items:center;gap:8px;font:500 .78rem 'Geist Mono',monospace;color:var(--mut);border:1px solid var(--line);padding:6px 12px;border-radius:99px}
.status-pill i{width:7px;height:7px;border-radius:50%;background:#3ee08f;box-shadow:0 0 0 0 #3ee08f;animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 9px transparent}}
.burger{display:none;background:none;border:0;width:36px;height:36px;cursor:pointer;position:relative;color:#fff}
.burger span{position:absolute;left:6px;right:6px;height:2px;background:currentColor;transition:.3s}
.burger span:first-child{top:13px}.burger span:last-child{top:21px}
.burger.open span:first-child{top:17px;transform:rotate(45deg)}.burger.open span:last-child{top:17px;transform:rotate(-45deg)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1.5px solid #fff;cursor:pointer;font:600 .98rem Geist;color:#05060d;background:#fff;padding:14px 26px;border-radius:99px;transition:transform .3s var(--ease),background .25s,color .25s,border-color .25s}
.btn:hover{background:var(--hot);border-color:var(--hot);color:#fff}
.btn-hot{background:var(--hot);border-color:var(--hot);color:#fff}.btn-hot:hover{background:#fff;border-color:#fff;color:#05060d}
.btn-line,.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}.btn-line:hover,.btn-ghost:hover{background:#fff;border-color:#fff;color:#05060d}
.btn-sm{padding:9px 20px;font-size:.9rem}
.btn:disabled{opacity:.6;cursor:wait}
/* hero */
.hero{position:relative;min-height:min(100svh,1000px);display:flex;flex-direction:column;justify-content:flex-end;padding:120px 0 56px;overflow:hidden;background:radial-gradient(120% 90% at 70% 40%,#0d1030,#05060d 70%)}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.6s}
#scene.on{opacity:1}
.hero-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(5,6,13,.82) 0%,rgba(5,6,13,.35) 45%,transparent 70%),linear-gradient(0deg,#05060d 0%,transparent 28%)}
.hero-in{position:relative;z-index:2}
.hero-foot{display:flex;gap:40px;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;margin-top:34px}
.lead{max-width:44ch;font-size:1.12rem;color:#b9bed2}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.hint{position:absolute;right:max(20px,calc((100% - 1200px)/2));top:50%;transform:rotate(90deg);transform-origin:right top;font:500 .72rem 'Geist Mono',monospace;color:var(--mut);z-index:2;white-space:nowrap}
/* outline marquee */
.outline-marquee{overflow:hidden;padding:44px 0;border-block:1px solid var(--line)}
.om-row{display:flex;gap:60px;width:max-content;will-change:transform}
.om-row span{font:600 clamp(3rem,9vw,8rem)/1 Geist;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.35);white-space:nowrap;transition:color .4s}
.om-row span:nth-child(even){-webkit-text-stroke-color:rgba(255,90,31,.8)}
.section{padding:130px 0;position:relative}
.sub{color:var(--mut);max-width:54ch;margin-bottom:10px}
.sp{margin-top:110px}
.grid{display:grid;gap:20px;margin-top:44px}
/* service stack */
.stack{margin-top:40px;position:relative}
.panel{position:sticky;top:calc(11vh + var(--i) * 22px);display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center;min-height:min(60vh,460px);margin-bottom:34px;padding:clamp(24px,4vw,56px);border-radius:28px;border:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--g) 14%,#0a0c18),#080a14 60%);overflow:hidden;transform-origin:50% 0}
.panel::before{content:"";position:absolute;width:70%;aspect-ratio:1;right:-15%;top:-35%;border-radius:50%;background:radial-gradient(closest-side,var(--g),transparent);opacity:.2;pointer-events:none}
.kicker{display:inline-block;font:500 .8rem 'Geist Mono',monospace;color:var(--g);border:1px solid color-mix(in srgb,var(--g) 50%,transparent);padding:4px 12px;border-radius:99px;margin-bottom:20px}
.panel h3{font-size:clamp(1.7rem,3.4vw,2.9rem);font-weight:600;letter-spacing:-.045em;line-height:1.04;max-width:14ch;margin-bottom:16px}
.panel p{color:#aab0c6;max-width:42ch}
.tags{list-style:none;display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.tags li{font-size:.82rem;color:#cdd1e2;border:1px solid var(--line);padding:5px 12px;border-radius:99px}
.vis{position:relative;height:300px;display:grid;place-items:center}
/* visuals */
.win{width:min(100%,380px);border:1px solid var(--line);border-radius:14px;background:#0b0e1d;padding:12px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);display:grid;gap:10px}
.win-bar{display:flex;gap:6px}.win-bar i{width:8px;height:8px;border-radius:50%;background:#2a2f4a}
.sk{border-radius:8px;background:linear-gradient(100deg,#171b33 30%,#262c52 50%,#171b33 70%);background-size:300% 100%;animation:shimmer 2.4s linear infinite}
.sk-hero{height:88px}.sk-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sk-row .sk{height:56px}.sk-line{height:10px}.sk-line.s{width:60%}
@keyframes shimmer{to{background-position:-300% 0}}
.phone{width:170px;height:290px;border:2px solid #2a2f4a;border-radius:30px;background:#0b0e1d;padding:34px 12px 12px;display:grid;gap:10px;align-content:start;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);overflow:hidden;position:relative}
.notch{position:absolute;top:8px;left:50%;width:50px;height:12px;margin-left:-25px;border-radius:9px;background:#05060d}
.li{height:46px;border-radius:12px;background:linear-gradient(90deg,#1c2142,#141831);animation:slide 3.6s var(--ease) infinite}.li:nth-child(3){animation-delay:.2s}.li:nth-child(4){animation-delay:.4s}.li:nth-child(5){animation-delay:.6s;background:linear-gradient(90deg,#ff5a1f,#ff8a4f)}
@keyframes slide{0%{transform:translateX(120%);opacity:0}20%,80%{transform:none;opacity:1}100%{transform:translateX(-120%);opacity:0}}
.v-shop{grid-template-columns:repeat(2,110px);gap:14px;place-content:center}
.tile{height:92px;border-radius:14px;background:#12162d;border:1px solid var(--line);display:grid;place-items:center;animation:bob 4s ease-in-out infinite}.tile:nth-child(2){animation-delay:.5s}.tile:nth-child(3){animation-delay:1s}.tile:nth-child(4){animation-delay:1.5s}
.tile b{font:600 1.6rem Geist;color:var(--g)}
@keyframes bob{50%{transform:translateY(-8px)}}
.cart{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:#3ee0b5;color:#04130e;font:600 .8rem Geist;padding:8px 14px;border-radius:99px;animation:pop2 4s var(--ease) infinite;white-space:nowrap}
@keyframes pop2{0%,55%{opacity:0;transform:translate(-50%,16px)}65%,90%{opacity:1;transform:translate(-50%,0)}100%{opacity:0}}
.bars{display:flex;align-items:flex-end;gap:12px;height:230px;width:min(100%,340px)}
.bars i{flex:1;height:var(--h);border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#ffd24a,#6b5200);transform-origin:bottom;animation:grow 3.4s var(--ease) infinite}.bars i:nth-child(2){animation-delay:.1s}.bars i:nth-child(3){animation-delay:.2s}.bars i:nth-child(4){animation-delay:.3s}.bars i:nth-child(5){animation-delay:.4s}.bars i:nth-child(6){animation-delay:.5s}
@keyframes grow{0%{transform:scaleY(.05)}35%,85%{transform:scaleY(1)}100%{transform:scaleY(.05)}}
.rank{position:absolute;right:6%;top:6%;font:700 2.4rem Geist;color:#05060d;background:#ffd24a;padding:2px 16px;border-radius:14px;animation:pop3 3.4s var(--ease) infinite}
@keyframes pop3{0%,30%{scale:0}45%,85%{scale:1}100%{scale:0}}
.aa{font:600 9rem/1 Geist;letter-spacing:-.06em;background:linear-gradient(135deg,#d46bff,#6f86ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.sw{display:flex;gap:10px}.sw i{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);animation:bob 3.4s ease-in-out infinite}.sw i:nth-child(2){animation-delay:.3s}.sw i:nth-child(3){animation-delay:.6s}.sw i:nth-child(4){animation-delay:.9s}
.v-brand{align-content:center;gap:10px}
.v-care{align-content:center;gap:10px}
.chk{display:flex;align-items:center;gap:12px;width:min(100%,280px);padding:12px 16px;border-radius:12px;background:#0b0e1d;border:1px solid var(--line);font-weight:500}
.chk i{width:9px;height:9px;border-radius:50%;background:#3ee08f;animation:ping 2.4s infinite}.chk:nth-child(2) i{animation-delay:.4s}.chk:nth-child(3) i{animation-delay:.8s}.chk:nth-child(4) i{animation-delay:1.2s}
/* work list */
.projects{margin-top:36px;border-top:1px solid var(--line)}
.proj{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;align-items:center;padding:34px 4px;border-bottom:1px solid var(--line);transition:padding .5s var(--ease),opacity .3s}
.projects:hover .proj:not(:hover){opacity:.3}
.proj:hover{padding-left:24px}
.proj-t{font:600 clamp(2.2rem,6vw,5rem)/1 Geist;letter-spacing:-.05em;transition:color .3s}.proj:hover .proj-t{color:var(--g)}
.proj-m{color:var(--mut);justify-self:end;text-align:right;max-width:34ch}.proj-m b{display:block;color:var(--tx);font-weight:500;margin-bottom:4px}
.proj.add .proj-t{color:var(--mut);-webkit-text-stroke:0}
.proj-art{display:none}
.clients{display:flex;flex-wrap:wrap;gap:12px 38px;margin-top:56px;opacity:.45}.clients span{font:600 1.1rem Geist}
/* timeline */
.tl{position:relative;margin-top:50px;padding-left:64px;display:grid;gap:0}
.tl-line{position:absolute;left:19px;top:0;bottom:0;width:2px;background:var(--line)}.tl-line b{display:block;width:100%;height:0;background:linear-gradient(var(--p),var(--hot))}
.tl-step{position:relative;padding:0 0 64px;display:grid;grid-template-columns:auto 1fr;gap:0;opacity:.35;transition:opacity .5s}
.tl-step.on{opacity:1}
.tl-step>span{position:absolute;left:-64px;top:0;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:2px solid var(--line);font:600 1rem Geist;transition:.4s}
.tl-step.on>span{background:var(--hot);border-color:var(--hot);color:#fff;box-shadow:0 0 0 8px rgba(255,90,31,.15)}
.tl-step h3{font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.04em;margin-bottom:8px}.tl-step p{color:var(--mut);max-width:46ch}
/* plans */
.plans{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch}
.plans.four{grid-template-columns:repeat(auto-fit,minmax(235px,1fr))}
.plan{position:relative;padding:30px;border:1px solid var(--line);border-radius:22px;background:var(--card);display:flex;flex-direction:column;overflow:hidden;transition:border-color .3s,transform .5s var(--ease)}
.plan::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(123,140,255,.16),transparent 55%)}
.plan:hover{border-color:rgba(255,255,255,.28)}.plan:hover::before{opacity:1}
.price{font-size:2.9rem;font-weight:600;letter-spacing:-.05em;margin:14px 0 20px;line-height:1}.price small{display:block;font:500 .82rem Geist;letter-spacing:0;color:var(--mut);margin-top:6px}
.plan ul{list-style:none;margin-bottom:26px;flex:1}.plan li{padding:9px 0;border-bottom:1px solid var(--line);color:#c4c8da;font-size:.95rem}
@property --ang{syntax:'<angle>';initial-value:0deg;inherits:false}
.plan.featured{overflow:visible;background:linear-gradient(160deg,rgba(255,90,31,.12),rgba(123,140,255,.06))}
.plan.featured::after{content:"";position:absolute;inset:-1.5px;border-radius:23px;padding:1.5px;background:conic-gradient(from var(--ang),#fff,var(--hot),#7b8cff,#fff);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin 5s linear infinite;pointer-events:none}
@keyframes spin{to{--ang:360deg}}
/* testimonials */
.carousel{overflow:hidden;margin-top:30px}.track{display:flex;transition:transform .8s var(--ease)}.track figure{min-width:100%;padding-right:20px}
.track blockquote{font:500 clamp(1.4rem,3vw,2.3rem)/1.25 Geist;letter-spacing:-.03em;margin-bottom:22px}
.track figcaption{color:var(--mut)}.track figcaption b{color:var(--tx);margin-right:8px}
.dots{display:flex;gap:8px;margin-top:22px}.dots button{width:9px;height:9px;border-radius:99px;border:0;background:var(--line);cursor:pointer;transition:.3s}.dots button.on{width:30px;background:var(--hot)}
/* faq */
details{border-top:1px solid var(--line);padding:24px 0}details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font:500 1.2rem Geist;letter-spacing:-.02em;list-style:none;display:flex;justify-content:space-between;gap:20px}
summary::after{content:"+";color:var(--hot);font-size:1.7rem;line-height:1;transition:transform .4s var(--ease)}details[open] summary::after{transform:rotate(45deg)}
details p{color:var(--mut);margin-top:12px;max-width:60ch}
/* contact */
.contact-sec{padding-bottom:70px}
h2.mega{font-size:clamp(2.4rem,8vw,7.4rem);max-width:none;margin-bottom:10px;letter-spacing:-.055em}
.mail{display:inline-block;font:500 clamp(1.3rem,4.4vw,3.6rem) Geist;letter-spacing:-.04em;color:var(--hot);border-bottom:2px solid currentColor;padding-bottom:4px;margin-bottom:70px;transition:color .3s}.mail:hover{color:#fff}
.contact{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;align-items:start}
.contact-list{list-style:none}.contact-list li{padding:10px 0;color:var(--mut);border-bottom:1px solid var(--line)}.contact-list a{color:var(--tx);font-weight:500}.contact-list a:hover{color:var(--hot)}
.form,.modal-box{padding:32px;border-radius:22px;background:rgba(255,255,255,.04);border:1px solid var(--line);display:grid;gap:16px;color:var(--tx)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:grid;gap:6px;font-size:.86rem;color:var(--mut);font-weight:500}
input,select,textarea{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--tx);font:inherit;transition:.2s}
select option{background:#0a0c18;color:#eceef6}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--hot);box-shadow:0 0 0 4px rgba(255,90,31,.18)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.status{min-height:1.4em;font-size:.92rem}.status.ok{color:#3ee08f}.status.err{color:#ff7a66}
.footer{position:relative;overflow:hidden;border-top:1px solid var(--line);padding:30px 0 0}
.footer .container{display:flex;gap:24px;align-items:center;flex-wrap:wrap;color:var(--mut);font-size:.9rem}.footer .container p{margin-right:auto}
.muted{opacity:.6}.muted:hover{opacity:1}
.wordmark{font:600 clamp(5rem,23vw,22rem)/.78 Geist;letter-spacing:-.08em;text-align:center;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.14);margin-top:30px;white-space:nowrap;transform:translateY(12%)}
/* modals + quote wizard */
.modal{position:fixed;inset:0;background:rgba(2,3,8,.88);display:grid;place-items:center;z-index:250;opacity:0;visibility:hidden;transition:.3s;padding:20px}
.modal.open{opacity:1;visibility:visible}
.modal-box{background:#0a0c18;width:min(480px,100%);position:relative;transform:translateY(30px);transition:.5s var(--ease);max-height:92vh;overflow:auto}
.modal.open .modal-box{transform:none}.modal-box.wide{width:min(640px,100%);display:block}
.close{position:absolute;top:12px;right:18px;background:none;border:0;color:inherit;font-size:2rem;cursor:pointer;line-height:1}
.qbar{height:3px;background:var(--line);border-radius:9px;overflow:hidden;margin:6px 36px 22px 0}.qbar i{display:block;height:100%;width:25%;background:var(--hot);transition:width .5s var(--ease)}
#qBody h3{font:600 1.5rem Geist;letter-spacing:-.03em;margin-bottom:16px}#qBody h3.mt{margin-top:24px}
.opts{display:flex;flex-wrap:wrap;gap:10px}
.opt{background:transparent;border:1px solid var(--line);color:var(--tx);padding:11px 18px;border-radius:99px;cursor:pointer;font:500 .95rem Geist;transition:.2s}
.opt:hover{border-color:#fff}.opt.on{background:#fff;border-color:#fff;color:#05060d}
.est{font:600 clamp(2.2rem,7vw,3.4rem) Geist;letter-spacing:-.05em;color:var(--hot);margin:6px 0 10px;line-height:1.05}
#qBody label{margin-top:12px}#qBody textarea{min-height:120px}
.qnav{display:flex;justify-content:space-between;margin-top:14px}
.done{text-align:center;padding:20px 0}.tick{width:72px;height:72px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;font-size:2rem;background:var(--hot);color:#fff;animation:pop .6s var(--ease)}
@keyframes pop{from{transform:scale(0)}}
.fab{position:fixed;right:20px;bottom:20px;z-index:90;background:var(--hot);color:#fff;font-weight:600;padding:14px 24px;border-radius:99px;box-shadow:0 10px 30px -8px rgba(255,90,31,.7);transform:translateY(100px);transition:transform .5s var(--ease)}.fab.show{transform:none}
/* shared bits for blog, admin, forms */
.card{padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--card);display:block}
.cards{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.card h3{margin-bottom:8px}.card p{color:var(--mut)}
.table{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--card)}
/* responsive */
@media(max-width:900px){
  .burger{display:block;z-index:2}
  .nav nav{position:fixed;top:0;right:0;height:100vh;width:min(330px,84%);flex-direction:column;justify-content:center;align-items:flex-start;padding:0 36px;gap:22px;background:#07080f;transform:translateX(100%);transition:transform .5s var(--ease);border-left:1px solid var(--line)}
  .nav nav.open{transform:none}.nav nav a:not(.btn){font:600 1.7rem Geist;color:#fff;letter-spacing:-.03em}
  .panel{grid-template-columns:1fr;position:relative;top:auto;min-height:0}.vis{height:240px}
  .contact{grid-template-columns:1fr;gap:40px}
  .section{padding:84px 0}.hint{display:none}
  .proj{grid-template-columns:1fr;gap:8px}.proj-m{justify-self:start;text-align:left}
  .proj-art{display:block;height:90px;border-radius:14px;background:var(--g);margin-top:8px}
  .hero{padding-bottom:40px}
}
@media(max-width:520px){.row{grid-template-columns:1fr}.form,.modal-box{padding:22px}.status-pill{display:none}}
/* reduced mode keeps the intro, reveals and hovers, but stops endless looping motion */
html[data-motion=reduced] .vis *,html[data-motion=reduced] .status-pill i,html[data-motion=reduced] .plan.featured::after,html[data-motion=reduced] .chk i,html[data-motion=reduced] .sw i{animation:none!important}
html[data-motion=reduced]{scroll-behavior:auto}
.linklike{background:none;border:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:0}
.toast{position:fixed;left:20px;bottom:20px;z-index:320;max-width:min(400px,calc(100% - 40px));background:#10122a;border:1px solid var(--line);border-radius:18px;padding:18px 20px;display:grid;gap:12px;box-shadow:0 20px 50px -12px rgba(0,0,0,.7);font-size:.95rem}
.toast p{color:#c4c9dc;margin:0}.toast .row2{display:flex;gap:8px;flex-wrap:wrap}

/* ---- responsive sweep ---- */
.proj-art{place-items:center;font:600 3.6rem/1 Geist;letter-spacing:-.05em;color:rgba(5,6,13,.85)}
@media(max-width:1180px){.status-pill{display:none}.plans.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){
  .vis{height:auto;min-height:260px;padding:8px 0}
  .phone{height:270px}
  .proj-art{display:grid}
  .panel h3{max-width:none}
  .tl{padding-left:56px}.tl-step>span{left:-56px}
  .projects:hover .proj:not(:hover){opacity:1}
}
@media(max-width:640px){.plans.four{grid-template-columns:1fr}}
@media(max-width:520px){
  h1{font-size:clamp(2.7rem,12vw,3.4rem)}
  h2{font-size:clamp(2rem,9vw,2.6rem)}
  h2.mega{font-size:clamp(2.8rem,13vw,3.6rem)}
  .section{padding:72px 0}
  .panel{padding:22px;border-radius:22px}
  .hero{padding-top:100px}
  .cta .btn{flex:1 1 auto}
  .wordmark{font-size:26vw}
  .peek{display:none}
}
@media(hover:none){.om-row span{-webkit-text-stroke-color:rgba(255,255,255,.4)}}

/* ---- performance ---- */
.panel:not(.vis-on) .vis *{animation-play-state:paused!important}
.proj{contain:layout}

input[type=date],input[type=datetime-local]{color-scheme:dark}

.consent{font-size:.82rem;color:var(--mut)}.consent a{text-decoration:underline}.consent a:hover{color:var(--hot)}

/* ---- included + why ---- */
.section.tight{padding:30px 0 90px}
.includes{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));margin-top:42px;border-top:1px solid var(--line)}
.inc{position:relative;padding:28px 26px 28px 54px;border-bottom:1px solid var(--line)}
.inc::before{content:"";position:absolute;left:4px;top:31px;width:24px;height:24px;border-radius:50%;background:var(--hot) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/14px no-repeat}
.inc h3{font-size:1.15rem;margin-bottom:6px}.inc p{color:var(--mut);font-size:.96rem}
.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:50px}
.why div{padding:24px;border-radius:20px;background:var(--card);border:1px solid var(--line)}
.why b{display:block;font:600 1.15rem Geist;letter-spacing:-.02em;margin-bottom:6px}.why span{color:var(--mut);font-size:.95rem}
