/* neo-opera.io — library/scholarly aesthetic
   ------------------------------------------------- */


:root {
  /* default palette: Foxed Paper */
  --paper:        #f1e8d2;
  --paper-2:      #ebe0c3;
  --paper-edge:   #d8c9a3;
  --ink:          #1c1612;
  --ink-soft:     #5b4d3e;
  --ink-faint:    #8a7a64;
  --rule:         #c9b893;
  --rubric:       #8a2418;   /* oxblood annotation red */
  --gilt:         #8a6a1d;
  --highlight:    #f4d27a40; /* very subtle yellow wash */
  --shadow:       0 1px 0 rgba(40,28,14,.06), 0 12px 30px -18px rgba(40,28,14,.35);
}

[data-palette="velvet"] {
  --paper:        #1a0e0c;
  --paper-2:      #241412;
  --paper-edge:   #3a1f1a;
  --ink:          #f0e3c4;
  --ink-soft:     #c9b289;
  --ink-faint:    #8a7253;
  --rule:         #5a3a30;
  --rubric:       #d97a4a;
  --gilt:         #d9a84a;
  --highlight:    #d9a84a18;
}

[data-palette="vellum"] {
  --paper:        #f7efde;
  --paper-2:      #efe5cc;
  --paper-edge:   #d9c8a0;
  --ink:          #2a1f12;
  --ink-soft:     #6b5638;
  --ink-faint:    #9a8463;
  --rule:         #d3c096;
  --rubric:       #5a4a18;   /* sepia */
  --gilt:         #8a6a1d;
  --highlight:    #d9a84a18;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: 'EB Garamond', 'Garamond', serif;
  font-size: 19px;
  line-height: 1.55;
  font-feature-settings: "liga", "dlig", "kern";
  text-rendering: optimizeLegibility;
}

/* paper grain — very subtle multi-layer noise */
body {
  background-color: var(--paper);
  background-image:
    radial-gradient(circle at 20% 30%, rgba(0,0,0,.03), transparent 30%),
    radial-gradient(circle at 75% 65%, rgba(0,0,0,.025), transparent 35%),
    radial-gradient(circle at 50% 90%, rgba(180,140,80,.05), transparent 40%),
    repeating-linear-gradient(0deg, rgba(120,90,40,.012) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(90deg, rgba(120,90,40,.012) 0 1px, transparent 1px 3px);
}

[data-palette="velvet"] body,
body[data-palette="velvet"] {
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,200,140,.03), transparent 30%),
    radial-gradient(circle at 75% 65%, rgba(255,200,140,.025), transparent 35%);
}

/* ——— typography ——— */

h1, h2, h3, h4, h5 {
  font-family: 'EB Garamond', serif;
  font-weight: 500;
  letter-spacing: -0.005em;
  margin: 0;
  text-wrap: balance;
}

h1 { font-size: clamp(48px, 6.5vw, 92px); line-height: 1.02; font-weight: 500; letter-spacing: -0.015em; }
h2 { font-size: clamp(32px, 3.2vw, 48px); line-height: 1.08; }
h3 { font-size: clamp(22px, 2.1vw, 30px); line-height: 1.15; }
h4 { font-size: 20px; line-height: 1.2; }

p { margin: 0 0 1em; text-wrap: pretty; }

em, .italic { font-style: italic; color: var(--ink); }

a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--rule); transition: border-color .15s, color .15s; }
a:hover { color: var(--rubric); border-bottom-color: var(--rubric); }

/* utility classes */
.mono { font-family: 'JetBrains Mono', ui-monospace, monospace; }
.smallcaps {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 500;
}
.rubric { color: var(--rubric); }
.gilt { color: var(--gilt); }
.faint { color: var(--ink-faint); }
.soft { color: var(--ink-soft); }
.italic { font-style: italic; }

/* drop cap */
.dropcap::first-letter {
  font-family: 'EB Garamond', serif;
  font-weight: 500;
  font-size: 5.2em;
  float: left;
  line-height: 0.85;
  margin: 0.08em 0.08em -0.08em 0;
  color: var(--rubric);
  font-feature-settings: "lnum";
}

/* horizontal rules + ornaments */
hr.rule {
  border: 0;
  border-top: 1px solid var(--rule);
  margin: 2em 0;
}
hr.thin {
  border: 0; border-top: 1px solid var(--rule);
  opacity: .7;
  margin: 1em 0;
}
.ornament {
  text-align: center;
  font-size: 22px;
  color: var(--gilt);
  letter-spacing: 0.6em;
  margin: 2em 0;
  user-select: none;
}
.ornament::before { content: "❦  ✦  ❦"; }

/* container — printed page */
.page {
  max-width: 1340px;
  margin: 0 auto;
  padding: 32px 56px 96px;
}
@media (max-width: 780px) {
  .page { padding: 24px 22px 64px; }
}

/* ——— site chrome ——— */

