:root {
  --bg: #f7f8fa;
  --band: #edf1f6;
  --ink: #193c60;
  --muted: #536477;
  --soft: #536477;
  --line: #d4dee8;
  --accent: #397cac;
  --accent-ink: #24618e;
  --accent-tint: #e2edf8;
  --wrap: 1280px;
}
* { box-sizing: border-box; min-width: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; color: var(--ink); background: var(--bg); font: 16px/1.65 'DM Sans', sans-serif; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, p, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--accent-ink); text-decoration-thickness: 1px; text-underline-offset: 5px; }
a:hover { text-decoration: underline; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; }
::selection { background: #bbdef5; color: var(--ink); }
.wrap { max-width: var(--wrap); margin: auto; padding: 0 48px; }
h1, h2 { font-family: 'DM Sans', sans-serif; font-weight: 500; letter-spacing: -.055em; }
h1 { font-size: clamp(44px, 4.8vw, 70px); line-height: 1.05; }
h2 { font-size: clamp(36px, 4vw, 54px); line-height: 1.12; }
h3 { font-size: 27px; line-height: 1.2; font-weight: 500; letter-spacing: -.035em; }
h4 { font-size: 25px; line-height: 1.25; font-weight: 500; letter-spacing: -.03em; }
.label { font-size: 12px; line-height: 1.5; letter-spacing: .09em; font-weight: 600; text-transform: uppercase; color: var(--soft); }
.muted { color: var(--muted); }
.skip { position: absolute; left: -9999px; top: 12px; z-index: 30; padding: 10px 20px; background: white; }
.skip:focus { left: 16px; }
.nav { position: sticky; top: 0; z-index: 20; background: rgba(247,248,250,.96); border-bottom: 1px solid var(--line); }
.nav .wrap { height: 86px; display: flex; align-items: center; gap: 36px; }
.brand { font-size: 30px; font-weight: 600; letter-spacing: -.065em; color: var(--ink); text-decoration: none; }
.brand i, .who b i { font-style: normal; color: #5b8eb3; }
.brand:hover { text-decoration: none; }
.nav-links { display: flex; gap: 26px; margin-left: auto; }
.nav-links a, .nav-util { font-size: 14px; font-weight: 500; color: var(--ink); text-decoration: none; }
.nav-links a { padding: 10px 0; }
.nav-links a:hover { text-decoration: underline; }
.nav-util { padding: 10px 15px; border: 1px solid var(--line); border-radius: 4px; }
.nav-util::after { content: ' ↗'; margin-left: 8px; }
.hero { padding: 64px 0 100px; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 60px; align-items: center; }
.hero-copy { padding: 16px 0 28px; }
.hero-copy h1::before { content: ''; display: block; width: 44px; height: 5px; margin-bottom: 32px; background: #8bbddd; }
.hero-copy p { margin-top: 26px; }
.lede { font-size: 17px; line-height: 1.7; max-width: 460px; color: var(--muted); }
.hero-util { font-size: 12px; color: var(--soft); max-width: 390px; }
.hero-util a { white-space: nowrap; }
.hero-art { position: relative; align-self: stretch; min-height: 570px; }
.hero-art::before { content: ''; position: absolute; inset: 25px -22px -22px 25px; border: 1px solid #b2c8da; border-radius: 160px 8px 8px 8px; }
.hero-art img { position: relative; width: 100%; height: 100%; object-fit: cover; object-position: 58% center; border-radius: 160px 8px 8px 8px; }
.relation { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; margin-top: 92px; padding: 32px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.who { display: grid; grid-template-rows: 32px 1fr auto; gap: 18px; }
.who + .who { padding-left: 48px; border-left: 1px solid var(--line); }
.who > b { display: block; font-size: 30px; line-height: 1; letter-spacing: -.065em; align-self: center; }
.who .cl-logo { width: 176px; align-self: center; }
.who > span { display: block; color: var(--muted); font-size: 14px; max-width: 420px; }
.who ul { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.who li { font-size: 14px; font-weight: 500; color: var(--muted); }
.who li::before { content: ''; display: inline-block; width: 4px; height: 4px; background: #7099b7; border-radius: 50%; margin-right: 6px; vertical-align: middle; }
.proof { display: grid; grid-template-columns: repeat(6,1fr); margin: 52px 0 60px; }
.proof > div { padding-left: 28px; border-left: 1px solid var(--line); }
.proof > div:first-child { padding-left: 0; border: 0; }
.proof .n { display: block; font-size: clamp(38px,4vw,56px); font-weight: 500; letter-spacing: -.06em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.proof .label { display: block; margin-top: 12px; }
.section { padding: 100px 0; border-top: 1px solid var(--line); }
.section.band { background: var(--band); }
.section-head { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-bottom: 48px; align-items: start; }
.section-head p { color: var(--muted); font-size: 15px; line-height: 1.85; }
.sys { border: 1px solid #c5d4e2; border-radius: 8px; background: #f7f9fc; overflow: hidden; }
.sys-head { padding: 19px 30px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 10px; }
.sys-head::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #5689b0; }
.sys-body { padding: 32px; }
.sys-diagram { display: grid; grid-template-columns: 1fr 36px 1.1fr 36px .95fr; align-items: center; }
.domains { display: grid; gap: 12px; }
.domain { padding: 20px; background: #ffffff; border: 1px solid var(--line); border-radius: 5px; }
.domain h3 { font-size: 14px; line-height: 1.4; font-weight: 600; letter-spacing: -.015em; margin-bottom: 9px; }
.domain li { font-size: 12px; color: var(--muted); line-height: 1.7; }
.core { padding: 28px; color: #f2f7fc; background: var(--ink); border-radius: 8px; }
.core h3 { font-size: 27px; line-height: 1.15; margin-bottom: 22px; }
.core li { font-size: 13px; line-height: 1.65; padding: 13px 0; border-top: 1px solid #41617f; color: #d8e5f1; }
.core li:last-child { padding-bottom: 0; }
.outcome { padding: 24px; border-radius: 6px; background: #dfedf8; border: 1px solid #c0d5e7; }
.outcome::before { content: '✓'; display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #8cb0cc; border-radius: 50%; margin-bottom: 22px; font-size: 19px; }
.outcome h3 { font-size: 24px; margin-bottom: 24px; }
.card-ex { padding-top: 18px; border-top: 1px solid #b1cadf; }
.card-ex b { display: block; font-size: 12px; }
.card-ex small { display: block; margin-top: 8px; font-size: 12px; color: var(--muted); }
.links { display: flex; justify-content: center; align-self: stretch; align-items: center; }
.links svg { stroke: #89a6bd; fill: none; stroke-width: 1; }
.links .h { width: 36px; height: 100%; min-height: 160px; }
.links .v { display: none; }
.links .tip { fill: #89a6bd; stroke: none; }
.subhead { margin: 76px 0 30px; max-width: 730px; }
.ai-heading { max-width: none; padding-top: 48px; border-top: 1px solid var(--line); }
.ai-heading > * { max-width: 730px; }
.subhead h3 { font-size: 34px; }
.subhead p { margin-top: 18px; color: var(--muted); }
.outcomes { display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; }
.outcomes > div { padding-top: 24px; border-top: 1px solid #bacbdc; }
.outcomes b { display: block; font-size: 20px; line-height: 1.3; font-weight: 500; letter-spacing: -.025em; margin-top: 12px; }
.outcomes p { font-size: 14px; line-height: 1.8; color: var(--muted); margin-top: 14px; }
.examples { display: grid; gap: 0; }
.example { display: grid; grid-template-columns: 4fr 6fr; gap: 64px; padding: 44px 0; }
.example-copy { max-width: 370px; }
.example-copy h4 { margin-top: 14px; }
.example-copy p { color: var(--muted); font-size: 14px; line-height: 1.85; margin-top: 18px; }
.example-vis { padding: 28px; background: #f9fbfd; border: 1px solid var(--line); border-radius: 6px; align-self: center; }
.chart-head { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; color: var(--muted); margin-bottom: 24px; }
.chart-scroll { overflow-x: auto; }
.chart-inner { min-width: 380px; }
.merge-plot { height: 210px; border-bottom: 1px solid var(--line); background: repeating-linear-gradient(to top, transparent 0,transparent 51px,#dfe7ef 51px,#dfe7ef 52px); }
.merge-bars { display: grid; grid-template-columns: repeat(11,1fr); gap: 10px; height: 100%; align-items: end; padding: 0 4px; }
.merge-bar { height: var(--h); background: #9bbdd7; border-radius: 3px 3px 0 0; transform-origin: bottom; }
.merge-bar:nth-child(n+8) { background: #568db7; }
.merge-bar:last-child { background: var(--ink); }
.merge-labels { display: grid; grid-template-columns: repeat(11,1fr); gap: 10px; padding: 9px 4px 0; font-size: 12px; color: var(--soft); text-align: center; }
.merge-labels b { display: block; font-weight: 500; color: var(--ink); }
.chart-note { margin-top: 16px; font-size: 12px; color: var(--soft); }
.finding .row { display: grid; grid-template-columns: 76px 1fr; gap: 12px; padding: 16px 0; border-top: 1px solid var(--line); }
.finding .row:first-child { border-top: 0; padding-top: 0; }
.finding .row.flag { background: #f4e9d5; border-left: 2px solid #b58944; padding: 16px 12px; margin: 0 -12px; }
.finding b { display: block; font-size: 12px; font-weight: 600; }
.finding small { display: block; margin-top: 5px; font-size: 12px; color: var(--muted); line-height: 1.6; }
.acts { display: flex; flex-wrap: wrap; gap: 6px; }
.acts span { padding: 5px 8px; border: 1px solid var(--line); font-size: 12px; border-radius: 3px; color: var(--muted); }
.acts .yes { border-color: #91b8d6; background: var(--accent-tint); color: var(--ink); }
.loop { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; counter-reset: step; }
.loop > div { position: relative; border-top: 1px solid var(--line); padding-top: 14px; font-size: 12px; color: var(--muted); counter-increment: step; }
.loop > div::before { content: '0' counter(step); float: right; font: italic 22px Georgia,serif; color: var(--soft); }
.loop b { display: block; margin: 12px 0 8px; font-size: 14px; line-height: 1.4; font-weight: 500; color: var(--ink); }
.loop-return { display: flex; align-items: center; gap: 12px; margin-top: 24px; font-size: 12px; color: var(--soft); }
.loop-return i { flex: 1; border-top: 1px dashed #9ab3c8; }
.team-intro { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; align-items: center; }
#team .section-head { display: block; margin: 0; padding-bottom: 30px; }
.team-photo { position: relative; isolation: isolate; }
.founder-mode { display: inline-block; margin-bottom: 24px; padding: 6px 12px; border: 1px solid #b1cadf; border-radius: 4px; color: var(--accent-ink); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.team-photo::before { content: ''; position: absolute; z-index: -1; inset: 14% 0 0; border-radius: 50% 50% 0 0; background: var(--band); }
.team-photo img { width: 100%; }
.team { display: grid; gap: 20px; }
.person { padding-top: 18px; border-top: 1px solid var(--line); }
.person .meta b { display: block; font-size: 22px; font-weight: 500; letter-spacing: -.03em; }
.person .meta > span { display: block; font-size: 12px; color: var(--accent-ink); margin-top: 3px; }
.person .meta p { margin-top: 12px; font-size: 13px; color: var(--muted); }
.contact { display: grid; grid-template-columns: 1.3fr 1fr; margin-top: 74px; background: var(--ink); color: #f2f7fc; border-radius: 8px; overflow: hidden; }
.contact-main { padding: 56px; }
.contact-main h3 { font-size: 38px; max-width: 410px; }
.contact-main .actions { margin-top: 32px; }
.btn { display: inline-block; padding: 13px 20px; border-radius: 4px; background: #bbdef5; color: #193c60; font-size: 13px; font-weight: 600; text-decoration: none; transition: background .2s, transform .2s; }
.btn::after { content: ' ↗'; margin-left: 18px; }
.btn:hover { text-decoration: none; background: #d4eafa; transform: translateY(-2px); }
.contact-side { padding: 56px 40px; background: #244e73; border-left: 1px solid #496c8b; display: flex; flex-direction: column; justify-content: center; }
.contact-side b { font-size: 19px; font-weight: 500; }
.contact-side > span { margin-top: 15px; font-size: 14px; color: #d0dfed; }
.contact-side a { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; font-size: 13px; color: #f2f7fc; text-decoration: none; }
.contact-side a img { width: 126px; }
footer { padding: 32px 0; border-top: 1px solid var(--line); }
footer .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 36px; font-size: 12px; color: var(--muted); }
footer a { text-decoration: none; }
footer .footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 36px; margin-left: auto; }
@media (prefers-reduced-motion: no-preference) {
  .hero-copy, .hero-art { animation: enter .9s both; }
  .hero-art { animation-delay: .12s; }
  .reveal { animation: enter .7s both; }
  .reveal .merge-bar { animation: grow .9s both; }
  .reveal .merge-bar:nth-child(n+8) { animation-delay: .15s; }
  @keyframes enter { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes grow { from { transform: scaleY(.05); } to { transform: scaleY(1); } }
}
@media (max-width: 1050px) {
  .wrap { padding: 0 32px; }
  .nav .wrap { gap: 24px; }
  .nav-links { gap: 20px; }
  .nav-util { display: none; }
  .hero-grid { gap: 40px; }
  .hero-art { min-height: 530px; }
  .proof { grid-template-columns: repeat(3,1fr); row-gap: 28px; }
  .proof > div:nth-child(4) { padding-left: 0; border: 0; }
  .sys-body { padding: 24px; }
  .sys-diagram { grid-template-columns: 1fr; }
  .domains { grid-template-columns: repeat(3,1fr); }
  .links .h { display: none; }
  .links .v { display: block; height: 36px; width: 24px; }
  .core ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
  .outcome { display: grid; grid-template-columns: 40px 1fr 1fr; gap: 20px; align-items: center; }
  .outcome::before, .outcome h3 { margin: 0; }
  .card-ex { border-top: 0; border-left: 1px solid #b1cadf; padding: 0 0 0 20px; }
  .example { gap: 32px; }
  .example-vis { padding: 20px; }
  .contact-main, .contact-side { padding: 36px; }
}
@media (max-width: 719px) {
  html { scroll-padding-top: 96px; }
  .wrap { padding: 0 22px; }
  .nav .wrap { height: 72px; }
  .brand { font-size: 28px; }
  .nav-links { display: none; }
  .example-vis { padding: 20px 14px; }
  .chart-inner { min-width: 0; }
  .merge-bars, .merge-labels { gap: 4px; padding-left: 0; padding-right: 0; }
  .merge-labels { font-size: 10px; }
  .hero { padding: 36px 0 64px; }
  .hero-grid { grid-template-columns: 1fr; gap: 30px; }
  .hero-copy { padding: 0; }
  .hero-copy h1::before { margin-bottom: 24px; }
  .hero-copy p { margin-top: 22px; }
  h1 { font-size: clamp(43px,8.5vw,60px); max-width: 580px; }
  .lede { font-size: 16px; }
  .hero-art { min-height: 0; height: 390px; margin-right: 12px; }
  .hero-art img, .hero-art::before { border-top-left-radius: 110px; }
  .hero-art::before { inset: 14px -12px -12px 14px; }
  .relation { grid-template-columns: 1fr; margin-top: 58px; gap: 28px; }
  .who + .who { padding: 28px 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .proof { grid-template-columns: repeat(2,1fr); margin: 36px 0; }
  .proof > div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }
  .proof > div:nth-child(odd) { padding-left: 0; border: 0; }
  .proof .n { font-size: 39px; }
  .proof .label { font-size: 12px; letter-spacing: .05em; }
  .section { padding: 64px 0; }
  .section-head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 32px; }
  .section-head p { font-size: 14px; }
  .sys-head { padding: 16px 20px; }
  .sys-body { padding: 16px; }
  .domains { grid-template-columns: 1fr; }
  .domain { padding: 18px; }
  .domain ul { columns: 2; column-gap: 16px; }
  .domain li { break-inside: avoid; }
  .core { padding: 24px; }
  .core ul { display: block; }
  .outcome { display: block; padding: 24px; }
  .outcome::before { margin-bottom: 16px; }
  .outcome h3 { margin-bottom: 20px; }
  .card-ex { border-left: 0; border-top: 1px solid #b1cadf; padding: 16px 0 0; }
  .subhead { margin-top: 56px; }
  .subhead h3 { font-size: 29px; }
  .subhead p { font-size: 14px; }
  .outcomes { grid-template-columns: 1fr 1fr; gap: 30px 22px; }
  .outcomes b { font-size: 19px; }
  .outcomes p { font-size: 13px; }
  .example { grid-template-columns: 1fr; gap: 26px; padding: 32px 0; }
  .example-copy { max-width: none; }
  .merge-bars, .merge-labels { gap: 5px; }
  .merge-labels { font-size: 12px; }
  .merge-plot { height: 180px; }
  .finding .row { grid-template-columns: 1fr; gap: 8px; }
  .team-intro { grid-template-columns: 1fr; gap: 24px; }
  #team .section-head { padding-bottom: 28px; }

  .contact { grid-template-columns: 1fr; margin-top: 44px; }
  .contact-main, .contact-side { padding: 30px; }
  .contact-main h3 { font-size: 33px; }
  .contact-side { border-left: 0; border-top: 1px solid #496c8b; }
  footer .wrap { gap: 18px; }
  footer .footer-links { width: 100%; margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .btn { transition: none; } }
