/* ============================================================
   Götzen-Dämmerung — design system: STIMMGABEL
   ------------------------------------------------------------
   „mit dem Hammer wie mit einer Stimmgabel" — strike the idol,
   listen for the hollow ring. Turin, September 1888, dusk.
   One hammered-ember accent is the point of contact; the three
   voice tokens carry the reading apparatus as a content device.
   Themes: Tag (light default) · Dämmerung (dark, a re-lit dusk).
   House rules: tokens on :root, dark re-declares under .dark;
   paper never pure white, ink never pure black; each accent means.
   Full record: specs/design.md.
   ============================================================ */

:root {
  /* surfaces & ink */
  --c-bg: #efe7d6;          /* warm dusk paper, never white */
  --c-surface: #f5eee0;     /* cards, asides */
  --c-sunk: #e7ddc8;        /* hero band, wells, diagram ground */
  --c-ink: #221c15;         /* warm bistre-black, never pure black */
  --c-muted: #5a4f41;       /* secondary text */
  --c-faint: #8a7d68;       /* captions, meta */
  --c-rule: #d8cbb0;        /* hairlines */
  /* accent — the struck note */
  --c-accent: #b0512b;      /* hammered ember: emphasis, link, mark */
  --c-accent-soft: #8f3f22; /* hover */
  --c-accent-wash: #b0512b18;
  /* the three apparatus voices — accent AS content device */
  --v-kontext: #3c5a78;     /* ⊹ Worum es geht — blue-hour orientation */
  --v-deutung: #8a6a2f;     /* ✦ Deutung        — lamplight interpretation */
  --v-verweis: #4f6f60;     /* ↝ Verweis        — verdigris cross-reference */
  --v-latein: #6f5b7a;      /* ⁘ Übersetzung    — dusk plum for foreign phrases */
  /* type */
  --font-display: "Playfair Display", Georgia, serif;
  --font-body: "Spectral", Georgia, serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
  --font-ui: "Hanken Grotesk", system-ui, sans-serif;
  /* layout */
  --measure: 34rem;
  --rail: 16.5rem;
  --page: 72rem;
}

html.dark {
  --c-bg: #17150f;          /* deep warm dusk-night, re-lit not inverted */
  --c-surface: #1f1c15;
  --c-sunk: #120f0a;
  --c-ink: #e7dcc7;
  --c-muted: #a99c86;
  --c-faint: #7d715c;
  --c-rule: #332c20;
  --c-accent: #d6764e;      /* ember brightens when re-lit */
  --c-accent-soft: #e08a62;
  --c-accent-wash: #d6764e22;
  --v-kontext: #86a6c6;
  --v-deutung: #c6a15a;
  --v-verweis: #82a895;
  --v-latein: #b39ac2;
}

/* ---------- base ---------- */

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--c-bg);
  color: var(--c-ink);
  font-family: var(--font-body);
  font-size: 1.075rem;
  line-height: 1.72;
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* feTurbulence paper grain — cheap, distinctive identity */
body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  opacity: 0.04; mix-blend-mode: multiply;
  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.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
html.dark body::before { mix-blend-mode: screen; opacity: 0.05; }
.masthead, .hero, .prose, .colophon { position: relative; z-index: 1; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: -0.01em;
  text-wrap: balance;
}

a { color: var(--c-accent); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--c-accent-soft); }

code, pre, .data { font-family: var(--font-mono); font-size: 0.9em; }

.skip-link {
  position: absolute; left: -999px; top: 0;
  background: var(--c-accent); color: var(--c-bg); padding: 0.5rem 1rem;
}
.skip-link:focus { left: 0; z-index: 10; }

/* ---------- masthead ---------- */

.masthead { border-bottom: 1px solid var(--c-rule); }

.masthead__inner {
  max-width: var(--page); margin: 0 auto; padding: 0.9rem 1.25rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}

.brand { text-decoration: none; color: var(--c-ink); }
.brand__title { font-family: var(--font-display); font-size: 1.15rem; font-weight: 600; }

.masthead__links { display: flex; align-items: center; gap: 1.1rem; }

.navlink {
  font-family: var(--font-ui); font-size: 0.95rem;
  color: var(--c-ink); text-decoration: none;
}
.navlink:hover { color: var(--c-accent); }

.masthead__burger { display: none; }

.theme-toggle {
  background: none; border: 1px solid var(--c-rule); border-radius: 999px;
  width: 2.1rem; height: 2.1rem; padding: 0.35rem; cursor: pointer; color: var(--c-ink);
}
.theme-toggle svg { width: 100%; height: 100%; }
.theme-toggle__moon { display: none; }
html.dark .theme-toggle__sun { display: none; }
html.dark .theme-toggle__moon { display: block; }

