/* Platform story: shared editorial typography, a compact reading rhythm. */
.os-hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); gap:70px; align-items:center; padding:38px 0 52px; }
.os-hero h1 { max-width:20ch; font-size:clamp(46px,4.5vw,65px); line-height:1.06; }
.os-deck { margin-top:22px; color:var(--teal); font:400 25px/1.3 var(--serif); letter-spacing:-.02em; }
.os-hero .lede { max-width:570px; font-size:16px; line-height:1.65; }
.os-hero-points { display:flex; flex-wrap:wrap; gap:9px 19px; list-style:none; padding:0; margin:20px 0 0; color:var(--teal); font-size:11px; line-height:1.5; }
.os-hero-points li { display:flex; align-items:baseline; gap:6px; }
.os-hero-points li::before { content:'✓'; font-size:12px; }
.os-clarifier { max-width:510px; margin-top:16px; font-size:12px; line-height:1.65; color:var(--muted); }
.os-portrait { background:var(--white); border:1px solid var(--hair); padding:22px 27px 20px; }
.os-portrait-top { display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:11px; font-weight:650; }
.os-local { display:flex; align-items:center; gap:6px; color:var(--teal); white-space:nowrap; font-weight:400; }
.os-local i { width:6px; height:6px; border-radius:50%; background:var(--teal); }
.os-machine { width:100%; height:auto; margin:18px 0 6px; }
.machine-shell { fill:var(--paper-deep); stroke:var(--ink); stroke-width:1.5; stroke-linejoin:round; }
.machine-screen { fill:var(--paper); stroke:var(--hair); }
.machine-sheet { fill:var(--white); stroke:var(--hair); }
.machine-rule { fill:none; stroke:var(--hair); stroke-width:1.5; }
.machine-bubble { fill:var(--wash); }
.machine-ink { fill:none; stroke:var(--teal); stroke-width:1.3; }
.machine-check { fill:var(--teal); }
.machine-tick { fill:none; stroke:var(--white); stroke-width:1.2; }
.os-portrait-lines a { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid var(--hair); color:var(--ink); text-decoration:none; font-size:13px; line-height:1.5; }
.os-portrait-lines strong { font-weight:550; }
.os-portrait-lines a > span { color:var(--teal); font-size:16px; }
.os-portrait-lines a:hover, .os-portrait-lines a:focus-visible { color:var(--teal); }
.os-portrait-lines a:focus-visible { outline:2px solid var(--teal); outline-offset:4px; }
.os-portrait figcaption { margin-top:16px; text-align:left; font:italic 17px/1.4 var(--serif); color:var(--teal); }
.os-index { display:flex; flex-wrap:wrap; gap:12px 32px; padding:19px 0; border-block:1px solid var(--hair); }
.os-index a { color:var(--muted); text-decoration:none; font-size:11px; }
.os-index a:hover { color:var(--teal); text-decoration:underline; text-underline-offset:4px; }
.os-chapter { padding:34px 0; scroll-margin-top:24px; }
.os-chapter + .os-chapter { border-top:1px solid var(--hair); }
.os-page h3 { font:400 26px/1.2 var(--serif); letter-spacing:-.025em; }
.os-creators > div > p:not(.eyebrow) { color:var(--muted); font-size:14px; line-height:1.75; }
.os-page p.os-detail { font-size:12px; line-height:1.7; margin-top:12px; }
.os-connection-note { margin-top:18px; font-size:11px; line-height:1.7; color:var(--muted); }
.os-connection-note summary { cursor:pointer; color:var(--teal); }
.os-connection-note p { margin-top:10px; font-size:12px; line-height:1.7; }
.os-evidence-key { display:flex; flex-wrap:wrap; gap:11px 23px; margin-top:21px; font-size:11px; line-height:1.5; }
.os-evidence-key > span { display:flex; align-items:center; gap:7px; }
.os-evidence-key i { width:7px; height:7px; border-radius:50%; flex:none; }
.os-evidence-traced { background:var(--teal); }
.os-evidence-check { background:#b7892e; }
.os-evidence-review { background:#b45b4b; }
.os-performance { scroll-margin-top:24px; padding:0 0 12px; }
.os-performance-layout { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:55px; align-items:center; margin-bottom:25px; }
.os-performance-copy > p:not(.eyebrow) { font-size:14px; line-height:1.7; color:var(--muted); margin-top:13px; max-width:460px; }
.os-performance-copy > p.os-performance-lead { font-size:18px; line-height:1.45; color:var(--ink); }
.os-proof-line { padding:15px 0; margin-top:18px; border-block:1px solid var(--hair); }
.os-proof-line strong { display:block; font:400 24px/1.2 var(--serif); color:var(--teal); }
.os-proof-line span { display:block; font-size:11px; line-height:1.6; color:var(--muted); margin-top:6px; }
.os-methods { border-block:1px solid var(--hair); }
.os-methods summary { padding:15px 0; cursor:pointer; color:var(--teal); font-size:12px; line-height:1.6; }
.os-methods-content { padding-bottom:18px; max-width:960px; }
.os-methods-content p { font-size:12px; line-height:1.8; color:var(--muted); margin:0 0 12px; }
.os-table-scroll { overflow:auto; margin:18px 0; }
.os-table-scroll table { width:100%; border-collapse:collapse; font-size:12px; text-align:left; }
.os-table-scroll caption { text-align:left; color:var(--muted); font-size:11px; line-height:1.6; padding-bottom:10px; }
.os-table-scroll th, .os-table-scroll td { padding:11px 14px 11px 0; border-bottom:1px solid var(--hair); line-height:1.5; vertical-align:top; }
.os-table-scroll th { font-weight:600; }
.os-option-row { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:65px; padding:19px 0; border-top:1px solid var(--hair); scroll-margin-top:24px; }
.os-option-row h3 { font-size:23px; }
.os-option-row p { font-size:13px; line-height:1.7; color:var(--muted); }
.os-source-links { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:14px; }
.os-source-links a { font-size:12px; }
.os-creators { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:65px; padding:28px 0 34px; border-top:1px solid var(--hair); scroll-margin-top:24px; }
.os-creators h3 { font-size:29px; line-height:1.15; margin-top:13px; }
.os-funding { display:inline-block; margin-top:14px; color:var(--teal); font-size:12px; font-weight:600; }
.os-cta-links { display:flex; flex-direction:column; align-items:center; gap:17px; }
@media (max-width:1050px) {
  .os-hero { gap:35px; }
  .os-option-row, .os-creators { column-gap:36px; }
  .os-performance-layout { gap:30px; }
}
@media (max-width:760px) {
  .os-hero, .os-option-row, .os-creators { grid-template-columns:1fr; gap:18px; }
  .os-hero { padding:28px 0 34px; gap:30px; }
  .os-hero h1 { font-size:clamp(42px,7vw,57px); }
  .os-deck { font-size:23px; }
  .os-portrait { max-width:480px; width:100%; }
  .os-index { display:grid; grid-template-columns:1fr 1fr; gap:17px 20px; }
  .os-chapter { padding:37px 0; }
  .os-creators { padding:28px 0; }
  .os-option-row { gap:10px; padding:18px 0; }
  .os-cta-links { align-items:start; }
  .os-performance-layout { grid-template-columns:1fr; gap:26px; }
  .os-performance-copy > p:not(.eyebrow) { max-width:none; }
  .os-table-scroll table { min-width:570px; }
}

/* Three chapters share the same hierarchy as the hero’s three links. */
.os-chapter-title { font:400 clamp(34px,3.2vw,44px)/1.1 var(--serif); letter-spacing:-.035em; margin-top:14px; }
.os-performance-copy > p.os-performance-lead { margin-top:17px; }
.os-hardware { padding-top:14px; }
.os-hardware p { font-size:12px; line-height:1.65; color:var(--muted); margin-top:7px; max-width:460px; }
.os-hardware strong { display:inline-block; min-width:64px; color:var(--ink); font-weight:650; }
.os-section-layout { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); align-items:start; gap:55px; }
.os-section-copy > p:not(.eyebrow) { color:var(--muted); font-size:14px; line-height:1.7; margin-top:13px; max-width:510px; }
.os-section-copy > p.os-section-lead { color:var(--ink); font-size:18px; line-height:1.5; margin-top:18px; }
.os-product-capture { min-width:0; width:100%; max-width:600px; justify-self:center; margin:0; background:var(--paper-deep); border:1px solid var(--hair); border-radius:4px; padding:24px 24px 20px; }
.os-product-link { display:block; cursor:zoom-in; position:relative; overflow:hidden; border:1px solid #303632; border-radius:5px; background:#101010; box-shadow:0 8px 22px #15181c24; }
.os-product-link img { display:block; width:100%; height:auto; }
.os-product-capture figcaption { margin:20px 0 0; text-align:left; }
.os-product-capture figcaption strong { display:block; font:400 20px/1.25 var(--serif); color:var(--ink); }
.os-product-capture figcaption small { display:block; font:11px/1.6 var(--sans); color:var(--muted); margin-top:8px; }
.os-performance-ranges { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:55px; border-top:1px solid var(--hair); margin-bottom:20px; padding-top:18px; }
.os-performance-ranges h3 { font-size:25px; line-height:1.15; }
.os-performance-ranges h3 em { color:var(--teal); font-weight:400; }
.os-rate-platform h4 { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:5px 12px; font:600 12px/1.6 var(--sans); }
.os-rate-platform h4 small { color:var(--muted); font-size:10px; font-weight:400; }
.os-rate-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:10px; }
.os-rate-grid dt { color:var(--muted); font-size:10px; line-height:1.5; }
.os-rate-grid dd { margin:4px 0 0; color:var(--teal); font:400 clamp(20px,2vw,26px)/1.2 var(--serif); white-space:nowrap; }
.os-rate-grid dd small { display:block; color:var(--muted); font:10px/1.6 var(--sans); margin-top:3px; }
.os-rate-grid dd small.os-rate-percent { display:inline; color:inherit; font:inherit; }
.os-rate-note { max-width:360px; margin-top:13px; color:var(--muted); font-size:10px; line-height:1.65; }
.os-data-notes { display:grid; grid-template-columns:1fr 1fr; gap:55px; margin-top:27px; padding-top:23px; border-top:1px solid var(--hair); }
.os-data-notes h3 { font-size:23px; margin-bottom:12px; }
.os-data-notes p { font-size:13px; line-height:1.7; color:var(--muted); }
.os-data-notes p + p { margin-top:12px; }
.os-data-notes article > a { display:inline-block; margin-top:14px; font-size:12px; }
@media (max-width:1050px) { .os-section-layout, .os-data-notes, .os-performance-ranges { gap:35px; } }
@media (max-width:760px) {
  .os-index { grid-template-columns:1fr; gap:14px; }
  .os-section-layout, .os-data-notes, .os-performance-ranges { grid-template-columns:1fr; gap:24px; }
  .os-chapter { padding:28px 0; }
  .os-product-capture { max-width:600px; width:100%; padding:18px 18px 17px; }
  .os-rate-grid { gap:8px; }
  .os-rate-grid dd { font-size:22px; }
}
@media (max-width:360px) {
  .os-rate-grid dd { font-size:18px; }
  .os-rate-grid dt { font-size:9px; }
}
