/* Self-hosted (SIL OFL). No third-party font request: the privacy pages name no font CDN, and now none is used. */
@font-face{font-family:'Space Grotesk';font-weight:400;font-display:swap;src:url('/assets/fonts/space-grotesk-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-weight:500;font-display:swap;src:url('/assets/fonts/space-grotesk-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-weight:700;font-display:swap;src:url('/assets/fonts/space-grotesk-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Space Mono';font-weight:400;font-display:swap;src:url('/assets/fonts/space-mono-latin-400-normal.woff2') format('woff2')}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
:root{
  /* RULE: --red is for lines only (4.2:1 on paper fails small text). Every red glyph uses --red-t (5.6:1). */
  --paper:#FAFAF8; --ink:#17191B; --ink-2:#3E4043; --red:#E4322B; --red-t:#C1271D; --rule:#D9D8D2; --black:#0F0F0F; --faint:#5C5E55;
  --bronze:var(--red-t); --bronze-text:var(--red-t);
  --edge:clamp(20px,5vw,80px); --col:min(680px, calc(100% - 2 * var(--edge)));
  --serif:'Space Grotesk',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  --sans:var(--serif);
  --mono:'Space Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
}
html{ -webkit-text-size-adjust:100%; }
body{ background:var(--paper); color:var(--ink); font-family:var(--serif); line-height:1.7; -webkit-font-smoothing:antialiased; display:flex; background-image:linear-gradient(rgba(185,185,177,.16) 1px,transparent 1px); background-size:100% 8px; flex-direction:column; min-height:100vh; }
a{ color:var(--ink); text-decoration-color:var(--red); text-underline-offset:3px; }
a:focus-visible{ outline:2px solid var(--bronze-text); outline-offset:2px; }

.site-head{ max-width:1240px; width:100%; margin:0 auto; padding:18px var(--edge); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.wordmark{ font-family:var(--sans); font-weight:500; letter-spacing:-0.02em; font-size:17px; color:var(--ink); text-decoration:none; }
.site-nav{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px 20px; }
.site-nav a{ color:var(--faint); text-decoration:none; }
.site-nav a[aria-current]{ color:var(--red-t); }
.site-lang b{ color:var(--ink); font-weight:400; }
.site-nav a:hover{ color:var(--red-t); }

main{ flex:1 0 auto; }
.reading{ width:var(--col); margin:0 0 0 max(var(--edge), calc((100% - 1240px) / 2 + var(--edge))); padding:48px 0 80px; }
.wrap{ width:var(--col); margin:0 0 0 max(var(--edge), calc((100% - 1240px) / 2 + var(--edge))); padding:48px 0 80px; }

.coursenav{ width:var(--col); margin:0 0 0 max(var(--edge), calc((100% - 1240px) / 2 + var(--edge))); padding:18px 0 0; font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--bronze); display:flex; justify-content:space-between; gap:12px; }
.coursenav a{ color:var(--bronze-text); text-decoration:none; }

.eyebrow{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--bronze-text); }
h1{ font-family:var(--sans); font-weight:500; letter-spacing:-0.03em; font-size:clamp(28px,5.2vw,42px); line-height:1.1; margin-top:14px; color:var(--ink); }
.dek{ font-family:var(--mono); font-size:14px; line-height:1.65; color:var(--faint); margin-top:18px; }
.byline{ font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--faint); margin-top:20px; padding-bottom:22px; border-bottom:1px solid var(--rule); }

.reading h2{ font-family:var(--sans); font-weight:700; letter-spacing:-0.015em; font-size:23px; line-height:1.25; margin-top:42px; color:var(--ink); }
.reading h2 + p{ margin-top:14px; }
.reading p:not([class]){ margin-top:18px; font-size:19px; }
.reading ul{ margin-top:18px; padding-left:0; list-style:none; }
.reading ul li{ position:relative; padding-left:22px; margin-top:12px; font-size:19px; }
.reading ul li::before{ content:""; position:absolute; left:0; top:.85em; width:12px; height:1px; background:var(--red); }
.reading strong{ font-weight:700; }

.next{ margin-top:54px; padding-top:22px; border-top:1px solid var(--rule); }
.next a{ font-family:var(--sans); font-weight:500; font-size:17px; }
.end{ margin-top:18px; font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--bronze-text); }

