:root {
  --paper: #f4f2eb;
  --ink: #17211f;
  --forest: #123b34;
  --acid: #d4f13e;
  --rust: #b04027;
  --line: rgba(23, 33, 31, 0.22);
  --muted: #5d6562;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --sans: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 100; background: var(--acid); padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }

.site-header { min-height: 76px; padding: 0 clamp(1.25rem, 4vw, 4.5rem); display: grid; grid-template-columns: 210px 1fr auto; align-items: center; border-bottom: 1px solid var(--ink); position: sticky; top: 0; background: rgba(244,242,235,.96); backdrop-filter: blur(14px); z-index: 20; }
.brand { display: flex; align-items: center; gap: .8rem; width: max-content; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; color: var(--paper); background: var(--forest); font-family: var(--serif); font-weight: 700; font-size: .82rem; letter-spacing: -.06em; }
.brand-mark span { color: var(--acid); margin: 0 .05rem; }
.brand-copy { display: flex; flex-direction: column; gap: .15rem; }
.brand-description { font-size: .68rem; line-height: 1.2; }
.intro .hero-description { margin-top: clamp(1.2rem, 3vw, 2.8rem); }
.brand-name { font-family: var(--serif); font-size: 1.22rem; font-weight: 700; }
.desktop-nav { display: flex; justify-content: center; align-items: center; gap: clamp(.9rem, 1.7vw, 2rem); font-size: .76rem; font-weight: 650; letter-spacing: .015em; }
.desktop-nav a { position: relative; padding: 1.8rem 0; white-space: nowrap; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 1.25rem; height: 2px; background: var(--rust); transition: right .2s ease; }
.desktop-nav a:hover::after, .desktop-nav a.active::after { right: 0; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 1rem; }
.language-switcher { display: flex; align-items: center; gap: .15rem; padding-right: .8rem; border-right: 1px solid var(--line); }
.language-switcher :is(button,a) { min-width: 30px; min-height: 30px; padding: .2rem; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: .67rem; font-weight: 800; letter-spacing: .07em; }
.language-switcher :is(button,a).active { background: var(--forest); color: var(--paper); }
.icon-button, .menu-button { border: 0; background: transparent; cursor: pointer; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.icon-button { display: flex; align-items: center; gap: .5rem; padding: .65rem; }
.icon-button svg, .search-field svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.menu-button { display: none; }
.mobile-nav { position: fixed; z-index: 19; inset: 76px 0 auto; background: var(--forest); color: white; padding: 1.25rem; }
.mobile-nav a { display: block; font-family: var(--serif); font-size: 1.35rem; padding: .7rem 0; border-bottom: 1px solid rgba(255,255,255,.2); }

main { min-height: 60vh; }
.intro { padding: 1.15rem clamp(1.25rem, 4vw, 4.5rem) 3.6rem; border-bottom: 1px solid var(--ink); }
.issue-line { display: flex; justify-content: space-between; color: var(--muted); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; }
.intro h1 { margin: .65rem 0 0; font-family: var(--serif); font-size: clamp(5rem, 15.3vw, 14rem); font-weight: 500; line-height: .86; letter-spacing: -.075em; }
.intro h1 i { color: var(--rust); font-weight: 400; }
.intro-bottom { display: grid; grid-template-columns: minmax(240px, .85fr) minmax(300px, .75fr); gap: 10vw; align-items: end; margin-top: 2rem; padding-left: 1vw; }
.dek { margin: 0; font-family: var(--serif); font-size: clamp(1.45rem, 2.1vw, 2.1rem); font-style: italic; }
.intro-copy { max-width: 620px; }
.intro-copy > p:first-child { font-family: var(--serif); font-size: clamp(1.25rem, 1.65vw, 1.7rem); line-height: 1.4; margin: 0; }
.byline { margin: 1.3rem 0 0; font-size: .74rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }

.section { padding: 5.5rem clamp(1.25rem, 4vw, 4.5rem); }
.section-heading { display: grid; grid-template-columns: 1fr 3fr; align-items: end; gap: 2rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--ink); }
.section-heading h2, .section-heading-title { margin: 0; font-family: var(--serif); font-size: clamp(2.4rem, 5vw, 5.2rem); font-weight: 500; letter-spacing: -.045em; line-height: .95; }
.eyebrow, .category { margin: 0; color: var(--rust); font-size: .69rem; line-height: 1.3; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; }
.pinned { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.pinned-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--ink); }
.pinned-story { position: relative; display: grid; grid-template-rows: auto 1fr auto; min-height: 390px; padding: 2rem clamp(1.5rem, 3vw, 3.25rem); border-left: 1px solid var(--ink); }
.pinned-story:last-child { border-right: 1px solid var(--ink); }
.pinned-index { margin: 0 0 1.5rem; color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.pinned-story h3 { max-width: 720px; margin: .75rem 0 1.25rem; font-family: var(--serif); font-size: clamp(2rem, 2.6vw, 3.2rem); font-weight: 500; line-height: .96; letter-spacing: -.04em; }
.pinned-summary { max-width: 620px; color: var(--muted); font-family: var(--serif); font-size: 1.12rem; line-height: 1.6; }
.pinned-story .meta { align-self: end; }
.pinned-story:hover h3, .pinned-story:focus-visible h3 { color: var(--rust); }
.lead-grid { display: grid; grid-template-columns: 1.8fr 1fr; border-bottom: 1px solid var(--ink); }
.article-link { cursor: pointer; }
.article-link:focus-visible { outline: 3px solid var(--rust); outline-offset: -3px; }
.lead-story { display: grid; grid-template-columns: 90px 1fr; gap: 1.5rem; padding: 2.7rem 3rem 3rem 0; border-right: 1px solid var(--ink); }
.story-number { font-family: var(--serif); font-size: 4.6rem; color: var(--rust); line-height: .8; }
.story-content h3, .compact-story h3, .analysis-card h3, .experiment-row h3 { font-family: var(--serif); font-weight: 500; letter-spacing: -.025em; }
.story-content h3 { margin: .8rem 0 1.15rem; font-size: clamp(2.3rem, 4vw, 4.25rem); line-height: .98; max-width: 900px; transition: color .2s; }
.lead-story:hover h3, .compact-story:hover h3, .analysis-card:hover h3, .experiment-row:hover h3 { color: var(--rust); }
.story-content > p:not(.category) { max-width: 660px; color: var(--muted); line-height: 1.65; font-size: 1.05rem; }
.meta { display: flex; gap: 1rem; margin-top: 2rem; color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.meta span + span::before { content: "·"; margin-right: 1rem; }
.side-stories { display: grid; }
.compact-story { padding: 2.7rem; display: flex; flex-direction: column; }
.compact-story + .compact-story { border-top: 1px solid var(--ink); }
.compact-story h3 { font-size: clamp(1.65rem, 2.25vw, 2.35rem); line-height: 1.08; margin: .8rem 0; }
.compact-story > p:not(.category) { color: var(--muted); line-height: 1.55; }
.compact-story .meta { margin-top: auto; }

.daily-teaser { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.daily-preview-card { display: grid; grid-template-columns: minmax(320px, 1.1fr) minmax(360px, .9fr); border-bottom: 1px solid var(--ink); }
.daily-preview-card-text { grid-template-columns: 1fr; }
.daily-preview-card-text .daily-preview-copy { max-width: 980px; border-left: 0; padding-left: 0; }
.daily-teaser-image { min-height: 410px; margin: 0; position: relative; overflow: hidden; background: var(--forest); }
.daily-teaser-image img { display: block; width: 100%; height: 100%; min-height: 410px; object-fit: cover; }
.daily-teaser-image figcaption, .daily-cover figcaption { padding-top: .65rem; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.daily-preview-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 5rem); border-left: 1px solid var(--ink); }
.daily-preview-copy h3 { margin: .8rem 0 1.2rem; font-family: var(--serif); font-size: clamp(2.5rem, 4.7vw, 5rem); font-weight: 500; line-height: .94; letter-spacing: -.045em; }
.daily-preview-copy > p:not(.category) { color: var(--muted); font-family: var(--serif); font-size: 1.2rem; line-height: 1.6; }
.daily-preview-copy > strong { margin-top: 1.2rem; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.daily-edition-meta { display: flex; flex-wrap: wrap; gap: .55rem 1rem; align-items: center; margin-bottom: 1.5rem; color: var(--muted); font-size: .69rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.daily-edition-meta span + span::before { content: '·'; margin-right: 1rem; }
.daily-edition-meta .daily-status { padding: .42rem .58rem; border: 1px solid currentColor; color: var(--rust); }
.daily-edition-meta .daily-status::before { content: none; }

.daily-index { max-width: 1280px; margin: 0 auto; }
.daily-empty { padding: 4rem 0; color: var(--muted); font-family: var(--serif); font-size: 1.4rem; }
.daily-archive-entry { position: relative; display: grid; grid-template-columns: minmax(210px, .7fr) minmax(320px, 1.3fr) 1fr; gap: 2rem; align-items: center; padding: 2.4rem 0; border-bottom: 1px solid var(--line); }
.daily-archive-entry .daily-edition-meta { margin: 0; align-items: flex-start; flex-direction: column; }
.daily-archive-entry .daily-edition-meta span + span::before { content: none; }
.daily-archive-entry h2 { margin: 0; font-family: var(--serif); font-size: clamp(2rem, 3.3vw, 3.5rem); font-weight: 500; line-height: 1; letter-spacing: -.035em; }
.daily-archive-entry > p { color: var(--muted); line-height: 1.6; }

.daily-edition { max-width: 1180px; margin: 0 auto; }
.daily-edition-head { margin-top: 2.5rem; padding-bottom: 3rem; border-bottom: 1px solid var(--ink); }
.daily-edition-head h1 { max-width: 1050px; margin-top: .75rem; }
.daily-window { color: var(--muted); font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.daily-cover { margin: 3.5rem 0 0; }
.daily-cover img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.daily-minute { display: grid; grid-template-columns: 180px 1fr; gap: 2rem; margin: 3.5rem 0; padding: 2rem 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.daily-minute ul { margin: 0; padding: 0; list-style: none; font-family: var(--serif); font-size: clamp(1.3rem, 2.2vw, 2rem); line-height: 1.35; }
.daily-minute li { padding-left: 1.5rem; position: relative; }
.daily-minute li + li { margin-top: .9rem; }
.daily-minute li::before { content: '—'; position: absolute; left: 0; color: var(--rust); }
.daily-document .daily-minute ol li::before { content: none; }
.daily-document h1 { overflow-wrap: anywhere; }
.daily-document .daily-radar a { overflow-wrap: anywhere; }
.daily-body { max-width: 900px; margin: 0 auto; }
.daily-lead { padding: 1.5rem 0 4rem; }
.daily-lead h2, .daily-story h2, .daily-signal h2 { margin: .7rem 0 1.2rem; font-family: var(--serif); font-size: clamp(2.2rem, 4.3vw, 4.7rem); font-weight: 500; line-height: .98; letter-spacing: -.04em; }
.daily-lead > p:not(.category), .daily-story p, .daily-signal p, .daily-radar li { font-family: var(--serif); font-size: 1.16rem; line-height: 1.75; }
.daily-story { display: grid; grid-template-columns: 70px 1fr; gap: 1.5rem; padding: 3.2rem 0; border-top: 1px solid var(--line); }
.daily-story-number { color: var(--rust); font-family: var(--serif); font-size: 3rem; line-height: .9; }
.daily-story h2 { font-size: clamp(1.9rem, 3.4vw, 3.5rem); }
.daily-why { margin-top: 1.5rem; padding-left: 1.2rem; border-left: 3px solid var(--rust); }
.daily-why strong { display: block; margin-bottom: .2rem; color: var(--rust); font-family: var(--sans); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.daily-signal { margin: 4rem 0; padding: clamp(2rem, 5vw, 4.5rem); background: var(--forest); color: var(--paper); }
.daily-signal .eyebrow { color: var(--acid); }
.daily-radar, .daily-sources { margin: 4rem 0; padding-top: 2rem; border-top: 1px solid var(--ink); }
.daily-radar ul { padding-left: 1.2rem; }
.daily-radar li + li { margin-top: 1rem; }
.daily-sources > p:not(.eyebrow) { color: var(--muted); line-height: 1.6; }
.daily-sources ol { margin: 2rem 0 0; padding: 0; list-style: none; }
.daily-sources li { display: grid; grid-template-columns: 190px 1fr; gap: 1.5rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.daily-sources li span { color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.daily-sources li a { text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }

.manifesto-band { background: var(--forest); color: var(--paper); padding: 5.2rem clamp(1.25rem, 7vw, 8rem); overflow: hidden; }
.manifesto-band p { margin: 0; font-family: var(--serif); font-size: clamp(2.8rem, 6.4vw, 7rem); line-height: 1.03; letter-spacing: -.045em; }
.manifesto-band p:nth-child(2) { padding-left: 9vw; color: var(--acid); font-style: italic; }
.manifesto-band p:nth-child(3) { text-align: right; }

.split-heading { grid-template-columns: 1fr auto; }
.split-heading > div { display: flex; align-items: end; gap: clamp(2rem, 8vw, 8rem); }
.text-link, .light-link { font-size: .77rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; border-bottom: 1px solid currentColor; padding-bottom: .3rem; }
.analysis-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.analysis-card { min-height: 455px; padding: 1.6rem; border-left: 1px solid var(--ink); display: flex; flex-direction: column; justify-content: space-between; transition: background .2s; }
.analysis-card:last-child { border-right: 1px solid var(--ink); }
.analysis-card h3 { margin: .8rem 0; font-size: clamp(2rem, 2.8vw, 3.15rem); line-height: 1; }
.card-index, .card-footer { margin: 0; font-size: .68rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.card-summary { color: var(--muted); line-height: 1.55; }
.card-footer { display: flex; justify-content: space-between; border-top: 1px solid currentColor; padding-top: .8rem; }
.dark-card { background: var(--forest); color: var(--paper); margin-top: 2rem; min-height: 475px; }
.dark-card .card-summary { color: rgba(244,242,235,.7); }
.dark-card:hover h3 { color: var(--acid); }

.experiments { background: #e5e4dc; }
.section-note { margin: 0; max-width: 280px; color: var(--muted); font-size: .76rem; line-height: 1.5; text-align: right; }
.experiment-row { display: grid; grid-template-columns: 160px minmax(280px, 1fr) 220px; align-items: center; gap: 2rem; min-height: 165px; border-bottom: 1px solid var(--ink); }
.test-label { align-self: stretch; padding: 1.6rem 0; display: flex; flex-direction: column; justify-content: space-between; font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.status { width: max-content; padding: .35rem .55rem; background: var(--acid); border-radius: 50px; letter-spacing: .03em; }
.status-muted { background: transparent; border: 1px solid var(--line); }
.experiment-row h3 { margin: .6rem 0; font-size: clamp(1.65rem, 2.35vw, 2.55rem); line-height: 1.05; }
.project-row { color: inherit; }
.project-row-summary { max-width: 760px; margin: .65rem 0 1.4rem; color: var(--muted); font-size: .94rem; line-height: 1.55; }
.result { display: flex; align-items: center; gap: 1rem; }
.result-number { font-family: var(--serif); font-size: 2.4rem; color: var(--rust); }
.result span:last-child { color: var(--muted); font-size: .7rem; line-height: 1.45; text-transform: uppercase; letter-spacing: .05em; }

.about-strip { padding: 5rem clamp(1.25rem, 4vw, 4.5rem); background: var(--rust); color: white; display: grid; grid-template-columns: 1fr 2.4fr 2fr auto; align-items: end; gap: 2.5rem; }
.about-strip .eyebrow { color: white; opacity: 1; align-self: start; }
.about-strip h2 { margin: 0; font-family: var(--serif); font-size: clamp(3rem, 5.3vw, 6rem); line-height: .88; font-weight: 500; letter-spacing: -.05em; }
.about-strip > p:not(.eyebrow) { margin: 0; line-height: 1.6; max-width: 430px; }

.site-footer { min-height: 230px; padding: 3rem clamp(1.25rem, 4vw, 4.5rem); background: #0a1d1a; color: var(--paper); display: grid; grid-template-columns: 2fr 1fr auto; gap: 2rem; align-items: start; }
.footer-brand { font-family: var(--serif); font-size: 2.7rem; }
.site-footer p { color: rgba(244,242,235,.6); }
.footer-links { display: flex; flex-direction: column; gap: 1rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.footer-links button { color: inherit; background: none; padding: 0; border: 0; text-align: left; cursor: pointer; text-transform: inherit; letter-spacing: inherit; }
.copyright { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }

.archive-view, .article-view { padding: clamp(3rem, 7vw, 7rem) clamp(1.25rem, 8vw, 9rem); }
.archive-head { display: grid; grid-template-columns: 1fr 2fr; gap: 2rem; padding-bottom: 3rem; border-bottom: 1px solid var(--ink); }
.archive-head h1, .article-view h1 { margin: 0; font-family: var(--serif); font-size: clamp(3.5rem, 8vw, 8rem); line-height: .92; letter-spacing: -.055em; font-weight: 500; }
.archive-head p { align-self: end; max-width: 580px; font-family: var(--serif); font-size: 1.4rem; line-height: 1.45; }
.archive-list > article, .archive-list > .article-link, .audio-preview-archive > .article-link { display: grid; grid-template-columns: 140px 1fr; gap: 2rem; align-items: center; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.archive-list h2 { font-family: var(--serif); font-size: clamp(1.75rem, 3vw, 3rem); margin: .45rem 0; line-height: 1.05; font-weight: 500; }
.archive-list .meta { margin: 0; }
.literacy-page { max-width: 1280px; margin: 0 auto; }
.literacy-intro { display: grid; grid-template-columns: minmax(280px, 1.15fr) minmax(280px, .85fr); gap: clamp(2rem, 7vw, 7rem); padding: clamp(3.5rem, 7vw, 6.5rem) 0; border-bottom: 1px solid var(--ink); }
.literacy-intro h2 { max-width: 820px; margin: 0; font-family: var(--serif); font-size: clamp(2.8rem, 5.7vw, 6rem); font-weight: 500; line-height: .96; letter-spacing: -.05em; }
.literacy-intro > p { align-self: end; max-width: 600px; margin: 0; color: var(--muted); font-family: var(--serif); font-size: clamp(1.15rem, 1.8vw, 1.5rem); line-height: 1.55; }
.literacy-reading > header { display: grid; grid-template-columns: minmax(180px, .55fr) minmax(280px, 1.45fr); gap: 2rem; align-items: start; margin-bottom: 2rem; }
.literacy-reading > header > p:last-child { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.6; }
.literacy-start { display: grid; grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr); gap: clamp(2rem, 6vw, 6rem); padding: clamp(4rem, 7vw, 7rem) 0; border-bottom: 1px solid var(--ink); }
.literacy-start-copy > p:last-child { max-width: 420px; margin: 1.35rem 0 0; color: var(--muted); line-height: 1.65; }
.literacy-start-card { display: block; padding: clamp(1.5rem, 4vw, 3.5rem); border-left: 4px solid var(--rust); background: color-mix(in srgb, var(--ink) 4%, var(--paper)); transition: background .2s ease; }
.literacy-start-card:hover, .literacy-start-card:focus-visible { background: color-mix(in srgb, var(--ink) 8%, var(--paper)); }
.literacy-start-card .meta { margin: 0 0 clamp(2.5rem, 5vw, 5rem); }
.literacy-start-image { display: block; width: 100%; height: auto; margin-bottom: 1.5rem; }
.literacy-start-card h2 { max-width: 900px; margin: .8rem 0 1.25rem; font-family: var(--serif); font-size: clamp(2.5rem, 5vw, 5.25rem); font-weight: 500; line-height: .95; letter-spacing: -.045em; }
.literacy-start-card > p:not(.category) { max-width: 720px; margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1.15rem; line-height: 1.6; }
.literacy-start-card > strong { display: inline-block; margin-top: 2.5rem; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: .3rem; }
.literacy-reading { padding: clamp(4rem, 7vw, 6rem) 0 0; }
.literacy-reading + .literacy-reading { margin-top: 2rem; }
.literacy-reading .archive-list { border-top: 1px solid var(--ink); }
.projects-page, .project-page { max-width: 1280px; margin: 0 auto; }
.projects-head { display: grid; grid-template-columns: minmax(180px, .65fr) minmax(0, 1.35fr); gap: clamp(2rem, 7vw, 7rem); padding-bottom: 3.5rem; border-bottom: 1px solid var(--ink); }
.projects-head > div { max-width: 880px; }
.projects-head h1 { margin: 0 0 1.5rem; font-family: var(--serif); font-size: clamp(3.5rem, 7vw, 7.3rem); font-weight: 500; line-height: .9; letter-spacing: -.055em; }
.projects-head > div > p { max-width: 760px; margin: 0; color: var(--muted); font-family: var(--serif); font-size: clamp(1.2rem, 2vw, 1.65rem); line-height: 1.55; }
.project-program { margin: clamp(3.5rem, 7vw, 6.5rem) 0; border: 1px solid var(--ink); background: color-mix(in srgb, var(--ink) 2%, var(--paper)); }
.project-program-head { display: grid; grid-template-columns: minmax(170px, .58fr) minmax(0, 1.42fr); gap: clamp(2rem, 6vw, 6rem); padding: clamp(1.5rem, 4vw, 3.5rem); border-bottom: 1px solid var(--ink); }
.project-program-head h2 { max-width: 950px; margin: 0 0 1.35rem; font-family: var(--serif); font-size: clamp(2.7rem, 5vw, 5.2rem); font-weight: 500; line-height: .95; letter-spacing: -.045em; }
.project-program-head > div > p { max-width: 790px; margin: 0; color: var(--muted); font-size: 1.05rem; line-height: 1.7; }
.project-program-context { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); gap: clamp(2rem, 6vw, 6rem); padding: clamp(1.5rem, 4vw, 3.5rem); border-bottom: 1px solid var(--line); }
.project-program-context > p { max-width: 740px; margin: 0; font-family: var(--serif); font-size: clamp(1.2rem, 2vw, 1.65rem); line-height: 1.55; }
.project-program-status { align-self: start; padding-left: 1.25rem; border-left: 3px solid var(--rust); }
.project-program-status > span { display: block; margin-bottom: .6rem; color: color-mix(in srgb, var(--rust) 72%, var(--ink)); font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.project-program-status p { margin: 0; color: var(--muted); line-height: 1.65; }
.project-data-boundary { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 7vw, 7rem); padding: clamp(3rem, 7vw, 6rem) 0; border-bottom: 1px solid var(--ink); }
.project-program > .project-data-boundary { padding: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3.5rem); border-bottom-color: var(--line); }
.project-data-boundary h2 { max-width: 620px; margin: .65rem 0 0; font-family: var(--serif); font-size: clamp(2.35rem, 4vw, 4.4rem); font-weight: 500; line-height: .98; letter-spacing: -.04em; }
.project-data-boundary-copy > p { max-width: 780px; margin: 0; font-family: var(--serif); font-size: clamp(1.15rem, 1.8vw, 1.5rem); line-height: 1.58; }
.project-testing-rule { max-width: 780px; margin-top: 2rem; padding: 1.3rem 1.5rem; border-left: 3px solid var(--rust); background: color-mix(in srgb, var(--rust) 6%, var(--paper)); }
.project-testing-rule strong { display: block; margin-bottom: .55rem; color: color-mix(in srgb, var(--rust) 72%, var(--ink)); font-size: .74rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.project-testing-rule p { margin: 0; color: var(--muted); line-height: 1.65; }
.project-assembly { margin: 0; padding: clamp(1.5rem, 4vw, 3.5rem); }
.project-assembly figcaption { display: grid; grid-template-columns: minmax(170px, .58fr) minmax(0, 1.42fr); gap: clamp(2rem, 6vw, 6rem); align-items: baseline; margin-bottom: 1.5rem; }
.project-assembly figcaption > span { color: color-mix(in srgb, var(--rust) 72%, var(--ink)); font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.project-assembly figcaption > strong { max-width: 760px; font-family: var(--serif); font-size: clamp(1.35rem, 2.2vw, 2rem); font-weight: 500; line-height: 1.35; }
.project-assembly-factory, .project-assembly-foundation, .project-assembly-next { display: grid; border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.project-assembly-foundation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.project-assembly-next { grid-template-columns: minmax(0, 1.55fr) minmax(0, .75fr); }
.project-assembly-module { position: relative; display: block; min-height: 250px; padding: clamp(1.35rem, 3vw, 2.5rem); border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--paper); transition: background .2s ease; }
.project-assembly-module:hover, .project-assembly-module:focus-visible { background: color-mix(in srgb, var(--rust) 7%, var(--paper)); }
.project-assembly-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.project-assembly-meta span:last-child:not(:first-child) { color: color-mix(in srgb, var(--rust) 72%, var(--ink)); text-align: right; }
.project-assembly-module h3 { margin: clamp(2.5rem, 5vw, 4.5rem) 0 .85rem; font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 4.2rem); font-weight: 500; line-height: .92; letter-spacing: -.045em; }
.project-assembly-module p { max-width: 680px; margin: 0; padding-right: 2rem; color: var(--muted); line-height: 1.6; }
.project-assembly-join { display: grid; place-items: center; min-height: 66px; color: var(--rust); font-size: 1.8rem; }
.project-horizon { display: grid; grid-template-columns: minmax(170px, .58fr) minmax(0, 1.42fr); gap: clamp(2rem, 6vw, 6rem); padding: clamp(2rem, 5vw, 4.5rem); background: var(--ink); color: var(--paper); }
.project-horizon .eyebrow { color: var(--paper); opacity: .72; }
.project-horizon h3 { max-width: 800px; margin: 0 0 1.5rem; font-family: var(--serif); font-size: clamp(2.4rem, 4.5vw, 4.7rem); font-weight: 500; line-height: .96; letter-spacing: -.045em; }
.project-horizon p:not(.eyebrow) { max-width: 760px; margin: 0; line-height: 1.7; }
.project-horizon p + p { margin-top: 1.15rem; }
.project-program-caveat { max-width: 820px; margin: 0 0 0 auto; padding: 1.25rem clamp(1.5rem, 4vw, 3.5rem); color: var(--muted); font-size: .85rem; line-height: 1.6; }
.projects-note { max-width: 840px; margin: 0 0 2.5rem auto; padding-left: 1.25rem; border-left: 3px solid var(--rust); color: var(--muted); line-height: 1.6; }
.projects-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.project-card { position: relative; display: grid; grid-template-rows: auto auto auto 1fr auto; min-height: 470px; padding: clamp(1.5rem, 3vw, 3rem); border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); transition: background .2s ease; }
.project-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--rust); transform: scaleY(0); transform-origin: bottom; transition: transform .2s ease; }
.project-card:hover, .project-card:focus-visible { background: color-mix(in srgb, var(--ink) 4%, var(--paper)); }
.project-card:hover::before, .project-card:focus-visible::before { transform: scaleY(1); }
.project-card-top, .project-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.project-card .category { margin-top: 4rem; }
.project-card h2 { margin: .75rem 0 1.3rem; font-family: var(--serif); font-size: clamp(2.8rem, 5vw, 5.4rem); font-weight: 500; line-height: .9; letter-spacing: -.05em; }
.project-logo { float: right; width: clamp(5rem, 10vw, 8rem); height: auto; margin: 0 0 1rem 1.25rem; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.project-card > p:not(.category) { max-width: 560px; margin: 0; color: var(--muted); line-height: 1.65; }
.project-card > strong { align-self: end; margin-top: 2.5rem; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.project-hero { position: relative; isolation: isolate; overflow: hidden; padding: 1rem 0 clamp(4rem, 8vw, 7rem); border-bottom: 1px solid var(--ink); }
.project-number { position: absolute; z-index: -1; top: 0; right: 0; color: var(--line); font-family: var(--serif); font-size: clamp(6rem, 16vw, 15rem); line-height: .72; letter-spacing: -.08em; }
.project-meta { max-width: 760px; }
.project-hero h1 { max-width: 1050px; margin: clamp(3rem, 7vw, 6rem) 0 1.5rem; font-family: var(--serif); font-size: clamp(5rem, 13vw, 12rem); font-weight: 500; line-height: .8; letter-spacing: -.07em; }
.project-hero > p { max-width: 880px; margin: 0; font-family: var(--serif); font-size: clamp(1.35rem, 2.4vw, 2.15rem); line-height: 1.45; }
.project-overview, .project-principles, .project-relationship { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 7vw, 7rem); padding: clamp(4rem, 8vw, 7rem) 0; border-bottom: 1px solid var(--ink); }
.project-overview > div, .project-principles > div, .project-relationship > div { grid-column: 2; }
.project-overview h2, .project-principles h2, .project-relationship h2, .project-detail-head h2 { margin: 0 0 1.5rem; font-family: var(--serif); font-size: clamp(2.4rem, 4.2vw, 4.5rem); font-weight: 500; line-height: .95; letter-spacing: -.04em; }
.project-overview > div > p { max-width: 780px; margin: 0; font-size: clamp(1.05rem, 1.6vw, 1.28rem); line-height: 1.72; }
.project-overview > div > p + p { margin-top: 1.2rem; }
.project-architecture { padding: clamp(4rem, 8vw, 7rem) 0; border-bottom: 1px solid var(--ink); }
.project-detail-head { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 7vw, 7rem); }
.project-detail-head > div { grid-column: 2; }
.project-architecture figure { margin: clamp(2.5rem, 5vw, 4.5rem) 0 0; }
.project-architecture-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.project-architecture-flow li { min-height: 320px; padding: clamp(1.25rem, 2.5vw, 2.2rem); border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: color-mix(in srgb, var(--ink) 3%, var(--paper)); }
.project-architecture-flow li > span { display: block; margin-bottom: clamp(3rem, 6vw, 6rem); color: color-mix(in srgb, var(--rust) 75%, var(--ink)); font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.project-architecture-flow h3 { margin: 0 0 1rem; font-family: var(--serif); font-size: clamp(1.55rem, 2.4vw, 2.25rem); font-weight: 500; line-height: 1; letter-spacing: -.025em; }
.project-architecture-flow p { margin: 0; color: var(--muted); line-height: 1.6; }
.project-architecture figcaption { max-width: 760px; margin: 1.2rem 0 0 auto; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.project-principles dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 2.5rem 0 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.project-principles dl > div { padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.project-principles dt { font-family: var(--serif); font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.2; }
.project-principles dd { margin: .8rem 0 0; color: var(--muted); line-height: 1.6; }
.project-relationship > div > p { max-width: 780px; margin: 0; font-family: var(--serif); font-size: clamp(1.2rem, 2vw, 1.65rem); line-height: 1.55; }
.project-relationship .project-design-note { margin-top: 2rem; padding: 1.2rem 1.4rem; border-left: 3px solid var(--rust); background: color-mix(in srgb, var(--ink) 4%, var(--paper)); color: var(--muted); font-family: var(--sans); font-size: 1rem; line-height: 1.65; }
.project-capabilities { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 7vw, 7rem); padding: clamp(4rem, 8vw, 7rem) 0; border-bottom: 1px solid var(--ink); }
.project-capabilities > h2 { margin: .7rem 0 0; font-family: var(--serif); font-size: clamp(2.4rem, 4.2vw, 4.5rem); font-weight: 500; line-height: .95; letter-spacing: -.04em; }
.project-capabilities ol { grid-column: 2; grid-row: 1 / span 2; margin: 0; padding: 0; list-style: none; }
.project-capabilities li { display: grid; grid-template-columns: 52px 1fr; gap: 1rem; padding: 1.35rem 0; border-top: 1px solid var(--line); }
.project-capabilities li:last-child { border-bottom: 1px solid var(--line); }
.project-capabilities li > span { padding-top: .2rem; color: var(--rust); font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.project-capabilities li p { margin: 0; font-family: var(--serif); font-size: clamp(1.25rem, 2.1vw, 1.8rem); line-height: 1.4; }
.about-page { max-width: 1050px; margin: 0 auto; }
.biography { max-width: 760px; font-size: 1.125rem; line-height: 1.75; }
.biography p + p { margin-top: 1.5em; }
.about-page .big-copy { max-width: 840px; font-family: var(--serif); font-size: clamp(1.65rem, 3vw, 3rem); line-height: 1.3; }
.perspective-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--ink); margin-top: 4rem; border: 1px solid var(--ink); }
.perspective-grid section { background: var(--paper); padding: 2rem; min-height: 250px; }
.perspective-grid h2 { font-family: var(--serif); font-size: 2rem; }
.perspective-grid p { color: var(--muted); line-height: 1.65; }

.mnemon-page, .mnemon-diary-page { max-width: 1280px; margin: 0 auto; }
.mnemon-hero { position: relative; isolation: isolate; overflow: hidden; padding: 0 0 5rem; border-bottom: 1px solid var(--ink); }
.mnemon-sequence { position: absolute; z-index: -1; top: -.8rem; right: 0; color: var(--line); font-family: var(--serif); font-size: clamp(5rem, 13vw, 12rem); line-height: .8; letter-spacing: -.08em; white-space: nowrap; }
.mnemon-hero h1 { max-width: 900px; margin: .65rem 0 1rem; font-family: var(--serif); font-size: clamp(5rem, 12vw, 11rem); font-weight: 500; line-height: .85; letter-spacing: -.07em; }
.mnemon-subtitle { max-width: 780px; margin: 0; font-family: var(--serif); font-size: clamp(1.55rem, 2.7vw, 2.7rem); line-height: 1.2; }
.mnemon-intro { display: grid; grid-template-columns: 1.25fr 1.25fr .65fr; gap: clamp(1.5rem, 4vw, 4rem); margin-top: 4.5rem; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.mnemon-intro p { margin: 0; line-height: 1.7; }
.mnemon-intro p:last-child { font-family: var(--serif); font-size: 1.45rem; font-style: italic; color: var(--rust); }
.mnemon-actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 3rem; }
.mnemon-primary { display: inline-flex; justify-content: space-between; gap: 2rem; min-width: 220px; padding: 1rem 1.2rem; background: var(--ink); color: var(--paper); font-size: .78rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.mnemon-status { display: flex; align-items: center; gap: .65rem; margin: 2.25rem 0 0; color: var(--muted); font-size: .72rem; font-weight: 750; text-transform: uppercase; letter-spacing: .09em; }
.mnemon-status span { width: .65rem; height: .65rem; border-radius: 50%; background: var(--rust); box-shadow: 0 0 0 .3rem color-mix(in srgb, var(--rust) 18%, transparent); }
.mnemon-learning { margin-top: 5rem; padding: clamp(1.5rem, 4vw, 3.5rem); border: 1px solid var(--ink); }
.mnemon-learning > header { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(360px, 1.2fr); column-gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.mnemon-learning > header .eyebrow, .mnemon-learning h2 { grid-column: 1; }
.mnemon-learning h2 { margin: .7rem 0 0; font-family: var(--serif); font-size: clamp(2.5rem, 5vw, 5rem); font-weight: 500; line-height: .95; letter-spacing: -.045em; }
.mnemon-learning > header > p:last-child { grid-column: 2; grid-row: 1 / span 2; max-width: 660px; margin: 0; font-size: 1.05rem; line-height: 1.75; }
.mnemon-learning-loop { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 3rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.mnemon-learning-loop li { min-height: 220px; padding: 1.25rem; border-right: 1px solid var(--ink); }
.mnemon-learning-loop li:last-child { border-right: 0; }
.mnemon-learning-loop li > span { color: var(--rust); font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.mnemon-learning-loop li p { margin: 3.5rem 0 0; font-family: var(--serif); font-size: clamp(1.05rem, 1.6vw, 1.35rem); line-height: 1.35; }
.mnemon-learning-rule { max-width: 920px; margin: 2rem 0 0; padding: .25rem 0 .25rem 1.25rem; border-left: 3px solid var(--rust); color: var(--muted); line-height: 1.65; }
.mnemon-threshold { display: grid; grid-template-columns: minmax(280px, .85fr) minmax(420px, 1.15fr); gap: clamp(3rem, 7vw, 7rem); margin-top: 5rem; padding: clamp(2rem, 5vw, 5rem); background: var(--ink); color: var(--paper); }
.mnemon-threshold h2 { margin: .8rem 0 1.5rem; font-family: var(--serif); font-size: clamp(2.5rem, 5vw, 5rem); font-weight: 500; line-height: .95; letter-spacing: -.045em; }
.mnemon-threshold > div > p:last-child { max-width: 520px; line-height: 1.65; }
.mnemon-threshold ol { margin: 0; padding: 0; list-style: none; }
.mnemon-threshold li { display: grid; grid-template-columns: 48px 1fr; gap: 1rem; align-items: start; padding: 1.15rem 0; border-top: 1px solid var(--paper); }
.mnemon-threshold li:last-child { border-bottom: 1px solid var(--paper); }
.mnemon-threshold li > span { color: var(--rust); font-size: .7rem; font-weight: 800; letter-spacing: .09em; }
.mnemon-threshold li p { margin: 0; font-family: var(--serif); font-size: 1.25rem; line-height: 1.4; }
.mnemon-latest { padding-top: 5rem; }
.mnemon-entry-card { position: relative; display: grid; grid-template-columns: 150px minmax(0, 1fr) 1.15fr; gap: 2rem; align-items: center; margin-top: 1.2rem; padding: 2.4rem 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.mnemon-entry-card > div { display: flex; flex-direction: column; gap: .5rem; color: var(--muted); font-size: .7rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.mnemon-entry-card h2 { margin: 0; font-family: var(--serif); font-size: clamp(2rem, 4vw, 4rem); font-weight: 500; line-height: .98; letter-spacing: -.04em; }
.mnemon-entry-card > p { margin: 0; color: var(--muted); line-height: 1.65; }
.mnemon-entry-card:hover h2, .mnemon-entry-card:focus-visible h2 { color: var(--rust); }
.diary-entry-link { text-decoration: none; }
.mnemon-article-body > section + section { margin-top: 3.5rem; padding-top: .5rem; }
.mnemon-article-body section p { margin: .72em 0; }
.mnemon-article-body > section:first-child p:first-child { margin-bottom: 1.3rem; color: var(--rust); font-size: clamp(1.7rem, 3vw, 2.6rem); font-style: italic; line-height: 1.25; }
.mnemon-article-body > section:last-of-type p:nth-last-child(-n+4) { font-size: 1.35rem; }
.article-view { max-width: 1260px; margin: 0 auto; }
.article-kicker { display: flex; justify-content: space-between; border-bottom: 1px solid var(--ink); padding-bottom: 1rem; margin-bottom: 3rem; }
.article-view h1 { max-width: 1120px; font-size: clamp(3.3rem, 7vw, 7.2rem); }
.article-dek { max-width: 820px; font-family: var(--serif); font-size: clamp(1.35rem, 2.2vw, 2rem); line-height: 1.45; margin: 2.5rem 0; }
.article-body { max-width: 720px; margin: 4rem auto 2rem; font-family: var(--serif); font-size: 1.2rem; line-height: 1.8; }
.article-media { max-width: 100%; margin: 2rem 0; }
.article-media img, .article-media video { display: block; max-width: 100%; height: auto; margin: 0 auto; object-fit: contain; }
.article-media video { width: 100%; }
.article-media figcaption { margin-top: .75rem; color: var(--muted); font-family: var(--sans); font-size: .9rem; line-height: 1.6; overflow-wrap: anywhere; }
.article-media video:focus-visible { outline: 2px solid var(--rust); outline-offset: 4px; }
.responsive-picture { display: block; }
.story-image { display: block; width: 100%; height: auto; margin-bottom: 1.5rem; }
/* List covers follow compact cards without stretching across a wide archive. */
.archive-list .story-image, .experiment-row .story-image { max-width: 360px; }
.search-item:has(.story-image) { display: flow-root; }
.search-item .responsive-picture { display: contents; }
.search-item .story-image { float: left; width: 96px; margin: 0 1rem .25rem 0; }
.article-cover { max-width: 960px; }

/* Latest posts share rows so the first card cannot stretch beside the full list. */
#latestArticles { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.5rem; align-items: start; }
#latestArticles .side-stories { display: contents; }
#latestArticles :is(.lead-story, .compact-story) { display: block; min-width: 0; padding: 2rem 0; border: 0; border-bottom: 1px solid var(--ink); }
#latestArticles .story-number { display: none; }
#latestArticles h3 { margin: .8rem 0 1rem; font-size: clamp(1.65rem, 2.5vw, 2.35rem); line-height: 1.08; }
#latestArticles .meta { margin-top: 1.5rem; }
@media (max-width: 760px) {
  #latestArticles { grid-template-columns: minmax(0, 1fr); }
}

.article-body h2 { font-size: 2.1rem; line-height: 1.15; margin-top: 2.8rem; overflow-wrap: anywhere; }
.article-body ul, .article-body ol { margin: 1.4rem 0 1.8rem; padding-left: 1.35em; }
.article-body li { padding-left: .35em; margin: .55rem 0; overflow-wrap: anywhere; }
.article-body li::marker { color: var(--rust); font-family: var(--sans); font-weight: 700; }
.article-table-wrap { width: 100%; margin: 1.8rem 0 2rem; overflow-x: auto; }
.article-body table { width: 100%; min-width: 600px; border-collapse: collapse; font-family: var(--sans); font-size: .95rem; line-height: 1.55; }
.article-body th, .article-body td { padding: .9rem 1rem; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.article-body th { background: var(--ink); color: var(--paper); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.article-body tbody tr:nth-child(even) { background: color-mix(in srgb, var(--ink) 4%, transparent); }
.article-body .callout { border-left: 4px solid var(--rust); padding-left: 1.5rem; font-size: 1.5rem; font-style: italic; }
.article-audio { max-width: 720px; margin: 2rem auto; padding: 1.25rem 0; border-block: 1px solid var(--line); }
.article-audio h2 { margin: 0; font: 650 1.15rem/1.4 var(--sans); }
.article-audio p { margin: .5rem 0 1rem; color: var(--muted); font-size: .9rem; line-height: 1.5; }
.article-audio audio { display: block; width: 100%; max-width: 100%; margin: .75rem 0; color-scheme: light; }
.article-audio audio[hidden], .article-audio button[hidden] { display: none; }
.article-audio [data-audio-prepare] { min-height: 44px; padding: .7rem 1rem; border: 1px solid var(--ink); color: var(--paper); background: var(--ink); font: 600 1rem/1.2 var(--sans); cursor: pointer; }
.article-audio [data-audio-prepare]:disabled { opacity: .65; cursor: wait; }
.article-audio [data-audio-status]:empty { display: none; }
html[data-skin="techno"] .article-audio audio { color-scheme: dark; }
.article-audio-options { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem 1.5rem; font-size: .9rem; }
.article-audio-options label { display: flex; align-items: center; gap: .6rem; }
.article-audio-options select { min-height: 44px; padding: .4rem; font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 4px; }
.article-audio-options a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: .2em; }
.article-audio :focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.article-reading-tools { max-width: 720px; margin: 2rem auto -1.5rem; padding: .85rem 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-block: 1px solid var(--line); font-family: var(--sans); }
.article-reading-tools span { color: var(--muted); font-size: .78rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.article-reading-tools button { min-height: 44px; padding: .7rem 1rem; border: 1px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; font: 750 .875rem/1.2 var(--sans); letter-spacing: .04em; }
.article-reading-tools button:hover, .article-reading-tools button:focus-visible { background: var(--ink); color: var(--paper); }
.article-details { margin: 1.5rem 0 2rem; border-block: 1px solid var(--line); font-family: var(--serif); }
.article-details summary { min-height: 52px; padding: .85rem 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; color: var(--rust); font: 750 .875rem/1.35 var(--sans); letter-spacing: .06em; text-transform: uppercase; }
.article-details summary::-webkit-details-marker { display: none; }
.article-details summary:focus-visible { outline: 2px solid var(--rust); outline-offset: 4px; }
.article-details summary::after { content: '+'; flex: 0 0 auto; color: var(--ink); font-size: 1.35rem; font-weight: 400; line-height: 1; }
.article-details[open] summary::after { content: '−'; }
.article-details-content { padding: .25rem 1.25rem 1.5rem; border-left: 3px solid var(--rust); background: color-mix(in srgb, var(--ink) 3%, transparent); }
.article-details-content h3 { margin: 2rem 0 .7rem; font-size: 1.45rem; line-height: 1.25; }
.article-details-content > :first-child { margin-top: .5rem; }
.article-details-content > :last-child { margin-bottom: 0; }
.editorial-status { font-size: .9rem; color: var(--muted); line-height: 1.6; }
.article-body .editorial-note, .article-sources { font-family: var(--sans); font-size: 1rem; line-height: 1.7; border-top: 1px solid var(--line); padding-top: 1.5rem; margin-top: 2.5rem; }
.article-sources a { overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: .2em; }
.article-related { display: grid; gap: .55rem; margin-top: 2.8rem; padding: 1.4rem 0; border-block: 1px solid var(--line); font-family: var(--sans); }
.article-related > span { color: var(--muted); font-size: .72rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.article-related a { color: var(--ink); font-family: var(--serif); font-size: 1.35rem; line-height: 1.25; text-decoration: none; }
.article-related a:hover, .article-related a:focus-visible { color: var(--rust); }
.back-link { display: inline-block; margin-bottom: 2.5rem; font-size: .76rem; text-transform: uppercase; letter-spacing: .1em; border-bottom: 1px solid currentColor; }

.search-dialog { width: min(900px, calc(100% - 2rem)); max-height: 82vh; padding: 0; border: 0; background: var(--paper); color: var(--ink); box-shadow: 0 30px 100px rgba(0,0,0,.35); }
.search-dialog::backdrop { background: rgba(10,29,26,.78); backdrop-filter: blur(5px); }
.search-panel { padding: clamp(1.5rem, 4vw, 3.5rem); }
.search-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; }
.search-top label { font-family: var(--serif); font-size: 2rem; }
.close-button { background: transparent; border: 0; cursor: pointer; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }
.search-field { display: flex; align-items: center; gap: 1rem; border-bottom: 2px solid var(--ink); }
.search-field input { width: 100%; padding: 1rem 0; border: 0; outline: 0; background: transparent; font-family: var(--serif); font-size: clamp(1.3rem, 3vw, 2.2rem); }
.search-results { margin-top: 2rem; max-height: 45vh; overflow-y: auto; }
.search-item { display: block; width: 100%; padding: 1.1rem 0; text-align: left; border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; }
.search-item span { display: block; color: var(--rust); font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; }
.search-item strong { display: block; margin-top: .35rem; font-family: var(--serif); font-size: 1.25rem; font-weight: 500; }
.empty-result { color: var(--muted); padding: 2rem 0; }

@media (max-width: 1480px) {
  .site-header { grid-template-columns: 1fr auto; }
  .desktop-nav { display: none; }
  .menu-button { display: block; }
  .lead-grid { grid-template-columns: 1.4fr 1fr; }
  .about-strip { grid-template-columns: 1fr 2fr; }
  .about-strip .light-link { justify-self: start; }
}

@media (max-width: 1050px) {
  .project-architecture-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-architecture-flow li { min-height: 270px; }
}

@media (max-width: 760px) {
  .site-header { min-height: 66px; }
  .icon-button span { display: none; }
  .site-header { padding-inline: .75rem; }
  .brand { gap: .4rem; }
  .brand-mark { width: 30px; height: 34px; font-size: .7rem; }
  .brand-name { font-size: .9rem; }
  .brand-description { font-size: .6rem; }
  .icon-button { padding: .35rem; }
  .menu-button { font-size: .65rem; padding: .25rem; }
  .header-actions { gap: .35rem; }
  .language-switcher { padding-right: .35rem; }
  .language-switcher :is(button,a) { min-width: 28px; }
  .mobile-nav { inset: 66px 0 auto; }
  .mobile-nav { max-height: calc(100dvh - 66px); overflow-y: auto; }
  .intro { padding-top: .8rem; }
  .intro h1 { font-size: clamp(4.4rem, 24vw, 7rem); line-height: .86; margin-top: 1.5rem; }
  .intro-bottom, .section-heading, .split-heading, .archive-head { grid-template-columns: 1fr; gap: 1.4rem; }
  .intro-bottom { margin-top: 2.5rem; }
  .section { padding-top: 4rem; padding-bottom: 4rem; }
  .split-heading > div { display: block; }
  .split-heading .eyebrow { margin-bottom: 1rem; }
  .lead-grid { grid-template-columns: 1fr; }
  .daily-preview-card { grid-template-columns: 1fr; }
  .pinned-grid { grid-template-columns: 1fr; }
  .pinned-story { min-height: 340px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); padding-inline: 1.35rem; }
  .pinned-story:last-child { border-bottom: 0; }
  .daily-preview-copy { border-left: 0; border-top: 1px solid var(--ink); padding-inline: 0; }
  .daily-teaser-image, .daily-teaser-image img { min-height: 260px; }
  .daily-archive-entry { grid-template-columns: 1fr; gap: 1rem; }
  .daily-archive-entry .daily-edition-meta, .daily-archive-entry h2, .daily-archive-entry > p { grid-column: 1; }
  .daily-minute { grid-template-columns: 1fr; }
  .daily-story { grid-template-columns: 42px 1fr; }
  .daily-story-number { font-size: 2.2rem; }
  .daily-sources li { grid-template-columns: 1fr; gap: .45rem; }
  .lead-story { grid-template-columns: 42px 1fr; padding-right: 0; border-right: 0; }
  .story-number { font-size: 2.7rem; }
  .side-stories { border-top: 1px solid var(--ink); }
  .compact-story { padding: 2rem 0; }
  .manifesto-band p:nth-child(2) { padding-left: 0; }
  .analysis-grid { grid-template-columns: 1fr; }
  .analysis-card { min-height: 380px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
  .dark-card { margin-top: 0; }
  .section-note { text-align: left; }
  .experiment-row { grid-template-columns: 1fr; gap: 1rem; padding: 1.7rem 0; }
  .test-label { grid-column: 1 / -1; flex-direction: row; padding: 0; }
  .result { grid-column: 1; }
  .about-strip { grid-template-columns: 1fr; }
  .site-footer { grid-template-columns: 1fr; }
  .archive-list > article, .archive-list > .article-link, .audio-preview-archive > .article-link { grid-template-columns: 1fr; }
  .archive-list .meta { grid-column: 1; }
  .literacy-intro, .literacy-start, .literacy-reading > header { grid-template-columns: 1fr; gap: 1.5rem; }
  .literacy-start-card { padding: 1.5rem; }
  .projects-head, .project-program-head, .project-program-context, .project-data-boundary, .project-assembly figcaption, .project-horizon, .project-overview, .project-detail-head, .project-principles, .project-relationship, .project-capabilities { grid-template-columns: 1fr; gap: 1.5rem; }
  .project-program { margin: 3rem 0; }
  .project-assembly-foundation, .project-assembly-next { grid-template-columns: 1fr; }
  .project-assembly-module { min-height: 230px; }
  .project-assembly-meta { align-items: flex-start; flex-direction: column; }
  .project-assembly-meta span:last-child:not(:first-child) { text-align: left; }
  .project-assembly-join { min-height: 54px; }
  .project-program-caveat { margin: 0; }
  .projects-note { margin: 0 0 2.5rem; }
  .projects-grid { grid-template-columns: 1fr; }
  .project-card { min-height: 410px; }
  .project-card .category { margin-top: 2.5rem; }
  .project-meta { flex-direction: column; }
  .project-hero h1 { margin-top: 4rem; }
  .project-overview > div, .project-detail-head > div, .project-principles > div, .project-relationship > div { grid-column: 1; }
  .project-architecture-flow, .project-principles dl { grid-template-columns: 1fr; }
  .project-architecture-flow li { min-height: auto; }
  .project-architecture-flow li > span { margin-bottom: 2.5rem; }
  .project-capabilities ol { grid-column: 1; grid-row: auto; }
  .perspective-grid { grid-template-columns: 1fr; }
  .mnemon-sequence { top: 0; font-size: clamp(4.5rem, 25vw, 8rem); }
  .mnemon-intro, .mnemon-learning > header, .mnemon-threshold { grid-template-columns: 1fr; }
  .mnemon-intro { margin-top: 3rem; }
  .mnemon-learning, .mnemon-threshold { margin-top: 3.5rem; }
  .mnemon-learning > header > p:last-child { grid-column: 1; grid-row: auto; margin-top: 1.5rem; }
  .mnemon-learning-loop { grid-template-columns: 1fr; }
  .mnemon-learning-loop li { min-height: 0; border-right: 0; border-bottom: 1px solid var(--ink); }
  .mnemon-learning-loop li:last-child { border-bottom: 0; }
  .mnemon-learning-loop li p { margin-top: 1.5rem; }
  .mnemon-entry-card { grid-template-columns: 1fr; gap: 1rem; }
  .mnemon-entry-card > div, .mnemon-entry-card h2, .mnemon-entry-card > p { grid-column: 1; }
  .article-reading-tools { align-items: stretch; flex-direction: column; }
  /* Keep article media within reach on narrow screens without cropping images. */
  .article-view { padding: 1.5rem 1.25rem; }
  .article-kicker { margin-bottom: 1.5rem; }
  .article-view h1 { font-size: clamp(2.25rem, 9.5vw, 3.3rem); line-height: 1.02; }
  .article-dek { font-size: 1.2rem; margin: 1.25rem 0; }
  .article-cover { width: 100%; margin: 1.25rem 0; }
  .article-audio { margin: 1.25rem 0; }
  .article-body { margin-top: 2rem; }
  .article-reading-tools button { width: 100%; }
  .article-details-content { padding-inline: .9rem .35rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition-duration: .01ms !important; }
}

.language-switcher a { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
a.article-link, a.search-item { color:inherit; text-decoration:none; }
/* Equal opt-in and opt-out controls, available in both appearances and all languages. */
.privacy-panel { position:fixed; z-index:80; bottom:1rem; right:1rem; width:min(34rem,calc(100% - 2rem)); max-height:75vh; overflow:auto; padding:1.2rem; border:1px solid var(--line); background:var(--paper); color:var(--ink); box-shadow:0 8px 35px #0003; font-size:.9rem; }
.privacy-panel[hidden] { display:none; }
.privacy-panel h2 { font-size:1.25rem; margin:0 0 .6rem; }
.privacy-panel p { margin:.6rem 0; line-height:1.5; }
.privacy-actions { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }
.privacy-actions button { flex:1; padding:.7rem; border:1px solid currentColor; background:transparent; color:inherit; font:inherit; font-weight:700; cursor:pointer; }
.privacy-actions button:hover, .privacy-actions button:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.privacy-panel summary { cursor:pointer; text-decoration:underline; }
.privacy-panel a { color:inherit; }

/* Listening is a separate action from opening an article. */
.audio-preview-card { min-width: 0; display: flex; flex-direction: column; }
.audio-preview-card > .article-link { flex: 1; }
.preview-audio-button { display: inline-flex; align-items: center; gap: .55rem; align-self: flex-start; min-height: 44px; margin: .75rem 0 1.25rem; padding: .6rem 1rem; border: 1px solid var(--ink); border-radius: 3px; background: var(--paper); color: var(--ink); font: 650 .9rem/1.3 var(--sans); cursor: pointer; }
.preview-audio-button svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.6; }
.preview-audio-button:hover, .preview-audio-button[aria-expanded="true"] { background: var(--ink); color: var(--paper); }
.preview-audio-button:focus-visible, .preview-audio-player :focus-visible { outline: 2px solid var(--rust); outline-offset: 4px; }
.audio-preview-pinned { border-left: 1px solid var(--ink); }
.audio-preview-pinned:last-child { border-right: 1px solid var(--ink); }
.audio-preview-pinned > .pinned-story { border: 0; padding-bottom: 1rem; }
.audio-preview-pinned > .preview-audio-button { margin-left: clamp(1.5rem, 3vw, 3.25rem); }
.audio-preview-selected { border-left: 1px solid var(--ink); }
.audio-preview-selected:last-child { border-right: 1px solid var(--ink); }
.audio-preview-selected > .analysis-card { border: 0; }
.audio-preview-selected > .preview-audio-button { margin-left: 1.6rem; }
.audio-preview-selected:has(.dark-card) { background: var(--forest); }
#latestArticles .audio-preview-card { border-bottom: 1px solid var(--ink); }
#latestArticles .audio-preview-card > .article-link { border-bottom: 0; padding-bottom: .5rem; }
.audio-preview-archive { border-bottom: 1px solid var(--line); }
.audio-preview-archive > .article-link { border-bottom: 0; padding-bottom: .75rem; }
.audio-preview-archive > .preview-audio-button { margin-left: calc(140px + 2rem); }
.preview-audio-open { padding-bottom: 320px; }
.preview-audio-player { position: fixed; z-index: 80; bottom: 1rem; right: 1rem; width: min(620px, calc(100% - 2rem)); max-height: 65dvh; overflow: auto; padding: 1rem 1.25rem; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); box-shadow: 0 8px 36px #0004; }
.preview-audio-heading { display: flex; align-items: center; gap: 1rem; }
.preview-audio-heading > a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 650 1rem/1.4 var(--sans); }
.preview-audio-heading > button { flex: none; min-width: 44px; min-height: 44px; border: 1px solid var(--line); background: transparent; color: inherit; font-size: 1.6rem; cursor: pointer; }
.preview-audio-player .article-audio { margin: .5rem 0 0; padding: .75rem 0 0; border-bottom: 0; }
.preview-audio-player .article-audio h2 { font-size: .85rem; }
.preview-audio-player .article-audio p { margin: .25rem 0 .5rem; font-size: .8rem; }
@media (max-width: 760px) {
  .audio-preview-pinned, .audio-preview-selected { border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
  .audio-preview-pinned > .preview-audio-button { margin-left: 1.35rem; }
  .audio-preview-archive > .preview-audio-button { margin-left: 0; }
  .preview-audio-player { bottom: 0; right: 0; width: 100%; padding: .65rem 1rem max(.65rem, env(safe-area-inset-bottom)); }
}

/* Single progressive assembly with the five complete project cards. */
.project-assembly .project-card { min-height: 0; grid-template-rows: none; gap: 1rem; background: var(--paper); }
.project-assembly .project-card .category { margin: .75rem 0 0; }
.project-assembly .project-card h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.5rem); line-height: 1; overflow-wrap: anywhere; }
.project-assembly .project-logo { float: none; display: block; width: clamp(5rem, 8vw, 7rem); margin: 0 0 1rem; }
.project-assembly .project-card > p { padding: 0; max-width: 100%; }
.project-assembly .project-card > strong { margin-top: 1rem; }
.project-assembly .project-assembly-meta { color: var(--rust); }
[data-skin="techno"] .project-assembly .project-card { background: var(--surface); }

/* Project status labels may wrap inside the single-column mobile grid. */
@media (max-width: 760px) {
  .project-row .status {
    width: auto;
  }
}

/* NB 320/360 px: allow the word «KI-systemutvikler.» to wrap. */
@media (max-width:760px){.about-strip h2{overflow-wrap:anywhere}}

/* Keep the privacy dialog and its translated controls inside narrow viewports. */
.privacy-panel { max-width: calc(100vw - 2rem); overflow-wrap: anywhere; }
.privacy-actions button { min-width: 0; }

/* 2026-10-25: approved public states stay in their own column/line. */
.project-row { grid-template-columns: 180px minmax(0, 1fr); }
.project-row .test-label { align-self: start; justify-content: flex-start; gap: 1rem; }
.project-row .status { max-width: 100%; white-space: nowrap; }
.project-card-top { flex-direction: column; align-items: flex-start; }
.project-card-top > span:last-child, .project-meta > span:last-child { white-space: nowrap; }
.project-reading-list { padding-left: 1.4rem; line-height: 1.7; }
.project-reading-list li + li { margin-top: 1rem; }
@media (max-width:760px) {
  .project-row { grid-template-columns: minmax(0, 1fr); }
  .project-row .test-label { flex-direction: column; align-items: flex-start; }
}
