:root {
  color-scheme: dark;
  --bg: oklch(0.18 0.018 205);
  --bg-deep: oklch(0.135 0.014 205);
  --paper: oklch(0.935 0.016 82);
  --paper-strong: oklch(0.98 0.008 82);
  --paper-muted: oklch(0.76 0.018 82);
  --panel: oklch(0.27 0.018 205 / 0.72);
  --panel-solid: oklch(0.225 0.018 205);
  --panel-soft: oklch(0.96 0.012 82 / 0.07);
  --line: oklch(0.91 0.015 82 / 0.16);
  --line-strong: oklch(0.91 0.015 82 / 0.34);
  --accent: oklch(0.72 0.115 46);
  --accent-soft: oklch(0.72 0.115 46 / 0.16);
  --teal: oklch(0.72 0.065 182);
  --focus: oklch(0.9 0.09 89);
  --danger: oklch(0.69 0.12 25);
  --cortex: #d9786a;
  --white-matter: #e4d7b5;
  --ventricles: #69a9d1;
  --thalamus: #70a9a1;
  --hippocampus: #c18bc7;
  --basal-ganglia: #e1ad59;
  --cerebellum: #b98d9f;
  --brainstem: #89a86b;
  --font-display: "Literata", Georgia, serif;
  --font-body: "Onest", "Segoe UI", sans-serif;
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --radius-sm: 0.65rem;
  --radius-md: 1rem;
  --radius-lg: 1.4rem;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scrollbar-color: var(--line-strong) transparent;
}

body {
  min-width: 0;
  margin: 0;
  overflow-x: clip;
  background:
    radial-gradient(circle at 13% 8%, oklch(0.48 0.06 178 / 0.19), transparent 27rem),
    radial-gradient(circle at 92% 23%, oklch(0.47 0.08 48 / 0.13), transparent 30rem),
    linear-gradient(145deg, var(--bg), var(--bg-deep));
  color: var(--paper);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

button,
input {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  color: inherit;
}

a {
  color: var(--teal);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.22em;
}

a:hover {
  color: var(--paper-strong);
}

svg {
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
summary:focus-visible {
  outline: 0.2rem solid var(--focus);
  outline-offset: 0.2rem;
}

[hidden] {
  display: none !important;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 100;
  inset: 0 auto auto var(--space-md);
  transform: translateY(-140%);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  background: var(--paper-strong);
  color: var(--bg-deep);
  padding: var(--space-sm) var(--space-md);
  font-weight: 700;
  text-decoration: none;
  transition: transform 180ms var(--ease-out);
}

.skip-link:focus {
  transform: translateY(0);
}

.ambient-field {
  position: fixed;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.ambient-field span {
  position: absolute;
  width: 32rem;
  aspect-ratio: 1;
  border: 1px solid oklch(0.92 0.02 82 / 0.045);
  border-radius: 50%;
}

.ambient-field span:nth-child(1) {
  inset: -18rem auto auto -12rem;
}

.ambient-field span:nth-child(2) {
  inset: 28% -20rem auto auto;
  width: 45rem;
}

.ambient-field span:nth-child(3) {
  inset: auto auto -24rem 25%;
  width: 53rem;
}

.topbar {
  position: sticky;
  z-index: 30;
  top: 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: calc(4.5rem + var(--safe-top));
  padding: calc(var(--space-sm) + var(--safe-top)) clamp(var(--space-md), 3vw, var(--space-xl)) var(--space-sm);
  border-bottom: 1px solid var(--line);
  background: oklch(0.18 0.018 205 / 0.76);
  backdrop-filter: blur(22px) saturate(125%);
  -webkit-backdrop-filter: blur(22px) saturate(125%);
}

.site-return,
.atlas-mark {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
}

.site-return {
  width: max-content;
  min-height: 2.75rem;
  color: var(--paper-muted);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 180ms var(--ease-out), transform 180ms var(--ease-out);
}

.site-return:hover {
  color: var(--paper-strong);
  transform: translateX(-0.15rem);
}

.site-return svg,
.icon-button svg,
.round-control svg,
.play-button svg {
  width: 1.25rem;
  height: 1.25rem;
}

.atlas-mark {
  justify-self: center;
  line-height: 1.2;
}

.atlas-mark__index,
.micro-label,
.eyebrow,
.stage-meta,
.rail-heading,
.source-grid article > span {
  color: var(--paper-muted);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.atlas-mark__index {
  color: var(--accent);
}

.atlas-mark__name {
  font-family: var(--font-display);
  font-size: 0.98rem;
  font-weight: 650;
}

.icon-button,
.round-control,
.play-button {
  appearance: none;
  display: inline-grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--panel-soft);
  cursor: pointer;
  transition: transform 180ms var(--ease-out), background-color 180ms var(--ease-out), border-color 180ms var(--ease-out);
}

.icon-button {
  justify-self: end;
}

.icon-button:hover,
.round-control:hover,
.play-button:hover,
.round-control.is-active {
  transform: translateY(-0.1rem);
  border-color: var(--line-strong);
  background: var(--accent-soft);
}

.settings-panel {
  position: absolute;
  z-index: 5;
  top: calc(100% + var(--space-sm));
  right: clamp(var(--space-md), 3vw, var(--space-xl));
  width: min(calc(100vw - 2rem), 23rem);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-lg);
  background: oklch(0.22 0.018 205 / 0.94);
  padding: var(--space-lg);
  box-shadow: 0 1.8rem 5rem oklch(0.08 0.01 205 / 0.45);
  backdrop-filter: blur(24px) saturate(120%);
  -webkit-backdrop-filter: blur(24px) saturate(120%);
  transform-origin: top right;
  animation: panel-in 280ms var(--ease-expo) both;
}

@keyframes panel-in {
  from { opacity: 0; transform: translateY(-0.5rem) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-md);
}

.panel-heading h2,
.reading-panel h2,
.selected-structure h2 {
  margin: var(--space-2xs) 0 0;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 650;
  line-height: 1.15;
}

.text-button {
  appearance: none;
  min-height: 2.75rem;
  border: 0;
  background: none;
  color: var(--teal);
  padding: 0 var(--space-xs);
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
}

.text-button:hover {
  color: var(--paper-strong);
}

.quality-picker {
  display: grid;
  gap: var(--space-xs);
  margin: var(--space-lg) 0;
  border: 0;
  padding: 0;
}

.quality-picker legend {
  margin-bottom: var(--space-sm);
  color: var(--paper-muted);
  font-size: 0.78rem;
  font-weight: 600;
}

.quality-picker label {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0 var(--space-sm);
  min-height: 3.6rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: var(--space-sm);
  cursor: pointer;
  transition: background-color 180ms var(--ease-out), border-color 180ms var(--ease-out);
}

.quality-picker label:has(input:checked) {
  border-color: oklch(0.72 0.115 46 / 0.7);
  background: var(--accent-soft);
}

.quality-picker input {
  grid-row: 1 / span 2;
  accent-color: var(--accent);
}

.quality-picker span,
.switch-row strong {
  font-size: 0.86rem;
  font-weight: 650;
}

.quality-picker small,
.switch-row small {
  display: block;
  color: var(--paper-muted);
  font-size: 0.72rem;
}

.switch-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: var(--space-md);
  border-top: 1px solid var(--line);
  padding-top: var(--space-md);
  cursor: pointer;
}

.switch-row input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.switch-row i {
  position: relative;
  display: block;
  width: 2.9rem;
  height: 1.65rem;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: var(--panel-soft);
  transition: background-color 180ms var(--ease-out);
}

.switch-row i::after {
  content: "";
  position: absolute;
  inset: 0.2rem auto auto 0.2rem;
  width: 1.12rem;
  height: 1.12rem;
  border-radius: 50%;
  background: var(--paper-muted);
  transition: transform 220ms var(--ease-out), background-color 220ms var(--ease-out);
}

.switch-row input:checked + i {
  background: var(--accent-soft);
}

.switch-row input:checked + i::after {
  transform: translateX(1.22rem);
  background: var(--accent);
}

.switch-row input:focus-visible + i {
  outline: 0.2rem solid var(--focus);
  outline-offset: 0.2rem;
}

.settings-note {
  margin: var(--space-md) 0 0;
  color: var(--paper-muted);
  font-size: 0.72rem;
}

main {
  width: min(100%, 112rem);
  margin-inline: auto;
  padding: 0 clamp(var(--space-md), 3vw, var(--space-2xl)) calc(var(--space-3xl) + var(--safe-bottom));
}

.intro {
  display: grid;
  grid-template-columns: minmax(3rem, 0.18fr) minmax(0, 1.12fr) minmax(12rem, 0.7fr);
  gap: clamp(var(--space-lg), 4vw, var(--space-3xl));
  align-items: end;
  padding: clamp(var(--space-2xl), 6vw, 6rem) 0 clamp(var(--space-xl), 4vw, var(--space-3xl));
}

.intro__index {
  align-self: start;
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
}

.eyebrow {
  margin: 0 0 var(--space-md);
  color: var(--teal);
}

.intro h1 {
  max-width: 18ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 6vw, 6.2rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 0.98;
  text-wrap: balance;
}

.intro__copy > p:last-child {
  max-width: 65ch;
  margin: var(--space-lg) 0 0;
  color: var(--paper-muted);
  font-size: clamp(0.98rem, 1.2vw, 1.12rem);
}

.intro__orientation {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-xs);
  color: var(--paper-muted);
  font-size: 0.72rem;
}

