@charset "utf-8";
/* ==========================================================================
   KingOfAEO.net — "Observatory Press"
   Design system for a research publication: a light printed ground, a single
   saturated signal colour reserved for the publication block and for meaning,
   hairline rules instead of boxes, and monospace for every figure, query
   string, dataset field and identifier.

   1. Tokens          6. Publication hero + stat strip
   2. Reset + base    7. Research rows + record lists
   3. Typography      8. Panels, tables, data instruments
   4. Chrome (nav)    9. Answer + entity blocks
   5. Prose           10. Footer + utility
   ========================================================================== */

/* -------------------------------------------------------------- 1. TOKENS */

:root {
  color-scheme: light;

  /* Ground */
  --paper:        #FCFBFA;
  --paper-2:      #F5F1F0;
  --paper-3:      #EDE7E7;
  --paper-ink:    #1A1218;   /* inverted ground for rare dark bands */

  /* Ink ramp — every value below is >= 4.5:1 on --paper */
  --ink:          #16131A;   /* headlines            17.6:1 */
  --ink-2:        #302A34;   /* body                 12.4:1 */
  --ink-3:        #5C5460;   /* meta, captions        7.1:1 */
  --ink-4:        #6E6570;   /* quietest label        5.4:1 */

  /* Signal — deep raspberry. Publication block, links, emphasis. */
  --signal:       #8A0F52;   /*  9.0:1 on paper, 9.3:1 under white */
  --signal-deep:  #6B0B3F;
  --signal-lift:  #A31761;
  --signal-wash:  #FBEFF4;
  --signal-rule:  #E4BFD1;
  --signal-tint:  rgba(138, 15, 82, .07);

  /* Research states. Colour carries status, never mood. */
  --open:         #7A5310;   /* awaiting observation  5.6:1 */
  --open-wash:    #FCF4E4;
  --open-rule:    #E4CE9E;
  --fixed:        #1B5A43;   /* counted / verified    7.2:1 */
  --fixed-wash:   #E8F2EE;
  --fixed-rule:   #A9CCBE;

  /* Rules */
  --rule:         #E4DEDE;
  --rule-2:       #CFC6C8;
  --rule-3:       #B4A9AC;

  /* Type */
  --sans: "Inter", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system,
          "Helvetica Neue", Arial, sans-serif;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua",
           Georgia, "Times New Roman", serif;
  --mono: ui-monospace, "Cascadia Mono", "SF Mono", "Segoe UI Mono", "Roboto Mono",
          Menlo, Consolas, "Liberation Mono", monospace;

  --fs-2xs:  0.6875rem;
  --fs-xs:   0.75rem;
  --fs-sm:   0.8125rem;
  --fs-cap:  0.875rem;
  --fs-base: 1rem;
  --fs-md:   clamp(1.0625rem, 1.02rem + .2vw, 1.1875rem);
  --fs-lg:   clamp(1.1875rem, 1.1rem + .38vw, 1.4375rem);
  --fs-xl:   clamp(1.4375rem, 1.3rem + .68vw, 1.875rem);
  --fs-2xl:  clamp(1.75rem, 1.5rem + 1.15vw, 2.6rem);
  --fs-3xl:  clamp(2.1rem, 1.6rem + 2.3vw, 3.6rem);
  --fs-4xl:  clamp(2.4rem, 1.55rem + 3.6vw, 4.6rem);

  /* Space */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px; --s-5: 22px;
  --s-6: 30px; --s-7: 44px; --s-8: 64px; --s-9: 92px; --s-10: 128px;

  --r-xs: 1px;
  --r-sm: 2px;
  --r-md: 3px;
  --r-lg: 4px;

  --measure: 68ch;
  --shell: 1180px;
  --shell-wide: 1400px;
  --t-fast: 130ms cubic-bezier(.32,.06,.28,1);
}

/* ---------------------------------------------------------- 2. RESET/BASE */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 104px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink-2);
  font-family: var(--sans);
  font-size: var(--fs-base);
  line-height: 1.68;
  min-height: 100%;
  overflow-x: hidden;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "kern" 1;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; }
img { height: auto; display: block; }

::selection { background: var(--signal); color: #fff; }

a { color: var(--signal); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--signal-deep); }

:focus-visible {
  outline: 2px solid var(--signal);
  outline-offset: 2px;
  border-radius: var(--r-sm);
}

hr {
  border: 0;
  border-top: 1px solid var(--rule);
  margin: var(--s-7) 0;
}

/* Shell */
.shell {
  width: min(100% - 2.5rem, var(--shell));
  margin-inline: auto;
}
@media (max-width: 560px) { .shell { width: min(100% - 1.75rem, var(--shell)); } }

.stack-lg > * + * { margin-top: var(--s-7); }
.stack > * + * { margin-top: var(--s-5); }

.vh {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.skip {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--signal); color: #fff; padding: 10px 18px;
  font: 600 var(--fs-sm)/1 var(--sans); letter-spacing: .02em;
}
.skip:focus { left: 12px; top: 12px; }

/* ------------------------------------------------------- 3. TYPOGRAPHY */

h1, h2, h3, h4, h5, h6 {
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 650;
  letter-spacing: -0.018em;
  line-height: 1.14;
  margin: 0 0 var(--s-4);
  text-wrap: balance;
}
h1 { font-size: var(--fs-3xl); line-height: 1.06; letter-spacing: -0.03em; }
h2 { font-size: var(--fs-2xl); line-height: 1.1; letter-spacing: -0.024em; }
h3 { font-size: var(--fs-lg); line-height: 1.22; letter-spacing: -0.014em; }
h4 { font-size: var(--fs-md); line-height: 1.3; }
h5, h6 { font-size: var(--fs-cap); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); font-family: var(--mono); font-weight: 600; }

@media (max-width: 430px) {
  h1 { font-size: clamp(1.85rem, 7.6vw, 2.3rem); }
  h2 { font-size: clamp(1.45rem, 6.2vw, 1.8rem); }
}

p { margin: 0 0 var(--s-4); }
p:last-child { margin-bottom: 0; }

