:root{--bg:#07090a;--p:#0e1213;--l:rgba(255,255,255,.1);--t:#eef3f2;--m:#8d9b99;--h:172;--a:hsl(var(--h) 58% 62%);--f:'Bricolage Grotesque',system-ui,sans-serif;--k:'JetBrains Mono',ui-monospace,Menlo,monospace}
*{box-sizing:border-box;margin:0}
html{background:var(--bg);scroll-behavior:smooth}
body{font:400 1.06rem/1.6 var(--f);color:var(--t);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--a);outline-offset:3px;border-radius:4px}
.w{max-width:1100px;margin:0 auto;padding:0 1.5rem}

/* cursor-lit dot grid */
body::before,body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle,#fff 1px,transparent 1.3px) 0 0/30px 30px;opacity:.07}
body::after{background-image:radial-gradient(circle,var(--a) 1.5px,transparent 2px);opacity:1;-webkit-mask:radial-gradient(240px circle at var(--mx,70%) var(--my,25%),#000,transparent);mask:radial-gradient(240px circle at var(--mx,70%) var(--my,25%),#000,transparent)}

/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;background:rgba(7,9,10,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--l)}
.ni{display:flex;align-items:center;justify-content:space-between;height:66px}
.lg{display:flex;align-items:center;gap:.55rem;font:600 1.05rem var(--k)}
.lg svg{width:20px;height:20px;fill:var(--a)}
.lg i{width:2px;height:1.1em;background:var(--a);animation:bl 1s steps(1) infinite}
@keyframes bl{50%{opacity:0}}
.nl{display:flex;align-items:center;gap:1.8rem}
.nl a:not(.b){color:var(--m);transition:color .2s;padding:.2rem 0;border-bottom:2px solid transparent}
.nl a:not(.b):hover{color:var(--t)}
.nl a[aria-current]{color:var(--t);border-color:var(--a)}
.mb{display:none;background:none;border:1px solid var(--l);color:var(--t);font:inherit;font-size:.95rem;padding:.4rem .9rem;border-radius:99px;cursor:pointer}

/* buttons */
.b{display:inline-block;background:var(--a);color:#04110f;font:700 1rem var(--f);padding:.75rem 1.3rem;border-radius:99px;border:0;cursor:pointer;transition:box-shadow .25s,transform .2s}
.b:hover{box-shadow:0 0 0 6px color-mix(in srgb,var(--a) 18%,transparent),0 10px 40px color-mix(in srgb,var(--a) 35%,transparent)}
.b.g{background:none;color:var(--t);border:1px solid var(--l)}
.b.g:hover{border-color:var(--a);box-shadow:none}
.ac{display:flex;gap:.8rem;flex-wrap:wrap}

/* type */
h1{font-weight:800;font-size:clamp(2.5rem,6vw,4.9rem);line-height:1;letter-spacing:-.035em}
h2{font-weight:700;font-size:clamp(1.9rem,4vw,3.2rem);line-height:1.05;letter-spacing:-.03em}
.sub{color:var(--m);max-width:34rem;margin:1.5rem 0 2rem;font-size:1.15rem}
.wd{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.wd>span{display:inline-block;transform:translateY(110%);animation:up .85s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(.6s + var(--i)*.06s)}
@keyframes up{to{transform:none}}

/* layout */
.hero{padding:9rem 0 5rem}
.top{padding:9rem 0 3rem}
.sec{padding:5.5rem 0}
.two{display:grid;grid-template-columns:1.05fr 1fr;gap:3.5rem;align-items:center}
.two.st0{align-items:start}

/* hero window: terminal + compiling site */
.win{background:var(--p);border:1px solid var(--l);border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 90px color-mix(in srgb,var(--a) 08%,transparent)}
.bar{display:flex;gap:.4rem;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--l);font:.78rem var(--k);color:var(--m)}
.bar i{width:9px;height:9px;border-radius:50%;background:#2a3234}
.bar span{margin-left:.6rem}
.tm{font:.85rem/1.75 var(--k);padding:1rem 1.2rem;min-height:9.6rem;color:var(--m);white-space:pre-wrap;margin:0}
.tm b{color:var(--a);font-weight:400}
.tm .ok{color:var(--t)}
.cur{display:inline-block;width:.5em;height:1em;background:var(--a);vertical-align:-.15em;animation:bl 1s steps(1) infinite}
.pv{margin:0 1rem 1rem;border-radius:10px;padding:.9rem;background:#151a1c;transition:background .7s}
.pv *{transition:background .7s,color .7s}
.pn{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem}
.pn i{width:18px;height:18px;border-radius:50%;background:#262d2f;margin-right:auto}
.pn b{width:34px;height:7px;border-radius:4px;background:#262d2f}
.ph h3{font:700 1.5rem/1.15 var(--f);letter-spacing:-.02em;color:transparent;background:#262d2f;border-radius:6px;min-height:1.75em;max-width:92%}
.ph u{display:block;width:88px;height:26px;border-radius:99px;background:#262d2f;margin:.8rem 0 1rem}
.pc{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.pc i{height:46px;border-radius:8px;background:#1e2426}
.pv.on{background:var(--bg2)}
.pv.on .pn i{background:var(--c)}
.pv.on .pn b{background:rgba(255,255,255,.35)}
.pv.on h3{color:#fff;background:none}
.pv.on u{background:var(--c)}
.pv.on .pc i{background:color-mix(in srgb,var(--c) 30%,var(--bg2))}

/* marquee */
.mq{overflow:hidden;border-block:1px solid var(--l);padding:1.3rem 0}
.mt{display:flex;width:max-content;animation:mq 30s linear infinite}
.mt span{font:800 clamp(3rem,9vw,7rem)/1 var(--f);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.4);padding-right:2.2rem}
.mt span:nth-child(even){-webkit-text-stroke:0;color:var(--a);font-size:clamp(1.5rem,4vw,3rem);align-self:center}
@keyframes mq{to{transform:translateX(-50%)}}

/* feature rows */
.rows{margin-top:3rem;border-top:1px solid var(--l)}
.row{display:grid;grid-template-columns:11rem 1fr 1.3fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--l);position:relative;align-items:baseline}
.row::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--a);transition:width .6s}
.row:hover::after{width:100%}
.row code{font:.85rem var(--k);color:var(--a)}
.row h3{font-size:1.6rem;letter-spacing:-.02em;line-height:1.15}
.row p{color:var(--m)}

/* cta */
.cta{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;padding:3rem;border:1px solid var(--l);border-radius:22px;background:radial-gradient(600px 220px at 85% 0,color-mix(in srgb,var(--a) 16%,transparent),transparent),var(--p)}
.cta h2{max-width:20ch}

/* process timeline */
.tl{position:relative;margin-left:.5rem;padding-left:3rem}
.tl::before,.tl::after{content:"";position:absolute;left:0;top:0;width:2px}
.tl::before{bottom:0;background:var(--l)}
.tl::after{height:calc(var(--p,0)*100%);background:var(--a);box-shadow:0 0 14px var(--a)}
.st{position:relative;padding-bottom:4.5rem}
.st::before{content:"";position:absolute;left:calc(-3rem - 5px);top:.45rem;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--l);transition:.4s}
.st.in::before{border-color:var(--a);background:var(--a);box-shadow:0 0 0 6px color-mix(in srgb,var(--a) 15%,transparent)}
.st small{font:.82rem var(--k);color:var(--a)}
.st h2{margin:.4rem 0 .8rem}
.st p{color:var(--m);max-width:34rem}
.wh{display:inline-block;margin-top:1rem;font:.82rem var(--k);border:1px solid var(--l);padding:.3rem .75rem;border-radius:99px}

/* pricing code panel */
.cd{counter-reset:ln;list-style:none;padding:1rem 0;font:1rem/2.5 var(--k);margin:0}
.cd li{counter-increment:ln;display:flex;gap:1.3rem;padding:0 1.4rem}
.cd li::before{content:counter(ln);color:#4a5557;width:1rem;text-align:right}
.cd li span{color:var(--a)}
.js .cd li{opacity:0;transform:translateX(-12px);transition:.5s cubic-bezier(.2,.8,.2,1)}
.js .win.in .cd li{opacity:1;transform:none}
.js .win.in .cd li:nth-child(2){transition-delay:.15s}.js .win.in .cd li:nth-child(3){transition-delay:.3s}.js .win.in .cd li:nth-child(4){transition-delay:.45s}
.nt{border-left:2px solid var(--a);padding-left:1.2rem;max-width:34rem;margin-top:2.5rem}
.nt h3{font-size:1.25rem;margin-bottom:.3rem}
.nt p{color:var(--m)}

/* form */
.fm{display:grid;gap:1.1rem;background:var(--p);border:1px solid var(--l);border-radius:16px;padding:1.8rem}
.fm label{display:grid;gap:.4rem;font-size:.92rem;color:var(--m)}
.fm input,.fm textarea{font:inherit;color:var(--t);background:var(--bg);border:1px solid var(--l);border-radius:10px;padding:.8rem .9rem;transition:border-color .2s,box-shadow .2s}
.fm input:focus,.fm textarea:focus{outline:0;border-color:var(--a);box-shadow:0 0 0 4px color-mix(in srgb,var(--a) 15%,transparent)}
.fm textarea{min-height:7rem;resize:vertical}
.fn{color:var(--m);font-size:.92rem;min-height:1.4em}
.mail{font:1rem var(--k);color:var(--a)}

/* footer */
.ft{border-top:1px solid var(--l);padding:2rem 0;color:var(--m);font:.85rem var(--k)}
.fi{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.ft a:hover{color:var(--a)}

/* reveal + page transition */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}
.js .rv.in{opacity:1;transform:none}
.tr{position:fixed;inset:0;z-index:100;background:var(--a);display:grid;place-items:center;pointer-events:none;transform:translateY(-100%);animation:out .85s cubic-bezier(.7,0,.2,1) .1s both}
.tr svg{width:56px;fill:#04110f}
.tr.go{pointer-events:auto;animation:inn .5s cubic-bezier(.7,0,.2,1) both}
@keyframes out{from{transform:none}to{transform:translateY(-100%)}}
@keyframes inn{from{transform:translateY(100%)}to{transform:none}}

@media(max-width:820px){
.two{grid-template-columns:1fr;gap:2.5rem}
.row{grid-template-columns:1fr;gap:.4rem}
.mb{display:block}
.nl{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--bg);padding:1.2rem 1.5rem 1.5rem;border-bottom:1px solid var(--l);gap:1rem}
.nav.open .nl{display:flex}
.hero,.top{padding-top:7.5rem}
.cta{padding:2rem}
}
@media(prefers-reduced-motion:reduce){
.tr{display:none}.wd>span{animation:none;transform:none}.mt{animation:none}
.js .rv,.js .cd li{opacity:1;transform:none;transition:none}
}

/* cursor drives the theme (accent hue) */
@media(prefers-reduced-motion:reduce){}

.ft .b{padding:.5rem 1.2rem;font-size:.9rem}
.ft .b.g{color:var(--a);border-color:var(--a)}
.ft .b.g:hover{background:var(--a);color:#04110f}