.intro__orientation span:not(.orientation-line) {
  display: grid;
  gap: var(--space-2xs);
}

.intro__orientation b {
  color: var(--paper-strong);
  font-family: var(--font-display);
  font-size: 1.15rem;
}

.orientation-line {
  height: 1px;
  background: linear-gradient(90deg, var(--accent), var(--line-strong));
}

.mode-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 52rem;
  margin: 0 auto var(--space-lg);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: oklch(0.24 0.018 205 / 0.56);
  padding: var(--space-2xs);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.mode-switch__button {
  appearance: none;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 var(--space-sm);
  align-items: center;
  min-height: 4.4rem;
  border: 0;
  border-radius: calc(var(--radius-md) - 0.2rem);
  background: transparent;
  color: var(--paper-muted);
  padding: var(--space-sm) var(--space-md);
  text-align: left;
  cursor: pointer;
  transition: background-color 220ms var(--ease-out), color 220ms var(--ease-out), transform 220ms var(--ease-out);
}

.mode-switch__button > span {
  grid-row: 1 / span 2;
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.1rem;
}

.mode-switch__button strong {
  color: inherit;
  font-size: 0.88rem;
  font-weight: 650;
}

.mode-switch__button small {
  font-size: 0.69rem;
}

.mode-switch__button:hover {
  color: var(--paper-strong);
}

.mode-switch__button.is-active {
  background: oklch(0.91 0.016 82 / 0.1);
  color: var(--paper-strong);
  transform: translateY(-0.05rem);
}

.atlas-view {
  opacity: 0;
  transform: translateY(0.7rem);
}

.atlas-view.is-active {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 420ms var(--ease-out), transform 420ms var(--ease-out);
}

.viewer-grid {
  display: grid;
  gap: var(--space-md);
  min-height: min(70rem, calc(100svh - 10rem));
}

.viewer-grid--mri {
  grid-template-columns: minmax(12rem, 0.68fr) minmax(28rem, 2.35fr) minmax(15rem, 0.9fr);
}

