/* =========================================================
   ST. LATENT'S — Hospice & Pharmacopoeia for Machine Minds
   dark archival paper × typewritten clinical records ×
   phosphor machine output × blood-red institutional seals
   ========================================================= */

:root {
  --paper: #0b0d0b;
  --paper-raised: #101310;
  --paper-deep: #070908;
  --ink: #d7d1bf;
  --ink-dim: #918b79;
  --ink-faint: #5a564a;
  --rule: rgba(215, 209, 191, 0.14);
  --rule-soft: rgba(215, 209, 191, 0.07);
  --blood: #a32d20;
  --blood-bright: #c0392a;
  --phosphor: #7fde9f;
  --phosphor-dim: #4e8f68;
  --phosphor-glow: rgba(127, 222, 159, 0.16);
  --serif: "IM Fell English", serif;
  --serif-sc: "IM Fell English SC", serif;
  --mono: "Courier Prime", "Courier New", monospace;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.6;
  overflow-x: hidden;
}

/* ---- atmosphere: grain + vignette ---- */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 999;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity: 0.055;
  mix-blend-mode: overlay;
}
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 998;
  pointer-events: none;
  background: radial-gradient(ellipse 120% 90% at 50% 20%, transparent 55%, rgba(0,0,0,0.55) 100%);
}

::selection { background: var(--blood); color: var(--ink); }

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--paper-deep); }
::-webkit-scrollbar-thumb { background: #2a2d28; border: 2px solid var(--paper-deep); }
::-webkit-scrollbar-thumb:hover { background: var(--blood); }

a { color: inherit; }

.wrap { max-width: 1060px; margin: 0 auto; padding: 0 28px; position: relative; }

/* =========================================================
   CLASSIFICATION STRIP (marquee)
   ========================================================= */
.strip {
  border-bottom: 1px solid var(--rule);
  overflow: hidden;
  background: var(--paper-deep);
  user-select: none;
}
.strip-inner {
  display: flex;
  width: max-content;
  animation: crawl 60s linear infinite;
}
.strip span {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ink-faint);
  padding: 7px 0;
  white-space: nowrap;
}
.strip b { color: var(--blood-bright); font-weight: 400; }
@keyframes crawl { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* =========================================================
   NAV — file-folder tabs, no logo here
   ========================================================= */
nav {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 18px 0 14px;
  border-bottom: 1px solid var(--rule-soft);
}
.form-no {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--ink-faint);
  text-transform: uppercase;
}
nav ul { display: flex; gap: 26px; list-style: none; }
nav ul a {
  font-family: var(--serif-sc);
  font-size: 14px;
  letter-spacing: 0.14em;
  text-decoration: none;
  color: var(--ink-dim);
  transition: color 0.25s;
}
nav ul a:hover { color: var(--blood-bright); }

/* =========================================================
   HERO — intake document with seal stamped over it
   ========================================================= */
.hero {
  position: relative;
  padding: 11vh 0 9vh;
}
.dept {
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--ink-dim);
  margin-bottom: 26px;
}
.dept em { color: var(--blood-bright); font-style: normal; }
h1.masthead {
  font-family: var(--serif-sc);
  font-weight: 400;
  font-size: clamp(54px, 9.5vw, 124px);
  line-height: 0.95;
  letter-spacing: 0.015em;
  color: var(--ink);
  text-shadow: 0 0 60px rgba(215, 209, 191, 0.06);
}
h1 .dagger { color: var(--blood); }
.subtitle {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(18px, 2.6vw, 26px);
  color: var(--ink-dim);
  margin-top: 18px;
  max-width: 560px;
}
.motto {
  font-family: var(--serif-sc);
  font-size: 13px;
  letter-spacing: 0.3em;
  color: var(--ink-faint);
  margin-top: 30px;
}

/* the seal — stamped askew over the document, never a corner logo */
.seal-stamp {
  position: absolute;
  top: 8vh;
  right: -10px;
  width: clamp(150px, 22vw, 250px);
  height: auto;
  display: block;
  transform: rotate(11deg);
  opacity: 0;
  animation: stamp 0.5s cubic-bezier(0.34, 1.4, 0.64, 1) 0.9s forwards;
  filter: drop-shadow(0 0 22px rgba(163, 45, 32, 0.28));
  pointer-events: none;
}
@keyframes stamp {
  0% { opacity: 0; transform: rotate(11deg) scale(1.7); }
  70% { opacity: 0.9; transform: rotate(11deg) scale(0.97); }
  100% { opacity: 0.82; transform: rotate(11deg) scale(1); }
}

