/* ===================================================================
   Launch Labz — shared design system (single source of truth)
   Linked by the 14 core marketing pages. Demos stay self-contained.
   Edit shared styles HERE, never per-page. See CLAUDE.md.
   =================================================================== */

:root { --bg:#0a0a0a; --bg-2:#0e0e0e; --surface:#121212; --surface-2:#161616; --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.14); --line-3:rgba(255,255,255,.22); --ink:#ffffff; --ink-2:#c8c8c8; --ink-3:#a3a3a3; --ink-4:#707070; --lime:#d4ff3a; --lime-2:#e6ff66; --lime-ink:#0a0a0a; --lime-glow:rgba(212,255,58,.35); --radius-sm:10px; --radius:16px; --radius-lg:24px; --radius-xl:32px; --pill:999px; --nav-h:72px; --maxw:1240px; --display:"Anton","Arial Narrow",Impact,system-ui,sans-serif; --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; --ease:cubic-bezier(.2,.8,.2,1); --warn:#ff6a4a; --warn-glow:rgba(255,106,74,.32); }

* { box-sizing:border-box }
html { -webkit-text-size-adjust:100%;scroll-behavior:smooth }
img,svg { display:block;max-width:100% }
a { color:inherit;text-decoration:none }
button { font-family:inherit;cursor:pointer;border:0;background:none;color:inherit }
::selection { background:var(--lime);color:var(--lime-ink) }
.eyebrow { display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--lime); margin-bottom:22px; }
.eyebrow::before { content:""; width:6px; height:6px; background:var(--lime); border-radius:50%; box-shadow:0 0 16px var(--lime-glow); }
.container { width:100%; max-width:var(--maxw); margin:0 auto; padding:0 28px; }
.announce { background:#050505; border-bottom:1px solid var(--line); color:var(--ink-2); font-size:.8rem; text-align:center; padding:10px 20px; letter-spacing:.02em; }
.announce b { color:var(--lime); font-weight:600; }
.nav-wrap { position:sticky; top:0; z-index:50; background:rgba(10,10,10,.72); backdrop-filter:saturate(160%) blur(16px); -webkit-backdrop-filter:saturate(160%) blur(16px); border-bottom:1px solid var(--line); }
.nav { max-width:var(--maxw); margin:0 auto; padding:0 28px; height:var(--nav-h); display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { display:inline-flex; align-items:center; gap:12px; font-family:var(--display); font-size:1.35rem; letter-spacing:.01em; color:#fff; text-transform:uppercase; }
.brand-mark { width:32px; height:32px; display:inline-grid; place-items:center; flex-shrink:0; }
.brand-mark img { width:100%; height:100%; object-fit:contain; display:block; }
.nav > .brand .brand-dot { display:none; }
.brand-dot { display:inline-block; width:10px; height:10px; background:var(--lime); border-radius:2px; transform:translateY(-6px); margin-left:2px; box-shadow:0 0 12px var(--lime-glow); }
.nav-links { display:flex; align-items:center; gap:6px; list-style:none; margin:0; padding:0; }
.nav-links a { font-size:.85rem; font-weight:500; padding:10px 14px; border-radius:var(--pill); color:var(--ink-2); transition:color .2s, background .2s; }
.nav-links a:hover, .nav-links a.active { color:#fff; background:rgba(255,255,255,.05); }
.nav-right { display:flex; align-items:center; gap:10px; }
.nav-toggle { display:none; width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.04); border:1px solid var(--line-2); align-items:center; justify-content:center; }
.nav-toggle span { display:block; width:18px; height:2px; background:#fff; position:relative; }
.nav-toggle span::before,.nav-toggle span::after { content:""; position:absolute; left:0; width:18px; height:2px; background:#fff; transition:transform .25s, top .25s; }
.nav-toggle span::before { top:-6px; }
.nav-toggle span::after { top: 6px; }
.nav-wrap.open .nav-toggle span { background:transparent; }
.nav-wrap.open .nav-toggle span::before { top:0; transform:rotate(45deg); }
.nav-wrap.open .nav-toggle span::after { top:0; transform:rotate(-45deg); }
.footer-grid { display:grid; gap:40px; grid-template-columns:1.5fr 1fr 1fr 1fr; }
.footer h2 { font-family:var(--display); font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; color:#fff; margin:0 0 14px; }
.footer ul { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.footer a { color:var(--ink-3); font-size:.94rem; }
.footer a:hover { color:var(--lime); }
.footer .desc { color:var(--ink-3); font-size:.94rem; max-width:32ch; margin-top:12px; }
.footer .social { display:flex; gap:10px; margin-top:14px; }
.footer .social a { width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,.05); border:1px solid var(--line); display:grid; place-items:center; color:#fff; }
.footer .social a:hover { background:rgba(212,255,58,.12); border-color:rgba(212,255,58,.35); color:var(--lime); }

/* Micro-motion: pages opt in with a small inline script that adds .reveal
   to content blocks and .in when they enter the viewport. No JS, no motion —
   pages stay fully readable. Honors prefers-reduced-motion. */
@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity:0; transform:translateY(16px); transition:opacity .55s var(--ease), transform .55s var(--ease); }
  .reveal.in { opacity:1; transform:translateY(0); }
}
@media print { .reveal { opacity:1 !important; transform:none !important; } }

/* 8-item nav squeeze zone: tighten spacing so links + CTA fit between the
   mobile breakpoint (960px) and comfortable desktop (~1180px). */
@media (max-width:1180px) and (min-width:961px) {
  .nav { gap:14px; }
  .nav-links { gap:2px; }
  .nav-links a { padding:9px 10px; font-size:.8rem; }
  .nav-right .btn { padding:10px 14px; font-size:.8rem; }
}

@media (max-width:960px) {
  .nav-toggle { display:inline-flex; }
  .nav-wrap.open .nav-links { transform:translateY(0); opacity:1; pointer-events:auto; }
}

@media (max-width:820px) {
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width:520px) {
  .footer-grid { grid-template-columns:1fr; }
}

@media (max-width:480px) {
  .container { padding:0 16px; }
  .brand { font-size:1rem; gap:8px; white-space:nowrap; }
  .brand-mark { width:24px; height:24px; }
  .nav-right { gap:8px; }
  .nav-right .btn { padding:9px 12px; font-size:.78rem; }
  .nav-right .btn .arrow { display:none; }
}