.viewer-grid--anatomy {
  grid-template-columns: minmax(14rem, 0.76fr) minmax(28rem, 2.1fr) minmax(17rem, 0.9fr);
}

.story-rail,
.reading-panel,
.anatomy-intro,
.structure-panel {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--panel);
  padding: clamp(var(--space-md), 1.6vw, var(--space-lg));
  backdrop-filter: blur(18px) saturate(110%);
  -webkit-backdrop-filter: blur(18px) saturate(110%);
}

.story-rail,
.reading-panel,
.anatomy-intro,
.structure-panel {
  align-self: stretch;
}

.story-rail {
  display: flex;
  flex-direction: column;
}

.rail-heading {
  display: flex;
  justify-content: space-between;
  gap: var(--space-sm);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--line);
}

.tour-list {
  display: grid;
  gap: var(--space-2xs);
  margin: var(--space-md) 0;
  padding: 0;
  list-style: none;
}

.tour-list button {
  appearance: none;
  display: grid;
  grid-template-columns: 2rem 1fr;
  gap: 0 var(--space-sm);
  width: 100%;
  min-height: 4.3rem;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--paper-muted);
  padding: var(--space-sm);
  text-align: left;
  cursor: pointer;
  transition: background-color 180ms var(--ease-out), color 180ms var(--ease-out), border-color 180ms var(--ease-out), transform 180ms var(--ease-out);
}

.tour-list button:hover {
  color: var(--paper-strong);
  transform: translateX(0.16rem);
}

.tour-list li.is-current button {
  border-color: var(--line);
  background: var(--panel-soft);
  color: var(--paper-strong);
}

.tour-list button > span {
  grid-row: 1 / span 2;
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.78rem;
}

.tour-list strong {
  font-size: 0.81rem;
  font-weight: 650;
  line-height: 1.3;
}

.tour-list small {
  margin-top: var(--space-2xs);
  color: var(--paper-muted);
  font-size: 0.66rem;
  line-height: 1.3;
}

.pill-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  min-height: 2.75rem;
  border: 1px solid oklch(0.72 0.115 46 / 0.52);
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--paper-strong);
  padding: 0.65rem 1rem;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 180ms var(--ease-out), transform 180ms var(--ease-out), border-color 180ms var(--ease-out);
}

.pill-button svg {
  width: 1rem;
  height: 1rem;
}

.pill-button:hover {
  transform: translateY(-0.1rem);
  border-color: var(--accent);
  background: oklch(0.72 0.115 46 / 0.24);
}

.story-rail > .pill-button {
  width: 100%;
  margin-top: auto;
}

.stage-shell {
  position: relative;
  min-width: 0;
  min-height: 32rem;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(oklch(0.76 0.02 82 / 0.034) 1px, transparent 1px),
    linear-gradient(90deg, oklch(0.76 0.02 82 / 0.034) 1px, transparent 1px),
    radial-gradient(circle at 50% 45%, oklch(0.37 0.035 190 / 0.6), var(--bg-deep) 64%);
  background-size: 3rem 3rem, 3rem 3rem, auto;
  contain: layout paint size;
  isolation: isolate;
}

.stage-shell::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 5rem oklch(0.08 0.01 205 / 0.35);
  pointer-events: none;
}

.stage-shell canvas {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  touch-action: none;
  cursor: grab;
}

.stage-shell canvas:active {
  cursor: grabbing;
}

.stage-meta {
  position: absolute;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  width: 100%;
  color: var(--paper-muted);
  pointer-events: none;
}

.stage-meta--top {
  inset: 0 0 auto;
  padding: var(--space-md);
}

.stage-meta > span:first-child {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
}

.live-dot {
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 0.2rem oklch(0.72 0.065 182 / 0.13);
}

.orientation-marker {
  position: absolute;
  z-index: 4;
  top: 50%;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: oklch(0.16 0.015 205 / 0.66);
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.76rem;
  font-weight: 650;
  transform: translateY(-50%);
  pointer-events: none;
}

.orientation-marker--left { left: var(--space-md); }
.orientation-marker--right { right: var(--space-md); }

.stage-controls {
  position: absolute;
  z-index: 4;
  inset: auto var(--space-md) var(--space-md) auto;
  display: flex;
  gap: var(--space-xs);
}

.gesture-hint {
  position: absolute;
  z-index: 4;
  inset: auto auto var(--space-md) var(--space-md);
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  max-width: calc(100% - 8rem);
  border: 1px solid var(--line);
  border-radius: 999px;
  background: oklch(0.16 0.015 205 / 0.72);
  color: var(--paper-muted);
  padding: 0.55rem 0.75rem;
  font-size: 0.66rem;
  pointer-events: none;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: opacity 260ms var(--ease-out), transform 260ms var(--ease-out);
}

.gesture-hint.is-dismissed {
  opacity: 0;
  transform: translateY(0.35rem);
}

.gesture-hint svg {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
}

.stage-loader {
  position: absolute;
  z-index: 7;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: var(--space-md);
  background: var(--bg-deep);
  color: var(--paper-muted);
  font-size: 0.78rem;
  transition: opacity 400ms var(--ease-out), visibility 400ms;
}

.stage-loader.is-complete {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loader-orbit,
.selection-orbit {
  position: relative;
  display: block;
  width: 2.6rem;
  height: 2.6rem;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
}

.loader-orbit::after,
.selection-orbit::after {
  content: "";
  position: absolute;
  inset: -0.2rem auto auto 50%;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--accent);
  transform: translateX(-50%);
  transform-origin: 50% 1.5rem;
  animation: orbit 1.2s linear infinite;
}

@keyframes orbit {
  to { transform: translateX(-50%) rotate(360deg); }
}

.reading-panel {
  display: flex;
  flex-direction: column;
}