.hero{ width:var(--col); margin:0 0 0 max(var(--edge), calc((100% - 1240px) / 2 + var(--edge))); padding:80px 0 40px; }
.hero h1{ font-size:clamp(34px,6vw,52px); }
.hero .lede{ font-size:21px; line-height:1.6; color:var(--ink-2); margin-top:22px; }
.hero-links{ margin-top:34px; border-top:1px solid var(--rule); }
.hero-links a{ display:block; padding:16px 0; border-bottom:1px solid var(--rule); text-decoration:none; }
.hero-links a strong{ display:block; font-family:var(--sans); font-weight:500; font-size:22px; color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:2px; }
.hero-links a span{ display:block; margin-top:5px; font-size:17px; color:var(--ink-2); }
.hero-links a:hover strong{ text-decoration-thickness:2px; }
.hero .sig{ font-family:var(--mono); font-size:12px; color:var(--bronze-text); margin-top:24px; }

.syllabus{ width:var(--col); margin:0 0 0 max(var(--edge), calc((100% - 1240px) / 2 + var(--edge))); padding:48px 0 80px; }
.syllabus ol{ margin-top:24px; padding-left:0; list-style:none; }
.syllabus li{ position:relative; padding:16px 0 16px 56px; border-bottom:1px solid var(--rule); }
.syllabus .no{ position:absolute; left:0; top:22px; font-family:var(--mono); font-size:11px; color:var(--red-t); letter-spacing:.04em; }
.syllabus li a{ font-family:var(--sans); font-weight:500; font-size:18px; color:var(--ink); text-decoration:none; }
.syllabus li a:hover{ color:var(--bronze-text); }
.syllabus li.soon a{ color:var(--ink-2); pointer-events:none; }
.syllabus li .tag{ display:block; font-family:var(--serif); font-size:14.5px; color:var(--ink-2); margin-top:4px; }

@media (max-width:600px){ .reading p:not([class]),.reading ul li{ font-size:18px; } .site-head{ padding-block:16px; } }
.site-foot{ max-width:1240px; margin:0 auto; width:100%; padding:24px var(--edge) 32px; border-top:1px solid var(--rule); font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--faint); }
.foot-nav{ margin-bottom:8px; }
.foot-nav a{ color:var(--bronze-text); text-decoration:none; }
.foot-nav a:hover{ text-decoration:underline; }
.skip{ position:absolute; left:-9999px; top:0; background:var(--ink); color:var(--paper); padding:8px 14px; font-family:var(--mono); font-size:12px; z-index:100; }
.skip:focus{ left:8px; top:8px; }

.reading .label{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--bronze-text); margin-top:46px; }
.reading .label + h2{ margin-top:10px; }

.notelist{ width:var(--col); margin:0 0 0 max(var(--edge), calc((100% - 1240px) / 2 + var(--edge))); padding:48px 0 80px; }
.notelist ul{ margin-top:24px; padding-left:0; list-style:none; }
.notelist li{ position:relative; padding:18px 0 18px 56px; border-bottom:1px solid var(--rule); }
.notelist .no{ position:absolute; left:0; top:24px; font-family:var(--mono); font-size:11px; color:var(--red-t); letter-spacing:.04em; }
.notelist li a{ font-family:var(--sans); font-weight:500; font-size:20px; color:var(--ink); text-decoration:none; letter-spacing:-0.01em; }
.notelist li a:hover{ color:var(--bronze-text); }
.notelist .tag{ display:block; font-size:16px; color:var(--ink-2); margin-top:5px; }
.notelist .date{ display:block; font-family:var(--mono); font-size:12px; color:var(--bronze-text); margin-top:7px; letter-spacing:.04em; }

.qa{ width:var(--col); margin:0 0 0 max(var(--edge), calc((100% - 1240px) / 2 + var(--edge))); padding:48px 0 80px; }
.qa .q{ font-family:var(--sans); font-weight:700; letter-spacing:-0.015em; font-size:20px; line-height:1.3; margin-top:36px; color:var(--ink); }
.qa .q + p{ margin-top:10px; font-size:18px; color:var(--ink-2); }

.glossary{ width:var(--col); margin:0 0 0 max(var(--edge), calc((100% - 1240px) / 2 + var(--edge))); padding:48px 0 80px; }
.glossary dl{ margin-top:8px; }
.glossary dt{ font-family:var(--sans); font-weight:700; font-size:19px; margin-top:30px; color:var(--ink); }
.glossary dd{ margin-top:6px; font-size:18px; color:var(--ink-2); }

.reading ol{ margin-top:18px; padding-left:0; list-style:none; counter-reset:step; }
.reading ol li{ position:relative; padding-left:40px; margin-top:16px; font-size:19px; }
.reading ol li::before{ counter-increment:step; content:counter(step, decimal-leading-zero); position:absolute; left:0; top:.45em; font-family:var(--mono); font-size:11px; letter-spacing:.04em; color:var(--red-t); }

