/* Science & evidence — page-specific layout. Reuses tokens/components from site.css. */

.no-js .js-only { display: none !important; }

/* ---------- Breadcrumb ---------- */
.crumbs ol { display: flex; flex-wrap: wrap; gap: .35rem; font-family: var(--font-mono); font-size: var(--step--2); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.crumbs li + li::before { content: "/"; margin-right: .35rem; color: var(--line-strong); }
.crumbs a { color: var(--ink-2); text-decoration: none; border-radius: 4px; }
.crumbs a:hover { color: var(--blood-700); }
.crumbs [aria-current] { color: var(--ink-3); }

/* ---------- Hero ---------- */
.sci-hero { position: relative; padding-top: clamp(1.25rem, .75rem + 2vw, 2.5rem); padding-bottom: clamp(3rem, 2rem + 4vw, 6rem); overflow: clip; }
.sci-hero__grid { display: grid; gap: var(--space-2xl) var(--grid-gap); margin-top: clamp(1.5rem, 1rem + 3vw, 3.5rem); align-items: center; }
@media (min-width: 64em) { .sci-hero__grid { grid-template-columns: minmax(0, 6.6fr) minmax(0, 5.4fr); } }
.sci-hero__title {
  font-family: var(--font-display); font-optical-sizing: auto; font-variation-settings: var(--fr-display);
  font-size: clamp(3rem, 1rem + 8.4vw, 8rem); line-height: .94; font-weight: 320; letter-spacing: -0.042em; color: var(--ink);
}
@media (min-width: 64em) { .sci-hero__title { font-size: clamp(5rem, 1rem + 5.6vw, 8rem); } }
.sci-hero__title em { font-style: italic; font-variation-settings: var(--fr-italic); font-weight: 300; color: var(--blood-700); letter-spacing: -0.03em; padding-right: .03em; }
.sci-hero__lead { margin-top: var(--space-l); max-width: 36ch; }
.sci-hero__facts { margin-top: clamp(2.25rem, 2rem + 2vw, 3.5rem); display: grid; gap: var(--space-m) var(--space-l); grid-template-columns: 1fr 1fr; max-width: 44rem; }
.hero-fact2 { padding-top: .9rem; border-top: 1px solid var(--line-strong); }
.hero-fact2--open { grid-column: 1 / -1; border-top-style: dashed; }
@media (min-width: 30em) { .sci-hero__facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } .hero-fact2--open { grid-column: auto; } }
.hero-fact2__v { font-family: var(--font-display); font-optical-sizing: auto; font-variation-settings: "SOFT" 0, "WONK" 0; font-size: var(--step-4); line-height: 1; font-weight: 300; letter-spacing: -0.03em; }
.hero-fact2__v small { font-size: .5em; color: var(--ink-3); letter-spacing: 0; }
.hero-fact2--open .hero-fact2__v { color: var(--slate-700); }
.hero-fact2__l { margin-top: .45rem; font-size: var(--step--1); color: var(--text-2); line-height: 1.42; }

/* Hero dial: specimen view with the page contents set around its rim */
.dial { margin: 0; justify-self: center; width: 100%; max-width: 640px; }
.dial__stage { position: relative; width: min(100%, 86vw); margin-inline: auto; aspect-ratio: 1; }
.dial__svg { width: 100%; height: 100%; overflow: visible; }
.dial__nav ol { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-m); margin-top: var(--space-m); border-top: 1px solid var(--line-strong); }
.dial__nav li { border-bottom: 1px solid var(--line); }
.dial__nav a { display: flex; align-items: baseline; gap: .6rem; min-height: 44px; padding: .55rem 0; text-decoration: none; color: var(--ink); font-family: var(--font-display); font-variation-settings: var(--fr-display); font-size: var(--step-1); letter-spacing: -0.01em; border-radius: 4px; transition: color var(--dur-2); }
.dial__n { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .06em; color: var(--blood-700); }
.dial__nav a:hover { color: var(--blood-700); }
@media (min-width: 40em) {
  .dial__stage { width: 78%; }
  .dial__nav ol { display: block; margin: 0; border: 0; position: absolute; inset: 0; pointer-events: none; }
  .dial__nav li { position: absolute; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%); border: 0; transform: translate(14px, -50%); pointer-events: auto; }
  .dial__nav li.is-l { transform: translate(calc(-100% - 14px), -50%); }
  .dial__nav a { min-height: 40px; padding: .35rem .8rem .35rem .65rem; white-space: nowrap; font-size: var(--step-0); background: rgb(251 248 242 / .88); border: 1px solid var(--line); border-radius: var(--r-pill); box-shadow: var(--shadow-1); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: color var(--dur-2), box-shadow var(--dur-3) var(--ease-out), transform var(--dur-3) var(--ease-out); }
  .dial__nav a:hover { box-shadow: var(--shadow-2); transform: translateY(-1px); }
}
.dial__cap { margin-inline: auto; justify-content: center; margin-top: var(--space-l); }
@media (prefers-reduced-motion: no-preference) {
  .js .dial .hd-net { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2600ms var(--ease-in-out) 500ms; }
  .js .dial.is-in .hd-net { stroke-dashoffset: 0; }
}

/* ---------- Sticky in-page nav ---------- */
/* shared .subnav (site.css) is used as-is; only the night variant below is page-specific */