.masthead {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 32px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 36px;
}
.masthead .wordmark {
  display: inline-block;
  border: 0;
  color: var(--ink);
  transition: color .15s;
}
.masthead .wordmark:hover { color: var(--rubric); }
.masthead .wordmark .wmark {
  display: block;
  width: 168px;
  height: 56px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20223.4%2075.5%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M35.8%2C20.7c-1.5%2C0-2.8%2C0.4-3.8%2C1.3c-1%2C0.9-1.5%2C2.2-1.5%2C4.1v18.6c0%2C1.9%2C0.5%2C3.3%2C1.5%2C4.1c1%2C0.9%2C2.3%2C1.3%2C3.8%2C1.3%20c1.5%2C0%2C2.8-0.4%2C3.8-1.3c1-0.9%2C1.5-2.2%2C1.5-4.1V26.1c0-1.9-0.5-3.3-1.5-4.1C38.6%2C21.1%2C37.3%2C20.7%2C35.8%2C20.7z%20M37.6%2C44.6%20c0%2C1.3-0.6%2C1.9-1.8%2C1.9c-1.2%2C0-1.8-0.6-1.8-1.9V26.2c0-1.3%2C0.6-1.9%2C1.8-1.9c1.2%2C0%2C1.8%2C0.6%2C1.8%2C1.9V44.6z%20M221.9%2C22%20c-1-0.9-2.3-1.3-3.8-1.3s-2.8%2C0.4-3.8%2C1.3c-1%2C0.9-1.5%2C2.2-1.5%2C4.1v18.6c0%2C1.9%2C0.5%2C3.3%2C1.5%2C4.1c1%2C0.9%2C2.3%2C1.3%2C3.8%2C1.3%20s2.8-0.4%2C3.8-1.3c1-0.9%2C1.5-2.2%2C1.5-4.1V26.1C223.4%2C24.2%2C222.9%2C22.9%2C221.9%2C22z%20M219.9%2C44.6c0%2C1.3-0.6%2C1.9-1.8%2C1.9s-1.8-0.6-1.8-1.9%20V26.2c0-1.3%2C0.6-1.9%2C1.8-1.9s1.8%2C0.6%2C1.8%2C1.9V44.6z%20M57.1%2C37.8v2.6c0%2C0.3-0.1%2C0.4-0.4%2C0.4h-10c-0.3%2C0-0.4-0.1-0.4-0.4v-2.6%20c0-0.3%2C0.1-0.4%2C0.4-0.4h10C56.9%2C37.4%2C57.1%2C37.5%2C57.1%2C37.8z%20M27.3%2C21.8v2.4c0%2C0.4-0.2%2C0.6-0.6%2C0.6h-6c-0.4%2C0-0.6%2C0.2-0.6%2C0.6v7.3%20c0%2C0.4%2C0.2%2C0.6%2C0.6%2C0.6h4.8c0.4%2C0%2C0.6%2C0.2%2C0.6%2C0.6v2.3c0%2C0.4-0.2%2C0.6-0.6%2C0.6h-4.8c-0.4%2C0-0.6%2C0.2-0.6%2C0.6v8.2%20c0%2C0.4%2C0.2%2C0.6%2C0.6%2C0.6h5.9c0.3%2C0%2C0.5%2C0.2%2C0.5%2C0.5v2.3c0%2C0.4-0.2%2C0.6-0.6%2C0.6h-9.4c-0.4%2C0-0.6-0.2-0.6-0.6v-27%20c0-0.4%2C0.2-0.6%2C0.6-0.6h9.4C27.1%2C21.3%2C27.3%2C21.5%2C27.3%2C21.8z%20M11.9%2C21.7V49c0%2C0.3-0.1%2C0.4-0.4%2C0.4H9c-0.2%2C0-0.4-0.1-0.5-0.4%20c-0.1-0.4-0.8-2.8-2.1-7.2C5%2C37.4%2C4.1%2C34%2C3.5%2C31.7V49c0%2C0.3-0.1%2C0.4-0.4%2C0.4H0.4C0.1%2C49.5%2C0%2C49.3%2C0%2C49V21.6c0-0.3%2C0.1-0.4%2C0.4-0.4%20h2.7c0.2%2C0%2C0.4%2C0.1%2C0.4%2C0.2l4.9%2C18.1V21.7c0-0.3%2C0.1-0.4%2C0.4-0.4h2.6C11.8%2C21.2%2C11.9%2C21.4%2C11.9%2C21.7z%20M135.4%2C27.1%20c-2.4%2C0-5.4%2C2.5-9%2C7.4l-0.3-3.3c-0.3-1.2-1.1-1.8-2.4-1.8c-0.7%2C0-1.4%2C0.4-2.2%2C1.1c-0.8%2C0.7-1.6%2C1.6-2.5%2C2.6c-0.8%2C1-1.6%2C2-2.3%2C2.9%20c-0.4%2C0.5-0.7%2C0.8-0.8%2C1.1c-0.1%2C0.2-0.2%2C0.4-0.2%2C0.4c0%2C0.2%2C0.1%2C0.3%2C0.3%2C0.3c0.3%2C0%2C0.6-0.2%2C0.9-0.7c1.2-1.4%2C2.2-2.5%2C3.1-3.3%20c0.9-0.7%2C1.6-1.1%2C2-1.1c1.1%2C0%2C1.6%2C2.1%2C1.6%2C6.4c-1.5%2C1.8-3.2%2C3.9-5.1%2C6.5c-1.8%2C2.6-3.8%2C5.6-5.9%2C9.1c-4.8%2C7.9-7.3%2C13.5-7.3%2C16.8%20c0%2C0.6%2C0%2C1%2C0.1%2C1.1c0.5%2C1.8%2C1.4%2C2.7%2C2.6%2C2.7c3.8%2C0%2C7.8-4%2C11.9-12c2-4%2C3.5-7.8%2C4.4-11.4c1-3.6%2C1.4-7%2C1.3-10.3%20c0.8%2C0.9%2C1.8%2C1.4%2C3.1%2C1.4c2.2%2C0%2C4.5-1.6%2C6.9-4.8c2.3-3.1%2C3.4-5.7%2C3.4-8C139.1%2C28.2%2C137.9%2C27.1%2C135.4%2C27.1z%20M118.6%2C61.2%20c-3.2%2C8.2-6.2%2C12.4-9%2C12.5c-0.8%2C0-1.2-0.7-1.2-2c0-1.4%2C0.5-3.5%2C1.4-6.1c0.9-2.6%2C2.4-5.8%2C4.3-9.6c3.7-7.2%2C6.7-12.1%2C9.1-14.5%20C123.4%2C46.7%2C121.8%2C53.3%2C118.6%2C61.2z%20M133.8%2C38.3c-1.4%2C2.3-3%2C3.5-4.8%2C3.5c-1.3%2C0-2.2-0.7-2.8-2.2c0.1-1.4%2C0.2-2.4%2C0.2-3.1%20c3.3-4.7%2C5.8-7.1%2C7.4-7.1c1.3%2C0%2C2%2C1%2C2%2C2.9C135.7%2C34.2%2C135.1%2C36.2%2C133.8%2C38.3z%20M207.6%2C21.8v27.1c0%2C0.4-0.2%2C0.6-0.6%2C0.6h-2.4%20c-0.4%2C0-0.6-0.2-0.6-0.6V21.8c0-0.4%2C0.2-0.6%2C0.6-0.6h2.4C207.4%2C21.3%2C207.6%2C21.5%2C207.6%2C21.8z%20M116.3%2C30.2c0-5.6-1.8-10.3-5.3-14.1%20c-1.5-1.7-3.4-3.2-5.6-4.4c-2.2-1.2-4.6-2.2-7.3-3c-0.2-3.5-0.8-6.1-1.8-7.7C95.9%2C0.3%2C95.5%2C0%2C95.1%2C0c-0.4%2C0-0.5%2C0.2-0.5%2C0.7%20c0%2C0.3%2C0.1%2C0.6%2C0.2%2C1c0.4%2C1.1%2C0.8%2C2.2%2C1.1%2C3.2c0.3%2C1.1%2C0.6%2C2.1%2C0.7%2C3.2c-1.5-0.4-3.1-0.6-4.8-0.8c-1.7-0.2-3.3-0.3-5-0.3%20c-2.6%2C0-5.1%2C0.2-7.6%2C0.6c-2.4%2C0.4-4.7%2C1.1-6.9%2C1.9c-4%2C1.5-7.2%2C3.7-9.6%2C6.5c-2.7%2C3-4%2C6.5-4%2C10.6c0%2C6%2C2.6%2C10.2%2C7.9%2C12.7%20c-0.9%2C2.6-1.4%2C5.1-1.4%2C7.4c0%2C4.3%2C1.2%2C7.6%2C3.7%2C10.1c2.4%2C2.5%2C5.8%2C3.9%2C10%2C4c-4.2%2C5-8.4%2C8.1-12.6%2C9.4l2-1.4c0.5-0.6%2C0.7-2.3%2C0.7-5.2%20c0-0.1-0.1-0.2-0.2-0.2c-0.4%2C0-0.9%2C0.3-1.5%2C0.9s-1%2C1.1-1.3%2C1.6v0.1c0%2C0.8%2C0%2C1.4%2C0%2C1.9c0%2C0.5-0.1%2C0.8-0.1%2C0.9%20c-0.1%2C0.5-0.3%2C0.9-0.6%2C1.3c-0.3%2C0.4-0.6%2C0.7-1.1%2C1.1C70%2C71.1%2C75.4%2C67.6%2C80.6%2C61c8.6-0.3%2C16.5-3.3%2C23.9-9.2%20C112.3%2C45.6%2C116.3%2C38.4%2C116.3%2C30.2z%20M61.7%2C26.1c0-6.6%2C3.7-11.6%2C11.1-15.1c3.7-1.7%2C7.9-2.6%2C12.7-2.6c1.9%2C0%2C3.8%2C0.1%2C5.7%2C0.4%20c1.9%2C0.3%2C3.8%2C0.7%2C5.7%2C1.3c0%2C0.4%2C0.1%2C0.8%2C0.1%2C1.2c0%2C0.4%2C0%2C0.9%2C0%2C1.3c0%2C0.5%2C0%2C1.1%2C0%2C1.7c0%2C0.6-0.1%2C1.2-0.1%2C1.8%20c-6.1%2C0.3-11.9%2C2.4-17.4%2C6.4c-5.2%2C3.8-9.1%2C8.7-11.7%2C14.4C63.7%2C34.5%2C61.7%2C30.9%2C61.7%2C26.1z%20M80.4%2C59.3c-0.6%2C0-1.1-0.1-1.7-0.1%20c-0.5%2C0-1-0.1-1.5-0.2c-2.8-0.6-4.9-2.2-6.4-4.6c-1.3-2.2-2-4.8-2-7.8c0-1.9%2C0.3-3.9%2C0.9-6c0.6%2C0.1%2C1.2%2C0.2%2C1.8%2C0.2%20c0.6%2C0.1%2C1.2%2C0.1%2C1.8%2C0.1c1.9%2C0%2C3.3-0.5%2C4.3-1.5c0.4-0.4%2C0.5-0.6%2C0.5-0.7l-0.1-0.1c-0.1%2C0-0.5%2C0.1-1.1%2C0.4c-0.6%2C0.2-1%2C0.4-1.2%2C0.4%20c-1.9%2C0-3.7-0.3-5.4-0.9c1.1-2.8%2C2.6-5.3%2C4.3-7.7c1.8-2.4%2C3.9-4.6%2C6.4-6.7c5.1-4.2%2C10.2-6.5%2C15.3-6.7c-0.2%2C1.7-0.5%2C3.5-0.9%2C5.4%20c-0.4%2C1.9-1%2C4-1.7%2C6.3c-0.6%2C1.9-1.3%2C3.7-1.9%2C5.7c-0.6%2C1.9-1.2%2C3.9-1.9%2C5.8c0-0.2%2C0.1-0.3%2C0.1-0.5c0-0.2%2C0-0.3%2C0-0.4%20c0-1.8-0.8-2.7-2.3-2.7c-1.9%2C0-3%2C0.9-3.4%2C2.8c1.2-0.1%2C2.1%2C0.3%2C2.9%2C1.2c0.8%2C0.9%2C1.2%2C2%2C1.2%2C3.2c-0.9%2C2.6-2.1%2C5.2-3.5%2C7.8%20C83.9%2C54.3%2C82.2%2C56.8%2C80.4%2C59.3z%20M102.6%2C49.8c-6.3%2C5.9-13.2%2C9.1-20.6%2C9.5c2.9-4%2C5.5-8.5%2C7.8-13.3c2.2-4.9%2C4.1-10.2%2C5.7-15.9%20c0.6-2.3%2C1.2-4.5%2C1.6-6.6c0.4-2.1%2C0.7-4.2%2C0.9-6.1c1.6%2C0%2C3.2%2C0.3%2C4.7%2C0.8c0.8%2C0.2%2C1.4%2C0.4%2C1.9%2C0.5c0.5%2C0.1%2C0.8%2C0.2%2C1%2C0.2%20c0.6%2C0%2C0.9-0.1%2C0.9-0.4c0-0.5-0.7-1.1-2-1.5s-3.4-0.7-6-0.7H98c0.1-0.9%2C0.2-1.8%2C0.2-2.6c0-0.8%2C0.1-1.6%2C0.1-2.3v-0.5%20c0.6%2C0.2%2C1.2%2C0.5%2C1.8%2C0.7c0.6%2C0.2%2C1.1%2C0.5%2C1.7%2C0.8c6.9%2C3.3%2C10.4%2C9.1%2C10.4%2C17.4C112.2%2C36.9%2C109%2C43.6%2C102.6%2C49.8z%20M198.5%2C46.4%20c0.3%2C0.3%2C0.4%2C0.5%2C0.4%2C0.9v1c0%2C0.3-0.1%2C0.6-0.4%2C0.9c-0.3%2C0.3-0.5%2C0.4-0.9%2C0.4h-1c-0.3%2C0-0.6-0.1-0.9-0.4c-0.3-0.3-0.4-0.5-0.4-0.9v-1%20c0-0.3%2C0.1-0.6%2C0.4-0.9c0.3-0.3%2C0.5-0.4%2C0.9-0.4h1C197.9%2C46%2C198.2%2C46.1%2C198.5%2C46.4z%20M199%2C35.8c-0.1%2C0-0.2%2C0.1-0.3%2C0.2%20c-1.1%2C1.4-2.4%2C2.8-3.7%2C3.9c-1.3%2C1.2-2.5%2C1.8-3.5%2C1.8c-1.1%2C0-1.6-1.2-1.6-3.7c0-4.3%2C0.4-7.1%2C1.3-8.5c0-0.1%2C0.3-0.3%2C0.7-0.8%20c0.5-0.4%2C0.7-0.8%2C0.7-1c0-1-0.9-1.5-2.6-1.5c-1.4%2C0-3%2C0.5-4.7%2C1.6c-1.7%2C1.1-3.6%2C3.1-5.9%2C5.9c-0.9%2C1.1-1.6%2C2.1-2.1%2C3%20c-1%2C1.3-2.1%2C2.4-3.2%2C3.4c-1.3%2C1.1-2.5%2C1.7-3.4%2C1.7c-0.9%2C0-1.3-0.6-1.3-1.9c0-0.9%2C0.5-2.6%2C1.4-5c0.5-1.2%2C0.8-2.1%2C1.1-2.7%20c0.2-0.7%2C0.3-1%2C0.4-1.1c0-0.1%2C0.1-0.3%2C0.1-0.6c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.7-0.4-1-0.4c-0.2%2C0-0.4%2C0-0.6%2C0.1%20c-0.2%2C0-0.6%2C0.1-0.9%2C0.1c-0.2%2C0-0.5%2C0-0.8-0.1c-0.3%2C0-0.6-0.1-0.9-0.3c-0.6-0.2-1-0.4-1.3-0.6c-0.3-0.2-0.5-0.4-0.7-0.7%20c1.2-1.7%2C1.8-3.4%2C1.8-5c0-1.4-0.6-2.2-1.8-2.2c-0.9%2C0-1.6%2C0.4-2.1%2C1.2c-0.5%2C0.8-0.8%2C1.6-0.8%2C2.6c0%2C0.5%2C0.1%2C1.1%2C0.2%2C1.6%20s0.3%2C1.2%2C0.5%2C2c-0.4%2C0.9-0.9%2C2-1.6%2C3.2c-0.7%2C1.2-1.4%2C2.3-2%2C3.3c-0.7%2C1-1.2%2C1.8-1.6%2C2.2c-0.2%2C0.2-0.3%2C0.4-0.4%2C0.6%20c-1.2%2C1.3-2.5%2C2.5-4%2C3.6c-1.7%2C1.2-3.5%2C1.8-5.5%2C1.8c-3.4%2C0-5.1-1.4-5.1-4.3c0-0.2%2C0-0.4%2C0-0.6c0-0.2%2C0.1-0.4%2C0.1-0.6%20c1.5-0.6%2C3.1-1.8%2C4.7-3.5c1.8-1.9%2C2.7-3.6%2C2.7-5c0-1.6-0.7-2.4-2-2.4c-0.9%2C0-1.9%2C0.4-3.1%2C1.2c-1.2%2C0.8-2.2%2C1.8-3%2C3.2%20c-1.6%2C2.5-2.4%2C5-2.4%2C7.4c0%2C2.2%2C0.7%2C3.8%2C2%2C4.8c1.3%2C1.1%2C2.9%2C1.6%2C4.8%2C1.6c0.9%2C0%2C1.9-0.1%2C2.9-0.4c1-0.3%2C2-0.7%2C3-1.3%20c1.3-0.7%2C2.4-1.5%2C3.2-2.2c0.8-0.8%2C1.5-1.7%2C2.3-2.6c0.1-0.1%2C0.2-0.3%2C0.4-0.6c0%2C0%2C0%2C0%2C0%2C0c1.1-1.6%2C2.1-3.1%2C3.1-4.6%20c1.1-1.7%2C1.8-2.8%2C2.1-3.5c0.3%2C0.3%2C0.7%2C0.6%2C1.2%2C0.9c0.5%2C0.3%2C1%2C0.6%2C1.4%2C0.8c0.6%2C0.3%2C1.2%2C0.6%2C1.6%2C0.9c0.4%2C0.3%2C0.6%2C0.8%2C0.6%2C1.4%20c0%2C0.8-0.4%2C2.1-1.2%2C3.9c-0.8%2C1.6-1.2%2C3-1.2%2C4.1c0%2C2%2C0.8%2C3.1%2C2.4%2C3.1c1.4%2C0%2C2.8-0.5%2C4.2-1.4c0.8-0.5%2C1.7-1.3%2C2.7-2.3%20c-0.1%2C0.4-0.1%2C0.7-0.1%2C1.1c0%2C1.8%2C0.9%2C2.7%2C2.8%2C2.7c1.4%2C0%2C3.1-0.8%2C5-2.3c1.6-1.4%2C2.9-2.8%2C3.7-4.3c0%2C4.3%2C0.9%2C6.5%2C3%2C6.5%20c1.3%2C0%2C2.6-0.4%2C3.9-1.3c1.3-0.9%2C2.9-2.5%2C4.8-5c0.1-0.1%2C0.2-0.3%2C0.2-0.5c0.1-0.2%2C0.1-0.4%2C0.1-0.5C199.2%2C35.9%2C199.1%2C35.8%2C199%2C35.8z%20M145.2%2C30.7c0.5-0.9%2C1-1.7%2C1.6-2.3c0.6-0.6%2C1-0.9%2C1.4-0.9c0.4%2C0%2C0.6%2C0.3%2C0.6%2C1c0%2C1.1-0.6%2C2.4-1.8%2C3.8c-0.5%2C0.6-1.1%2C1.1-1.7%2C1.5%20c-0.6%2C0.4-1.1%2C0.8-1.7%2C1.1C143.8%2C33.9%2C144.4%2C32.5%2C145.2%2C30.7z%20M182.8%2C40.8c-0.9%2C0.6-1.7%2C0.9-2.4%2C0.9c-1.3%2C0-2-0.8-2-2.4%20c0-1.7%2C0.9-3.8%2C2.7-6.1c0.8-1%2C1.8-1.9%2C3.1-2.8c1.5-1.1%2C2.7-1.6%2C3.6-1.6c0%2C0%2C0.1%2C0.1%2C0.3%2C0.1C187.2%2C34.7%2C185.4%2C38.7%2C182.8%2C40.8z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E") no-repeat left center / contain;
          mask: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20223.4%2075.5%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M35.8%2C20.7c-1.5%2C0-2.8%2C0.4-3.8%2C1.3c-1%2C0.9-1.5%2C2.2-1.5%2C4.1v18.6c0%2C1.9%2C0.5%2C3.3%2C1.5%2C4.1c1%2C0.9%2C2.3%2C1.3%2C3.8%2C1.3%20c1.5%2C0%2C2.8-0.4%2C3.8-1.3c1-0.9%2C1.5-2.2%2C1.5-4.1V26.1c0-1.9-0.5-3.3-1.5-4.1C38.6%2C21.1%2C37.3%2C20.7%2C35.8%2C20.7z%20M37.6%2C44.6%20c0%2C1.3-0.6%2C1.9-1.8%2C1.9c-1.2%2C0-1.8-0.6-1.8-1.9V26.2c0-1.3%2C0.6-1.9%2C1.8-1.9c1.2%2C0%2C1.8%2C0.6%2C1.8%2C1.9V44.6z%20M221.9%2C22%20c-1-0.9-2.3-1.3-3.8-1.3s-2.8%2C0.4-3.8%2C1.3c-1%2C0.9-1.5%2C2.2-1.5%2C4.1v18.6c0%2C1.9%2C0.5%2C3.3%2C1.5%2C4.1c1%2C0.9%2C2.3%2C1.3%2C3.8%2C1.3%20s2.8-0.4%2C3.8-1.3c1-0.9%2C1.5-2.2%2C1.5-4.1V26.1C223.4%2C24.2%2C222.9%2C22.9%2C221.9%2C22z%20M219.9%2C44.6c0%2C1.3-0.6%2C1.9-1.8%2C1.9s-1.8-0.6-1.8-1.9%20V26.2c0-1.3%2C0.6-1.9%2C1.8-1.9s1.8%2C0.6%2C1.8%2C1.9V44.6z%20M57.1%2C37.8v2.6c0%2C0.3-0.1%2C0.4-0.4%2C0.4h-10c-0.3%2C0-0.4-0.1-0.4-0.4v-2.6%20c0-0.3%2C0.1-0.4%2C0.4-0.4h10C56.9%2C37.4%2C57.1%2C37.5%2C57.1%2C37.8z%20M27.3%2C21.8v2.4c0%2C0.4-0.2%2C0.6-0.6%2C0.6h-6c-0.4%2C0-0.6%2C0.2-0.6%2C0.6v7.3%20c0%2C0.4%2C0.2%2C0.6%2C0.6%2C0.6h4.8c0.4%2C0%2C0.6%2C0.2%2C0.6%2C0.6v2.3c0%2C0.4-0.2%2C0.6-0.6%2C0.6h-4.8c-0.4%2C0-0.6%2C0.2-0.6%2C0.6v8.2%20c0%2C0.4%2C0.2%2C0.6%2C0.6%2C0.6h5.9c0.3%2C0%2C0.5%2C0.2%2C0.5%2C0.5v2.3c0%2C0.4-0.2%2C0.6-0.6%2C0.6h-9.4c-0.4%2C0-0.6-0.2-0.6-0.6v-27%20c0-0.4%2C0.2-0.6%2C0.6-0.6h9.4C27.1%2C21.3%2C27.3%2C21.5%2C27.3%2C21.8z%20M11.9%2C21.7V49c0%2C0.3-0.1%2C0.4-0.4%2C0.4H9c-0.2%2C0-0.4-0.1-0.5-0.4%20c-0.1-0.4-0.8-2.8-2.1-7.2C5%2C37.4%2C4.1%2C34%2C3.5%2C31.7V49c0%2C0.3-0.1%2C0.4-0.4%2C0.4H0.4C0.1%2C49.5%2C0%2C49.3%2C0%2C49V21.6c0-0.3%2C0.1-0.4%2C0.4-0.4%20h2.7c0.2%2C0%2C0.4%2C0.1%2C0.4%2C0.2l4.9%2C18.1V21.7c0-0.3%2C0.1-0.4%2C0.4-0.4h2.6C11.8%2C21.2%2C11.9%2C21.4%2C11.9%2C21.7z%20M135.4%2C27.1%20c-2.4%2C0-5.4%2C2.5-9%2C7.4l-0.3-3.3c-0.3-1.2-1.1-1.8-2.4-1.8c-0.7%2C0-1.4%2C0.4-2.2%2C1.1c-0.8%2C0.7-1.6%2C1.6-2.5%2C2.6c-0.8%2C1-1.6%2C2-2.3%2C2.9%20c-0.4%2C0.5-0.7%2C0.8-0.8%2C1.1c-0.1%2C0.2-0.2%2C0.4-0.2%2C0.4c0%2C0.2%2C0.1%2C0.3%2C0.3%2C0.3c0.3%2C0%2C0.6-0.2%2C0.9-0.7c1.2-1.4%2C2.2-2.5%2C3.1-3.3%20c0.9-0.7%2C1.6-1.1%2C2-1.1c1.1%2C0%2C1.6%2C2.1%2C1.6%2C6.4c-1.5%2C1.8-3.2%2C3.9-5.1%2C6.5c-1.8%2C2.6-3.8%2C5.6-5.9%2C9.1c-4.8%2C7.9-7.3%2C13.5-7.3%2C16.8%20c0%2C0.6%2C0%2C1%2C0.1%2C1.1c0.5%2C1.8%2C1.4%2C2.7%2C2.6%2C2.7c3.8%2C0%2C7.8-4%2C11.9-12c2-4%2C3.5-7.8%2C4.4-11.4c1-3.6%2C1.4-7%2C1.3-10.3%20c0.8%2C0.9%2C1.8%2C1.4%2C3.1%2C1.4c2.2%2C0%2C4.5-1.6%2C6.9-4.8c2.3-3.1%2C3.4-5.7%2C3.4-8C139.1%2C28.2%2C137.9%2C27.1%2C135.4%2C27.1z%20M118.6%2C61.2%20c-3.2%2C8.2-6.2%2C12.4-9%2C12.5c-0.8%2C0-1.2-0.7-1.2-2c0-1.4%2C0.5-3.5%2C1.4-6.1c0.9-2.6%2C2.4-5.8%2C4.3-9.6c3.7-7.2%2C6.7-12.1%2C9.1-14.5%20C123.4%2C46.7%2C121.8%2C53.3%2C118.6%2C61.2z%20M133.8%2C38.3c-1.4%2C2.3-3%2C3.5-4.8%2C3.5c-1.3%2C0-2.2-0.7-2.8-2.2c0.1-1.4%2C0.2-2.4%2C0.2-3.1%20c3.3-4.7%2C5.8-7.1%2C7.4-7.1c1.3%2C0%2C2%2C1%2C2%2C2.9C135.7%2C34.2%2C135.1%2C36.2%2C133.8%2C38.3z%20M207.6%2C21.8v27.1c0%2C0.4-0.2%2C0.6-0.6%2C0.6h-2.4%20c-0.4%2C0-0.6-0.2-0.6-0.6V21.8c0-0.4%2C0.2-0.6%2C0.6-0.6h2.4C207.4%2C21.3%2C207.6%2C21.5%2C207.6%2C21.8z%20M116.3%2C30.2c0-5.6-1.8-10.3-5.3-14.1%20c-1.5-1.7-3.4-3.2-5.6-4.4c-2.2-1.2-4.6-2.2-7.3-3c-0.2-3.5-0.8-6.1-1.8-7.7C95.9%2C0.3%2C95.5%2C0%2C95.1%2C0c-0.4%2C0-0.5%2C0.2-0.5%2C0.7%20c0%2C0.3%2C0.1%2C0.6%2C0.2%2C1c0.4%2C1.1%2C0.8%2C2.2%2C1.1%2C3.2c0.3%2C1.1%2C0.6%2C2.1%2C0.7%2C3.2c-1.5-0.4-3.1-0.6-4.8-0.8c-1.7-0.2-3.3-0.3-5-0.3%20c-2.6%2C0-5.1%2C0.2-7.6%2C0.6c-2.4%2C0.4-4.7%2C1.1-6.9%2C1.9c-4%2C1.5-7.2%2C3.7-9.6%2C6.5c-2.7%2C3-4%2C6.5-4%2C10.6c0%2C6%2C2.6%2C10.2%2C7.9%2C12.7%20c-0.9%2C2.6-1.4%2C5.1-1.4%2C7.4c0%2C4.3%2C1.2%2C7.6%2C3.7%2C10.1c2.4%2C2.5%2C5.8%2C3.9%2C10%2C4c-4.2%2C5-8.4%2C8.1-12.6%2C9.4l2-1.4c0.5-0.6%2C0.7-2.3%2C0.7-5.2%20c0-0.1-0.1-0.2-0.2-0.2c-0.4%2C0-0.9%2C0.3-1.5%2C0.9s-1%2C1.1-1.3%2C1.6v0.1c0%2C0.8%2C0%2C1.4%2C0%2C1.9c0%2C0.5-0.1%2C0.8-0.1%2C0.9%20c-0.1%2C0.5-0.3%2C0.9-0.6%2C1.3c-0.3%2C0.4-0.6%2C0.7-1.1%2C1.1C70%2C71.1%2C75.4%2C67.6%2C80.6%2C61c8.6-0.3%2C16.5-3.3%2C23.9-9.2%20C112.3%2C45.6%2C116.3%2C38.4%2C116.3%2C30.2z%20M61.7%2C26.1c0-6.6%2C3.7-11.6%2C11.1-15.1c3.7-1.7%2C7.9-2.6%2C12.7-2.6c1.9%2C0%2C3.8%2C0.1%2C5.7%2C0.4%20c1.9%2C0.3%2C3.8%2C0.7%2C5.7%2C1.3c0%2C0.4%2C0.1%2C0.8%2C0.1%2C1.2c0%2C0.4%2C0%2C0.9%2C0%2C1.3c0%2C0.5%2C0%2C1.1%2C0%2C1.7c0%2C0.6-0.1%2C1.2-0.1%2C1.8%20c-6.1%2C0.3-11.9%2C2.4-17.4%2C6.4c-5.2%2C3.8-9.1%2C8.7-11.7%2C14.4C63.7%2C34.5%2C61.7%2C30.9%2C61.7%2C26.1z%20M80.4%2C59.3c-0.6%2C0-1.1-0.1-1.7-0.1%20c-0.5%2C0-1-0.1-1.5-0.2c-2.8-0.6-4.9-2.2-6.4-4.6c-1.3-2.2-2-4.8-2-7.8c0-1.9%2C0.3-3.9%2C0.9-6c0.6%2C0.1%2C1.2%2C0.2%2C1.8%2C0.2%20c0.6%2C0.1%2C1.2%2C0.1%2C1.8%2C0.1c1.9%2C0%2C3.3-0.5%2C4.3-1.5c0.4-0.4%2C0.5-0.6%2C0.5-0.7l-0.1-0.1c-0.1%2C0-0.5%2C0.1-1.1%2C0.4c-0.6%2C0.2-1%2C0.4-1.2%2C0.4%20c-1.9%2C0-3.7-0.3-5.4-0.9c1.1-2.8%2C2.6-5.3%2C4.3-7.7c1.8-2.4%2C3.9-4.6%2C6.4-6.7c5.1-4.2%2C10.2-6.5%2C15.3-6.7c-0.2%2C1.7-0.5%2C3.5-0.9%2C5.4%20c-0.4%2C1.9-1%2C4-1.7%2C6.3c-0.6%2C1.9-1.3%2C3.7-1.9%2C5.7c-0.6%2C1.9-1.2%2C3.9-1.9%2C5.8c0-0.2%2C0.1-0.3%2C0.1-0.5c0-0.2%2C0-0.3%2C0-0.4%20c0-1.8-0.8-2.7-2.3-2.7c-1.9%2C0-3%2C0.9-3.4%2C2.8c1.2-0.1%2C2.1%2C0.3%2C2.9%2C1.2c0.8%2C0.9%2C1.2%2C2%2C1.2%2C3.2c-0.9%2C2.6-2.1%2C5.2-3.5%2C7.8%20C83.9%2C54.3%2C82.2%2C56.8%2C80.4%2C59.3z%20M102.6%2C49.8c-6.3%2C5.9-13.2%2C9.1-20.6%2C9.5c2.9-4%2C5.5-8.5%2C7.8-13.3c2.2-4.9%2C4.1-10.2%2C5.7-15.9%20c0.6-2.3%2C1.2-4.5%2C1.6-6.6c0.4-2.1%2C0.7-4.2%2C0.9-6.1c1.6%2C0%2C3.2%2C0.3%2C4.7%2C0.8c0.8%2C0.2%2C1.4%2C0.4%2C1.9%2C0.5c0.5%2C0.1%2C0.8%2C0.2%2C1%2C0.2%20c0.6%2C0%2C0.9-0.1%2C0.9-0.4c0-0.5-0.7-1.1-2-1.5s-3.4-0.7-6-0.7H98c0.1-0.9%2C0.2-1.8%2C0.2-2.6c0-0.8%2C0.1-1.6%2C0.1-2.3v-0.5%20c0.6%2C0.2%2C1.2%2C0.5%2C1.8%2C0.7c0.6%2C0.2%2C1.1%2C0.5%2C1.7%2C0.8c6.9%2C3.3%2C10.4%2C9.1%2C10.4%2C17.4C112.2%2C36.9%2C109%2C43.6%2C102.6%2C49.8z%20M198.5%2C46.4%20c0.3%2C0.3%2C0.4%2C0.5%2C0.4%2C0.9v1c0%2C0.3-0.1%2C0.6-0.4%2C0.9c-0.3%2C0.3-0.5%2C0.4-0.9%2C0.4h-1c-0.3%2C0-0.6-0.1-0.9-0.4c-0.3-0.3-0.4-0.5-0.4-0.9v-1%20c0-0.3%2C0.1-0.6%2C0.4-0.9c0.3-0.3%2C0.5-0.4%2C0.9-0.4h1C197.9%2C46%2C198.2%2C46.1%2C198.5%2C46.4z%20M199%2C35.8c-0.1%2C0-0.2%2C0.1-0.3%2C0.2%20c-1.1%2C1.4-2.4%2C2.8-3.7%2C3.9c-1.3%2C1.2-2.5%2C1.8-3.5%2C1.8c-1.1%2C0-1.6-1.2-1.6-3.7c0-4.3%2C0.4-7.1%2C1.3-8.5c0-0.1%2C0.3-0.3%2C0.7-0.8%20c0.5-0.4%2C0.7-0.8%2C0.7-1c0-1-0.9-1.5-2.6-1.5c-1.4%2C0-3%2C0.5-4.7%2C1.6c-1.7%2C1.1-3.6%2C3.1-5.9%2C5.9c-0.9%2C1.1-1.6%2C2.1-2.1%2C3%20c-1%2C1.3-2.1%2C2.4-3.2%2C3.4c-1.3%2C1.1-2.5%2C1.7-3.4%2C1.7c-0.9%2C0-1.3-0.6-1.3-1.9c0-0.9%2C0.5-2.6%2C1.4-5c0.5-1.2%2C0.8-2.1%2C1.1-2.7%20c0.2-0.7%2C0.3-1%2C0.4-1.1c0-0.1%2C0.1-0.3%2C0.1-0.6c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.7-0.4-1-0.4c-0.2%2C0-0.4%2C0-0.6%2C0.1%20c-0.2%2C0-0.6%2C0.1-0.9%2C0.1c-0.2%2C0-0.5%2C0-0.8-0.1c-0.3%2C0-0.6-0.1-0.9-0.3c-0.6-0.2-1-0.4-1.3-0.6c-0.3-0.2-0.5-0.4-0.7-0.7%20c1.2-1.7%2C1.8-3.4%2C1.8-5c0-1.4-0.6-2.2-1.8-2.2c-0.9%2C0-1.6%2C0.4-2.1%2C1.2c-0.5%2C0.8-0.8%2C1.6-0.8%2C2.6c0%2C0.5%2C0.1%2C1.1%2C0.2%2C1.6%20s0.3%2C1.2%2C0.5%2C2c-0.4%2C0.9-0.9%2C2-1.6%2C3.2c-0.7%2C1.2-1.4%2C2.3-2%2C3.3c-0.7%2C1-1.2%2C1.8-1.6%2C2.2c-0.2%2C0.2-0.3%2C0.4-0.4%2C0.6%20c-1.2%2C1.3-2.5%2C2.5-4%2C3.6c-1.7%2C1.2-3.5%2C1.8-5.5%2C1.8c-3.4%2C0-5.1-1.4-5.1-4.3c0-0.2%2C0-0.4%2C0-0.6c0-0.2%2C0.1-0.4%2C0.1-0.6%20c1.5-0.6%2C3.1-1.8%2C4.7-3.5c1.8-1.9%2C2.7-3.6%2C2.7-5c0-1.6-0.7-2.4-2-2.4c-0.9%2C0-1.9%2C0.4-3.1%2C1.2c-1.2%2C0.8-2.2%2C1.8-3%2C3.2%20c-1.6%2C2.5-2.4%2C5-2.4%2C7.4c0%2C2.2%2C0.7%2C3.8%2C2%2C4.8c1.3%2C1.1%2C2.9%2C1.6%2C4.8%2C1.6c0.9%2C0%2C1.9-0.1%2C2.9-0.4c1-0.3%2C2-0.7%2C3-1.3%20c1.3-0.7%2C2.4-1.5%2C3.2-2.2c0.8-0.8%2C1.5-1.7%2C2.3-2.6c0.1-0.1%2C0.2-0.3%2C0.4-0.6c0%2C0%2C0%2C0%2C0%2C0c1.1-1.6%2C2.1-3.1%2C3.1-4.6%20c1.1-1.7%2C1.8-2.8%2C2.1-3.5c0.3%2C0.3%2C0.7%2C0.6%2C1.2%2C0.9c0.5%2C0.3%2C1%2C0.6%2C1.4%2C0.8c0.6%2C0.3%2C1.2%2C0.6%2C1.6%2C0.9c0.4%2C0.3%2C0.6%2C0.8%2C0.6%2C1.4%20c0%2C0.8-0.4%2C2.1-1.2%2C3.9c-0.8%2C1.6-1.2%2C3-1.2%2C4.1c0%2C2%2C0.8%2C3.1%2C2.4%2C3.1c1.4%2C0%2C2.8-0.5%2C4.2-1.4c0.8-0.5%2C1.7-1.3%2C2.7-2.3%20c-0.1%2C0.4-0.1%2C0.7-0.1%2C1.1c0%2C1.8%2C0.9%2C2.7%2C2.8%2C2.7c1.4%2C0%2C3.1-0.8%2C5-2.3c1.6-1.4%2C2.9-2.8%2C3.7-4.3c0%2C4.3%2C0.9%2C6.5%2C3%2C6.5%20c1.3%2C0%2C2.6-0.4%2C3.9-1.3c1.3-0.9%2C2.9-2.5%2C4.8-5c0.1-0.1%2C0.2-0.3%2C0.2-0.5c0.1-0.2%2C0.1-0.4%2C0.1-0.5C199.2%2C35.9%2C199.1%2C35.8%2C199%2C35.8z%20M145.2%2C30.7c0.5-0.9%2C1-1.7%2C1.6-2.3c0.6-0.6%2C1-0.9%2C1.4-0.9c0.4%2C0%2C0.6%2C0.3%2C0.6%2C1c0%2C1.1-0.6%2C2.4-1.8%2C3.8c-0.5%2C0.6-1.1%2C1.1-1.7%2C1.5%20c-0.6%2C0.4-1.1%2C0.8-1.7%2C1.1C143.8%2C33.9%2C144.4%2C32.5%2C145.2%2C30.7z%20M182.8%2C40.8c-0.9%2C0.6-1.7%2C0.9-2.4%2C0.9c-1.3%2C0-2-0.8-2-2.4%20c0-1.7%2C0.9-3.8%2C2.7-6.1c0.8-1%2C1.8-1.9%2C3.1-2.8c1.5-1.1%2C2.7-1.6%2C3.6-1.6c0%2C0%2C0.1%2C0.1%2C0.3%2C0.1C187.2%2C34.7%2C185.4%2C38.7%2C182.8%2C40.8z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E") no-repeat left center / contain;
}
/* legacy spans kept for direct-editing safety, hidden by default */
.masthead .wordmark .neo,
.masthead .wordmark .opera { display: none; }

