:root {
    --paper:#f2efe7; --ink:#11110f; --muted:#625f57; --soft:#2b2a26; --cream:#fffdf7;
    --sky:#3fa8e8; --orange:#f0821e; --red:#e34637; --gold:#e8b33e;
    --hairline:rgba(17,17,15,.28);
  }
  * { box-sizing:border-box; margin:0; }
  html,body { height:100%; }
  body {
    background:var(--paper); color:var(--ink); overflow-x:hidden;
    font:400 16px "General Sans","Helvetica Neue",sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  .hero { position:relative; min-height:100svh; overflow:hidden; }
  svg.art { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
  .rings { mix-blend-mode:multiply; }
  .sys { transform-origin:var(--ox) var(--oy); animation:breathe var(--dur) ease-in-out infinite alternate; }
  @keyframes breathe { from { transform:translate(0,0) scale(1); } to { transform:translate(0,-9px) scale(1.02); } }
  .pulse { animation:descend 12s cubic-bezier(.45,0,.55,1) infinite; }
  @keyframes descend {
    0%   { transform:translateY(-60px); opacity:0; }
    6%   { opacity:1; }
    28%  { transform:translateY(250px); }
    54%  { transform:translateY(517px); }
    80%  { transform:translateY(724px); }
    96%  { transform:translateY(920px); opacity:1; }
    100% { transform:translateY(960px); opacity:0; }
  }
  body.paused .sys, body.paused .pulse { animation-play-state:paused; }
  @media (prefers-reduced-motion: reduce) { .sys, .pulse { animation:none; } .pulse { opacity:0; } }

  .mark { position:absolute; top:5vh; left:6.5vw; display:flex; gap:12px; align-items:baseline;
    font:600 13px "General Sans",sans-serif; letter-spacing:.34em; color:var(--ink); text-decoration:none; }
  .mark i { display:inline-block; width:7px; height:7px; border-radius:50%; }
  .mark .lab { font:500 9px "JetBrains Mono",monospace; letter-spacing:.18em; color:var(--muted);
    border-left:1px solid var(--hairline); padding-left:12px; }
  .flow { position:absolute; right:6.5vw; top:5vh; display:flex; align-items:flex-start; gap:28px; text-align:right;
    font:500 10px "JetBrains Mono",monospace; letter-spacing:.16em; color:var(--muted); line-height:2.1; }
  .flow b { color:var(--ink); }
  .flow a { color:var(--ink); text-decoration:none; border-bottom:1px solid var(--hairline); }
  .flow a:hover, .flow a:focus-visible { border-color:var(--ink); }

  .type { position:absolute; left:6.5vw; bottom:10vh; z-index:2; max-width:42vw; }
  .keyline { width:100%; border:0; border-top:1px solid var(--hairline); margin:0; }
  .keyline + .keyline { margin-top:3px; }
  h1 { margin-top:26px; font-weight:600; font-size:clamp(36px,3.7vw,54px); line-height:1.02; letter-spacing:-.03em; }
  h1 .u { text-decoration:underline; text-decoration-thickness:.045em; text-underline-offset:.1em; }
  .lede { margin-top:24px; font:400 19px/1.55 "Newsreader",Georgia,serif; color:var(--soft); max-width:40ch; }
  .actions { margin-top:34px; display:flex; gap:26px; align-items:center; }
  .btn { display:inline-flex; align-items:center; min-height:48px; padding:0 28px;
    background:var(--ink); color:var(--cream); text-decoration:none; font:600 14px "General Sans",sans-serif; }
  .lk { font:600 14px "General Sans",sans-serif; color:var(--ink); text-decoration:underline;
    text-underline-offset:6px; text-decoration-color:rgba(17,17,15,.4); }
  .proof { margin-top:24px; font:400 12.5px "General Sans",sans-serif; color:var(--muted); }
  .proof i { display:inline-block; width:6px; height:6px; border-radius:50%; background:#4d7853;
    margin-right:8px; vertical-align:1px; }
  .yc { display:inline-flex; align-items:center; gap:8px; text-decoration:none; vertical-align:-1px;
    margin-left:14px; font:500 12px "General Sans",sans-serif; color:var(--soft); }
  .yc span { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px;
    background:#f26522; color:#fff; font:700 12px "General Sans",sans-serif; }
  .yc:hover b { text-decoration:underline; } .yc b { font-weight:500; }
  .oss { color:inherit; text-decoration:none; margin-left:14px;
    font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.12em; }

  .motion-toggle { position:absolute; right:6.5vw; bottom:5vh;
    font:500 9.5px "JetBrains Mono",monospace; letter-spacing:.16em; color:var(--muted);
    background:none; border:0; padding:0; cursor:pointer;
    text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--hairline); }
  .motion-toggle:hover { color:var(--ink); }

  .research-section { border-top:1px solid var(--ink); background:#e9e4d8; }
  .research-shell { width:min(calc(100% - 13vw),1240px); margin:0 auto; padding:116px 0 132px; }
  .research-eyebrow { display:flex; align-items:center; gap:14px; color:var(--muted);
    font:500 10px/1 "JetBrains Mono",monospace; letter-spacing:.16em; text-transform:uppercase; }
  .research-eyebrow::before { content:""; width:36px; height:1px; background:var(--ink); }
  .research-intro { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:9vw;
    align-items:end; padding:38px 0 66px; }
  .research-intro h2 { max-width:820px; font:400 clamp(46px,6vw,82px)/.98 "Newsreader",Georgia,serif;
    letter-spacing:-.04em; }
  .research-intro p { max-width:480px; color:var(--soft); font:400 19px/1.55 "Newsreader",Georgia,serif; }
  .research-feature { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
    border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
  .research-feature--oss { margin-top:76px; }
  .research-copy { padding:46px 5vw 50px 0; }
  .research-meta { color:var(--muted); font:500 10px/1.4 "JetBrains Mono",monospace;
    letter-spacing:.13em; text-transform:uppercase; }
  .research-copy h3 { max-width:720px; margin:22px 0 20px; font:500 clamp(34px,4vw,58px)/1.02 "Newsreader",Georgia,serif;
    letter-spacing:-.035em; }
  .research-copy > p { max-width:700px; color:var(--soft); font:400 17px/1.68 "General Sans",sans-serif; }
  .research-actions { display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:34px; }
  .research-link { display:inline-flex; min-height:48px; align-items:center; gap:18px; padding:0 24px;
    background:var(--ink); color:var(--cream); font:600 13px/1 "General Sans",sans-serif; text-decoration:none; }
  .research-link:hover, .research-link:focus-visible { background:#2b2a26; }
  .paper-status { color:var(--muted); font:500 10px/1.45 "JetBrains Mono",monospace;
    letter-spacing:.1em; text-transform:uppercase; }
  .research-secondary { color:var(--ink); font:600 12px/1.4 "General Sans",sans-serif;
    text-decoration:underline; text-decoration-color:var(--hairline); text-underline-offset:5px; }
  .research-secondary:hover, .research-secondary:focus-visible { text-decoration-color:var(--ink); }
  .research-visual { display:grid; align-content:center; gap:24px; padding:48px 0 48px 5vw;
    border-left:1px solid var(--ink); }
  .pipeline { display:grid; gap:0; }
  .pipeline-step { position:relative; display:grid; grid-template-columns:34px 1fr; gap:16px; align-items:start;
    padding:15px 0; border-top:1px solid var(--hairline); }
  .pipeline-step:last-child { border-bottom:1px solid var(--hairline); }
  .pipeline-step::before { content:""; position:absolute; left:16px; top:42px; bottom:-16px; width:1px; background:var(--ink); }
  .pipeline-step:last-child::before { display:none; }
  .pipeline-step > span { display:grid; place-items:center; width:33px; height:33px; border:1px solid var(--ink);
    background:var(--paper); font:500 10px/1 "JetBrains Mono",monospace; }
  .pipeline-step:nth-child(1) > span { border-top:3px solid var(--sky); }
  .pipeline-step:nth-child(2) > span { border-top:3px solid var(--orange); }
  .pipeline-step:nth-child(3) > span { border-top:3px solid var(--red); }
  .pipeline-step:nth-child(4) > span { background:var(--ink); color:var(--cream); }
  .pipeline-step strong { display:block; margin-bottom:3px; font:600 15px/1.3 "General Sans",sans-serif; }
  .pipeline-step small { color:var(--muted); font:400 12px/1.45 "General Sans",sans-serif; }
  .research-numbers { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); }
  .research-number { padding:17px 14px 0 0; }
  .research-number strong { display:block; font:500 clamp(25px,2.7vw,38px)/1 "Newsreader",Georgia,serif; }
  .research-number--range strong { font-size:clamp(23px,2.3vw,33px); letter-spacing:-.04em; white-space:nowrap; }
  .research-number span { display:block; margin-top:7px; color:var(--muted); font:500 9px/1.45 "JetBrains Mono",monospace;
    letter-spacing:.07em; text-transform:uppercase; }
  .research-note { max-width:690px; margin:26px 0 0 auto; color:var(--muted); font:400 11px/1.6 "General Sans",sans-serif; }
  .oss-route-preview { border-top:1px solid var(--ink); }
  .oss-route-row { display:grid; grid-template-columns:33px minmax(0,1fr) auto; gap:14px; align-items:center;
    min-height:58px; border-bottom:1px solid var(--hairline); }
  .oss-route-row > span { color:var(--muted); font:500 9px/1 "JetBrains Mono",monospace; }
  .oss-route-row strong { font:600 14px/1.3 "General Sans",sans-serif; }
  .oss-route-row small { color:var(--muted); font:400 11px/1.35 "General Sans",sans-serif; text-align:right; }
  .oss-route-result { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--ink); }
  .oss-route-result div { padding:17px 15px 19px 0; }
  .oss-route-result div + div { padding-left:15px; border-left:1px solid var(--ink); }
  .oss-route-result span { display:block; color:var(--muted); font:500 8px/1.4 "JetBrains Mono",monospace;
    letter-spacing:.08em; text-transform:uppercase; }
  .oss-route-result strong { display:block; margin-top:8px; font:500 18px/1.15 "Newsreader",Georgia,serif; }
  .oss-route-result div:first-child { box-shadow:inset 0 4px 0 var(--sky); }
  .oss-route-result div:last-child { box-shadow:inset 0 4px 0 var(--red); }

  .site-footer { background:var(--ink); color:var(--cream); }
  .footer-shell { width:min(calc(100% - 13vw),1240px); margin:0 auto; padding:34px 0;
    display:flex; align-items:center; justify-content:space-between; gap:24px; }
  .footer-brand { color:inherit; text-decoration:none; font:600 11px/1 "General Sans",sans-serif; letter-spacing:.3em; }
  .footer-brand i { display:inline-block; width:6px; height:6px; margin-right:4px; border-radius:50%; }
  .footer-shell p { color:rgba(255,253,247,.6); font:400 11px/1.5 "JetBrains Mono",monospace; letter-spacing:.06em; }
  .footer-context { display:flex; align-items:center; gap:26px; }
  .footer-links { display:flex; flex-wrap:wrap; gap:16px; }
  .footer-links a { color:rgba(255,253,247,.72); font:500 9px/1.4 "JetBrains Mono",monospace; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
  .footer-links a:hover, .footer-links a:focus-visible { color:var(--cream); text-decoration:underline; text-underline-offset:4px; }

  @media (max-width: 720px) {
    html, body { height:auto; overflow:auto; }
    .hero { display:flex; flex-direction:column; min-height:100svh; }
    .mark { position:static; order:0; padding:22px 6vw 4px; }
    svg.art { position:static; order:1; width:100%; height:40svh; flex:none; }
    .type { position:static; order:2; left:auto; right:auto; bottom:auto; max-width:none;
      padding:24px 6vw 8px; }
    .motion-toggle { position:static; order:3; align-self:flex-start; margin:10px 6vw 30px; }
    h1 { font-size:clamp(32px,10.5vw,42px); }
    .lede { font-size:15.5px; max-width:none; margin-top:18px; }
    .actions { gap:18px; margin-top:26px; }
    .btn { min-height:46px; padding:0 22px; font-size:13.5px; }
    .lk { font-size:13.5px; }
    .proof { font-size:11.5px; }
    .proof .yc { display:inline-flex; margin:8px 0 0; }
    .proof .oss { display:block; margin:8px 0 0; }
    .flow { display:none; }
    .mark .lab { display:none; }
    .motion-toggle { right:auto; left:6vw; bottom:2.4vh; }
    .research-shell { width:88vw; padding:78px 0 90px; }
    .research-intro { grid-template-columns:1fr; gap:24px; padding:28px 0 46px; }
    .research-intro h2 { font-size:clamp(40px,13vw,58px); }
    .research-intro p { font-size:17px; }
    .research-feature { grid-template-columns:1fr; }
    .research-feature--oss { margin-top:58px; }
    .research-copy { padding:34px 0 42px; }
    .research-copy h3 { font-size:38px; }
    .research-copy > p { font-size:15.5px; }
    .research-visual { padding:38px 0 40px; border-top:1px solid var(--ink); border-left:0; }
    .research-numbers { gap:10px; }
    .research-number strong { font-size:29px; }
    .research-number--range strong { font-size:21px; }
    .research-note { margin-top:22px; font-size:10.5px; }
    .oss-route-row { grid-template-columns:28px 1fr; gap:7px 12px; padding:10px 0; }
    .oss-route-row small { grid-column:2; text-align:left; }
    .footer-shell { width:88vw; align-items:flex-start; flex-direction:column; }
    .footer-context { align-items:flex-start; flex-direction:column; gap:15px; }
  }

/* Original poster inline styles, moved here for the homepage CSP. */
.poster-style-1 { --ox:852px; --oy:308px; --dur:11s }
.poster-style-2 { --ox:957px; --oy:434px; --dur:14s }
.poster-style-3 { --ox:822px; --oy:546px; --dur:17s }
.poster-style-4 { background:var(--sky) }
.poster-style-5 { background:var(--orange) }
.poster-style-6 { background:var(--red) }
.poster-style-7 { vertical-align:-2px }
.poster-style-8 { vertical-align:-1px;margin:0 1px 0 6px }
