:root { --shell:#16161b; --panel:#1b1b21; --ink:#ece8e1; --ink-soft:#a9a29a; --ink-dim:#949089; --line:#ffffff1c; --mono:ui-monospace,"Cascadia Mono","SF Mono",Consolas,monospace; --sans:ui-sans-serif,system-ui,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--shell); color:var(--ink); font-family:var(--sans); line-height:1.75; }
a { color:var(--ink); text-underline-offset:5px; }
a:hover { color:#fff; }
button,a,summary { outline-offset:5px; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:2px solid var(--ink); }
.masthead,.page-footer { display:flex; align-items:center; gap:24px; padding:22px max(24px,calc((100vw - 1280px)/2)); border-bottom:1px solid var(--line); font:11px var(--mono); letter-spacing:.08em; }
.masthead span { flex:1; color:var(--ink-soft); }
.wordmark { font-size:15px; letter-spacing:.2em; text-decoration:none; }
main { max-width:1280px; margin:auto; padding:0 24px; }
.opening { padding:86px 0 54px; max-width:890px; }
.eyebrow { font:11px var(--mono); letter-spacing:.12em; color:var(--ink-soft); margin:0 0 22px; }
h1 { font-size:clamp(42px,6.5vw,84px); line-height:1.06; font-weight:450; letter-spacing:-.05em; margin:0 0 30px; }
.lede { font-size:clamp(16px,2vw,21px); color:var(--ink-soft); max-width:67ch; }
.actions { display:flex; gap:28px; align-items:center; flex-wrap:wrap; margin:32px 0 20px; }
.primary-link { background:var(--ink); color:var(--shell); padding:12px 18px; text-decoration:none; font-size:14px; }
.primary-link:hover { color:var(--shell); background:white; }
.primary-link span { margin-left:20px; }
.boundary { font:11px var(--mono); color:var(--ink-dim); line-height:1.8; }
.hero-frame { margin:0 0 100px; border:1px solid var(--line); background:var(--panel); }
.hero-frame img { width:100%; height:auto; display:block; }
figcaption { display:flex; justify-content:space-between; gap:12px; padding:14px 20px; font:10px var(--mono); letter-spacing:.08em; }
figcaption span { color:var(--ink-soft); }
.section-heading { margin-bottom:36px; }
h2 { font-size:clamp(27px,4vw,43px); font-weight:450; letter-spacing:-.03em; line-height:1.2; margin:0; }
.movement-layout { display:grid; grid-template-columns:290px minmax(0,1fr); gap:56px; border-top:1px solid var(--line); padding-top:24px; }
.movement-nav { display:flex; flex-direction:column; align-items:stretch; }
.movement-nav button { color:var(--ink-soft); background:none; border:0; border-bottom:1px solid var(--line); text-align:left; padding:21px 0; cursor:pointer; font:13px var(--sans); }
.movement-nav button span { font:11px var(--mono); padding-right:15px; color:var(--ink-dim); }
.movement-nav button.selected { color:var(--ink); border-bottom-color:var(--ink-soft); }
.movement-nav button.selected span { color:var(--ink); }
.movement-panels article { min-height:370px; padding:18px 0; }
.movement-panels article[hidden] { display:none; }
h3 { font-size:26px; line-height:1.3; font-weight:450; margin:0 0 20px; letter-spacing:-.02em; }
.movement-panels p,.scope p { color:var(--ink-soft); max-width:76ch; font-size:15px; }
.movement-panels a { font-size:13px; }
.connection { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:32px 0; padding:22px 0; border-block:1px solid var(--line); }
.connection span { padding:8px 12px; border:1px solid var(--line); font:11px var(--mono); }
.connection i { font:10px var(--mono); font-style:normal; padding:0 8px; border-bottom:1px solid; }
.connection .network { color:#35e0e8; }
.connection .storage { color:#a78bfa; }
.connection .control { color:#edb200; }
.connection .orchestration { color:#00c758; }
.connection .work { color:#fe6e00; }
details { border-top:1px solid var(--line); padding:18px 0; margin-bottom:16px; }
summary { cursor:pointer; font:12px var(--mono); color:var(--ink-soft); }
.movement-image { width:100%; height:auto; border:1px solid var(--line); margin:16px 0; }
.scope { padding:80px 0; border-top:1px solid var(--line); margin-top:75px; }
.scope-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; margin:36px 0; }
.scope-grid h3 { font-size:20px; }
.page-footer { border-top:1px solid var(--line); border-bottom:0; flex-wrap:wrap; padding-block:28px; }
.page-footer span { flex:1; color:var(--ink-soft); }
@media(max-width:800px) { .masthead { flex-wrap:wrap; gap:15px; }.masthead span { order:3; flex-basis:100%; }.opening { padding-top:50px; }.movement-layout { grid-template-columns:1fr; gap:24px; }.movement-nav { flex-direction:row; flex-wrap:wrap; gap:0 20px; }.movement-nav button { flex:1 1 220px; }.hero-frame { margin-bottom:60px; }figcaption { flex-direction:column; }.scope-grid { grid-template-columns:1fr; gap:20px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

body { font-size: 18px; }
p { line-height: 1.75; }
.masthead, .page-footer { font-size: 16px; line-height: 1.6; }
.wordmark { font-size: 16px; }
.masthead span, .page-footer span { font-size: 14px; }
.eyebrow { font-size: 14px; line-height: 1.6; }
.lede, .boundary { font-size: 18px; line-height: 1.75; max-width: 70ch; }
.primary-link, .actions a { font-size: 18px; line-height: 1.6; }
.origin-story { padding: 40px 0 55px; border-top: 1px solid var(--line); }
.origin-story p { max-width: 70ch; font-size: 18px; color: var(--ink-soft); margin: 24px 0; }
.origin-story a, .movement-panels a { font-size: 16px; line-height: 1.7; }
.movement-layout { grid-template-columns: 330px minmax(0, 1fr); gap: 40px; }
.movement-nav button { font-size: 18px; line-height: 1.5; }
.movement-nav button span { font-size: 14px; }
.movement-panels p, .scope p { font-size: 18px; line-height: 1.75; max-width: 70ch; }
summary { font-size: 16px; line-height: 1.7; }
figcaption { font-size: 14px; line-height: 1.7; }
figcaption a { font-size: 16px; }
.connection { gap: 15px; }
.connection span, .connection i { font-size: 16px; line-height: 1.6; }
.movement-links { display: flex; flex-wrap: wrap; gap: 16px 24px; }
.masthead { flex-wrap: wrap; }
.project-navigation { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.project-navigation a { font-size: 16px; line-height: 1.6; }
@media(max-width:1000px) {
  .movement-layout { grid-template-columns: 1fr; gap: 24px; }
  .movement-nav { flex-direction: row; flex-wrap: wrap; gap: 0 20px; }
  .movement-nav button { flex: 1 1 250px; }
}

/* Avoid single words stranded on their own line. */
p, li, dd, figcaption { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }
