/* The nephron learning journey extends premium.css without changing game screens. */
.nephron-journey {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
  align-items: start;
  gap: 24px;
  margin: 25px 0 34px;
  min-width: 0;
}
.nephron-map-panel,
.nephron-stage-panel {
  min-width: 0;
  border: 1px solid #40557085;
  border-radius: 22px;
  color: var(--ink, #f4efe8);
  background: #121c29;
}
.nephron-map-panel {
  position: relative;
  align-self: start;
  padding: 24px;
  overflow: visible;
  background: radial-gradient(ellipse at 48% 8%, #83e0d00c, transparent 56%), radial-gradient(ellipse at 20% 44%, #f28d8808, transparent 50%), linear-gradient(145deg, #142437, #0b1623 68%);
  box-shadow: 0 24px 75px #02050b50, inset 0 1px 0 #e0eef00e;
  scrollbar-width: thin;
  scrollbar-color: #55687d #0e1825;
}
.nephron-map-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 11px;
}
.nephron-map-heading h2,
.nephron-map-panel>h2 {
  margin: 7px 0 8px;
  color: var(--ink, #f4efe8);
  font-size: 1.35rem;
  font-weight: 550;
  line-height: 1.3;
  letter-spacing: -.035em;
}
.nephron-map-heading p,
.nephron-map-panel>p {
  color: #c6d0da;
  font-size: .81rem;
  line-height: 1.65;
  margin: 0;
}
.nephron-map-heading .path-eyebrow { font-size: .75rem; }
.nephron-map-kicker {
  color: var(--aqua, #83e0d0);
  font-size: .75rem;
  line-height: 1.45;
  font-weight: 600;
  white-space: nowrap;
}
.nephron-path {
  width: 100%;
  max-width: 450px;
  min-width: 0;
  margin: 50px auto 0;
  color: var(--ink, #f4efe8);
}
.nephron-path__map {
  position: relative;
  width: 100%;
  min-width: 0;
  aspect-ratio: 420 / 620;
  border-radius: 18px;
  background: radial-gradient(ellipse at 43% 26%, #253e533d, transparent 58%), radial-gradient(ellipse at 56% 76%, #172e4339, transparent 54%);
  isolation: isolate;
}
.nephron-path__map::before,
.nephron-path__map::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
}
.nephron-path__map::before {
  inset: 4% 3%;
  border-radius: 47%;
  background: radial-gradient(ellipse at 32% 17%, #f28d881a, transparent 34%), radial-gradient(ellipse at 76% 61%, #83e0d018, transparent 40%), radial-gradient(ellipse at 42% 89%, #99bbdf0e, transparent 43%);
  opacity: .65;
}
.nephron-path__map::after {
  inset: 1% 6%;
  border-radius: 45%;
  background: linear-gradient(112deg, transparent 23%, #e7f4ed07 38%, transparent 49%);
  mask-image: radial-gradient(ellipse, #000 56%, transparent 77%);
}
.nephron-path__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 1;
  overflow: visible;
  pointer-events: none;
}
.nephron-path__stops {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.nephron-path__zone {
  position: absolute;
  left: 1%;
  z-index: 1;
  color: #dce8ef;
  font-size: .81rem;
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: .025em;
  text-shadow: 0 2px 5px #06121e;
  pointer-events: none;
}
.nephron-path__zone--cortex { top: 43%; }
.nephron-path__zone--medulla { top: 62%; }
.nephron-path__stop {
  position: absolute;
  left: var(--stop-x);
  top: var(--stop-y);
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 9px;
  width: max-content;
  max-width: 163px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 12px;
  color: var(--ink, #f4efe8);
  background: transparent;
  transform: translate(-22px, -50%);
  text-align: left;
  cursor: pointer;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.nephron-path__stop[data-side="left"] {
  flex-direction: row-reverse;
  transform: translate(calc(-100% + 22px), -50%);
  text-align: right;
}
.nephron-path__stop:focus-visible {
  outline: 2px solid var(--aqua, #83e0d0);
  outline-offset: 5px;
}
.nephron-path__marker {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border: 1px solid #8ca1b8a1;
  border-radius: 50%;
  color: #d4dce4;
  background: radial-gradient(ellipse at 34% 12%, #536a8190, transparent 65%), linear-gradient(145deg, #31455c, #162537 78%);
  box-shadow: 0 7px 17px #02050b9c, inset 0 1px 1px #f4efe826, inset 0 -4px 8px #040b1638;
  font-size: .93rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.nephron-path__marker::before {
  content: "";
  position: absolute;
  inset: 3px 4px 64%;
  pointer-events: none;
  border-radius: 50%;
  background: linear-gradient(135deg, #f4efe82e 8%, #f4efe806 46%, #f4efe81c 56%, #f4efe802 69%);
  background-size: 220% 100%;
  background-position: 75% 0;
  opacity: .7;
}
.nephron-path__label {
  display: block;
  width: max-content;
  min-width: 0;
  max-width: 98px;
  padding: 4px 6px;
  border: 1px solid #8ea4b834;
  border-radius: 9px;
  background: #102031;
  color: #f1f7fa;
  font-size: .9rem;
  font-weight: 650;
  line-height: 1.35;
  box-shadow: 0 4px 12px #020b1538;
  text-shadow: 0 1px 2px #090e18;
  text-align: center;
  overflow-wrap: normal;
}
.nephron-path__stop[data-anatomy-key="glomerulus"] .nephron-path__label {
  position: absolute;
  left: -15px;
  top: -76px;
  width: max-content;
  max-width: 140px;
  min-width: 0;
}
.nephron-path__stop[data-anatomy-key="pct"] { width: 44px; max-width: 44px; }
.nephron-path__stop[data-anatomy-key="pct"] .nephron-path__label {
  position: absolute;
  right: calc(100% + 8px);
  top: -35px;
}
.nephron-path__state:empty { display: none; }
.nephron-path__label>strong { display: block; color: inherit; font: inherit; }
.nephron-path__label>small { display: block; color: #afbdca; font-size: .75rem; font-weight: 400; line-height: 1.35; margin-top: 3px; }
.nephron-path__name { display: block; color: inherit; font: inherit; }
.nephron-path__state { display: block; color: #d1dde7; font-size: .75rem; font-weight: 550; line-height: 1.3; margin-top: 4px; }
.nephron-path__stop[data-current="true"] .nephron-path__state,
.nephron-path__stop[data-complete="true"] .nephron-path__state { color: var(--aqua, #83e0d0); }
.nephron-path__stop[data-selected="true"]:not([data-current="true"]):not([data-complete="true"]) .nephron-path__state { color: #ffc0b7; }
.nephron-path__stop:hover .nephron-path__marker { border-color: #d0e2ed; background: radial-gradient(ellipse at 34% 12%, #718ea338, transparent 65%), linear-gradient(145deg, #304a60, #20374c); box-shadow: 0 8px 19px #02050b9c, 0 0 0 3px #d6e9f205, inset 0 1px 1px #f4efe837; }
.nephron-path__stop:hover .nephron-path__label { color: #f4efe8; background: #1a2b3beb; }
.nephron-path__stop[data-current="true"] .nephron-path__marker {
  color: var(--aqua, #83e0d0);
  border-color: #83e0d09c;
  background: radial-gradient(ellipse at 34% 12%, #87cfbb18, transparent 65%), linear-gradient(145deg, #22494f, #132b37);
  box-shadow: 0 7px 17px #02050b9c, inset 0 1px 1px #d6fff226, inset 0 -4px 8px #07191c38;
}
.nephron-path__stop[data-current="true"] .nephron-path__marker::after {
  content: "";
  position: absolute;
  inset: -5px;
  border: 1px solid #83e0d046;
  border-radius: inherit;
  pointer-events: none;
  animation: nephron-current-ring 1.65s ease-out 3;
  animation-play-state: paused;
}
.nephron-path__stop[data-complete="true"] .nephron-path__marker { color: var(--aqua, #83e0d0); border-color: #83e0d067; background: radial-gradient(ellipse at 34% 12%, #83e0d02b, transparent 65%), linear-gradient(145deg, #254b4f, #18313d); }
.nephron-path__stop[data-selected="true"] .nephron-path__marker {
  color: #291719;
  border-color: #f3b1a9;
  background: radial-gradient(ellipse at 33% 14%, #ffe6d980, transparent 62%), linear-gradient(145deg, #f7b6a8, #e88787 86%);
  box-shadow: 0 0 0 5px #f28d880d, 0 8px 21px #02050b9c, inset 0 1px 1px #fff0e86b, inset 0 -4px 8px #81374420;
}
.nephron-path__stop[data-selected="true"] .nephron-path__marker::before { animation: nephron-marker-sheen 1.2s ease-out 1 both; animation-play-state: paused; }
.nephron-path__stop[data-selected="true"]:not([data-current="true"]) .nephron-path__marker::after {
  content: "";
  position: absolute;
  inset: -5px;
  border: 1px solid #f28d8880;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  animation: nephron-selection-ring 1.1s ease-out 2 both;
  animation-play-state: paused;
}
.nephron-path__stop[data-selected="true"]:hover .nephron-path__marker { border-color: #ffe0d3; background: radial-gradient(ellipse at 33% 14%, #fff1dba0, transparent 62%), linear-gradient(145deg, #fac9b8, #ef9a91 86%); }
.nephron-path__stop:active .nephron-path__marker { box-shadow: 0 3px 10px #02050b99, inset 0 2px 5px #02050b2e; }
.nephron-path__stop[data-selected="true"] .nephron-path__label { color: #fff6ee; border-color: #f28d8878; background: #382b35; }
.nephron-path__stop[data-started="true"]:not([data-complete="true"]) .nephron-path__label { border-color: #607c9275; }
.nephron-path[data-playing="true"][data-motion="standard"] .nephron-path__marker::before,
.nephron-path[data-playing="true"][data-motion="standard"] .nephron-path__marker::after { animation-play-state: running; }
.nephron-path[data-playing="false"] .nephron-path__marker::before,
.nephron-path[data-playing="false"] .nephron-path__marker::after { animation-play-state: paused; }
.nephron-path[data-motion="reduced"] .nephron-path__marker::before { animation: none !important; }
.nephron-path[data-motion="reduced"] .nephron-path__marker::after { animation: none !important; opacity: 0; }
.nephron-path__caption {
  display: block;
  margin: 12px 0 0;
  color: #b9c5d1;
  font-size: .75rem;
  line-height: 1.6;
  text-align: center;
}
.nephron-path__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: max-content;
  max-width: 100%;
  min-height: 44px;
  margin: 15px auto 0;
  padding: 10px 16px;
  border: 1px solid #5b718780;
  border-radius: 10px;
  background: linear-gradient(145deg, #27394d9c, #142334a3);
  color: #d4dce4;
  font-size: .78rem;
  line-height: 1.4;
  font-weight: 550;
  cursor: pointer;
  box-shadow: inset 0 1px 0 #f4efe80e, 0 5px 13px #02050b35;
}
.nephron-path__toggle:hover { color: #f4efe8; border-color: #83e0d080; background: #83e0d008; }
.nephron-path__toggle:focus-visible { outline: 2px solid var(--aqua, #83e0d0); outline-offset: 4px; }
.nephron-map-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px 17px;
  margin: 18px 0 0;
  color: #b9c5d1;
  font-size: .75rem;
  line-height: 1.5;
}
.nephron-map-legend>span { display: inline-flex; align-items: center; gap: 7px; }
.nephron-map-legend i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: #7c91a6; }
.nephron-map-legend .current i { background: var(--aqua, #83e0d0); }
.nephron-map-legend .selected i { background: var(--coral, #f28d88); }
.nephron-map-legend .complete i { width: auto; height: auto; color: var(--aqua, #83e0d0); background: transparent; font-style: normal; }
.nephron-path__legend { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 17px; margin: 13px 0; color: #c6d0da; font-size: .75rem; line-height: 1.5; }
.nephron-path__legend>span { display: inline-flex; align-items: center; gap: 7px; }
.nephron-path__legend-dot { display: inline-block; width: 7px; height: 7px; flex: none; border-radius: 50%; background: #b9c5d1; }
.nephron-path__legend-dot[data-kind="blood"] { background: var(--coral, #f28d88); }
.nephron-path__legend-dot[data-kind="filtrate"] { background: var(--aqua, #83e0d0); }
.nephron-path__legend-dot[data-kind="journey"],
.nephron-path__legend-dot[data-kind="lesson"] { background: #ead0a5; box-shadow: 0 0 7px #ead0a51f; }
.nephron-path__explorer,
.nephron-path__travel-trail { pointer-events: none; }
.nephron-path__explorer-pearl { stroke: #fff1cf; }
.nephron-path__travel-trail { stroke-linecap: round; }
.nephron-path__travel-caption {
  display: block;
  margin: 11px 0 0;
  padding: 11px 13px;
  border: 1px solid #ead0a52e;
  border-radius: 9px;
  color: #ead9bb;
  background: #ead0a507;
  font-size: .75rem;
  line-height: 1.65;
  text-align: center;
}
.nephron-path__travel-caption:empty { display: none; }

.nephron-stage-panel {
  align-self: start;
  padding: 28px;
  background: linear-gradient(145deg, #1a2737, #121c29 55%);
  box-shadow: 0 20px 55px #02050b25;
}
.stage-heading { display: block; margin-bottom: 17px; }
.stage-heading>div { min-width: 0; }
.stage-heading h2 { color: var(--ink, #f4efe8); font-size: clamp(1.75rem, 2.6vw, 2.4rem); font-weight: 550; line-height: 1.17; letter-spacing: -.05em; margin: 9px 0 15px; }
.stage-heading .eyebrow, .stage-heading .path-eyebrow { color: var(--coral, #f28d88); font-size: .75rem; letter-spacing: .1em; }
.stage-number { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #f28d884f; border-radius: 10px; color: var(--coral, #f28d88); background: #f28d8808; font-size: .85rem; font-variant-numeric: tabular-nums; flex: none; }
.stage-description { color: #d2d8df; font-size: .9rem; line-height: 1.75; margin: 0 0 15px; }
.stage-anatomy-note { display: flex; gap: 12px; margin: 20px 0; padding: 16px; border: 1px solid #83e0d02b; border-radius: 12px; background: #83e0d005; color: #d2d8df; }
.stage-anatomy-symbol { flex: none; width: 24px; color: var(--aqua, #83e0d0); font-size: 1.35rem; line-height: 1.25; }
.stage-anatomy-note>div { min-width: 0; }
.stage-anatomy-note strong { color: #f4efe8; display: block; font-size: .81rem; font-weight: 600; line-height: 1.5; }
.stage-anatomy-note p { color: #c6d0da; font-size: .81rem; line-height: 1.75; margin: 5px 0 0; }
.stage-mission { color: var(--ink, #f4efe8); font-size: .9rem; line-height: 1.75; margin: 16px 0; padding-left: 14px; border-left: 2px solid #83e0d07b; }
.stage-mapping-note { color: #b9c5d1; font-size: .75rem; line-height: 1.65; margin: 16px 0; }
.stage-mapping-note strong { color: #d2d8df; font-weight: 550; }
.stage-progress {
  display: block;
  width: 100%;
  height: 5px;
  margin: 21px 0 11px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: #344355;
  overflow: hidden;
}
.stage-progress>span { display: block; height: 100%; border-radius: inherit; background: var(--aqua, #83e0d0); }
.stage-progress-copy { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; color: #b9c5d1; font-size: .75rem; line-height: 1.6; margin-bottom: 21px; }
.stage-progress-copy strong { color: #f4efe8; font-weight: 550; }
.stage-progress strong { color: #f4efe8; font-weight: 550; }
.stage-progress .stars { color: var(--coral, #f28d88); }
.stage-progress .progress-track { width: 100%; flex: 1 0 100%; height: 4px; margin-top: 6px; }
.stage-progress .progress-track>span { background: var(--aqua, #83e0d0); }
.stage-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #d0d9e2;
  border: 1px solid #61768b80;
  border-radius: 6px;
  padding: 5px 8px;
  background: #f4efe804;
  font-size: .75rem;
  line-height: 1.4;
}
.stage-status.current, .stage-status.complete { color: var(--aqua, #83e0d0); border-color: #83e0d04d; background: #83e0d008; }
.stage-lessons { display: grid; list-style: none; padding: 0; margin: 0; gap: 0; }
.stage-lesson-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
  min-height: 90px;
  padding: 17px 0;
  border-bottom: 1px solid #f4efe810;
}
.stage-lesson-row:last-child { border-bottom: 0; }
.stage-lesson-number { display: grid; place-items: center; width: 28px; height: 28px; color: #aebdcb; background: #f4efe803; border: 1px solid #5c708579; border-radius: 50%; font-size: .75rem; font-variant-numeric: tabular-nums; }
.stage-lesson-row.current .stage-lesson-number, .stage-lesson-row.is-current .stage-lesson-number { color: var(--aqua, #83e0d0); border-color: #83e0d070; background: #83e0d008; }
.stage-lesson-row.complete .stage-lesson-number, .stage-lesson-row.is-complete .stage-lesson-number { color: var(--aqua, #83e0d0); border-color: #83e0d049; background: #83e0d00b; }
.stage-lesson-copy { min-width: 0; }
.stage-lesson-copy strong { color: var(--ink, #f4efe8); display: block; font-size: .86rem; font-weight: 550; line-height: 1.5; }
.stage-lesson-copy span, .stage-lesson-copy small { display: block; color: #b9c5d1; font-size: .75rem; line-height: 1.5; margin-top: 4px; }
.stage-lesson-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 91px;
  min-height: 44px;
  padding: 10px 13px;
  border: 1px solid #637b9480;
  border-radius: 9px;
  color: #d8e0e8;
  background: #f4efe804;
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
}
.stage-lesson-action:hover { color: #f4efe8; border-color: #83e0d08c; background: #83e0d00b; }
.stage-lesson-row.current .stage-lesson-action, .stage-lesson-row.is-current .stage-lesson-action { background: var(--aqua, #83e0d0); border-color: var(--aqua, #83e0d0); color: #0b2425; }
.stage-lesson-row.current .stage-lesson-action:hover, .stage-lesson-row.is-current .stage-lesson-action:hover { background: #a0eadf; border-color: #a0eadf; }
.stage-lesson-row.complete .stage-lesson-action, .stage-lesson-row.is-complete .stage-lesson-action { color: var(--aqua, #83e0d0); border-color: #83e0d040; background: #83e0d004; }
.stage-lesson-action:focus-visible { outline: 2px solid var(--aqua, #83e0d0); outline-offset: 4px; }
.stage-next-action { margin-top: 22px; width: 100%; justify-content: space-between; }
.stage-primary { margin: 23px 0 17px; }
.stage-primary>.path-primary { display: flex; justify-content: space-between; width: 100%; max-width: none; min-height: 48px; }
.stage-primary>span { display: block; margin: 11px 0 0; color: #b9c5d1; font-size: .75rem; line-height: 1.65; }
.stage-context { border-top: 1px solid #f4efe815; margin-top: 18px; padding-top: 10px; }
.stage-context summary { display: flex; align-items: center; gap: 9px; min-height: 44px; color: #d2dbe4; font-size: .78rem; font-weight: 550; list-style: none; cursor: pointer; }
.stage-context summary::-webkit-details-marker { display: none; }
.stage-context summary::before { content: "+"; color: var(--aqua, #83e0d0); font-size: 1rem; }
.stage-context[open] summary::before { content: "−"; }
.stage-context summary:focus-visible { outline: 2px solid var(--aqua, #83e0d0); outline-offset: 2px; border-radius: 5px; }
.stage-context .source-link { font-size: .75rem; line-height: 1.65; }
.stage-back-to-map { display: inline-flex; min-height: 44px; margin-top: 9px; padding: 10px 0; color: var(--aqua, #83e0d0); font-size: .78rem; text-align: left; }
.stage-source { display: block; color: var(--aqua, #83e0d0); font-size: .75rem; line-height: 1.65; margin: 18px 0 0; overflow-wrap: anywhere; }
.stage-switch-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; clip: rect(0,0,0,0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; border: 0; }
.journey-stage-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.journey-stage-shortcuts button { min-height: 44px; border: 1px solid #42597080; border-radius: 9px; padding: 10px 13px; color: #d2dbe4; background: #121c29; font-size: .78rem; line-height: 1.4; }
.journey-stage-shortcuts button[aria-pressed="true"] { color: var(--aqua, #83e0d0); border-color: #83e0d075; background: #83e0d00b; }
.journey-topic-drawer { margin: 0 0 31px; border: 1px solid #40557075; border-radius: 13px; padding: 0 19px; background: #121c2966; }
.journey-topic-drawer>summary { display: flex; align-items: center; gap: 10px; min-height: 62px; color: #d2dbe4; font-size: .85rem; font-weight: 550; list-style: none; cursor: pointer; }
.journey-topic-drawer>summary::-webkit-details-marker { display: none; }
.journey-topic-drawer>summary::before { content: "+"; color: var(--aqua, #83e0d0); font-size: 1rem; }
.journey-topic-drawer[open]>summary::before { content: "−"; }
.journey-topic-drawer>summary>span { color: #aebdcb; font-size: .75rem; font-weight: 400; margin-left: auto; }
.journey-topic-drawer>summary:focus-visible { outline: 2px solid var(--aqua, #83e0d0); outline-offset: -4px; border-radius: 6px; }
.journey-topic-drawer .atlas-topic-buttons { margin: 0 0 19px; }
.learning-layout.journey-support { display: block; margin: 0 0 25px; }
.journey-support .learning-sidebar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); position: static; gap: 15px; }
.journey-support .learning-sidebar>section { grid-column: auto; min-width: 0; }
.journey-support .path-stats { align-self: start; min-height: 0; padding: 23px 18px; }
.journey-support .path-stats>div+div { padding-left: 13px; }
.journey-support .learning-sidebar>.storage-notice { grid-column: 1/-1; }
.hero-map-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 12px; padding: 9px 0; color: var(--aqua, #83e0d0); font-size: .8rem; line-height: 1.4; background: transparent; border: 0; }
.hero-map-link:hover { color: #b9f1e7; }
.lesson-stage-tag { display: inline; color: var(--coral, #f28d88); font-size: .75rem; line-height: 1.4; font-weight: 550; }
.lesson-stage-tag::after { content: " · "; color: #aebdcb; }

@keyframes nephron-current-ring {
  0% { opacity: .6; transform: scale(1); }
  85%, 100% { opacity: 0; transform: scale(1.3); }
}
@keyframes nephron-selection-ring {
  0% { opacity: .55; transform: scale(1); }
  90%, 100% { opacity: 0; transform: scale(1.24); }
}
@keyframes nephron-marker-sheen {
  0% { background-position: 100% 0; opacity: .4; }
  55% { opacity: .92; }
  100% { background-position: 0 0; opacity: .7; }
}
@media (max-width: 1100px) {
  .nephron-journey { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
  .nephron-map-panel { padding: 21px 18px; }
  .nephron-stage-panel { padding: 24px; }
  .stage-heading h2 { font-size: 1.9rem; }
  .stage-lesson-row { gap: 10px; }
  .stage-lesson-action { min-width: 83px; padding: 10px; }
  .journey-support .learning-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 901px) and (max-height: 800px) {
  .nephron-map-panel { position: static; max-height: none; overflow: visible; }
}
@media (max-width: 900px) {
  .nephron-journey { grid-template-columns: minmax(0, 1fr); gap: 21px; }
  .nephron-map-panel { position: static; top: auto; max-height: none; overflow: visible; padding: 25px; }
  .nephron-path { max-width: 450px; }
  .nephron-stage-panel { padding: 28px; }
  .stage-heading h2 { font-size: 2.15rem; }
  .stage-lesson-row { gap: 14px; }
  .stage-lesson-copy strong { font-size: .9rem; }
}
@media (max-width: 760px) {
  .nephron-journey { gap: 17px; margin-top: 21px; }
  .nephron-map-panel, .nephron-stage-panel { border-radius: 17px; }
  .nephron-map-panel { padding: 21px 16px; }
  .nephron-map-heading { display: block; margin-bottom: 7px; }
  .nephron-map-heading h2, .nephron-map-panel>h2 { font-size: 1.25rem; }
  .nephron-map-heading p, .nephron-map-panel>p { font-size: .81rem; }
  .nephron-map-kicker { display: block; font-size: .75rem; margin-top: 11px; }
  .nephron-path { max-width: 360px; margin-top: 50px; }
  .nephron-path__map { border-radius: 13px; }
  .nephron-path__stop { max-width: 144px; gap: 7px; }
  .nephron-path__label { max-width: 86px; padding: 4px 6px; font-size: .84rem; line-height: 1.3; }
  .nephron-path__stop[data-anatomy-key="glomerulus"] .nephron-path__label { top: -69px; }
  .nephron-path__state { font-size: .75rem; line-height: 1.2; margin-top: 1px; }
  .nephron-path__label>small { font-size: .75rem; }
  .nephron-path__caption { margin-top: 12px; font-size: .75rem; line-height: 1.65; }
  .nephron-path__toggle { min-height: 44px; padding: 10px 15px; font-size: .78rem; margin-top: 13px; }
  .nephron-map-legend { font-size: .75rem; gap: 8px 13px; margin-top: 16px; }
  .nephron-stage-panel { padding: 24px 21px; }
  .stage-heading { gap: 13px; margin-bottom: 15px; }
  .stage-heading h2 { font-size: 1.8rem; }
  .stage-number { width: 37px; height: 37px; border-radius: 9px; font-size: .78rem; }
  .stage-description { font-size: .88rem; line-height: 1.75; }
  .stage-anatomy-note { padding: 14px; gap: 10px; }
  .stage-mission { font-size: .88rem; line-height: 1.7; padding-left: 12px; }
  .stage-mapping-note { font-size: .75rem; line-height: 1.65; }
  .stage-progress { margin: 19px 0 11px; }
  .stage-status { font-size: .75rem; }
  .stage-lesson-row { grid-template-columns: 26px minmax(0, 1fr) auto; gap: 10px; min-height: 91px; padding: 16px 0; }
  .stage-lesson-number { width: 26px; height: 26px; font-size: .75rem; }
  .stage-lesson-copy strong { font-size: .84rem; line-height: 1.5; }
  .stage-lesson-copy span, .stage-lesson-copy small { font-size: .75rem; line-height: 1.5; }
  .stage-lesson-action { min-width: 83px; min-height: 44px; padding: 10px; gap: 7px; font-size: .76rem; border-radius: 8px; }
  .stage-next-action { margin-top: 18px; }
  .stage-source { font-size: .75rem; margin-top: 16px; }
  .journey-stage-shortcuts { gap: 7px; }
  .journey-stage-shortcuts button { font-size: .76rem; padding: 10px 12px; }
  .journey-topic-drawer { padding: 0 14px; margin-bottom: 25px; }
  .journey-topic-drawer>summary { min-height: 59px; font-size: .8rem; }
  .journey-support .learning-sidebar { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .journey-support .path-stats { padding: 21px; }
  .hero-map-link { font-size: .79rem; }
}
@media (max-width: 370px) {
  .nephron-map-panel { padding: 20px 4px; }
  .nephron-path__map { aspect-ratio: 420 / 700; }
  .nephron-path__stop[data-anatomy-key="descending"] { left: 9%; }
  .nephron-map-heading { padding: 0 5px; }
  .nephron-map-heading h2 { font-size: 1.17rem; }
  .nephron-map-kicker { font-size: .75rem; }
  .nephron-path__stop { gap: 5px; max-width: 136px; }
  .nephron-path__label { max-width: 86px; padding: 4px 3px; font-size: .82rem; }
  .nephron-path__stop[data-anatomy-key="pct"] .nephron-path__label { max-width: 78px; padding-inline: 5px; }
  .nephron-path__zone { font-size: .75rem; }
  .nephron-path__zone--medulla { top: 57.5%; }
  .nephron-path__caption { padding-inline: 5px; }
  .nephron-stage-panel { padding: 22px 18px; }
  .stage-heading h2 { font-size: 1.65rem; }
  .stage-lesson-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .stage-lesson-number { display: none; }
  .stage-lesson-action { min-width: 79px; gap: 5px; padding: 9px; }
  .stage-lesson-copy strong { font-size: .82rem; }
}
@media (prefers-reduced-motion: reduce) {
  .nephron-path__marker, .nephron-path__label { transition: none; }
  .nephron-path__marker::before { animation: none !important; }
  .nephron-path__marker::after { animation: none !important; opacity: 0; }
}

/* Brand spelling remains title case inside the uppercase topic eyebrows. */
.brand-name { text-transform: none; }

.nephron-path__stop.is-locked .nephron-path__state{color:#efc798}
.nephron-path__stop.is-locked .nephron-path__marker{background:linear-gradient(145deg,#415462,#243444);border-color:#617180;color:#dde4ea;box-shadow:inset 0 2px 5px #ffffff12}
.nephron-path__stop.is-locked.is-selected .nephron-path__label{border-color:#b38d5c}