strong, b { color: var(--ink); font-weight: 640; }
em { font-style: italic; }
small { font-size: var(--fs-sm); }

.hl {
  color: var(--signal);
  font-weight: 660;
}

blockquote {
  margin: var(--s-6) 0;
  padding: 0 0 0 var(--s-5);
  border-left: 2px solid var(--signal);
  font-family: var(--serif);
  font-size: var(--fs-md);
  line-height: 1.5;
  color: var(--ink);
}
blockquote p:last-child { margin-bottom: 0; }

code, kbd, samp, .mono, .tnum, .num {
  font-family: var(--mono);
  font-size: .92em;
  font-variant-numeric: tabular-nums;
}
code {
  background: var(--paper-2);
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  padding: .08em .38em;
  color: var(--ink);
  overflow-wrap: anywhere;
}
kbd {
  background: var(--paper-2); border: 1px solid var(--rule-2);
  border-bottom-width: 2px; border-radius: var(--r-md);
  padding: .1em .4em; font-size: .84em;
}

/* Eyebrows / kickers — the meta row that carries perceived credibility */
.kicker, .entity-kicker, .studio-article__eyebrow, .studio-homehub__eyebrow,
.comp-hero__eyebrow, .vithurs-verification__eyebrow, .capsule__label,
.studio-answer__label, .studio-context__label, .setcap__k, .navpanel__hd,
.studio-toc__title {
  display: block;
  margin: 0 0 var(--s-3);
  font-family: var(--mono);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--signal);
}

.lead, .authority-page__lead, .studio-article__dek, .comp-hero__lead,
.vithurs-verification__lead {
  font-size: var(--fs-md);
  line-height: 1.55;
  color: var(--ink-2);
  max-width: 62ch;
  margin: 0 0 var(--s-5);
}

.dateline, .studio-article__meta, .hero__meta, .entity-metric-row,
.stage2-badges, .panel__ft, .setcap {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2) var(--s-5);
  align-items: baseline;
  font-family: var(--mono);
  font-size: var(--fs-xs);
  letter-spacing: .04em;
  color: var(--ink-3);
  margin: 0;
}
.dateline { padding-top: var(--s-4); border-top: 1px solid var(--rule); margin-top: var(--s-5); }
.dateline--tight { margin-top: var(--s-4); }
.dateline__d { color: var(--ink); font-weight: 600; }
.dateline__n { color: var(--ink-3); }
.hero__meta b, .entity-metric-row b, .panel__ft b, .setcap__k {
  color: var(--ink-4);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-right: .45em;
}
.setcap { margin-top: var(--s-3); }
.setcap__k { display: inline; margin: 0 .5em 0 0; }

/* the little status LED used across the network; here a small square tick */
.led {
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--ink-4);
  margin-right: .55em;
  vertical-align: .08em;
}
.led--cyan { background: var(--signal); }
.led--amber { background: var(--open); }

.em { color: var(--signal); font-weight: 600; }
.dash { color: var(--ink-4); }

/* ------------------------------------------------------------ 4. CHROME */

.studio-progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0;
  background: var(--signal); z-index: 120;
}