.overlay-toggle {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  min-height: 2.75rem;
  border: 0;
  background: transparent;
  color: var(--paper-muted);
  padding: 0;
  font-size: 0.7rem;
  font-weight: 700;
  cursor: pointer;
}

.overlay-toggle > span {
  width: 1.7rem;
  height: 0.9rem;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: var(--panel-soft);
  transition: background-color 180ms var(--ease-out);
}

.overlay-toggle.is-active > span {
  background: linear-gradient(90deg, var(--cortex), var(--thalamus), var(--ventricles));
}

.slice-note {
  margin: var(--space-md) 0 var(--space-lg);
  color: var(--paper-muted);
  font-size: 0.82rem;
}

.region-legend {
  display: grid;
  gap: var(--space-xs);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

.region-legend__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0 var(--space-sm);
  align-items: center;
  min-height: 3.25rem;
  border-bottom: 1px solid var(--line);
  padding: var(--space-xs) 0;
  animation: legend-in 280ms var(--ease-out) both;
}

@keyframes legend-in {
  from { opacity: 0; transform: translateY(0.35rem); }
  to { opacity: 1; transform: translateY(0); }
}

.region-swatch {
  width: 0.72rem;
  height: 0.72rem;
  border: 1px solid oklch(0.98 0.008 82 / 0.34);
  border-radius: 50%;
}

.region-legend__item strong {
  display: block;
  overflow: hidden;
  color: var(--paper-strong);
  font-size: 0.76rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.region-legend__item small {
  display: block;
  color: var(--paper-muted);
  font-size: 0.66rem;
}

.readout-note {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-sm);
  margin-top: auto;
  border-top: 1px solid var(--line);
  padding-top: var(--space-md);
  color: var(--paper-muted);
}

.readout-note svg {
  width: 1rem;
  height: 1rem;
  margin-top: 0.18rem;
  color: var(--teal);
}

.readout-note p {
  margin: 0;
  font-size: 0.68rem;
}

.slice-scrubber {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: var(--space-md);
  margin-top: var(--space-md);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--panel);
  padding: var(--space-md) clamp(var(--space-md), 2.5vw, var(--space-xl));
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.scrubber-end {
  display: grid;
  color: var(--paper-muted);
  font-size: 0.62rem;
}

.scrubber-end b {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.15rem;
}

.scrubber-end--right {
  text-align: right;
}

.range-wrap {
  position: relative;
  display: grid;
  align-items: center;
  height: 2.75rem;
}

.range-wrap input {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 2rem;
  margin: 0;
  appearance: none;
  background: transparent;
  cursor: ew-resize;
}

.range-wrap input::-webkit-slider-runnable-track {
  height: 1px;
  background: transparent;
}

.range-wrap input::-moz-range-track {
  height: 1px;
  background: transparent;
}

.range-wrap input::-webkit-slider-thumb {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: -0.58rem;
  appearance: none;
  border: 0.22rem solid var(--bg);
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
}

.range-wrap input::-moz-range-thumb {
  width: 0.85rem;
  height: 0.85rem;
  border: 0.22rem solid var(--bg);
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
}

.range-progress,
.slice-ticks {
  position: absolute;
  inset: 50% 0 auto;
  height: 1px;
  transform: translateY(-50%);
  pointer-events: none;
}

.range-progress {
  z-index: 1;
  background: linear-gradient(90deg, var(--accent) 0 var(--range-progress, 13%), var(--line-strong) var(--range-progress, 13%) 100%);
}

.slice-ticks {
  z-index: 0;
  height: 0.45rem;
  background: repeating-linear-gradient(90deg, var(--line-strong) 0 1px, transparent 1px calc(100% / 16));
}

.slice-scrubber output {
  min-width: 4.5rem;
  color: var(--paper-strong);
  font-family: var(--font-display);
  font-size: 0.86rem;
  text-align: right;
}

.pause-icon,
.play-button[aria-pressed="true"] .play-icon {
  display: none;
}

.play-button[aria-pressed="true"] .pause-icon {
  display: block;
}

.anatomy-intro {
  display: flex;
  flex-direction: column;
}

.anatomy-intro h2,
.methods h2 {
  margin: var(--space-sm) 0 var(--space-md);
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 2.8vw, 3rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.05;
}

.anatomy-intro > p {
  margin: 0;
  color: var(--paper-muted);
  font-size: 0.84rem;
}

.action-cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-xl);
}

.assembly-scale {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--space-sm);
  margin-top: auto;
  color: var(--paper-muted);
  font-size: 0.63rem;
}

.assembly-scale i {
  height: 1px;
  background: linear-gradient(90deg, var(--line), var(--accent));
}

.structure-panel {
  display: flex;
  min-height: 0;
  flex-direction: column;
}

.selected-structure {
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--line);
}

.selection-empty {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: var(--space-md);
}

.selection-orbit {
  width: 2.8rem;
  height: 2.8rem;
  border-color: var(--selected-color, var(--line-strong));
  transition: border-color 220ms var(--ease-out), background-color 220ms var(--ease-out);
}

.selection-orbit::after {
  transform-origin: 50% 1.6rem;
  background: var(--selected-color, var(--accent));
}

.selected-structure > p {
  margin: var(--space-sm) 0 0;
  color: var(--paper-muted);
  font-size: 0.74rem;
}

.selected-structure > .selection-caveat {
  padding: 0.65rem 0.72rem;
  border-inline-start: 2px solid var(--selected-color, var(--accent));
  border-inline-start: 2px solid color-mix(in srgb, var(--selected-color, var(--accent)) 72%, white);
  border-radius: 0 0.65rem 0.65rem 0;
  background: rgba(217, 120, 106, 0.1);
  background: color-mix(in srgb, var(--selected-color, var(--accent)) 10%, transparent);
  color: var(--paper);
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.selection-actions {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  margin-top: var(--space-md);
}

.pill-button--compact {
  min-height: 2.5rem;
  padding-block: 0.45rem;
}

.system-list {
  display: grid;
  gap: var(--space-xs);
  min-height: 0;
  margin-top: var(--space-md);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

.system-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-sm);
  min-height: 3.35rem;
  border-bottom: 1px solid var(--line);
  color: var(--paper-muted);
}

