@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap');
:root{
  --bg:#F2EDEC; --bg-alt:#EDE7E6; --surface:#FCFAF9; --surface-2:#fff;
  --line:rgba(15,10,44,0.08); --line-strong:rgba(15,10,44,0.16);
  --ink:#0F0A2C; --ink-2:#1B1640; --ink-muted:#5B5572; --ink-soft:#8B859E;
  --primary:#2563EB; --primary-deep:#1E40AF; --primary-soft:#DCE6FE;
  --accent:#BEE61F; --accent-deep:#8BB300; --accent-soft:#EFFAC4;
  --tri-green:#009344; --tri-red:#CF2734;
  --c-image:#2563EB; --c-pdf:#EE3A8C; --c-convert:#F9C846; --c-compress:#009344; --c-calc:#8B5CF6;
  --f-display:'Geist',system-ui,-apple-system,sans-serif;
  --f-body:'Geist',system-ui,-apple-system,sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,'SF Mono',monospace;
  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-2xl:44px; --r-pill:999px;
  --sh-card:0 1px 0 rgba(15,10,44,0.04),0 8px 30px -10px rgba(15,10,44,0.10);
  --sh-float:0 10px 40px -8px rgba(15,10,44,0.18),0 2px 6px rgba(15,10,44,0.06);
  --sh-primary:0 14px 32px -10px rgba(37,99,235,0.55),0 4px 12px rgba(37,99,235,0.25);
  --max:1280px; --pad:clamp(20px,4vw,48px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--f-body);background:var(--bg);color:var(--ink);font-feature-settings:"ss01","cv11","kern";line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:var(--accent)}
.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--primary);font-weight:500}
.eyebrow.dim{color:var(--ink-muted)}
h1,h2,h3,h4{margin:0;font-family:var(--f-display);letter-spacing:-0.02em;line-height:1.02;color:var(--ink)}
.h-display{font-size:clamp(48px,8.4vw,124px);font-weight:800;line-height:0.96;letter-spacing:-0.035em}
.h-display em{font-style:normal;background:linear-gradient(135deg,var(--primary),var(--primary-deep));-webkit-background-clip:text;background-clip:text;color:transparent}
.h-1{font-size:clamp(40px,5.4vw,76px);font-weight:800;letter-spacing:-0.03em;line-height:1}
.h-2{font-size:clamp(28px,3.2vw,44px);font-weight:700;letter-spacing:-0.025em;line-height:1.05}
.h-3{font-size:22px;font-weight:600;letter-spacing:-0.015em;line-height:1.2}
.lead{font-size:clamp(16px,1.25vw,19px);color:var(--ink-muted);line-height:1.55;max-width:54ch;margin:0}
.mono{font-family:var(--f-mono)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:var(--r-pill);font-weight:600;font-size:15px;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,background .2s;white-space:nowrap}
.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--sh-primary)}
.btn-primary:hover{transform:translateY(-1px);background:var(--primary-deep)}
.btn-white{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);box-shadow:0 1px 0 rgba(15,10,44,.04)}
.btn-white:hover{transform:translateY(-1px);border-color:var(--line-strong)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-2);transform:translateY(-1px)}
.btn-ghost{padding:14px 18px;color:var(--ink)}
.btn-ghost:hover{color:var(--primary)}
.btn .ico{width:18px;height:18px}
.section{padding:clamp(60px,8vw,120px) var(--pad)}
.section.tight{padding:clamp(40px,5vw,70px) var(--pad)}
.wrap{max-width:var(--max);margin:0 auto}
.s-head{max-width:860px;margin:0 auto clamp(40px,5vw,70px);text-align:center;padding:0 var(--pad)}
.s-head .eyebrow{margin-bottom:18px;display:inline-block}
.s-head h2{margin-bottom:18px}
.s-head .lead{margin:0 auto}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal.delay-1{transition-delay:.1s}
.reveal.delay-2{transition-delay:.2s}
.reveal.delay-3{transition-delay:.3s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