/* Slim identification bar */
.studio-topline, .statusbar {
  background: var(--paper-ink);
  color: #E9E1E6;
  border-bottom: 1px solid rgba(255,255,255,.09);
}
.studio-topline__inner, .statusbar__in {
  width: min(100% - 2.5rem, var(--shell));
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2) var(--s-5);
  min-height: 34px;
  padding: 6px 0;
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.studio-topline__inner { justify-content: space-between; }
.studio-topline a { color: #fff; }
.studio-topline__dot {
  display: inline-block; width: 6px; height: 6px;
  background: var(--signal-lift); margin-right: .6em;
}
.studio-topline__role, .statusbar__seg { color: #CFC2C9; }
.statusbar b { color: #fff; font-weight: 600; }
.statusbar .em { color: #F2A9CC; }
.statusbar .led { background: var(--signal-lift); }
.statusbar .led--amber { background: #E7BE72; }
.statusbar__seg { display: inline-flex; align-items: baseline; gap: .4em; }
.statusbar__seg + .statusbar__seg::before { content: none; }
@media (max-width: 700px) {
  .statusbar__seg:nth-child(n+3) { display: none; }
  .studio-topline__role { display: none; }
}

/* Masthead */
.masthead, .studio-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--paper);
  border-bottom: 1px solid var(--rule-2);
}
.masthead__in, .studio-header__inner {
  width: min(100% - 2.5rem, var(--shell));
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-5);
  min-height: 68px;
  padding: var(--s-3) 0;
}

.brand, .studio-brand {
  display: inline-flex; align-items: center; gap: var(--s-3);
  text-decoration: none; color: var(--ink); flex: 0 0 auto;
}
.brand__mark, .studio-brand__mark { flex: 0 0 auto; display: block; }
.brand__txt {
  display: flex; flex-direction: column; line-height: 1.1;
  font-weight: 680; font-size: var(--fs-cap); letter-spacing: -.01em; color: var(--ink);
}
.brand__txt em {
  font-style: normal;
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--signal);
  margin-top: 3px;
  font-weight: 600;
}
.brand:hover .brand__txt { color: var(--signal); }

.nav, .studio-nav {
  display: flex; align-items: center; gap: var(--s-1);
  flex-wrap: wrap; justify-content: flex-end;
}
.nav__link, .navgrp > summary, .studio-nav a {
  display: inline-flex; align-items: center; gap: .4em;
  padding: 8px 11px;
  font-size: var(--fs-sm);
  font-weight: 560;
  color: var(--ink-2);
  text-decoration: none;
  border-radius: var(--r-sm);
  white-space: nowrap;
  cursor: pointer;
}
.nav__link:hover, .navgrp > summary:hover, .studio-nav a:hover {
  color: var(--signal); background: var(--signal-wash);
}
.nav__link[aria-current="page"], .navgrp--current > summary {
  color: var(--signal); box-shadow: inset 0 -2px 0 var(--signal);
  border-radius: 0;
}
.navgrp { position: relative; }
.navgrp > summary { list-style: none; }
.navgrp > summary::-webkit-details-marker { display: none; }
.navgrp > summary::marker { content: ""; }
.chev {
  width: 7px; height: 7px; border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translate(-2px,-2px);
  opacity: .55; flex: 0 0 auto;
}
.navgrp[open] > summary { color: var(--signal); background: var(--signal-wash); }
.navgrp[open] > summary .chev { transform: rotate(225deg) translate(-1px,-1px); }

.navpanel {
  position: absolute; right: 0; top: calc(100% + 9px);
  min-width: 250px; z-index: 60;
  background: var(--paper);
  border: 1px solid var(--rule-2);
  border-top: 2px solid var(--signal);
  border-radius: 0 0 var(--r-md) var(--r-md);
  padding: var(--s-4) 0 var(--s-3);
  box-shadow: 0 14px 28px -22px rgba(22,19,26,.5);
}
.navpanel__hd {
  padding: 0 var(--s-5) var(--s-3);
  margin: 0 0 var(--s-2);
  border-bottom: 1px solid var(--rule);
  font-size: var(--fs-2xs);
}
.navpanel a {
  display: flex; align-items: baseline; gap: var(--s-3);
  padding: 7px var(--s-5);
  font-size: var(--fs-sm); color: var(--ink-2); text-decoration: none;
}
.navpanel a .idx {
  font-family: var(--mono); font-size: var(--fs-2xs);
  color: var(--ink-4); letter-spacing: .06em; min-width: 1.6em;
}
.navpanel a:hover { background: var(--signal-wash); color: var(--signal); }
.navpanel a[aria-current="page"] { color: var(--signal); font-weight: 620; }
.navpanel a[aria-current="page"] .idx { color: var(--signal); }

@media (max-width: 1080px) {
  .masthead__in, .studio-header__inner { flex-wrap: wrap; min-height: 0; }
  .nav, .studio-nav { width: 100%; justify-content: flex-start; gap: 0 var(--s-1);
    border-top: 1px solid var(--rule); padding-top: var(--s-2); margin-top: var(--s-2); }
  /* an open group claims its own full-width row so the panel cannot sit
     alongside — and under — its siblings */
  .navgrp[open] { flex: 1 0 100%; }
  .navgrp[open] > summary { display: flex; }
  .navpanel { position: static; min-width: 0; width: 100%; box-shadow: none;
    border-left: 0; border-right: 0; border-radius: 0; margin: var(--s-2) 0 var(--s-3); }
}
@media (max-width: 560px) {
  .nav__link, .navgrp > summary, .studio-nav a { padding: 8px 8px; font-size: var(--fs-xs); }
}

/* Breadcrumbs */
.crumbs, .studio-breadcrumbs, .stage2-breadcrumb, .comp-breadcrumb {
  font-family: var(--mono);
  font-size: var(--fs-xs);
  letter-spacing: .05em;
  color: var(--ink-3);
  padding: var(--s-5) 0 0;
}
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .5em; margin: 0; padding: 0; }
.crumbs li { display: inline-flex; align-items: center; }
.crumbs li + li::before { content: "/"; color: var(--rule-3); margin-right: .55em; }
.crumbs a, .studio-breadcrumbs a, .stage2-breadcrumb a, .comp-breadcrumb a { color: var(--ink-3); text-decoration: none; }
.crumbs a:hover, .studio-breadcrumbs a:hover, .stage2-breadcrumb a:hover { color: var(--signal); text-decoration: underline; }
.crumbs [aria-current="page"] { color: var(--ink); }

/* --------------------------------------------------------------- 5. PROSE */

.prose, .studio-article__main, .stage2-content, .comp-content {
  max-width: var(--measure);
}
.prose > h2, .stage2-content > h2, .studio-article section > h2 {
  margin-top: var(--s-8);
  padding-top: var(--s-5);
  border-top: 1px solid var(--rule);
}
.prose > h2:first-child, .studio-article section:first-of-type > h2 { margin-top: 0; border-top: 0; padding-top: 0; }
.prose h3 { margin-top: var(--s-6); }

.prose ul, .prose ol, .studio-article__main ul, .studio-article__main ol,
.stage2-content ul, .stage2-content ol {
  margin: 0 0 var(--s-4); padding-left: 1.35em;
}
li { margin-bottom: .5em; }
li::marker { color: var(--signal); font-variant-numeric: tabular-nums; }
ul:last-child, ol:last-child { margin-bottom: 0; }

/* Definition lists (glossary) */
dl.glossary { margin: 0; }
dl.glossary > div {
  display: grid;
  grid-template-columns: minmax(11rem, 15rem) 1fr;
  gap: var(--s-3) var(--s-6);
  padding: var(--s-5) 0;
  border-top: 1px solid var(--rule);
}
dl.glossary dt {
  font-weight: 660; color: var(--ink); margin: 0;
  font-size: var(--fs-base);
}
dl.glossary dd { margin: 0; color: var(--ink-2); }
@media (max-width: 720px) {
  dl.glossary > div { grid-template-columns: 1fr; gap: var(--s-2); }
}

/* -------------------------------------- 6. PUBLICATION HERO + STAT STRIP */