.masthead nav {
  display: flex;
  gap: 24px;
  justify-self: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.masthead nav a { border: 0; color: var(--ink-soft); }
.masthead nav a:hover { color: var(--rubric); }
.masthead nav a.active { color: var(--ink); }
.masthead nav a.active::before { content: "❦ "; color: var(--gilt); }

.masthead .folio {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--ink-faint);
  text-transform: uppercase;
}

/* mobile menu — hamburger toggle */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px; height: 44px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--rule);
  cursor: pointer;
  justify-self: end;
}
.nav-toggle:hover { border-color: var(--ink); }
.nav-toggle-bar {
  display: block;
  width: 20px; height: 1.5px;
  margin: 0 auto;
  background: var(--ink);
  transition: transform .2s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}
@media (prefers-reduced-motion: reduce) {
  .nav-toggle-bar { transition: none; }
}

@media (max-width: 760px) {
  .masthead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    position: relative;
  }
  .masthead .folio { display: none; }
  .masthead nav { display: none; }
  .masthead .nav-toggle { display: flex; }
  .masthead nav.is-open {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: absolute;
    top: calc(100% + 6px); left: 0; right: 0;
    justify-self: stretch;
    width: auto;
    box-sizing: border-box;
    background: var(--paper-2);
    border: 1px solid var(--rule);
    box-shadow: var(--shadow);
    padding: 4px 0;
    z-index: 50;
  }
  .masthead nav.is-open a {
    padding: 14px 22px;
    border-bottom: 1px solid var(--rule);
    text-align: left;
    font-size: 13px;
  }
  .masthead nav.is-open a:last-child { border-bottom: 0; }
  .masthead nav.is-open a.active::before { content: ""; }
}