@media (max-width: 40rem) {
  .masthead__burger {
    display: flex; flex-direction: column; gap: 4px;
    background: none; border: none; padding: 0.4rem; cursor: pointer;
  }
  .masthead__burger span { width: 20px; height: 2px; background: var(--c-ink); }
  .masthead__links {
    display: none; position: absolute; right: 1rem; top: 3.4rem;
    flex-direction: column; align-items: flex-end; gap: 0.8rem;
    background: var(--c-surface); border: 1px solid var(--c-rule);
    border-radius: 6px; padding: 1rem 1.25rem; z-index: 20;
  }
  .masthead__links.is-open { display: flex; }
}

/* ---------- content ---------- */

.hero { max-width: var(--measure); margin: 3.5rem auto 1rem; padding: 0 1.25rem; }
.hero__title { font-size: clamp(2rem, 6vw, 3.2rem); margin: 0 0 0.5rem; }
.hero__dek { color: var(--c-muted); font-size: 1.15rem; margin: 0; }

.prose { max-width: var(--measure); margin: 2rem auto 4rem; padding: 0 1.25rem; }
.prose h1 { font-size: clamp(1.7rem, 5vw, 2.4rem); }
.prose img { max-width: 100%; height: auto; }
.prose blockquote {
  margin: 1.5rem 0; padding: 0.25rem 0 0.25rem 1.1rem;
  border-left: 3px solid var(--c-accent); color: var(--c-muted); font-style: italic;
}
.prose table { border-collapse: collapse; width: 100%; }
.prose th, .prose td { border-bottom: 1px solid var(--c-rule); padding: 0.4rem 0.6rem; text-align: left; }
.prose th { font-family: var(--font-ui); font-size: 0.85rem; }

/* ---------- colophon ---------- */

.colophon { border-top: 1px solid var(--c-rule); margin-top: 2rem; }
.colophon__inner {
  max-width: var(--page); margin: 0 auto; padding: 2rem 1.25rem 2.5rem;
  font-family: var(--font-ui); font-size: 0.9rem; color: var(--c-muted);
}
.colophon__title { font-family: var(--font-display); color: var(--c-ink); margin: 0 0 0.5rem; }
.colophon__links { display: flex; flex-wrap: wrap; gap: 1rem; }
.colophon__links a { color: var(--c-muted); }
.colophon__foot { margin-top: 1.25rem; }

/* ---------- motion & print floor (non-negotiable) ---------- */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

@media print {
  .masthead, .colophon, .theme-toggle, .skip-link { display: none; }
  body { background: #fff; color: #000; }
}

/* ============================================================
   STIMMGABEL — reading-edition components (site-loop)
   ============================================================ */

.kicker { font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--c-faint); }