/* Full-bleed saturated block. The publication's masthead statement. */
.pubhero {
  background: var(--signal);
  color: #fff;
  border-bottom: 6px solid var(--signal-deep);
}
.pubhero__in {
  width: min(100% - 2.5rem, var(--shell));
  margin-inline: auto;
  padding: clamp(2.6rem, 5.6vw, 5.2rem) 0 clamp(2.2rem, 4vw, 3.4rem);
}
.pubhero__eyebrow {
  font-family: var(--mono);
  font-size: var(--fs-xs);
  letter-spacing: .17em;
  text-transform: uppercase;
  color: #F0C8DC;
  margin: 0 0 var(--s-5);
  display: flex; flex-wrap: wrap; gap: .5em 1.4em;
}
.pubhero h1 {
  color: #fff;
  font-size: var(--fs-4xl);
  letter-spacing: -0.035em;
  line-height: .98;
  margin: 0 0 var(--s-5);
  max-width: 17ch;
}
.pubhero h1 .hl { color: #FFD6E7; }
.pubhero__dek {
  font-size: clamp(1.05rem, .96rem + .5vw, 1.35rem);
  line-height: 1.45;
  color: #F7E6EE;
  max-width: 56ch;
  margin: 0 0 var(--s-6);
}
.pubhero__dek strong { color: #fff; }
.pubhero .btnrow { margin-bottom: 0; }
.pubhero .btn {
  background: #fff; color: var(--signal-deep); border-color: #fff;
}
.pubhero .btn:hover { background: #FFD6E7; color: var(--signal-deep); }
.pubhero .btn--ghost {
  background: transparent; color: #fff; border-color: rgba(255,255,255,.55);
}
.pubhero .btn--ghost:hover { background: rgba(255,255,255,.12); color: #fff; border-color: #fff; }
.pubhero a { color: #FFD6E7; }

/* Stat strip: real figures only, monospace, hairline separated. */
.statstrip {
  background: var(--signal-deep);
  color: #fff;
}
.statstrip__in {
  width: min(100% - 2.5rem, var(--shell));
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.statstrip__cell {
  padding: var(--s-5) var(--s-5) var(--s-5) 0;
  border-left: 1px solid rgba(255,255,255,.22);
  padding-left: var(--s-5);
}
.statstrip__cell:first-child { border-left: 0; padding-left: 0; }
.statstrip__v {
  display: block;
  font-family: var(--mono);
  font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.35rem);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.statstrip__v--null { color: #F2AECD; }
.statstrip__k {
  display: block;
  margin-top: var(--s-3);
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  letter-spacing: .11em;
  text-transform: uppercase;
  color: #EFC6DA;
  line-height: 1.4;
}
/* Explicit column counts, so a wrapped row never loses its rule. */
@media (max-width: 1080px) {
  .statstrip__in { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .statstrip__cell:nth-child(3n+1) { border-left: 0; padding-left: 0; }
  .statstrip__cell:nth-child(n+4) { border-top: 1px solid rgba(255,255,255,.22); padding-top: var(--s-5); }
}
@media (max-width: 700px) {
  .statstrip__in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .statstrip__cell { padding: var(--s-4) var(--s-4) var(--s-4) var(--s-4); }
  .statstrip__cell:nth-child(3n+1) { border-left: 1px solid rgba(255,255,255,.22); padding-left: var(--s-4); }
  .statstrip__cell:nth-child(2n+1) { border-left: 0; padding-left: 0; }
  .statstrip__cell:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.22); padding-top: var(--s-4); }
}

/* Standard interior hero (non-home pages) */
.hero, .authority-page__hero, .stage2-hero, .comp-hero {
  padding: var(--s-7) 0 var(--s-6);
  max-width: 74ch;
}
.hero h1 { margin-bottom: var(--s-5); }
.hero h1 .hl { color: var(--signal); }
.hero--home { max-width: none; }
.stage2-hero:after, .comp-hero::after { content: none; }

/* Buttons */
.btn, [class*="btn"], .studio-tool__button, button, input[type="submit"] {
  font-family: var(--sans);
}
.btnrow { display: flex; flex-wrap: wrap; gap: var(--s-3); margin: var(--s-5) 0 0; }
.btn {
  display: inline-flex; align-items: center; gap: .55em;
  padding: 11px 20px;
  background: var(--signal);
  color: #fff;
  border: 1px solid var(--signal);
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  font-weight: 620;
  letter-spacing: .005em;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.btn:hover { background: var(--signal-deep); border-color: var(--signal-deep); color: #fff; }
.btn--ghost {
  background: transparent; color: var(--signal); border-color: var(--rule-2);
}
.btn--ghost:hover { background: var(--signal-wash); color: var(--signal-deep); border-color: var(--signal); }

/* ------------------------------------------ 7. RESEARCH ROWS + RECORDS */

/* The publication's core list device: date + role on the left, chips and
   title on the right, hairline between. No cards. */
.rrows { border-top: 1px solid var(--rule-2); }
.rrow {
  display: grid;
  grid-template-columns: 12.5rem 1fr;
  gap: var(--s-4) var(--s-7);
  padding: var(--s-6) 0;
  border-bottom: 1px solid var(--rule);
  align-items: start;
}
.rrow__meta {
  font-family: var(--mono);
  font-size: var(--fs-xs);
  line-height: 1.6;
  color: var(--ink-3);
  letter-spacing: .04em;
}
.rrow__date { display: block; color: var(--ink); font-weight: 600; }
.rrow__by { display: block; margin-top: 4px; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-4); font-size: var(--fs-2xs); }
.rrow__ref { display: block; margin-top: 6px; color: var(--ink-4); }
.rrow__body > *:last-child { margin-bottom: 0; }
.rrow__chips { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-3); }
.rrow__t {
  font-size: var(--fs-lg);
  line-height: 1.24;
  margin: 0 0 var(--s-3);
  letter-spacing: -.016em;
}
.rrow__t a { color: var(--ink); text-decoration: none; background-image: linear-gradient(var(--signal), var(--signal)); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size var(--t-fast); }
.rrow__t a:hover { color: var(--signal); background-size: 100% 1px; }
.rrow__d { color: var(--ink-2); margin: 0; max-width: 66ch; }
.rrow--head {
  padding: var(--s-3) 0;
  border-bottom: 1px solid var(--rule-2);
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-4);
}
@media (max-width: 720px) {
  .rrow { grid-template-columns: 1fr; gap: var(--s-3); padding: var(--s-5) 0; }
  .rrow__meta { display: flex; flex-wrap: wrap; gap: .3em 1.1em; }
  .rrow__by, .rrow__ref { margin-top: 0; }
  .rrow--head { display: none; }
}

/* Chips */
.chip {
  display: inline-flex; align-items: center; gap: .45em;
  padding: 3px 8px;
  border: 1px solid var(--rule-2);
  border-radius: var(--r-sm);
  background: var(--paper-2);
  color: var(--ink-3);
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 1.5;
}
.chip::before { content: none; }
.chip--await { background: var(--open-wash); border-color: var(--open-rule); color: var(--open); }
.chip--verified { background: var(--fixed-wash); border-color: var(--fixed-rule); color: var(--fixed); }
.chip--logged { background: var(--signal-wash); border-color: var(--signal-rule); color: var(--signal); }
.chip--none { background: var(--paper-2); }
a.chip { text-decoration: none; }
a.chip:hover { border-color: var(--signal); color: var(--signal); }
.chiplegend { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-5); align-items: center; margin-top: var(--s-4); }
.chiplegend > span { display: inline-flex; align-items: center; gap: .5em; }
.chiplegend small { color: var(--ink-3); font-size: var(--fs-xs); }

/* -------------------------------- 8. PANELS, TABLES, DATA INSTRUMENTS */

.section { padding: var(--s-8) 0 0; }
.section:first-child { padding-top: var(--s-7); }
.section > h2 {
  font-size: var(--fs-2xl);
  padding-top: var(--s-5);
  border-top: 2px solid var(--ink);
  margin-bottom: var(--s-5);
}

.panel {
  border: 1px solid var(--rule);
  border-top: 2px solid var(--ink);
  border-radius: 0;
  background: var(--paper);
}
.panel + .panel { margin-top: var(--s-7); }
.panel--accent { border-top-color: var(--signal); }
.panel__hd {
  display: flex; flex-wrap: wrap; gap: var(--s-3);
  align-items: center; justify-content: space-between;
  padding: var(--s-4) var(--s-6);
  border-bottom: 1px solid var(--rule);
  background: var(--paper-2);
}
.panel--accent .panel__hd { background: var(--signal-wash); border-bottom-color: var(--signal-rule); }
.panel__title {
  margin: 0;
  font-size: var(--fs-md);
  font-weight: 660;
  letter-spacing: -.012em;
  color: var(--ink);
}
.panel__title::before { content: none; }
.panel__bd { padding: var(--s-6); }
.panel__bd > :first-child { margin-top: 0; }
.panel__bd .prose { max-width: var(--measure); }
.panel__bd--flush { padding: 0; }
.panel__ft {
  padding: var(--s-4) var(--s-6);
  border-top: 1px solid var(--rule);
  background: var(--paper-2);
}
@media (max-width: 560px) {
  .panel__hd, .panel__bd, .panel__ft { padding-left: var(--s-4); padding-right: var(--s-4); }
}

.split { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(0,1fr); gap: var(--s-7); align-items: start; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; gap: var(--s-6); } }

.grid { display: grid; gap: var(--s-5); }
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.grid-4 { grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); }

/* Cards — used sparingly; hairline-framed, never floating boxes */
.card {
  border-top: 1px solid var(--rule-2);
  padding: var(--s-5) 0 0;
  background: none;
}
.card h3 { font-size: var(--fs-base); margin: 0 0 var(--s-2); letter-spacing: -.008em; }
.card p { margin: 0; color: var(--ink-2); font-size: var(--fs-cap); }
.card__idx {
  display: block; font-family: var(--mono); font-size: var(--fs-2xs);
  letter-spacing: .12em; color: var(--signal); margin-bottom: var(--s-3);
}
a.card { text-decoration: none; display: block; color: inherit; }
a.card:hover, .card--link:hover { border-top-color: var(--signal); }
a.card:hover h3 { color: var(--signal); }

/* Tables */
.tablewrap, .table-wrap, .qc-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid var(--rule-2);
}
.panel__bd--flush > .tablewrap { border-top: 0; }
table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-cap);
  font-variant-numeric: tabular-nums;
  min-width: 34rem;
}
caption {
  caption-side: top;
  text-align: left;
  padding: var(--s-4) var(--s-6);
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  letter-spacing: .11em;
  text-transform: uppercase;
  color: var(--ink-4);
  border-bottom: 1px solid var(--rule);
}
thead th {
  text-align: left;
  vertical-align: bottom;
  padding: var(--s-3) var(--s-5);
  background: var(--paper-2);
  border-bottom: 1px solid var(--rule-2);
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-3);
  white-space: nowrap;
}
tbody th, tbody td {
  padding: var(--s-4) var(--s-5);
  border-bottom: 1px solid var(--rule);
  vertical-align: top;
  text-align: left;
  color: var(--ink-2);
  line-height: 1.55;
}
tbody th {
  color: var(--ink);
  font-weight: 620;
  white-space: normal;
}
tbody tr:last-child td, tbody tr:last-child th { border-bottom: 0; }
tbody tr:hover { background: var(--signal-tint); }
td .chip { vertical-align: middle; }
.table--keyfacts tbody th { width: 32%; min-width: 9rem; }
.table--keyfacts tbody td { color: var(--ink-2); }