/* ---------- 01 Mechanism: the loupe ---------- */
.mech { padding-block: var(--section-y); overflow: clip; }
.mech .section-head { margin-bottom: clamp(1.5rem, 1rem + 3vw, 3.5rem); }
.mech__grid { display: grid; gap: 0 var(--grid-gap); }
.loupe {
  position: sticky; top: calc(var(--header-h-condensed) + 52px); z-index: 2;
  margin-inline: calc(var(--gutter) * -1); padding: .5rem var(--gutter) 1rem;
  background: linear-gradient(var(--night) calc(100% - 1.25rem), rgb(21 17 15 / 0));
  display: grid; justify-items: center;
}
.loupe__stage { position: relative; width: min(100%, 32svh, 260px); aspect-ratio: 1; }
.loupe__svg { width: 100%; height: 100%; overflow: visible; }
.loupe__hud { width: min(100%, 32svh, 260px); display: flex; justify-content: space-between; gap: 1rem; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--on-night-2); margin-bottom: .25rem; }
.loupe__level b { color: var(--on-night); font-weight: 500; }
.loupe [data-show] { display: none; }
.loupe[data-active="1"] [data-show="1"], .loupe[data-active="2"] [data-show="2"], .loupe[data-active="3"] [data-show="3"] { display: inline; }
.loupe__dots { display: none; gap: 6px; margin-top: .4rem; }
.loupe__dots i { width: 18px; height: 2px; border-radius: 2px; background: var(--line-night); transition: background-color var(--dur-3), width var(--dur-3) var(--ease-out); }
.loupe[data-active="1"] .loupe__dots i:nth-child(1), .loupe[data-active="2"] .loupe__dots i:nth-child(2), .loupe[data-active="3"] .loupe__dots i:nth-child(3) { background: var(--blood-300); width: 30px; }
.loupe .figcap { display: none; color: var(--on-night-2); }
.loupe .figcap__n { color: var(--on-night); }
@media (min-width: 64em) {
  .mech__grid { grid-template-columns: minmax(0, 6.6fr) minmax(0, 5.4fr); }
  .loupe { top: calc(var(--header-h-condensed) + 52px + 3vh); align-self: start; grid-row: 1 / span 3; margin: 0; padding: 0; background: none; justify-items: start; }
  .loupe__stage, .loupe__hud { width: min(100%, calc(100svh - var(--header-h-condensed) - 52px - 10rem), 660px); }
  .loupe .figcap { display: flex; margin-top: 1rem; max-width: 44ch; }
  .loupe__dots { display: flex; }
}
.mech__grid .lstep:nth-of-type(1) { padding-top: var(--space-l); }

/* Loupe SVG styling */
.lp-ring { color: var(--on-night); }
.lv { transform-box: view-box; transform-origin: 300px 300px; transition: transform 1150ms var(--ease-in-out), opacity 800ms var(--ease-out); }
/* Future layers wait, shrunk into the previous layer's reticle; past layers are zoomed through. */
.loupe[data-active="1"] .lv2 { transform: translate(0px, 72px) scale(.25); opacity: 0; }
.loupe[data-active="1"] .lv3 { transform: translate(16px, 0px) scale(.25); opacity: 0; }
.loupe[data-active="2"] .lv1 { transform: scale(4) translate(0px, -72px); opacity: 0; }
.loupe[data-active="2"] .lv3 { transform: translate(16px, 0px) scale(.25); opacity: 0; }
.loupe[data-active="3"] .lv1 { transform: scale(4) translate(0px, -72px); opacity: 0; }
.loupe[data-active="3"] .lv2 { transform: scale(4) translate(-16px, 0px); opacity: 0; }
.lp-reticle { transition: opacity var(--dur-3); }
.loupe[data-active="3"] .lp-reticle { opacity: 0; }