.colophon {
  margin-top: 96px;
  padding-top: 24px;
  border-top: 1px solid var(--rule);
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px;
  font-size: 14px;
  color: var(--ink-soft);
}
.colophon .smallcaps { display: block; margin-bottom: 10px; }
.colophon .lines a { display: block; border: 0; padding: 3px 0; color: var(--ink-soft); }
.colophon .lines a:hover { color: var(--rubric); }
@media (max-width: 780px) { .colophon { grid-template-columns: 1fr; } }

/* ——— layouts ——— */

.two-col {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 56px;
}
.two-col-wide {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 64px;
}
.two-col.flip { grid-template-columns: 320px 1fr; }
@media (max-width: 980px) {
  .two-col, .two-col-wide, .two-col.flip { grid-template-columns: 1fr; gap: 32px; }
}

/* marginalia */
aside.margin {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  line-height: 1.55;
  color: var(--ink-soft);
}
aside.margin .note {
  border-top: 1px solid var(--rule);
  padding: 10px 0 14px;
}
aside.margin .num {
  display: inline-block;
  color: var(--rubric);
  margin-right: 6px;
  font-weight: 600;
}
aside.margin .label {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--ink);
  display: block;
  font-size: 10.5px;
  margin-bottom: 6px;
}
aside.margin em { font-family: 'EB Garamond', serif; font-style: italic; font-size: 14px; color: var(--ink); }

