:root {
  --ink: #131029;
  --ink-2: #1b1735;
  --paper: #faf9f5;
  --paper-2: #f3f1e9;
  --text: #232038;
  --muted: #5c5773;
  --line: #e2dfd6;
  --gold: #d0b160;
  --gold-deep: #826b36;
  --teal: #3a7679;
  --night-text: #efedf6;
  --night-muted: #9d97b8;
  --night-line: rgba(208, 177, 96, 0.35);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
    --paper: #14111f;
    --paper-2: #1a1628;
    --text: #e4e1ee;
    --muted: #a29dbb;
    --line: #2e2945;
    --teal: #8fc3c5;
    --gold-deep: #c8a856;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper: #14111f;
  --paper-2: #1a1628;
  --text: #e4e1ee;
  --muted: #a29dbb;
  --line: #2e2945;
  --teal: #8fc3c5;
  --gold-deep: #c8a856;
  color-scheme: dark;
}
:root[data-theme="light"] {
  --ink: #131029;
  --paper: #faf9f5;
  --paper-2: #f3f1e9;
  --text: #232038;
  --muted: #5c5773;
  --line: #e2dfd6;
  --teal: #3a7679;
  --gold-deep: #826b36;
  color-scheme: light;
}
* { box-sizing: border-box; margin: 0; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
}
body {
  background: var(--paper);
  color: var(--text);
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 1.0625rem;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  font-feature-settings: "liga", "onum";
}
.grain { position: relative; }
.grain::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.32 0 0 0 0 0.28 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
.kicker {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.night .kicker { color: var(--gold); }
.rule { width: 3.5rem; height: 1px; border: 0; background: var(--gold); }
.numeral {
  font-family: "Fraunces", Georgia, serif;
  font-variation-settings: "opsz" 144;
  font-weight: 350;
  font-size: 0.95rem;
  letter-spacing: 0.35em;
  color: var(--gold-deep);
}
.night .numeral { color: var(--gold); }
h1, h2, h3 {
  font-family: "Fraunces", Georgia, serif;
  font-variation-settings: "opsz" 144, "SOFT" 0, "WONK" 0;
  font-weight: 430;
  line-height: 1.05;
  letter-spacing: -0.015em;
  text-wrap: balance;
  color: inherit;
}
a { color: var(--teal); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--gold-deep); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.rv { opacity: 0; transform: translateY(14px); }
.rv.on {
  opacity: 1; transform: none;
  transition: opacity 0.6s cubic-bezier(0.19, 1, 0.22, 1), transform 0.6s cubic-bezier(0.19, 1, 0.22, 1);
  transition-delay: var(--d, 0s);
}
@media (prefers-reduced-motion: reduce) {
.rv { opacity: 1; transform: none; transition: none; }
}
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem clamp(1.2rem, 4vw, 2.6rem);
  transition: background 0.5s ease, box-shadow 0.5s ease;
}
.nav.scrolled { background: rgba(19, 16, 41, 0.84); backdrop-filter: blur(10px); box-shadow: 0 1px 0 rgba(208, 177, 96, 0.25); }
.monogram {
  font-family: "Fraunces", Georgia, serif;
  font-variation-settings: "opsz" 144;
  font-weight: 500;
  font-size: 0.98rem;
  letter-spacing: 0.14em;
  white-space: nowrap;
  color: var(--gold);
  text-decoration: none;
}
.monogram:hover { color: #ecd9a4; }
.nav-links { display: flex; flex-wrap: wrap; gap: clamp(0.7rem, 1.9vw, 1.7rem); justify-content: flex-end; }
.nav-links a {
  font-size: 0.63rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--night-muted);
  padding-bottom: 0.35rem;
  border-bottom: 1px solid transparent;
  transition: color 0.35s ease, border-color 0.35s ease;
}
.nav-links a:hover { color: var(--gold); }
.nav-links a[aria-current="page"] { color: var(--night-text); border-color: var(--gold); }
body[data-route="about"] .nav:not(.scrolled) .nav-links a,
body[data-route="research"] .nav:not(.scrolled) .nav-links a,
body[data-route="projects"] .nav:not(.scrolled) .nav-links a,
body[data-route="contact"] .nav:not(.scrolled) .nav-links a { color: var(--muted); }
body[data-route="about"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="research"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="projects"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="contact"] .nav:not(.scrolled) .nav-links a[aria-current="page"] { color: var(--text); }
body[data-route="about"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="research"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="projects"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="contact"] .nav:not(.scrolled) .nav-links a:hover { color: var(--gold-deep); }
body[data-route="about"] .nav:not(.scrolled) .monogram,
body[data-route="research"] .nav:not(.scrolled) .monogram,
body[data-route="projects"] .nav:not(.scrolled) .monogram,
body[data-route="contact"] .nav:not(.scrolled) .monogram { color: var(--gold-deep); }
main[data-page] { display: none; }
main[data-page].active { display: block; }
@media (prefers-reduced-motion: no-preference) {
main[data-page].active { animation: pagein 0.6s ease both; }
}
.band { position: relative; padding: clamp(4.5rem, 10vh, 7.5rem) 1.5rem; }
.band-inner { max-width: 66rem; margin: 0 auto; }
.band-head { display: grid; gap: 1.4rem; margin-bottom: clamp(2.4rem, 5vh, 3.6rem); }
.band h2 { font-size: clamp(2.4rem, 5.5vw, 4.2rem); }
.prose { max-width: 62ch; }
.prose p + p { margin-top: 1.2em; }
.lede { font-size: 1.22rem; line-height: 1.75; }
.day-hero { background: var(--paper); padding: clamp(8.5rem, 16vh, 11rem) 1.5rem clamp(3.5rem, 7vh, 5rem); position: relative; overflow: hidden; }
.hero-sigil {
  position: absolute;
  top: clamp(9rem, 20vh, 12rem);
  right: clamp(2rem, 10vw, 8rem);
  width: clamp(6rem, 13vw, 9rem);
  color: var(--gold);
  opacity: 0.32;
  pointer-events: none;
}
.hero-sigil svg { width: 100%; height: auto; display: block; }
@media (max-width: 52rem) {
.hero-sigil { display: none; }
}
.plate-sigil { width: 2.1rem; margin: 0 auto 1.4rem; color: var(--gold); opacity: 0.75; }
.plate-sigil svg { width: 100%; height: auto; display: block; }
.day-hero .band-inner { display: grid; gap: 1.5rem; }
.day-hero h1 { font-size: clamp(2.8rem, 7.5vw, 5.8rem); font-weight: 400; }
.day-hero .lede { color: var(--muted); font-style: italic; max-width: 52ch; }
.cover {
  position: relative;
  min-height: 88svh;
  display: grid;
  place-items: center;
  text-align: center;
  background:
    radial-gradient(120% 90% at 50% 110%, #2a2151 0%, rgba(42, 33, 81, 0) 55%),
    linear-gradient(180deg, #0b0919 0%, #131029 46%, #1d1740 100%);
  color: var(--night-text);
  overflow: hidden;
  padding: 7rem 1.5rem 6rem;
}
.starfield { position: absolute; inset: 0; width: 100%; height: 100%; }
.cover-inner { position: relative; display: grid; justify-items: center; gap: 1.7rem; max-width: 60rem; }
.cover-mandala { width: clamp(8rem, 20vw, 12rem); color: var(--gold); opacity: 0.92; }
.cover-mandala svg { width: 100%; height: auto; display: block; }
.cover .kicker { color: var(--gold); opacity: 0.92; }
.cover h1 { font-size: clamp(3rem, 9.5vw, 7rem); font-weight: 380; color: #f4f2fa; line-height: 1.0; }
.cover h1 .surname { font-weight: 560; }
.roles {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 0.4rem 1.4rem;
  font-size: 0.78rem; letter-spacing: 0.34em; text-transform: uppercase;
  color: var(--night-muted);
}
.roles span { white-space: nowrap; }
.roles .sep { color: var(--gold); letter-spacing: 0; }
.cover-lede { max-width: 34rem; font-size: 1.02rem; line-height: 1.85; color: #c9c4dd; font-style: italic; }
.scroll-cue {
  position: absolute; left: 50%; bottom: 2.2rem; transform: translateX(-50%);
  display: grid; justify-items: center; gap: 0.65rem;
  color: var(--night-muted);
  font-size: 0.62rem; letter-spacing: 0.4em; text-transform: uppercase;
  text-decoration: none;
}
.scroll-cue:hover { color: var(--gold); }
.scroll-cue .stem { width: 1px; height: 3rem; background: linear-gradient(var(--gold), transparent); }
@media (prefers-reduced-motion: no-preference) {
.scroll-cue .stem { animation: stem 2.6s ease-in-out infinite; transform-origin: top; }
}
.work { background: var(--paper); }
.work .band-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}
@media (max-width: 46rem) {
.work .band-inner { grid-template-columns: 1fr; }
}
.portrait { position: relative; }
.portrait img { display: block; width: 100%; height: auto; filter: grayscale(0.15) contrast(1.02); }
.portrait::after {
  content: "";
  position: absolute;
  inset: 1.1rem -1.1rem -1.1rem 1.1rem;
  border: 1px solid var(--gold);
  opacity: 0.55;
  pointer-events: none;
}
.credo {
  margin-top: 2.6rem;
  padding-left: 1.4rem;
  border-left: 1px solid var(--gold);
  font-style: italic;
  color: var(--muted);
  max-width: 46ch;
  text-indent: -0.45em;
}
.wayfinding { margin-top: 3rem; display: flex; flex-wrap: wrap; gap: 1.6rem 2.4rem; }
.wayfinding a {
  font-size: 0.7rem; letter-spacing: 0.36em; text-transform: uppercase;
  color: var(--gold-deep); text-decoration: none;
  padding-bottom: 0.4rem; border-bottom: 1px solid var(--line);
  transition: border-color 0.4s ease;
}
.wayfinding a:hover { border-color: var(--gold); }
.gallery {
  background:
    radial-gradient(90% 70% at 50% 0%, #221b45 0%, rgba(34, 27, 69, 0) 60%),
    linear-gradient(180deg, #100d22 0%, #161230 100%);
  color: var(--night-text);
}
.gallery .band-head { justify-items: center; text-align: center; }
.shelf {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(3rem, 8vw, 8rem);
  max-width: 56rem;
  margin: 0 auto;
}
@media (max-width: 46rem) {
.shelf { grid-template-columns: 1fr; max-width: 22rem; }
}
.tome { display: grid; gap: 1.6rem; justify-items: center; text-align: center; align-content: start; }
.tome .cover-img {
  display: block;
  width: min(100%, 19rem);
  height: auto;
  box-shadow: 0 1px 2px rgba(0,0,0,0.5), 0 14px 40px rgba(0,0,0,0.55), 0 30px 90px rgba(0,0,0,0.4);
  transition: transform 0.7s cubic-bezier(0.19, 1, 0.22, 1), box-shadow 0.7s cubic-bezier(0.19, 1, 0.22, 1);
}
@media (prefers-reduced-motion: no-preference) {
.tome:hover .cover-img { transform: translateY(-8px); box-shadow: 0 2px 3px rgba(0,0,0,0.5), 0 22px 55px rgba(0,0,0,0.6), 0 45px 110px rgba(0,0,0,0.45); }
}
.tome h3 { font-size: 1.65rem; font-weight: 470; font-style: italic; color: #f0edf8; }
.tome .imprint { font-size: 0.7rem; letter-spacing: 0.32em; text-transform: uppercase; color: var(--night-muted); }
.tome .desc { font-size: 0.95rem; color: #b7b1cf; max-width: 30ch; line-height: 1.7; }
.acquire {
  font-size: 0.72rem; letter-spacing: 0.38em; text-transform: uppercase;
  color: var(--gold); text-decoration: none;
  padding-bottom: 0.4rem; border-bottom: 1px solid var(--night-line);
  transition: border-color 0.4s ease, color 0.4s ease;
}
.acquire:hover { color: #ecd9a4; border-color: var(--gold); }
.gallery-note {
  margin: clamp(3.5rem, 8vh, 6rem) auto 0;
  text-align: center; font-style: italic;
  color: var(--night-muted); font-size: 0.95rem; max-width: 44ch;
}
.gallery-note a { color: var(--gold); }
.commonplace {
  background: var(--paper-2);
  border-top: 1px solid var(--line);
  text-align: center;
  padding: clamp(6rem, 13vh, 9rem) 1.5rem;
}
.commonplace .band-inner { max-width: 46rem; display: grid; justify-items: center; gap: 2rem; }
.aphorism-stage { position: relative; min-height: 13rem; width: 100%; display: grid; place-items: center; }
@media (max-width: 40rem) {
.aphorism-stage { min-height: 18.5rem; }
}
.aphorism {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: "Fraunces", Georgia, serif;
  font-variation-settings: "opsz" 100;
  font-size: clamp(1.25rem, 2.6vw, 1.7rem);
  font-weight: 440;
  line-height: 1.45;
  font-style: italic;
  color: var(--text);
  opacity: 0;
  transition: opacity 0.8s ease;
  text-wrap: balance;
}
.aphorism.lit { opacity: 1; }
.aphorism-inner { display: block; }
.aphorism .q { display: block; }
.aphorism .src {
  display: block;
  margin-top: 1.1rem;
  font-family: "Source Serif 4", Georgia, serif;
  font-style: normal;
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.commonplace .quotes-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.72rem 1.55rem;
  border: 1px solid var(--gold-deep);
  border-radius: 999px;
  font-family: "Source Serif 4", Georgia, serif;
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-deep);
  text-decoration: none;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
.commonplace .quotes-cta:hover,
.commonplace .quotes-cta:focus-visible {
  background: var(--gold-deep);
  color: var(--paper);
  border-color: var(--gold-deep);
}
.commonplace .aphorism-next {
  display: inline-block;
  appearance: none;
  border: 0;
  border-bottom: 1px solid currentColor;
  padding: 0.2rem 0;
  background: transparent;
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-deep);
  cursor: pointer;
}
.commonplace .aphorism-next:hover,
.commonplace .aphorism-next:focus-visible { color: var(--text); }
@media (prefers-reduced-motion: reduce) {
.aphorism { transition: none; }
}
.library-hero {
  position: relative;
  padding: clamp(9rem, 18vh, 12rem) 1.5rem clamp(5rem, 9vh, 7rem);
  text-align: center;
  background:
    radial-gradient(90% 80% at 50% 115%, #241c4b 0%, rgba(36, 28, 75, 0) 60%),
    linear-gradient(180deg, #0c0a1b 0%, #131029 100%);
  color: var(--night-text);
}
.library-hero .band-inner { display: grid; justify-items: center; gap: 1.6rem; }
.library-hero h1 { font-size: clamp(3rem, 8vw, 6.4rem); font-weight: 400; color: #f4f2fa; }
.library-hero .lede { color: #c9c4dd; font-style: italic; max-width: 38rem; }
.volume { color: var(--night-text); }
.volume .band-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(3rem, 8vw, 7rem);
  align-items: center;
  max-width: 62rem;
}
@media (max-width: 46rem) {
.volume .band-inner { grid-template-columns: 1fr; }
}
.volume.flip .band-inner > figure { order: 2; }
@media (max-width: 46rem) {
.volume.flip .band-inner > figure { order: 0; }
}
.volume figure { display: grid; justify-items: center; }
.volume .cover-img {
  width: min(100%, 21rem); height: auto; display: block;
  box-shadow: 0 1px 2px rgba(0,0,0,0.5), 0 18px 50px rgba(0,0,0,0.55), 0 40px 110px rgba(0,0,0,0.4);
}
.volume .v-text { display: grid; gap: 1.3rem; justify-items: start; }
.volume h2 { font-size: clamp(2.2rem, 4.5vw, 3.4rem); font-style: italic; font-weight: 460; color: #f2eff9; }
.volume .imprint { font-size: 0.7rem; letter-spacing: 0.32em; text-transform: uppercase; color: var(--night-muted); }
.volume p { color: #bfb9d6; max-width: 52ch; }
.volume-1 { background: linear-gradient(180deg, #131029 0%, #171233 100%); }
.volume-2 { background: linear-gradient(180deg, #171233 0%, #120f26 100%); }
.reading-room {
  background: linear-gradient(180deg, #120f26 0%, #0e0b1e 100%);
  color: var(--night-text);
  text-align: center;
}
.reading-room .band-head { justify-items: center; }
.galleys {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 2px;
  max-width: 58rem;
  margin: 0 auto;
  border: 1px solid rgba(208, 177, 96, 0.22);
  background: rgba(208, 177, 96, 0.22);
}
.galley {
  background: #131029;
  padding: 3.2rem 2rem 2.8rem;
  display: grid;
  gap: 1.1rem;
  justify-items: center;
  align-content: start;
  text-decoration: none;
  transition: background 0.5s ease;
}
.galley:hover { background: #1a1538; }
.galley .g-title { font-size: 1.7rem; line-height: 1.15; color: #eee9dc; text-wrap: balance; }
.galley.g-cinzel .g-title { font-family: "Cinzel", "Fraunces", serif; font-weight: 400; letter-spacing: 0.06em; }
.galley.g-cormorant .g-title { font-family: "Cormorant Garamond", "Fraunces", serif; font-style: italic; font-weight: 500; font-size: 2rem; }
.galley.g-fraunces .g-title { font-family: "Fraunces", serif; font-variation-settings: "opsz" 144; font-weight: 480; }
.galley .g-state { font-size: 0.62rem; letter-spacing: 0.4em; text-transform: uppercase; color: var(--night-muted); }
.galley .g-line { width: 2rem; height: 1px; background: var(--gold); opacity: 0.6; }
.stage { position: relative; color: var(--night-text); padding: 0; }
.stage-img { position: absolute; inset: 0; }
.stage-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.stage-img::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(11,9,25,0.92) 0%, rgba(11,9,25,0.72) 45%, rgba(11,9,25,0.28) 100%);
}
.stage-inner {
  position: relative;
  max-width: 66rem; margin: 0 auto;
  padding: clamp(7.5rem, 17vh, 12rem) 1.5rem;
  display: grid; gap: 1.6rem; justify-items: start;
}
.stage h1 { font-size: clamp(2.8rem, 6.5vw, 5rem); color: #f4f2fa; max-width: 15ch; }
.stage .lede { color: #cfc9e2; max-width: 44ch; }
.stage-cta {
  margin-top: 1.2rem;
  font-size: 0.72rem; letter-spacing: 0.38em; text-transform: uppercase;
  color: var(--gold); text-decoration: none;
  padding: 1rem 2.2rem;
  border: 1px solid var(--night-line);
  transition: border-color 0.4s ease, background 0.4s ease;
}
.stage-cta:hover { border-color: var(--gold); background: rgba(208, 177, 96, 0.08); }
.lectern { background: var(--paper); }
.topics { display: grid; gap: 0; max-width: 58rem; margin: 0 auto; }
.topic {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: 1.5rem 2.5rem;
  padding: clamp(2.4rem, 5vh, 3.6rem) 0;
  border-top: 1px solid var(--line);
  align-items: start;
}
.topic:last-child { border-bottom: 1px solid var(--line); }
@media (max-width: 40rem) {
.topic { grid-template-columns: 1fr; gap: 0.8rem; }
}
.topic .numeral { padding-top: 0.55rem; }
.topic h3 { font-size: clamp(1.4rem, 2.8vw, 1.9rem); font-weight: 470; margin-bottom: 0.5rem; }
.topic p { color: var(--muted); max-width: 60ch; }
.formats-note { margin: clamp(3rem, 6vh, 4rem) auto 0; max-width: 58rem; font-style: italic; color: var(--muted); }
.plaudits { background: var(--paper-2); border-top: 1px solid var(--line); }
.plaudits .band-head { justify-items: center; text-align: center; }
.plaudit-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: clamp(2.4rem, 5vw, 4rem);
  max-width: 62rem;
  margin: 0 auto;
}
.plaudit { display: grid; gap: 1.1rem; align-content: start; }
.plaudit .rule { width: 2.2rem; }
.plaudit blockquote {
  font-family: "Fraunces", Georgia, serif;
  font-variation-settings: "opsz" 100;
  font-style: italic;
  font-size: 1.12rem;
  line-height: 1.6;
  color: var(--text);
}
.plaudit cite { font-style: normal; font-size: 0.68rem; letter-spacing: 0.32em; text-transform: uppercase; color: var(--muted); }
.ledger-list { background: var(--paper); padding-top: 0; }
.entry {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1.15fr) minmax(0, 1.85fr);
  gap: 1rem 2.5rem;
  padding: clamp(2rem, 4.5vh, 3rem) 0;
  border-top: 1px solid var(--line);
  align-items: baseline;
}
.entry:last-child { border-bottom: 1px solid var(--line); }
@media (max-width: 46rem) {
.entry { grid-template-columns: 1fr; gap: 0.6rem; }
}
.entry h3 { font-size: clamp(1.3rem, 2.5vw, 1.7rem); font-weight: 470; }
.entry .body { color: var(--muted); font-size: 0.98rem; max-width: 60ch; }
.entry .body p + p { margin-top: 0.8em; }
.entry .where { font-size: 0.66rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold-deep); display: block; margin-bottom: 0.5rem; }
.cat-head { display: flex; align-items: baseline; gap: 1.6rem; margin: clamp(4rem, 9vh, 6rem) 0 1.2rem; }
.cat-head:first-of-type { margin-top: 0; }
.cat-head h2 { font-size: clamp(1.7rem, 3.2vw, 2.3rem); font-weight: 460; }
.cat-head .numeral { font-size: 0.8rem; }
.pub {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.3rem 2.5rem;
  padding: 1.35rem 0;
  border-top: 1px solid var(--line);
  align-items: baseline;
}
.pub:last-of-type { border-bottom: 1px solid var(--line); }
.pub h3 { font-size: 1.12rem; font-weight: 470; font-style: italic; line-height: 1.4; }
.pub .meta { font-size: 0.85rem; color: var(--muted); }
.pub .year { font-size: 0.7rem; letter-spacing: 0.28em; color: var(--gold-deep); white-space: nowrap; }
.pubs-note { margin-top: 2rem; font-style: italic; color: var(--muted); font-size: 0.95rem; max-width: 60ch; }
.questions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 2px;
  border: 1px solid var(--line);
  background: var(--line);
  max-width: 62rem;
  margin: 0 auto;
}
.question {
  background: var(--paper);
  padding: 2.8rem 2rem;
  display: grid;
  gap: 0.9rem;
  align-content: start;
}
.question h3 {
  font-size: 1.45rem;
  font-weight: 460;
  font-style: italic;
}
.question .std { font-size: 0.66rem; letter-spacing: 0.32em; text-transform: uppercase; color: var(--gold-deep); }
.question p { font-size: 0.92rem; color: var(--muted); }
.story { background: var(--paper); }
.story .band-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
  gap: clamp(3rem, 7vw, 6rem);
  align-items: start;
}
@media (max-width: 46rem) {
.story .band-inner { grid-template-columns: 1fr; }
}
.story .portrait { position: sticky; top: 7rem; }
.focus-list { margin: 2rem 0 0; padding: 0; list-style: none; display: grid; gap: 0; max-width: 34rem; }
.focus-list li {
  padding: 1.05rem 0;
  border-top: 1px solid var(--line);
  font-size: 0.82rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}
.focus-list li:last-child { border-bottom: 1px solid var(--line); }
.andrews {
  background: var(--ink);
  color: var(--night-text);
  text-align: center;
}
.andrews .band-inner { max-width: 50rem; display: grid; justify-items: center; gap: 2rem; }
.andrews blockquote {
  font-family: "Fraunces", Georgia, serif;
  font-variation-settings: "opsz" 130;
  font-size: clamp(1.5rem, 3.4vw, 2.3rem);
  font-weight: 420;
  font-style: italic;
  line-height: 1.4;
  color: #ece9f4;
}
.andrews p { color: var(--night-muted); font-size: 0.98rem; max-width: 58ch; }
.parlour-hero {
  position: relative;
  padding: clamp(9rem, 18vh, 12rem) 1.5rem clamp(4.5rem, 8vh, 6.5rem);
  text-align: center;
  background:
    radial-gradient(100% 80% at 50% 115%, #24204d 0%, rgba(36, 32, 77, 0) 62%),
    linear-gradient(180deg, #0c0a1b 0%, #14112b 100%);
  color: var(--night-text);
}
.parlour-hero .band-inner { display: grid; justify-items: center; gap: 1.6rem; }
.parlour-hero h1 { font-size: clamp(3rem, 8vw, 6.4rem); font-weight: 400; color: #f4f2fa; }
.parlour-hero .lede { color: #c9c4dd; font-style: italic; max-width: 40rem; }
.parlour { background: linear-gradient(180deg, #14112b 0%, #100d22 100%); color: var(--night-text); }
.parlour .band-head { justify-items: center; text-align: center; }
.cabinet {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: 2px;
  border: 1px solid rgba(208, 177, 96, 0.2);
  background: rgba(208, 177, 96, 0.2);
  max-width: 70rem;
  margin: 0 auto;
}
.game {
  background: #14112b;
  padding: 2.6rem 2rem 2.4rem;
  display: grid;
  gap: 0.85rem;
  align-content: start;
  text-decoration: none;
  transition: background 0.5s ease;
}
.game:hover { background: #1b1738; }
.game h3 { font-size: 1.32rem; font-weight: 470; color: #efecdc; font-style: italic; }
.game p { font-size: 0.9rem; line-height: 1.65; color: #aaa4c4; }
.game .g-tag { font-size: 0.58rem; letter-spacing: 0.38em; text-transform: uppercase; color: var(--gold); opacity: 0.8; }
.parley {
  background: var(--paper);
  min-height: 88vh;
  display: grid;
  place-items: center;
  text-align: center;
  padding: clamp(10rem, 20vh, 14rem) 1.5rem clamp(7rem, 14vh, 10rem);
}
.parley .band-inner { display: grid; justify-items: center; gap: 2rem; max-width: 46rem; }
.parley h1 { font-size: clamp(2.8rem, 8vw, 5.8rem); font-weight: 400; }
.parley .lede { color: var(--muted); font-style: italic; max-width: 34rem; }
.cform { width: 100%; max-width: 36rem; display: grid; gap: 1.5rem; text-align: left; margin-top: 0.6rem; }
.cform .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
@media (max-width: 34rem) {
.cform .row2 { grid-template-columns: 1fr; }
}
.cform label {
  display: grid; gap: 0.45rem;
  font-size: 0.64rem; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--muted);
}
.cform .opt { text-transform: none; letter-spacing: 0.06em; font-size: 0.7rem; }
.cform input, .cform textarea {
  font-family: inherit; font-size: 1.02rem; color: var(--text);
  background: transparent; border: 0; border-bottom: 1px solid var(--line);
  padding: 0.5rem 0.1rem; border-radius: 0;
}
.cform input:focus, .cform textarea:focus { outline: none; border-bottom-color: var(--gold); }
.cform textarea { resize: vertical; min-height: 7rem; }
.cform button {
  justify-self: start; margin-top: 0.4rem;
  font-family: inherit; font-size: 0.72rem; letter-spacing: 0.38em; text-transform: uppercase;
  color: var(--gold-deep); background: none; border: 1px solid var(--gold);
  padding: 1rem 2.4rem; cursor: pointer;
  transition: background 0.4s ease, color 0.4s ease;
}
.cform button:hover { background: rgba(208, 177, 96, 0.12); }
.cform-sent { font-style: italic; color: var(--muted); padding: 2rem 0; }
.parley .fine { font-size: 0.72rem; letter-spacing: 0.32em; text-transform: uppercase; color: var(--muted); }
.press { background: var(--paper); text-align: center; padding: clamp(5rem, 10vh, 7rem) 1.5rem; }
.press .kicker { font-size: 0.62rem; opacity: 0.85; }
.press-row {
  margin: 2.8rem auto 0;
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: 2.8rem 3.6rem;
  max-width: 58rem;
}
:is(.press-row img, .press-row .press-logo) {
  height: 1.15rem; width: auto;
  filter: grayscale(1) brightness(0.35) contrast(0.6);
  opacity: 0.55;
  transition: opacity 0.4s ease;
}
:is(.press-row img, .press-row .press-logo):hover { opacity: 0.9; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) :is(.press-row img, .press-row .press-logo) { filter: grayscale(1) invert(1) brightness(1.1) contrast(0.5); }
}
:root[data-theme="dark"] :is(.press-row img, .press-row .press-logo) { filter: grayscale(1) invert(1) brightness(1.1) contrast(0.5); }
:root[data-theme="light"] :is(.press-row img, .press-row .press-logo) { filter: grayscale(1) brightness(0.35) contrast(0.6); }
.colophon { background: var(--paper-2); border-top: 1px solid var(--line); }
.colophon .band-inner { max-width: 44rem; text-align: center; display: grid; justify-items: center; gap: 1.6rem; }
.colophon h2 { font-size: 1.9rem; font-weight: 470; font-style: italic; }
.colophon p { color: var(--muted); font-size: 0.98rem; }
.plate {
  background: var(--ink);
  color: var(--night-muted);
  text-align: center;
  padding: 3.4rem 1.5rem;
  font-size: 0.72rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}
.plate .rule { margin: 0 auto 1.6rem; opacity: 0.6; }
.plate strong { color: var(--gold); font-weight: 400; }
.plate-fine { margin-top: 1.6rem; font-size: 0.6rem; letter-spacing: 0.26em; color: var(--night-muted); opacity: 0.7; }
.plate nav { margin-top: 1.4rem; display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 1.4rem; }
.plate nav a { color: var(--night-muted); text-decoration: none; letter-spacing: 0.3em; }
.plate nav a:hover { color: var(--gold); }
.tome .cover-img { width: auto; height: clamp(17rem, 26vw, 25rem); max-width: 100%; }
@media (max-width: 46rem) {
.tome .cover-img { height: auto; width: min(100%, 19rem); }
}
.monogram { display: inline-flex; align-items: center; gap: 0.62rem; }
.nw-mark { width: 1.72rem; height: 1.72rem; display: block; flex: none; }
.cform .req {
  color: var(--muted); font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: none;
}
.cform select {
  width: 100%; padding: 0.75rem 0; border: 0; border-bottom: 1px solid var(--line);
  border-radius: 0; background: transparent; color: var(--ink); font: inherit;
  font-size: 1.02rem;
}
.cform select:focus-visible {
  outline: 2px solid var(--gold-deep); outline-offset: 2px;
  border-bottom-color: var(--gold);
}
.cform-guidance {
  margin: -0.5rem 0 0; max-width: 32rem; color: var(--muted);
  font-size: 0.82rem; line-height: 1.55;
}
.plaudit-more {
  max-width: 62rem; margin: clamp(2.5rem, 6vh, 4rem) auto 0;
  border-top: 1px solid var(--line); padding-top: 1.25rem;
}
.plaudit-more summary {
  width: fit-content; margin: 0 auto; cursor: pointer; color: var(--gold-deep);
  font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase;
}
.plaudit-more[open] summary { margin-bottom: clamp(2.4rem, 5vw, 4rem); }
:root {
  --nw-scroll-track: color-mix(in srgb, var(--paper) 90%, var(--ink) 10%);
  --nw-scroll-thumb:
    color-mix(in srgb, var(--gold-deep) 62%, var(--muted) 38%);
  --nw-scroll-hover: var(--gold-deep);
}
* {
  scrollbar-width: thin;
  scrollbar-color: var(--nw-scroll-thumb) var(--nw-scroll-track);
}
*::-webkit-scrollbar {
  width: 0.72rem;
  height: 0.72rem;
}
*::-webkit-scrollbar-track {
  background: var(--nw-scroll-track);
}
*::-webkit-scrollbar-thumb {
  min-height: 2.5rem;
  background: var(--nw-scroll-thumb);
  border: 0.18rem solid var(--nw-scroll-track);
  border-radius: 999px;
}
*::-webkit-scrollbar-thumb:hover {
  background: var(--nw-scroll-hover);
}
*::-webkit-scrollbar-thumb:active {
  background: var(--gold);
}
*::-webkit-scrollbar-corner {
  background: var(--nw-scroll-track);
}
.night, .selected-press, .tt-lab, .play-room {
  --nw-scroll-track: #100d22;
  --nw-scroll-thumb: #8d7847;
  --nw-scroll-hover: #d0b160;
}
html:has(main.active > .night:first-child) {
  --nw-scroll-track: #100d22;
  --nw-scroll-thumb: #8d7847;
  --nw-scroll-hover: #d0b160;
}
.volume figure {
  perspective: 72rem;
  perspective-origin: 50% 42%;
  overflow: visible;
}
.published-cover {
  --book-depth: 0.78rem;
  --book-turn: 6deg;
  --book-hover-turn: 0.9deg;
  --book-roll: -0.25deg;
  --book-light-x: 16%;
  --book-light-y: 8%;
  position: relative;
  display: block;
  width: min(100%, 21rem);
  isolation: isolate;
  transform-style: preserve-3d;
  transform-origin: left center;
  transform:
    translate3d(0, 0, 0)
    rotateY(var(--book-turn))
    rotateX(-1.15deg)
    rotateZ(var(--book-roll));
  /* A filter on the transformed parent forces browsers to flatten the whole
     jacket into a softer intermediate bitmap. The dedicated cast-shadow plane
     below supplies the depth while the cover itself stays at native clarity. */
  transition: transform 0.72s cubic-bezier(0.16, 1, 0.3, 1);
}
.volume-2 .published-cover {
  --book-turn: 6deg;
  --book-hover-turn: 0.9deg;
  --book-roll: 0.25deg;
  transform-origin: left center;
}
.published-cover .book-cast-shadow {
  position: absolute;
  inset: 6% 3% 2% 5%;
  z-index: 0;
  display: block;
  background: rgba(0, 0, 0, 0.66);
  border-radius: 4px;
  filter: blur(1.35rem);
  opacity: 0.66;
  transform: translate3d(0.75rem, 1.2rem, -1.6rem) rotateZ(0.7deg);
  transition:
    transform 0.72s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.72s ease;
  pointer-events: none;
}
.published-cover .book-back-board {
  position: absolute;
  inset: 1px;
  z-index: 1;
  display: block;
  border: 1px solid rgba(236, 225, 198, 0.13);
  border-radius: 2px;
  background:
    linear-gradient(100deg, #0b0917, #211a35 68%, #0d0a18);
  box-shadow:
    0.34rem 0.42rem 0 rgba(7, 5, 13, 0.9),
    0.6rem 0.75rem 0.85rem rgba(0, 0, 0, 0.28);
  transform: translateZ(0);
  pointer-events: none;
}
.published-cover .book-page-edge {
  position: absolute;
  z-index: 3;
  display: block;
  border: 1px solid rgba(62, 48, 33, 0.2);
  background-color: #b2a58e;
  background-image:
    linear-gradient(90deg,
      rgba(255, 250, 235, 0.6), rgba(157, 137, 107, 0.44)),
    repeating-linear-gradient(0deg,
      rgba(68, 51, 33, 0.22) 0 1px,
      rgba(247, 240, 219, 0.28) 1px 3px,
      rgba(91, 71, 47, 0.14) 3px 4px);
  box-shadow: inset 0 0 0.42rem rgba(45, 30, 18, 0.22);
  pointer-events: none;
}
.published-cover .book-page-fore {
  top: 0.22rem;
  bottom: 0.32rem;
  left: calc(100% - 0.18rem);
  width: var(--book-depth);
  transform-origin: left center;
  transform: translateZ(var(--book-depth)) rotateY(90deg);
}
.published-cover-picture { position: relative; z-index: 4; display: block; }
.volume .published-cover .cover-img {
  position: relative;
  z-index: 4;
  display: block;
  width: 100%;
  height: auto;
  border-radius: 1px;
  box-shadow:
    inset 0.22rem 0 0.45rem rgba(0, 0, 0, 0.18);
  transform: translateZ(var(--book-depth));
  backface-visibility: hidden;
  image-rendering: -webkit-optimize-contrast;
}
.published-cover .book-jacket-finish {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: block;
  overflow: hidden;
  border-radius: 1px;
  background:
    linear-gradient(112deg, transparent 33%,
      rgba(255, 255, 255, 0.23) 46%, transparent 59%),
    radial-gradient(ellipse at var(--book-light-x) var(--book-light-y),
      rgba(255, 255, 255, 0.16), transparent 31%),
    linear-gradient(90deg,
      rgba(0, 0, 0, 0.32) 0,
      rgba(255, 255, 255, 0.1) 1.1%,
      rgba(0, 0, 0, 0.08) 2.1%,
      transparent 5.4%,
      transparent 95%,
      rgba(0, 0, 0, 0.2) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.58' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  background-size: 250% 100%, 100% 100%, 100% 100%, 10rem 10rem;
  background-position: 138% 0, 0 0, 0 0, 0 0;
  box-shadow:
    inset 1px 0 0 rgba(255, 255, 255, 0.09),
    inset -1px 0 0 rgba(255, 255, 255, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    inset 0 0 1.25rem rgba(0, 0, 0, 0.14);
  mix-blend-mode: soft-light;
  opacity: 0.2;
  transform: translateZ(calc(var(--book-depth) + 1px));
  transition:
    background-position 1.05s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.45s ease;
  pointer-events: none;
}
.published-cover:is(:hover, :focus-visible) {
  transform:
    translate3d(0, -0.62rem, 1.1rem)
    rotateY(var(--book-hover-turn))
    rotateX(-0.35deg)
    rotateZ(0deg);
}
.published-cover:is(:hover, :focus-visible) .book-cast-shadow {
  opacity: 0.48;
  transform: translate3d(0.8rem, 1.65rem, -1.9rem) rotateZ(0.2deg) scale(1.035);
}
.published-cover:is(:hover, :focus-visible) .book-jacket-finish {
  background-position: -120% 0, 0 0, 0 0, 0 0;
  opacity: 0.32;
}
.book-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.4rem;
}
.book-actions .acquire { display: inline-block; }
.book-actions .book-site { color: var(--night-muted); }
.book-actions .book-site:hover,
.book-actions .book-site:focus-visible { color: #ecd9a4; }
.galleys {
  grid-template-columns: repeat(2, minmax(14.5rem, 16rem));
  justify-content: center;
  gap: clamp(3rem, 5vw, 4.5rem);
  max-width: 42rem;
  border: 0;
  background: transparent;
}
.galley {
  padding: 0;
  gap: 0.95rem;
  align-content: start;
  background: transparent;
  perspective: 52rem;
  perspective-origin: 50% 40%;
}
.galley:hover { background: transparent; }
.galley-cover {
  --gc-bg: #17142e;
  --gc-border: rgba(208, 177, 96, 0.45);
  --gc-frame: rgba(208, 177, 96, 0.25);
  --gc-title: #eee9dc;
  --gc-sub: #bcb5d2;
  --gc-author: #9d97b8;
  --gc-accent: #d0b160;
  --book-depth: 0.48rem;
  --book-light-x: 18%;
  --book-light-y: 12%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.58rem;
  width: 100%;
  aspect-ratio: 2 / 3;
  padding: 2.9rem 1rem;
  text-align: center;
  background:
    linear-gradient(90deg,
      rgba(0, 0, 0, 0.34) 0,
      rgba(255, 255, 255, 0.055) 2.6%,
      transparent 7%,
      transparent 93%,
      rgba(0, 0, 0, 0.2) 100%),
    var(--gc-bg);
  border: 1px solid var(--gc-border);
  border-radius: 2px;
  box-shadow:
    0.12rem 0.1rem 0 rgba(230, 225, 211, 0.12),
    0.38rem 0.32rem 0 rgba(3, 2, 8, 0.56),
    -0.48rem 0.68rem 1.3rem rgba(0, 0, 0, 0.3),
    0 0.65rem 1.7rem rgba(0, 0, 0, 0.28),
    inset 0.28rem 0 0.5rem rgba(0, 0, 0, 0.24),
    inset -1px 0 0 rgba(255, 255, 255, 0.07),
    inset 0 0 1.4rem rgba(0, 0, 0, 0.08);
  filter: drop-shadow(0.2rem 0.85rem 0.7rem rgba(0, 0, 0, 0.24));
  isolation: isolate;
  overflow: visible;
  transform: rotateY(4.5deg) rotateX(-0.9deg) rotateZ(-0.12deg);
  transform-origin: left center;
  transform-style: preserve-3d;
  transition:
    transform 0.62s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.62s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.62s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}
.galley-cover > .book-page-edge {
  position: absolute;
  z-index: 1;
  display: block;
  border: 1px solid rgba(65, 49, 31, 0.22);
  background-color: #b2a58e;
  box-shadow: inset 0 0 0.32rem rgba(47, 31, 18, 0.22);
  pointer-events: none;
}
.galley-cover > .book-page-fore {
  top: 0.11rem;
  bottom: 0.14rem;
  right: -0.11rem;
  left: auto;
  width: 0.22rem;
  border-radius: 0 0.26rem 0.26rem 0;
  transform: translate3d(0, 0, -0.36rem);
  background-image:
    linear-gradient(90deg,
      rgba(255, 251, 236, 0.56), rgba(155, 133, 101, 0.46)),
    repeating-linear-gradient(0deg,
      rgba(74, 54, 33, 0.2) 0 1px,
      rgba(245, 237, 216, 0.27) 1px 3px,
      rgba(91, 70, 45, 0.13) 3px 4px);
}
.galley-cover > .book-cover-face {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  border-radius: inherit;
  background:
    linear-gradient(90deg,
      rgba(0, 0, 0, 0.34) 0,
      rgba(255, 255, 255, 0.055) 2.6%,
      transparent 7%,
      transparent 93%,
      rgba(0, 0, 0, 0.2) 100%),
    var(--gc-bg);
  box-shadow:
    inset 0.28rem 0 0.5rem rgba(0, 0, 0, 0.24),
    inset -1px 0 0 rgba(255, 255, 255, 0.07),
    inset 0 0 1.4rem rgba(0, 0, 0, 0.08);
  pointer-events: none;
}
.galley-cover::before {
  content: "";
  position: absolute;
  inset: 7px;
  border: 1px solid var(--gc-frame);
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.2),
    0 0 1.15rem rgba(0, 0, 0, 0.1);
  pointer-events: none;
  z-index: 5;
}
.galley-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(112deg, transparent 37%,
      rgba(255, 255, 255, 0.16) 49%, transparent 61%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.56'/%3E%3C/svg%3E"),
    radial-gradient(circle at var(--book-light-x) var(--book-light-y),
      rgba(255, 255, 255, 0.14), transparent 31%),
    linear-gradient(90deg,
      rgba(0, 0, 0, 0.18), transparent 5%,
      transparent 95%, rgba(0, 0, 0, 0.15)),
    repeating-linear-gradient(93deg,
      rgba(255, 255, 255, 0.045) 0 0.45px,
      transparent 0.45px 3.8px);
  background-size: 250% 100%, 8.75rem 8.75rem, 100% 100%, 100% 100%, auto;
  background-position: 138% 0, 0 0, 0 0, 0 0, 0 0;
  mix-blend-mode: soft-light;
  opacity: 0.34;
  pointer-events: none;
  z-index: 3;
  transition: background-position 0.95s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.4s ease;
}
.galley-cover > span:not(.book-page-edge):not(.book-cover-face) {
  z-index: 4;
}
.galley:is(:hover, :focus-visible) .galley-cover {
  transform:
    translate3d(0, -0.48rem, 0.9rem)
    rotateY(0.8deg)
    rotateX(-1.2deg)
    rotateZ(0deg);
  box-shadow:
    0.14rem 0.12rem 0 rgba(230, 225, 211, 0.12),
    0.34rem 0.3rem 0 rgba(3, 2, 8, 0.46),
    -0.72rem 1.05rem 1.85rem rgba(0, 0, 0, 0.34),
    0 1.25rem 2.5rem rgba(0, 0, 0, 0.36),
    inset 0.28rem 0 0.5rem rgba(0, 0, 0, 0.2),
    inset -1px 0 0 rgba(255, 255, 255, 0.1),
    inset 0 0 1.3rem rgba(0, 0, 0, 0.06);
  filter: drop-shadow(0.22rem 1.25rem 1.05rem rgba(0, 0, 0, 0.3));
}
.galley:is(:hover, :focus-visible) .galley-cover::after {
  background-position: -120% 0, 0 0, 0 0, 0 0, 0 0;
  opacity: 0.48;
}
.galley .g-state {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  line-height: 1.4;
}
.galley .g-blurb {
  display: block;
  width: 100%;
  min-height: 0;
  margin-inline: 0;
  color: #aaa4c4;
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 0.82rem;
  font-style: italic;
  line-height: 1.6;
  hyphens: none;
  text-align: center;
  text-align-last: center;
  text-wrap: pretty;
}
.galley .g-state::before, .galley .g-state::after {
  content: "";
  width: 1.15rem;
  border-top: 1px solid rgba(208, 177, 96, 0.34);
  transform: scaleX(0.45);
  transition: transform 0.35s ease, border-color 0.35s ease;
}
.galley:is(:hover, :focus-visible) .g-state::before,
.galley:is(:hover, :focus-visible) .g-state::after {
  border-color: rgba(208, 177, 96, 0.75);
  transform: scaleX(1);
}
.galley-cover .g-title {
  color: var(--gc-title);
  text-shadow:
    0 1px 0 rgba(0, 0, 0, 0.62),
    0 -1px 0 rgba(255, 255, 255, 0.11),
    0 0 0.9rem color-mix(in srgb, var(--gc-accent) 17%, transparent);
}
.gc-emblem {
  position: absolute;
  top: 8.5%;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  color: var(--gc-accent);
}
.gc-emblem svg, .gc-emblem img {
  display: block;
  width: 3rem;
  height: 3rem;
  object-fit: contain;
  filter:
    drop-shadow(0 1px 0 rgba(0, 0, 0, 0.55))
    drop-shadow(0 0 0.4rem color-mix(in srgb, var(--gc-accent) 34%, transparent));
}
.gc-rule {
  width: 2.2rem;
  border-top: 1px solid var(--gc-accent);
  box-shadow: 0 0 0.45rem
    color-mix(in srgb, var(--gc-accent) 36%, transparent);
}
.gc-sub {
  color: var(--gc-sub);
  font-size: 0.62rem;
  line-height: 1.5;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
}
.gc-author {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 7.5%;
  color: var(--gc-author);
  font-size: 0.56rem;
  line-height: 1.5;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.52);
}
.gc-deeperlaw {
  --gc-bg: #0d0d0f;
  --gc-border: #6b5a2e;
  --gc-frame: rgba(201, 168, 76, 0.4);
  --gc-sub: #c9a84c;
  --gc-author: #9a8f7d;
  --gc-accent: #c9a84c;
}
.gc-deeperlaw .gc-sub {
  font-family: "Cormorant Garamond", "Fraunces", serif;
  font-size: 0.82rem;
  font-style: italic;
  letter-spacing: 0.03em;
  text-transform: none;
}
.gc-wiwf {
  --gc-bg: #3a2830;
  --gc-border: #76575f;
  --gc-frame: rgba(242, 232, 224, 0.22);
  --gc-sub: #e0bfb2;
  --gc-author: #c4a8a0;
  --gc-accent: #c98a7a;
}
.gc-wiwf .gc-emblem svg { transform: scale(1.04); }
.gc-wiwf .gc-sub {
  font-family: "Cormorant Garamond", "Fraunces", serif;
  font-size: 0.76rem;
  font-style: italic;
  letter-spacing: 0.02em;
  text-transform: none;
}
.gc-psychopathia {
  --gc-bg: #0f1923;
  --gc-border: #3d566f;
  --gc-frame: rgba(109, 154, 184, 0.32);
  --gc-title: #e0e6ec;
  --gc-sub: #89b3cc;
  --gc-author: #5a7a98;
  --gc-accent: #6d9ab8;
}
.gc-psychopathia .g-title {
  font-size: 1.6rem;
  line-height: 1.22;
}
.gc-psychopathia .gc-emblem svg { transform: scale(0.87); }
.gc-psychopathia .gc-rule { margin-top: 0.28rem; }
.gc-psychopathia .gc-sub {
  position: relative;
  top: 0.18rem;
  line-height: 1.62;
}
.gc-youngmachines {
  --gc-bg: #1f2833;
  --gc-border: #78644a;
  --gc-frame: rgba(214, 166, 95, 0.38);
  --gc-title: #f3e8cf;
  --gc-sub: #d6a65f;
  --gc-author: #d9c9aa;
  --gc-accent: #b4533f;
}
.gc-youngmachines .gc-emblem svg { width: 3.5rem; height: 3.5rem; }
.gc-youngmachines .g-title {
  font-family: "Fraunces", Georgia, serif;
  font-size: 1rem;
  line-height: 1.25;
}
.gc-youngmachines .gc-sub {
  font-family: "Source Serif 4", Georgia, serif;
  font-style: italic;
  text-transform: none;
  font-size: 0.7rem;
  letter-spacing: 0.02em;
}
.gc-youngmachines .gc-author {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 0.56rem;
  letter-spacing: 0.18em;
}
@media (max-width: 42rem) {
.galleys {
    grid-template-columns: minmax(14.5rem, 17rem);
    gap: 3.25rem;
  }
}
@media (prefers-reduced-motion: reduce) {
.published-cover,
  .published-cover .book-cast-shadow,
  .published-cover .book-jacket-finish { transition: none; }
.published-cover:is(:hover, :focus-visible) {
    transform:
      rotateY(var(--book-turn))
      rotateX(-1.15deg)
      rotateZ(var(--book-roll));
    filter:
      drop-shadow(-0.45rem 0.7rem 0.55rem rgba(0, 0, 0, 0.24))
      drop-shadow(0.15rem 1.65rem 1.6rem rgba(0, 0, 0, 0.34));
  }
.published-cover:is(:hover, :focus-visible) .book-cast-shadow {
    opacity: 0.66;
    transform: translate3d(0.75rem, 1.2rem, -1.6rem) rotateZ(0.7deg);
  }
.published-cover:is(:hover, :focus-visible) .book-jacket-finish {
    background-position: 138% 0, 0 0, 0 0, 0 0;
    opacity: 0.34;
  }
.galley-cover { transition: none; }
.galley-cover::after {
    transition: none;
    background-position: 138% 0, 0 0, 0 0, 0 0, 0 0;
  }
.galley .g-state::before, .galley .g-state::after { transition: none; }
.galley:is(:hover, :focus-visible) .galley-cover {
    transform: rotateY(4.5deg) rotateX(-0.9deg) rotateZ(-0.12deg);
    filter: drop-shadow(0.2rem 0.85rem 0.7rem rgba(0, 0, 0, 0.24));
  }
.galley:is(:hover, :focus-visible) .galley-cover::after {
    background-position: 138% 0, 0 0, 0 0, 0 0, 0 0;
  }
}
.filters { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-bottom: 2.4rem; }
.filters button {
  font-family: inherit; font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase;
  padding: 0.5rem 1rem; background: none; border: 1px solid var(--line);
  color: var(--muted); cursor: pointer; transition: color 0.35s ease, border-color 0.35s ease;
}
.filters button:hover { border-color: var(--gold); color: var(--gold-deep); }
.filters button.on { background: var(--ink); border-color: var(--ink); color: var(--gold); }
.piece {
  display: grid; grid-template-columns: 3.4rem 8.5rem minmax(0, 1fr); gap: 1.6rem;
  padding: 1.45rem 0; border-top: 1px solid var(--line); align-items: center;
}
.piece:last-of-type { border-bottom: 1px solid var(--line); }
.piece .when { font-size: 0.66rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--gold-deep); }
.piece h3 { font-size: 1.16rem; font-weight: 460; margin-bottom: 0.3rem; }
.piece p { font-size: 0.93rem; color: var(--muted); font-style: italic; }
.pthumb {
  width: 3.4rem; height: 3.4rem; border-radius: 4px; object-fit: cover;
  display: block; filter: saturate(0.82);
  transition: filter 0.35s ease, transform 0.35s ease;
}
.piece:hover .pthumb { filter: saturate(1); transform: scale(1.04); }
.pthumb-blank {
  display: grid; place-items: center; background: var(--ink);
  color: var(--gold); font-family: "Fraunces", Georgia, serif;
  font-size: 1.5rem; font-style: italic;
}
@media (max-width: 44rem) {
.piece { grid-template-columns: 2.9rem 1fr; gap: 0.35rem 0.9rem; }
.pthumb { width: 2.9rem; height: 2.9rem; grid-row: 1 / span 2; }
.piece .when, .piece > div { grid-column: 2; }
}
.cover { min-height: 100svh; }
.cover-mandala { width: clamp(9rem, 21vw, 13.5rem); }
@supports (width: round(nearest, 1px, 1px)) {
.cover-mandala {
    width: round(nearest, clamp(9rem, 21vw, 13.5rem), 1px);
  }
}
.talks-film {
  background:
    radial-gradient(90% 70% at 50% 0%, #221b45 0%, rgba(34, 27, 69, 0) 60%),
    linear-gradient(180deg, #100d22 0%, #161230 100%);
  color: var(--night-text);
}
.talks-film h2, .talks-film .lede { color: var(--night-text); }
.talks-film .lede { max-width: 44rem; margin-bottom: 2.8rem; }
.talkgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 2.2rem 2rem; }
.talkcard { text-decoration: none; color: inherit; display: block; }
.talkthumb {
  position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden;
  border-radius: 5px; background: #0b0919; margin-bottom: 0.8rem;
}
.talkthumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: saturate(0.78) brightness(0.92); transition: filter 0.35s ease, transform 0.45s ease;
}
.talkcard:hover .talkthumb img { filter: saturate(1) brightness(1); transform: scale(1.035); }
.tplay {
  position: absolute; inset: 0; display: grid; place-items: center;
  font-size: 1.15rem; color: rgba(255, 255, 255, 0.85);
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.75); transition: color 0.3s ease;
}
.talkcard:hover .tplay { color: var(--gold); }
.talkthumb-blank { display: block; background: linear-gradient(135deg, #1a1533, #0e0b1f); }
.talkcard h3 {
  font-size: 0.98rem; font-weight: 460; line-height: 1.4; color: var(--night-text);
  transition: color 0.3s ease;
}
.talkcard:hover h3 { color: var(--gold); }
.speaker-reel {
  background:
    radial-gradient(80% 75% at 20% 10%, rgba(35, 102, 118, 0.18), transparent 62%),
    linear-gradient(180deg, #0d1220 0%, #11101f 100%);
  color: var(--night-text);
}
.speaker-reel h2, .speaker-reel .lede { color: var(--night-text); }
.speaker-reel .band-head { max-width: 58rem; }
.speaker-reel .lede { max-width: 50rem; margin-bottom: 2.4rem; }
.reel-shell {
  position: relative; max-width: 72rem; margin: 0 auto;
  border: 1px solid rgba(207, 174, 83, 0.38); border-radius: 8px;
  overflow: hidden; background: #080b12;
  box-shadow: 0 2.2rem 5rem rgba(0, 0, 0, 0.34);
}
.reel-lite, .reel-shell iframe {
  display: block; width: 100%; aspect-ratio: 16 / 9; border: 0;
}
.reel-lite { position: relative; overflow: hidden; color: inherit; }
.reel-lite img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  filter: saturate(0.9) brightness(0.9);
  transition: filter 0.35s ease, transform 0.55s ease;
}
.reel-lite::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(4, 7, 13, 0.08), transparent 42%, rgba(4, 7, 13, 0.06));
  pointer-events: none;
}
.reel-play {
  position: absolute; z-index: 1; left: 50%; top: 50%;
  width: 4.8rem; height: 4.8rem; margin: -2.4rem 0 0 -2.4rem;
  display: grid; place-items: center; border-radius: 50%;
  color: #11101f; background: rgba(224, 188, 84, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 0.8rem 2.8rem rgba(0, 0, 0, 0.45);
  font-size: 1.15rem; line-height: 1; padding-left: 0.16rem;
  transition: transform 0.3s ease, background 0.3s ease;
}
.reel-lite:hover img, .reel-lite:focus-visible img {
  filter: saturate(1) brightness(1); transform: scale(1.012);
}
.reel-lite:hover .reel-play, .reel-lite:focus-visible .reel-play {
  background: #f0cb62; transform: scale(1.06);
}
.reel-meta {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 1rem 2rem; max-width: 72rem; margin: 1rem auto 0;
  color: var(--night-muted); font-size: 0.78rem;
}
.reel-meta p { margin: 0; letter-spacing: 0.07em; text-transform: uppercase; }
.reel-meta a { color: var(--gold); text-underline-offset: 0.22em; }
@media (max-width: 44rem) {
.speaker-reel .lede { margin-bottom: 1.7rem; }
.reel-shell { border-radius: 5px; }
.reel-play {
    width: 3.7rem; height: 3.7rem; margin: -1.85rem 0 0 -1.85rem;
  }
.reel-meta { display: block; }
.reel-meta a { display: inline-block; margin-top: 0.55rem; }
}
.press-emblems {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 1.5rem 2.9rem; max-width: 56rem; margin: 0 0 3rem;
}
.press-emblems button {
  /* A 1.2rem wordmark with no padding is a 19px target, and these are the only
     controls that narrow the 199-entry record. The padding lifts them to 32px;
     the selection rule moves out with it so it still underlines the logo. */
  background: none; border: 0; padding: 0.4rem 0.3rem; cursor: pointer; display: block;
  box-shadow: 0 11px 0 -10px transparent; transition: box-shadow 0.3s ease;
}
.press-emblems button.on { box-shadow: 0 11px 0 -10px var(--gold-deep); }
.press-emblems img {
  height: 1.2rem; width: auto; opacity: 0.55; display: block;
  filter: grayscale(1) brightness(0.35) contrast(0.6);
  transition: opacity 0.4s ease;
}
.press-emblems button:hover img, .press-emblems button.on img { opacity: 0.9; }
.emblem-status {
  font-size: 0.8rem; font-style: italic; color: var(--muted);
  margin: -1.6rem 0 2.6rem;
}
.emblem-status[hidden] { display: none; }
.emblem-status button {
  background: none; border: 0; padding: 0; cursor: pointer; font: inherit;
  color: var(--gold-deep); text-decoration: underline;
}
.appearance.efaded { display: none; }
.selected-press .appearance.edimmed { opacity: 0.22; }
.selected-press .appearance { transition: opacity 0.35s ease; }
:root:not([data-theme="light"]) .press-emblems img,
:root[data-theme="dark"] .press-emblems img {
  filter: grayscale(1) invert(1) brightness(1.1) contrast(0.5);
}
:root[data-theme="light"] .press-emblems img {
  filter: grayscale(1) brightness(0.35) contrast(0.6);
}
.appearances { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(21rem, 100%), 1fr)); gap: 0 3rem; }
.appearance { display: grid; gap: 0.25rem; padding: 1.15rem 0; border-top: 1px solid var(--line); text-decoration: none; color: inherit; }
.appearance h3 { font-size: 1rem; font-weight: 470; font-style: italic; line-height: 1.35; transition: color 0.3s ease; }
a.appearance:hover h3 { color: var(--gold-deep); }
.appearance.is-offline { cursor: default; }
.appearance .outlet { font-size: 0.76rem; color: var(--muted); }
.appearance .outlet b { font-weight: 400; color: var(--gold-deep); }
.selected-press {
  background:
    radial-gradient(90% 70% at 50% 0%, #221b45 0%, rgba(34, 27, 69, 0) 60%),
    linear-gradient(180deg, #100d22 0%, #161230 100%);
  color: var(--night-text);
}
.selected-press h2 { color: var(--night-text); }
.selected-press .appearance { border-top-color: rgba(255, 255, 255, 0.13); }
.selected-press .appearance h3 { color: var(--night-text); }
.selected-press .appearance:hover h3 { color: var(--gold); }
.selected-press .appearance .outlet { color: var(--night-muted); }
.selected-press .appearance .outlet b { color: var(--gold); }
.skip-link {
  position: fixed; z-index: 1000; top: 0.7rem; left: 0.7rem;
  /* Literals, not tokens. --paper inverts with the theme and --ink does not,
     so the pair collapsed to #14111f on #131029 — 1.00:1 — for every visitor
     in dark mode, on the one control that exists purely for keyboard use.
     These two are the design's own ink and page, held still in both themes:
     #f4f1e8 on #131029 is 16.4:1. */
  padding: 0.72rem 1rem; color: #f4f1e8; background: #131029;
  border: 1px solid var(--gold); text-decoration: none;
  transform: translateY(calc(-100% - 1.5rem));
}
.skip-link:focus { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
.rv, .rv.on {
    opacity: 1; transform: none;
    transition: none;
    transition-delay: 0s;
    animation: none;
  }
}
[data-page="brain"] [hidden] { display: none !important; }
[data-page="brain"] {
  --surface: var(--paper);
  --paper-shade: var(--paper-2);
  --text-muted: var(--muted);
  --accent-text: var(--gold-deep);
  --serif: "Fraunces", Georgia, serif;
  --bv-o: var(--muted);
}
[data-page="brain"] h1 { font-family: "Fraunces", Georgia, serif; font-weight: 440;
  font-size: clamp(2.4rem, 5.5vw, 3.8rem); letter-spacing: -0.005em; }
[data-page="brain"] .bv-maxim { color: var(--muted); font-style: italic; }
[data-page="brain"] .lede { font-size: clamp(1.05rem, 1.6vw, 1.28rem); color: var(--muted); font-style: italic; }
[data-page="brain"] .wrap { max-width: 74rem; margin: 0 auto; }
[data-page="brain"] .brainv .bv-maxim{
  font-style: italic; color: var(--text-muted);
  margin: 0.2rem 0 1rem; font-size: 1.02rem;
}
[data-page="brain"] .brainv .bv-maxim span[lang]{ font-style: normal; letter-spacing: 0.04em; }
[data-page="brain"] .brainv .bv-shell{
  margin: 1.8rem 0 0.6rem;
  --bv-bg: #0b0d15; --bv-line: var(--gold); --bv-o: #7f8aa0;
}
[data-page="brain"] .brainv .bv-loading{
  min-height: 8rem; display: flex; align-items: center; justify-content: center;
  color: var(--text-muted); font-family: "Source Serif 4", Georgia, serif; font-size: 0.9rem;
  letter-spacing: 0.02em;
}
[data-page="brain"] /* mode toggle */
.brainv .bv-modes{ display: flex; gap: 0.4rem; margin-bottom: 1rem; align-items: center; }
[data-page="brain"] .brainv .bv-modes-tabs{ display: flex; gap: 0.4rem; align-items: center; }
[data-page="brain"] .brainv .bv-modebtn{
  font-family: "Source Serif 4", Georgia, serif; font-size: 0.82rem;
  padding: 0.4rem 0.9rem; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--line); background: transparent; color: var(--text-muted);
}
[data-page="brain"] .brainv .bv-modebtn[aria-pressed="true"]{
  background: var(--accent-text); border-color: var(--accent-text); color: #fff;
}
[data-page="brain"] .brainv .bv-fullscreen{ margin-left: auto; }
[data-page="brain"] /* Only the active view participates in layout. Keeping both panes in the same
   grid cell avoided a small switch-time reflow, [data-page="brain"] but left almost a viewport of
   dead air above the shorter slice viewer. Keep the viewer beside its control. */
.brainv .bv-stage{ min-width: 0; position: relative; }
[data-page="brain"] .brainv .bv-hidden{ display: none; }
[data-page="brain"] /* 3D viewer */
.brainv .bv-glwrap{
  /* Matches the shader's nebula backdrop so there is no near-black flash
     before WebGL first paints, and so any letterbox edge blends into it. The
     stops are sampled from the shader's own output at the matching radii --
     re-sample them if the nebula is retuned, or the load flash comes back. */
  position: relative;
  background: radial-gradient(120% 95% at 45% 26%, #222f47 0%, #1a2337 42%, #111824 78%, #080a12 100%);
  border: 1px solid var(--line); border-radius: 6px; overflow: hidden;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
[data-page="brain"] .brainv #bv-gl{
  display: block; width: 100%; height: auto; margin: 0 auto;
  /* Must equal VIEW_ASPECT in the script below. The canvas box is sized by this
     ratio, not by the drawing buffer, so if the two disagree the render is
     stretched to fit rather than letterboxed -- silently, and it reads as a
     distorted head rather than as a bug. */
  cursor: grab; touch-action: none; aspect-ratio: 1.6;
}
[data-page="brain"] .brainv #bv-gl:active{ cursor: grabbing; }
[data-page="brain"] .brainv .bv-glwrap::after{
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0) 62%, rgba(0,0,0,0.5) 100%);
}
[data-page="brain"] .brainv .bv-pick{
  position: absolute; left: 0; top: 0; z-index: 4; pointer-events: none;
  opacity: 0; visibility: hidden; transform: translate3d(var(--pick-x, 0), var(--pick-y, 0), 0);
  transition: opacity 150ms ease, visibility 150ms ease;
}
[data-page="brain"] .brainv .bv-pick.is-visible{ opacity: 1; visibility: visible; }
[data-page="brain"] .brainv .bv-pick-target{
  position: absolute; left: 0; top: 0; width: 0.72rem; height: 0.72rem;
  border: 1px solid rgba(221, 250, 248, 0.9); border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(87, 205, 203, 0.14), 0 0 13px rgba(87, 205, 203, 0.38);
  transform: translate(-50%, -50%);
}
[data-page="brain"] .brainv .bv-pick-target::after{
  content: ""; position: absolute; inset: 50% auto auto 50%; width: 2px; height: 2px;
  border-radius: 50%; background: #f4ffff; transform: translate(-50%, -50%);
}
[data-page="brain"] .brainv .bv-tip{
  position: absolute; left: 0; top: 0; width: max-content; min-width: 11rem; max-width: min(18rem, 58vw);
  padding: 0.72rem 0.85rem 0.68rem; border: 1px solid rgba(185, 231, 230, 0.24);
  border-radius: 12px; color: #f4f6f8;
  background: linear-gradient(145deg, rgba(17, 23, 35, 0.92), rgba(7, 10, 17, 0.88));
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.42), inset 0 1px rgba(255, 255, 255, 0.05);
  -webkit-backdrop-filter: blur(18px) saturate(1.15); backdrop-filter: blur(18px) saturate(1.15);
  transform: translate(18px, -50%);
}
[data-page="brain"] .brainv .bv-tip::before{
  content: ""; position: absolute; right: 100%; top: 50%; width: 18px; height: 1px;
  background: linear-gradient(90deg, rgba(222, 250, 248, 0.82), rgba(222, 250, 248, 0.18));
}
[data-page="brain"] .brainv .bv-tip-kicker{
  display: flex; align-items: center; gap: 0.42rem; margin-bottom: 0.3rem;
  color: rgba(204, 222, 226, 0.78); font: 600 0.7rem/1.15 system-ui, sans-serif;
  letter-spacing: 0.115em; text-transform: uppercase;
}
[data-page="brain"] .brainv .bv-tip-swatch{
  width: 0.56rem; height: 0.56rem; flex: 0 0 auto; border-radius: 50%;
  background: var(--swatch, var(--gold)); border: 1px solid rgba(255, 255, 255, 0.48);
  box-shadow: 0 0 10px color-mix(in srgb, var(--swatch, var(--gold)) 65%, transparent);
}
[data-page="brain"] .brainv .bv-tip strong{
  display: block; color: #fff; font-family: "Fraunces", Georgia, serif;
  font-size: clamp(0.98rem, 1.45vw, 1.17rem); font-weight: 500; line-height: 1.12;
  letter-spacing: 0.006em;
}
[data-page="brain"] .brainv .bv-tip-source{
  display: block; margin-top: 0.34rem; color: rgba(190, 204, 211, 0.66);
  font: 400 0.7rem/1.3 system-ui, sans-serif; letter-spacing: 0.025em;
}
[data-page="brain"] .brainv .bv-pick.is-left .bv-tip{ transform: translate(calc(-100% - 18px), -50%); }
[data-page="brain"] .brainv .bv-pick.is-left .bv-tip::before{
  left: 100%; right: auto; background: linear-gradient(90deg, rgba(222, 250, 248, 0.18), rgba(222, 250, 248, 0.82));
}
[data-page="brain"] .brainv .bv-pick.is-top .bv-tip{ transform: translate(18px, 11px); }
[data-page="brain"] .brainv .bv-pick.is-left.is-top .bv-tip{ transform: translate(calc(-100% - 18px), 11px); }
[data-page="brain"] .brainv .bv-pick.is-bottom .bv-tip{ transform: translate(18px, calc(-100% - 11px)); }
[data-page="brain"] .brainv .bv-pick.is-left.is-bottom .bv-tip{ transform: translate(calc(-100% - 18px), calc(-100% - 11px)); }
@media (prefers-reduced-motion: reduce) {
[data-page="brain"] .brainv .bv-pick{ transition: none; }
}
[data-page="brain"] .brainv .bv-3d-controls{ margin-top: 1rem; }
[data-page="brain"] .brainv .bv-hint{
  font-family: "Source Serif 4", Georgia, serif; font-size: 0.78rem; color: var(--text-muted);
  margin: 0 0 0.7rem;
}
[data-page="brain"] .brainv .bv-cut{ display: flex; flex-direction: column; gap: 0.35rem; max-width: 30rem; margin: 0 0 0.9rem; }
[data-page="brain"] .brainv .bv-cut label{
  font-family: "Source Serif 4", Georgia, serif; font-size: 0.85rem; color: var(--text); display: flex; align-items: center;
}
[data-page="brain"] .brainv .bv-cut input[type="range"]{ width: 100%; accent-color: var(--accent-text); }
[data-page="brain"] .brainv .bv-3d-row{ display: flex; gap: 0.4rem; flex-wrap: wrap; margin: 0; }
[data-page="brain"] .brainv .bv-anat-row{ margin-top: 0.55rem; align-items: center; }
[data-page="brain"] .brainv .bv-anat-lbl{
  font-family: "Source Serif 4", Georgia, serif; font-size: 0.85rem; color: var(--text);
  display: inline-flex; align-items: center; margin-right: 0.1rem;
}
[data-page="brain"] .brainv .bv-chip{
  font-family: "Source Serif 4", Georgia, serif; font-size: 0.8rem;
  padding: 0.35rem 0.8rem; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--line); background: transparent; color: var(--text-muted);
}
[data-page="brain"] .brainv .bv-chip.is-on{ background: var(--accent-text); border-color: var(--accent-text); color: #fff; }
[data-page="brain"] .brainv .bv-chip[aria-pressed="true"]::before, [data-page="brain"] .brainv .bv-legend-item[aria-pressed="true"]::before{ content: "✓"; margin-right: 0.28rem; font-weight: 800; }
[data-page="brain"] .brainv .bv-legend{
  margin-top: 0.85rem; padding: 0.78rem 0.9rem 0.82rem;
  border: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
  border-radius: 10px; background: color-mix(in srgb, var(--paper-shade) 78%, transparent);
  font-family: "Source Serif 4", Georgia, serif;
}
[data-page="brain"] .brainv .bv-legend-title{
  display: block; margin-bottom: 0.56rem; color: var(--text-muted);
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase;
}
[data-page="brain"] .brainv .bv-legend-list{ display: flex; flex-wrap: wrap; gap: 0.46rem 0.85rem; }
[data-page="brain"] .brainv .bv-legend-item{
  display: inline-flex; align-items: center; gap: 0.4rem; color: var(--text);
  font-size: 0.75rem; line-height: 1.25; white-space: nowrap;
}
[data-page="brain"] .brainv .bv-legend-swatch{
  width: 0.62rem; height: 0.62rem; flex: 0 0 auto; border-radius: 50%;
  background: var(--legend-colour); border: 1px solid color-mix(in srgb, #fff 48%, transparent);
  box-shadow: 0 0 8px color-mix(in srgb, var(--legend-glow, var(--gold)) 34%, transparent);
}
[data-page="brain"] .brainv .bv-legend-note{
  display: block; margin-top: 0.58rem; color: var(--text-muted); font-size: 0.66rem; line-height: 1.35;
}
[data-page="brain"] /* Expandable colour key: each group opens to its individual structures. */
.brainv .bv-legend-caret{
  display: inline-block; width: 0; height: 0; margin-left: 0.08rem;
  border-left: 0.32rem solid currentColor;
  border-top: 0.22rem solid transparent; border-bottom: 0.22rem solid transparent;
  opacity: 0.5; transition: transform 130ms ease, opacity 130ms ease;
}
[data-page="brain"] .brainv .bv-legend-item[aria-expanded="true"] .bv-legend-caret{ transform: rotate(90deg); opacity: 0.95; }
[data-page="brain"] .brainv .bv-legend-detail{
  margin-top: 0.62rem; padding: 0.55rem 0.15rem 0.2rem;
  border-top: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
}
[data-page="brain"] .brainv .bv-legend-detail-title{
  display: block; margin-bottom: 0.44rem; color: var(--text-muted);
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
}
[data-page="brain"] .brainv .bv-legend-detail-list{
  display: flex; flex-wrap: wrap; gap: 0.3rem 0.5rem;
  max-height: 14rem; overflow: auto;
}
[data-page="brain"] .brainv .bv-legend-region{
  appearance: none; display: inline-flex; align-items: center; gap: 0.34rem;
  padding: 0.16rem 0.34rem; border: 1px solid transparent; border-radius: 999px;
  background: transparent; color: var(--text); cursor: pointer;
  font: 0.68rem system-ui, sans-serif; line-height: 1.2; white-space: nowrap;
}
[data-page="brain"] .brainv .bv-legend-region:hover, [data-page="brain"] .brainv .bv-legend-region:focus-visible{
  border-color: color-mix(in srgb, var(--accent-text) 55%, transparent);
  background: color-mix(in srgb, var(--accent-text) 12%, transparent);
}
[data-page="brain"] .brainv .bv-shell:fullscreen{
  box-sizing: border-box; width: 100vw; height: 100vh; margin: 0; padding: clamp(0.8rem, 2vw, 1.5rem);
  overflow: auto; background: var(--paper); color: var(--text);
}
[data-page="brain"] .brainv .bv-shell:fullscreen::backdrop{
  /* The same nebula palette as the panel, carried down so the surround reads
     as the same sky the viewer sits in rather than as a black void. */
  background: radial-gradient(120% 90% at 47% 32%, #161f31 0%, #0d1119 50%, #05060c 100%);
}
[data-page="brain"] .brainv .bv-shell:fullscreen .bv-stage{ min-height: 0 !important; }
:root[data-theme="light"] [data-page="brain"] .brainv .bv-shell:fullscreen{
  --bv-bg: #f6f4ef; --bv-line: var(--gold-deep);
  box-shadow: inset 0 0 0 1px rgba(62, 127, 130, 0.08);
}
:root[data-theme="dark"] [data-page="brain"] .brainv .bv-shell:fullscreen{
  --bv-bg: #0b0d15; --bv-line: var(--gold);
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) [data-page="brain"] .brainv .bv-shell:fullscreen{
    --bv-bg: #0b0d15; --bv-line: var(--gold);
  }
}
[data-page="brain"] .brainv .bv-shell:fullscreen :is(.bv-modes, [data-page="brain"] .bv-tools, [data-page="brain"] .bv-stage, [data-page="brain"] .bv-learning, [data-page="brain"] .bv-provenance){
  width: min(100%, 110rem); box-sizing: border-box; margin-left: auto; margin-right: auto;
}
[data-page="brain"] .brainv .bv-shell:fullscreen .bv-3d{
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
  gap: clamp(1rem, 2vw, 1.6rem); align-items: start;
}
[data-page="brain"] .brainv .bv-shell:fullscreen .bv-3d-controls{ margin-top: 0; }
[data-page="brain"] .brainv .bv-shell:fullscreen .bv-glwrap{ align-self: center; }
[data-page="brain"] .brainv .bv-shell:fullscreen .bv-grid{ gap: 1rem; }
@media (max-width: 58rem), (max-height: 43rem) {
[data-page="brain"] .brainv .bv-shell:fullscreen .bv-3d{ grid-template-columns: 1fr; }
[data-page="brain"] .brainv .bv-shell:fullscreen .bv-3d-controls{ margin-top: 0.8rem; }
}
[data-page="brain"] /* slices */
.brainv .bv-grid{ display: grid; gap: 0.7rem; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 44rem) {
[data-page="brain"] .brainv .bv-grid{ grid-template-columns: 1fr 1fr; }
[data-page="brain"] .brainv .bv-panel[data-plane="sagittal"]{ grid-column: 1 / -1; max-width: 60%; margin: 0 auto; }
}
@media (max-width: 30rem) {
[data-page="brain"] .brainv .bv-grid{ grid-template-columns: 1fr; }
[data-page="brain"] .brainv .bv-panel[data-plane="sagittal"]{ max-width: 100%; }
}
[data-page="brain"] .brainv .bv-panel{
  position: relative; margin: 0;
  background: var(--bv-bg); border: 1px solid var(--line);
  border-radius: 5px; overflow: hidden; box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
[data-page="brain"] .brainv .bv-cv{ display: block; width: 100%; height: auto; cursor: crosshair; touch-action: none; image-rendering: auto; }
[data-page="brain"] .brainv .bv-panel::after{
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0) 55%, rgba(0,0,0,0.45) 100%);
}
[data-page="brain"] .brainv .bv-panel figcaption{
  position: absolute; left: 0; top: 0;
  font-family: "Source Serif 4", Georgia, serif; font-size: 0.7rem;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: #c9d2e0; background: rgba(11,13,21,0.72);
  padding: 0.2rem 0.5rem; border-bottom-right-radius: 5px; pointer-events: none; z-index: 2;
}
[data-page="brain"] .brainv .bv-o{
  position: absolute; z-index: 2; pointer-events: none;
  font-family: ui-monospace, Menlo, monospace; font-size: 0.62rem;
  color: var(--bv-o); text-shadow: 0 0 3px #000;
}
[data-page="brain"] .brainv .bv-o-t{ top: 0.25rem; left: 50%; transform: translateX(-50%); }
[data-page="brain"] .brainv .bv-o-b{ bottom: 0.25rem; left: 50%; transform: translateX(-50%); }
[data-page="brain"] .brainv .bv-o-l{ left: 0.3rem; top: 50%; transform: translateY(-50%); }
[data-page="brain"] .brainv .bv-o-r{ right: 0.3rem; top: 50%; transform: translateY(-50%); }
[data-page="brain"] .brainv .bv-controls{ margin-top: 1rem; }
[data-page="brain"] .brainv .bv-readout{
  font-family: ui-monospace, Menlo, monospace; font-size: 0.82rem;
  color: var(--text-muted); font-variant-numeric: tabular-nums; margin: 0 0 0.7rem; min-height: 1.2em;
  display: flex; align-items: center; flex-wrap: wrap; gap: 0.45rem 0.7rem;
}
[data-page="brain"] .brainv .bv-readout-region{
  display: inline-flex; align-items: center; gap: 0.42rem; padding: 0.28rem 0.62rem;
  border: 1px solid color-mix(in srgb, var(--line) 60%, transparent); border-radius: 999px;
  color: var(--text); background: color-mix(in srgb, var(--surface) 84%, transparent);
  font: 600 0.75rem/1.2 system-ui, sans-serif; letter-spacing: 0.01em;
}
[data-page="brain"] .brainv .bv-readout-swatch{
  width: 0.48rem; height: 0.48rem; border-radius: 50%; background: var(--readout-swatch);
  border: 1px solid color-mix(in srgb, #fff 55%, transparent);
  box-shadow: 0 0 8px color-mix(in srgb, var(--readout-swatch) 55%, transparent);
}
[data-page="brain"] .brainv .bv-peel{ display: flex; flex-direction: column; gap: 0.35rem; max-width: 30rem; }
[data-page="brain"] .brainv .bv-peel > span, [data-page="brain"] .brainv .bv-cut > span{ display: flex; align-items: center; }
[data-page="brain"] .brainv .bv-peel label{ font-family: "Source Serif 4", Georgia, serif; font-size: 0.85rem; color: var(--text); }
[data-page="brain"] .brainv .bv-peel-arrow{ color: var(--accent-text); margin: 0 0.1rem; }
[data-page="brain"] .brainv .bv-peel input[type="range"]{ width: 100%; accent-color: var(--accent-text); }
[data-page="brain"] .brainv .bv-fallback, [data-page="brain"] .brainv .bv-foot{ margin-top: 1.2rem; }
[data-page="brain"] .brainv .bv-foot{ line-height: 1.6; }
[data-page="brain"] /* Search, [data-page="brain"] progress, [data-page="brain"] details, [data-page="brain"] and professional controls. */
.brainv .bv-loading{ flex-direction: column; gap: 0.8rem; }
[data-page="brain"] .brainv .bv-loading progress{
  width: min(18rem, 72vw); height: 0.38rem; border: 0; border-radius: 999px;
  overflow: hidden; accent-color: var(--accent-text);
}
[data-page="brain"] .brainv .bv-loading progress::-webkit-progress-bar{ background: color-mix(in srgb, var(--line) 35%, transparent); }
[data-page="brain"] .brainv .bv-loading progress::-webkit-progress-value{ background: var(--accent-text); }
[data-page="brain"] .brainv .bv-modebtn[aria-selected="true"]{
  background: var(--accent-text); border-color: var(--accent-text); color: #fff;
}
[data-page="brain"] .brainv .bv-modebtn[aria-selected="true"]::before{ content: "●"; margin-right: 0.32rem; font-size: 0.62em; vertical-align: 0.12em; }
[data-page="brain"] .brainv :is(button, [data-page="brain"] input, [data-page="brain"] select, [data-page="brain"] summary, [data-page="brain"] canvas):focus-visible{
  outline: 3px solid color-mix(in srgb, var(--accent-text) 78%, #fff);
  outline-offset: 3px;
}
[data-page="brain"] .brainv .bv-tools{
  margin: 0 0 1rem; padding: 0.85rem; border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  border-radius: 12px; background: color-mix(in srgb, var(--surface) 76%, transparent);
}
[data-page="brain"] .brainv .bv-search-label, [data-page="brain"] .brainv .bv-eyebrow{
  display: block; margin-bottom: 0.38rem; color: var(--text-muted);
  font: 700 0.7rem/1.2 system-ui, sans-serif; letter-spacing: 0.12em; text-transform: uppercase;
}
[data-page="brain"] .brainv .bv-search-row{ display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; }
[data-page="brain"] .brainv .bv-search-row input{
  flex: 1 1 15rem; min-width: 0; padding: 0.55rem 0.7rem; border-radius: 8px;
  border: 1px solid var(--line); background: var(--paper); color: var(--text); font: 0.84rem system-ui, sans-serif;
}
[data-page="brain"] .brainv .bv-tool-status{ min-height: 1em; margin: 0.45rem 0 0; color: var(--text-muted); font: 0.7rem system-ui, sans-serif; }
[data-page="brain"] .brainv .bv-cut output, [data-page="brain"] .brainv .bv-peel output{
  margin-left: auto; color: var(--text-muted); font-size: 0.74rem; font-variant-numeric: tabular-nums;
}
[data-page="brain"] .brainv .bv-legend-item{
  appearance: none; padding: 0.22rem 0.32rem; border: 1px solid transparent; border-radius: 999px;
  background: transparent; cursor: pointer;
}
[data-page="brain"] .brainv .bv-legend-item:hover, [data-page="brain"] .brainv .bv-legend-item[aria-pressed="true"]{
  border-color: color-mix(in srgb, var(--accent-text) 55%, transparent);
  background: color-mix(in srgb, var(--accent-text) 12%, transparent);
}
[data-page="brain"] .brainv .bv-calibration, [data-page="brain"] .brainv .bv-orientation, [data-page="brain"] .brainv .bv-provenance{
  margin-top: 0.9rem; border: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
  border-radius: 10px; padding: 0.72rem 0.85rem; color: var(--text-muted); font: 0.76rem/1.55 system-ui, sans-serif;
}
[data-page="brain"] .brainv :is(.bv-calibration, [data-page="brain"] .bv-orientation, [data-page="brain"] .bv-provenance) summary{
  cursor: pointer; color: var(--text); font-weight: 700;
}
[data-page="brain"] .brainv .bv-calibration-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem 1rem; margin: 0.7rem 0; }
[data-page="brain"] .brainv .bv-calibration-grid label{ display: grid; gap: 0.25rem; }
[data-page="brain"] .brainv .bv-plane-tabs{ display: none; gap: 0.4rem; margin-bottom: 0.65rem; }
[data-page="brain"] .brainv .bv-slice-nav{
  display: grid; grid-template-columns: auto auto minmax(8rem, 1fr) 5.1rem auto;
  align-items: center; gap: 0.5rem; margin: 0.7rem 0;
}
[data-page="brain"] .brainv .bv-slice-nav label{ color: var(--text); font: 0.78rem system-ui, sans-serif; }
[data-page="brain"] .brainv .bv-slice-nav input[type="range"]{ width: 100%; accent-color: var(--accent-text); }
[data-page="brain"] .brainv .bv-slice-nav input[type="number"], [data-page="brain"] .brainv .bv-slice-settings select{
  box-sizing: border-box; min-height: 2.25rem; border: 1px solid var(--line); border-radius: 7px;
  background: var(--paper); color: var(--text); padding: 0.35rem 0.5rem;
}
[data-page="brain"] .brainv .bv-slice-settings{
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem 1rem;
  margin: 0.8rem 0 1rem; padding: 0.75rem; border-radius: 10px;
  background: color-mix(in srgb, var(--surface) 72%, transparent);
}
[data-page="brain"] .brainv .bv-slice-settings label, [data-page="brain"] .brainv .bv-slice-settings .bv-setting{ position: relative; display: grid; gap: 0.3rem; color: var(--text); font: 0.76rem system-ui, sans-serif; }
[data-page="brain"] .brainv .bv-slice-settings output{ position: absolute; top: 0; right: 0; color: var(--text-muted); font-variant-numeric: tabular-nums; }
[data-page="brain"] .brainv .bv-slice-settings input[type="range"]{ width: 100%; accent-color: var(--accent-text); }
[data-page="brain"] .brainv .bv-details{
  position: relative; margin-top: 1rem; padding: 1rem 2.75rem 1rem 1rem;
  border: 1px solid color-mix(in srgb, var(--accent-text) 55%, var(--line)); border-radius: 12px;
  background: linear-gradient(145deg, color-mix(in srgb, var(--surface) 92%, transparent), color-mix(in srgb, var(--paper) 94%, transparent));
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.12);
}
[data-page="brain"] .brainv .bv-details-close{ position: absolute; top: 0.62rem; right: 0.7rem; border: 0; background: transparent; color: var(--text-muted); font-size: 1.35rem; cursor: pointer; }
[data-page="brain"] /* Collapse the info card down to its heading. */
.brainv .bv-details-collapse{
  position: absolute; top: 0.68rem; right: 2.3rem; border: 0; background: transparent;
  color: var(--text-muted); font-size: 1.05rem; line-height: 1; cursor: pointer;
  transition: transform 140ms ease;
}
[data-page="brain"] .brainv .bv-details.is-collapsed .bv-details-collapse{ transform: rotate(-90deg); }
[data-page="brain"] .brainv .bv-details.is-collapsed :is(#bv-details-description, [data-page="brain"] .bv-tour-fact, [data-page="brain"] .bv-tour-caveat, [data-page="brain"] .bv-tour-hint, [data-page="brain"] dl, [data-page="brain"] .bv-details-nav){ display: none !important; }
[data-page="brain"] .brainv .bv-details.is-collapsed h2{ margin-bottom: 0.15rem; }
[data-page="brain"] /* Collapsible colour key (native <details>). */
.brainv .bv-legend-fold > summary{
  cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 0.34rem;
}
[data-page="brain"] .brainv .bv-legend-fold > summary::-webkit-details-marker{ display: none; }
[data-page="brain"] .brainv .bv-legend-fold > summary::before{
  content: ""; width: 0; height: 0; flex: 0 0 auto;
  border-left: 0.32rem solid currentColor;
  border-top: 0.22rem solid transparent; border-bottom: 0.22rem solid transparent;
  transition: transform 140ms ease; opacity: 0.6;
}
[data-page="brain"] .brainv .bv-legend-fold[open] > summary::before{ transform: rotate(90deg); }
[data-page="brain"] .brainv .bv-legend-fold > summary{ margin-bottom: 0; }
[data-page="brain"] .brainv .bv-legend-fold[open] > summary{ margin-bottom: 0.56rem; }
[data-page="brain"] .brainv .bv-details-kicker{ color: var(--accent-text); font: 700 0.7rem/1.2 system-ui, sans-serif; letter-spacing: 0.1em; text-transform: uppercase; }
[data-page="brain"] .brainv .bv-details h2{ margin: 0.3rem 0 0.4rem; font-size: clamp(1.2rem, 3vw, 1.65rem); }
[data-page="brain"] .brainv .bv-details p{ margin: 0; color: var(--text-muted); line-height: 1.55; }
[data-page="brain"] .brainv .bv-details dl{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; margin: 0.85rem 0 0; }
[data-page="brain"] .brainv .bv-details dl div{ padding-top: 0.55rem; border-top: 1px solid color-mix(in srgb, var(--line) 55%, transparent); }
[data-page="brain"] .brainv .bv-details dt{ color: var(--text-muted); font: 700 0.7rem system-ui, sans-serif; letter-spacing: 0.09em; text-transform: uppercase; }
[data-page="brain"] .brainv .bv-details dd{ margin: 0.22rem 0 0; color: var(--text); font: 0.75rem/1.4 system-ui, sans-serif; }
[data-page="brain"] .brainv .bv-details-nav{ display: flex; gap: 0.45rem; margin-top: 0.85rem; }
[data-page="brain"] /* In the page (layout A): the selected-structure card stays in normal flow
   below the viewer, [data-page="brain"] among the rest of the info -- never floated onto or beside
   the model. During a tour the cut-slider controls hide so the card sits
   directly under the model. */
.brainv .bv-shell.bv-touring .bv-3d-controls{ display: none; }
[data-page="brain"] /* Fullscreen guided tour: the caption is a solid bar down the RIGHT side of the
   screen, [data-page="brain"] the model filling the space to its left. Solid --paper-shade (a fully
   opaque theme colour) so the render never shows through the text -- the failure
   of the earlier floating card, [data-page="brain"] which used the alpha-carrying --surface. The
   search row is dropped so the model gets the height; the mode bar stays for
   Exit full screen. */
.brainv .bv-shell.bv-touring:fullscreen .bv-tools{ display: none; }
[data-page="brain"] .brainv .bv-shell.bv-touring:fullscreen .bv-stage{ position: relative; min-height: 0 !important; }
[data-page="brain"] .brainv .bv-shell.bv-touring:fullscreen .bv-3d{ grid-template-columns: 1fr; }
[data-page="brain"] .brainv .bv-shell.bv-touring:fullscreen .bv-glwrap{
  height: calc(100vh - 4.5rem); margin: 0; border: 0; box-shadow: none;
  background: transparent; display: flex; align-items: center; justify-content: center;
  padding-right: min(27rem, 33vw);
}
[data-page="brain"] .brainv .bv-shell.bv-touring:fullscreen #bv-gl{
  width: auto; height: 100%; max-width: 100%; max-height: 100%; margin: 0;
}
[data-page="brain"] .brainv .bv-shell.bv-touring:fullscreen .bv-details{
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 9; margin: 0;
  width: min(26rem, 32vw); max-height: none; overflow-y: auto;
  padding: 1.5rem 1.6rem;
  border: 0; border-left: 1px solid var(--bv-line, var(--line)); border-radius: 0;
  background: var(--paper-shade);
  box-shadow: -16px 0 44px rgba(0, 0, 0, 0.42);
}
[data-page="brain"] .brainv .bv-learning{ margin-top: 1.1rem; }
[data-page="brain"] /* One big primary call to action: launch the whole-brain tour, [data-page="brain"] fullscreen. */
.brainv .bv-tour-cta{
  display: flex; align-items: center; gap: 0.9rem; width: 100%; text-align: left;
  padding: 0.95rem 1.15rem; border-radius: 14px; cursor: pointer;
  border: 1px solid var(--accent-text);
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--accent-text) 22%, var(--surface)),
    color-mix(in srgb, var(--accent-text) 8%, var(--surface)));
  transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
}
[data-page="brain"] .brainv .bv-tour-cta:hover{
  transform: translateY(-1px); box-shadow: 0 10px 26px rgba(0, 0, 0, 0.16);
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--accent-text) 30%, var(--surface)),
    color-mix(in srgb, var(--accent-text) 12%, var(--surface)));
}
[data-page="brain"] .brainv .bv-tour-cta:focus-visible{ outline: 2px solid var(--accent-text); outline-offset: 2px; }
[data-page="brain"] .brainv .bv-tour-cta-play{
  flex: 0 0 auto; display: grid; place-items: center;
  width: 2.6rem; height: 2.6rem; border-radius: 50%;
  background: var(--accent-text); color: #fff; font-size: 1rem; padding-left: 0.18rem;
}
[data-page="brain"] .brainv .bv-tour-cta-lines{ display: grid; gap: 0.16rem; min-width: 0; }
[data-page="brain"] .brainv .bv-tour-cta-title{ color: var(--text); font: 700 1.12rem/1.15 var(--serif, Georgia, serif); }
[data-page="brain"] .brainv .bv-tour-cta-fs{
  margin-left: 0.4rem; padding: 0.08rem 0.42rem; border-radius: 999px; vertical-align: 0.12em;
  background: color-mix(in srgb, var(--accent-text) 20%, transparent);
  color: var(--accent-text); font: 700 0.7rem/1.4 system-ui, sans-serif;
  letter-spacing: 0.08em; text-transform: uppercase;
}
[data-page="brain"] .brainv .bv-tour-cta-sub{ color: var(--text-muted); font: 0.8rem/1.4 system-ui, sans-serif; }
[data-page="brain"] .brainv .bv-tour-themed{
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin-top: 0.85rem;
}
[data-page="brain"] .brainv .bv-tour-themed-lbl{
  color: var(--text-muted); font: 0.75rem system-ui, sans-serif; margin-right: 0.15rem;
}
[data-page="brain"] /* Tour chrome, [data-page="brain"] shown inside the single details card while a tour is running. */
.brainv .bv-details-tour{
  display: block; margin-top: 0.22rem; color: var(--accent-text);
  font: 700 0.7rem system-ui, sans-serif; letter-spacing: 0.09em; text-transform: uppercase;
}
[data-page="brain"] /* The `p` in each of these three selectors is load-bearing, [data-page="brain"] not decoration.
   `.brainv .bv-details p` above sets margin:0 and, [data-page="brain"] with its element token, [data-page="brain"] is
   MORE specific than a bare `.brainv .bv-tour-fact` -- so without the `p` here
   the top margins below are silently overridden and the paragraphs run
   together into one block of text. The fact ran straight on from the role for
   exactly that reason. Keep the `p`. */
.brainv .bv-details p.bv-tour-fact{ margin: 0.6rem 0 0; }
[data-page="brain"] /* a plain paragraph, [data-page="brain"] styled exactly like the role above (colour/size/line-height inherit from .bv-details p) */
.brainv .bv-details p.bv-tour-hint{ margin: 0.7rem 0 0; color: var(--text-muted); font-size: 0.78rem; }
[data-page="brain"] .brainv .bv-tour-hint kbd{
  font: inherit; font-size: 0.72rem; padding: 0.04rem 0.34rem; border-radius: 4px;
  background: color-mix(in srgb, var(--surface) 80%, transparent);
  border: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
}
[data-page="brain"] .brainv .bv-details p.bv-tour-caveat{ margin: 0.55rem 0 0; color: var(--text-muted); font: 0.72rem/1.45 system-ui, sans-serif; }
[data-page="brain"] .brainv .bv-provenance{ margin-top: 1.1rem; }
[data-page="brain"] .brainv .bv-provenance-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; margin-top: 0.8rem; }
[data-page="brain"] .brainv .bv-provenance-grid div{ display: grid; gap: 0.14rem; padding: 0.65rem; border-radius: 8px; background: color-mix(in srgb, var(--surface) 75%, transparent); }
[data-page="brain"] .brainv .bv-provenance-grid strong{ color: var(--text); }
@media (max-width: 34rem) {
[data-page="brain"] .brainv .section-head .lede{
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6;
    overflow: hidden; font-size: 0.98rem; line-height: 1.55;
  }
[data-page="brain"] .brainv .bv-shell{ margin-top: 1rem; }
[data-page="brain"] .brainv .bv-modes{ gap: 0.3rem; }
[data-page="brain"] .brainv .bv-modes-tabs{ flex: 1 1 auto; gap: 0.3rem; }
[data-page="brain"] .brainv .bv-modebtn{ flex: 1 1 0; min-height: 2.75rem; padding: 0.45rem 0.55rem; white-space: nowrap; }
[data-page="brain"] .brainv .bv-fullscreen{ margin-left: 0; }
[data-page="brain"] .brainv .bv-search-row input{ flex-basis: 100%; }
[data-page="brain"] .brainv .bv-search-row .bv-chip{ flex: 1 1 auto; min-height: 2.75rem; }
[data-page="brain"] .brainv .bv-plane-tabs{ display: flex; }
[data-page="brain"] .brainv .bv-plane-tabs .bv-chip{ flex: 1; min-height: 2.75rem; }
[data-page="brain"] .brainv .bv-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
[data-page="brain"] .brainv .bv-panel{ display: block; width: 100%; max-width: none; margin: 0; opacity: 0.66; }
[data-page="brain"] .brainv .bv-panel.is-active-plane{ grid-column: 1 / -1; grid-row: 1; opacity: 1; }
[data-page="brain"] .brainv .bv-slice-nav{ grid-template-columns: auto minmax(0, 1fr) 4.6rem auto; }
[data-page="brain"] .brainv .bv-slice-nav label{ grid-column: 1 / -1; }
[data-page="brain"] .brainv .bv-slice-settings, [data-page="brain"] .brainv .bv-details dl, [data-page="brain"] .brainv .bv-provenance-grid{ grid-template-columns: 1fr; }
[data-page="brain"] .brainv .bv-learning{ grid-template-columns: 1fr; }
[data-page="brain"] .brainv .bv-tour-row{ justify-content: flex-start; }
[data-page="brain"] .brainv .bv-glwrap{ margin-inline: calc(50% - 50vw); border-left: 0; border-right: 0; border-radius: 0; }
[data-page="brain"] .brainv .bv-glwrap canvas{ max-height: 68vh; }
}
@media (prefers-reduced-motion: reduce) {
[data-page="brain"] .brainv *, [data-page="brain"] .brainv *::before, [data-page="brain"] .brainv *::after{ scroll-behavior: auto !important; }
}
.tt-lab {
  --tt-line: rgba(239, 237, 246, 0.14);
  --tt-secret: var(--gold);
  --tt-cover: #85c8cb;
  background: #14112b;
  border: 1px solid rgba(208, 177, 96, 0.2);
  padding: clamp(1.4rem, 3.5vw, 2.6rem);
  color: var(--night-text);
}
.tt-steps { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; }
.tt-steps button {
  position: relative; width: 100%; height: 100%;
  display: grid; grid-template-rows: auto auto auto; justify-items: start; align-content: start;
  row-gap: 0.15rem; text-align: left;
  font-family: inherit; color: var(--night-muted);
  background: none; border: 0; border-top: 1px solid var(--tt-line);
  padding: 0.85rem 0.5rem 0.6rem; cursor: pointer;
  transition: color 0.35s ease;
}
.tt-steps button:hover { color: var(--night-text); }
.tt-steps button::after {
  content: ""; position: absolute; top: -1px; left: 0;
  width: 100%; height: 1px; background: var(--gold);
  transform: scaleX(0); transform-origin: left center;
  transition: transform 0.45s cubic-bezier(0.19, 1, 0.22, 1);
}
.tt-steps button span { font-family: "Fraunces", Georgia, serif; font-size: 0.78rem; color: var(--gold); }
.tt-steps button strong { font-size: 0.95rem; font-weight: 500; }
.tt-steps button small { font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; }
.tt-steps button.is-past, .tt-steps button[aria-current="step"] { color: var(--night-text); }
.tt-steps button[aria-current="step"]::after { transform: scaleX(1); }
.tt-explain { min-height: 6rem; padding: 1.3rem 0 1rem; }
.tt-explain p { margin: 0.25rem 0; }
.tt-counter { font-size: 0.62rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); }
.tt-stage-title { font-family: "Fraunces", Georgia, serif; font-size: clamp(1.3rem, 2.6vw, 1.6rem); font-weight: 460; }
#tt-stage-copy { color: var(--night-muted); font-size: 0.95rem; max-width: 44rem; }
.tt-loom { display: grid; gap: 1rem; }
.tt-sentence, .tt-rank-wrap, .tt-key, .tt-result {
  border-left: 1px solid var(--tt-tone, var(--gold));
  padding-left: 1.1rem;
}
.tt-secret { --tt-tone: var(--tt-secret); }
.tt-cover { --tt-tone: var(--tt-cover); }
.tt-sentence-head { margin: 0; font-size: 0.62rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--night-muted); }
.tt-sentence-head span { color: var(--tt-tone, var(--gold)); }
.tt-token-stream { display: flex; flex-wrap: wrap; gap: 0.2rem 0.35rem; margin-top: 0.55rem; }
.tt-token {
  position: relative; font-family: "Fraunces", Georgia, serif; font-size: 1.12rem;
  color: var(--night-text); background: none; border: 0;
  border-bottom: 1px solid transparent; padding: 0.4rem 0.2rem 0.2rem; cursor: pointer;
  transition: color 0.3s ease, border-color 0.3s ease;
}
.tt-token:hover { color: var(--tt-tone); }
.tt-token.is-selected { color: var(--tt-tone); border-bottom-color: currentColor; }
.tt-token small {
  position: absolute; left: 50%; top: -0.35rem; transform: translateX(-50%);
  font-family: "Source Serif 4", Georgia, serif; font-size: 0.58rem; letter-spacing: 0.08em; color: var(--gold);
}
.tt-token.is-masked { color: transparent; min-width: 3.2rem; }
.tt-token.is-masked::after {
  content: "\2022\2022\2022"; position: absolute; inset: 0;
  display: grid; place-items: center; color: var(--night-muted); letter-spacing: 0.18em;
}
.tt-ranks { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.6rem; }
.tt-rank {
  width: 2.3rem; height: 2.3rem;
  font-family: inherit; font-size: 0.8rem; color: var(--gold);
  background: none; border: 1px solid var(--gold); border-radius: 50%; cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
.tt-rank::before { content: "#"; opacity: 0.6; }
.tt-rank:hover, .tt-rank.is-selected { color: #14112b; background: var(--gold); }
.tt-key label { display: block; }
.tt-key label > span { display: block; font-size: 0.62rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--gold); }
.tt-key select {
  margin-top: 0.45rem; max-width: 100%;
  font-family: inherit; font-size: 0.95rem; color: var(--night-text);
  background: #1b1738; border: 1px solid var(--tt-line); border-radius: 0;
  padding: 0.55rem 0.7rem;
}
.tt-key select:focus { outline: none; border-color: var(--gold); }
.tt-key p { margin: 0.45rem 0 0; color: var(--night-muted); font-size: 0.85rem; }
.tt-lens { margin-top: 1.4rem; border-top: 1px solid var(--tt-line); padding-top: 1.1rem; }
.tt-lens-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.tt-lens-head p { margin: 0; font-size: 0.9rem; color: var(--night-muted); }
.tt-lens-head strong { color: var(--night-text); font-weight: 500; }
.tt-token-nav { display: flex; gap: 0.4rem; }
.tt-token-nav button {
  width: 2.2rem; height: 2.2rem; font-family: inherit;
  color: var(--night-text); background: none;
  border: 1px solid var(--tt-line); border-radius: 50%; cursor: pointer;
  transition: color 0.3s ease, border-color 0.3s ease;
}
.tt-token-nav button:hover { color: var(--gold); border-color: var(--gold); }
.tt-lens-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 3.8rem minmax(0, 1fr);
  gap: 0.8rem; align-items: center; margin-top: 0.9rem;
}
.tt-lab[data-step="0"] .tt-lens-grid { grid-template-columns: minmax(0, 32rem); justify-content: center; }
.tt-lab[data-step="1"] .tt-lens-grid { grid-template-columns: minmax(0, 1fr) 3.8rem; max-width: 36rem; margin-inline: auto; }
.tt-prediction {
  --tt-ladder: var(--gold);
  min-width: 0; background: #1b1738; padding: 0.85rem;
}
.tt-cover-prediction { --tt-ladder: #85c8cb; }
.tt-pred-label { margin: 0; font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--tt-ladder); }
.tt-context {
  margin: 0.3rem 0 0.65rem; max-width: 100%; color: var(--night-muted); font-size: 0.82rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tt-context code { font-size: 0.8rem; color: inherit; }
.tt-ladder { list-style: none; display: grid; gap: 0.3rem; margin: 0; padding: 0; }
.tt-ladder li {
  --w: 40%;
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; grid-template-columns: 1.7rem minmax(0, 1fr) max-content;
  gap: 0.45rem; align-items: center; padding: 0.45rem 0.55rem;
  font-size: 0.85rem; color: var(--night-muted); border: 1px solid var(--tt-line);
}
.tt-ladder li::before {
  content: ""; position: absolute; z-index: -1; inset: 0 auto 0 0; width: var(--w);
  background: linear-gradient(to right,
    color-mix(in srgb, var(--tt-ladder) 22%, transparent),
    color-mix(in srgb, var(--tt-ladder) 6%, transparent));
}
.tt-ladder li.is-chosen { color: var(--night-text); border-color: var(--tt-ladder); }
.tt-ladder .tt-word { overflow: hidden; text-overflow: ellipsis; }
.tt-ladder .tt-picked { color: var(--tt-ladder); font-size: 0.56rem; letter-spacing: 0.24em; text-transform: uppercase; }
.tt-rank-bridge[hidden] { display: none; }
.tt-rank-bridge {
  display: grid; place-items: center; gap: 0.2rem;
  font-size: 0.56rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--night-muted);
}
.tt-rank-bridge strong {
  display: grid; place-items: center; width: 3rem; height: 3rem;
  color: #14112b; background: var(--gold); border-radius: 50%;
  font-size: 0.9rem; font-weight: 600;
  box-shadow: 0 0 0 5px rgba(208, 177, 96, 0.18);
}
.tt-result { --tt-tone: var(--gold); margin-top: 1.1rem; }
.tt-result p { margin: 0.2rem 0; }
.tt-result p + p { color: var(--night-muted); font-size: 0.9rem; }
.tt-result-mark {
  display: inline-grid; place-items: center; width: 1.4rem; height: 1.4rem;
  margin-right: 0.35rem; vertical-align: -0.28rem;
  color: #14112b; background: var(--gold); border-radius: 50%; font-size: 0.8rem;
}
.tt-actions { display: flex; justify-content: flex-end; gap: 0.7rem; margin-top: 1.3rem; }
.tt-actions button {
  font-family: inherit; font-size: 0.62rem; letter-spacing: 0.3em; text-transform: uppercase;
  padding: 0.85rem 1.7rem; cursor: pointer;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
.tt-action-back { color: var(--night-muted); background: none; border: 1px solid var(--tt-line); }
.tt-action-back:hover:not(:disabled) { color: var(--night-text); border-color: var(--night-muted); }
.tt-action-back:disabled { opacity: 0.35; cursor: default; }
.tt-action-next { color: #14112b; background: var(--gold); border: 1px solid var(--gold); }
.tt-action-next:hover { background: #ddc27c; border-color: #ddc27c; }
@media (max-width: 44rem) {
.tt-steps button { justify-items: center; text-align: center; padding-inline: 0.2rem; }
.tt-steps button small { display: none; }
.tt-explain { min-height: 7.5rem; }
.tt-lens-grid,
  .tt-lab[data-step="0"] .tt-lens-grid,
  .tt-lab[data-step="1"] .tt-lens-grid { grid-template-columns: 1fr; max-width: none; }
.tt-rank-bridge { grid-template-columns: 1fr auto 1fr; }
.tt-rank-bridge::before, .tt-rank-bridge::after { content: ""; height: 1px; background: var(--tt-line); }
.tt-rank-bridge span { display: none; }
.tt-actions { flex-direction: row; }
.tt-actions .tt-action-next { flex: 1; }
}
@media (prefers-reduced-motion: no-preference) {
.tt-sentence, .tt-rank-wrap, .tt-key, .tt-prediction { animation: tt-rise 0.4s ease both; }
.tt-token.is-recovered { animation: tt-rise 0.45s ease both; animation-delay: calc(var(--i) * 50ms); }
.tt-rank:hover, .tt-rank.is-selected { transform: translateY(-2px); }
}
@media (max-width: 62rem) {
.nav { flex-wrap: wrap; }
.nav .nav-links {
    display: none; width: 100%; order: 3;
    grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
    gap: 0.1rem 1rem; padding: 1.2rem 0 0.4rem;
  }
.nav.nav-open .nav-links { display: grid; }
.nav .nav-links a { padding: 0.55rem 0; }
}
.long { display: block; }
.game { position: relative; }
.g-glyph { display: block; width: 1.9rem; height: 1.9rem; color: var(--gold);
  opacity: 0.85; margin-bottom: 0.35rem; }
.g-glyph svg { width: 100%; height: 100%; display: block; }
.game:hover .g-glyph { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
.g-glyph { transition: color 0.4s ease, transform 0.5s cubic-bezier(0.19, 1, 0.22, 1); }
.game:hover .g-glyph { transform: translateY(-2px); }
}
.cover .nw-sky {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 0;
}
.cover .nw-wish-layer {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 0;
}
.cover.sky-isolated .nw-sky > rect,
.cover.sky-isolated .nw-sky > .bs-nebulae,
.cover.sky-isolated .nw-sky > .bs-lanes,
.cover.sky-isolated .nw-sky > .bs-field {
  display: none;
}
.cover.sky-isolated .nw-sky > .bs-realsky {
  display: block;
  opacity: 0;
  pointer-events: all;
}
.cover.sky-isolated .nw-sky > .bs-realsky [data-name] {
  pointer-events: all;
}
.cover.sky-isolated .nw-sky > .bs-moon { opacity: 0 !important; }
.cover .nw-wish-layer { z-index: 1; }
.cover .cover-inner, .cover .scroll-cue { z-index: 2; }
.cover .cover-inner { pointer-events: none; }
.cover .starfield { pointer-events: none; }
.cover .nw-sky .bs-moon { pointer-events: all; }
.nw-hero {
  position: relative;
  display: grid;
  place-items: center;
  /* Capped so the fold still shows the h1, the lede and both buttons. The old banner
     was a 2000x753 image at full width: 537px of a 900px screen, which left the
     proposition below the fold and the first paint saying nothing. */
  min-height: clamp(13rem, 23vw, 20.5rem);
  padding: 1.6rem 1.25rem;
  overflow: hidden;
  background: #0a0e26;  /* the sky's own base; the band is dark in both themes */
}
.nw-sky {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.nw-sky .bs-realsky { opacity: 0; }
.nw-sky.bs-real .bs-realsky { opacity: 1; transition: opacity 6s ease 1.2s; }
.nw-sky.bs-real .bs-field   { opacity: 0.4; transition: opacity 6s ease 1.2s; }
@media (prefers-reduced-motion: reduce) {
.nw-sky.bs-real .bs-realsky,
  .nw-sky.bs-real .bs-field { transition: none; }
}
.cover::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
}
.cover.sky-dawn::after,
.cover.sky-day::after,
.cover.sky-dusk::after { opacity: 1; }
.cover.sky-dawn::after {
  background: linear-gradient(to top,
    rgba(224, 146, 108, 0.26), rgba(130, 94, 142, 0.10) 45%, transparent 72%);
}
.cover.sky-day::after {
  background: linear-gradient(to top,
    rgba(122, 168, 190, 0.15), rgba(122, 168, 190, 0.05) 55%, transparent 80%);
}
.cover.sky-dusk::after {
  background: linear-gradient(to top,
    rgba(196, 108, 88, 0.22), rgba(94, 72, 134, 0.12) 50%, transparent 78%);
}
@media (prefers-reduced-motion: no-preference) {
.nw-sky .bs-tw1 { animation: bs-twinkle 4.7s ease-in-out infinite; }
.nw-sky .bs-tw2 { animation: bs-twinkle 6.1s ease-in-out -2.2s infinite; }
.nw-sky .bs-tw3 { animation: bs-twinkle 7.9s ease-in-out -5.1s infinite; }
.nw-sky .bs-tw4 { animation: bs-twinkle 5.3s ease-in-out -1.3s infinite; }
.nw-sky .bs-tw5 { animation: bs-twinkle 9.7s ease-in-out -7.4s infinite; }
.nw-sky .bs-br  { animation: bs-breathe 8.5s ease-in-out infinite; }
.nw-sky .bs-nebulae { animation: bs-neb-drift 90s ease-in-out infinite; }
.nw-sky .bs-lanes   { animation: bs-lane-drift 110s ease-in-out infinite; }
.nw-sky .bs-comet { animation: bs-comet 149s linear -105s infinite; }
.nw-sky .bs-ufo { animation: bs-ufo 233s linear -110s infinite; }
.nw-sky .bs-ufo-bob { animation: bs-ufo-bob 3.7s ease-in-out infinite; }
.nw-sky .bs-ufo-light { animation: bs-ufo-blink 1.3s ease-in-out infinite; }
.nw-sky .bs-ufo-light:nth-of-type(2) { animation-delay: -0.45s; }
.nw-sky .bs-ufo-light:nth-of-type(3) { animation-delay: -0.9s; }
.nw-sky.bs-season-santa .bs-santa { animation: bs-santa 89s linear -34s infinite; }
.nw-sky.bs-season-santa .bs-santa-bob { animation: bs-santa-bob 2.9s ease-in-out infinite; }
.nw-sky.bs-season-santa .bs-deer-legs {
    transform-box: fill-box; transform-origin: center top;
    animation: bs-gallop 0.42s ease-in-out infinite alternate;
  }
.nw-sky.bs-season-santa .bs-deer-legs:nth-of-type(2) { animation-delay: -0.21s; }
.nw-sky.bs-season-santa .bs-santa-dust circle { animation: bs-ufo-blink 1.3s ease-in-out infinite; }
.nw-sky.bs-season-santa .bs-santa-dust circle:nth-of-type(2n) { animation-delay: -0.5s; }
.nw-sky.bs-season-santa .bs-santa-dust circle:nth-of-type(3n) { animation-delay: -0.9s; }
.nw-sky.bs-season-fireworks .bs-fw {
    transform-box: fill-box; transform-origin: center;
    animation: bs-fw 23s linear infinite;
  }
.nw-sky.bs-season-fireworks .bs-fw2 { animation-delay: -8s; }
.nw-sky.bs-season-fireworks .bs-fw3 { animation-delay: -15.5s; }
.nw-sky.bs-season-valentine .bs-cupid { animation: bs-cupid 67s linear -25s infinite; }
.nw-sky.bs-season-valentine .bs-cupid-bob { animation: bs-heart-flutter 2.1s ease-in-out infinite; }
.nw-sky.bs-season-perseids .bs-comet,
  .nw-sky.bs-season-geminids .bs-comet { animation-duration: 37s; animation-delay: -20s; }
.nw-sky.bs-season-perseids .bs-comet2,
  .nw-sky.bs-season-geminids .bs-comet2 { animation: bs-comet2 41s linear -13s infinite; }
.nw-sky.bs-season-perseids .bs-comet3,
  .nw-sky.bs-season-geminids .bs-comet3 { animation: bs-comet3 43s linear -29s infinite; }
.nw-sky.bs-season-turing .bs-tape { animation: bs-tape 13s ease-in-out infinite; }
.nw-sky.bs-season-ada .bs-ada { animation: bs-ada 7s ease-in-out infinite; }
.nw-sky.bs-season-witch .bs-witch { animation: bs-witch 113s linear -46s infinite; }
.nw-sky.bs-season-witch .bs-witch-bob { animation: bs-witch-bob 1.9s ease-in-out infinite; }
.nw-sky.bs-season-fools .bs-ufo { animation: bs-ufo-fools 47s linear -8s infinite; }
.nw-sky.bs-season-fools .bs-abductee { animation: bs-abduct 47s linear -8s infinite; }
.nw-sky.bs-season-birthday .bs-bday { animation: bs-ada 9s ease-in-out infinite; }
.nw-sky.bs-season-falcon .bs-falcon { animation: bs-falcon 61s linear -22s infinite; }
.nw-sky.bs-season-falcon .bs-falcon-bank { animation: bs-falcon-bank 1.3s ease-in-out infinite; }
.nw-sky.bs-season-normandy .bs-normandy { animation: bs-normandy 83s linear -30s infinite; }
.nw-sky.bs-season-normandy .bs-normandy-bank { animation: bs-santa-bob 4.3s ease-in-out infinite; }
.nw-sky.bs-season-towel .bs-whale { animation: bs-whale 79s linear -18s infinite; }
.nw-sky.bs-season-towel .bs-whale-tumble { animation: bs-whale-tumble 7.3s ease-in-out infinite; }
.nw-sky.bs-season-towel .bs-petunias { animation: bs-petunias 79s linear -3s infinite; }
.nw-sky.bs-season-towel .bs-petunias-tumble { animation: bs-tardis-spin 5.1s linear infinite; }
.nw-sky.bs-season-tardis .bs-tardis { animation: bs-tardis 97s linear -40s infinite; }
.nw-sky.bs-season-tardis .bs-tardis-spin { animation: bs-tardis-spin 6.5s linear infinite; }
.nw-sky.bs-season-tardis .bs-tardis-lamp { animation: bs-ufo-blink 1.4s ease-in-out infinite; }
.nw-sky.bs-season-phoenix .bs-phoenix { animation: bs-phoenix 89s linear -30s infinite; }
.nw-sky.bs-season-vostok .bs-vostok { animation: bs-vostok 101s linear -45s infinite; }
.nw-sky.bs-season-lm .bs-lm { animation: bs-lm 103s linear -35s infinite; }
.nw-sky.bs-season-lm .bs-lm-sway { animation: bs-lm-sway 103s linear -35s infinite; }
.nw-sky.bs-season-lm .bs-lm-flame { animation: bs-lm-flame 103s linear -35s infinite; }
.nw-sky.bs-season-lm .bs-lm-jet {
    transform-box: fill-box; transform-origin: center top;
    animation: bs-lm-jet 0.22s ease-in-out infinite alternate;
  }
.nw-sky.bs-season-leap .bs-ufo { animation: bs-ufo-leap 59s linear -12s infinite; }
.nw-sky.bs-season-leap .bs-ufo2 { animation: bs-ufo2-leap 59s linear -12s infinite; }
.nw-sky.bs-season-leap .bs-ufo2-bob { animation: bs-ufo-bob 3.1s ease-in-out infinite; }
.nw-sky.bs-season-entd .bs-entd { animation: bs-entd 107s linear -38s infinite; }
.nw-sky.bs-season-moth .bs-moth { animation: bs-tape 9s ease-in-out infinite; }
.nw-sky.bs-season-moth .bs-moth-orbit {
    transform-box: view-box; transform-origin: 700px 240px;
    animation: bsg-lotus-turn 13s linear infinite;
  }
.nw-sky.bs-season-moth .bs-moth-flap {
    transform-box: fill-box; transform-origin: center;
    animation: bs-moth-flap 0.45s ease-in-out infinite;
  }
.nw-sky.bs-season-sagan .bs-sagan { animation: bs-sagan 17s ease-in-out infinite; }
.nw-sky.bs-season-sagan .bs-sagan-dot { animation: bs-ada 7s ease-in-out infinite; }
.nw-sky.bs-season-pluto .bs-pluto { animation: bs-pluto 131s linear -50s infinite; }
.nw-sky.bs-season-robot .bs-robot { animation: bs-robot 97s linear -35s infinite; }
.nw-sky.bs-season-robot .bs-robot-bob { animation: bs-ufo-bob 3.1s ease-in-out infinite; }
.nw-sky.bs-season-robot .bs-robot-arm {
    transform-box: fill-box; transform-origin: left center;
    animation: bs-robot-wave 1.1s ease-in-out infinite;
  }
.nw-sky.bs-season-robot .bs-robot-antenna { animation: bs-ufo-blink 1.6s ease-in-out infinite; }
.nw-sky.bs-season-robot .bs-claudemark { animation: bs-claudemark 83s linear -30s infinite; }
.nw-sky.bs-season-robot .bs-claudemark-spin {
    transform-box: fill-box; transform-origin: center;
    animation: bs-tardis-spin 8s linear infinite;
  }
.nw-sky.bs-season-robot .bs-openaimark { animation: bs-openaimark 91s linear -55s infinite; }
.nw-sky.bs-season-robot .bs-openaimark-spin {
    transform-box: fill-box; transform-origin: center;
    animation: bs-tardis-spin 11s linear infinite reverse;
  }
.nw-sky.bs-season-asteroid .bs-asteroid { animation: bs-asteroid 109s linear -40s infinite; }
.nw-sky.bs-season-asteroid .bs-asteroid-tumble {
    transform-box: fill-box; transform-origin: center;
    animation: bs-tardis-spin 8s linear infinite;
  }
.nw-sky.bs-season-pi .bs-pi { animation: bs-tape 13s ease-in-out infinite; }
.nw-sky.bs-season-ufoday .bs-ufo { animation-duration: 89s; animation-delay: -30s; }
.nw-sky.bs-season-ufoday .bs-ufo2 { animation: bs-ufo2-formation 89s linear -30s infinite; }
.nw-sky.bs-season-ufoday .bs-ufo2-bob { animation: bs-ufo-bob 2.9s ease-in-out infinite; }
.nw-sky.bs-season-shamrock .bs-shamrock { animation: bs-shamrock 71s linear -26s infinite; }
.nw-sky.bs-season-shamrock .bs-shamrock-sway { animation: bs-tardis-spin 5.7s linear infinite; }
.nw-sky.bs-season-easter .bs-egg { animation: bs-egg 93s linear -33s infinite; }
.nw-sky.bs-season-easter .bs-egg-sway {
    transform-box: fill-box; transform-origin: center;
    animation: bs-tardis-spin 14s linear infinite;
  }
.nw-sky.bs-season-hanukkah .bs-menorah { animation: bs-sagan 15s ease-in-out infinite; }
.nw-sky.bs-season-hanukkah .bs-hk-flame[data-lit] { animation: bs-hk-flicker 1.7s ease-in-out infinite; }
.nw-sky.bs-season-hanukkah .bs-hk-flame[data-lit]:nth-of-type(even) { animation-delay: -0.8s; }
.nw-sky.bs-season-hanukkah .bs-hk-shamash { animation: bs-hk-flicker 1.9s ease-in-out -0.5s infinite; }
.nw-sky.bs-season-tet .bs-lantern { animation: bs-lantern 87s linear -30s infinite; }
.nw-sky.bs-season-tet .bs-lantern-sway { animation: bs-witch-bob 4.1s ease-in-out infinite; }
.nw-sky.bs-season-kingsday .bs-crown,
  .nw-sky.bs-season-kingsbday .bs-crown { animation: bs-crown 79s linear -28s infinite; }
.nw-sky.bs-season-kingsday .bs-crown-bob,
  .nw-sky.bs-season-kingsbday .bs-crown-bob { animation: bs-heart-flutter 2.7s ease-in-out infinite; }
.nw-sky.bs-season-xmasstar .bs-xstar { animation: bs-ada 11s ease-in-out infinite; }
.nw-sky.bs-season-sputnik .bs-sputnik { animation: bs-sputnik 99s linear -40s infinite; }
.nw-sky.bs-season-sputnik .bs-sputnik-ping {
    transform-box: fill-box; transform-origin: center;
    animation: bs-sputnik-ping 2.3s ease-out infinite;
  }
.nw-sky.bs-season-liberator .bs-liberator { animation: bs-liberator 101s linear -38s infinite; }
.nw-sky.bs-season-reddwarf .bs-reddwarf { animation: bs-reddwarf 127s linear -20s infinite; }
.nw-sky.bs-season-holi .bs-holi {
    transform-box: fill-box; transform-origin: center;
    animation: bs-holi 19s linear infinite;
  }
.nw-sky.bs-season-holi .bs-holi2p { animation-delay: -6.5s; }
.nw-sky.bs-season-holi .bs-holi3p { animation-delay: -13s; }
.nw-sky.bs-season-eid .bs-eid { animation: bs-ada 9s ease-in-out infinite; }
.nw-sky.bs-season-diwali .bs-diwali { animation: bs-sagan 15s ease-in-out infinite; }
.nw-sky.bs-season-diwali .bs-diya-flame { animation: bs-hk-flicker 1.6s ease-in-out infinite; }
.nw-sky.bs-season-diwali .bs-diya2 { animation-delay: -0.6s; }
.nw-sky.bs-season-diwali .bs-diya3 { animation-delay: -1.1s; }
.nw-sky.bs-season-nowruz .bs-goldfish { animation: bs-goldfish 83s linear -30s infinite; }
.nw-sky.bs-season-nowruz .bs-goldfish-wiggle {
    transform-box: fill-box; transform-origin: center;
    animation: bs-goldfish-wiggle 1.3s ease-in-out infinite;
  }
.nw-sky.bs-season-midautumn .bs-skylantern { animation: bs-skylantern 91s linear -32s infinite; }
.nw-sky.bs-season-midautumn .bs-skylantern-sway { animation: bs-witch-bob 4.4s ease-in-out infinite; }
.nw-sky.bs-season-rosh .bs-shofar { animation: bs-shofar 97s linear -36s infinite; }
.nw-sky.bs-season-rosh .bs-shofar-bob { animation: bs-heart-flutter 3.1s ease-in-out infinite; }
.nw-sky.bs-season-hanukkah .bs-menorah-float { animation: bs-heart-flutter 5.5s ease-in-out infinite; }
.nw-sky.bs-season-hanukkah .bs-dreidel { animation: bs-dreidel 73s linear -25s infinite; }
.nw-sky.bs-season-hanukkah .bs-dreidel-spin {
    transform-box: fill-box; transform-origin: center;
    animation: bs-tardis-spin 1.2s linear infinite;
  }
.nw-sky.bs-season-kingsday .bs-crown-spin,
  .nw-sky.bs-season-kingsbday .bs-crown-spin {
    transform-box: fill-box; transform-origin: center;
    animation: bs-tardis-spin 9s linear infinite;
  }
.nw-sky.bs-season-women .bs-women { animation: bs-ada 8s ease-in-out infinite; }
.nw-sky.bs-season-earth .bs-earthflag { animation: bs-earthflag 89s linear -32s infinite; }
.nw-sky.bs-season-earth .bs-earthflag-bob { animation: bs-heart-flutter 2.9s ease-in-out infinite; }
.nw-sky.bs-season-flypast .bs-flypast { animation: bs-flypast 67s linear -20s infinite; }
.nw-sky.bs-season-entd .bs-warbird { animation: bs-warbird 113s linear -75s infinite; }
.nw-sky.bs-season-entd .bs-vorcha { animation: bs-vorcha 109s linear -15s infinite; }
.nw-sky.bs-season-borg .bs-borg { animation: bs-borg 131s linear -30s infinite; }
.nw-sky.bs-season-borg .bs-borg-light { animation: bs-ufo-blink 1.9s ease-in-out infinite; }
.nw-sky.bs-season-borg .bs-borg-light:nth-of-type(2) { animation-delay: -0.6s; }
.nw-sky.bs-season-borg .bs-borg-light:nth-of-type(3) { animation-delay: -1.1s; }
.nw-sky.bs-season-borg .bs-borg-light:nth-of-type(4) { animation-delay: -1.5s; }
.nw-sky.bs-season-roci .bs-roci { animation: bs-roci 101s linear -44s infinite; }
.nw-sky.bs-season-dralthi .bs-dralthi { animation: bs-dralthi 89s linear -33s infinite; }
.nw-sky.bs-season-halley .bs-halley { animation: bs-halley 240s linear -70s infinite; }
}
.nw-sky.bs-season-july4 .bs-fw1 { fill: #e0e6f8; }
.nw-sky.bs-season-july4 .bs-fw2 { fill: #c05248; }
.nw-sky.bs-season-july4 .bs-fw3 { fill: #6b8cc7; }
.nw-sky.bs-season-kingsbday .bs-crown-body { fill: #d4b45a; }
.nw-sky.bs-season-kingsbday .bs-crown-band { fill: #b0453f; }
.bs-moon.bs-moon-eclipse .bs-moon-lit { fill: #b4563a; opacity: 0.8; }
.bs-moon.bs-moon-earthshine > circle:nth-of-type(2) { fill: #414a63; }
.bs-moon.bs-moon-earthshine .bs-moon-tx { opacity: 0.58; }
.nw-sky.bs-season-solstice .bs-nebulae { opacity: 0.72; }
.nw-sky.bs-season-solstice .bs-lanes { opacity: 0.85; }
.nw-sky .bs-sirius { transition: opacity 2.5s ease; }
.nw-sky.bs-season-dogdays .bs-sirius { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
.cover.sky-dusk .bs-owl { animation: bs-owl 151s linear -13s infinite; }
.cover.sky-dusk .bs-owl-glide { animation: bs-owl-glide 2.3s ease-in-out infinite; }
.cover.sky-dusk .bs-owl-wing-right {
    transform-box: fill-box;
    transform-origin: left center;
    animation: bs-owl-wing-right 0.92s ease-in-out infinite;
  }
.cover.sky-dusk .bs-owl-wing-left {
    transform-box: fill-box;
    transform-origin: right center;
    animation: bs-owl-wing-left 0.92s ease-in-out infinite;
  }
}
.nw-startag {
  position: absolute;
  margin: 0;
  transform: translateX(-50%);
  z-index: 2;
  white-space: nowrap;
  text-align: center;
  font-family: "Fraunces", Georgia, serif;
  font-size: 0.9rem;
  color: #ffe6c4;
  opacity: 0;
  transition: opacity 0.6s ease;
  pointer-events: none;
}
.nw-startag.show { opacity: 1; }
.nw-startag span {
  display: inline-block;
  background: rgba(10, 14, 38, 0.75);
  border: 1px solid rgba(212, 180, 90, 0.55);
  border-radius: 1.2rem;
  padding: 0.2rem 0.9rem 0.3rem;
  line-height: 1.25;
}
.nw-startag small {
  display: block;
  font-size: 0.72em;
  color: rgba(255, 230, 196, 0.72);
}
.nw-daylabel {
  margin: 0.15rem auto 0.45rem;
  max-width: none;
  font-family: "Fraunces", Georgia, serif;
  font-size: 0.95rem;
  color: #ffe6c4;
  opacity: 0;
  transition: opacity 0.6s ease;
  pointer-events: none;
}
.nw-daylabel.show { opacity: 1; }
.nw-daylabel span {
  background: rgba(10, 14, 38, 0.75);
  border: 1px solid rgba(212, 180, 90, 0.55);
  border-radius: 99px;
  padding: 0.15rem 0.85rem;
}
.cover .cover-mandala { position: relative; }
.cover .nw-daylabel {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  margin: 0.5rem 0 0; white-space: nowrap;
}
.cover .nw-sigil.bs-festive { cursor: pointer; }
.cover .nw-sigil.bs-festive .bsg-lotus { animation-duration: 60s; }
.cover .cover-mandala::before {
  content: ""; position: absolute; inset: -22%; z-index: -1; border-radius: 50%;
  background: radial-gradient(circle, rgba(212, 180, 90, 0.20), rgba(212, 180, 90, 0.07) 45%, transparent 68%);
  opacity: 0; transition: opacity 1.4s ease; pointer-events: none;
}
.cover .cover-mandala:has(.bs-festive)::before { opacity: 1; }
.prose { max-width: 42rem; }
.prose > p { margin-bottom: 1.15rem; }
.prose h2 { font-size: clamp(1.45rem, 2.6vw, 1.85rem); font-weight: 460; margin: 2.4rem 0 0.9rem; }
.prose h3 { font-size: 1.22rem; font-weight: 470; margin: 1.9rem 0 0.6rem; }
.prose h4 { font-size: 1.05rem; font-weight: 500; margin: 1.5rem 0 0.5rem; }
.prose ul, .prose ol { margin: 0 0 1.15rem 1.25rem; }
.prose li { margin-bottom: 0.5rem; }
.prose blockquote { border-left: 1px solid var(--gold); padding-left: 1.35rem; font-style: italic; margin: 1.5rem 0; color: var(--muted); }
.prose a { color: var(--gold-deep); text-underline-offset: 3px; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 2.2rem 0; }
.prose code { font-size: 0.92em; }
.prose dt { font-weight: 600; margin-top: 1.1rem; }
.prose dd { margin: 0.2rem 0 0.8rem; color: var(--muted); }
.essay { display: none; }
.essay.open { display: block; }
.essay .when { font-size: 0.66rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--gold-deep); }
.essay h1 { font-size: clamp(2.1rem, 4.6vw, 3.4rem); margin: 0.9rem 0 1.1rem; }
.essay .standfirst { font-style: italic; color: var(--muted); font-size: 1.1rem; max-width: 42rem; margin-bottom: 2.4rem; }
.back { display: inline-block; margin-top: 3rem; font-size: 0.66rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold-deep); text-decoration: none; border-bottom: 1px solid transparent; }
.back:hover { border-bottom-color: var(--gold); }
.piece { text-decoration: none; color: inherit; }
.piece h3 { transition: color 0.3s ease; }
.piece:hover h3 { color: var(--gold-deep); }
.quote-roll { max-width: 46rem; }
.quote-roll .q {
  border-top: 1px solid var(--line);
  padding: 1.6rem 0;
  font-family: "Fraunces", Georgia, serif;
  font-style: italic;
  font-size: 1.12rem;
  line-height: 1.55;
}
.quote-roll .q:last-child { border-bottom: 1px solid var(--line); }
.quote-roll .q .src { display: block; margin-top: 0.6rem; font-family: "Source Serif 4", Georgia, serif; font-style: normal; font-size: 0.68rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-deep); }
.prose img { width: 100%; height: auto; margin: 1.8rem 0; border-radius: 2px; }
.prose a:not([href]) { color: inherit; text-decoration: none; }
.essay-nav {
  display: grid; grid-template-columns: 1fr 1fr; gap: 2rem;
  margin-top: 3.5rem; padding-top: 1.8rem; border-top: 1px solid var(--line);
}
.essay-nav a { text-decoration: none; color: inherit; font-family: "Fraunces", Georgia, serif; font-size: 1.02rem; line-height: 1.3; transition: color 0.3s ease; }
.essay-nav a:hover { color: var(--gold-deep); }
.essay-nav a span { display: block; font-family: "Source Serif 4", Georgia, serif; font-size: 0.6rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: 0.5rem; }
.essay-nav .next { text-align: right; }
@media (max-width: 40rem) {
.essay-nav { grid-template-columns: 1fr; gap: 1.4rem; }
.essay-nav .next { text-align: left; }
}
.correspondence { max-width: 42rem; margin-top: 3.6rem; }
.correspondence .c-kicker {
  font-family: "Source Serif 4", Georgia, serif; font-size: 0.62rem;
  letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold-deep);
  margin: 1.7rem 0 0.45rem;
}
.correspondence .c-note { font-size: 0.9rem; font-style: italic; color: var(--muted); margin-bottom: 0.4rem; }
.c-letter { border-top: 1px solid var(--line); padding: 1.3rem 0 1.15rem; }
.c-letter .c-who {
  font-family: "Source Serif 4", Georgia, serif; font-size: 0.66rem;
  letter-spacing: 0.24em; text-transform: uppercase; color: var(--text);
  margin-bottom: 0.55rem;
}
.c-letter .c-who .c-date { color: var(--muted); letter-spacing: 0.18em; margin-left: 0.7rem; }
.c-badge {
  background: var(--ink); color: var(--gold); padding: 0.12rem 0.5rem;
  font-size: 0.56rem; letter-spacing: 0.24em; margin-left: 0.55rem;
  border-radius: 2px; vertical-align: 0.1em;
}
.c-letter .c-body { font-size: 0.94rem; line-height: 1.7; }
.c-letter .c-body p { margin-bottom: 0.7rem; }
.c-letter .c-body p:last-child { margin-bottom: 0; }
.c-letter .c-body a { color: var(--gold-deep); text-underline-offset: 3px; }
.c-letter .c-body blockquote { border-left: 1px solid var(--gold); padding-left: 1.1rem; font-style: italic; color: var(--muted); margin: 0.8rem 0; }
.giscus-mount { margin-top: 1.9rem; }
.giscus-mount .giscus { margin-top: 0.4rem; }
.sift { display: block; width: 100%; max-width: 24rem; margin-bottom: 1.6rem;
  font-family: inherit; font-size: 0.95rem; color: var(--text);
  background: transparent; border: 0; border-bottom: 1px solid var(--line);
  padding: 0.6rem 0.1rem; border-radius: 0; }
.sift:focus { outline: none; border-bottom-color: var(--gold); }
.sift::placeholder { color: var(--muted); opacity: 0.7; }
.sift-none { font-style: italic; color: var(--muted); padding: 1.5rem 0; display: none; }
.link-roll { display: grid; gap: 0; max-width: 52rem; }
.link-roll a, .link-roll .row {
  display: grid; gap: 0.25rem; padding: 1.15rem 0;
  border-top: 1px solid var(--line); text-decoration: none; color: inherit;
}
.link-roll a:last-child, .link-roll .row:last-child { border-bottom: 1px solid var(--line); }
.link-roll h3 { font-size: 1.02rem; font-weight: 470; font-style: italic; line-height: 1.35; transition: color 0.3s ease; }
.link-roll a:hover h3 { color: var(--gold-deep); }
.link-roll .sub { font-size: 0.76rem; color: var(--muted); }
.link-roll .sub b { font-weight: 400; color: var(--gold-deep); }
.prose table, .nwfig {
  --text-muted: var(--muted);
  --paper-shade: var(--paper-2);
  --line-strong: var(--gold);
  --accent: var(--gold-deep);
  --accent-deep: var(--gold-deep);
  --accent-text: var(--paper);
  --orchid: var(--gold);
  --orchid-text: var(--ink);
  --band-text: var(--muted);
  --scroll-shadow: rgba(19, 16, 41, 0.14);
  --radius: 2px;
  --measure: 42rem;
}
.prose table {
  border-collapse: collapse;
  width: 100%;
  font-size: 0.88rem;
  line-height: 1.5;
  text-align: left;
}
.prose > table { margin: 1.8rem 0; }
.prose thead th {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
  padding: 0.2rem 0.7rem 0.5rem;
  border-bottom: 1px solid var(--gold);
  vertical-align: bottom;
}
.prose tbody th { font-weight: 600; padding: 0.7rem; vertical-align: top; }
.prose tbody td { padding: 0.7rem; vertical-align: top; color: var(--muted); }
.prose tbody tr + tr th,
.prose tbody tr + tr td { border-top: 1px solid var(--line); }
.prose caption {
  caption-side: top;
  text-align: left;
  padding: 0 0.7rem 0.6rem;
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
}
.prose figure:not(.nwfig) { margin: 1.8rem 0; }
.prose figure img { margin: 0; }
.prose figcaption { font-size: 0.86rem; line-height: 1.6; color: var(--muted); margin-top: 0.7rem; }
.prose .editor-note {
  border-left: 1px solid var(--gold);
  padding: 0.1rem 0 0.1rem 1.35rem;
  margin: 0 0 1.6rem;
  font-size: 0.92rem;
  color: var(--muted);
}
.prose .editor-note p:last-child { margin-bottom: 0; }
.nwfig {
  max-width: none;
  width: min(46rem, calc(100vw - 3rem));
  margin: 2.4rem 0;
  margin-left: 50%;
  transform: translateX(-50%);
}
.nwfig-frame {
  /* Scroll shadows (covers scroll with the content, shadows stay put): when a figure or
     table is wider than the frame — phones, mostly — a soft inner shadow appears on the
     clipped edge, so a cut-off column reads as "scrolls" rather than "broken". With no
     overflow the covers hide the shadows and this is just var(--paper-shade). */
  background:
    linear-gradient(90deg, var(--paper-shade) 45%, transparent) left / 3rem 100%,
    linear-gradient(-90deg, var(--paper-shade) 45%, transparent) right / 3rem 100%,
    radial-gradient(farthest-side at 0 50%, var(--scroll-shadow), transparent) left / 1.1rem 100%,
    radial-gradient(farthest-side at 100% 50%, var(--scroll-shadow), transparent) right / 1.1rem 100%,
    var(--paper-shade);
  background-repeat: no-repeat;
  background-attachment: local, local, scroll, scroll;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0.9rem 0.6rem 0.2rem;
  overflow-x: auto;   /* wide figures scroll themselves; the page never scrolls sideways */
}
.nwfig svg { display: block; width: 100%; height: auto; min-width: 29rem; }
.nwfig figcaption {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--text-muted);
  margin: 0.75rem auto 0;   /* centre the caption under the outset figure, at reading measure */
  max-width: var(--measure);
}
.nwfig figcaption strong { color: var(--text); }
.fig-axis { stroke: var(--line-strong); stroke-width: 1; fill: none; }
.fig-grid { stroke: var(--line); stroke-width: 1; stroke-dasharray: 2 4; fill: none; }
.fig-rule { stroke: var(--line); stroke-width: 1; fill: none; }
.fig-line       { fill: none; stroke: var(--accent); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.fig-line-alt   { fill: none; stroke: var(--orchid); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 7 5; }
.fig-line-gold  { fill: none; stroke: var(--gold); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.fig-line-ghost { fill: none; stroke: var(--line-strong); stroke-width: 2; stroke-dasharray: 4 4; }
.fig-bound      { fill: none; stroke: var(--ink); stroke-width: 2; }
.fig-zone      { fill: var(--accent); opacity: 0.13; }
.fig-zone-bad  { fill: var(--orchid); opacity: 0.11; }
.fig-zone-mute { fill: var(--ink); opacity: 0.035; }
.fig-band      { fill: var(--gold); opacity: 0.18; }
.fig-box      { fill: var(--paper); stroke: var(--line-strong); stroke-width: 1.5; }
.fig-box-a    { fill: var(--accent); opacity: 0.16; stroke: var(--accent); stroke-width: 1.5; }
.fig-box-b    { fill: var(--orchid); opacity: 0.14; stroke: var(--orchid); stroke-width: 1.5; }
.fig-box-gold { fill: var(--gold); opacity: 0.18; stroke: var(--gold); stroke-width: 1.5; }
.fig-bar      { fill: var(--accent); }
.fig-bar-alt  { fill: var(--orchid); }
.fig-bar-mute { fill: var(--line-strong); opacity: 0.5; }
.fig-dot      { fill: var(--gold); stroke: var(--paper); stroke-width: 2; }
:where(.nwfig svg text) {
  font-family: system-ui, sans-serif;
  font-size: 12px;
  fill: var(--text);
}
.fig-t {
  font-family: system-ui, sans-serif;
  font-size: 12px;
  fill: var(--text);
}
.fig-t-sm    { font-size: 10.5px; fill: var(--text-muted); }
.fig-t-lead  { font-size: 12.5px; font-weight: 600; fill: var(--text); }
.fig-t-mute  { fill: var(--text-muted); }
.fig-t-a     { fill: var(--accent-deep); font-weight: 600; }
.fig-t-b     { fill: var(--orchid-text); font-weight: 600; }
.fig-t-num   { font-variant-numeric: tabular-nums; }
.fig-t-cap   { font-size: 10px; letter-spacing: 0.09em; fill: var(--text-muted); }
.fig-mid     { text-anchor: middle; }
.fig-end     { text-anchor: end; }
.nwfig table {
  border-collapse: collapse;
  width: 100%;
  font-size: 0.88rem;
  line-height: 1.5;
  text-align: left;
}
.nwfig thead th {
  font-family: system-ui, sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
  padding: 0.2rem 0.7rem 0.5rem;
  border-bottom: 1px solid var(--line-strong);
  vertical-align: bottom;
}
.nwfig tbody th {
  font-weight: 600;
  color: var(--text);
  padding: 0.7rem;
  vertical-align: top;
  width: 24%;
}
.nwfig tbody td { padding: 0.7rem; vertical-align: top; color: var(--text-muted); }
.nwfig tbody tr + tr th,
.nwfig tbody tr + tr td { border-top: 1px solid var(--line); }
.nwfig td.privileged { color: var(--text); }
.nwfig td.suppressed { color: var(--text); background: var(--orchid); box-shadow: none; }
.nwfig tbody td.suppressed {
  background: color-mix(in srgb, var(--orchid) 11%, transparent);
}
.nwfig-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem;
  margin-top: 0.85rem;
}
.nwfig-controls[hidden] { display: none; }
.nwfig-ctrl-label {
  font-family: system-ui, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.nwfig-controls button {
  font-family: system-ui, sans-serif;
  font-size: 0.85rem;
  padding: 0.32rem 0.7rem;
  border: 1px solid var(--line-strong);
  border-radius: 100px;
  background: var(--paper);
  color: var(--text);
  cursor: pointer;
  transition: background 140ms ease, border-color 140ms ease;
}
.nwfig-controls button:hover { border-color: var(--accent); }
.nwfig-controls button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.nwfig-controls button[aria-pressed="true"] {
  background: var(--accent-deep);
  border-color: var(--accent-deep);
  color: #fff;
}
.nwfig-controls input[type="range"] { accent-color: var(--accent-deep); flex: 1 1 12rem; max-width: 18rem; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .fig-zone-mute { fill: #fff; opacity: 0.04; }
:root:not([data-theme="light"]) .fig-bound { stroke: var(--band-text); }
:root:not([data-theme="light"]) .fig-box { fill: var(--paper-shade); }
:root:not([data-theme="light"]) .nwfig-controls button[aria-pressed="true"] { color: var(--ink); }
}
:root[data-theme="dark"] .fig-zone-mute { fill: #fff; opacity: 0.04; }
:root[data-theme="dark"] .fig-bound { stroke: var(--band-text); }
:root[data-theme="dark"] .fig-box { fill: var(--paper-shade); }
:root[data-theme="dark"] .nwfig-controls button[aria-pressed="true"] { color: var(--ink); }
.fig-anim {
  transition: x 260ms ease, width 260ms ease, cx 260ms ease, cy 260ms ease,
              x1 260ms ease, x2 260ms ease, opacity 260ms ease;
}
@media (prefers-reduced-motion: reduce) {
.nwfig-controls button,
  .fig-anim,
  .nwfig [class*="fig-"] { transition: none; }
}
.proj-head { position: relative; padding-left: 4.7rem; }
.proj-tile {
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 3.5rem; height: 3.5rem; border-radius: 0.8rem;
  background: #473a8a; display: grid; place-items: center; overflow: hidden;
}
.proj-tile .proj-mark { width: 72%; height: 72%; object-fit: contain; display: block; }
@media (max-width: 46rem) {
.proj-head { min-height: 3.5rem; }
}
a.proj-tile { text-decoration: none; cursor: pointer;
  transition: box-shadow 0.25s ease, transform 0.25s ease; }
a.proj-tile:hover, a.proj-tile:focus-visible {
  transform: translateY(-50%) scale(1.06);
  box-shadow: 0 0 0 2px var(--gold-deep); outline: none;
}
@media (prefers-reduced-motion: reduce) {
a.proj-tile { transition: box-shadow 0.25s ease; }
a.proj-tile:hover, a.proj-tile:focus-visible { transform: translateY(-50%); }
}
body[data-route="writing"] .nav:not(.scrolled) .nav-links a,
body[data-route="press"] .nav:not(.scrolled) .nav-links a,
body[data-route="brain"] .nav:not(.scrolled) .nav-links a,
body[data-route="standards"] .nav:not(.scrolled) .nav-links a,
body[data-route="lexicon"] .nav:not(.scrolled) .nav-links a,
body[data-route="quotes"] .nav:not(.scrolled) .nav-links a,
body[data-route="videos"] .nav:not(.scrolled) .nav-links a,
body[data-route="minds"] .nav:not(.scrolled) .nav-links a,
body[data-route="privacy"] .nav:not(.scrolled) .nav-links a,
body[data-route="essay"] .nav:not(.scrolled) .nav-links a,
body[data-route="advisory"] .nav:not(.scrolled) .nav-links a,
body[data-route="agentic-ai-safety"] .nav:not(.scrolled) .nav-links a,
body[data-route="bilateral-alignment"] .nav:not(.scrolled) .nav-links a,
body[data-route="machine-welfare"] .nav:not(.scrolled) .nav-links a,
body[data-route="ai-governance"] .nav:not(.scrolled) .nav-links a,
body[data-route="now"] .nav:not(.scrolled) .nav-links a { color: var(--muted); }
body[data-route="writing"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="press"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="brain"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="standards"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="lexicon"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="quotes"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="videos"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="minds"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="privacy"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="essay"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="advisory"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="agentic-ai-safety"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="bilateral-alignment"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="machine-welfare"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="ai-governance"] .nav:not(.scrolled) .nav-links a[aria-current="page"],
body[data-route="now"] .nav:not(.scrolled) .nav-links a[aria-current="page"] { color: var(--text); }
body[data-route="writing"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="press"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="brain"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="standards"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="lexicon"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="quotes"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="videos"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="minds"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="privacy"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="essay"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="advisory"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="agentic-ai-safety"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="bilateral-alignment"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="machine-welfare"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="ai-governance"] .nav:not(.scrolled) .nav-links a:hover,
body[data-route="now"] .nav:not(.scrolled) .nav-links a:hover { color: var(--gold-deep); }
body[data-route="writing"] .nav:not(.scrolled) .monogram,
body[data-route="press"] .nav:not(.scrolled) .monogram,
body[data-route="brain"] .nav:not(.scrolled) .monogram,
body[data-route="standards"] .nav:not(.scrolled) .monogram,
body[data-route="lexicon"] .nav:not(.scrolled) .monogram,
body[data-route="quotes"] .nav:not(.scrolled) .monogram,
body[data-route="videos"] .nav:not(.scrolled) .monogram,
body[data-route="minds"] .nav:not(.scrolled) .monogram,
body[data-route="privacy"] .nav:not(.scrolled) .monogram,
body[data-route="essay"] .nav:not(.scrolled) .monogram,
body[data-route="advisory"] .nav:not(.scrolled) .monogram,
body[data-route="agentic-ai-safety"] .nav:not(.scrolled) .monogram,
body[data-route="bilateral-alignment"] .nav:not(.scrolled) .monogram,
body[data-route="machine-welfare"] .nav:not(.scrolled) .monogram,
body[data-route="ai-governance"] .nav:not(.scrolled) .monogram,
body[data-route="now"] .nav:not(.scrolled) .monogram { color: var(--gold-deep); }
.cover-mandala > .nw-sigil,
.cover-mandala-lotus-static { width: 100%; height: auto; display: block; }
.cover .roles { line-height: 1.72; }
.cover .roles .role-pair { white-space: nowrap; }
.cover .rv,
.cover .rv.rv-wait,
.cover .rv.on {
  opacity: 1;
  transform: none;
  transition: none;
  animation: none;
  transition-delay: 0s;
}
.cover { isolation: isolate; z-index: 0; }
.cover > .starfield { z-index: 0; }
.cover-mandala { position: relative; z-index: 0; }
.cover-mandala > .nw-sigil { position: relative; z-index: 1; }
.cover::after { content: none; }
.cover.sky-dawn {
  background:
    linear-gradient(to top, rgba(224, 146, 108, 0.26), rgba(130, 94, 142, 0.10) 45%, transparent 72%),
    radial-gradient(120% 90% at 50% 110%, #2a2151 0%, rgba(42, 33, 81, 0) 55%),
    linear-gradient(180deg, #0b0919 0%, #131029 46%, #1d1740 100%);
}
.cover.sky-day {
  background:
    linear-gradient(to top, rgba(122, 168, 190, 0.15), rgba(122, 168, 190, 0.05) 55%, transparent 80%),
    radial-gradient(120% 90% at 50% 110%, #2a2151 0%, rgba(42, 33, 81, 0) 55%),
    linear-gradient(180deg, #0b0919 0%, #131029 46%, #1d1740 100%);
}
.cover.sky-dusk {
  background:
    linear-gradient(to top, rgba(196, 108, 88, 0.22), rgba(94, 72, 134, 0.12) 50%, transparent 78%),
    radial-gradient(120% 90% at 50% 110%, #2a2151 0%, rgba(42, 33, 81, 0) 55%),
    linear-gradient(180deg, #0b0919 0%, #131029 46%, #1d1740 100%);
}
.cover.sky-isolated {
  background:
    var(--nw-sky-image) center / 100% 100% no-repeat,
    radial-gradient(120% 90% at 50% 110%, #2a2151 0%, rgba(42, 33, 81, 0) 55%),
    linear-gradient(180deg, #0b0919 0%, #131029 46%, #1d1740 100%);
}
.cover.sky-isolated.sky-dawn {
  background:
    var(--nw-sky-image) center / 100% 100% no-repeat,
    linear-gradient(to top, rgba(224, 146, 108, 0.26), rgba(130, 94, 142, 0.10) 45%, transparent 72%),
    radial-gradient(120% 90% at 50% 110%, #2a2151 0%, rgba(42, 33, 81, 0) 55%),
    linear-gradient(180deg, #0b0919 0%, #131029 46%, #1d1740 100%);
}
.cover.sky-isolated.sky-day {
  background:
    var(--nw-sky-image) center / 100% 100% no-repeat,
    linear-gradient(to top, rgba(122, 168, 190, 0.15), rgba(122, 168, 190, 0.05) 55%, transparent 80%),
    radial-gradient(120% 90% at 50% 110%, #2a2151 0%, rgba(42, 33, 81, 0) 55%),
    linear-gradient(180deg, #0b0919 0%, #131029 46%, #1d1740 100%);
}
.cover.sky-isolated.sky-dusk {
  background:
    var(--nw-sky-image) center / 100% 100% no-repeat,
    linear-gradient(to top, rgba(196, 108, 88, 0.22), rgba(94, 72, 134, 0.12) 50%, transparent 78%),
    radial-gradient(120% 90% at 50% 110%, #2a2151 0%, rgba(42, 33, 81, 0) 55%),
    linear-gradient(180deg, #0b0919 0%, #131029 46%, #1d1740 100%);
}
.cover-mandala-lotus {
  position: absolute;
  left: 40%;
  top: 40%;
  width: 20%;
  height: 20%;
  z-index: 2;
  pointer-events: none;
}
.cover-mandala-lotus-static {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.cover-mandala.lotus-canvas-ready .cover-mandala-lotus-static { display: none; }
.plate nav { display: block; }
.plate nav .plate-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 1.4rem; }
.plate nav .plate-row + .plate-row { margin-top: 1.05rem; }
.plate nav .plate-topics { margin-top: 1.45rem; padding-top: 1.3rem;
  border-top: 1px solid rgba(208, 177, 96, 0.16); }
.plate nav .plate-elsewhere { margin-top: 1.05rem; }
.plate nav .plate-elsewhere a { color: var(--gold); }
.plate nav .plate-row a { display: inline-block; padding-block: 0.22rem; }
.plate nav .plate-row { margin-block: -0.22rem; }
.plate-fine { color: #b8b3c8; opacity: 0.92; }
@view-transition { navigation: auto; }
::view-transition-old(root),
::view-transition-new(root) { animation-duration: 0.28s; }
.sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important;
  border: 0 !important;
}
.btn {
  display: inline-flex; align-items: center; gap: 0.5rem;
  margin-top: 0.4rem; padding: 0.72rem 1.55rem;
  border: 1px solid var(--gold-deep); border-radius: 999px;
  font-family: "Source Serif 4", Georgia, serif;
  font-weight: 500; font-size: 0.7rem; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--gold-deep); text-decoration: none;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
.btn-solid { background: var(--gold-deep); color: var(--paper); }
.btn:hover, .btn:focus-visible { background: var(--gold-deep); color: var(--paper); }
.btn-solid:hover, .btn-solid:focus-visible {
  background: transparent; color: var(--gold-deep);
}
.nav-menu-toggle {
  display: none; place-items: center; flex: 0 0 2.75rem;
  width: 2.75rem; height: 2.75rem; padding: 0;
  border: 1px solid rgba(208, 177, 96, 0.52); border-radius: 0.7rem;
  color: #f0ddb0;
  background: rgba(17, 13, 35, 0.78);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09),
    0 0.5rem 1.4rem rgba(4, 3, 10, 0.2);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  cursor: pointer;
}
.nav-menu-icon,
.nav-menu-icon::before,
.nav-menu-icon::after {
  display: block; width: 1.15rem; height: 1px;
  background: currentColor; content: ""; transition: transform 0.22s ease;
}
.nav-menu-icon { position: relative; }
.nav-menu-icon::before { position: absolute; transform: translateY(-0.38rem); }
.nav-menu-icon::after { position: absolute; transform: translateY(0.38rem); }
.nav.nav-open .nav-menu-icon { background: transparent; }
.nav.nav-open .nav-menu-icon::before { transform: rotate(45deg); }
.nav.nav-open .nav-menu-icon::after { transform: rotate(-45deg); }
@media (max-width: 68rem) {
html.js .nav-menu-toggle { display: grid; }
html.js .nav { flex-wrap: wrap; }
html.js .nav-links {
    position: absolute; top: calc(100% + 0.35rem); right: 1rem;
    display: none; width: min(22rem, calc(100vw - 2rem));
    padding: 0.7rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.22rem;
    border: 1px solid rgba(208, 177, 96, 0.35); border-radius: 0.85rem;
    background: rgba(17, 13, 35, 0.96);
    box-shadow: 0 1.2rem 3rem rgba(3, 2, 9, 0.42);
    backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  }
html.js .nav.nav-open .nav-links { display: grid; }
html.js .nav-links a,
  html.js body[data-route] .nav:not(.scrolled) .nav-links a {
    display: flex; align-items: center; min-height: 2.75rem;
    padding: 0.65rem 0.7rem; border: 0; border-radius: 0.45rem;
    color: #d8d3e4;
  }
html.js .nav-links a:hover,
  html.js .nav-links a:focus-visible,
  html.js .nav-links a[aria-current="page"] {
    color: #f3dfaa; background: rgba(208, 177, 96, 0.11);
  }
}
@media (max-width: 28rem) {
html.js .nav-links { grid-template-columns: 1fr; }
}
.topic-hero {
  padding: clamp(9rem, 17vh, 12rem) 5vw clamp(4.5rem, 8vw, 7rem);
  background:
    radial-gradient(70% 75% at 82% 0%, rgba(208, 177, 96, 0.13), transparent 72%),
    linear-gradient(180deg, var(--paper), var(--paper-2));
}
.topic-hero .wrap,
.topic-section .wrap { width: min(90vw, 58rem); margin-inline: auto; }
.topic-hero h1 {
  max-width: 15ch; margin: 0.35rem 0 1.25rem;
  font-size: clamp(3rem, 8vw, 6.8rem); line-height: 0.98;
  font-weight: 430; letter-spacing: -0.025em;
}
.topic-hero .lede { max-width: 62ch; color: var(--muted); }
.topic-section { padding: clamp(4rem, 8vw, 7rem) 5vw; background: var(--paper); }
.topic-section + .topic-section { border-top: 1px solid var(--line); }
.topic-section h2 { margin-top: 0; }
.topic-night {
  color: var(--night-text);
  background:
    radial-gradient(80% 70% at 50% 0%, #221b45 0%, transparent 65%),
    #100d22;
}
.topic-night h2, .topic-night h3, .topic-night strong { color: var(--night-text); }
.topic-night p, .topic-night li { color: var(--night-muted); }
.hub-grid, .hub-link-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px; margin-block: 2rem; border: 1px solid var(--line);
  background: var(--line);
}
.hub-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hub-card, .hub-link {
  display: block; padding: clamp(1.35rem, 3vw, 2.15rem);
  color: var(--text); background: var(--paper); text-decoration: none;
}
.hub-card h2, .hub-card h3, .hub-link strong { margin: 0; color: var(--text); }
.hub-link span { display: block; margin-top: 0.45rem; color: var(--muted); }
.hub-link { transition: background 0.28s ease, color 0.28s ease; }
.hub-link:hover, .hub-link:focus-visible { background: var(--paper-2); }
.hub-columns {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2.25rem, 7vw, 5.5rem);
}
.hub-list, .hub-steps { padding-left: 1.25rem; }
.hub-list li, .hub-steps li { margin-block: 0.85rem; }
.hub-callout {
  margin-top: 3rem; padding: clamp(1.5rem, 4vw, 2.6rem);
  border: 1px solid var(--line); background: var(--paper-2);
}
.topic-section p, .topic-hero p { margin-block: 0 1.15rem; }
.topic-section p:last-child, .topic-hero p:last-child { margin-bottom: 0; }
.topic-section h2 {
  margin-block: 2.6rem 0.95rem;
  font-size: clamp(1.6rem, 3.4vw, 2.05rem); line-height: 1.14;
  font-weight: 440; letter-spacing: -0.012em;
}
.topic-section h3 {
  margin-block: 2.1rem 0.6rem;
  font-size: clamp(1.08rem, 2vw, 1.22rem); line-height: 1.25; font-weight: 470;
}
.hub-card h2, .hub-callout h2 { font-size: clamp(1.2rem, 2.4vw, 1.42rem); }
.topic-section :is(h2, h3):first-child { margin-top: 0; }
.topic-section .kicker { margin-bottom: 0; }
.topic-section .kicker + h2 { margin-top: 1.1rem; }
.topic-section .kicker:first-child { margin-top: 0; }
.hub-card :is(h2, h3), .hub-callout :is(h2, h3) { margin-top: 0; margin-bottom: 0.7rem; }
.hub-columns > div > :is(h2, h3):first-child { margin-top: 0; }
.hub-list li p, .hub-steps li p { margin-block: 0.35rem 0; }
.topic-hero .btn, .topic-section .btn, .hub-callout .btn { margin-top: 1.6rem; }
.hub-callout p + p:last-child { margin-bottom: 0; }
.now-list { max-width: 58rem; }
.now-entry {
  display: grid; grid-template-columns: minmax(7rem, 0.3fr) 1fr;
  gap: 1rem 2.5rem; padding: 1.5rem 0; border-top: 1px solid var(--line);
}
.now-entry h2 { margin: 0; font-size: clamp(1.25rem, 3vw, 1.75rem); }
.now-entry p { margin: 0.35rem 0 0; }
.now-date { color: var(--gold-deep); font-size: 0.73rem;
  letter-spacing: 0.13em; text-transform: uppercase; }
.now-slides { margin-left: 0.5rem; }
@media (max-width: 42rem) {
.hub-grid, .hub-grid-three, .hub-link-grid, .hub-columns {
    grid-template-columns: 1fr;
  }
.now-entry { grid-template-columns: 1fr; gap: 0.2rem; }
}
main[data-page="brain"] { overflow-x: clip; }
.sky-return {
  position: fixed; right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 45;
  display: grid; place-items: center; width: 2.9rem; height: 2.9rem;
  border: 1px solid rgba(208, 177, 96, 0.42); border-radius: 50%;
  color: #e8cf8f; background: rgba(17, 13, 35, 0.88);
  box-shadow: 0 0.8rem 2rem rgba(3, 2, 9, 0.3);
  text-decoration: none; opacity: 0; pointer-events: none;
  transform: translateY(0.65rem);
}
.sky-return.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.sky-arrow { display: block; }
.sky-return:focus-visible {
  outline: 2px solid var(--gold); outline-offset: 3px; border-color: var(--gold);
}
@media (prefers-reduced-motion: no-preference) {
.sky-return { transition: opacity 0.28s ease, transform 0.28s ease,
    border-color 0.28s ease; }
.sky-return:hover { transform: translateY(-0.18rem); border-color: var(--gold); }
}
@media (prefers-reduced-motion: reduce) {
@view-transition { navigation: none; }
::view-transition-old(root), ::view-transition-new(root) { animation: none; }
.nav-menu-icon, .nav-menu-icon::before, .nav-menu-icon::after,
  .hub-link, .sky-return { transition: none; }
}
.hub-glyph { display: block; margin-bottom: 0.75rem; color: var(--gold-deep); }
.hub-glyph .glyph {
  width: 2.15rem; height: 2.15rem; display: block;
  /* 1.1 on a 24-unit box scaled to ~34px draws thinner than the sigils it sits
     beside, which are set much larger. Thickened so the mark reads as drawn
     rather than as a smudge at the top of the card. */
  stroke-width: 1.35;
}
.topic-night .hub-glyph { color: var(--gold); }
.hub-card .hub-glyph { margin-bottom: 0.85rem; }
@media (prefers-reduced-motion: no-preference) {
.hub-glyph .glyph { transition: color 0.4s ease; }
}
.play-room {
  min-height: 100svh; padding: clamp(6.5rem, 11vw, 9rem) 0 4rem;
  background:
    radial-gradient(85% 55% at 50% 0%, rgba(63, 48, 116, 0.55), transparent 72%),
    linear-gradient(180deg, #100d22 0%, #161230 100%);
  color: var(--night-text);
}
.play-room-inner { width: min(86vw, 70rem); margin-inline: auto; }
.play-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-bottom: 1.25rem;
}
.play-back {
  display: inline-block; color: var(--gold);
  font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase;
  text-decoration: none;
}
.play-back:hover, .play-back:focus-visible { color: #fff0bd; }
.play-theme {
  display: inline-flex; padding: 0.16rem;
  border: 1px solid rgba(208, 177, 96, 0.34); border-radius: 999px;
  background: rgba(9, 7, 20, 0.32);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}
.play-theme button {
  min-width: 4.2rem; padding: 0.38rem 0.7rem; border: 0;
  border-radius: 999px; background: transparent; color: var(--night-muted);
  font: 600 0.68rem/1 system-ui, sans-serif;
  letter-spacing: 0.09em; text-transform: uppercase; cursor: pointer;
}
.play-theme button:hover { color: var(--night-text); }
.play-theme button:focus-visible {
  outline: 2px solid var(--gold); outline-offset: 2px;
}
.play-theme button[aria-pressed="true"] {
  color: #171229; background: var(--gold);
  box-shadow: 0 0.22rem 0.7rem rgba(0, 0, 0, 0.25);
}
.play-frame-shell {
  overflow: hidden; border: 1px solid rgba(208, 177, 96, 0.28);
  border-radius: 0.8rem;
  background:
    radial-gradient(110% 80% at 50% 0%, rgba(50, 39, 91, 0.44), transparent 68%),
    #14111f;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.05),
    0 1.6rem 4.5rem rgba(0, 0, 0, 0.38);
  transition: background-color 180ms ease, border-color 180ms ease;
}
.play-room[data-play-theme="light"] .play-frame-shell {
  border-color: rgba(179, 147, 74, 0.58);
  background:
    radial-gradient(110% 80% at 50% 0%, rgba(208, 177, 96, 0.10), transparent 68%),
    #f3f1e9;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.82),
    0 1.6rem 4.5rem rgba(0, 0, 0, 0.30);
}
.play-frame {
  display: block; width: 100%; min-height: 70svh; border: 0;
  background: transparent;
}
.play-sequence {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(9rem, 15rem) minmax(0, 1fr);
  align-items: center; gap: clamp(1rem, 3vw, 2.4rem);
  margin-top: 1.4rem; padding: 1.35rem 0 0.3rem;
  border-top: 1px solid rgba(208, 177, 96, 0.28);
}
.play-sequence[hidden] { display: none; }
.play-step {
  display: flex; min-width: 0; min-height: 3.25rem;
  flex-direction: column; justify-content: center; gap: 0.28rem;
  margin: -0.4rem 0; padding: 0.4rem 0.25rem;
  color: var(--night-text); text-decoration: none;
  touch-action: manipulation;
}
.play-step-next { align-items: flex-end; text-align: right; }
.play-step-label {
  color: var(--gold); font: 600 0.64rem/1.2 system-ui, sans-serif;
  letter-spacing: 0.14em; text-transform: uppercase;
}
.play-step strong {
  /* --serif is declared only inside the brain page's token block, so this
     shorthand was invalid here and the browser threw away the weight, the
     size and the line-height with the family. The literal stack is what the
     rest of the sheet uses anyway. */
  overflow: hidden; color: var(--night-muted);
  font: 400 clamp(0.86rem, 1.2vw, 1rem)/1.3 "Source Serif 4", Georgia, serif;
  text-overflow: ellipsis; white-space: nowrap;
}
.play-step:hover strong, .play-step:focus-visible strong { color: #fff0bd; }
.play-step:focus-visible {
  border-radius: 0.2rem; outline: 2px solid var(--gold); outline-offset: 0.45rem;
}
.play-scrubber-wrap {
  display: grid; justify-items: center; gap: 0.45rem; min-width: 0;
}
.play-count {
  color: var(--night-muted); font: 600 0.63rem/1 system-ui, sans-serif;
  letter-spacing: 0.14em; text-transform: uppercase;
}
.play-scrubber {
  --play-progress: 0%;
  appearance: none; box-sizing: border-box;
  width: 100%; height: 2.75rem; margin: 0; padding: 0;
  border: 0; border-radius: 999px; cursor: pointer;
  touch-action: pan-y;
  background:
    linear-gradient(90deg,
      var(--gold) 0 var(--play-progress),
      rgba(157, 151, 184, 0.42) var(--play-progress) 100%)
      center / 100% 0.18rem no-repeat;
}
.play-scrubber::-webkit-slider-runnable-track {
  height: 2.75rem; border: 0; background: transparent;
}
.play-scrubber::-webkit-slider-thumb {
  appearance: none; width: 1.05rem; height: 1.05rem;
  margin-top: 0.85rem;
  border: 0.18rem solid #171229; border-radius: 50%;
  background: var(--gold); box-shadow: 0 0 0 1px rgba(208, 177, 96, 0.62);
}
.play-scrubber::-moz-range-thumb {
  width: 0.72rem; height: 0.72rem;
  border: 0.18rem solid #171229; border-radius: 50%;
  background: var(--gold); box-shadow: 0 0 0 1px rgba(208, 177, 96, 0.62);
}
.play-scrubber::-moz-range-track {
  height: 0.18rem; border: 0; border-radius: 999px;
  background: rgba(157, 151, 184, 0.42);
}
.play-scrubber::-moz-range-progress {
  height: 0.18rem; border-radius: 999px; background: var(--gold);
}
.play-scrubber:focus-visible {
  outline: none;
}
.play-scrubber:focus-visible::-webkit-slider-thumb {
  box-shadow:
    0 0 0 0.25rem #171229,
    0 0 0 0.4rem #fff0bd;
}
.play-scrubber:focus-visible::-moz-range-thumb {
  box-shadow:
    0 0 0 0.25rem #171229,
    0 0 0 0.4rem #fff0bd;
}
@media (max-width: 46rem) {
.play-room { padding-top: 5.6rem; }
.play-room-inner { width: min(96vw, 70rem); }
.play-toolbar { align-items: flex-start; flex-direction: column; }
.play-sequence {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start; row-gap: 1.15rem;
  }
.play-scrubber-wrap { grid-column: 1 / -1; grid-row: 1; }
.play-step-prev { grid-column: 1; grid-row: 2; }
.play-step-next { grid-column: 2; grid-row: 2; }
.play-step strong {
    display: -webkit-box; overflow: hidden; white-space: normal;
    -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  }
}
@media (prefers-reduced-motion: reduce) {
.play-frame-shell { transition: none; }
}
.play-intro { margin: 0 0 1.6rem; }
.play-intro h1 {
  margin: 0 0 0.7rem; font-family: "Fraunces", Georgia, serif;
  font-size: clamp(2rem, 4.6vw, 3.1rem); font-weight: 400; line-height: 1.06;
  color: var(--night-text); letter-spacing: -0.01em;
}
.play-intro p {
  margin: 0 0 0.6rem; max-width: 42rem; color: var(--night-muted);
  font-size: 0.95rem; line-height: 1.7;
}
.play-intro p:last-child { margin-bottom: 0; }
.play-intro .play-lede {
  font-size: clamp(1rem, 1.7vw, 1.15rem); line-height: 1.66;
}
.play-intro em { color: var(--night-text); font-style: italic; }
.play-intro strong { color: var(--night-text); font-weight: 600; }
.play-intro a { color: var(--gold); }
.play-room .play-onward {
  position: static; transform: none;
  width: fit-content; gap: 0.9rem; margin: 1.9rem auto 0.2rem;
  color: var(--gold); font: 600 0.64rem/1.2 system-ui, sans-serif;
  letter-spacing: 0.14em;
}
.play-room .play-onward:hover { color: #e6cd86; }
.play-onward-label { display: flex; align-items: center; gap: 0.9rem; }
.play-onward-label::before, .play-onward-label::after {
  content: ""; width: 2.6rem; height: 1px; opacity: 0.5;
}
.play-onward-label::before {
  background: linear-gradient(90deg, transparent, currentColor);
}
.play-onward-label::after {
  background: linear-gradient(90deg, currentColor, transparent);
}
.play-onward-label::after { margin-left: -0.14em; }
.play-notes {
  background: #161230; color: var(--night-text);
  padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 5rem);
  border-top: 1px solid rgba(208, 177, 96, 0.16);
  /* The masthead is fixed, so a jump to #play-notes would land the section's
     first line underneath it. 5rem clears the tallest it gets (79px, narrow). */
  scroll-margin-top: 5rem;
}
.play-notes-inner { width: min(86vw, 70rem); margin-inline: auto; }
.play-notes-inner > * { max-width: 42rem; }
.play-notes p, .play-notes li {
  color: var(--night-muted); line-height: 1.78; margin: 0 0 1.15rem;
}
.play-notes h2, .play-notes h3 {
  color: var(--gold); font-family: "Fraunces", Georgia, serif;
  font-size: 0.78rem; font-weight: 500; letter-spacing: 0.2em;
  text-transform: uppercase; margin: 2.4rem 0 1rem;
}
.play-notes h2:first-child, .play-notes h3:first-child { margin-top: 0; }
.play-notes h3 {
  letter-spacing: 0.06em; text-transform: none; font-size: 0.98rem;
}
.play-notes ul, .play-notes ol { padding-left: 1.15rem; margin: 0 0 1.15rem; }
.play-notes li { margin-bottom: 0.5rem; }
.play-notes blockquote {
  margin: 1.6rem 0; padding-left: 1.1rem;
  border-left: 2px solid var(--night-line); font-style: italic;
}
.play-notes blockquote p { color: var(--night-text); margin-bottom: 0; }
.play-notes a { color: var(--gold); text-underline-offset: 0.18em; }
.play-notes a:hover { color: #e6cd86; }
.play-notes strong { color: var(--night-text); font-weight: 600; }
.play-notes .small { font-size: 0.92rem; }
.play-reveal {
  margin-top: 2.4rem; border-top: 1px solid rgba(208, 177, 96, 0.16);
  padding-top: 1.5rem;
}
.play-notes-inner > .play-reveal:first-child {
  margin-top: 0; padding-top: 0; border-top: 0;
}
.play-reveal > :first-child { margin-top: 0; }
.play-reveal h2 { margin-top: 1.6rem; }
@media (max-width: 46rem) {
.play-notes-inner { width: min(92vw, 40rem); }
}
.rv {
  opacity: 1; transform: none;
  animation: rv-in 0.6s cubic-bezier(0.19, 1, 0.22, 1) both;
  animation-delay: var(--d, 0s);
}
.rv.rv-wait { opacity: 0; transform: translateY(14px); animation: none; }
.rv.on { animation: none; }
@media (prefers-reduced-motion: reduce) {
.rv, .rv.rv-wait, .rv.on { opacity: 1; transform: none; animation: none; transition: none; }
}
html[data-route-document] .essay { display: block; }
html:not(.js) .essay { display: block; }
@media (max-width: 62rem) {
html:not(.js) .nav .nav-links { display: flex; width: auto; order: 0; }
}
.night a:hover, .topic-night a:hover { color: var(--gold); }
:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 3px; }
.cform input:focus-visible, .cform textarea:focus-visible, .sift:focus-visible {
  outline: 2px solid var(--gold-deep); outline-offset: 2px;
  border-bottom-color: var(--gold);
}
.cform-error {
  color: var(--gold-deep); font-style: italic;
  border-left: 2px solid var(--gold); padding-left: 0.9rem;
}
.cform-fine {
  margin: -0.6rem 0 0; max-width: 32rem;
  font-size: 0.78rem; line-height: 1.55; color: var(--muted);
}
.cform-fine a { color: inherit; text-decoration: underline; }
.cf-gotcha {
  position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden;
}
.sift { font-size: 1.02rem; }
@media (max-width: 68rem) {
html.js .nav-links a { font-size: 0.75rem; letter-spacing: 0.2em; }
}
.plate-fine { font-size: 0.7rem; }
.sky-return { visibility: hidden; }
.sky-return.is-visible { visibility: visible; }
@media (prefers-reduced-motion: no-preference) {
.sky-return { transition: opacity 0.28s ease, transform 0.28s ease,
    visibility 0.28s ease, border-color 0.28s ease; }
}
.cabinet { grid-template-columns: repeat(auto-fill, minmax(min(17rem, 100%), 1fr)); }
@media (max-width: 40rem) {
.pub { grid-template-columns: 1fr; gap: 0.3rem; }
.pub .year { order: -1; }
}
.prose img { width: auto; max-width: 100%; }
:where(.prose, .prose p, .prose li, .pub .meta, .link-roll, .appearance,
  .entry .body, .c-letter .c-body) { overflow-wrap: anywhere; }
@media (prefers-reduced-motion: reduce) {
.piece:hover .pthumb,
  .talkcard:hover .talkthumb img { transform: none; }
}
.now-note { display: block; margin-top: 0.35rem; font-size: 0.78rem;
  font-style: italic; color: var(--muted); }
.now-updated { margin-top: 2rem; font-size: 0.78rem; font-style: italic;
  color: var(--muted); }
.entry-onward { margin-top: 1.8rem; font-size: 0.8rem; }
.entry-onward .sep, .stage-files .sep { margin: 0 0.6rem; opacity: 0.5; }
.stage-files { margin-top: 1.1rem; font-size: 0.78rem; color: var(--night-muted); }
.stage-files a { color: var(--gold); text-decoration: none;
  border-bottom: 1px solid rgba(208, 177, 96, 0.4); }
.stage-files a:hover, .stage-files a:focus-visible { color: #fff0bd; }
.talkgrid-onward { margin-top: 2.4rem; font-size: 0.8rem; }
.talkgrid-onward a { color: var(--gold); text-decoration: none; }
.talkgrid-onward a:hover, .talkgrid-onward a:focus-visible { color: #fff0bd; }
.play-noscript { display: block; padding: 2.5rem 1.5rem; text-align: center;
  color: var(--night-muted); }
.play-noscript a { color: var(--gold); }
@media print {
@page { margin: 2cm; }
html, body { background: #fff !important; color: #000 !important; }
.nav, .plate, .sky-return, .skip-link, .scroll-cue, .starfield,
  .play-toolbar, .play-sequence, .filters, .sift, .press-emblems,
  .aphorism-next, .quotes-cta, .grain::before { display: none !important; }
.night, .plate, .selected-press, .talks-film, .topic-night, .play-room,
  .cover, .stage, .library-hero, .parlour-hero {
    background: #fff !important; color: #000 !important;
  }
.night h1, .night h2, .night h3, .night p, .night li,
  .topic-night h2, .topic-night h3, .topic-night p, .topic-night li,
  .talks-film h2, .talks-film .lede { color: #000 !important; }
a { color: #000 !important; text-decoration: underline; }
.rv, .rv.rv-wait, .rv.on, .essay {
    opacity: 1 !important; transform: none !important; animation: none !important;
  }
.day-hero, .band, figure, blockquote, .piece, .entry, .pub {
    break-inside: avoid;
  }
}
.day-hero .lede, .topic-hero .lede { max-width: min(100%, 92ch); }
.speaker-reel .lede, .talks-film .lede { max-width: none; }
.topic p { max-width: min(100%, 84ch); }
.andrews p { max-width: none; }
body[data-route="standards"] .prose { max-width: none; }
body[data-route="standards"] .prose > :not(h2) { max-width: 62ch; }
.nav, .cover, .plate, .night, .gallery, .stage, .topic-night, .selected-press,
.talks-film, .speaker-reel, .play-room, .library-hero, .parlour-hero,
.andrews, .tt-lab { --gold: #dfc27d; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) { --gold-deep: #d8ba70; }
}
:root[data-theme="dark"] { --gold-deep: #d8ba70; }
.nav .nw-mark { filter: none; }
body[data-route="home"] .nav .nw-mark,
body[data-route="speaking"] .nav .nw-mark,
body[data-route="library"] .nav .nw-mark,
body[data-route="playground"] .nav .nw-mark,
body[data-route="text-inside-text"] .nav .nw-mark,
.nav.scrolled .nw-mark { filter: brightness(1.1) saturate(0.92); }
.nav-links a, .cover .roles, .plate, .plate nav a, .scroll-cue {
  color: #bab5cf;
}
.plate-fine { color: #bab5cf; }
.wayfinding a { border-bottom-color: rgba(208, 177, 96, 0.42); }
.wayfinding a:hover, .wayfinding a:focus-visible { border-color: var(--gold); }
.hub-grid-three .hub-card { text-align: center; }
.hub-grid-three .hub-card .hub-glyph { margin-inline: auto; }
.cabinet .game { justify-items: center; text-align: center; }
.cform button { justify-self: center; }
.press-emblems { max-width: none; gap: 1.6rem 3.4rem; }
.cat-head:has(> .cat-count) { gap: 0.85rem; }
.cat-count {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 0.82rem; font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--gold-deep);
}
.cat-count::before { content: "·\00a0"; opacity: 0.55; }
.cat-head-plain { gap: 0; }
h2, h3, h4, h5, h6,
.numeral, .aphorism,
.plaudit blockquote, .andrews blockquote,
.galley.g-fraunces .g-title {
  font-optical-sizing: auto;
  font-variation-settings: "SOFT" 0, "WONK" 0;
}
.band-head > h2, .volume .v-text h2 {
  font-optical-sizing: none;
  font-variation-settings: "opsz" 144, "SOFT" 0, "WONK" 0;
}
.monogram {
  font-family: "Lora", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: 1rem;
  letter-spacing: 0.1em;
  color: #dcbfa2;
  --gold-deep: #896749;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .monogram { --gold-deep: #dcbfa2; }
}
:root[data-theme="dark"] .monogram { --gold-deep: #dcbfa2; }
.monogram:hover { color: #f0dbc6; }
.about-hero .band-inner {
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 5rem);
}
.about-hero .about-hero-words { display: grid; gap: 1.5rem; align-content: center; }
.about-hero .about-hero-portrait { position: relative; margin: 0; }
.about-hero .about-hero-portrait img {
  display: block; width: 100%; height: auto;
  filter: grayscale(0.15) contrast(1.02);
}
.about-hero .about-hero-portrait::after {
  content: ""; position: absolute; inset: 1.1rem -1.1rem -1.1rem 1.1rem;
  border: 1px solid var(--gold); opacity: 0.55; pointer-events: none;
}
.about-hero .hero-sigil { display: none; }
@media (max-width: 58rem) {
.about-hero .band-inner { grid-template-columns: 1fr; }
.about-hero .about-hero-portrait { max-width: 20rem; }
}
.focus-band { background: var(--paper-2); border-top: 1px solid var(--line); }
.focus-band .band-inner { display: grid; justify-items: center; }
.focus-band .band-head { justify-items: center; text-align: center; margin-bottom: 2rem; }
.focus-band .focus-list { margin-top: 0; width: min(100%, 34rem); }
.focus-band .focus-list li { text-align: center; }