/* HTML labels positioned in the stage (percent of 640 viewBox) */
.lp-labels { position: absolute; inset: 0; pointer-events: none; }
.lp-label {
  position: absolute; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%);
  display: inline-flex; align-items: center; gap: .4rem; transform: translate(-6px, -50%);
  font-family: var(--font-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap;
  color: var(--on-night); padding: .2rem .45rem .2rem .3rem; border-radius: var(--r-pill);
  background: rgb(21 17 15 / .72); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
  opacity: 0; transition: opacity var(--dur-3) var(--ease-out);
}
.lp-label::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid currentColor; flex: none; }
.lp-label--r { flex-direction: row; }
.lp-label .lc { text-transform: none; }
.lp-label--blood { color: var(--blood-300); }
.lp-label--moss { color: var(--moss-300); }
.lp-label--amber { color: #F0DDB4; }
.loupe[data-active="1"] .lp-label[data-lv="1"], .loupe[data-active="2"] .lp-label[data-lv="2"], .loupe[data-active="3"] .lp-label[data-lv="3"] { opacity: 1; transition-delay: 650ms; }
@media (max-width: 63.99em) { .lp-label { padding: .1rem .35rem .1rem .2rem; letter-spacing: .04em; gap: .3rem; } .lp-label::before { width: 6px; height: 6px; } .loupe__hud { font-size: .75rem; letter-spacing: .06em; } .loupe__scale [data-show] { white-space: nowrap; } }
@media (max-width: 47.99em) { .loupe__hud { width: min(100%, 340px); } .lstep { min-height: 52svh; } }

/* Steps */
.lstep { position: relative; display: grid; align-content: center; gap: var(--space-s); min-height: 64svh; padding-block: var(--space-2xl); }
@media (min-width: 64em) { .lstep { min-height: 80svh; padding-left: clamp(1.5rem, 3vw, 3.5rem); border-left: 1px solid var(--line-night); } }
.lstep::before { content: ""; position: absolute; left: -1px; top: 50%; width: 2px; height: 0; background: var(--blood-300); transform: translateY(-50%); transition: height var(--dur-4) var(--ease-out); display: none; }
@media (min-width: 64em) { .lstep::before { display: block; } }
.lstep.is-active::before { height: 10rem; }
.lstep__n { display: flex; align-items: baseline; gap: 1rem; font-family: var(--font-mono); font-size: var(--step--2); letter-spacing: .12em; text-transform: uppercase; color: var(--on-night-2); }
.lstep__n b { font-family: var(--font-display); font-variation-settings: "SOFT" 0, "WONK" 0; font-weight: 250; font-size: var(--step-5); letter-spacing: -0.04em; color: var(--blood-300); line-height: .9; transition: color var(--dur-3); }
.lstep__title { font-family: var(--font-display); font-optical-sizing: auto; font-variation-settings: var(--fr-display); font-size: var(--step-4); line-height: 1.04; font-weight: 340; letter-spacing: -0.03em; color: var(--on-night); transition: color var(--dur-3); }
.lstep__title em { font-style: italic; font-variation-settings: var(--fr-italic); }
.lstep__body { color: var(--on-night-2); max-width: 42ch; }
.lstep__tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.lstep .tag { color: var(--on-night); border-color: rgb(244 238 228 / .3); }
.lstep .tag--moss { background: rgb(169 187 164 / .16); color: var(--moss-300); border-color: transparent; }
.lstep__note { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .06em; color: var(--on-night-2); }
.js [data-steps] .loupe[data-active] ~ .lstep:not(.is-active) .lstep__n b { color: var(--on-night-2); }
.js [data-steps] .loupe[data-active] ~ .lstep:not(.is-active) .lstep__title { color: #D9D0C5; }

@media (prefers-reduced-motion: no-preference) {
  .loupe[data-active="3"] .lp-gamma { animation: gamma-breathe 9s var(--ease-in-out) infinite; }
  .loupe[data-active="1"] .lp-drop { animation: lp-fall 9s var(--ease-in-out) infinite; }
}
@keyframes gamma-breathe { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes lp-fall { 0%, 100% { translate: 0 0; } 50% { translate: 0 6px; } }

/* ---------- 02 Cascade ---------- */
.cascade__grid { display: grid; gap: var(--space-2xl) var(--grid-gap); }
@media (min-width: 64em) { .cascade__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); align-items: start; } }
.cascade__fig { margin: 0; padding: clamp(1rem, .5rem + 2vw, 2rem); background: var(--raised); border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow-1); }
.cascade__figtitle { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-bottom: .9rem; margin-bottom: 1rem; border-bottom: 1px solid var(--line); font-family: var(--font-mono); font-size: var(--step--2); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.cascade__svg { width: 100%; max-width: 520px; height: auto; margin-inline: auto; }
.cascade__svg text { font-family: var(--font-mono); }
.cas-zone { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; fill: var(--ink-3); }
.cas-sep { stroke: var(--line-strong); stroke-dasharray: 2 4; stroke-width: 1; }
.cas-edges path { stroke: var(--slate-700); stroke-width: 1.3; }
.cas-edges .cas-plus { stroke-dasharray: 3 3; stroke-opacity: .6; }
.cas-node rect { fill: var(--raised); stroke: var(--slate-700); stroke-width: 1.3; transition: fill var(--dur-2), stroke var(--dur-2); }
.cas-node text { font-size: 14px; font-weight: 500; text-anchor: middle; fill: var(--ink); transition: fill var(--dur-2); }
.cas-node .cas-sub { font-size: 12px; fill: var(--ink-3); font-weight: 400; }
.cas-node.is-na rect { fill: transparent; stroke: var(--ink-3); stroke-dasharray: 4 4; stroke-width: 1.1; }
.cas-node.is-na text { fill: var(--ink-3); }
.cas-node.is-end rect { stroke-dasharray: 4 4; }
.cas-ok circle { fill: var(--moss-700); stroke: var(--raised); stroke-width: 2; }
.cas-ok path { fill: none; stroke: #fff; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cas-bracket { fill: none; stroke: var(--moss-700); stroke-width: 1.3; }
.cas-test__pill { fill: var(--moss-100); stroke: var(--moss-700); stroke-width: 1; transition: fill var(--dur-2); }
.cas-test__t { font-size: 11px; font-weight: 600; letter-spacing: .04em; fill: var(--moss-900); transition: fill var(--dur-2); }
.cas-note { font-size: 11px; fill: var(--ink-3); letter-spacing: .02em; }
/* highlight from chips */
.cas-node.is-hl rect { fill: var(--moss-700); stroke: var(--moss-700); }
.cas-node.is-hl text { fill: #fff; }
.cas-test.is-hl .cas-test__pill { fill: var(--moss-700); }
.cas-test.is-hl .cas-test__t { fill: #fff; }
.cas-test.is-hl .cas-bracket { stroke-width: 2.4; }
.cascade__legend { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); font-family: var(--font-mono); font-size: .75rem; letter-spacing: .04em; color: var(--ink-2); }
.cascade__legend span { display: inline-flex; align-items: center; gap: .5rem; }
.lg-ok { width: 14px; height: 14px; border-radius: 50%; background: var(--moss-700); }
.lg-na { width: 22px; height: 12px; border-radius: 6px; border: 1.2px dashed var(--ink-3); }

.cascade__side { display: grid; gap: var(--space-xl); }
.measured__title { font-family: var(--font-mono); font-size: var(--step--2); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--moss-700); padding-bottom: .9rem; border-bottom: 1px solid var(--line-strong); }
.measured__list { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.mchip { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; min-width: 52px; justify-content: center; padding: 0 .9rem; border-radius: var(--r-sm); border: 1px solid rgb(52 73 59 / .3); background: var(--moss-100); font-family: var(--font-mono); font-size: .85rem; font-weight: 500; color: var(--moss-900); cursor: default; transition: background-color var(--dur-2), color var(--dur-2); }
.mchip::before { content: ""; width: 10px; height: 6px; border-left: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(-45deg) translateY(-2px); }
.mchip--test { border-radius: var(--r-pill); }
.mchip:hover, .mchip.is-hl { background: var(--moss-700); color: #fff; }
.no-js .mchip { pointer-events: none; }
.measured__hint { margin-top: .9rem; font-size: var(--step--1); color: var(--text-3); }

.route { padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); border-radius: var(--r-lg); background: var(--night); color: var(--on-night); position: relative; isolation: isolate; overflow: hidden; }
.route::before { content: ""; position: absolute; inset: 0; background-image: var(--grain); opacity: .5; mix-blend-mode: screen; z-index: -1; }
.route::after { content: ""; position: absolute; z-index: -1; right: -20%; top: -40%; width: 70%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgb(195 53 67 / .35), transparent 65%); }
.route__kicker { display: flex; align-items: center; gap: .6rem; font-family: var(--font-mono); font-size: var(--step--2); letter-spacing: .12em; text-transform: uppercase; color: var(--on-night-2); }
.route__kicker svg { width: 12px; height: 15px; color: var(--blood-300); }
.route__list { margin-top: 1.1rem; display: grid; gap: 0; counter-reset: r; }
.route__list li { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: .85rem; padding: .9rem 0; border-top: 1px solid var(--line-night); font-size: var(--step--1); color: var(--on-night-2); line-height: 1.5; position: relative; }
.route__list li strong { display: block; font-family: var(--font-display); font-variation-settings: var(--fr-display); font-weight: 400; font-size: var(--step-1); color: var(--on-night); letter-spacing: -0.01em; line-height: 1.25; margin-bottom: .15rem; }
.route__n { width: 2.25rem; height: 2.25rem; border-radius: 50%; border: 1px solid rgb(238 141 149 / .5); display: grid; place-items: center; font-family: var(--font-mono); font-size: .75rem; color: var(--blood-300); }
.route .cite { background: rgb(238 141 149 / .16); color: var(--blood-300); }
.route .cite:hover, .route .cite[aria-expanded="true"] { background: var(--blood-300); color: var(--night); }
.cascade__why h3 { margin-bottom: .6rem; }
.cascade__why p { color: var(--text-2); max-width: 52ch; }
.cascade__caveat { margin-top: 1rem; padding: .9rem 1rem; border-left: 2px solid var(--slate-700); background: rgb(230 234 232 / .6); font-size: var(--step--1); border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.cascade__caveat strong { color: var(--ink); font-weight: 600; }

/* ---------- 03 Levels ---------- */
.levels__grid { display: grid; gap: var(--space-2xl) var(--grid-gap); }
@media (min-width: 64em) { .levels__grid { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); align-items: end; } }
.ladder { margin: 0; }
.ladder__head { display: flex; gap: .9rem; font-size: var(--step--1); color: var(--slate-700); max-width: 64ch; line-height: 1.55; }
.ladder__head .figcap__n { padding-top: .15em; }
.ladder__steps { margin-top: var(--space-xl); display: grid; border-top: 1px solid rgb(62 74 82 / .3); }
.rung { display: grid; grid-template-columns: 4px minmax(0, 1fr); column-gap: 1rem; row-gap: .45rem; padding: 1.1rem 0; border-bottom: 1px solid rgb(62 74 82 / .2); }
.rung__bar { grid-row: 1 / span 4; align-self: stretch; border-radius: 2px; background: var(--slate-700); }
.rung--empty .rung__bar { background: none; border-left: 2px dashed var(--slate-500); }
.rung__lvl { order: -1; }
.rung__title { font-family: var(--font-display); font-variation-settings: var(--fr-display); font-optical-sizing: auto; font-size: var(--step-2); line-height: 1.12; font-weight: 400; letter-spacing: -0.015em; }
.rung--empty .rung__title { color: var(--slate-700); }
.rung__dots { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.dot { display: inline-grid; place-items: center; min-width: 32px; height: 32px; padding: 0 .35rem; border-radius: var(--r-pill); background: var(--slate-700); color: #fff; font-family: var(--font-mono); font-size: .75rem; font-weight: 600; flex: none; }
.dot--ph { box-shadow: inset 0 0 0 2px var(--porcelain), inset 0 0 0 3.5px rgb(196 140 50); }
.dot--open { background: transparent; color: var(--slate-700); border: 1.4px dashed var(--slate-700); }
.dot--sec { background: transparent; color: var(--slate-700); border: 1.4px solid var(--slate-700); }
.rung__none { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .03em; color: var(--slate-700); }
.rung__desc { font-size: var(--step--1); color: var(--ink-2); max-width: 46ch; }
.levels__note { display: flex; gap: .6rem; align-items: flex-start; margin-top: var(--space-l); font-size: var(--step--1); color: var(--slate-700); }
.levels__note svg { width: 18px; height: 18px; flex: none; margin-top: .2rem; }
@media (min-width: 64em) {
  /* a literal staircase: bar height grows with the design level */
  .ladder__steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--grid-gap); border-top: 0; align-items: end; }
  .rung { grid-template-columns: 1fr; padding: 0; border-bottom: 0; align-content: end; }
  .rung__bar { grid-row: auto; order: 3; height: calc(var(--h) * 1px); margin-top: .5rem; border-radius: var(--r-xs); border: 1.2px solid var(--slate-700);
    background: repeating-linear-gradient(-45deg, var(--slate-200) 0 4px, rgb(62 74 82 / .22) 4px 5.5px); }
  .rung--empty .rung__bar { background: rgb(255 255 255 / .4); border: 1.2px dashed var(--slate-700); }
  .rung[data-level="1"] { --h: 60; } .rung[data-level="2"] { --h: 100; } .rung[data-level="3"] { --h: 140; } .rung[data-level="4"] { --h: 180; }
  .rung__lvl { order: 0; } .rung__title { order: 1; min-height: 2.3em; } .rung__dots { order: 2; min-height: 40px; align-content: flex-end; } .rung__desc { order: 4; padding-top: .75rem; border-top: 1px solid rgb(62 74 82 / .3); }
}
@media (prefers-reduced-motion: no-preference) {
  .js .ladder .rung__bar { transform-origin: bottom; transform: scaleY(.04); transition: transform 1100ms var(--ease-out); }
  .js .ladder.is-in .rung__bar { transform: none; }
  .js .ladder.is-in .rung:nth-child(2) .rung__bar { transition-delay: 90ms; } .js .ladder.is-in .rung:nth-child(3) .rung__bar { transition-delay: 180ms; } .js .ladder.is-in .rung:nth-child(4) .rung__bar { transition-delay: 270ms; }
}
.evidence-level--off { color: var(--ink-3); }
.lanes { display: grid; gap: var(--space-m); }
.lane { padding: 1.1rem 1.2rem 1.2rem; border-radius: var(--r-md); background: rgb(255 255 255 / .5); border: 1px solid rgb(62 74 82 / .18); }
.lane--tray { background: transparent; border: 1.2px dashed rgb(62 74 82 / .45); }
.lane__title { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500; color: var(--slate-700); }
.lane__count { color: var(--ink-3); }
.lane__sub { margin-top: .35rem; font-size: var(--step--1); color: var(--ink-2); line-height: 1.5; }
.lane__list { margin-top: .8rem; display: grid; gap: .55rem; }
.lane__list li { display: flex; align-items: center; gap: .65rem; font-size: var(--step--1); color: var(--ink); }

.matrix { margin-top: clamp(3rem, 2rem + 4vw, 5rem); display: grid; gap: var(--space-l) var(--grid-gap); }
@media (min-width: 64em) { .matrix { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } .matrix__legend { grid-column: 2; } }
.matrix__intro p { margin-top: .75rem; max-width: 40ch; }
.matrix__scroll { overflow-x: auto; }
.matrix__table { width: 100%; border-collapse: collapse; font-size: var(--step--1); }
.matrix__table th, .matrix__table td { text-align: left; padding: .7rem .5rem; border-bottom: 1px solid rgb(62 74 82 / .18); vertical-align: middle; }
.matrix__table thead th { font-family: var(--font-mono); font-size: .75rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--slate-700); border-bottom: 1px solid rgb(62 74 82 / .4); vertical-align: bottom; }
.matrix__table td { text-align: center; width: 22%; }
.matrix__table thead th + th { text-align: center; }
.matrix__table tbody th { font-weight: 600; color: var(--ink); }
.matrix__table tbody th a { color: inherit; text-decoration: underline; text-decoration-color: rgb(27 23 20 / .25); text-underline-offset: .22em; text-decoration-thickness: 1px; }
.matrix__table tbody th a:hover { color: var(--blood-700); text-decoration-color: currentColor; }
.mk { display: inline-block; vertical-align: middle; width: 28px; height: 18px; border-radius: 3px; }
.mk--yes { background: repeating-linear-gradient(-45deg, var(--slate-200) 0 3px, rgb(62 74 82 / .4) 3px 4.5px); border: 1.2px solid var(--slate-700); }
.mk--inv { border: 1.4px dashed var(--moss-700); background: var(--moss-100); }
.mk--none { width: 6px; height: 6px; border-radius: 50%; background: var(--ink-3); opacity: .7; }
.mk--na { width: 14px; height: 1.5px; border-radius: 0; background: var(--ink-3); }
.mk__t { display: block; margin-top: .2rem; font-family: var(--font-mono); font-size: .75rem; color: var(--slate-700); }
.matrix__legend { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .02em; color: var(--slate-700); }
.matrix__legend > span { display: inline-flex; align-items: center; gap: .55rem; }
.matrix__legend .mk { flex: none; }
@media (max-width: 47.99em) { .matrix__table th, .matrix__table td { padding: .6rem .25rem; } .matrix__table tbody th { font-size: var(--step--1); } }

/* ---------- 04 Library ---------- */
.lib__controls { display: grid; gap: var(--space-l); padding: clamp(1.25rem, 1rem + 1.2vw, 2rem); background: var(--raised); border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow-1); }
@media (min-width: 64em) { .lib__controls { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: var(--grid-gap); } .lib__bar { grid-column: 1 / -1; } }
.lib__label { display: block; font-family: var(--font-mono); font-size: var(--step--2); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); margin-bottom: .6rem; font-weight: 500; }
.lib__searchbox { position: relative; }
.lib__searchbox svg { position: absolute; left: 1rem; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--ink-3); pointer-events: none; }
.lib__input { padding-left: 2.85rem; padding-right: 2.75rem; border-radius: var(--r-pill); min-height: 54px; font-size: 1rem; }
.lib__input::-webkit-search-cancel-button { cursor: pointer; }
.lib__kbd { position: absolute; right: .9rem; top: 50%; transform: translateY(-50%); font-family: var(--font-mono); font-size: .75rem; color: var(--ink-3); border: 1px solid var(--line-strong); border-radius: 6px; padding: .05rem .4rem; pointer-events: none; }
.lib__input:focus ~ .lib__kbd, .lib__input:not(:placeholder-shown) ~ .lib__kbd { display: none; }
@media (hover: none) { .lib__kbd { display: none; } }
.lib__filters { display: grid; gap: var(--space-m); }
.lib__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.lib__chips .chip { min-height: 40px; }
.lib__chips .chip[aria-pressed="false"] .chip__count { color: var(--ink-3); opacity: 1; }
.lib__chips .chip[disabled] { opacity: .45; cursor: not-allowed; }
.lib__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding-top: var(--space-m); border-top: 1px solid var(--line); }
.lib__count { font-family: var(--font-mono); font-size: var(--step--2); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); }
.lib__count b { color: var(--ink); font-weight: 600; }
.lib__tools { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.lib__check { display: inline-flex; align-items: center; gap: .5rem; font-size: var(--step--1); color: var(--ink-2); cursor: pointer; min-height: 44px; }
.lib__check input { width: 18px; height: 18px; accent-color: var(--ink); }
.lib__sort { min-height: 44px; width: auto; padding-block: .5rem; border-radius: var(--r-pill); font-size: var(--step--1); padding-left: 1rem; }

.lib__list { margin-top: var(--space-xl); border-top: 1px solid var(--line-strong); }
.refs.lib__list li.entry { /* override shared .refs li */
  display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); gap: .6rem 1rem; padding: clamp(1.25rem, 1rem + 1vw, 2rem) 0; border-top: 0; border-bottom: 1px solid var(--line-strong);
  font-size: var(--step-0); color: var(--text-2); scroll-margin-top: calc(var(--header-h-condensed) + 5rem);
  position: relative; isolation: isolate;
}
.refs.lib__list li.entry::before { content: ""; position: absolute; inset: 0 calc(var(--gutter) * -0.5); z-index: -1; border-radius: var(--r-md); background: var(--raised); opacity: 0; transition: opacity var(--dur-3) var(--ease-out); }
.refs.lib__list li.entry:hover::before { opacity: .75; }
.refs.lib__list li.entry:target, .refs.lib__list li.entry.is-flash { background: transparent; }
.refs.lib__list li.entry:target::before, .refs.lib__list li.entry.is-flash::before { opacity: 1; background: var(--blood-100); }
.entry__n { font-family: var(--font-mono); font-size: var(--step--1); color: var(--blood-700); padding-top: .1rem; }
.entry--ph .entry__n { color: var(--ink-3); }
.entry__main { min-width: 0; }
.entry__kicker { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.entry__cite { display: flex; flex-direction: column; gap: .35rem; margin-top: .5rem; }
.entry__title { order: -1; font-family: var(--font-display); font-variation-settings: var(--fr-display); font-optical-sizing: auto; font-size: var(--step-2); line-height: 1.16; font-weight: 400; letter-spacing: -0.015em; color: var(--ink); text-wrap: balance; }
.entry__authors { font-size: var(--step--1); color: var(--ink-2); font-weight: 500; }
.entry__src { font-size: var(--step--1); color: var(--ink-2); }
.entry__src i { color: var(--ink); }
.entry__doi { align-self: flex-start; font-family: var(--font-mono); font-size: .76rem; letter-spacing: .01em; color: var(--blood-700); text-decoration: underline; text-decoration-color: rgb(134 26 42 / .35); text-underline-offset: .25em; word-break: break-all; }
a.entry__doi:hover { text-decoration-color: currentColor; }
a.entry__doi::after { content: " ↗"; text-decoration: none; display: inline-block; margin-left: .2em; }
.entry__doi--ph { color: var(--ink-3); text-decoration: none; word-break: normal; }
.entry__sum { margin-top: .9rem; padding-left: .9rem; border-left: 2px solid var(--blood-100); font-size: var(--step--1); line-height: 1.55; color: var(--ink-2); max-width: 64ch; }
.entry__sumk { display: block; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--blood-700); margin-bottom: .15rem; }
.entry--ph .entry__sum { border-left-color: var(--line-strong); }
.entry--ph .entry__sumk { color: var(--ink-3); }
.entry__meta { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.entry__tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.entry__copy { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); min-height: 36px; padding: 0 .8rem; border-radius: var(--r-pill); border: 1px solid var(--line-strong); transition: background-color var(--dur-2), color var(--dur-2), border-color var(--dur-2); }
.entry__copy:hover { border-color: var(--ink); color: var(--ink); }
.entry__copy.is-done { background: var(--moss-700); border-color: var(--moss-700); color: #fff; }
.entry--ph .entry__title { color: var(--ink-2); }
@media (min-width: 64em) {
  .refs.lib__list li.entry { grid-template-columns: 4rem minmax(0, 1fr) 17rem; column-gap: var(--grid-gap); }
  .entry__meta { grid-column: 3; grid-row: 1; flex-direction: column; align-items: flex-start; padding-top: 1.4rem; }
}
.entry[hidden] { display: none !important; }
@media (prefers-reduced-motion: no-preference) {
  .entry.is-entering { animation: entry-in 420ms var(--ease-out) both; }
}
@keyframes entry-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.lib__empty { padding: var(--space-2xl) 0; text-align: left; border-bottom: 1px solid var(--line-strong); }
.lib__empty .muted { margin-top: .5rem; }
.lib__emptyreset { font: inherit; color: var(--blood-700); text-decoration: underline; text-underline-offset: .22em; text-decoration-thickness: 1px; }
.lib__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-m); margin-top: var(--space-xl); }
mark.hit { background: rgb(240 200 120 / .45); color: inherit; border-radius: 2px; padding: 0 .05em; }