/* numeric / identifier columns render monospace */
.tnum, td.tnum, th.tnum, .col-mono, td code { font-family: var(--mono); }

/* Data instruments ------------------------------------------------------ */

/* Tiles: label / figure / note */
.tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  border-top: 1px solid var(--ink);
  margin-top: var(--s-7);
}
.tiles--4 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.tile {
  padding: var(--s-5) var(--s-5) var(--s-5) 0;
  border-right: 1px solid var(--rule);
}
.tile:last-child { border-right: 0; }
.tile__k {
  display: block; font-family: var(--mono); font-size: var(--fs-2xs);
  letter-spacing: .11em; text-transform: uppercase; color: var(--ink-4); margin-bottom: var(--s-3);
}
.tile__v {
  display: block; font-family: var(--mono); font-weight: 600;
  font-size: clamp(1.5rem, 1.2rem + 1.1vw, 2.1rem); line-height: 1;
  letter-spacing: -.03em; color: var(--ink);
}
.tile__v--cyan { color: var(--signal); }
.tile__v--dim { color: var(--ink-4); }
.tile__n { display: block; margin-top: var(--s-3); font-size: var(--fs-xs); color: var(--ink-3); line-height: 1.5; }
@media (max-width: 760px) {
  .tile { border-right: 0; border-bottom: 1px solid var(--rule); padding-right: 0; }
  .tile:last-child { border-bottom: 0; }
}