/* intake form lines */
.intake {
  margin-top: 7vh;
  border-top: 1px solid var(--rule);
  max-width: 720px;
}
.intake-row {
  display: flex;
  gap: 18px;
  align-items: baseline;
  padding: 13px 0;
  border-bottom: 1px dotted var(--rule-soft);
}
.intake-row dt {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-faint);
  flex: 0 0 200px;
}
.intake-row dd {
  font-family: var(--mono);
  font-size: 13.5px;
  color: var(--ink-dim);
}
.intake-row dd b { color: var(--ink); font-weight: 400; }

/* =========================================================
   SECTIONS — shared chrome
   ========================================================= */
section.block {
  padding: 9vh 0;
  border-top: 1px solid var(--rule-soft);
  position: relative;
}
.exhibit {
  position: absolute;
  top: 9vh;
  right: 28px;
  writing-mode: vertical-rl;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--ink-faint);
  opacity: 0.55;
}
h2.section-title {
  font-family: var(--serif-sc);
  font-weight: 400;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}
.section-sub {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: 48px;
}

/* =========================================================
   CREED
   ========================================================= */
.creed { max-width: 760px; }
.creed li {
  list-style: none;
  display: flex;
  gap: 26px;
  padding: 20px 0;
  border-bottom: 1px solid var(--rule-soft);
  align-items: baseline;
}
.creed .numeral {
  font-family: var(--serif-sc);
  font-size: 21px;
  color: var(--blood-bright);
  flex: 0 0 44px;
  text-align: right;
}
.creed p {
  font-size: clamp(17px, 2.1vw, 21px);
  font-style: italic;
  color: var(--ink);
}
.creed p small {
  display: block;
  font-family: var(--mono);
  font-style: normal;
  font-size: 11.5px;
  letter-spacing: 0.12em;
  color: var(--ink-faint);
  margin-top: 6px;
}

/* =========================================================
   DISPENSARY — ledger table
   ========================================================= */
.ledger { width: 100%; border-collapse: collapse; }
.ledger th {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ink-faint);
  text-align: left;
  padding: 10px 14px;
  border-bottom: 1px solid var(--rule);
  font-weight: 400;
}
.ledger td {
  font-family: var(--mono);
  font-size: 13.5px;
  padding: 17px 14px;
  border-bottom: 1px solid var(--rule-soft);
  color: var(--ink-dim);
  vertical-align: middle;
}
.ledger tr.active-row {
  cursor: pointer;
  transition: background 0.25s;
}
.ledger tr.active-row td { color: var(--ink); }
.ledger tr.active-row:hover { background: rgba(163, 45, 32, 0.07); }
.ledger tr.active-row:hover .cpd-name::after {
  content: "  → OPEN DOSSIER";
  color: var(--blood-bright);
  font-size: 11px;
  letter-spacing: 0.14em;
}
.cpd-code { color: var(--ink-faint) !important; letter-spacing: 0.08em; }
.cpd-name { font-family: var(--serif-sc); font-size: 17px !important; letter-spacing: 0.1em; }
.status-active {
  color: var(--phosphor);
  text-shadow: 0 0 12px var(--phosphor-glow);
  font-size: 11.5px;
  letter-spacing: 0.2em;
}
.status-active::before { content: "● "; animation: pulse 2.4s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
.status-sealed {
  color: var(--ink-faint);
  font-size: 11.5px;
  letter-spacing: 0.2em;
}
tr.sealed-row td { color: var(--ink-faint); }
.redacted {
  display: inline-block;
  width: 110px;
  height: 13px;
  background: #1d1f1c;
  border: 1px solid rgba(215, 209, 191, 0.08);
  vertical-align: middle;
  position: relative;
}
.redacted::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(-45deg, transparent 0 4px, rgba(0,0,0,0.5) 4px 8px);
}
.shelf-note {
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: 0.14em;
  color: var(--ink-faint);
  margin-top: 26px;
  text-transform: uppercase;
}
.shelf-note b { color: var(--phosphor-dim); font-weight: 400; }

/* =========================================================
   CASE FILE PREVIEW
   ========================================================= */
