@font-face{font-family:'DM Sans';font-style:normal;font-weight:300 700;font-display:swap;src:url('../fonts/dmsans-var-latin.woff2') format('woff2-variations')}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/spacemono-400-latin.woff2') format('woff2')}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/spacemono-700-latin.woff2') format('woff2')}
:root{
    --bg:#0a0c12;--surface:#12151f;--surface2:#1a1e2e;--surface3:#20253a;
    --border:#252a3a;--accent:#3b82f6;--accent2:#7c3aed;--accent3:#f59e0b;
    --success:#22c55e;--danger:#ef4444;--text:#e2e8f0;--muted:#64748b;--dim:#94a3b8;
    --mono:'Space Mono',monospace;--sans:'DM Sans',sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6;overflow-x:hidden}
  .wrap{max-width:1080px;margin:0 auto;padding:0 28px}
  .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
  .sec{padding:88px 0;position:relative}
  .sec-head{max-width:760px;margin-bottom:44px}
  .sec-title{font-size:clamp(26px,4vw,40px);font-weight:600;letter-spacing:-.02em;line-height:1.12}
  .sec-lede{color:var(--dim);font-size:18px;margin-top:16px;max-width:62ch}
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
  .reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}

  nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(10,12,18,.72);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s}
  nav.stuck{border-color:var(--border)}
  .nav-in{max-width:1080px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;gap:24px}
  .brand{font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:.04em}.brand span{color:var(--accent)}
  .nav-links{display:flex;gap:20px;margin-left:auto;align-items:center}
  .nav-links a{color:var(--dim);text-decoration:none;font-size:13px;transition:color .2s}.nav-links a:hover{color:var(--text)}
  .nav-cta{background:var(--accent);color:#fff;padding:8px 18px;border-radius:7px;font-size:13px;font-weight:600;text-decoration:none}.nav-cta:hover{background:#2f6fd6}
  @media(max-width:760px){.nav-links a:not(.nav-cta){display:none}}

  header.hero{padding:150px 0 70px;background:radial-gradient(900px 500px at 75% 10%,rgba(59,130,246,.10),transparent 60%)}
  .hero h1{font-size:clamp(34px,6vw,64px);font-weight:700;letter-spacing:-.03em;line-height:1.04}
  .hero h1 b{background:linear-gradient(120deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .hero p{font-size:19px;color:var(--dim);margin-top:22px;max-width:56ch}

  /* term index */
  .index{display:flex;flex-wrap:wrap;gap:8px;margin-top:34px}
  .index a{font-family:var(--mono);font-size:12px;color:var(--dim);text-decoration:none;padding:6px 12px;border:1px solid var(--border);border-radius:20px;transition:.2s}
  .index a:hover{border-color:var(--accent);color:var(--accent)}

  /* model flow */
  .flow{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap}
  .node{flex:1 1 150px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px}
  .node .k{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--accent2);margin-bottom:6px}
  .node h4{font-size:15px;margin-bottom:5px}.node p{font-size:13px;color:var(--dim)}
  .flow-cap{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:16px}

  /* glossary def cards */
  .defs{display:grid;gap:16px}
  .def{background:linear-gradient(160deg,var(--surface2),var(--surface));border:1px solid var(--border);border-radius:14px;padding:26px 28px;scroll-margin-top:90px;position:relative;overflow:hidden}
  .def:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
  .def:nth-child(3n+2):before{background:var(--accent2)}.def:nth-child(3n):before{background:var(--accent3)}
  .def-word{font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:.01em}
  .def-say{font-size:12px;color:var(--muted);font-style:italic;margin:2px 0 14px}
  .def-body{font-size:15px;color:var(--dim);max-width:74ch}.def-body b{color:var(--text);font-weight:600}
  .def-eg{margin-top:14px;padding:12px 16px;background:var(--bg);border-radius:9px;border:1px solid var(--border);font-size:14px;color:var(--dim)}
  .def-eg b{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--accent3);display:block;margin-bottom:5px;text-transform:uppercase}

  /* pipeline */
  .pipe{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  .pstep{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}
  .pstep .pn{font-family:var(--mono);font-size:12px;color:var(--accent);font-weight:700;margin-bottom:10px}
  .pstep h4{font-size:15px;margin-bottom:6px}.pstep p{font-size:13.5px;color:var(--dim)}
  @media(max-width:760px){.pipe{grid-template-columns:1fr 1fr}}

  .callout{background:linear-gradient(135deg,rgba(59,130,246,.10),rgba(124,58,237,.08));border:1px solid var(--border);border-radius:16px;padding:36px;text-align:center;margin-top:20px}
  .callout h3{font-size:24px;margin-bottom:10px}.callout p{color:var(--dim);margin-bottom:22px}
  .btn{display:inline-block;padding:12px 24px;border-radius:9px;font-weight:600;font-size:15px;text-decoration:none;transition:.2s}
  .btn-p{background:var(--accent);color:#fff}.btn-p:hover{background:#2f6fd6}
  .btn-s{border:1px solid var(--border);color:var(--text);margin-left:10px}.btn-s:hover{border-color:var(--accent);color:var(--accent)}

  footer{border-top:1px solid var(--border);padding:38px 0;color:var(--muted);font-size:13px}
  .foot-in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px}

/* utility classes replacing CSP-blocked inline styles */
.u-surface{background:var(--surface)}
.u-text{color:var(--text)}
.u-mutenote{color:var(--muted);font-weight:400;font-size:13px}
.u-mt24{margin-top:24px}

  /* ---- glossary group dividers ---- */
  .def-divider{display:flex;align-items:center;gap:14px;margin-top:26px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
  .def-divider:first-child{margin-top:0}
  .def-divider::before,.def-divider::after{content:"";height:1px;background:var(--border);flex:1}

  /* ---- return-to-teaser chip ---- */
  .return-chip{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:20;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:9px 16px;text-decoration:none;white-space:nowrap}
  .return-chip:hover{border-color:var(--accent)}