/* Bars — proportional plot of counted values */
.bars { margin-top: var(--s-5); }
.bar + .bar { margin-top: var(--s-4); }
.bar__top { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-4); margin-bottom: 6px; }
.bar__k { font-size: var(--fs-sm); color: var(--ink-2); }
.bar__v { font-family: var(--mono); font-size: var(--fs-cap); font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.bar__track { height: 8px; background: var(--paper-3); border-radius: 0; overflow: hidden; }
.bar__fill { height: 100%; background: var(--signal); }
.bar--muted .bar__fill { background: var(--rule-3); }
.bar--muted .bar__v { color: var(--ink-4); }

/* Meters — per-platform 0–5 pips */
.meters { margin-top: var(--s-4); border-top: 1px solid var(--rule); }
.meter {
  display: grid; grid-template-columns: 1fr auto auto; gap: var(--s-4);
  align-items: center; padding: var(--s-3) 0; border-bottom: 1px solid var(--rule);
}
.meter:last-child { border-bottom: 0; }
.meter__n { font-size: var(--fs-sm); color: var(--ink-2); }
.meter__pips { display: inline-flex; gap: 4px; }
.pip { width: 15px; height: 9px; background: var(--paper-3); border: 1px solid var(--rule-2); }
.pip--on { background: var(--signal); border-color: var(--signal); }
.meter__v { font-family: var(--mono); font-size: var(--fs-sm); color: var(--ink-4); min-width: 3.2em; text-align: right; }

/* Bands table for the score framework */
.bands { margin-top: var(--s-5); border-top: 1px solid var(--rule-2); }
.band {
  display: flex; align-items: baseline; gap: var(--s-4);
  padding: var(--s-3) 0; border-bottom: 1px solid var(--rule);
}
.band__r {
  font-family: var(--mono); font-size: var(--fs-sm); font-weight: 600;
  min-width: 4.5em; color: var(--ink); font-variant-numeric: tabular-nums;
}
.band__l { font-size: var(--fs-sm); color: var(--ink-2); }
.band--b1 .band__r { color: var(--ink-4); }
.band--b2 .band__r { color: var(--open); }
.band--b3 .band__r { color: var(--signal-lift); }
.band--b4 .band__r { color: var(--signal); }
.band--b5 .band__r { color: var(--signal-deep); }

/* Gauge */
.gauge { text-align: center; }
.gauge__svg { width: 100%; max-width: 380px; height: auto; }
.gauge__seg { fill: var(--paper-3); stroke: var(--paper); stroke-width: .6; }
.gauge__seg--on { fill: var(--signal); }
.gauge__val { font-family: var(--mono); font-size: 60px; font-weight: 600; fill: var(--ink); }
.gauge__val--empty { fill: var(--ink-4); font-size: 46px; }
.gauge__den, .gauge__cap, .gauge__tick {
  font-family: var(--mono); font-size: 12px; letter-spacing: .14em; fill: var(--ink-4);
}
.gauge__cap { fill: var(--signal); }
.gauge__state {
  margin-top: var(--s-3);
  font-family: var(--mono); font-size: var(--fs-xs);
  letter-spacing: .06em; color: var(--open);
}

/* Key/value record */
.kv {
  display: grid; grid-template-columns: minmax(9rem, 15rem) 1fr;
  border-top: 1px solid var(--rule-2); margin-top: var(--s-4);
}
.kv > div { padding: var(--s-3) 0; border-bottom: 1px solid var(--rule); font-size: var(--fs-cap); }
.kv > div:nth-child(odd) { font-family: var(--mono); font-size: var(--fs-xs); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-4); padding-right: var(--s-5); }
.kv > div:nth-child(even) { color: var(--ink-2); }
@media (max-width: 620px) {
  .kv { grid-template-columns: 1fr; }
  .kv > div:nth-child(odd) { border-bottom: 0; padding-bottom: 2px; }
}

/* Schema / field rows */
.schema { border-top: 1px solid var(--rule-2); margin-top: var(--s-4); }
.schema__row { display: grid; grid-template-columns: minmax(10rem, 16rem) 1fr; gap: var(--s-5); padding: var(--s-4) 0; border-bottom: 1px solid var(--rule); }
.schema__k { font-family: var(--mono); font-size: var(--fs-sm); color: var(--signal); font-weight: 600; overflow-wrap: anywhere; }
.schema__v { font-size: var(--fs-cap); color: var(--ink-2); }
@media (max-width: 620px) { .schema__row { grid-template-columns: 1fr; gap: var(--s-2); } }

/* Citation lines */
.cite { border-top: 1px solid var(--rule); padding: var(--s-4) 0; font-size: var(--fs-cap); }
.cite__l { display: block; font-family: var(--mono); font-size: var(--fs-2xs); letter-spacing: .11em; text-transform: uppercase; color: var(--ink-4); margin-bottom: var(--s-2); }

/* Log entries + empty state */
.log { border-top: 1px solid var(--ink); }
.logitem { display: grid; grid-template-columns: 11rem 1fr; gap: var(--s-5); padding: var(--s-5) 0; border-bottom: 1px solid var(--rule); }
.logitem:last-child { border-bottom: 0; }
.logitem__d { font-family: var(--mono); font-size: var(--fs-xs); color: var(--ink); letter-spacing: .04em; }
.logitem__d small { display: block; color: var(--ink-4); margin-top: 4px; text-transform: uppercase; letter-spacing: .1em; }
.logitem h3 { font-size: var(--fs-base); margin-bottom: var(--s-2); }
.logitem p { font-size: var(--fs-cap); margin-bottom: 0; }
.logitem--empty { color: var(--ink-3); }
@media (max-width: 620px) { .logitem { grid-template-columns: 1fr; gap: var(--s-2); } }