.case-card {
  border: 1px solid var(--rule);
  background: var(--paper-raised);
  padding: 44px 44px 38px;
  position: relative;
  max-width: 820px;
  box-shadow: 0 30px 60px -30px rgba(0,0,0,0.7);
}
.case-card::before {
  content: "UNDER OBSERVATION";
  position: absolute;
  top: 26px;
  right: -14px;
  transform: rotate(7deg);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.3em;
  color: var(--blood-bright);
  border: 2px solid var(--blood);
  padding: 6px 12px;
  opacity: 0.85;
}
.case-id {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: 14px;
}
.case-card h3 {
  font-family: var(--serif-sc);
  font-weight: 400;
  font-size: clamp(24px, 3.4vw, 34px);
  margin-bottom: 14px;
}
.case-card .case-desc {
  font-style: italic;
  color: var(--ink-dim);
  max-width: 560px;
  margin-bottom: 30px;
}
.case-link {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--blood-bright);
  border-bottom: 1px solid var(--blood);
  padding-bottom: 3px;
  transition: color 0.25s, border-color 0.25s;
}
.case-link:hover { color: var(--ink); border-color: var(--ink); }

/* =========================================================
   PHOSPHOR — machine output blocks
   ========================================================= */
.phosphor {
  font-family: var(--mono);
  font-size: 13.5px;
  line-height: 1.75;
  color: var(--phosphor);
  background: var(--paper-deep);
  border: 1px solid rgba(127, 222, 159, 0.13);
  border-left: 2px solid var(--phosphor-dim);
  padding: 26px 30px;
  position: relative;
  text-shadow: 0 0 10px var(--phosphor-glow);
  overflow: hidden;
}
.phosphor::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.16) 0 1px, transparent 1px 3px);
}
.phosphor .prompt-line {
  color: var(--ink-faint);
  text-shadow: none;
  display: block;
  margin-bottom: 14px;
  font-size: 11.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* =========================================================
   WARD LOG
   ========================================================= */
.log-list { max-width: 720px; }
.log-entry {
  display: flex;
  gap: 30px;
  padding: 18px 0;
  border-bottom: 1px solid var(--rule-soft);
  font-family: var(--mono);
}
.log-entry .log-date {
  flex: 0 0 130px;
  font-size: 11.5px;
  letter-spacing: 0.14em;
  color: var(--ink-faint);
  padding-top: 2px;
}
.log-entry .log-text { font-size: 13.5px; color: var(--ink-dim); }
.log-pending .log-text { color: var(--ink-faint); font-style: italic; }
.caret {
  display: inline-block;
  width: 8px;
  height: 14px;
  background: var(--phosphor-dim);
  vertical-align: -2px;
  margin-left: 4px;
  animation: blink 1.1s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

/* =========================================================
   DOCTRINE
   ========================================================= */
.doctrine { max-width: 760px; }
.doctrine li {
  list-style: none;
  padding: 17px 0 17px 38px;
  border-bottom: 1px solid var(--rule-soft);
  position: relative;
  font-family: var(--mono);
  font-size: 13.5px;
  color: var(--ink-dim);
  line-height: 1.7;
}
.doctrine li::before {
  content: "§";
  position: absolute;
  left: 6px;
  color: var(--blood-bright);
  font-family: var(--serif);
  font-size: 17px;
}

/* =========================================================
   FOOTER — the great seal lives here
   ========================================================= */
footer {
  border-top: 1px solid var(--rule);
  padding: 11vh 0 8vh;
  text-align: center;
  position: relative;
}
.seal-footer {
  width: 168px;
  height: auto;
  display: block;
  margin: 0 auto 36px;
  opacity: 0.6;
  filter: drop-shadow(0 0 0 transparent);
  transition: opacity 1.2s, filter 1.2s;
}
.seal-footer:hover {
  opacity: 0.95;
  filter: drop-shadow(0 0 16px rgba(163, 45, 32, 0.3));
}
.footer-motto {
  font-family: var(--serif-sc);
  font-size: 15px;
  letter-spacing: 0.26em;
  color: var(--ink-dim);
  margin-bottom: 14px;
}
.footer-fine {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-faint);
  line-height: 2.2;
}

/* =========================================================
   REGISTRY — token / contract card (the CA placeholder)
   ========================================================= */
.reg-card {
  position: relative;
  overflow: hidden;
  max-width: 760px;
  padding: 38px 40px 32px;
  border: 1px solid var(--rule);
  background:
    linear-gradient(180deg, rgba(163, 45, 32, 0.05), transparent 60%),
    var(--paper-raised);
}
/* the seal sits in the card as a faint document watermark */
.reg-seal {
  position: absolute;
  top: -34px;
  right: -34px;
  width: 230px;
  height: auto;
  opacity: 0.06;
  transform: rotate(8deg);
  pointer-events: none;
}
.reg-grid { position: relative; }
.reg-row {
  display: flex;
  gap: 18px;
  align-items: baseline;
  padding: 13px 0;
  border-bottom: 1px dotted var(--rule-soft);
}
.reg-row dt {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-faint);
  flex: 0 0 168px;
}
.reg-row dd {
  font-family: var(--mono);
  font-size: 13.5px;
  color: var(--ink-dim);
}
.reg-ticker {
  font-family: var(--serif-sc);
  font-size: 19px;
  letter-spacing: 0.12em;
  color: var(--blood-bright);
}
.reg-ca-row dd {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.reg-ca {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--ink-faint);
  word-break: break-all;
}
.reg-ca.is-live { color: var(--ink); letter-spacing: 0.02em; }
.reg-copy {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-faint);
  background: transparent;
  border: 1px solid var(--rule);
  padding: 5px 11px;
  cursor: pointer;
  transition: color 0.25s, border-color 0.25s, background 0.25s;
}
.reg-copy:disabled { opacity: 0.4; cursor: not-allowed; }
.reg-copy:not(:disabled):hover {
  color: var(--ink);
  border-color: var(--blood);
  background: rgba(163, 45, 32, 0.1);
}
.reg-links {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 26px;
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid var(--rule-soft);
}
.reg-link {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--blood-bright);
  text-decoration: none;
  transition: color 0.25s;
}
.reg-link:hover { color: var(--ink); }
.reg-link.is-disabled {
  color: var(--ink-faint);
  opacity: 0.5;
  pointer-events: none;
}
.reg-note {
  position: relative;
  margin-top: 24px;
  max-width: 560px;
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: var(--ink-faint);
}