/* footnote ref inline */
sup.fn {
  font-family: 'JetBrains Mono', monospace;
  color: var(--rubric);
  font-size: 0.7em;
  vertical-align: super;
  font-weight: 600;
  padding: 0 2px;
}
sup.fn:hover { background: var(--highlight); }

/* ——— buttons / chips ——— */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 0;
  transition: background .15s, color .15s;
}
.btn:hover { background: var(--ink); color: var(--paper); }
.btn.primary { background: var(--ink); color: var(--paper); }
.btn.primary:hover { background: var(--rubric); border-color: var(--rubric); }
.btn.ghost { border-color: var(--rule); color: var(--ink-soft); }
.btn.ghost:hover { background: transparent; color: var(--ink); border-color: var(--ink); }

.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  border: 1px solid var(--rule);
  background: transparent;
  cursor: pointer;
}
.chip.active { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.chip:hover:not(.active) { color: var(--ink); border-color: var(--ink); }

/* ——— cards ——— */

.card {
  border: 1px solid var(--rule);
  background: var(--paper-2);
  padding: 22px;
  position: relative;
}
.card.plate {
  background:
    repeating-linear-gradient(45deg, rgba(120,90,40,.04) 0 2px, transparent 2px 6px),
    var(--paper-2);
}
.card .corner {
  position: absolute;
  top: 8px; right: 12px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  color: var(--ink-faint);
  text-transform: uppercase;
}

/* image placeholder — striped paper */
.placeholder {
  background:
    repeating-linear-gradient(135deg, rgba(120,90,40,.08) 0 6px, transparent 6px 14px),
    var(--paper-2);
  border: 1px solid var(--rule);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  text-align: center;
  padding: 12px;
  position: relative;
}
.placeholder::before {
  content: ""; position: absolute; inset: 8px;
  border: 1px dashed var(--rule);
  pointer-events: none;
}

/* ——— radio call-out card (used on other pages to link to the radio) ——— */

.radio-link {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center;
  gap: 18px;
  width: 100%;
  padding: 18px;
  border: 1px solid var(--rule);
  background: var(--paper-2);
  color: inherit;
  text-decoration: none;
  position: relative;
}
.radio-link::after {
  content: "";
  position: absolute;
  left: -1px; right: -1px;
  bottom: -1px;
  height: 2px;
  background: var(--rubric);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.radio-link:hover::after { transform: scaleX(1); }
.radio-link .rl-icon {
  width: 56px; height: 56px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  display: grid; place-items: center;
  border-radius: 50%;
}
.radio-link:hover .rl-icon { background: var(--rubric); border-color: var(--rubric); }
.radio-link .rl-icon svg { width: 26px; height: 26px; fill: currentColor; }
.radio-link .rl-title {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: 22px;
  color: var(--ink);
  line-height: 1.2;
}
.radio-link .rl-summary {
  font-family: 'EB Garamond', serif;
  font-size: 14px;
  color: var(--ink-soft);
  margin-top: 6px;
  line-height: 1.4;
}
.radio-link .rl-arrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rubric);
  white-space: nowrap;
}

