@font-face{font-family:Geist;src:url(../assets/fonts/Geist-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(../assets/fonts/GeistMono-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  --paper:#F7F7F5;--surface:#FFFFFF;--raised:#EBEBE8;--line:#DFE0DE;--line2:#CDCFCE;--muted:#5E6369;--steel:#8C9197;--ink:#141618;
  --c950:#0C0D0E;--c850:#1A1D20;--c800:#23272B;--c700:#30353A;--steel3:#AEB2B5;
  --blue:#0058F6;--blue-press:#003AA9;--blue-dark:#4D8DFF;--blue-wash:rgba(0,88,246,.08);
  --f:Geist,"Segoe UI Variable Text","Segoe UI",system-ui,sans-serif;--mono:"Geist Mono",ui-monospace,Consolas,monospace;
  --wrap:1200px;--r-chip:6px;--r-btn:12px;--r-card:20px;--r-panel:28px;
  --sh:0 1px 0 rgba(255,255,255,.9) inset,0 1px 2px rgba(20,22,24,.06),0 8px 24px -8px rgba(20,22,24,.12),0 24px 64px -24px rgba(20,22,24,.16);
  --sh-sm:0 1px 0 rgba(255,255,255,.9) inset,0 1px 2px rgba(20,22,24,.06),0 4px 12px -4px rgba(20,22,24,.10);
  --ease:cubic-bezier(.2,0,0,1);
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--paper);color:var(--ink);font:400 16px/1.55 var(--f);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;overflow-x:clip}
img,svg,canvas{display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:6px}
::selection{background:var(--blue);color:#fff}
.skip{position:fixed;left:16px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px}
.skip:focus{top:16px}
.wrap{width:var(--wrap);margin:0 auto;position:relative}
.mono{font:500 12px/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.tone{color:var(--steel)}
.display{font-size:76px;line-height:1;letter-spacing:-.035em;font-weight:600}
.h2{font-size:52px;line-height:1.04;letter-spacing:-.03em;font-weight:600}
.h3{font-size:24px;line-height:1.2;letter-spacing:-.015em;font-weight:600}
.lede{font-size:19px;line-height:1.5;letter-spacing:-.005em;color:var(--muted)}
.fine{font-size:14px;color:var(--muted)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px}
.eyebrow::before{content:"";width:10px;height:10px;background:var(--blue);clip-path:polygon(0 0,100% 0,0 100%)}
.tbc{display:inline-block;font:600 10px/1 var(--mono);letter-spacing:.06em;color:var(--muted);border:1px dashed var(--line2);border-radius:4px;padding:3px 5px;vertical-align:middle;margin-left:6px}

/* page rails (chatbase-style frame) + kerf nodes */
body::before,body::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--line);z-index:0;pointer-events:none}
body::before{left:calc(50% - var(--wrap)/2 - 40px)}
body::after{left:calc(50% + var(--wrap)/2 + 40px)}
main>section{position:relative;z-index:1}
.joint{position:relative;height:0;z-index:2}
.joint::before,.joint::after{content:"";position:absolute;top:-5px;width:10px;height:10px;background:var(--paper);border:1px solid var(--line2);clip-path:polygon(0 0,100% 0,0 100%)}
.joint::before{left:calc(50% - var(--wrap)/2 - 45px)}
.joint::after{left:calc(50% + var(--wrap)/2 + 35px)}
.joint>i{position:absolute;left:calc(50% - var(--wrap)/2 - 40px);right:calc(50% - var(--wrap)/2 - 40px);top:0;height:1px;background:var(--line)}

/* buttons */
.btn{--mx:0px;--my:0px;position:relative;display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 24px;border-radius:var(--r-btn);font-weight:550;font-size:16px;letter-spacing:-.005em;transition:background-color .15s var(--ease),box-shadow .15s var(--ease),color .15s var(--ease);transform:translate3d(var(--mx),var(--my),0)}
.btn>span{display:block;transition:transform .1s var(--ease)}
.btn:active>span{transform:scale(.97)}
.btn--primary{background:var(--blue);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 -1px 0 rgba(0,0,0,.12) inset,0 1px 2px rgba(0,58,169,.3),0 8px 20px -8px rgba(0,88,246,.55)}
.btn--primary:hover{background:#0050E0}
.btn--primary:active{background:var(--blue-press)}
.btn--ghost{background:var(--surface);color:var(--ink);box-shadow:var(--sh-sm),0 0 0 1px var(--line) inset}
.btn--ghost:hover{box-shadow:var(--sh-sm),0 0 0 1px var(--line2) inset}
.btn--sm{height:40px;padding:0 16px;font-size:14px;border-radius:10px}
.btn--dark{background:var(--ink);color:#fff}
.link{color:var(--blue);font-weight:550;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .25s var(--ease)}
.link:hover{background-size:100% 1px}

/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;padding:14px 0;transition:background-color .2s var(--ease),box-shadow .2s var(--ease)}
.nav.is-solid{background:rgba(247,247,245,.72);backdrop-filter:blur(18px) saturate(170%);-webkit-backdrop-filter:blur(18px) saturate(170%);box-shadow:0 1px 0 rgba(20,22,24,.06)}
.nav__in{width:calc(var(--wrap) + 80px);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 0}
.nav__logo svg{height:30px;width:auto;fill:var(--ink)}
.nav__logo g[data-part=symbol] path:last-child{fill:var(--blue)}
.nav__links{display:flex;gap:4px;font-size:14px;font-weight:500}
.nav__links a{padding:8px 14px;border-radius:999px;color:var(--muted);transition:color .15s,background-color .15s}
.nav__links a:hover,.nav__links a.is-active{color:var(--ink);background:rgba(20,22,24,.05)}

/* hero */
.hero{height:max(780px,calc(100vh - 120px));min-height:760px;position:relative;overflow:hidden}
.hero__pattern{position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent 0 31px,rgba(20,22,24,.045) 31px 32px);-webkit-mask:radial-gradient(60% 70% at 70% 50%,#000 0,transparent 75%);mask:radial-gradient(60% 70% at 70% 50%,#000 0,transparent 75%);pointer-events:none}
.hero__stage{position:absolute;inset:0}
.hero__canvas{width:100%;height:100%}
.hero__labels{position:absolute;inset:0;pointer-events:none}
.plabel{position:absolute;left:0;top:0;opacity:0;will-change:transform,opacity}
.plabel i{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 4px rgba(247,247,245,.9)}
.plabel span{position:absolute;top:-14px;white-space:nowrap;font:500 12px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);box-shadow:var(--sh-sm),0 0 0 1px var(--line) inset;color:var(--ink);transition:color .2s,background-color .2s}
.plabel span b{color:var(--steel);font-weight:500;margin-right:6px}
.plabel--l span{right:calc(100% + 0px);margin-right:-130px}
.plabel--r span{left:28px}
.plabel--l span{right:28px;margin:0}
.plabel::before{content:"";position:absolute;top:0;height:1px;width:24px;background:var(--ink)}
.plabel--r::before{left:4px}.plabel--l::before{right:4px}
.plabel.is-on span{background:var(--blue);color:#fff;box-shadow:0 8px 20px -8px rgba(0,88,246,.6)}
.plabel.is-on span b{color:rgba(255,255,255,.7)}
.plabel.is-on i{background:var(--blue)}
.hero__in{height:100%;display:flex;align-items:center;pointer-events:none}
.hero__copy{width:600px;padding-top:56px;pointer-events:auto}
.hero__copy .chip{margin-bottom:28px}
.hero__copy .display{margin-bottom:28px}
.hero__copy .lede{max-width:520px;margin-bottom:36px}
.ctas{display:flex;gap:12px;margin-bottom:20px}
.chip{display:inline-flex;align-items:center;gap:10px;height:34px;padding:0 14px 0 10px;border-radius:999px;background:var(--surface);box-shadow:var(--sh-sm),0 0 0 1px var(--line) inset;font-size:13px;font-weight:500}
.chip__dot{width:16px;height:16px;border-radius:5px;background:var(--blue);clip-path:polygon(0 0,100% 0,0 100%)}
.hero__hint{position:absolute;right:0;bottom:40px;display:flex;align-items:center;gap:10px}
.kbd{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--surface);box-shadow:var(--sh-sm),0 0 0 1px var(--line) inset;color:var(--ink)}

/* spec strip */
.spec{padding:0 0 120px}
.spec__grid{display:grid;grid-template-columns:repeat(4,1fr) 1.35fr;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.spec__cell{position:relative;padding:28px 24px 32px;border-right:1px solid var(--line)}
.spec__cell:first-child{padding-left:0}
.spec__n{font-size:48px;font-weight:600;letter-spacing:-.035em;line-height:1;margin:18px 0 14px;font-variant-numeric:tabular-nums}
.spec__c{font-size:14px;color:var(--muted);line-height:1.45}
.vquote{margin:16px 0 16px 24px;border-radius:var(--r-card);background:var(--ink);color:#fff;padding:22px 22px 20px;display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:16px;row-gap:10px;align-content:center;box-shadow:var(--sh);transition:transform .3s var(--ease)}
.vquote:hover{transform:translateY(-2px)}
.vquote__play{grid-row:1/3;width:44px;height:44px;border-radius:50%;background:var(--blue);display:grid;place-items:center;align-self:center}
.vquote__play svg{width:18px;height:18px;fill:#fff;margin-left:2px}
.vquote__q{font-size:18px;font-weight:550;letter-spacing:-.01em;line-height:1.25}
.vquote__who{color:var(--steel3)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