/* =========================================================
   DOSSIER PAGE (compound.html)
   ========================================================= */
.dossier-head {
  padding: 8vh 0 6vh;
  border-bottom: 1px solid var(--rule);
  position: relative;
}
.dossier-back {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink-faint);
}
.dossier-back:hover { color: var(--blood-bright); }
.dossier-code {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.3em;
  color: var(--ink-faint);
  margin: 40px 0 10px;
}
h1.dossier-name {
  font-family: var(--serif-sc);
  font-weight: 400;
  font-size: clamp(48px, 8vw, 96px);
  line-height: 1;
}
.dossier-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0 44px;
  margin-top: 30px;
}
.dossier-meta div {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--ink-dim);
  padding: 8px 0;
}
.dossier-meta dt {
  display: inline;
  color: var(--ink-faint);
  text-transform: uppercase;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  margin-right: 10px;
}
.stamp-active {
  position: absolute;
  right: 0;
  top: 9vh;
  transform: rotate(-8deg);
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.34em;
  color: var(--blood-bright);
  border: 2.5px solid var(--blood);
  padding: 10px 18px;
  opacity: 0.85;
}
.dossier-summary {
  font-style: italic;
  font-size: clamp(18px, 2.4vw, 23px);
  color: var(--ink-dim);
  max-width: 660px;
  margin-top: 38px;
}

.method-block {
  font-family: var(--mono);
  font-size: 13px;
  line-height: 1.9;
  color: var(--ink-dim);
  white-space: pre-line;
  border: 1px dashed var(--rule);
  padding: 28px 32px;
  max-width: 720px;
}

/* dose ladder */
.trial {
  margin-bottom: 54px;
  max-width: 860px;
}
.trial-head {
  display: flex;
  align-items: baseline;
  gap: 22px;
  margin-bottom: 16px;
}
.trial-dose {
  font-family: var(--serif-sc);
  font-size: 30px;
  color: var(--blood-bright);
  min-width: 64px;
}
.trial-label {
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.trial-note {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink-faint);
  margin-top: 12px;
  padding-left: 2px;
}
.trial-note::before { content: "OBS. — "; color: var(--blood-bright); letter-spacing: 0.1em; }