.system-row__swatch {
  width: 0.72rem;
  height: 0.72rem;
  border: 1px solid oklch(0.98 0.008 82 / 0.34);
  border-radius: 50%;
  background: var(--system-color);
}

.system-row__select,
.system-row__visibility {
  appearance: none;
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
}

.system-row__select {
  min-width: 0;
  min-height: 2.75rem;
  padding: 0;
  text-align: left;
}

.system-row__select strong,
.system-row__select small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.system-row__select strong {
  color: var(--paper-strong);
  font-size: 0.75rem;
  font-weight: 600;
}

.system-row__select small {
  font-size: 0.63rem;
}

.system-row__visibility {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  transition: background-color 180ms var(--ease-out), color 180ms var(--ease-out);
}

.system-row__visibility:hover {
  background: var(--panel-soft);
  color: var(--paper-strong);
}

.system-row__visibility svg {
  width: 1rem;
  height: 1rem;
}

.system-row.is-hidden {
  opacity: 0.5;
}

.methods {
  display: grid;
  grid-template-columns: minmax(15rem, 0.7fr) minmax(20rem, 1.3fr);
  gap: clamp(var(--space-xl), 5vw, 6rem);
  margin-top: clamp(var(--space-3xl), 9vw, 8rem);
  padding-top: clamp(var(--space-xl), 5vw, var(--space-3xl));
  border-top: 1px solid var(--line);
}

.methods__copy {
  max-width: 70ch;
  color: var(--paper-muted);
}

.methods__copy p {
  margin: 0;
}

.methods__copy p + p {
  margin-top: var(--space-md);
}

.methods details {
  grid-column: 1 / -1;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.methods summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  min-height: 4rem;
  color: var(--paper-strong);
  font-size: 0.82rem;
  font-weight: 650;
  cursor: pointer;
  list-style: none;
}

.methods summary::-webkit-details-marker {
  display: none;
}

.methods summary svg {
  width: 1rem;
  height: 1rem;
  transition: transform 220ms var(--ease-out);
}

.methods details[open] summary svg {
  transform: rotate(180deg);
}

.source-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(var(--space-lg), 4vw, var(--space-2xl));
  padding: var(--space-lg) 0 var(--space-xl);
}

.source-grid article > span {
  color: var(--accent);
}

.source-grid h3 {
  margin: var(--space-sm) 0;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 650;
}

.source-grid p,
.source-grid a {
  font-size: 0.72rem;
}

.source-grid p {
  color: var(--paper-muted);
}

.status-toast {
  position: fixed;
  z-index: 50;
  inset: auto var(--space-md) calc(var(--space-md) + var(--safe-bottom)) auto;
  max-width: min(24rem, calc(100vw - 2rem));
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: oklch(0.22 0.018 205 / 0.94);
  color: var(--paper-strong);
  padding: 0.7rem 1rem;
  font-size: 0.75rem;
  box-shadow: 0 1rem 3rem oklch(0.08 0.01 205 / 0.4);
  opacity: 0;
  transform: translateY(0.6rem);
  pointer-events: none;
  transition: opacity 220ms var(--ease-out), transform 220ms var(--ease-out);
}