/* Findings in notes: the draft's red rule. */
.reading blockquote{ margin-top:22px; padding:2px 0 2px 18px; border-left:1px solid var(--red); }
.reading blockquote p:not([class]){ margin-top:0; }
@media (max-width:600px){ .notelist li{ padding-left:44px; } }

/* Hero datum (from the draft): the wordmark sits on the red zero line. Decorative only, aria-hidden; the line stays in the hero and never follows the scroll. */
main{ overflow-x:clip; }
.hero .mark{ position:relative; font-family:var(--sans); font-weight:400; letter-spacing:-0.045em; line-height:.9; font-size:clamp(64px,13vw,168px); color:var(--ink); margin-bottom:40px; }
.hero .mark::after{ content:""; position:absolute; left:calc(-1 * var(--edge)); width:100vw; bottom:-6px; height:1px; background:var(--ink); }
.hero{ padding-top:56px; }

/* Legal pages: <address> upright (Space Grotesk has no italic, so the browser default would be a synthetic slant). */
.reading address{ font-style:normal; margin-top:18px; font-size:19px; line-height:1.6; }

/* Homepage bands (copy from the draft, research mode). */
.band{ width:var(--col); margin:0 0 0 max(var(--edge), calc((100% - 1240px) / 2 + var(--edge))); padding:72px 0 8px; border-top:1px solid var(--rule); }
.band-wide{ width:min(1080px, calc(100% - 2 * var(--edge))); }
.band h2{ font-family:var(--sans); font-weight:500; letter-spacing:-0.03em; font-size:clamp(28px,4.4vw,42px); line-height:1.12; margin-top:12px; max-width:20ch; }
.band-lede{ margin-top:18px; font-size:19px; line-height:1.65; color:var(--ink-2); max-width:62ch; }
.band-lede b{ color:var(--ink); font-weight:500; }
.points{ list-style:none; margin-top:28px; counter-reset:pt; max-width:62ch; }
.points li{ position:relative; padding:16px 0 16px 56px; border-top:1px solid var(--rule); font-size:17px; color:var(--ink-2); }
.points li:last-child{ border-bottom:1px solid var(--rule); }
.points li::before{ counter-increment:pt; content:counter(pt, decimal-leading-zero); position:absolute; left:0; top:20px; font-family:var(--mono); font-size:11px; color:var(--red-t); }
.points b{ display:block; color:var(--ink); font-weight:500; }