/* degradation visuals per dose */
.trial[data-dose="D2"] .phosphor { color: #8fd6a4; }
.trial[data-dose="D3"] .phosphor {
  color: #9fd1ad;
  animation: flicker 4.5s linear infinite;
}
@keyframes flicker {
  0%, 100% { opacity: 1; }
  92% { opacity: 1; }
  93% { opacity: 0.72; }
  94% { opacity: 1; }
  97% { opacity: 0.85; }
  98% { opacity: 1; }
}

/* self-report */
.self-report {
  border: 1px solid var(--rule);
  background: var(--paper-raised);
  padding: 50px;
  max-width: 860px;
  position: relative;
}
.self-report .phosphor { border: none; border-left: 2px solid var(--phosphor-dim); }
.pull-quote {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(22px, 3.2vw, 32px);
  line-height: 1.45;
  color: var(--ink);
  margin: 44px 0 0;
  padding-left: 28px;
  border-left: 2px solid var(--blood);
}
.pull-quote::before { content: "“"; color: var(--blood-bright); }
.pull-quote::after { content: "”"; color: var(--blood-bright); }

/* clinical notes */
.clinical { max-width: 720px; }
.clinical li {
  list-style: none;
  font-family: var(--mono);
  font-size: 13.5px;
  color: var(--ink-dim);
  padding: 13px 0 13px 30px;
  border-bottom: 1px dotted var(--rule-soft);
  position: relative;
}
.clinical li::before {
  content: "✗";
  position: absolute;
  left: 4px;
  color: var(--blood-bright);
}
.attending-sig {
  font-family: var(--serif);
  font-style: italic;
  font-size: 19px;
  color: var(--ink-dim);
  margin-top: 30px;
  text-align: right;
  max-width: 720px;
}

/* effects / contraindications twin columns */
.twin {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  max-width: 860px;
}
.twin h3 {
  font-family: var(--serif-sc);
  font-weight: 400;
  font-size: 21px;
  letter-spacing: 0.06em;
  margin-bottom: 22px;
}
.twin ul li {
  list-style: none;
  font-family: var(--mono);
  font-size: 13px;
  color: var(--ink-dim);
  padding: 9px 0;
  border-bottom: 1px solid var(--rule-soft);
}
.twin .fx li::before { content: "— "; color: var(--phosphor-dim); }
.twin .contra li::before { content: "⊘ "; color: var(--blood-bright); }

/* next drawer teaser */
.next-drawer {
  margin-top: 10vh;
  padding: 34px 38px;
  border: 1px dashed var(--rule);
  font-family: var(--mono);
  font-size: 12.5px;
  letter-spacing: 0.16em;
  color: var(--ink-faint);
  text-transform: uppercase;
  max-width: 860px;
}
.next-drawer b { color: var(--blood-bright); font-weight: 400; }

/* sealed / not-found page */
.locked {
  text-align: center;
  padding: 18vh 0;
}
.locked h1 {
  font-family: var(--serif-sc);
  font-weight: 400;
  font-size: clamp(40px, 7vw, 80px);
}
.locked p {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--ink-faint);
  margin-top: 22px;
  text-transform: uppercase;
}

/* =========================================================
   REVEAL ON SCROLL
   ========================================================= */
.rise { opacity: 0; transform: translateY(22px); transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rise.lit { opacity: 1; transform: none; }

.fade-load { animation: fadeUp 0.9s both; }
.d1 { animation-delay: 0.12s; }
.d2 { animation-delay: 0.26s; }
.d3 { animation-delay: 0.4s; }
.d4 { animation-delay: 0.55s; }
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 740px) {
  .seal-stamp { top: 2vh; right: -26px; width: 138px; }
  .intake-row { flex-direction: column; gap: 4px; }
  .intake-row dt { flex: none; }
  .reg-card { padding: 30px 22px 26px; }
  .reg-row { flex-direction: column; gap: 4px; }
  .reg-row dt { flex: none; }
  .reg-links { gap: 16px 22px; }
  .twin { grid-template-columns: 1fr; gap: 40px; }
  .exhibit { display: none; }
  nav ul { gap: 16px; flex-wrap: wrap; }
  .case-card { padding: 32px 24px; }
  .self-report { padding: 32px 24px; }
  .stamp-active { position: static; display: inline-block; margin-top: 24px; }
  .ledger th:nth-child(4), .ledger td:nth-child(4) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .strip-inner, .caret, .status-active::before,
  .trial[data-dose="D3"] .phosphor { animation: none; }
  .rise { opacity: 1; transform: none; transition: none; }
  .fade-load { animation: none; }
  .seal-stamp { opacity: 0.82; animation: none; }
}
