:root{
  --ink:#14202e; --muted:#5a6675; --line:#e3e7ec; --bg:#ffffff; --alt:#f5f7fa;
  --accent:#1f4e79; --accent-ink:#ffffff; --max:1080px;
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.narrow{max-width:720px}
.site-header{position:sticky;top:0;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);z-index:10;backdrop-filter:saturate(1.2) blur(6px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap}
.wordmark{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.mark{background:var(--accent);color:var(--accent-ink);font-weight:800;letter-spacing:.08em;padding:4px 8px;border-radius:4px;font-size:15px}
.name{font-weight:600;font-size:16px}
nav{display:flex;gap:20px;flex-wrap:wrap}
nav a{color:var(--ink);text-decoration:none;font-size:15px}
nav a:hover{color:var(--accent)}
.nav-cta{font-weight:600;color:var(--accent)!important}
.hero{padding:96px 0 80px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f7f9fc 0%,#fff 100%)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:13px;color:var(--muted);margin:0 0 12px}
h1{font-size:clamp(34px,5.2vw,56px);line-height:1.1;margin:0 0 20px;max-width:16ch;letter-spacing:-.02em}
.lede{font-size:clamp(18px,2.2vw,21px);color:var(--muted);max-width:60ch;margin:0 0 32px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-block;background:var(--accent);color:var(--accent-ink);text-decoration:none;padding:12px 22px;border-radius:6px;font-weight:600;border:2px solid var(--accent)}
.button:hover{filter:brightness(1.1)}
.button-ghost{background:transparent;color:var(--accent)}
.note{margin:28px 0 0;font-size:14px;color:var(--muted)}
.section{padding:80px 0}
.section-alt{background:var(--alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
h2{font-size:clamp(26px,3.4vw,36px);margin:0 0 12px;letter-spacing:-.01em}
.section-lede{color:var(--muted);margin:0 0 36px;max-width:62ch}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.card{border:1px solid var(--line);border-radius:10px;padding:24px;background:#fff}
.card h3{margin:0 0 8px;font-size:19px}
.card p{margin:0;color:var(--muted)}
.capabilities{margin-top:44px}
.capabilities h3{font-size:16px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 12px}
.capabilities ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.capabilities li{border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:15px;background:#fff}
.principles{margin:0;padding-left:22px;display:grid;gap:14px;max-width:780px}
.principles li{padding-left:6px}
.principles strong{color:var(--ink)}
.contact-line{margin-top:24px}
.site-footer{padding:32px 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.footer-inner p{margin:4px 0}
@media (max-width:640px){
  body{font-size:16px}
  .header-inner{padding:10px 0}
  nav{gap:14px}
  .hero{padding:56px 0 48px}
  .section{padding:56px 0}
  .name{font-size:15px}
}

/* ---- v2 additions ---- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-ink);padding:10px 16px;z-index:100;border-radius:0 0 6px 0;font-weight:600}
.skip-link:focus{left:0}
a:focus-visible,.button:focus-visible{outline:3px solid #f2a900;outline-offset:2px}
nav a[aria-current="page"]{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:6px}
h1.wide{max-width:22ch}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.more{font-weight:600;text-decoration:none;white-space:nowrap}
.more:hover{text-decoration:underline}
.card h3 a{color:var(--ink);text-decoration:none}
.card h3 a:hover{color:var(--accent)}
.card .evidence{margin-top:12px;font-size:14px;color:var(--muted)}
.card .evidence strong{color:var(--ink);font-weight:600}
.cards-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}

/* status badges: dark text on light fills for contrast */
.badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:999px;margin:0 0 12px;border:1px solid transparent}
.badge-live{background:#e6f4ea;color:#1b5631;border-color:#b9dfc5}
.badge-internal{background:#e8eef6;color:#1f4e79;border-color:#c5d4e6}
.badge-prototype{background:#fff4de;color:#6e4400;border-color:#f0d9a8}
.badge-research{background:#eef1f5;color:#364353;border-color:#d5dbe3}

/* project detail */
.project{border:1px solid var(--line);border-radius:10px;padding:28px;background:#fff;display:grid;gap:4px}
.project h3{margin:0;font-size:22px}
.project .tagline{margin:0 0 8px;color:var(--muted)}
.facts{display:grid;grid-template-columns:150px 1fr;gap:8px 20px;margin:8px 0 0}
.facts dt{font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:2px}
.facts dd{margin:0}
.stack{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.stack li{border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:14px;background:var(--alt)}
.projects{display:grid;gap:20px}

/* workflow flow: trigger -> steps -> output -> gate */
.flow{border:1px solid var(--line);border-radius:10px;padding:24px;background:#fff}
.flow h3{margin:0 0 4px;font-size:19px}
.flow .tagline{margin:0 0 14px;color:var(--muted);font-size:15px}
.flow dl{display:grid;grid-template-columns:96px 1fr;gap:8px 16px;margin:0}
.flow dt{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);padding-top:4px}
.flow dd{margin:0;font-size:15.5px}
.flow dd.gate{font-weight:600}
.flows{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:20px}

/* member-only teaser placeholders (no payment provider) */
.locked{border:1px dashed #9fb2c8;border-radius:10px;padding:20px 22px;background:repeating-linear-gradient(135deg,#f8fafc 0 10px,#f3f6fa 10px 20px);margin-top:16px}
.locked .lock-label{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#364353;margin:0 0 6px}
.locked .lock-label::before{content:"";width:10px;height:8px;border:2px solid #364353;border-radius:2px;position:relative;top:2px;box-shadow:0 -6px 0 -2px transparent}
.locked h3,.locked h4{margin:0 0 6px;font-size:17px}
.locked p{margin:0;color:var(--muted);font-size:15px}
.locked ul{margin:8px 0 0;padding-left:20px;color:var(--muted);font-size:15px}
.flow .locked,.project .locked{margin-top:14px;padding:12px 16px}
.flow .locked p,.project .locked p{font-size:14px}

.pill-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.pill-list li{border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:15px;background:#fff}
.checklist{padding-left:22px;display:grid;gap:10px;max-width:780px;margin:0}
.callout{border-left:4px solid var(--accent);background:var(--alt);padding:16px 20px;border-radius:0 8px 8px 0;max-width:780px}
.callout p{margin:0}
.footer-inner nav{gap:16px;margin:8px 0}
.footer-inner nav a{font-size:14px;color:var(--muted)}

@media (max-width:640px){
  .facts,.flow dl{grid-template-columns:1fr;gap:2px}
  .facts dd,.flow dd{margin-bottom:10px}
  .flows,.cards-2{grid-template-columns:1fr}
  .project{padding:22px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.cards-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.flows{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
@media (max-width:640px){
  .header-inner{padding:10px 20px}
  nav{gap:6px 14px}
  nav a{font-size:14.5px}
}
.cards-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}