/* The reading instrument (assets/reading.js). Illustrative data. */
#reading{ --rd-u:30px; }
.rd-q-box{ margin-top:30px; display:grid; grid-template-columns:auto 1fr; gap:6px 18px; max-width:780px; font-size:16px; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:14px 0; }
.rd-q-box dt{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); padding-top:4px; }
.rd-src{ display:block; font-family:var(--mono); font-size:11px; color:var(--faint); }
.rd-controls,.rd-stage,.rd-summary,.rd-detail{ display:none; }
.rd-live .rd-controls{ display:flex; } .rd-live .rd-stage,.rd-live .rd-summary,.rd-live .rd-detail{ display:block; }
.rd-controls{ flex-wrap:wrap; gap:12px 28px; margin-top:22px; align-items:center; }
.rd-seg{ display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); }
.rd-seg button{ font:inherit; letter-spacing:inherit; text-transform:inherit; background:none; border:1px solid var(--faint); color:var(--ink); padding:6px 10px; cursor:pointer; min-width:44px; min-height:44px; }
.rd-seg button[aria-pressed="true"]{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.rd-seg button:focus-visible,.rd-col:focus-visible{ outline:2px solid var(--red-t); outline-offset:2px; }
.rd-again{ display:none; } .rd-once .rd-again{ display:inline-block; }
.rd-stage{ position:relative; margin-top:26px; padding-left:44px; }
.rd-scale{ position:absolute; left:0; top:0; width:40px; font-family:var(--mono); font-size:10px; color:var(--faint); }
.rd-scale span{ position:absolute; left:0; transform:translateY(-50%); }
.rd-scale span.z{ color:var(--red-t); transform:translateY(-50%); }
.rd-plot{ position:relative; height:calc(var(--rd-u) * 6 + 20px); display:grid; grid-template-columns:repeat(7,1fr); }
.rd-zero{ position:absolute; left:-44px; right:0; height:1px; background:var(--red); pointer-events:none; }
.rd-grid{ position:absolute; left:0; right:0; height:1px; background:var(--rule); opacity:.6; pointer-events:none; }
.rd-col{ position:relative; background:none; border:0; cursor:pointer; font:inherit; color:inherit; }
.rd-col:hover .rd-dot,.rd-col.sel .rd-dot{ box-shadow:0 0 0 5px rgba(193,39,29,.12); }
.rd-stem{ position:absolute; left:50%; width:2px; transform:translateX(-50%); background:var(--ink); transition:top .5s cubic-bezier(.2,.8,.2,1),height .5s cubic-bezier(.2,.8,.2,1),width .3s,opacity .3s; }
.rd-dot{ position:absolute; left:50%; width:12px; height:12px; border-radius:50%; transform:translate(-50%,-50%); background:var(--ink); transition:top .5s cubic-bezier(.2,.8,.2,1),opacity .3s,box-shadow .2s; }
.rd-val{ position:absolute; left:50%; transform:translateX(-50%); font-family:var(--mono); font-size:11px; white-space:nowrap; transition:top .5s cubic-bezier(.2,.8,.2,1),opacity .3s; }
.rd-col.neg .rd-stem,.rd-col.neg .rd-dot{ background:var(--red-t); } .rd-col.neg .rd-val{ color:var(--red-t); }
.rd-col.on0 .rd-dot{ background:var(--paper); border:2px solid var(--ink); }
.rd-col.dim .rd-stem,.rd-col.dim .rd-dot,.rd-col.dim .rd-val{ opacity:0; }
.rd-labels{ display:grid; grid-template-columns:repeat(7,1fr); margin:8px 0 0; font-family:var(--mono); font-size:11px; color:var(--faint); text-align:center; }
.rd-labels span.sel{ color:var(--ink); }
.rd-summary{ margin-top:18px; font-family:var(--mono); font-size:12px; color:var(--faint); min-height:2.4em; max-width:780px; }
.rd-summary b{ color:var(--ink); font-weight:400; } .rd-summary .r{ color:var(--red-t); }
.rd-detail{ margin-top:18px; max-width:780px; border-left:1px solid var(--red); padding:4px 0 4px 18px; min-height:150px; }
.rd-meta{ font-family:var(--mono); font-size:11px; letter-spacing:.04em; color:var(--faint); }
.rd-verdict{ font-family:var(--mono); font-size:12px; margin-top:10px; } .rd-verdict.neg{ color:var(--red-t); }
.rd-detail blockquote{ margin-top:8px; font-size:20px; line-height:1.45; letter-spacing:-.01em; }
.rd-tr,.rd-note{ font-family:var(--mono); font-size:11px; color:var(--faint); margin-top:8px; }
.rd-note{ margin-top:22px; max-width:780px; }
@media (max-width:640px){ #reading{ --rd-u:26px; } .rd-stage{ padding-left:30px; } .rd-scale{ width:28px; } .rd-zero{ left:-30px; } .rd-q-box{ grid-template-columns:1fr; } .rd-detail blockquote{ font-size:18px; } .band{ padding-top:56px; } }
@media (prefers-reduced-motion:reduce){ .rd-stem,.rd-dot,.rd-val{ transition:none; } }

/* The datum (assets/datum.js): a red zero line pinned to the viewport, with a
   +100 to -100 scale in the left gutter. Desktop only, JS only (hidden otherwise). */
.datum{ display:none; }
.datum.on{ display:block; position:fixed; left:0; right:0; top:var(--datum-top); height:0; pointer-events:none; z-index:5; }
.datum-line i{ position:absolute; top:0; left:0; right:0; height:1px; background:var(--red); transition:opacity .25s; }
.datum-line i + i{ display:none; }
.datum.gap .datum-line i:first-child{ right:auto; width:calc(var(--col-l) - 16px); }
.datum.gap .datum-line i + i{ display:block; left:calc(var(--col-l) + var(--col-w) + 16px); }
.datum-scale{ position:absolute; left:6px; top:0; font-family:var(--mono); font-size:9px; color:var(--faint); transition:opacity .25s; }
.datum-scale span{ position:absolute; left:0; transform:translateY(-50%); white-space:nowrap; }
.datum-scale span:nth-child(1){ top:-80px; } .datum-scale span:nth-child(2){ top:-40px; }
.datum-scale span.z{ top:-8px; color:var(--red-t); }
.datum-scale span:nth-child(4){ top:40px; } .datum-scale span:nth-child(5){ top:80px; }
.datum.off .datum-line i,.datum.off .datum-scale{ opacity:0; }
@media (max-width:900px){ .datum.on{ display:none; } .hero .mark::after{ background:var(--red); bottom:auto; top:-14px; } }

.foot-id{ margin-top:10px; max-width:80ch; text-transform:none; letter-spacing:.02em; line-height:1.6; }

/* Hero subtitle from the draft (D1). */
.hero .sub{ font-family:var(--mono); font-size:14px; line-height:1.65; color:var(--faint); max-width:56ch; margin:-12px 0 36px; }
.hero .sub span{ color:var(--red-t); }


/* Hero lead block (draft: the red-ruled finding under the subtitle). */
.lead-block{ border-left:1px solid var(--red); padding:4px 0 4px 18px; margin:0 0 44px; max-width:60ch; }
.lb-text{ font-size:20px; line-height:1.55; color:var(--ink); letter-spacing:-.005em; }
.lb-meta{ font-family:var(--mono); font-size:11px; color:var(--faint); margin-top:12px; letter-spacing:.02em; }
.lb-meta a{ color:var(--faint); }
#reading{ scroll-margin-top:40px; }

.band-cta{ margin-top:22px; font-family:var(--mono); font-size:12px; letter-spacing:.04em; }

/* Pending-translation notice reads like a dek, not a stray line. */
.syllabus .note,.notelist .note{ font-family:var(--mono); font-size:14px; line-height:1.65; color:var(--faint); margin-top:18px; }

/* Page head on the zero line (Studio cycle B): Course, Notes, Method in EN/DE/HU. The rule opens the list, so lists lose their own top border. */
.ph-zero{ position:relative; height:1px; margin:30px 0 0; }
.ph-zero::before{ content:""; position:absolute; top:0; left:calc(-1 * max(var(--edge), (100vw - 1240px) / 2 + var(--edge))); width:100vw; height:1px; background:var(--red); }
.ph-zero .z{ position:absolute; right:calc(100% + 12px); top:-18px; font-family:var(--mono); font-size:10px; color:var(--red-t); letter-spacing:.04em; }
.ph-zero .ph-meta{ position:absolute; right:0; top:-22px; font-family:var(--mono); font-size:11px; color:var(--faint); letter-spacing:.04em; }
.syllabus .ph-zero + ol, .notelist .ph-zero + ul{ margin-top:0; }
.byline.ph{ border-bottom:0; padding-bottom:0; }
@media (max-width:900px){ .ph-zero .z{ right:auto; left:0; top:-18px; } }

/* Notes index: a short "start here" trio above the list. */
.notelist .dek + .dek{ margin-top:10px; }
.starthere-h{ margin-top:30px; }
.starthere{ margin-top:10px; padding-left:0; list-style:none; }
.starthere li{ padding:8px 0; border:0; }
.starthere li a{ font-family:var(--sans); font-weight:500; font-size:17px; color:var(--ink); text-decoration-color:var(--red); }
.starthere .no{ position:static; font-family:var(--mono); font-size:11px; color:var(--red-t); margin-right:10px; }
.starthere .tag{ display:block; font-size:15px; color:var(--ink-2); margin-top:2px; }
.syllabus .dek + .dek{ margin-top:10px; }

/* cycle 25: homepage list bands */
.band-list{ margin-top:28px; padding-left:0; list-style:none; border-top:1px solid var(--rule); }
.band-list li{ position:relative; padding:14px 0 14px 56px; border-bottom:1px solid var(--rule); }
.band-list .no{ position:absolute; left:0; top:20px; font-family:var(--mono); font-size:11px; color:var(--red-t); letter-spacing:.04em; }
.band-list li a{ font-family:var(--sans); font-weight:500; font-size:18px; color:var(--ink); text-decoration:none; }
.band-list li a:hover{ color:var(--bronze-text); }
.band-list .tag{ display:block; font-size:15.5px; color:var(--ink-2); margin-top:3px; }
.band-list li.bl-split{ border-top:1px solid var(--ink); }
@media (max-width:600px){ .band-list li{ padding-left:44px; } }

/* cycle 27: studies */
.studies .study{ padding:28px 0 32px; border-bottom:1px solid var(--rule); }
.studies .study h2{ font-family:var(--sans); font-weight:500; font-size:clamp(24px,3.4vw,32px); letter-spacing:-0.02em; }
.studies .study h2 a{ color:var(--ink); text-decoration:none; }
.studies .study h2 a:hover{ color:var(--bronze-text); }
.studies .study-meta{ font-family:var(--mono); font-size:12px; color:var(--red-t); letter-spacing:.04em; margin-top:8px; }
.studies .study > p:not(.study-meta):not(.band-cta):not(.cite){ margin-top:14px; font-size:17px; line-height:1.65; color:var(--ink-2); max-width:62ch; }
.studies .cite{ margin-top:18px; font-family:var(--mono); font-size:12.5px; line-height:1.6; color:var(--faint); }
.studies .cite span{ display:block; color:var(--red-t); letter-spacing:.04em; text-transform:uppercase; font-size:11px; }
.studies .studies-next{ margin-top:28px; }

/* cycle 34: example reading */
.example h2{ font-family:var(--sans); font-weight:500; font-size:22px; letter-spacing:-0.01em; margin-top:40px; }
.example > p:not(.eyebrow):not(.dek):not(.note):not(.cite):not(.band-cta), .example ul{ margin-top:12px; font-size:17px; line-height:1.65; color:var(--ink-2); max-width:62ch; }
.example ul{ padding-left:18px; } .example li{ margin-top:6px; }
.tbl{ margin-top:16px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.tbl table{ border-collapse:collapse; font-size:14.5px; min-width:100%; }
.tbl th,.tbl td{ text-align:left; vertical-align:top; padding:8px 12px 8px 0; border-bottom:1px solid var(--rule); }
.tbl thead th{ font-family:var(--mono); font-size:11px; font-weight:400; color:var(--faint); letter-spacing:.04em; text-transform:uppercase; }
.tbl td.neg,.tbl .w.neg{ color:var(--red-t); }
.tbl .w{ font-family:var(--mono); font-size:12px; color:var(--faint); margin-left:6px; }
.tbl .board td,.tbl .board th{ font-variant-numeric:tabular-nums; white-space:nowrap; }
.tbl tr.sum th,.tbl tr.sum td{ border-top:1px solid var(--ink); }
.example pre.csv{ margin-top:14px; font-family:var(--mono); font-size:12px; line-height:1.5; color:var(--ink-2); max-height:220px; overflow:auto; padding:12px; border:1px solid var(--rule); }
.example .cite{ margin-top:12px; font-family:var(--mono); font-size:12px; color:var(--faint); word-break:break-all; }
.example .cite span{ display:block; color:var(--red-t); font-size:11px; letter-spacing:.04em; text-transform:uppercase; }
.example ul li{ position:static; padding:0; border:0; list-style:disc; }
.example ul li a{ font:inherit; font-size:inherit; color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); }

/* cycle 36: Eye lifts (gates/EYE-2026-10-01.md) */
.tbl .board thead th{ white-space:normal; }
@media (max-width:520px){ .tbl th,.tbl td{ padding-right:8px; } }
@media (max-width:640px){
  .site-nav a, .site-lang a{ display:inline-flex; align-items:center; min-height:44px; padding:0 6px; }
  .site-lang a{ min-width:44px; justify-content:center; }
}
.points li:last-child, .band-list li:last-child{ border-bottom:0; }
main > .band:last-of-type{ padding-bottom:72px; }
.example h2 .no{ position:static; font-family:var(--mono); font-size:11px; color:var(--red-t); letter-spacing:.04em; margin-right:10px; vertical-align:middle; }
.example ul{ list-style:none; padding-left:0; }
.example ul li{ position:relative; padding-left:22px; list-style:none; }
.example ul li::before{ content:""; position:absolute; left:0; top:.85em; width:12px; height:1px; background:var(--red); }
.foot-id{ font-size:12px; }
.example pre.csv:focus-visible, .tbl:focus-visible{ outline:2px solid var(--red-t); outline-offset:2px; }
@media (max-width:640px){ .site-nav{ gap:0 2px; } }
/* cycle 37: change record */
.foot-upd{ margin-top:8px; }
.foot-upd a{ color:inherit; }
.change-list{ list-style:none; padding:0; margin-top:8px; }
.change-list li{ padding:22px 0; border-bottom:1px solid var(--rule); font-size:16.5px; line-height:1.6; color:var(--ink-2); }
.change-list li p + p{ margin-top:8px; }
.ch-ba span, .ch-urls{ font-family:var(--mono); font-size:11px; color:var(--red-t); letter-spacing:.04em; text-transform:uppercase; margin-right:8px; }
.ch-urls a{ color:var(--faint); text-transform:none; }
/* cycle 39: the ACE loop */
#ace .ace-tabs{ margin-top:26px; display:flex; flex-wrap:wrap; gap:6px; }
#ace .ace-tabs button{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; background:none; border:1px solid var(--rule); color:var(--ink); padding:0 14px; min-height:44px; cursor:pointer; display:inline-flex; align-items:center; gap:8px; }
#ace .ace-tabs button .no{ color:var(--red-t); }
#ace .ace-tabs button[aria-selected="true"]{ border-color:var(--ink); box-shadow:inset 0 -2px 0 var(--red); }
#ace .ace-tabs .ace-play{ min-width:44px; justify-content:center; border-color:var(--faint); }
#ace .ace-tabs .ace-play[aria-pressed="true"]{ background:var(--ink); color:var(--paper); }
#ace .ace-tabs button:focus-visible{ outline:2px solid var(--red-t); outline-offset:2px; }
#ace .ace-stage{ margin-top:18px; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:28px; align-items:start; }
#ace svg{ width:100%; height:auto; display:block; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
#ace .ace-grid{ stroke:var(--rule); stroke-width:1; }
#ace .ace-zero{ stroke:var(--red); stroke-width:1.5; }
#ace .ace-zl{ font:10px var(--mono); fill:var(--red-t); }
#ace .ace-lab{ font:11px var(--mono); fill:var(--faint); }
#ace .ace-band{ fill:var(--ink); fill-opacity:.07; transition:opacity .5s; }
#ace .ace-ghost{ fill:none; stroke:var(--faint); stroke-width:1; transition:opacity .5s; }
#ace .ace-stem{ stroke:var(--ink); stroke-width:1; transition:y1 .7s, y2 .7s; }
#ace .ace-dot{ fill:var(--ink); transition:cy .7s cubic-bezier(.2,.8,.2,1), fill .3s; }
#ace .ace-dot.neg{ fill:var(--red-t); }
#ace .ace-dot.ok{ fill:var(--paper); stroke:var(--ink); stroke-width:1.5; }
#ace .ace-dot.moved{ stroke:var(--red); stroke-width:3; }
#ace.ace-wait svg{ opacity:.45; transition:opacity .4s; }
#ace .ace-panel p{ font-size:16px; line-height:1.6; color:var(--ink-2); }
#ace .ace-panel p + p{ margin-top:10px; }
#ace .ace-who{ font-family:var(--mono); font-size:11px !important; letter-spacing:.06em; text-transform:uppercase; color:var(--red-t) !important; }
#ace .ace-who.wait{ color:var(--faint) !important; }
#ace .ace-stat{ font-family:var(--mono); font-size:12px !important; color:var(--ink) !important; border-top:1px solid var(--rule); padding-top:10px; }
@media (max-width:760px){ #ace .ace-stage{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){ #ace .ace-dot,#ace .ace-stem,#ace .ace-band,#ace .ace-ghost,#ace.ace-wait svg{ transition:none; } }

/* cycle 40: about + partners */
.about h2{ font-family:var(--sans); font-weight:500; font-size:22px; letter-spacing:-0.01em; margin-top:40px; }
.about h2 .no{ position:static; font-family:var(--mono); font-size:11px; color:var(--red-t); letter-spacing:.04em; margin-right:10px; vertical-align:middle; }
.about > p:not(.eyebrow):not(.dek):not(.note):not(.band-cta), .about > ul{ margin-top:12px; font-size:17px; line-height:1.65; color:var(--ink-2); max-width:62ch; }
.about ul{ list-style:none; padding-left:0; }
.about ul li{ position:relative; padding:0 0 0 22px; border:0; margin-top:8px; }
.about ul li::before{ content:""; position:absolute; left:0; top:.85em; width:12px; height:1px; background:var(--red); }
.about ul li a{ font:inherit; color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); }

.ch-pre-h{ font-family:var(--sans); font-weight:500; font-size:22px; letter-spacing:-0.01em; margin-top:56px; padding-top:20px; border-top:1px solid var(--ink); }
.ch-pre-h .no{ position:static; font-family:var(--mono); font-size:11px; color:var(--red-t); margin-right:10px; vertical-align:middle; }
.ch-pre li{ color:var(--faint); }
.ch-pre li b{ color:var(--ink-2); font-weight:500; }
.ch-ba{ text-transform:none; }

/* cycle 42: ACE tabs carry a one-line definition; the /ace/ loop */
#ace .ace-tabs button[role="tab"]{ flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; padding:8px 14px; }
#ace .ace-tabs .tl{ display:inline-flex; gap:8px; }
#ace .ace-tabs .ts{ font-size:10.5px; letter-spacing:.02em; text-transform:none; color:var(--faint); }
#ace .ace-tabs button[aria-selected="true"] .ts{ color:var(--ink-2); }
.aceloop{ margin:28px 0 8px; display:grid; grid-template-columns:1fr; gap:20px; }
.aceloop .al-ring{ position:relative; width:78%; max-width:360px; aspect-ratio:1; margin:0 auto; }
.aceloop svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.aceloop .al-arc{ fill:none; stroke:var(--rule); stroke-width:2; }
.aceloop .al-arc.co{ stroke-dasharray:4 5; }
.aceloop .al-arc.on{ stroke:var(--red); }
.aceloop .al-zero{ stroke:var(--red); stroke-width:1; }
.aceloop .al-zl{ font:10px var(--mono); fill:var(--red-t); }
.aceloop .al-mid{ font:11px var(--mono); fill:var(--faint); letter-spacing:.06em; }
.aceloop button{ position:absolute; transform:translate(-50%,-50%); min-width:44px; min-height:44px; padding:6px 10px; background:var(--paper); border:1px solid var(--rule); font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); cursor:pointer; white-space:nowrap; }
.aceloop button .no{ color:var(--red-t); margin-right:6px; }
.aceloop button.co{ border-style:dashed; }
.aceloop button[aria-selected="true"]{ border-color:var(--ink); box-shadow:inset 0 -2px 0 var(--red); }
.aceloop button:focus-visible{ outline:2px solid var(--red-t); outline-offset:2px; }
.aceloop .al-panel{ border-top:1px solid var(--ink); padding-top:14px; }
.aceloop .al-panel h3{ font-family:var(--sans); font-weight:500; font-size:22px; letter-spacing:-0.01em; }
.aceloop .al-panel dl{ margin-top:12px; display:grid; grid-template-columns:auto 1fr; gap:8px 14px; font-size:15.5px; line-height:1.55; }
.aceloop .al-panel dt{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--red-t); padding-top:4px; }
.aceloop .al-panel dd{ color:var(--ink-2); margin:0; }
.aceloop .al-dims{ margin-top:6px; display:flex; flex-wrap:wrap; gap:6px; list-style:none; padding:0; }
.aceloop .al-dims a{ display:inline-flex; align-items:center; min-height:32px; padding:0 8px; border:1px solid var(--rule); font-family:var(--mono); font-size:11px; color:var(--ink); text-decoration:none; }
.aceloop .al-dims a:hover{ border-color:var(--ink); }
@media (max-width:760px){ .aceloop{ grid-template-columns:1fr; } }
/* cycle 45: the seven dimensions as an interactive web */
.dimweb{ margin:28px 0 12px; }
.dimweb .dw-stage{ position:relative; height:400px; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.dimweb .dw-col-h{ position:absolute; top:10px; font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); width:44%; }
.dimweb .dw-mh{ left:0; } .dimweb .dw-oh{ right:0; text-align:right; }
.dimweb svg{ position:absolute; inset:0; width:100%; height:100%; }
.dimweb .dw-edge{ fill:none; stroke:var(--rule); stroke-width:1.2; stroke-dasharray:3 4; transition:stroke .3s; }
.dimweb .dw-edge.on{ stroke:var(--red); stroke-width:2; stroke-dasharray:none; }
.dimweb .dw-node{ position:absolute; transform:translate(-50%,-50%); min-height:44px; padding:6px 12px; background:var(--paper); border:1px solid var(--rule); font-family:var(--mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink); cursor:pointer; white-space:nowrap; transition:opacity .3s, border-color .3s; }
.dimweb .dw-node .no{ color:var(--red-t); margin-right:6px; }
.dimweb .dw-node.dw-m{ border-style:dashed; }
.dimweb .dw-node[aria-selected="true"]{ border-color:var(--ink); box-shadow:inset 0 -2px 0 var(--red); }
.dimweb .dw-node.lit{ border-color:var(--ink); }
.dimweb .dw-node.dim{ opacity:.45; }
.dimweb .dw-node:focus-visible{ outline:2px solid var(--red-t); outline-offset:2px; }
.dimweb .dw-panel{ margin-top:18px; }
.dimweb .dw-kind{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--red-t); }
.dimweb .dw-panel h3{ font-family:var(--sans); font-weight:500; font-size:22px; letter-spacing:-0.01em; margin-top:4px; }
.dimweb .dw-panel dl{ margin-top:10px; display:grid; grid-template-columns:auto 1fr; gap:8px 14px; font-size:15.5px; line-height:1.55; }
.dimweb .dw-panel dt{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); padding-top:4px; }
.dimweb .dw-panel dd{ margin:0; color:var(--ink-2); }
.dimweb .dw-note{ margin-top:12px; font-family:var(--mono); font-size:12px; line-height:1.6; color:var(--faint); }
@media (max-width:640px){
  .dimweb .dw-stage{ height:560px; }
  .dimweb .dw-node{ font-size:10px; padding:6px 8px; white-space:normal; max-width:44%; text-align:left; }
  .dimweb .dw-panel dl{ grid-template-columns:1fr; gap:2px; } .dimweb .dw-panel dd{ margin-bottom:8px; }
}
@media (prefers-reduced-motion:reduce){ .dimweb .dw-edge,.dimweb .dw-node{ transition:none; } }
@media (max-width:640px){
  .dimweb .dw-node.dw-m{ left:0 !important; transform:translate(0,-50%); }
  .dimweb .dw-node.dw-o{ left:auto !important; right:0; transform:translate(0,-50%); }
}