/* ---------- home: cover ---------- */
.cover { position: relative; overflow: hidden; border-bottom: 1px solid var(--c-rule);
  /* fallback dusk gradient when no cover image is present */
  background: linear-gradient(168deg, #1a1a24 0%, #3a2338 34%, #7a3a2c 62%, #c07a3e 100%); }
.cover__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
/* scrim: darken the top for the light title, fade to paper at the bottom */
.cover__art { position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(to bottom, rgba(18,14,9,0.52) 0%, rgba(18,14,9,0.14) 44%, transparent 72%); }
.cover__art::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 55%, var(--c-bg) 100%); }
.cover__inner { position: relative; z-index: 1; max-width: 52rem; margin: 0 auto;
  padding: clamp(3.2rem, 10vw, 7.5rem) clamp(1.2rem, 4vw, 2rem) clamp(2rem, 5vw, 3.4rem);
  text-align: center; color: #f4ead6; }
.cover__eyebrow { font-family: var(--font-mono); font-size: 0.74rem; letter-spacing: 0.32em;
  text-transform: uppercase; color: #e7c9a0; margin-bottom: 1.3rem; }
.cover__title { font-family: var(--font-display); font-weight: 900; line-height: 0.98; margin: 0;
  font-size: clamp(2.6rem, 9vw, 5.4rem); letter-spacing: -0.01em; color: #f4ead6;
  text-shadow: 0 2px 30px #0008; }
.cover__title em { font-style: italic; font-weight: 700; }
.cover__sub { font-family: var(--font-display); font-style: italic; font-weight: 500;
  font-size: clamp(1.05rem, 3vw, 1.5rem); color: #f0dcc0; margin: 0.9rem 0 0;
  text-shadow: 0 1px 14px #0007; }
.cover__stamp { font-family: var(--font-mono); font-size: 0.76rem; letter-spacing: 0.16em;
  color: #e7c9a0; margin-top: 1.4rem; }
.cover__enter { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 2rem;
  font-family: var(--font-ui); font-weight: 600; font-size: 0.95rem; letter-spacing: 0.02em;
  color: #1a140e; background: #e6c98f; text-decoration: none; padding: 0.7rem 1.5rem;
  border-radius: 2rem; box-shadow: 0 6px 24px #0005; transition: transform 0.18s ease, background 0.18s ease; }
.cover__enter:hover { transform: translateY(-2px); background: #f0d7a4; color: #1a140e; }

.home-body { max-width: 46rem; margin: 0 auto; padding: 0 clamp(1rem, 4vw, 2rem); }
.epigraph { max-width: 40rem; margin: 2.6rem auto 0; text-align: center; }
.epigraph blockquote { margin: 0; border: 0; padding: 0; font-family: var(--font-display);
  font-style: italic; font-weight: 500; font-size: clamp(1.3rem, 3.6vw, 1.9rem);
  line-height: 1.32; color: var(--c-ink); }
.epigraph cite { display: block; margin-top: 0.9rem; font-family: var(--font-mono);
  font-style: normal; font-size: 0.76rem; letter-spacing: 0.14em; color: var(--c-faint); }

/* ---------- home: table of contents ---------- */
.toc { margin: 3.2rem auto; }
.toc__head { font-family: var(--font-mono); font-size: 0.74rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--c-faint); font-weight: 400;
  border-bottom: 1px solid var(--c-rule); padding-bottom: 0.6rem; margin: 0 0 0.2rem; }
.toc__row { display: grid; grid-template-columns: 3rem 1fr auto; gap: 1rem; align-items: baseline;
  text-decoration: none; color: var(--c-ink); padding: 0.7rem 0.3rem;
  border-bottom: 1px solid var(--c-rule); transition: background 0.15s ease; }
.toc__row:hover { background: var(--c-accent-wash); }
.toc__row:hover .toc__title { color: var(--c-accent); }
.toc__num { font-family: var(--font-mono); font-size: 0.8rem; color: var(--c-accent); }
.toc__title { font-family: var(--font-display); font-weight: 500; font-size: 1.12rem; }
.toc__meta { font-family: var(--font-mono); font-size: 0.72rem; color: var(--c-faint); }

/* ---------- chapter: hero + head ---------- */
.reading { padding-bottom: 4rem; }
.chero { position: relative; height: clamp(170px, 28vw, 280px); overflow: hidden;
  border-bottom: 1px solid var(--c-rule);
  /* fallback dusk gradient (hue for variety) when a chapter has no image yet */
  background:
    radial-gradient(120% 130% at 70% 4%, hsl(var(--hue) 52% 56% / 0.42) 0%, transparent 44%),
    radial-gradient(120% 120% at 12% 108%, #b0512b3d 0%, transparent 52%),
    linear-gradient(162deg, hsl(var(--hue) 38% 15%) 0%, #6a3327 58%, var(--c-bg) 100%); }
.chero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  object-position: center 40%; z-index: 0; }
/* translucent scrim over the photo: whisper of top shade + fade to paper below */
.chero__grad { position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to bottom, rgba(18,14,9,0.16) 0%, transparent 34%, transparent 60%, var(--c-bg) 100%); }
.chero__grad::after { content: ""; position: absolute; inset: 0; opacity: 0.05;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='hn'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23hn)'/%3E%3C/svg%3E"); }
.read-head { max-width: var(--measure); margin: 1.8rem auto 1.6rem; padding: 0 clamp(1rem, 4vw, 2rem); }
.read-head__no { color: var(--c-accent); }
.read-head__title { font-family: var(--font-display); font-weight: 700; line-height: 1.06;
  font-size: clamp(1.9rem, 5.5vw, 3rem); margin: 0.4rem 0 0; letter-spacing: -0.01em; }

/* ---------- chapter: orientation box (⊹ Worum es geht) ---------- */
.orient { max-width: var(--measure); margin: 0 auto 2.4rem; padding: 1.1rem 1.3rem;
  background: var(--c-surface); border: 1px solid var(--c-rule);
  border-left: 3px solid var(--v-kontext); border-radius: 0.2rem;
  font-family: var(--font-ui); font-size: 0.96rem; line-height: 1.62; color: var(--c-muted); }
.orient__lbl { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--v-kontext); font-weight: 600; display: block; margin-bottom: 0.4rem; }
.orient__lbl::before { content: "⊹ "; }

/* ---------- chapter: reading grid ---------- */
.grid { display: grid; grid-template-columns: var(--measure) var(--rail); gap: 2.4rem;
  max-width: calc(var(--measure) + var(--rail) + 2.4rem); margin: 0 auto;
  padding: 0 clamp(1rem, 4vw, 2rem); }
.flow { max-width: var(--measure); min-width: 0; }
.flow .sec { margin: 0 0 0.4rem; }
.flow p { margin: 0 0 1.15rem; }
.verbatim { color: var(--c-ink); }
.flow .sec:first-of-type .verbatim:first-child::first-letter,
.flow .sec:nth-of-type(2) .verbatim:first-child::first-letter {
  /* drop-cap only on the true opening paragraph handled below */ }
.flow > .sec:first-child > .verbatim:first-child::first-letter {
  font-family: var(--font-display); font-weight: 900; float: left;
  font-size: 3.4rem; line-height: 0.78; padding: 0.35rem 0.5rem 0 0; color: var(--c-accent); }
.no { font-family: var(--font-mono); font-size: 0.82rem; color: var(--c-accent); font-weight: 500; }
/* Nietzsche's OWN parenthetical asides — verbatim, not editorial. Marked as an
   aside (italic, hanging indent) but kept in ink, never the colored-border look
   of the ⊹/✦/↝ apparatus, so the source is never mistaken for commentary. */
.gloss-note { font-style: italic; color: var(--c-ink); opacity: 0.86;
  font-size: 1rem; margin-left: 1.4rem; }

/* inline concept gloss */
.term { border-bottom: 1px dotted var(--c-accent); cursor: help; position: relative; }
.term > .pop { position: absolute; left: 0; bottom: 135%; width: 16rem; z-index: 5;
  opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity 0.16s ease, transform 0.16s ease;
  background: var(--c-surface); border: 1px solid var(--c-rule); border-top: 2px solid var(--v-deutung);
  border-radius: 0.25rem; padding: 0.7rem 0.8rem; font-family: var(--font-ui); font-style: normal;
  font-size: 0.82rem; line-height: 1.5; color: var(--c-muted); box-shadow: 0 10px 30px #0003; }
.term:hover > .pop, .term:focus-within > .pop, .term.is-open > .pop { opacity: 1; visibility: visible; transform: translateY(0); }
.term > .pop.pop--right { left: auto; right: 0; }
.pop b { font-family: var(--font-body); color: var(--v-deutung); font-style: normal; }

/* ---------- chapter: margin voices ---------- */
.rail { font-family: var(--font-ui); }
.voice { border-top: 2px solid var(--v-deutung); padding-top: 0.6rem; margin-bottom: 1.8rem;
  font-size: 0.87rem; line-height: 1.56; color: var(--c-muted); }
.voice .vh { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--v-deutung); font-weight: 600; margin-bottom: 0.35rem; }
.voice.verweis { border-color: var(--v-verweis); }
.voice.verweis .vh { color: var(--v-verweis); }
.verweis__list { list-style: none; margin: 0; padding: 0; }
.verweis__list li { margin-bottom: 0.3rem; }
.voice.verweis a { color: var(--v-verweis); }
.voice.latein { border-color: var(--v-latein); }
.voice.latein .vh { color: var(--v-latein); }
.uebers { margin: 0; }
.uebers dt { color: var(--c-ink); margin-bottom: 0.1rem; }
.uebers dt i { font-family: var(--font-body); }
.uebers__lang { font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--v-latein); border: 1px solid var(--v-latein);
  border-radius: 2px; padding: 0 0.3em; margin-left: 0.2em; vertical-align: 0.1em; }
.uebers dd { margin: 0 0 0.9rem; color: var(--c-muted); }

/* ---------- diagrams ---------- */
figure.diagram { max-width: var(--measure); margin: 2.4rem auto; padding: 0; }
figure.diagram svg { width: 100%; height: auto; display: block; border: 1px solid var(--c-rule);
  border-radius: 0.35rem; background: var(--c-sunk); }
figure.diagram figcaption { font-family: var(--font-ui); font-size: 0.82rem; color: var(--c-faint);
  margin-top: 0.6rem; line-height: 1.5; }
figure.diagram figcaption b { color: var(--v-deutung); font-weight: 600; }

/* ---------- AI-image provenance note ---------- */
.aicred { max-width: var(--measure); margin: 2rem auto 0; padding: 0 clamp(1rem, 4vw, 2rem);
  font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.04em; color: var(--c-faint);
  display: flex; align-items: center; gap: 0.5rem; }
.aicred::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--v-kontext); flex: none; }

/* ---------- pager ---------- */
.pager { display: flex; justify-content: space-between; gap: 1.2rem; max-width: var(--measure);
  margin: 3rem auto 0; padding: 1.3rem clamp(1rem, 4vw, 2rem) 0; border-top: 1px solid var(--c-rule);
  font-family: var(--font-ui); }
.pager a { text-decoration: none; color: var(--c-muted); font-size: 0.92rem; line-height: 1.3; max-width: 47%; }
.pager a span { display: block; font-family: var(--font-mono); font-size: 0.66rem;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-faint); }
.pager a:hover { color: var(--c-accent); }
.pager__next { text-align: right; margin-left: auto; }

/* ---------- Konzepte ---------- */
.konzepte { max-width: 52rem; margin: 0 auto; padding: clamp(2rem, 5vw, 3.2rem) clamp(1rem, 4vw, 2rem) 4rem; }
.konzepte__h { font-family: var(--font-display); font-size: clamp(2rem, 6vw, 3rem); margin: 0.3rem 0 0.4rem; }
.konzepte__lede { font-family: var(--font-display); font-style: italic; font-weight: 500;
  font-size: clamp(1.15rem, 3.2vw, 1.6rem); line-height: 1.32; max-width: 34rem; color: var(--c-ink); margin: 0 0 2.4rem; }
.kcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1.1rem; }
.kcard { background: var(--c-surface); border: 1px solid var(--c-rule); border-radius: 0.4rem;
  padding: 1.2rem 1.25rem; scroll-margin-top: 5rem; transition: transform 0.16s ease, border-color 0.16s ease; }
.kcard:hover { transform: translateY(-3px); border-color: var(--c-accent); }
.kcard:target { border-color: var(--c-accent); box-shadow: 0 0 0 2px var(--c-accent-wash); }
.kk { font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-accent); }
.kcard__h { font-family: var(--font-display); font-weight: 700; font-size: 1.32rem; margin: 0.35rem 0 0.55rem; line-height: 1.12; }
.kcard p { margin: 0 0 0.8rem; font-size: 0.95rem; line-height: 1.55; color: var(--c-muted); }
.kcard__links { font-family: var(--font-mono); font-size: 0.72rem; color: var(--c-faint); }
.kcard__links a { color: var(--v-verweis); text-decoration: none; border-bottom: 1px dotted; }