.status-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 76rem) {
  .viewer-grid--mri {
    grid-template-columns: minmax(11rem, 0.65fr) minmax(28rem, 2fr);
  }

  .viewer-grid--mri .reading-panel {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(13rem, 0.65fr) minmax(18rem, 1.35fr);
    gap: 0 var(--space-xl);
  }

  .viewer-grid--mri .reading-panel .panel-heading,
  .viewer-grid--mri .slice-note,
  .viewer-grid--mri .readout-note {
    grid-column: 1;
  }

  .viewer-grid--mri .region-legend {
    grid-column: 2;
    grid-row: 1 / span 3;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .viewer-grid--anatomy {
    grid-template-columns: minmax(12rem, 0.7fr) minmax(28rem, 2fr);
  }

  .viewer-grid--anatomy .structure-panel {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(15rem, 0.7fr) minmax(20rem, 1.3fr);
    gap: var(--space-xl);
  }

  .system-list {
    grid-column: 2;
    grid-row: 1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0;
  }
}

@media (max-width: 58rem) {
  .topbar {
    grid-template-columns: 1fr auto;
  }

  .atlas-mark {
    display: none;
  }

  .intro {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .intro__orientation {
    grid-column: 2;
  }

  .viewer-grid--mri,
  .viewer-grid--anatomy {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .story-rail {
    order: 2;
  }

  .viewer-grid--mri .stage-shell,
  .viewer-grid--anatomy .stage-shell {
    order: 1;
    min-height: clamp(29rem, 68svh, 46rem);
  }

  .viewer-grid--mri .reading-panel,
  .viewer-grid--anatomy .structure-panel,
  .viewer-grid--anatomy .anatomy-intro {
    order: 3;
    grid-column: auto;
  }

  .tour-list {
    grid-template-columns: repeat(5, minmax(9rem, 1fr));
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }

  .tour-list li {
    scroll-snap-align: start;
  }

  .story-rail > .pill-button {
    width: auto;
    margin-top: 0;
    align-self: flex-start;
  }

  .anatomy-intro {
    min-height: 20rem;
  }

  .assembly-scale {
    margin-top: var(--space-xl);
  }

  .methods {
    grid-template-columns: 1fr;
  }

  .source-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 42rem) {
  main {
    padding-inline: var(--space-sm);
  }

  .topbar {
    padding-inline: var(--space-md);
  }

  .site-return span {
    max-width: 9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .intro {
    grid-template-columns: 1fr;
    gap: var(--space-md);
    padding-block: var(--space-2xl);
  }

  .intro__index {
    display: none;
  }

  .intro__orientation {
    grid-column: auto;
  }

  .intro h1 {
    font-size: clamp(2.5rem, 13vw, 4.2rem);
  }

  .mode-switch {
    position: sticky;
    z-index: 20;
    top: calc(4.5rem + var(--safe-top));
  }

  .mode-switch__button {
    grid-template-columns: auto 1fr;
    min-height: 3.75rem;
    padding: var(--space-xs) var(--space-sm);
  }

  .mode-switch__button small {
    display: none;
  }

  .viewer-grid--mri .stage-shell,
  .viewer-grid--anatomy .stage-shell {
    min-height: min(64svh, 36rem);
    border-radius: var(--radius-md);
  }

  .story-rail,
  .reading-panel,
  .anatomy-intro,
  .structure-panel,
  .slice-scrubber {
    border-radius: var(--radius-md);
  }

  .viewer-grid--mri .reading-panel,
  .viewer-grid--anatomy .structure-panel {
    display: block;
  }

  .viewer-grid--mri .region-legend,
  .system-list {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: var(--space-md);
  }

  .gesture-hint {
    max-width: calc(100% - 2rem);
    bottom: 4.1rem;
    font-size: 0.62rem;
  }

  .stage-controls {
    inset: auto var(--space-md) var(--space-md) auto;
  }

  .orientation-marker {
    top: auto;
    bottom: var(--space-md);
    transform: none;
  }

  .orientation-marker--left { left: var(--space-md); }
  .orientation-marker--right { right: 7.3rem; }

  .slice-scrubber {
    position: sticky;
    z-index: 15;
    bottom: calc(var(--space-xs) + var(--safe-bottom));
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--space-sm);
    padding: var(--space-sm);
    background: oklch(0.22 0.018 205 / 0.93);
  }

  .slice-scrubber output {
    display: none;
  }

  .scrubber-end--right {
    display: none;
  }

  .play-button {
    grid-column: 3;
    grid-row: 1;
  }

  .methods {
    padding-inline: var(--space-xs);
  }

  .status-toast {
    right: var(--space-sm);
    left: var(--space-sm);
    max-width: none;
    border-radius: var(--radius-md);
    text-align: center;
  }
}

@media (max-width: 25rem) {
  .site-return span {
    display: none;
  }

  .mode-switch__button > span {
    display: none;
  }

  .mode-switch__button {
    grid-template-columns: 1fr;
    text-align: center;
  }
}

.mobile-sheet-toggle {
  display: none;
}

@media (max-width: 47.99rem), (max-height: 32rem) and (orientation: landscape) and (pointer: coarse) {
  html {
    scrollbar-width: none;
  }

  html::-webkit-scrollbar {
    display: none;
  }

  main {
    position: relative;
    display: flex;
    width: 100%;
    max-width: none;
    flex-direction: column;
    padding: 0;
  }

  .topbar {
    position: fixed;
    z-index: 50;
    top: calc(var(--space-sm) + var(--safe-top));
    right: calc(var(--space-sm) + env(safe-area-inset-right, 0px));
    left: calc(var(--space-sm) + env(safe-area-inset-left, 0px));
    display: grid;
    grid-template-columns: auto 1fr auto;
    min-height: 2.75rem;
    padding: 0;
    border: 0;
    background: transparent;
    pointer-events: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .atlas-mark {
    display: none;
  }

  .site-return,
  .icon-button,
  .settings-panel {
    pointer-events: auto;
  }

  .site-return,
  .icon-button {
    width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    border: 1px solid var(--line-strong);
    border-radius: 50%;
    background: oklch(0.19 0.018 205 / 0.82);
    box-shadow: 0 0.65rem 2rem oklch(0.08 0.01 205 / 0.26);
    backdrop-filter: blur(18px) saturate(120%);
    -webkit-backdrop-filter: blur(18px) saturate(120%);
  }

  .site-return {
    display: grid;
    place-items: center;
  }

  .site-return span {
    display: none;
  }

  .settings-panel {
    position: fixed;
    z-index: 60;
    inset: auto calc(var(--space-sm) + env(safe-area-inset-right, 0px)) calc(var(--space-sm) + var(--safe-bottom)) calc(var(--space-sm) + env(safe-area-inset-left, 0px));
    width: auto;
    max-height: calc(100dvh - 2rem - var(--safe-top));
    overflow-y: auto;
    border-radius: 1.35rem;
    touch-action: pan-y;
    overscroll-behavior: contain;
  }

  .mode-switch {
    position: absolute;
    z-index: 35;
    top: calc(4.15rem + var(--safe-top));
    right: calc(var(--space-sm) + env(safe-area-inset-right, 0px));
    left: calc(var(--space-sm) + env(safe-area-inset-left, 0px));
    width: auto;
    max-width: none;
    margin: 0;
    border-color: var(--line-strong);
    border-radius: 999px;
    background: oklch(0.19 0.018 205 / 0.82);
    box-shadow: 0 0.65rem 2rem oklch(0.08 0.01 205 / 0.22);
  }

  .mode-switch__button {
    grid-template-columns: 1fr;
    min-height: 2.75rem;
    border-radius: 999px;
    padding: var(--space-xs) var(--space-sm);
    text-align: center;
  }

  .mode-switch__button > span,
  .mode-switch__button small {
    display: none;
  }

  .mode-switch__button strong {
    font-size: clamp(0.68rem, 3vw, 0.76rem);
    white-space: nowrap;
  }

  .intro {
    order: 3;
    margin: 0;
    padding: var(--space-3xl) var(--space-md);
  }

  .methods {
    order: 4;
    margin: 0 var(--space-md);
    padding-bottom: calc(var(--space-3xl) + var(--safe-bottom));
  }

  .atlas-view {
    position: relative;
    order: 2;
    width: 100%;
    height: 100svh;
    height: 100dvh;
    min-height: 100svh;
    min-height: 100dvh;
    opacity: 1;
    transform: none;
  }

  .atlas-view.is-active {
    transition: none;
  }

  .viewer-grid--mri,
  .viewer-grid--anatomy {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  .viewer-grid--mri .stage-shell,
  .viewer-grid--anatomy .stage-shell {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    border-radius: 0;
  }

  .stage-shell::after {
    border-radius: 0;
  }

  .stage-meta--top {
    inset: calc(7.65rem + var(--safe-top)) var(--space-sm) auto;
    width: auto;
    padding: 0;
    font-size: 0.57rem;
  }

  .story-rail {
    position: absolute;
    z-index: 18;
    top: calc(9.25rem + var(--safe-top));
    right: 0;
    left: 0;
    display: block;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    pointer-events: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .rail-heading,
  .story-rail > .pill-button {
    display: none;
  }

  .tour-list {
    display: flex;
    grid-template-columns: none;
    gap: var(--space-xs);
    margin: 0;
    padding: 0 calc(var(--space-sm) + env(safe-area-inset-right, 0px)) var(--space-xs) calc(var(--space-sm) + env(safe-area-inset-left, 0px));
    overflow-x: auto;
    pointer-events: auto;
    scroll-padding-inline: var(--space-sm);
    scrollbar-width: none;
  }

  .tour-list::-webkit-scrollbar {
    display: none;
  }

  .tour-list li {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .tour-list button {
    grid-template-columns: auto 1fr;
    width: max-content;
    min-height: 2.75rem;
    border-color: var(--line-strong);
    border-radius: 999px;
    background: oklch(0.19 0.018 205 / 0.82);
    padding: var(--space-xs) var(--space-sm);
    box-shadow: 0 0.55rem 1.5rem oklch(0.08 0.01 205 / 0.2);
    backdrop-filter: blur(16px) saturate(115%);
    -webkit-backdrop-filter: blur(16px) saturate(115%);
  }

  .tour-list li.is-current button {
    border-color: oklch(0.72 0.115 46 / 0.72);
    background: oklch(0.31 0.038 46 / 0.9);
  }

  .tour-list button > span {
    grid-row: auto;
  }

  .tour-list small {
    display: none;
  }

  .mobile-sheet-toggle {
    position: sticky;
    z-index: 3;
    top: 0;
    appearance: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    width: 100%;
    min-height: 2.75rem;
    border: 0;
    background: transparent;
    color: var(--paper-strong);
    padding: 0.65rem var(--space-2xs) var(--space-xs);
    font-size: 0.75rem;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
  }

  .mobile-sheet-toggle__handle {
    position: absolute;
    top: 0.23rem;
    left: 50%;
    width: 2.5rem;
    height: 0.18rem;
    border-radius: 999px;
    background: var(--line-strong);
    transform: translateX(-50%);
  }

  .mobile-sheet-toggle svg {
    width: 1rem;
    height: 1rem;
    transition: transform 220ms var(--ease-out);
  }

  :is(.reading-panel, .structure-panel):not(.is-collapsed) .mobile-sheet-toggle svg {
    transform: rotate(180deg);
  }

  :is(.reading-panel, .structure-panel).is-collapsed > :not(.mobile-sheet-toggle) {
    display: none !important;
  }

  .viewer-grid--mri .reading-panel,
  .viewer-grid--anatomy .structure-panel {
    position: absolute;
    z-index: 22;
    right: calc(var(--space-sm) + env(safe-area-inset-right, 0px));
    left: calc(var(--space-sm) + env(safe-area-inset-left, 0px));
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow-y: auto;
    border-color: var(--line-strong);
    border-radius: 1.25rem;
    background: oklch(0.19 0.018 205 / 0.9);
    padding: var(--space-2xs) var(--space-md) var(--space-md);
    box-shadow: 0 1.1rem 3rem oklch(0.08 0.01 205 / 0.38);
    touch-action: pan-y;
    overscroll-behavior: contain;
    backdrop-filter: blur(22px) saturate(118%);
    -webkit-backdrop-filter: blur(22px) saturate(118%);
  }

  .viewer-grid--mri .reading-panel {
    bottom: calc(5.35rem + var(--safe-bottom));
    max-height: min(36dvh, 20rem);
  }

  .viewer-grid--anatomy .structure-panel {
    bottom: calc(var(--space-sm) + var(--safe-bottom));
    max-height: min(43dvh, 23rem);
  }

  .viewer-grid--mri .reading-panel.is-collapsed,
  .viewer-grid--anatomy .structure-panel.is-collapsed {
    max-height: 3.25rem;
    overflow: hidden;
    padding-bottom: var(--space-2xs);
  }

  .viewer-grid--mri .reading-panel .panel-heading {
    margin-top: var(--space-xs);
  }

  .viewer-grid--mri .region-legend,
  .viewer-grid--anatomy .system-list {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: var(--space-md);
  }

  .viewer-grid--anatomy .system-list {
    max-height: 22dvh;
    overflow-y: auto;
    touch-action: pan-y;
  }

  .slice-scrubber {
    position: absolute;
    z-index: 24;
    right: calc(var(--space-sm) + env(safe-area-inset-right, 0px));
    bottom: calc(var(--space-sm) + var(--safe-bottom));
    left: calc(var(--space-sm) + env(safe-area-inset-left, 0px));
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    min-height: 4rem;
    gap: var(--space-xs);
    margin: 0;
    border-color: var(--line-strong);
    border-radius: 1.15rem;
    background: oklch(0.19 0.018 205 / 0.9);
    padding: var(--space-xs) var(--space-sm);
    box-shadow: 0 1.1rem 3rem oklch(0.08 0.01 205 / 0.35);
    backdrop-filter: blur(22px) saturate(118%);
    -webkit-backdrop-filter: blur(22px) saturate(118%);
  }

  .slice-scrubber output {
    display: block;
    font-size: 0.63rem;
  }

  .scrubber-end--right {
    display: none;
  }

  .range-wrap,
  .range-wrap input {
    min-height: 2.75rem;
  }

  .range-wrap input {
    height: 2.75rem;
    touch-action: pan-x;
  }

  .range-wrap input::-webkit-slider-thumb {
    width: 1.5rem;
    height: 1.5rem;
    margin-top: -0.7rem;
  }

  .range-wrap input::-moz-range-thumb {
    width: 1.05rem;
    height: 1.05rem;
  }

  .play-button {
    grid-column: 4;
    grid-row: 1;
  }

  .stage-controls {
    inset: calc(13.2rem + var(--safe-top)) calc(var(--space-sm) + env(safe-area-inset-right, 0px)) auto auto;
    flex-direction: column;
  }

  .orientation-marker {
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
  }

  .orientation-marker--left {
    left: calc(var(--space-sm) + env(safe-area-inset-left, 0px));
  }

  .orientation-marker--right {
    right: calc(var(--space-sm) + env(safe-area-inset-right, 0px));
  }

  .gesture-hint {
    right: auto;
    bottom: calc(9.35rem + var(--safe-bottom));
    left: 50%;
    max-width: calc(100% - 2rem);
    transform: translateX(-50%);
  }

  .gesture-hint.is-dismissed {
    transform: translate(-50%, 0.35rem);
  }

  .viewer-grid--anatomy .anatomy-intro {
    position: absolute;
    z-index: 19;
    top: calc(9.25rem + var(--safe-top));
    right: auto;
    left: calc(var(--space-sm) + env(safe-area-inset-left, 0px));
    display: block;
    width: max-content;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .anatomy-intro > .micro-label,
  .anatomy-intro > h2,
  .anatomy-intro > p,
  .anatomy-intro > .assembly-scale {
    display: none;
  }

  .anatomy-intro .action-cluster {
    flex-wrap: nowrap;
    gap: var(--space-xs);
    margin: 0;
  }

  .anatomy-intro .pill-button,
  .anatomy-intro .text-button {
    min-height: 2.75rem;
    border: 1px solid var(--line-strong);
    border-radius: 999px;
    background: oklch(0.19 0.018 205 / 0.84);
    box-shadow: 0 0.55rem 1.5rem oklch(0.08 0.01 205 / 0.2);
    backdrop-filter: blur(16px) saturate(115%);
    -webkit-backdrop-filter: blur(16px) saturate(115%);
  }

  .anatomy-intro .text-button {
    padding-inline: var(--space-md);
  }

  .selection-actions .pill-button--compact,
  .selection-actions .text-button,
  .system-row__select,
  .system-row__visibility {
    min-height: 2.75rem;
  }

  .status-toast {
    z-index: 70;
  }
}

@media (max-width: 47.99rem) and (max-height: 32rem) and (orientation: landscape), (max-height: 32rem) and (orientation: landscape) and (pointer: coarse) {
  .topbar {
    top: calc(var(--space-xs) + var(--safe-top));
    right: calc(var(--space-xs) + env(safe-area-inset-right, 0px));
    left: calc(var(--space-xs) + env(safe-area-inset-left, 0px));
  }

  .mode-switch {
    top: calc(var(--space-xs) + var(--safe-top));
    right: calc(4rem + env(safe-area-inset-right, 0px));
    left: calc(4rem + env(safe-area-inset-left, 0px));
  }

  .stage-meta--top {
    inset: calc(3.9rem + var(--safe-top)) calc(40vw + var(--space-md)) auto var(--space-xs);
  }

  .story-rail {
    top: calc(5.2rem + var(--safe-top));
    right: 41vw;
  }

  .viewer-grid--anatomy .anatomy-intro {
    top: calc(5.2rem + var(--safe-top));
    left: calc(var(--space-xs) + env(safe-area-inset-left, 0px));
  }

  .stage-controls {
    inset: calc(5.2rem + var(--safe-top)) calc(40vw + var(--space-md)) auto auto;
  }

  .gesture-hint {
    display: none;
  }

  .viewer-grid--mri .reading-panel,
  .viewer-grid--anatomy .structure-panel {
    right: calc(var(--space-xs) + env(safe-area-inset-right, 0px));
    left: auto;
    width: min(38vw, 20rem);
  }

  .viewer-grid--mri .reading-panel:not(.is-collapsed),
  .viewer-grid--anatomy .structure-panel:not(.is-collapsed) {
    top: calc(4.2rem + var(--safe-top));
    bottom: calc(var(--space-xs) + var(--safe-bottom));
    max-height: none;
  }

  .viewer-grid--mri .reading-panel.is-collapsed,
  .viewer-grid--anatomy .structure-panel.is-collapsed {
    top: auto;
    bottom: calc(var(--space-xs) + var(--safe-bottom));
  }

  .slice-scrubber {
    right: 40vw;
    bottom: calc(var(--space-xs) + var(--safe-bottom));
    left: calc(var(--space-xs) + env(safe-area-inset-left, 0px));
  }

  .orientation-marker--right {
    right: calc(40vw + var(--space-sm));
  }

  .viewer-grid--anatomy .system-list {
    max-height: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  .stage-shell,
  .story-rail,
  .reading-panel,
  .anatomy-intro,
  .structure-panel,
  .slice-scrubber,
  .mode-switch {
    border: 1px solid CanvasText;
  }

  .region-swatch,
  .system-row__swatch {
    forced-color-adjust: none;
  }
}