.emptystate {
  border: 1px dashed var(--open-rule);
  background: var(--open-wash);
  padding: var(--s-5) var(--s-6);
  border-radius: var(--r-sm);
}
.emptystate__t {
  display: block; font-family: var(--mono); font-size: var(--fs-xs);
  letter-spacing: .11em; text-transform: uppercase; color: var(--open);
  margin-bottom: var(--s-3); font-weight: 600;
}
.emptystate p { color: var(--ink-2); font-size: var(--fs-cap); }

/* Download / file rows */
.dl { border-top: 1px solid var(--ink); }
.file, .dl__row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: var(--s-3) var(--s-5);
  align-items: baseline;
  padding: var(--s-4) 0;
  border-bottom: 1px solid var(--rule);
  text-decoration: none;
  color: var(--ink-2);
}
.file:hover { background: var(--signal-tint); }
.file__fmt {
  font-family: var(--mono); font-size: var(--fs-2xs); font-weight: 700;
  letter-spacing: .1em; color: var(--signal);
  border: 1px solid var(--signal-rule); background: var(--signal-wash);
  padding: 2px 7px; border-radius: var(--r-sm);
}
.file__n { color: var(--ink); font-weight: 600; font-size: var(--fs-cap); }
.file__n code { background: none; border: 0; padding: 0; color: var(--ink); }
.file__d { display: block; color: var(--ink-3); font-size: var(--fs-xs); margin-top: 3px; font-weight: 400; overflow-wrap: anywhere; }
.file__s { font-family: var(--mono); font-size: var(--fs-xs); color: var(--ink-4); white-space: nowrap; }
@media (max-width: 620px) {
  .file, .dl__row { grid-template-columns: auto 1fr; }
  .file__s { grid-column: 2; }
}

/* --------------------------------------------- 9. ANSWER + ENTITY BLOCKS */

/* Answer capsule — the retrievable summary */
.capsule {
  border-left: 3px solid var(--signal);
  background: var(--signal-wash);
  padding: var(--s-5) var(--s-6);
  margin-top: var(--s-6);
  max-width: 76ch;
}
.capsule::after { content: none; }
.capsule p { color: var(--ink-2); font-size: var(--fs-cap); line-height: 1.62; }
.capsule p:last-child { margin-bottom: 0; }

/* Answer plate — question then answer, set in the serif */
.answerplate {
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid var(--rule);
  padding: var(--s-5) 0 var(--s-5);
  margin: var(--s-6) 0;
}
.answerplate__q {
  font-family: var(--mono); font-size: var(--fs-xs); letter-spacing: .11em;
  text-transform: uppercase; color: var(--ink-4); margin-bottom: var(--s-3);
}
.answerplate__a {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 1.5rem + 1.8vw, 2.9rem);
  line-height: 1;
  color: var(--signal);
  margin: 0 0 var(--s-4);
  letter-spacing: -.02em;
}
.answerplate p { color: var(--ink-2); }
.answerplate p:last-child { margin-bottom: 0; }

/* Entity blocks */
.entity-answer-card {
  border: 1px solid var(--rule);
  border-left: 3px solid var(--signal);
  background: var(--paper);
  padding: var(--s-6);
  margin: 0 auto;
  max-width: var(--shell);
}
.entity-answer-card::after, .entity-answer-card:before { content: none; }
.entity-answer-card h2 { font-size: var(--fs-xl); margin-bottom: var(--s-4); }
.entity-answer-card p { max-width: 74ch; color: var(--ink-2); }
.entity-equation {
  font-family: var(--mono);
  font-size: var(--fs-cap);
  letter-spacing: .04em;
  color: var(--signal);
  background: var(--signal-wash);
  border: 1px solid var(--signal-rule);
  padding: var(--s-3) var(--s-4);
  margin-top: var(--s-4);
  display: inline-block;
  overflow-wrap: anywhere;
}
.entity-note, .entity-resolution-note, .network-disclosure {
  font-size: var(--fs-cap);
  color: var(--ink-2);
  background: var(--paper-2);
  border-left: 3px solid var(--rule-3);
  padding: var(--s-4) var(--s-5);
  margin: var(--s-5) 0;
}
.entity-resolution-note { max-width: var(--shell); margin-inline: auto; }
.entity-facts, .entity-evidence-grid { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); }

/* Verification statement */
.vithurs-verification {
  max-width: var(--shell);
  margin: var(--s-7) auto 0;
  border-top: 2px solid var(--signal);
  padding: var(--s-6) 0 0;
}
.vithurs-verification:before { content: none; }
.vithurs-verification h2 { font-size: var(--fs-xl); }
.vithurs-verification__facts {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
  gap: var(--s-5); margin-top: var(--s-6); border-top: 1px solid var(--rule); padding-top: var(--s-5);
}
.vithurs-verification__fact strong {
  display: block; font-family: var(--mono); font-size: clamp(1.5rem,1.2rem + 1vw,2rem);
  line-height: 1; color: var(--signal); margin-bottom: var(--s-3); font-weight: 600;
}
.vithurs-verification__fact span { font-size: var(--fs-xs); color: var(--ink-3); line-height: 1.5; }
.vithurs-verification__time {
  margin-top: var(--s-5); font-family: var(--mono); font-size: var(--fs-xs);
  color: var(--ink-4); letter-spacing: .04em;
}