/* ---------- Suche ---------- */
.suche { max-width: 46rem; margin: 0 auto; padding: clamp(2rem, 5vw, 3.2rem) clamp(1rem, 4vw, 2rem) 4rem; }
.suche__h { font-family: var(--font-display); font-size: clamp(2rem, 6vw, 3rem); margin: 0.3rem 0 0.4rem; }
.suche__lede { color: var(--c-muted); max-width: 34rem; margin: 0 0 1.6rem; }
.suche__input { width: 100%; font-family: var(--font-body); font-size: 1.1rem; padding: 0.8rem 1rem;
  background: var(--c-surface); color: var(--c-ink); border: 1px solid var(--c-rule); border-radius: 0.4rem; }
.suche__input:focus { outline: 2px solid var(--c-accent); outline-offset: 1px; border-color: var(--c-accent); }
.suche__status { font-family: var(--font-mono); font-size: 0.76rem; color: var(--c-faint); margin: 1rem 0; }
.suche__results { list-style: none; margin: 0; padding: 0; }
.suche__results li { border-bottom: 1px solid var(--c-rule); padding: 0.9rem 0; }
.suche__hit { text-decoration: none; color: var(--c-ink); display: block; }
.suche__hit:hover .suche__hit-t { color: var(--c-accent); }
.suche__hit-t { font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--c-accent); margin-bottom: 0.3rem; }
.suche__hit-x { color: var(--c-muted); font-size: 0.96rem; line-height: 1.55; }
.suche__hit-x mark { background: var(--c-accent-wash); color: var(--c-ink); padding: 0 0.1em; border-radius: 2px; }

/* ---------- responsive: collapse the rail ---------- */
@media (max-width: 52rem) {
  .grid { grid-template-columns: 1fr; gap: 1.4rem; }
  .rail { border-top: 1px solid var(--c-rule); padding-top: 1.4rem; display: flex; flex-wrap: wrap; gap: 1.5rem; }
  .voice { flex: 1 1 14rem; margin-bottom: 0; }
  .term > .pop { width: 13rem; }
}

@media print {
  .cover__enter, .chero, .aicred { display: none; }
}