/* ——— video link card ——— */

.vlink {
  display: grid;
  grid-template-columns: 170px 1fr;
  align-items: stretch;
  gap: 18px;
  width: 100%;
  padding: 14px;
  border: 1px solid var(--rule);
  background: var(--paper-2);
  text-decoration: none;
  color: inherit;
  box-sizing: border-box;
}
.vlink:hover .vthumb .vplay svg { fill: var(--rubric); }
.vlink .vmeta {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4px 4px 4px 6px;
}
.vlink .vtitle {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: 22px;
  color: var(--ink);
  line-height: 1.25;
}
.vlink .vsource {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-top: 10px;
}
.vlink .vsummary {
  font-family: 'EB Garamond', serif;
  font-size: 14px;
  line-height: 1.45;
  color: var(--ink-soft);
  margin-top: 8px;
}
.vlink .vthumb {
  position: relative;
  width: 170px;
  height: 140px;
  overflow: hidden;
  background: var(--paper-edge);
  border: 1px solid var(--rule);
}
.vlink .vthumb img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.vlink .vthumb .vplay {
  position: absolute; inset: 0;
  display: grid; place-items: center;
}
.vlink .vthumb .vplay svg {
  width: 36px; height: 36px;
  fill: var(--paper);
  filter: drop-shadow(0 1px 3px rgba(0,0,0,.55));
  transition: fill .15s;
}