/* ---------- 05 Safety ---------- */
.safety__grid { display: grid; gap: var(--space-2xl) var(--grid-gap); }
@media (min-width: 64em) { .safety__grid { grid-template-columns: minmax(0, 7.4fr) minmax(0, 4.6fr); align-items: start; } }
.neuro { display: grid; gap: var(--space-l) var(--grid-gap); padding: clamp(1.25rem, 1rem + 1.2vw, 2rem); background: var(--raised); border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow-1); }
@media (min-width: 48em) { .neuro { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; } }
.neuro__fig { margin: 0; }
.neuro__svg { width: 100%; max-width: 380px; height: auto; margin-inline: auto; }
.nv-t { font-family: var(--font-mono); font-size: 12px; letter-spacing: .1em; fill: var(--ink-3); }
.nv-t path { fill: none; stroke-width: 1; }
.nv-t--caution { fill: #7A4A12; font-weight: 600; font-size: 12.5px; letter-spacing: .14em; }
.neuro__text { display: grid; gap: var(--space-m); }
.balance { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.balance__col { padding: .9rem .9rem .9rem 0; display: grid; gap: .5rem; align-content: start; }
.balance__col--open { padding: .9rem 0 .9rem .9rem; border-left: 1px dashed var(--line-strong); }
.balance dt { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--moss-700); }
.balance__col--open dt { color: #7A4A12; }
.balance dd { font-size: var(--step--1); color: var(--text-2); line-height: 1.45; }
.balance dd strong { color: var(--ink); font-weight: 600; }
.screen__table { width: 100%; margin-top: var(--space-s); border-collapse: collapse; font-size: var(--step--1); }
.screen__table caption { text-align: left; caption-side: top; padding-bottom: .6rem; color: var(--text-2); }
.screen__table th, .screen__table td { padding: .75rem 0; border-bottom: 1px solid var(--line-strong); text-align: left; vertical-align: middle; }
.screen__table thead th { font-family: var(--font-mono); font-size: .75rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); padding-top: .4rem; }
.screen__table tbody th { font-weight: 600; color: var(--ink); }
.screen__table td { text-align: right; }
.screen__table thead th:last-child { text-align: right; }
.screen__sub { display: block; font-weight: 400; color: var(--text-3); font-size: var(--step--1); }
.res { display: inline-flex; align-items: center; gap: .4rem; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--moss-900); background: var(--moss-100); padding: .25rem .6rem; border-radius: var(--r-pill); }
.res::before { content: ""; width: 8px; height: 5px; border-left: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg) translateY(-1px); }
.screen__note { margin-top: var(--space-m); font-size: var(--step--1); color: var(--text-3); padding-left: .9rem; border-left: 2px solid var(--line-strong); }
.safety__lower { margin-top: var(--space-2xl); display: grid; gap: var(--space-xl) var(--grid-gap); }
@media (min-width: 64em) { .safety__lower { grid-template-columns: minmax(0, 7.4fr) minmax(0, 4.6fr); align-items: start; } }
.ifu { background: var(--raised); padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); }
.ifu__list { margin-top: 1rem; display: grid; border-top: 1px solid var(--line); }
.ifu__list li { display: grid; gap: .1rem; padding: .7rem 0; border-bottom: 1px solid var(--line); font-size: var(--step--1); }
@media (min-width: 40em) { .ifu__list li { grid-template-columns: 13rem minmax(0, 1fr); gap: 1rem; } }
.ifu__list li > span:first-child { font-weight: 600; color: var(--ink); }
.ifu__actions { margin-top: 1rem; }
.safety__more { display: grid; gap: var(--space-l); }
.mini { padding-top: 1rem; border-top: 1px solid var(--line-strong); }
.mini__title { font-family: var(--font-display); font-variation-settings: var(--fr-display); font-optical-sizing: auto; font-size: var(--step-1); font-weight: 420; letter-spacing: -0.01em; margin-bottom: .35rem; }
.mini p { font-size: var(--step--1); color: var(--text-2); }

