:root{
    --paper:#f6f3ec;
    --ink:#11182a;
    --muted:#7d8189;
    --rule:#bfc2c8;
    --accent:#d14f54;
    --blue:#5f6f8a;
    --light:#e7e6e1;
    --max:1440px;
    --serif: Georgia, "Times New Roman", serif;
    --sans: Arial, Helvetica, sans-serif;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;text-decoration:none}
  .page{
    width:min(calc(100% - 56px), var(--max));
    margin:0 auto;
  }
  header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:28px 0 26px;
    border-bottom:1px solid var(--rule);
  }
  .brand{
    font:700 31px/1 var(--serif);
    letter-spacing:-.04em;
  }
  nav{
    display:flex;
    align-items:center;
    gap:42px;
    font-size:15px;
  }
  .search{
    width:22px;height:22px;border:2px solid var(--ink);
    border-radius:50%; position:relative; display:inline-block;
  }
  .search:after{
    content:""; position:absolute; width:9px;height:2px;
    background:var(--ink); right:-6px; bottom:0; transform:rotate(45deg);
    transform-origin:left center;
  }

  .hero{
    display:grid;
    grid-template-columns:minmax(0,2.2fr) minmax(270px,.85fr);
    gap:74px;
    padding:72px 0 64px;
  }
  .crumb,.eyebrow,.section-kicker,.section-aside{
    font-size:11px;
    line-height:1.35;
    font-weight:700;
    letter-spacing:.28em;
    text-transform:uppercase;
  }
  .crumb{color:#777d88;margin-bottom:30px}
  .hero h1{
    margin:0;
    font:400 clamp(78px,8.5vw,142px)/.84 var(--serif);
    letter-spacing:-.055em;
  }
  .hero .dek{
    margin:20px 0 20px;
    max-width:780px;
    font:400 clamp(32px,3vw,52px)/1.05 var(--serif);
    letter-spacing:-.025em;
  }
  .hero .intro{
    max-width:730px;
    margin:24px 0 0;
    color:#7d8189;
    font-size:21px;
    line-height:1.45;
  }
  .hero-aside{
    border-left:1px solid var(--rule);
    padding-left:68px;
    padding-top:34px;
  }
  .mini-rule{width:34px;border-top:1px solid var(--rule);margin:24px 0 28px}
  .aside-quote{
    font:400 30px/1.22 var(--serif);
    letter-spacing:-.02em;
    margin:0 0 40px;
  }
  .aside-list{
    display:grid;
    gap:7px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.20em;
    color:#7d8189;
    text-transform:uppercase;
  }

  .section{
    border-top:1px solid var(--rule);
    padding:28px 0 0;
    margin-top:0;
  }
  .section-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:24px;
    margin-bottom:34px;
  }
  .section-kicker{display:flex;gap:18px;align-items:center}
  .section-kicker .num{color:#8a8f98}
  .section-aside{color:#7d8189}

  .sitemap{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:26px;
    padding:0 0 54px;
  }
  .map-col{min-width:0}
  .map-track{
    display:flex;align-items:center;height:18px;margin-bottom:14px;
  }
  .dot{
    width:12px;height:12px;border-radius:50%;background:var(--blue);flex:0 0 auto
  }
  .map-col:first-child .dot{background:var(--accent)}
  .line{height:1px;background:var(--rule);flex:1;margin-left:12px}
  .map-col:last-child .line{display:none}
  .map-title{
    font:400 18px/1.2 var(--serif);
    margin-bottom:14px;
  }
  .map-list{
    color:#7d8189;
    font-size:13px;
    line-height:1.55;
  }

  .anatomy{
    display:grid;
    grid-template-columns:repeat(8,1fr);
    gap:26px;
    padding:0 0 58px;
  }
  .step .stepno{
    font-size:10px;font-weight:700;letter-spacing:.18em;color:#8a8f98;margin-bottom:10px
  }
  .step .tick{width:18px;border-top:1px solid var(--rule);margin-bottom:14px}
  .step h3{
    margin:0 0 12px;
    font:400 17px/1.14 var(--serif);
  }
  .step p{
    margin:0;color:#7d8189;font-size:12px;line-height:1.45
  }

  .primitives{
    display:grid;
    grid-template-columns:1.15fr 1.2fr 1.2fr 1.35fr 1.45fr 1.35fr 1.1fr;
    padding:0 0 44px;
  }
  .primitive{
    padding:0 22px;
    min-height:182px;
    border-left:1px solid var(--rule);
  }
  .primitive:first-child{border-left:0;padding-left:0}
  .primitive:last-child{padding-right:0}
  .primitive h3{
    font:400 17px/1.2 var(--serif);
    margin:0 0 18px;
  }
  .rule-list{border-top:1px solid var(--rule)}
  .rule-row{
    display:grid;grid-template-columns:26px 1fr;
    padding:9px 0;border-bottom:1px solid var(--rule);
    font-size:11px;color:#737986;
  }
  .rule-row span:first-child{color:#9aa0a8}
  .metadata{
    font-size:9px;line-height:1.55;text-transform:uppercase;letter-spacing:.13em;color:#7c818b
  }
  .metadata strong{display:block;color:#596173;margin-top:10px}
  .evidence{
    display:grid;grid-template-columns:14px 1fr;gap:10px;align-items:start
  }
  .evidence .b{
    width:12px;height:12px;border-radius:50%;background:#2c86e8;margin-top:3px
  }
  .evidence .label{
    font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#707784;margin-bottom:6px
  }
  .evidence p{font-size:11px;line-height:1.45;color:#7b8089;margin:0}
  .bars{
    height:104px;display:flex;align-items:flex-end;gap:10px;padding:10px 0 0
  }
  .bars span{display:block;width:18px;background:#566b86}
  .bars span:nth-child(1){height:28px}
  .bars span:nth-child(2){height:46px}
  .bars span:nth-child(3){height:58px}
  .bars span:nth-child(4){height:68px}
  .bars span:nth-child(5){height:82px;background:#e4e4e2}
  .caption{font-size:9px;line-height:1.4;color:#8a8f97;margin-top:6px}
  table{width:100%;border-collapse:collapse;font-size:9px;color:#6f7580}
  th,td{padding:7px 2px;border-bottom:1px solid #d7d6d1;text-align:left}
  th{text-transform:uppercase;font-size:8px;letter-spacing:.11em}
  .source{
    display:grid;grid-template-columns:18px 1fr;gap:8px;font-size:11px;line-height:1.5;color:#6f7580
  }
  .source .index{font-family:var(--serif);font-size:16px;color:var(--ink)}
  .source em{font-family:var(--serif);color:#414854}
  .source-link{
    margin-top:14px;color:var(--accent);font-size:10px;padding-bottom:4px;
    border-bottom:1px solid var(--accent);display:inline-block
  }
  .annotation{
    border-left:1px solid var(--rule);padding-left:14px;
    font-size:11px;line-height:1.48;color:#777c86
  }

  footer{
    border-top:1px solid var(--rule);
    display:grid;
    grid-template-columns:1.4fr 1fr 1.2fr;
    align-items:end;
    gap:30px;
    padding:22px 0 30px;
    color:#7b8089;
  }
  .footer-brand .brand{font-size:26px;color:var(--ink)}
  .footer-brand .tag{font:400 13px/1.3 var(--serif);margin-top:3px}
  .footer-mid{
    display:flex;justify-content:center;gap:34px;font-size:11px
  }
  .footer-right{text-align:right;font-size:10px;letter-spacing:.08em}

  @media (max-width:1100px){
    .hero{grid-template-columns:1fr}
    .hero-aside{border-left:0;border-top:1px solid var(--rule);padding:28px 0 0}
    .sitemap{grid-template-columns:repeat(4,1fr)}
    .anatomy{grid-template-columns:repeat(4,1fr)}
    .primitives{grid-template-columns:repeat(3,1fr);row-gap:30px}
    .primitive:nth-child(4){border-left:0;padding-left:0}
  }
  @media (max-width:760px){
    .page{width:min(calc(100% - 32px), var(--max))}
    header{padding:22px 0}
    nav a:not(:last-child){display:none}
    .hero{padding:48px 0 44px;gap:40px}
    .hero h1{font-size:clamp(64px,20vw,96px)}
    .hero .dek{font-size:34px}
    .hero .intro{font-size:18px}
    .sitemap,.anatomy{grid-template-columns:repeat(2,1fr)}
    .primitives{grid-template-columns:1fr}
    .primitive,.primitive:nth-child(4){border-left:0;border-top:1px solid var(--rule);padding:20px 0}
    .section-head{align-items:flex-start;flex-direction:column}
    footer{grid-template-columns:1fr;align-items:start}
    .footer-mid{justify-content:flex-start;flex-wrap:wrap}
    .footer-right{text-align:left}
  }
/* Forstand site extensions */
nav .cta{color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:3px}
nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:.25em}
.page-hero{
  display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.85fr);
  gap:74px;padding:72px 0 64px;border-bottom:1px solid var(--rule)
}
.page-hero h1{
  margin:0;font:400 clamp(64px,7vw,110px)/.86 var(--serif);
  letter-spacing:-.055em
}
.page-hero .dek{
  margin:22px 0 0;max-width:860px;
  font:400 clamp(29px,2.9vw,48px)/1.08 var(--serif);
  letter-spacing:-.026em
}
.page-aside{border-left:1px solid var(--rule);padding-left:54px;padding-top:28px}
.page-aside dl{margin:0}
.page-aside dt,.article-rail dt,.meta-label{
  font-size:9px;font-weight:700;letter-spacing:.18em;
  color:var(--muted);text-transform:uppercase
}
.page-aside dt{margin:18px 0 5px}.page-aside dt:first-child{margin-top:0}
.page-aside dd{margin:0;font:400 18px/1.3 var(--serif)}
.work-list{border-top:1px solid var(--ink);margin-bottom:58px}
.work-item{
  display:grid;grid-template-columns:150px minmax(0,1fr) 160px;
  gap:28px;padding:24px 0 26px;border-bottom:1px solid var(--rule)
}
.work-meta,.work-state{
  font-size:11px;line-height:1.55;text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted)
}
.work-state{text-align:right}
.work-title{margin:-3px 0 7px;font:400 29px/1.12 var(--serif);letter-spacing:-.022em}
.work-deck{margin:0;max-width:760px;color:#62666f;font-size:15px;line-height:1.5}
.split{
  display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.7fr);
  gap:72px;padding:0 0 58px
}
.split h2{margin:0 0 18px;font:400 34px/1.1 var(--serif);letter-spacing:-.024em}
.split p{margin:0;max-width:760px;color:#62666f;font-size:17px;line-height:1.55}
.split p+p{margin-top:14px}
.split aside{border-left:1px solid var(--rule);padding-left:36px}
.action-link,.mail-link{
  display:inline-block;margin-top:24px;color:var(--accent);
  border-bottom:1px solid var(--accent);padding-bottom:4px;font-size:14px
}
.meta-pair{display:grid;grid-template-columns:105px 1fr;gap:14px;margin-bottom:16px}
.meta-pair div:last-child{font-size:12px;line-height:1.4}
.principles{display:grid;grid-template-columns:repeat(3,1fr);padding:0 0 58px}
.principle{border-left:1px solid var(--rule);padding:0 28px}
.principle:first-child{border-left:0;padding-left:0}
.principle h3{font:400 20px/1.15 var(--serif);margin:0 0 10px}
.principle p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.article-grid{
  display:grid;grid-template-columns:210px minmax(0,760px) 1fr;
  gap:54px;padding:48px 0 76px
}
.article-rail{font-size:11px;line-height:1.45;color:var(--muted)}
.article-rail dl{margin:0}.article-rail dt{margin-top:18px}.article-rail dt:first-child{margin-top:0}
.article-rail dd{margin:4px 0 0;color:var(--ink)}
.article-body{max-width:760px}.article-body>:first-child{margin-top:0}
.article-body h2{margin:46px 0 13px;font:400 27px/1.12 var(--serif);letter-spacing:-.02em}
.article-body h3{margin:32px 0 9px;font:400 19px/1.2 var(--serif)}
.article-body p{margin:12px 0;color:#333946;font-size:16px;line-height:1.65}
.article-body ul,.article-body ol{padding-left:1.25rem;color:#333946;line-height:1.6}
.article-body li+li{margin-top:.4rem}
.status-table{width:100%;border-collapse:collapse;margin:24px 0 32px;font-size:13px}
.status-table th,.status-table td{border-top:1px solid var(--rule);text-align:left;vertical-align:top;padding:10px 10px 10px 0}
.status-table th{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.status-table tr:last-child td{border-bottom:1px solid var(--rule)}
.state{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.request-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  margin:34px 0 42px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)
}
.request-grid div{padding:22px 26px 24px;border-left:1px solid var(--rule)}
.request-grid div:first-child{border-left:0;padding-left:0}
.request-grid strong{display:block;margin-bottom:8px;font:400 19px/1.2 var(--serif)}
.request-grid span{color:var(--muted);font-size:13px;line-height:1.45}
@media(max-width:1100px){
  .page-hero{grid-template-columns:1fr}
  .page-aside{border-left:0;border-top:1px solid var(--rule);padding:28px 0 0}
  .article-grid{grid-template-columns:170px minmax(0,1fr);gap:36px}
}
@media(max-width:760px){
  nav{gap:18px;font-size:13px}
  nav a:not(.cta):not([aria-current="page"]){display:none}
  .page-hero{padding:48px 0 44px;gap:40px}
  .page-hero h1{font-size:clamp(58px,18vw,90px)}
  .page-hero .dek{font-size:32px}
  .work-item{grid-template-columns:1fr auto}.work-main{grid-column:1/3;grid-row:2}
  .split{grid-template-columns:1fr;gap:34px}
  .split aside{border-left:0;border-top:1px solid var(--rule);padding:26px 0 0}
  .principles{grid-template-columns:1fr}
  .principle,.principle:first-child{border-left:0;border-top:1px solid var(--rule);padding:20px 0}
  .article-grid{grid-template-columns:1fr;padding:34px 0 60px}
  .article-rail{border-bottom:1px solid var(--rule);padding-bottom:24px}
  .request-grid{grid-template-columns:1fr}
  .request-grid div,.request-grid div:first-child{border-left:0;border-top:1px solid var(--rule);padding:18px 0}
  .request-grid div:first-child{border-top:0}
}

@media(max-width:760px){nav a[aria-current="page"],nav .cta{display:inline-block}}


/* v0.4 — articles + editorial motto */
.motto{
  margin-top:30px;
  font:400 20px/1.25 var(--serif);
  color:var(--ink);
}
.motto::before{
  content:"";
  display:block;
  width:34px;
  border-top:1px solid var(--rule);
  margin-bottom:14px;
}
.placeholder{
  min-height:70vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:72px 0;
}
.placeholder h1{
  margin:18px 0 0;
  font:700 clamp(72px,9vw,150px)/.9 var(--sans);
  letter-spacing:-.04em;
}
.placeholder .dek{
  margin:18px 0 0;
  font:400 clamp(28px,3vw,48px)/1.08 var(--serif);
  letter-spacing:-.025em;
  color:var(--muted);
}
.article-list{
  border-top:1px solid var(--ink);
  margin-bottom:58px;
}
.article-list-item{
  display:grid;
  grid-template-columns:150px minmax(0,1fr) 150px;
  gap:28px;
  padding:25px 0 28px;
  border-bottom:1px solid var(--rule);
}
.article-list-title{
  margin:-4px 0 8px;
  font:400 30px/1.1 var(--serif);
  letter-spacing:-.025em;
}
.article-list-title a:hover{
  text-decoration-thickness:1px;
}
.article-list-deck{
  margin:0;
  max-width:760px;
  color:#62666f;
  font-size:15px;
  line-height:1.52;
}
.article-list-meta,
.article-list-kind{
  font-size:11px;
  line-height:1.55;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--muted);
}
.article-list-kind{text-align:right}
.article-title{
  margin:0;
  max-width:980px;
  font:400 clamp(54px,6.2vw,100px)/.92 var(--serif);
  letter-spacing:-.048em;
}
.article-lead{
  margin:26px 0 0;
  max-width:850px;
  font:400 clamp(25px,2.6vw,40px)/1.16 var(--serif);
  letter-spacing:-.022em;
}
.article-note{
  margin:28px 0 0;
  max-width:760px;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
.article-body .mechanism{
  margin:28px 0;
  padding:18px 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  font:400 20px/1.45 var(--serif);
  text-align:center;
}
.article-body .equation{
  margin:28px 0;
  padding:20px 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  font:400 18px/1.45 var(--serif);
  text-align:center;
}
.article-body .question-list{
  list-style:none;
  padding-left:0;
  margin:18px 0 30px;
}
.article-body .question-list li{
  border-top:1px solid var(--rule);
  padding:10px 0;
  margin:0;
  color:#333946;
}
.article-body .question-list li:last-child{
  border-bottom:1px solid var(--rule);
}
.source-list{
  margin:20px 0 0;
  padding:0;
  list-style:none;
}
.source-list li{
  display:grid;
  grid-template-columns:24px 1fr;
  gap:12px;
  padding:10px 0;
  border-top:1px solid var(--rule);
  color:#4c5260;
  font-size:13px;
  line-height:1.5;
}
.source-list li:last-child{border-bottom:1px solid var(--rule)}
.source-list .n{
  font-family:var(--serif);
  color:var(--ink);
}
.draft-flag{
  display:inline-block;
  color:var(--accent);
  font-size:10px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  border-bottom:1px solid var(--accent);
  padding-bottom:3px;
}
@media(max-width:760px){
  .article-list-item{grid-template-columns:1fr auto}
  .article-list-main{grid-column:1/3;grid-row:2}
  .article-list-kind{text-align:right}
}