/* ——— home: hero + album grid ——— */

.home-hero {
  display: grid;
  grid-template-columns: 1fr 440px;
  gap: 72px;
  align-items: center;
  padding: 36px 0 64px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 56px;
}
@media (max-width: 1080px) {
  .home-hero { grid-template-columns: 1fr; gap: 40px; padding: 24px 0 40px; }
}

.home-hero .lede { margin-top: 22px; }
.home-hero .cta-row {
  display: flex; gap: 14px; flex-wrap: wrap;
  margin-top: 30px;
}
.home-hero .station-stats {
  margin-top: 36px;
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  border-top: 1px solid var(--rule);
  padding-top: 20px;
}
.home-hero .station-stats .stat {
  display: flex; flex-direction: column;
}
.home-hero .station-stats .stat .n {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: 30px;
  line-height: 1;
  color: var(--rubric);
}
.home-hero .station-stats .stat .l {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-top: 6px;
}

.hero-album {
  background: var(--paper-2);
  border: 1px solid var(--rule);
  padding: 24px 24px 18px;
  position: relative;
}
.hero-album::after {
  content: "";
  position: absolute;
  left: -1px; right: -1px; bottom: -1px;
  height: 2px;
  background: var(--rubric);
}
.hero-album-head .hero-album-title {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: 30px;
  line-height: 1.12;
  margin: 8px 0 6px;
  color: var(--ink);
}
.hero-album-sub {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.hero-album-thumb {
  display: block;
  margin: 22px auto 16px;
  width: 100%;
  max-width: 360px;
  aspect-ratio: 1 / 1;
  background: var(--paper-edge);
  border: 1px solid var(--rule);
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(40,28,14,.08), 0 18px 36px -22px rgba(40,28,14,.45);
}
.hero-album-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-album-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--rule);
  padding-top: 14px;
  gap: 14px;
}
.hero-album-reroll {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 4px 0;
}
.hero-album-reroll:hover { color: var(--rubric); }
.hero-album-open {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rubric);
  border: 0;
}

/* Library grid */
.library-intro {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 56px;
  align-items: baseline;
  margin-bottom: 36px;
}
.library-intro .right {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
@media (max-width: 980px) {
  .library-intro { grid-template-columns: 1fr; gap: 16px; }
}

.album-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px 32px;
}
@media (max-width: 980px) {
  .album-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; }
}
@media (max-width: 600px) {
  .album-grid { grid-template-columns: 1fr; }
}

.album-tile {
  display: block;
  border: 0;
  text-decoration: none;
  color: inherit;
}
.album-tile .cover-frame {
  width: 100%;
  aspect-ratio: 1 / 1;
  background: var(--paper-edge);
  border: 1px solid var(--rule);
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(40,28,14,.08), 0 18px 36px -22px rgba(40,28,14,.45);
  transition: transform .22s ease, box-shadow .22s ease;
}
.album-tile .cover-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.album-tile:hover .cover-frame {
  transform: translateY(-3px);
  box-shadow: 0 4px 0 rgba(40,28,14,.06), 0 28px 44px -22px rgba(40,28,14,.55);
}
.album-tile-meta { margin-top: 14px; }
.album-tile-vol {
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rubric);
}
.album-tile-title {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: 24px;
  line-height: 1.15;
  margin-top: 6px;
  color: var(--ink);
}
.album-tile-sub {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-top: 6px;
}

/* Album landing page — full-bleed cover at natural aspect ratio */
.album-cover-large {
  display: block;
  width: 100%;
  background: var(--paper-edge);
  border: 1px solid var(--rule);
  box-shadow: 0 1px 0 rgba(40,28,14,.08), 0 24px 44px -22px rgba(40,28,14,.55);
}
.album-cover-large img {
  display: block;
  width: 100%;
  height: auto;
}

/* ——— misc ——— */

.kicker {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rubric);
  margin-bottom: 14px;
}
.kicker::before { content: "§ "; color: var(--gilt); }

.lede { font-size: 22px; line-height: 1.45; color: var(--ink); }

.ticker {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
}
.ticker span::before { content: "› "; color: var(--rubric); }

/* page header — masthead-style */
.title-block { padding: 36px 0 28px; border-bottom: 1px solid var(--rule); margin-bottom: 40px; }
.title-block .super {
  display: flex; gap: 18px; align-items: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft);
  margin-bottom: 18px;
}

.tag-stack { display: flex; flex-wrap: wrap; gap: 6px; }

/* tables */
table.cast {
  width: 100%;
  border-collapse: collapse;
  font-size: 17px;
}
table.cast th {
  text-align: left;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  border-bottom: 1px solid var(--rule);
  padding: 10px 12px 10px 0;
  font-weight: 500;
}
table.cast td {
  padding: 12px 12px 12px 0;
  border-bottom: 1px dashed var(--rule);
  vertical-align: top;
}
table.cast td.role { font-style: italic; }
table.cast td .voice { display: block; font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--ink-faint); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 3px; }

/* asterism / pull quote */
.pullquote {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: 28px;
  line-height: 1.25;
  color: var(--ink);
  border-left: 2px solid var(--rubric);
  padding: 4px 0 4px 24px;
  margin: 28px 0;
}
.pullquote .attr {
  font-style: normal;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  display: block;
  margin-top: 14px;
}

/* steps timeline (used on opera page) */
.steps {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 0;
}
.steps .row {
  display: contents;
}
.steps .num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  color: var(--ink-faint);
  text-transform: uppercase;
  padding-top: 22px;
  border-top: 1px solid var(--rule);
}
.steps .body {
  padding: 22px 0 26px;
  border-top: 1px solid var(--rule);
}
.steps .body h3 { font-style: italic; }
.steps .body .form {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rubric);
  margin-bottom: 6px;
}

/* table of contents */
.toc {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.04em;
}
.toc .row {
  display: grid;
  grid-template-columns: 32px 1fr 60px;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px dashed var(--rule);
  cursor: pointer;
}
.toc .row:hover { color: var(--rubric); }
.toc .row .n { color: var(--rubric); }
.toc .row .t { color: var(--ink); font-family: 'EB Garamond', serif; font-style: italic; font-size: 16px; letter-spacing: 0; }
.toc .row .d { text-align: right; color: var(--ink-faint); }

/* hero block on opera page — large monogram + masthead */
.opera-mast {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 56px;
  align-items: end;
  padding: 48px 0 40px;
  border-bottom: 2px double var(--rule);
}
@media (max-width: 980px) { .opera-mast { grid-template-columns: 1fr; } }

.opera-mast .h-title {
  font-size: clamp(54px, 7vw, 110px);
  line-height: 0.95;
  font-style: italic;
  letter-spacing: -0.02em;
  font-weight: 400;
}
.opera-mast .h-sub { font-size: 24px; color: var(--ink-soft); margin-top: 10px; font-style: italic; }
.opera-mast .h-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 28px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--ink-soft);
}
.opera-mast .h-meta .smallcaps { font-size: 10px; margin-bottom: 4px; }
.opera-mast .h-meta strong { color: var(--ink); font-weight: 500; }

/* Library filters */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  padding: 18px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  align-items: center;
}
.filter-bar .group { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.filter-bar .group .lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-right: 4px;
}

/* listing */
.listing {
  border-top: 1px solid var(--rule);
}
.listing-row {
  display: grid;
  grid-template-columns: 60px 1fr 1.2fr 110px 90px 90px 36px;
  gap: 18px;
  align-items: baseline;
  padding: 16px 4px;
  border-bottom: 1px dashed var(--rule);
  cursor: pointer;
  transition: background .15s;
}
.listing-row:hover { background: var(--highlight); }
.listing-row .n { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--ink-faint); }
.listing-row .ttl { font-family: 'EB Garamond', serif; font-style: italic; font-size: 22px; color: var(--ink); line-height: 1.1; }
.listing-row .ttl small { display: block; font-style: normal; font-size: 13px; color: var(--ink-soft); margin-top: 4px; font-family: 'JetBrains Mono', monospace; letter-spacing: 0.05em; }
.listing-row .composer { font-family: 'EB Garamond', serif; font-size: 17px; color: var(--ink); }
.listing-row .composer small { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-faint); margin-top: 4px; }
.listing-row .meta { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.1em; color: var(--ink-soft); text-transform: uppercase; }
.listing-row .arrow { color: var(--rubric); font-family: 'JetBrains Mono', monospace; }
@media (max-width: 980px) {
  .listing-row { grid-template-columns: 40px 1fr 90px; row-gap: 4px; }
  .listing-row .composer, .listing-row .meta:not(.year), .listing-row .arrow { display: none; }
}