/* ---------- 06 Open questions (light band, separated from the dark footer) ---------- */
.open { overflow: clip; isolation: isolate; border-top: 1px solid var(--line); }
.open::after { content: ""; position: absolute; z-index: -1; right: -12%; top: -30%; width: 52vw; aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle, transparent 0 46px, rgb(27 23 20 / .05) 46px 47px); -webkit-mask: radial-gradient(circle, #000 25%, transparent 70%); mask: radial-gradient(circle, #000 25%, transparent 70%); pointer-events: none; }
.open__grid { display: grid; gap: var(--space-2xl) var(--grid-gap); }
@media (min-width: 64em) { .open__grid { grid-template-columns: minmax(0, 5.5fr) minmax(0, 6.5fr); align-items: start; } .open__head { position: sticky; top: calc(var(--header-h-condensed) + 6rem); } }
.open__head .h2 { max-width: 14ch; }
.gaps { border-top: 1px solid var(--line-strong); }
.gap { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; padding: 1.5rem 0; border-bottom: 1px solid var(--line-strong); }
.gap__n { font-family: var(--font-mono); font-size: .75rem; color: var(--blood-700); padding-top: .5rem; letter-spacing: .06em; }
.gap__t { font-family: var(--font-display); font-variation-settings: var(--fr-display); font-optical-sizing: auto; font-size: var(--step-3); line-height: 1.08; font-weight: 340; letter-spacing: -0.022em; color: var(--ink); }
.gap p { margin-top: .45rem; color: var(--text-2); font-size: var(--step--1); max-width: 48ch; }

/* Print */
@media print {
  .subnav, .lib__controls, .entry__copy, .loupe__dots { display: none !important; }
  .loupe { position: static; background: none; }
  .entry[hidden] { display: grid !important; }
}
@media (max-width: 40em) {
  .cascade__fig { padding: .9rem .6rem; border-radius: var(--r-lg); }
  .cascade__figtitle { padding-inline: .4rem; }
  .cas-node text { font-size: 17px; }
  .cas-node .cas-sub { font-size: 14px; }
  .cas-note, .cas-zone { font-size: 13.5px; }
  .cas-test__t { font-size: 13px; }
}

/* ---------- Round 2 additions ---------- */
/* No-JS: header never transparent (site.js cannot add its dark-band state) */
.no-js .site-header::before { opacity: 1; }
/* Sub-nav adopts a night variant over dark bands (set by science.js) */
.subnav { transition: background-color var(--dur-3) var(--ease-out), box-shadow var(--dur-3); }
.subnav.is-on-dark { background: rgb(21 17 15 / .88); box-shadow: 0 1px 0 var(--line-night); }
.subnav.is-on-dark .subnav__link { color: var(--on-night-2); }
.subnav.is-on-dark .subnav__link:hover { color: var(--on-night); background: rgb(244 238 228 / .08); }
.subnav.is-on-dark .subnav__link[aria-current="location"] { background: var(--on-night); color: var(--night); }
.subnav.is-on-dark :focus-visible { outline-color: #8DB8F0; }
/* Library: awaiting-citation entries are compact rows */
.refs.lib__list li.entry--ph { grid-template-columns: 2.75rem minmax(0, 1fr); padding: 1rem 0; }
.entry--ph .entry__cite { display: block; margin-top: .25rem; }
.entry--ph .entry__title { font-family: var(--font-sans); font-size: var(--step-0); font-weight: 550; letter-spacing: 0; line-height: 1.35; }
.entry--ph .entry__authors, .entry--ph .entry__src { display: none; }
.entry--ph .entry__sum { margin-top: .4rem; border: 0; padding: 0; }
.entry--ph .entry__sumk { display: none; }
.entry--ph .entry__meta { display: none; }
@media (min-width: 64em) { .refs.lib__list li.entry--ph { grid-template-columns: 4rem minmax(0, 1fr) 17rem; } .entry--ph .entry__meta { display: flex; padding-top: .3rem; } }
.lib__more { display: flex; align-items: center; justify-content: center; gap: .6rem; width: 100%; min-height: 56px; margin-top: 0; border-bottom: 1px dashed var(--line-strong); font-family: var(--font-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); transition: background-color var(--dur-2), color var(--dur-2); }
.lib__more:hover { background: var(--raised); color: var(--ink); }
.lib__more svg { width: 12px; height: 12px; transition: transform var(--dur-3) var(--ease-out); }
.lib__more[aria-expanded="true"] svg { transform: rotate(180deg); }
@media (max-width: 47.99em) { .entry__title { font-size: var(--step-1); text-wrap: pretty; } }
/* Copy citation: quiet until the entry is hovered or focused (fine pointers) */
@media (hover: hover) and (pointer: fine) {
  .entry__copy { opacity: 0; transition: opacity var(--dur-2), background-color var(--dur-2), color var(--dur-2), border-color var(--dur-2); }
  .entry:hover .entry__copy, .entry:focus-within .entry__copy, .entry__copy.is-done { opacity: 1; }
}
/* Shared components at 12px minimum on this page */
#main .tag, #main .evidence-level, #main .illustrative, #main .figcap { font-size: .75rem; }
.lp-label .lc { text-transform: none; }
.loupe.is-zooming .lv { will-change: transform, opacity; }
.lib__check { display: none; }
@media (max-width: 47.99em) { .lp-label--minor { display: none; } }
/* Dial: two-column hero at 64–90em leaves less room for rim labels */
@media (min-width: 64em) and (max-width: 89.99em) { .dial__stage { width: 64%; } }
@media (min-width: 64em) and (max-width: 74.99em) { .dial__stage { width: 58%; transform: translateX(-7%); } }
@media (min-width: 48em) { .subnav__list { -webkit-mask-image: none; mask-image: none; } }

/* ---------- Round 3 fixes ---------- */
/* Page-owned text ≥12px */
#library .chip__count { font-size: .75rem; }
/* Cascade SVG: the viewBox scales down on phones, so set user-unit sizes that render ≥12px */
@media (max-width: 22.49em) { .cas-node text { font-size: 20px; } .cas-node .cas-sub, .cas-note, .cas-zone, .cas-test__t { font-size: 20px; letter-spacing: 0; } }
@media (min-width: 22.5em) and (max-width: 29.99em) { .cas-node text { font-size: 18px; } .cas-node .cas-sub, .cas-note, .cas-zone, .cas-test__t { font-size: 17.5px; letter-spacing: 0; } }
@media (min-width: 30em) and (max-width: 39.99em) { .cas-note, .cas-zone, .cas-test__t { font-size: 13.5px; } }
@media (min-width: 40em) { .cas-note, .cas-zone, .cas-test__t { font-size: 12px; } }
@media (min-width: 64em) and (max-width: 79.99em) { .cas-note, .cas-zone, .cas-test__t, .cas-node .cas-sub { font-size: 13.5px; } }
@media (max-width: 29.99em) {
  /* larger pill labels need larger pills */
  .cas-test__pill[width="62"] { x: -44px; width: 88px; y: -14px; height: 28px; rx: 14px; }
  .cas-test__pill[width="52"] { x: -34px; width: 68px; y: -14px; height: 28px; rx: 14px; }
  .cas-test__t { transform: translateY(2px); }
}
/* Ladder: empty rungs are recessive (never taller than filled ones); axis states what height means */
.rung__none { font-family: var(--font-sans); font-size: var(--step--1); letter-spacing: 0; line-height: 1.4; }
.ladder__axis { display: none; }
@media (min-width: 64em) {
  .rung.rung--empty { --h: 100; }
  .rung--empty .rung__bar { background: none; border-color: rgb(62 74 82 / .55); }
  .ladder__axis { display: flex; align-items: center; gap: .5rem; margin-top: .6rem; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--slate-700); }
  .ladder__axis svg { width: 40px; height: 10px; }
}
.lane__k { font-weight: 600; color: var(--ink); }
/* Library empty state: point at matching hidden placeholders */
.lib__emptyph { margin-top: .4rem; color: var(--ink-2); }
.lib__emptyph button { font-weight: 600; }
/* Mobile sticky loupe: same grain as the band, soft bottom edge */
@media (max-width: 63.99em) {
  .loupe { background: var(--night); -webkit-mask-image: linear-gradient(#000 calc(100% - 24px), transparent); mask-image: linear-gradient(#000 calc(100% - 24px), transparent); isolation: isolate; }
  .loupe::before { content: ""; position: absolute; inset: 0; background-image: var(--grain); opacity: .55; mix-blend-mode: screen; pointer-events: none; z-index: -1; }
}
/* No-JS: the header stays full height, so the sub-nav does not stick under it */
.no-js .subnav { position: static; }
@media (min-width: 64em) {
  .ladder__axis::after { content: ""; order: 1; flex: 1; height: 1px; background: currentColor; opacity: .45; }
  .ladder__axis svg { order: 2; width: 10px; margin-left: -8px; }
}
@media (max-width: 29.99em) {
  .cascade__svg { overflow: visible; }
  .cascade__svg .cas-note[text-anchor="middle"]:last-of-type { text-anchor: start; }
}
/* Round 4 polish */
#lib-sort.lib__sort:focus-visible, .lib__sort:focus-visible { border-radius: var(--r-pill); }
.rung__none { text-wrap: balance; }
@media (max-width: 29.99em) { .cas-note--xl { transform: translateX(-8px); } }
/* Nerve figure: the viewBox scales down, so labels are sized to render ≥12px */
.nv-t, .nv-t--caution { font-size: 14px; }
@media (max-width: 47.99em) { .nv-t { font-size: 15px; letter-spacing: .06em; } .nv-t--caution { font-size: 15px; letter-spacing: .1em; } }
@media (max-width: 22.49em) { .nv-t, .nv-t--caution { font-size: 18px; letter-spacing: .04em; } }
@media (min-width: 48em) and (max-width: 63.99em) { .nv-t, .nv-t--caution { font-size: 14.5px; } }
@media (min-width: 64em) and (max-width: 79.99em) { .nv-t, .nv-t--caution { font-size: 18px; letter-spacing: .04em; } }
/* Matrix now counts listed studies */
.matrix__table td { width: 15%; }
.mk-n { font-family: var(--font-display); font-variation-settings: var(--fr-display); font-size: var(--step-1); line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; }
.mk-n--key { font-size: var(--step-0); display: inline-block; min-width: 1.1em; margin-right: .35rem; }
.lane__list--dots li { padding-block: .3rem; }