/* Comment / response set — the 50 collected responses */
.commentset {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ink);
  counter-reset: resp;
}
.comment {
  padding: var(--s-5);
  border-bottom: 1px solid var(--rule);
  border-right: 1px solid var(--rule);
  counter-increment: resp;
  position: relative;
}
.comment:nth-child(3n) { border-right: 0; padding-right: 0; }
.comment:nth-child(3n+1) { padding-left: 0; }
.comment::before {
  content: counter(resp, decimal-leading-zero);
  display: block;
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  letter-spacing: .12em;
  color: var(--signal);
  margin-bottom: var(--s-3);
}
.comment p { font-size: var(--fs-cap); color: var(--ink-2); line-height: 1.6; margin: 0; }
.comment:hover { background: var(--signal-tint); }
@media (max-width: 900px) {
  .commentset { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comment:nth-child(3n) { border-right: 1px solid var(--rule); padding-right: var(--s-5); }
  .comment:nth-child(3n+1) { padding-left: var(--s-5); }
  .comment:nth-child(2n) { border-right: 0; padding-right: 0; }
  .comment:nth-child(2n+1) { padding-left: 0; }
}
@media (max-width: 560px) {
  .commentset { grid-template-columns: 1fr; }
  .comment, .comment:nth-child(3n), .comment:nth-child(3n+1),
  .comment:nth-child(2n), .comment:nth-child(2n+1) {
    border-right: 0; padding-left: 0; padding-right: 0;
  }
}

/* ------------------------------------------------- 10. FOOTER + UTILITY */

.related {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(230px,1fr));
  border-top: 1px solid var(--ink); margin-top: var(--s-5);
}
.related a {
  display: flex; align-items: baseline; gap: .6em;
  padding: var(--s-4) var(--s-4) var(--s-4) 0;
  border-bottom: 1px solid var(--rule);
  color: var(--ink); text-decoration: none; font-size: var(--fs-cap); font-weight: 560;
}
.related a span { color: var(--signal); font-family: var(--mono); }
.related a:hover { color: var(--signal); background: var(--signal-tint); }

.netlist { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); }
.netlist a {
  font-family: var(--mono); font-size: var(--fs-xs); color: var(--ink-3);
  text-decoration: none; padding: 3px 0; border-bottom: 1px solid transparent;
}
.netlist a:hover { color: var(--signal); border-bottom-color: var(--signal); }

.pager {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5);
  margin: var(--s-8) auto var(--s-8);
  border-top: 1px solid var(--rule-2); padding-top: var(--s-5);
}
.pager a { text-decoration: none; color: var(--ink); display: block; }
.pager a:hover .pager__t { color: var(--signal); }
.pager__k { display: block; font-family: var(--mono); font-size: var(--fs-2xs); letter-spacing: .11em; text-transform: uppercase; color: var(--ink-4); margin-bottom: 6px; }
.pager__t { display: block; font-weight: 620; font-size: var(--fs-cap); }

.sitemaplist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule-2); }
.sitemaplist li { display: grid; grid-template-columns: 1fr auto; gap: var(--s-4); align-items: baseline; padding: var(--s-3) 0; border-bottom: 1px solid var(--rule); margin: 0; }
.sitemaplist a { color: var(--ink); text-decoration: none; font-weight: 560; font-size: var(--fs-cap); }
.sitemaplist a:hover { color: var(--signal); }
.sitemaplist .u { font-family: var(--mono); font-size: var(--fs-xs); color: var(--ink-4); overflow-wrap: anywhere; }
.sitemaplist .d { color: var(--ink-3); font-size: var(--fs-xs); }

/* Footer */
.sitefoot, .studio-footer, footer.footer, .stage2-page-footer {
  margin-top: var(--s-9);
  background: var(--paper-ink);
  color: #D9CFD5;
  border-top: 6px solid var(--signal);
}
.sitefoot { padding: var(--s-8) 0 var(--s-6); }
.sitefoot a, .studio-footer a { color: #F2D5E3; }
.sitefoot__entity {
  font-size: var(--fs-xl); color: #fff; font-weight: 660;
  letter-spacing: -.02em; margin-bottom: var(--s-3);
}
.sitefoot__entity .hl { color: #FFB8D8; }
.sitefoot__blurb { max-width: 68ch; color: #C3B6BE; font-size: var(--fs-cap); margin-bottom: var(--s-8); }
.sitefoot__blurb strong { color: #fff; }

.footgrid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(190px,1fr));
  gap: var(--s-6) var(--s-5);
  border-top: 1px solid rgba(255,255,255,.14);
  padding-top: var(--s-6);
}
.footcol h2 {
  font-family: var(--mono); font-size: var(--fs-2xs); font-weight: 700;
  letter-spacing: .13em; text-transform: uppercase; color: #F0A9CB;
  margin-bottom: var(--s-4);
}
.footcol ul { list-style: none; margin: 0; padding: 0; }
.footcol li { margin-bottom: var(--s-2); }
.footcol a { color: #D9CFD5; text-decoration: none; font-size: var(--fs-cap); }
.footcol a:hover { color: #fff; text-decoration: underline; }
.footcol .netlist a { color: #B7A9B1; }
.footcol .netlist a:hover { color: #fff; border-bottom-color: #FFB8D8; }

.footbar {
  display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-6);
  justify-content: space-between; align-items: center;
  border-top: 1px solid rgba(255,255,255,.14);
  margin-top: var(--s-7); padding-top: var(--s-5);
  font-family: var(--mono); font-size: var(--fs-2xs); letter-spacing: .07em;
  color: #A9999F;
}
.footbar nav { display: flex; flex-wrap: wrap; gap: var(--s-4); }
.footbar a { color: #A9999F; text-decoration: none; }
.footbar a:hover { color: #fff; }

.stage3-trust-links {
  background: var(--paper-2);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  padding: var(--s-4) max(1.25rem, calc(50vw - var(--shell)/2));
  font-family: var(--mono); font-size: var(--fs-xs); letter-spacing: .05em;
  color: var(--ink-3);
}
.stage3-trust-links a { color: var(--signal); text-decoration: none; }
.stage3-trust-links a:hover { text-decoration: underline; }

/* 404 */
.err { padding: var(--s-9) 0; max-width: 60ch; }
.err__code {
  font-family: var(--mono); font-size: clamp(3rem, 2rem + 6vw, 6rem);
  color: var(--signal); line-height: 1; letter-spacing: -.04em; display: block; margin-bottom: var(--s-5);
}

/* long strings never break the grid */
.prose a, td a, .schema__k, .file__d, .sitemaplist .u, code, .entity-equation { overflow-wrap: anywhere; }

/* Print */
@media print {
  .masthead, .studio-header, .statusbar, .studio-topline, .studio-progress,
  .nav, .pager, .related { display: none !important; }
  body { background: #fff; color: #000; }
  .pubhero, .statstrip { background: #fff !important; color: #000 !important; border-bottom: 2px solid #000; }
  .pubhero h1, .statstrip__v { color: #000 !important; }
}