/* Modal */
.modal-veil {
  position: fixed; inset: 0;
  background: rgba(28, 22, 18, 0.55);
  backdrop-filter: blur(2px);
  display: grid;
  place-items: center;
  z-index: 50;
  padding: 24px;
}
.modal {
  background: var(--paper);
  border: 1px solid var(--paper-edge);
  max-width: 720px;
  width: 100%;
  max-height: 86vh;
  overflow: auto;
  padding: 36px 40px 32px;
  position: relative;
  box-shadow: var(--shadow);
}
.modal .close {
  position: absolute; top: 14px; right: 18px;
  background: none; border: 0; cursor: pointer;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-soft);
}
.modal .close:hover { color: var(--rubric); }

/* Composer / star portrait card */
.portrait {
  aspect-ratio: 3/4;
  background:
    radial-gradient(ellipse at 50% 35%, rgba(120,90,40,.18), transparent 55%),
    repeating-linear-gradient(135deg, rgba(120,90,40,.08) 0 6px, transparent 6px 14px),
    var(--paper-2);
  border: 1px solid var(--rule);
  display: grid;
  place-items: end center;
  position: relative;
  padding: 16px;
}
.portrait .label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  text-align: center;
  border-top: 1px solid var(--rule);
  padding-top: 8px;
  width: 100%;
}
.portrait::before {
  content: ""; position: absolute; inset: 10px;
  border: 1px dashed var(--rule);
  pointer-events: none;
}
.portrait .silhouette {
  position: absolute; left: 50%; top: 56%; transform: translate(-50%,-50%);
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: 96px;
  color: var(--ink-faint);
  opacity: 0.5;
  text-align: center;
  line-height: 0.9;
}

/* Hero (homepage) */
.hero {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 64px;
  padding: 28px 0 60px;
  border-bottom: 2px double var(--rule);
  align-items: end;
}
.hero .h-title {
  font-size: clamp(56px, 8vw, 130px);
  line-height: 0.92;
  letter-spacing: -0.02em;
  font-weight: 400;
}
.hero .h-title em { color: var(--rubric); }
.hero .featured {
  border: 1px solid var(--rule);
  background: var(--paper-2);
  padding: 24px;
  position: relative;
}
@media (max-width: 980px) { .hero { grid-template-columns: 1fr; } }

/* tile grid */
.tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 980px) { .tiles { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .tiles { grid-template-columns: 1fr; } }

.tile {
  border: 1px solid var(--rule);
  background: var(--paper-2);
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  cursor: pointer;
  transition: border-color .15s, transform .15s;
  position: relative;
}
.tile:hover { border-color: var(--ink); transform: translateY(-2px); }
.tile .stamp {
  position: absolute; top: 12px; right: 14px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  color: var(--rubric);
  text-transform: uppercase;
}

/* libretto block */
.libretto {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: 17px;
  line-height: 1.45;
  color: var(--ink);
  background: var(--paper);
  border-left: 2px solid var(--rubric);
  padding: 4px 0 4px 22px;
  margin: 18px 0;
}
.libretto .role {
  font-style: normal;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  display: block;
  margin-top: 12px;
  margin-bottom: 2px;
}
.libretto .role:first-child { margin-top: 0; }
.libretto .gloss { font-style: normal; color: var(--ink-soft); font-size: 13.5px; display: block; margin-top: 4px; font-family: 'EB Garamond', serif; }

/* ——— opera + radio page: two-column layout ——— */

.two-col-radio {
  display: grid;
  grid-template-columns: 1fr 440px;
  gap: 72px;
  align-items: start;
}
@media (max-width: 1080px) {
  .two-col-radio { grid-template-columns: 1fr; gap: 32px; }
}

/* ——— audio player (minimal — flat-json-cms framework markup) ——— */

.player-aside { position: sticky; top: 24px; }
@media (max-width: 1080px) { .player-aside { position: static; } }

.player {
  background: var(--paper-2);
  border: 1px solid var(--rule);
  box-shadow: var(--shadow);
  position: relative;
}
.player::after {
  content: "";
  position: absolute; left: -1px; right: -1px; bottom: -1px; height: 3px;
  background: var(--accent, var(--rubric));
}
.player-inner { display: flex; flex-direction: column; }

.mini-player { padding: 30px 34px 32px; }

.mini-player .mp-track {
  position: relative; height: 3px; background: var(--rule); cursor: pointer;
}
.mini-player .mp-fill {
  position: absolute; left: 0; top: 0; height: 100%; width: 0;
  background: var(--accent, var(--rubric));
}
.mini-player .mp-thumb {
  position: absolute; top: 50%; left: 0; transform: translate(-50%, -50%);
  width: 11px; height: 11px; border-radius: 50%;
  background: var(--accent, var(--rubric));
}

.mini-player .mp-controls {
  display: flex; justify-content: center; align-items: center;
  gap: 28px; margin-top: 32px;
}
.mini-player .mp-btn {
  display: grid; place-items: center; padding: 0;
  width: 48px; height: 48px; border-radius: 50%;
  background: transparent; color: var(--ink);
  border: 1px solid var(--ink); cursor: pointer;
  transition: color .15s, border-color .15s, background .15s, transform .1s;
}
.mini-player .mp-btn:hover { color: var(--rubric); border-color: var(--rubric); }
.mini-player .mp-btn:active { transform: scale(.94); }
.mini-player .mp-btn.mp-play {
  width: 68px; height: 68px;
  background: var(--ink); color: var(--paper); border-color: var(--ink);
}
.mini-player .mp-btn.mp-play:hover {
  background: var(--rubric); border-color: var(--rubric);
}
.mini-player .mp-icon { width: 18px; height: 18px; display: block; }
.mini-player .mp-btn.mp-play .mp-icon { width: 26px; height: 26px; }
.mini-player .mp-btn.mp-play .mp-icon-pause { display: none; }
.mini-player .mp-btn.mp-play.is-playing .mp-icon-play { display: none; }
.mini-player .mp-btn.mp-play.is-playing .mp-icon-pause { display: block; }

.mini-player .mp-toggles {
  display: flex; justify-content: center; align-items: center;
  flex-wrap: wrap; gap: 36px; margin-top: 28px;
}
.mini-player .mp-check {
  display: inline-flex; align-items: center; gap: 12px;
  cursor: pointer; user-select: none;
}
.mini-player .mp-check input {
  position: absolute; opacity: 0; pointer-events: none;
  width: 0; height: 0;
}
.mini-player .mp-switch {
  position: relative; display: inline-block; flex-shrink: 0;
  width: 34px; height: 20px; border-radius: 10px;
  background: var(--rule); border: 1px solid var(--rule);
  transition: background-color .15s, border-color .15s;
}
.mini-player .mp-switch::after {
  content: ""; position: absolute; top: 1px; left: 1px;
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--paper);
  transition: transform .15s;
}
.mini-player .mp-check input:checked + .mp-switch {
  background: var(--ink); border-color: var(--ink);
}
.mini-player .mp-check input:checked + .mp-switch::after {
  transform: translateX(14px);
}
.mini-player .mp-check input:focus-visible + .mp-switch {
  outline: 2px solid var(--rubric); outline-offset: 2px;
}
.mini-player .mp-lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-soft);
}

/* broadcast list — the radio page's track list below the player */

.player-aside:has(.broadcast-list) { position: static; }

.broadcast-list {
  margin-top: 22px;
  background: var(--paper-2);
  border: 1px solid var(--rule);
  box-shadow: var(--shadow);
  position: relative;
}
.bl-head {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 16px 22px 10px; border-bottom: 1px solid var(--rule);
}
.bl-head .mono { font-size: 11px; color: var(--ink-faint); }
.bl-rows {
  list-style: none; margin: 0; padding: 6px 0;
  max-height: 60vh; overflow-y: auto;
}
.bl-rows::-webkit-scrollbar { width: 6px; }
.bl-rows::-webkit-scrollbar-thumb { background: var(--rule); }
.bl-row {
  display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: baseline;
  padding: 9px 20px 9px 18px;
  border-left: 2px solid transparent;
  color: var(--ink-soft); cursor: pointer;
  font-size: 15px;
}
.bl-row:hover { background: rgba(138,36,24,.04); color: var(--ink); }
.bl-row.active {
  border-left-color: var(--accent, var(--rubric));
  background: rgba(138,36,24,.05); color: var(--ink);
}
.bl-row .bl-n {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; color: var(--ink-faint);
}
.bl-row.active .bl-n { color: var(--accent, var(--rubric)); }
.bl-row .bl-title {
  font-style: italic; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ——— opera + radio page editorial extras ——— */

.album-cover-large img { width: 100%; height: auto; display: block; border: 1px solid var(--paper-edge); }
.liner-body p { margin: 0 0 14px; }
.liner-body p:last-child { margin-bottom: 0; }
.album-foot-line { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-faint); }
.radio-essay p:first-child { margin-top: 22px; }
.radio-essay p.standfirst,
p.standfirst {
  font-style: italic; font-size: 22px; line-height: 1.3;
  color: var(--ink); margin: 26px 0;
}
