/* The route is a light, CSS/SVG 3D world: no WebGL download or image assets required. */
:root {
  --world-deep: #18332f;
  --world-deep-soft: #284943;
  --world-glass: rgba(251, 250, 246, .88);
  --world-shadow: rgba(22, 40, 37, .18);
  --world-glow: rgba(216, 107, 84, .25);
}

html { scroll-padding-top: 92px; }
body { overflow-x: hidden; }

/* The main navigation becomes a small, readable route in its own right. */
.nav {
  height: 68px;
  box-shadow: 0 8px 24px rgba(20, 38, 34, .035);
}
.nav .brand { white-space: nowrap; }
.nav nav { gap: clamp(10px, 1.65vw, 22px); }
.nav nav a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.nav nav a::before {
  content: "";
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  border: 1px solid var(--muted);
  border-radius: 50%;
  background: var(--paper);
  transition: transform .24s ease, background-color .24s ease, box-shadow .24s ease;
}
.nav nav a:hover::before,
.nav nav a.active::before {
  transform: scale(1.5);
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: 0 0 0 4px var(--world-glow);
}
.nav nav a::after { bottom: -8px; }
.nav nav a:focus-visible,
.world-wayfinder a:focus-visible,
.route-station:focus-visible,
.station-route-return:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
  border-radius: 2px;
}

.world-wayfinder {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 4px 5vw;
  border-bottom: 1px solid rgba(204, 212, 205, .72);
  background: rgba(240, 239, 232, .82);
  color: var(--muted);
}
.wayfinder-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  color: var(--accent);
  font: 9px/1.3 var(--mono);
  letter-spacing: .04em;
}
.wayfinder-label i {
  width: 18px;
  height: 2px;
  background: var(--accent);
  box-shadow: 0 0 9px var(--world-glow);
}
.wayfinder-stops {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: clamp(9px, 1.4vw, 20px);
}
.wayfinder-stops a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font: 9px/1.3 var(--mono);
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease;
}
.wayfinder-stops a > span {
  width: 6px;
  height: 6px;
  border: 1px solid #9da9a2;
  border-radius: 50%;
  background: var(--paper);
  transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.wayfinder-stops a:hover,
.wayfinder-stops a[aria-current="page"] { color: var(--ink); }
.wayfinder-stops a:hover > span,
.wayfinder-stops a[aria-current="page"] > span {
  transform: scale(1.25);
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: 0 0 0 4px var(--world-glow);
}

/* Home: the complete route is visible before the visitor enters a room. */
.page-home .home-intro {
  position: relative;
  overflow: hidden;
  padding: 36px clamp(24px, 7vw, 110px) 32px;
  background:
    radial-gradient(ellipse at 77% 38%, rgba(219, 231, 219, .9), transparent 40%),
    var(--paper);
}
.page-home .home-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .4;
  background: linear-gradient(116deg, transparent 0 61%, rgba(216, 107, 84, .055) 61.1% 61.2%, transparent 61.3%);
}
.home-intro-meta { margin-bottom: 18px; }
.home-intro-grid {
  grid-template-columns: minmax(270px, .9fr) minmax(340px, .75fr);
  gap: clamp(30px, 7vw, 100px);
  align-items: center;
}
.home-intro h1 { font-size: clamp(66px, 8.3vw, 118px); }
.home-intro-copy { position: relative; z-index: 1; }
.home-intro-copy .home-lede { font-size: clamp(19px, 2vw, 26px); }
.home-intro-copy > p:not(.home-lede) { font-size: 14px; }
.home-school { margin-top: 18px; padding-top: 12px; }
.home-links { margin-top: 18px; }
.home-route-map { position: relative; z-index: 1; margin-top: 28px; }
.route-map-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin: 0 0 10px;
}
.route-map-heading .home-kicker { margin-bottom: 4px; }
.route-map-heading h2 {
  margin: 0;
  font: 500 clamp(19px, 2.2vw, 28px)/1.15 var(--sans);
  letter-spacing: -.04em;
}
.route-hint,
.route-map-caption {
  color: var(--muted);
  font: 9px/1.4 var(--mono);
}
.route-hint { white-space: nowrap; padding-bottom: 3px; }
.route-world {
  position: relative;
  height: clamp(300px, 33vw, 390px);
  min-height: 300px;
  overflow: hidden;
  perspective: 1100px;
  isolation: isolate;
  border: 1px solid rgba(204, 212, 205, .75);
  background:
    radial-gradient(ellipse at 52% 40%, rgba(255,255,255,.9), rgba(244,244,236,.74) 48%, rgba(225,233,224,.74)),
    var(--cream);
  box-shadow: 0 20px 44px rgba(24, 51, 47, .07), inset 0 1px 0 rgba(255,255,255,.85);
  transform-style: preserve-3d;
}
.route-world::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: -5%;
  right: -5%;
  bottom: -46%;
  height: 84%;
  transform: perspective(600px) rotateX(61deg) translateY(calc(var(--pointer-y, 0) * -8px));
  transform-origin: center top;
  background-image:
    linear-gradient(rgba(24, 51, 47, .09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(24, 51, 47, .09) 1px, transparent 1px);
  background-size: 45px 38px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.8), transparent 78%);
  transition: transform .35s ease-out;
}
.route-world-grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 14% 79%, rgba(216,107,84,.12), transparent 23%),
    radial-gradient(ellipse at 79% 25%, rgba(151,178,160,.16), transparent 24%);
  transform: translate3d(calc(var(--pointer-x, 0) * -6px), calc(var(--pointer-y, 0) * -5px), 0);
  transition: transform .35s ease-out;
}
.route-track { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.route-track path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.track-shadow { stroke: rgba(24,51,47,.2); stroke-width: 54; transform: translateY(8px); }
.track-rail { stroke: #dce5dc; stroke-width: 39; }
.track-light { stroke: #d86b54; stroke-width: 3.5; filter: drop-shadow(0 0 5px rgba(216,107,84,.38)); }
.track-beacon { fill: var(--paper); stroke: var(--accent); stroke-width: 3; filter: drop-shadow(0 0 8px rgba(216,107,84,.5)); transform-box: fill-box; transform-origin: center; animation: beacon-breathe 3.6s ease-in-out infinite; }
@keyframes beacon-breathe { 0%,100% { transform: scale(.86); opacity: .72; } 50% { transform: scale(1.08); opacity: 1; } }
.route-station {
  position: absolute;
  left: var(--station-x);
  top: var(--station-y);
  z-index: 2;
  display: flex;
  width: clamp(122px, 13.4vw, 166px);
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 0 0 8px;
  color: var(--ink);
  text-align: center;
  text-decoration: none;
  transform: translate(-50%, -50%) translate3d(calc(var(--pointer-x, 0) * -4px), calc(var(--pointer-y, 0) * -3px), 18px);
  transform-style: preserve-3d;
  transition: transform .25s ease, filter .25s ease;
}
.route-station::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 9%;
  right: 9%;
  bottom: 0;
  height: 13px;
  border: 1px solid rgba(24,51,47,.22);
  background: linear-gradient(90deg, #d8e2d7, #fff 48%, #d8e2d7);
  box-shadow: 0 8px 0 rgba(24,51,47,.08);
  transform: rotateX(65deg) translateZ(-4px);
  transform-origin: center bottom;
}
.route-station:hover,
.route-station:focus-visible,
.route-station.is-active {
  z-index: 4;
  filter: drop-shadow(0 12px 16px rgba(24,51,47,.18));
  transform: translate(-50%, -54%) translate3d(calc(var(--pointer-x, 0) * -4px), calc(var(--pointer-y, 0) * -3px), 30px);
}
.station-object {
  position: relative;
  display: block;
  width: 52px;
  height: 48px;
  margin-bottom: 1px;
  transform-style: preserve-3d;
  filter: drop-shadow(0 9px 5px rgba(24,51,47,.12));
  transition: transform .25s ease;
}
.route-station:hover .station-object,
.route-station:focus-visible .station-object,
.route-station.is-active .station-object { transform: translateY(-5px) rotateY(-8deg); }
.station-object i,
.station-object b { position: absolute; display: block; }
.station-object.object-orbit i:first-child { inset: 7px 8px; border: 1px solid var(--ink); border-radius: 50%; background: rgba(232,187,166,.45); }
.station-object.object-orbit i:nth-child(2) { inset: 2px 12px; border: 1px solid var(--accent); border-radius: 50%; transform: rotate(52deg); }
.station-object.object-orbit b { width: 15px; height: 15px; top: 16px; left: 18px; border: 1px solid var(--ink); border-radius: 50%; background: var(--paper); }
.station-object.object-path i:first-child { width: 35px; height: 28px; left: 8px; top: 12px; border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent); border-radius: 0 0 0 19px; transform: skewY(-17deg); }
.station-object.object-path i:nth-child(2) { width: 23px; height: 22px; right: 4px; top: 4px; border: 1px solid var(--ink); background: var(--sage); transform: rotate(16deg) skewY(-9deg); box-shadow: 4px 5px 0 rgba(24,51,47,.15); }
.station-object.object-path b { width: 7px; height: 7px; left: 7px; bottom: 3px; border-radius: 50%; background: var(--accent); box-shadow: 27px -18px 0 var(--accent); }
.station-object.object-book i:first-child { width: 21px; height: 29px; top: 8px; left: 5px; border: 1px solid var(--ink); background: #fff; transform: skewY(12deg); box-shadow: 3px 3px 0 #d8e2d7; }
.station-object.object-book i:nth-child(2) { width: 21px; height: 29px; top: 8px; right: 5px; border: 1px solid var(--ink); background: var(--peach); transform: skewY(-12deg); box-shadow: 3px 3px 0 rgba(24,51,47,.2); }
.station-object.object-book b { width: 2px; height: 29px; top: 9px; left: 25px; background: var(--ink); }
.station-object.object-data i { bottom: 7px; left: 7px; width: 8px; height: 16px; background: #afc5b2; border: 1px solid var(--ink); box-shadow: 13px -9px 0 -1px #e8bba6, 25px -20px 0 -1px #9db6a1, 37px -28px 0 -1px #d86b54; }
.station-object.object-data i:nth-child(2) { inset: auto 0 3px 4px; width: 46px; height: 1px; background: var(--ink); box-shadow: none; }
.station-object.object-data b { width: 7px; height: 7px; right: 4px; top: 2px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px rgba(216,107,84,.13); }
.station-object.object-cube i:first-child { width: 28px; height: 27px; top: 5px; left: 12px; border: 1px solid var(--ink); background: #f5e8dc; transform: skewY(-25deg) rotate(30deg); box-shadow: 6px 7px 0 rgba(24,51,47,.13); }
.station-object.object-cube i:nth-child(2) { width: 14px; height: 26px; top: 17px; left: 5px; border: 1px solid var(--ink); background: #b8cab8; transform: skewY(30deg); }
.station-object.object-cube b { width: 14px; height: 26px; top: 17px; right: 4px; border: 1px solid var(--ink); background: #e8bba6; transform: skewY(-30deg); }
.station-object.object-signal i:first-child { width: 31px; height: 23px; top: 9px; left: 10px; border: 1px solid var(--ink); background: var(--paper); box-shadow: 4px 5px 0 #c5d6c5; }
.station-object.object-signal i:nth-child(2) { width: 0; height: 0; left: 17px; top: 31px; border-left: 7px solid transparent; border-right: 2px solid transparent; border-top: 9px solid var(--ink); transform: rotate(17deg); }
.station-object.object-signal b { width: 7px; height: 7px; top: 1px; right: 2px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px rgba(216,107,84,.14); }
.station-copy {
  display: block;
  width: 100%;
  padding: 7px 7px 8px;
  border: 1px solid rgba(33,48,46,.22);
  background: rgba(251,250,246,.94);
  box-shadow: 0 5px 0 rgba(24,51,47,.09), 0 10px 21px rgba(24,51,47,.07);
  backdrop-filter: blur(5px);
  transform: translateZ(10px);
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.route-station:hover .station-copy,
.route-station:focus-visible .station-copy,
.route-station.is-active .station-copy { border-color: var(--accent); background: #fffdfa; transform: translateZ(18px); }
.station-copy small,
.station-copy strong { display: block; }
.station-copy small { color: var(--muted); font: 8px/1.25 var(--mono); }
.station-copy strong { margin-top: 2px; font: 600 13px/1.1 var(--sans); letter-spacing: -.025em; }
.route-thread-label {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: 10px;
  margin: 0;
  color: var(--muted);
  font: 8px/1.2 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: translateX(-50%);
}
.route-thread-label span { display: inline-block; width: 19px; height: 2px; margin: 0 6px 2px 0; background: var(--accent); }
.route-map-caption { margin: 9px 0 0; text-align: right; }

/* Inner pages: each one is a distinct 3D room, connected by the same wayfinder. */
.station-page-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  scroll-margin-top: 110px;
}
.station-page-hero > :not(.station-room-scene) { position: relative; z-index: 1; }
.station-page-hero > .section-number { display: block; width: max-content; margin-bottom: 8px; }
.station-route-return {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 27px;
  color: var(--muted);
  font: 9px/1.4 var(--mono);
  text-decoration: none;
  transition: color .2s ease, transform .2s ease;
}
.station-route-return:hover { color: var(--accent); transform: translateX(-3px); }
.station-route-return span { color: var(--accent); }
.station-room-scene {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  perspective: 900px;
  background: radial-gradient(ellipse at 75% 25%, rgba(255,255,255,.72), transparent 38%);
}
.room-wall {
  position: absolute;
  inset: 0;
  opacity: .8;
  background:
    linear-gradient(90deg, transparent 0 59%, rgba(255,255,255,.25) 59.1% 59.3%, transparent 59.4%),
    radial-gradient(ellipse at 82% 40%, rgba(216,107,84,.12), transparent 36%);
}
.room-floor {
  position: absolute;
  right: -10%;
  bottom: -52%;
  width: 83%;
  height: 85%;
  opacity: .34;
  transform: perspective(650px) rotateX(64deg);
  transform-origin: center top;
  background-image: linear-gradient(rgba(24,51,47,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(24,51,47,.2) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.8), transparent 84%);
}
.room-light {
  position: absolute;
  top: 7%;
  right: 7%;
  width: clamp(170px, 23vw, 300px);
  aspect-ratio: 1;
  border: 1px solid rgba(216,107,84,.2);
  border-radius: 50%;
  opacity: .58;
  box-shadow: 0 0 0 21px rgba(216,107,84,.035), 0 0 0 44px rgba(216,107,84,.025), inset 0 0 45px rgba(255,255,255,.65);
  transform: translateZ(-15px);
}
.room-sculpture {
  --room-art-opacity: .42;
  position: absolute;
  top: 7%;
  right: clamp(32px, 11vw, 180px);
  width: clamp(190px, 25vw, 320px);
  height: auto;
  overflow: visible;
  opacity: var(--room-art-opacity);
  filter: drop-shadow(0 20px 16px rgba(24,51,47,.13));
  transform: translateZ(20px) rotateY(-11deg) rotateX(5deg);
  transform-origin: center;
  animation: room-object-arrive .82s cubic-bezier(.2,.8,.2,1) both, room-object-float 8s 1s ease-in-out infinite;
}
.room-sculpture .orb-core,
.room-sculpture .orb-person { fill: var(--peach); stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .orb-ring { fill: none; stroke: var(--accent); stroke-width: 1.5; }
.room-sculpture .orb-ring-two { stroke: var(--ink); opacity: .45; }
.room-sculpture .path-shadow { fill: none; stroke: rgba(24,51,47,.15); stroke-width: 21; stroke-linecap: round; }
.room-sculpture .path-line { fill: none; stroke: var(--accent); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 6 7; }
.room-sculpture .memory-card { fill: var(--paper); stroke: var(--ink); stroke-width: 1.5; filter: drop-shadow(7px 8px 0 rgba(24,51,47,.15)); }
.room-sculpture .memory-card path + path { fill: none; stroke: var(--muted); stroke-width: 1.2; }
.room-sculpture .room-node { fill: var(--accent); stroke: var(--paper); stroke-width: 3; }
.room-sculpture .book-side { fill: rgba(24,51,47,.15); stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .book-top { fill: #fffdfa; stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .book-front { fill: var(--peach); stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .book-line { fill: none; stroke: var(--ink); stroke-width: 1; opacity: .6; }
.room-sculpture .chart-platform { fill: #dce5dc; stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .chart-axis { fill: none; stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .chart-bar { fill: var(--peach); stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .chart-line { fill: none; stroke: var(--accent); stroke-width: 3; stroke-linejoin: round; }
.room-sculpture .signal-link { fill: none; stroke: var(--ink); stroke-width: 1.5; opacity: .55; }
.room-sculpture .signal-core { fill: var(--peach); stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .signal-point { fill: #fffdfa; stroke: var(--accent); stroke-width: 2; }
.room-sculpture .build-back { fill: rgba(24,51,47,.07); stroke: var(--ink); stroke-width: 1; }
.room-sculpture .build-left { fill: #afc5b2; stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .build-right { fill: var(--peach); stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .build-top { fill: #fffdfa; stroke: var(--ink); stroke-width: 1.5; }
.room-sculpture .signal-ring { fill: none; stroke: var(--accent); stroke-width: 1.5; opacity: .8; }
.room-sculpture .signal-ring-two { stroke: var(--ink); opacity: .3; }
.room-sculpture .message-box { fill: #fffdfa; stroke: var(--ink); stroke-width: 1.5; filter: drop-shadow(7px 8px 0 rgba(24,51,47,.13)); }
.room-sculpture .message-line { fill: none; stroke: var(--accent); stroke-width: 2; }
.station-about .room-sculpture .orb-core { transform-box: fill-box; transform-origin: center; animation: human-center-pulse 6s ease-in-out infinite; }
.station-story .room-sculpture .path-line { stroke-dasharray: 7 9; animation: story-path-flow 12s linear infinite; }
.station-research .room-sculpture .chart-bar,
.station-research-llm .room-sculpture .chart-bar { transform-box: fill-box; transform-origin: center bottom; animation: research-bars-arrive .8s .22s cubic-bezier(.2,.8,.2,1) both; }
.station-research-health .room-sculpture .signal-point { transform-box: fill-box; transform-origin: center; animation: research-node-arrive .6s cubic-bezier(.2,.8,.2,1) both; }
.station-research-health .room-sculpture .signal-point:nth-of-type(2) { animation-delay: .08s; }
.station-research-health .room-sculpture .signal-point:nth-of-type(3) { animation-delay: .16s; }
.station-research-health .room-sculpture .signal-point:nth-of-type(4) { animation-delay: .24s; }
.station-projects .room-sculpture { filter: drop-shadow(0 24px 18px rgba(24,51,47,.19)); }
.station-contact .room-sculpture .signal-ring { transform-box: fill-box; transform-origin: center; animation: contact-signal 7s ease-out infinite; }
.station-contact .room-sculpture .signal-ring-two { animation-delay: 1.1s; }
@keyframes human-center-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes story-path-flow { to { stroke-dashoffset: -64; } }
@keyframes research-bars-arrive { from { transform: scaleY(.2); opacity: .55; } to { transform: scaleY(1); opacity: 1; } }
@keyframes research-node-arrive { from { transform: scale(.3); opacity: .2; } to { transform: scale(1); opacity: 1; } }
@keyframes contact-signal { 0% { transform: scale(.92); opacity: .68; } 78%,100% { transform: scale(1.08); opacity: .06; } }

.station-about { background: radial-gradient(ellipse at 80% 20%, rgba(232,187,166,.28), transparent 42%), var(--paper); }
.station-story { background: radial-gradient(ellipse at 78% 22%, rgba(255,255,255,.48), transparent 42%), var(--peach); }
.station-education { background: radial-gradient(ellipse at 80% 20%, rgba(255,255,255,.68), transparent 43%), var(--sage); }
.station-research,
.station-research-llm,
.station-research-health { background: radial-gradient(ellipse at 80% 20%, rgba(255,255,255,.82), transparent 44%), var(--cream); }
.station-projects { background: radial-gradient(ellipse at 80% 22%, rgba(219,231,219,.64), transparent 42%), var(--paper); }
.station-contact { background: radial-gradient(ellipse at 81% 24%, rgba(216,107,84,.18), transparent 42%), var(--ink); }
.station-contact .room-wall { background: radial-gradient(ellipse at 82% 34%, rgba(232,187,166,.13), transparent 42%); }
.station-contact .room-floor { background-image: linear-gradient(rgba(251,250,246,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(251,250,246,.13) 1px, transparent 1px); }
.station-contact .room-sculpture { --room-art-opacity: .84; }
.station-contact .station-route-return { color: #d5ddd7; }
.station-contact .section-number { color: var(--peach); }
.station-contact > h2,
.station-contact > p:not(.section-number),
.station-contact .contact-email,
.station-contact .contact-footer { position: relative; z-index: 1; }
.station-contact .contact-email { text-shadow: 0 2px 12px rgba(24,51,47,.4); }
.station-contact .contact-footer { padding-top: 16px; border-top: 1px solid rgba(251,250,246,.22); }
.station-page-hero .about-copy,
.station-page-hero .story-copy {
  position: relative;
  z-index: 1;
  padding: clamp(18px, 2.7vw, 30px);
  border: 1px solid rgba(33,48,46,.12);
  background: var(--world-glass);
  box-shadow: 0 20px 50px var(--world-shadow), 8px 9px 0 rgba(24,51,47,.08);
  backdrop-filter: blur(8px);
}
.station-page-hero .focus-tags span { background: rgba(251,250,246,.82); }
.station-page-hero .story-steps { position: relative; z-index: 1; margin-top: 44px; background: rgba(251,250,246,.18); }
.station-page-hero .story-steps > div { transition: transform .25s ease, background .25s ease; }
.station-page-hero .story-steps > div:hover { transform: translateY(-4px) translateZ(8px); }
.station-page-hero .section-intro { position: relative; z-index: 1; }
.station-page-hero .project-grid,
.station-page-hero .timeline,
.station-page-hero .research-list,
.station-page-hero .education-feature { position: relative; z-index: 1; }
.station-page-hero .research-item {
  position: relative;
  margin: 0 0 18px;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgba(33,48,46,.13);
  background: rgba(251,250,246,.83);
  box-shadow: 0 14px 36px rgba(24,51,47,.065);
  transform: translateZ(0);
}
.station-page-hero .research-item:hover { border-color: rgba(216,107,84,.55); }
.station-page-hero .project {
  overflow: hidden;
  border-color: rgba(33,48,46,.17);
  background: rgba(251,250,246,.95);
  box-shadow: 0 16px 38px rgba(24,51,47,.09), 6px 7px 0 rgba(24,51,47,.07);
  transform: perspective(1000px) rotateX(0deg) translateZ(0);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.station-page-hero .project:hover {
  transform: perspective(1000px) rotateX(1deg) translateY(-5px) translateZ(10px);
  box-shadow: 0 24px 48px rgba(24,51,47,.14), 8px 9px 0 rgba(24,51,47,.09);
}
.station-page-hero .project-image { position: relative; overflow: hidden; }
.station-page-hero .project-image::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,.3), transparent 48%, rgba(24,51,47,.05));
}
.station-page-hero .timeline article {
  margin: 0 0 10px;
  padding: 20px 22px;
  border: 1px solid rgba(33,48,46,.12);
  background: rgba(251,250,246,.7);
  box-shadow: 0 8px 20px rgba(24,51,47,.04);
  transition: transform .22s ease, background .22s ease;
}
.station-page-hero .timeline article:hover { transform: translateX(5px); background: rgba(255,255,255,.92); }
.station-page-hero .education-feature { box-shadow: 0 14px 25px rgba(24,51,47,.09), 5px 6px 0 rgba(24,51,47,.08); }
.page-research-detail .station-page-hero { min-height: 465px; }
.page-research-detail .station-room-scene { background: radial-gradient(ellipse at 82% 28%, rgba(255,255,255,.72), transparent 43%); }
.page-research-detail .station-page-hero h1,
.page-research-detail .station-page-hero .detail-lede,
.page-research-detail .station-page-hero .research-actions { max-width: min(720px, 72%); }
.page-research-detail .station-page-hero .section-number { padding: 7px 10px; border: 1px solid rgba(33,48,46,.15); background: rgba(251,250,246,.75); }
.page-research-detail .station-page-hero .station-route-return { display: flex; width: max-content; }
.page-research-detail .detail-section,
.page-research-detail .detail-cta,
.page-research-detail .paper-figures { position: relative; }
.page-research-detail .metric-grid,
.page-research-detail .detail-columns,
.page-research-detail .result-grid,
.page-research-detail .data-table-wrap,
.page-research-detail .detail-callout,
.page-research-detail .feature-bars,
.page-research-detail .paper-figure-grid { position: relative; z-index: 1; }
.page-research-detail .metric-grid > div,
.page-research-detail .result-grid article,
.page-research-detail .paper-figure-grid figure {
  background: rgba(255,255,255,.76);
  box-shadow: 0 10px 24px rgba(24,51,47,.06);
}
.page-research-detail .data-table { box-shadow: 0 15px 30px rgba(24,51,47,.09); }
.page-home .home-work-card,
.page-home .home-project-row,
.page-home .home-about-links a,
.page-research-detail .metric-grid > div,
.page-research-detail .result-grid article,
.page-research-detail .paper-figure-grid figure {
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.page-home .home-work-card:hover,
.page-research-detail .result-grid article:hover,
.page-research-detail .paper-figure-grid figure:hover {
  transform: translateY(-4px) translateZ(8px);
  box-shadow: 0 22px 40px rgba(24,51,47,.13), 5px 6px 0 rgba(24,51,47,.07);
}
.page-home .home-project-row:hover {
  padding-left: 10px;
  border-color: rgba(216,107,84,.56);
  background: rgba(255,255,255,.43);
}
.page-home .home-work-image { perspective: 700px; }
.page-home .home-work-image img { transition: transform .35s ease; }
.page-home .home-work-card:hover .home-work-image img { transform: translateZ(12px) scale(1.025); }
.page-research-detail .detail-section,
.page-research-detail .paper-figures,
.page-research-detail .detail-cta { isolation: isolate; overflow: hidden; }
.page-research-detail .detail-section::before,
.page-research-detail .paper-figures::before,
.page-research-detail .detail-cta::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  background-image: linear-gradient(rgba(24,51,47,.15) 1px, transparent 1px), linear-gradient(90deg, rgba(24,51,47,.15) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(135deg, transparent 12%, #000 72%);
}

/* A stable view of the route remains available when motion is reduced. */
@keyframes room-object-arrive { from { opacity: 0; transform: translate3d(20px,12px,-25px) rotateY(-19deg) scale(.94); } to { opacity: var(--room-art-opacity, .42); transform: translateZ(20px) rotateY(-11deg) rotateX(5deg) scale(1); } }
@keyframes room-object-float { 0%,100% { translate: 0 0; } 50% { translate: 0 -6px; } }
@media (max-width: 1080px) {
  .nav { gap: 17px; }
  .nav nav { gap: 10px; }
  .nav-social { padding-left: 13px; }
  .nav nav a { font-size: 10px; }
  .home-intro-grid { grid-template-columns: minmax(245px, .8fr) minmax(330px, .8fr); }
  .route-station { width: clamp(106px, 12vw, 130px); }
  .station-copy small { font-size: 7px; }
}
@media (max-width: 780px) {
  html { scroll-padding-top: 76px; }
  .nav { height: auto; min-height: 64px; }
  .nav nav { gap: 8px; }
  .nav nav a { gap: 4px; font-size: 9px; }
  .nav nav a::before { width: 4px; height: 4px; flex-basis: 4px; }
  .world-wayfinder { align-items: flex-start; padding: 8px 6vw; gap: 10px; }
  .wayfinder-label { display: none; }
  .wayfinder-stops { justify-content: space-between; width: 100%; gap: 7px; }
  .wayfinder-stops a { gap: 4px; font-size: 9px; }
  .page-home .home-intro { padding-top: 30px; padding-bottom: 25px; }
  .home-intro-meta { font-size: 8px; margin-bottom: 22px; }
  .home-intro-grid { grid-template-columns: 1fr; gap: 18px; }
  .home-intro h1 { font-size: clamp(59px, 17vw, 95px); }
  .home-intro h1 em { display: inline; }
  .home-intro-copy .home-lede { max-width: 520px; }
  .home-intro-copy > p:not(.home-lede) { max-width: 580px; }
  .home-school { margin-top: 14px; }
  .home-route-map { margin-top: 26px; }
  .route-map-heading { align-items: start; }
  .route-map-heading h2 { max-width: 460px; }
  .route-hint { max-width: 92px; text-align: right; white-space: normal; }
  .route-world {
    height: auto;
    min-height: 0;
    overflow: visible;
    padding: 12px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
    background: linear-gradient(155deg, #f8f8f1, #e5ece3);
  }
  .route-world::before { inset: 0; bottom: 0; height: auto; transform: none; background-size: 28px 28px; opacity: .3; mask-image: none; }
  .route-world::before {
    background-image:
      linear-gradient(90deg, transparent calc(50% - 1px), rgba(216,107,84,.42) calc(50% - 1px), rgba(216,107,84,.42) calc(50% + 1px), transparent calc(50% + 1px)),
      linear-gradient(rgba(24,51,47,.09) 1px, transparent 1px),
      linear-gradient(90deg, rgba(24,51,47,.09) 1px, transparent 1px);
  }
  .route-world-grid { display: none; }
  .route-track { display: none; }
  .route-station {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    min-height: 117px;
    padding: 8px 7px 12px;
    justify-content: center;
    background: rgba(251,250,246,.75);
    border: 1px solid rgba(33,48,46,.11);
    box-shadow: 0 6px 0 rgba(24,51,47,.05);
    transform: none;
  }
  .route-station::before { display: none; }
  .route-station:hover,
  .route-station:focus-visible,
  .route-station.is-active { transform: translateY(-3px); }
  .station-object { width: 43px; height: 39px; transform: scale(.85); margin: -1px 0 0; }
  .station-copy { max-width: 175px; padding: 5px; background: transparent; border: 0; box-shadow: none; backdrop-filter: none; }
  .route-station:hover .station-copy,
  .route-station:focus-visible .station-copy,
  .route-station.is-active .station-copy { background: transparent; border: 0; box-shadow: none; transform: none; }
  .station-copy small { font-size: 8px; }
  .station-copy strong { font-size: 12px; }
  .route-thread-label { position: relative; left: auto; bottom: auto; z-index: 1; grid-column: 1 / -1; justify-self: center; padding: 4px 7px; background: var(--paper); font-size: 6px; transform: none; }
  .route-map-caption { text-align: left; }
  .room-sculpture { --room-art-opacity: .28; top: 6%; right: 4%; width: clamp(155px, 42vw, 240px); }
  .room-light { right: 2%; top: 5%; width: 180px; opacity: .38; }
  .station-page-hero .about-copy,
  .station-page-hero .story-copy { padding: 18px; }
  .station-page-hero .project { transform: none; }
  .station-page-hero .project:hover { transform: translateY(-3px); }
  .page-research-detail .station-page-hero { min-height: 0; }
  .page-research-detail .station-page-hero h1,
  .page-research-detail .station-page-hero .detail-lede,
  .page-research-detail .station-page-hero .research-actions { max-width: 100%; }
}
@media (max-width: 480px) {
  .nav { gap: 10px; padding: 0 4vw; }
  .nav .brand { font-size: 15px; }
  .nav nav { gap: 6px; }
  .nav nav a { font-size: 8px; }
  .nav nav a::before { display: none; }
  .nav-social { display: none; }
  .wayfinder-stops a { font-size: 8px; }
  .wayfinder-stops a > span { width: 5px; height: 5px; }
  .home-intro-meta { gap: 8px; letter-spacing: .02em; }
  .home-intro-meta span:last-child { text-align: right; }
  .route-world { gap: 7px; padding: 8px; }
  .route-station { min-height: 109px; }
  .station-copy small { font-size: 8px; }
  .station-copy strong { font-size: 12px; }
  .route-thread-label { font-size: 5.5px; }
  .station-route-return { margin-bottom: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .track-beacon,
  .room-sculpture,
  .room-sculpture *,
  .station-about .room-sculpture .orb-core,
  .station-story .room-sculpture .path-line,
  .station-research .room-sculpture .chart-bar,
  .station-research-llm .room-sculpture .chart-bar,
  .station-research-health .room-sculpture .signal-point,
  .station-contact .room-sculpture .signal-ring { animation: none !important; }
  .route-world::before,
  .route-world-grid { transition: none !important; transform: none !important; }
  .route-station,
  .station-object,
  .station-copy,
  .world-object,
  .station-page-hero .project,
  .station-page-hero .timeline article { transition: none !important; }
  .route-station:hover,
  .route-station:focus-visible,
  .route-station.is-active { transform: translateY(-3px); }
  .route-station .station-object { transform: none; }
}

/* Immersive pass: make the rail and rooms the page, with content inside the world. */
:root {
  --ink: #e8efec;
  --paper: #0a1720;
  --cream: #10252e;
  --sage: #1a353d;
  --peach: #f0aa87;
  --accent: #ff8969;
  --muted: #a5b8ba;
  --line: rgba(190, 214, 211, .18);
  --white: #142b35;
  --world-deep: #07131d;
  --world-deep-soft: #102733;
  --world-glass: rgba(12, 28, 37, .82);
  --world-shadow: rgba(0, 0, 0, .36);
  --world-glow: rgba(255, 137, 105, .3);
}

html { background: var(--world-deep); scroll-padding-top: 82px; }
body { background: var(--world-deep); color: var(--ink); }
main { background: var(--world-deep); }

/* A floating control deck replaces the old light editorial header. */
.nav {
  height: 70px;
  border-bottom: 1px solid rgba(205, 226, 223, .12);
  background: rgba(6, 17, 26, .78);
  color: #edf2ef;
  box-shadow: 0 10px 42px rgba(0, 0, 0, .18);
  backdrop-filter: blur(18px) saturate(140%);
}
.nav .brand,
.nav nav a,
.nav-social a { color: #edf2ef; }
.nav nav a::before { border-color: #82999e; background: #10242e; }
.nav nav a:hover::before,
.nav nav a.active::before { border-color: var(--accent); background: var(--accent); box-shadow: 0 0 0 5px rgba(255,137,105,.15), 0 0 16px rgba(255,137,105,.8); }
.nav nav a::after { background: var(--accent); }
.nav-social { border-left-color: rgba(205,226,223,.17); }
.nav nav a:hover,
.nav-social a:hover { color: var(--peach); }
.nav .brand { letter-spacing: -.045em; }
.nav .brand::after { content: ""; display: inline-block; width: 5px; height: 5px; margin: 0 0 2px 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 12px var(--accent); }

.world-wayfinder {
  min-height: 42px;
  border-bottom: 1px solid rgba(205,226,223,.13);
  background: rgba(11, 27, 36, .88);
  color: #d5e1de;
  box-shadow: 0 8px 28px rgba(0,0,0,.12);
}
.wayfinder-label { color: #f3b494; }
.wayfinder-label i { height: 3px; box-shadow: 0 0 12px var(--accent); }
.wayfinder-stops a { color: #a9bbbc; }
.wayfinder-stops a > span { border-color: #607b80; background: #142933; }
.wayfinder-stops a:hover,
.wayfinder-stops a[aria-current="page"] { color: #fff; }
.wayfinder-stops a:hover > span,
.wayfinder-stops a[aria-current="page"] > span { box-shadow: 0 0 0 4px rgba(255,137,105,.15), 0 0 14px var(--accent); }

/* Home is now a full-viewport 3D route instead of a text hero plus a map card. */
.page-home { background: var(--world-deep); }
.page-home .home-intro {
  height: calc(100svh - 70px);
  min-height: 610px;
  padding: 0;
  border: 0;
  background:
    radial-gradient(ellipse at 74% 10%, rgba(63, 103, 117, .3), transparent 34%),
    radial-gradient(ellipse at 37% 84%, rgba(35, 75, 82, .18), transparent 45%),
    linear-gradient(145deg, #08151f 2%, #102733 55%, #091821 100%);
  isolation: isolate;
}
.page-home .home-intro::before {
  inset: 0;
  opacity: .9;
  background:
    radial-gradient(circle at 18% 18%, rgba(226,239,229,.75) 0 1px, transparent 1.6px),
    radial-gradient(circle at 79% 21%, rgba(226,239,229,.55) 0 1px, transparent 1.6px),
    radial-gradient(circle at 89% 61%, rgba(226,239,229,.5) 0 1px, transparent 1.5px),
    radial-gradient(circle at 60% 73%, rgba(226,239,229,.52) 0 1px, transparent 1.5px),
    radial-gradient(ellipse at 50% 105%, rgba(255,137,105,.12), transparent 50%);
  background-size: 145px 136px, 207px 196px, 173px 181px, 230px 211px, auto;
  pointer-events: none;
}
.page-home .home-intro-meta {
  position: absolute;
  z-index: 8;
  top: 23px;
  left: clamp(24px, 6vw, 92px);
  right: clamp(24px, 6vw, 92px);
  margin: 0;
  color: #f0b293;
  font-size: 9px;
}
.page-home .home-intro-meta span:last-child { color: #adbec0; }
.page-home .home-intro-grid {
  position: absolute;
  z-index: 7;
  top: clamp(92px, 15vh, 140px);
  left: clamp(24px, 6vw, 92px);
  display: block;
  width: min(320px, 31vw);
  padding: 0;
  gap: 0;
  align-items: initial;
  transform-style: preserve-3d;
  pointer-events: none;
}
.page-home .home-intro h1 {
  margin: 0 0 19px;
  color: #f4f2e9;
  font-size: clamp(46px, 5.4vw, 72px);
  line-height: .95;
  letter-spacing: -.085em;
  text-shadow: 0 12px 36px rgba(0,0,0,.3);
  white-space: nowrap;
}
.page-home .home-intro h1 em { display: inline; margin-left: .08em; color: #ff9a79; }
.page-home .home-intro-copy {
  max-width: 310px;
  padding: 17px 18px 16px;
  border: 1px solid rgba(200,224,219,.2);
  border-radius: 4px 16px 4px 4px;
  background: linear-gradient(145deg, rgba(19,45,56,.78), rgba(10,26,36,.78));
  box-shadow: 0 24px 52px rgba(0,0,0,.25), inset 0 1px rgba(255,255,255,.08), 8px 9px 0 rgba(49,82,86,.22);
  backdrop-filter: blur(12px);
  transform: perspective(900px) rotateY(4deg) rotateX(1deg) translateZ(18px);
  pointer-events: auto;
}
.page-home .home-intro-copy > p { margin: 0 0 9px; color: #b9c9c8; font-size: 12px; line-height: 1.55; }
.page-home .home-intro-copy .home-lede { margin-bottom: 9px; color: #f2f4ef; font-size: 16px; line-height: 1.38; font-weight: 500; }
.page-home .home-school { margin: 12px 0 0; padding-top: 11px; border-color: rgba(203,222,216,.2); color: #a7bbbc; font-size: 8px; line-height: 1.55; }
.page-home .home-school span:first-child { color: #f0b392; }
.page-home .home-links { margin-top: 12px; }
.page-home .home-links .button { padding: 8px 10px; border: 1px solid rgba(255,183,148,.55); border-radius: 3px; background: rgba(255,137,105,.12); color: #ffd1b4; font: 9px var(--mono); box-shadow: none; }
.page-home .home-links .button:hover { transform: translateY(-2px); background: rgba(255,137,105,.25); box-shadow: 0 0 20px rgba(255,137,105,.22); }
.page-home .home-links .plain-link { display: none; }
.home-route-map { position: absolute; z-index: 2; inset: 0; margin: 0; }
.route-map-heading {
  position: absolute;
  z-index: 7;
  scroll-margin-top: 90px;
  top: 24px;
  right: clamp(24px, 6vw, 92px);
  left: 44%;
  align-items: end;
  margin: 0;
  pointer-events: none;
}
.route-map-heading .home-kicker { margin-bottom: 4px; color: #ff9c79; font-size: 8px; }
.route-map-heading h2 { color: #edf1e9; font: 500 clamp(16px, 1.8vw, 22px)/1.16 var(--sans); letter-spacing: -.04em; text-shadow: 0 4px 20px rgba(0,0,0,.38); }
.route-hint { color: #a7bcbd; font-size: 8px; }
.route-world {
  position: absolute;
  z-index: 1;
  inset: 0;
  height: auto;
  min-height: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(ellipse at 68% 51%, rgba(46,85,94,.35), transparent 44%),
    radial-gradient(ellipse at 52% 100%, rgba(238,151,111,.1), transparent 52%),
    linear-gradient(180deg, rgba(7,19,29,.03), rgba(5,14,22,.4));
  box-shadow: none;
  transform-style: preserve-3d;
}
.route-world::before {
  z-index: 0;
  left: -9%; right: -9%; bottom: -50%; height: 91%;
  transform: perspective(720px) rotateX(63deg) translate3d(calc(var(--pointer-x, 0) * -12px), calc(var(--pointer-y, 0) * -8px), -20px);
  background-image:
    linear-gradient(rgba(150,190,190,.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(150,190,190,.16) 1px, transparent 1px);
  background-size: 46px 42px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.95), transparent 83%);
  transition: transform .5s cubic-bezier(.2,.8,.2,1);
}
.route-world-grid {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    radial-gradient(ellipse at 82% 68%, rgba(255,137,105,.12), transparent 27%),
    radial-gradient(ellipse at 31% 64%, rgba(81,151,156,.13), transparent 28%),
    radial-gradient(circle at 78% 27%, rgba(255,220,183,.82) 0 1px, transparent 2px),
    radial-gradient(circle at 69% 18%, rgba(255,220,183,.42) 0 1px, transparent 2px),
    radial-gradient(circle at 48% 20%, rgba(255,220,183,.38) 0 1px, transparent 2px);
  background-size: auto, auto, 132px 144px, 196px 180px, 220px 215px;
  pointer-events: none;
  transform: translate3d(calc(var(--pointer-x, 0) * -9px), calc(var(--pointer-y, 0) * -7px), 0);
  transition: transform .55s cubic-bezier(.2,.8,.2,1);
}
.route-track { z-index: 2; inset: 0; width: 100%; height: 100%; overflow: visible; }
.track-guide { fill: none; stroke: transparent; stroke-width: 1; }
.track-shadow { stroke: rgba(0,0,0,.72); stroke-width: 86; transform: translateY(28px); filter: blur(9px); }
.track-bed { stroke: url(#trackBed); stroke-width: 66; filter: drop-shadow(0 22px 18px rgba(0,0,0,.42)); }
.track-tie { stroke: #172b39; stroke-width: 5; stroke-linecap: round; opacity: .92; filter: drop-shadow(0 2px 1px rgba(0,0,0,.5)); }
.track-rail { fill: none; stroke: #e5c8a1; stroke-width: 3.2; stroke-linecap: round; opacity: .96; filter: drop-shadow(0 0 4px rgba(255,203,157,.46)); }
.track-rail-shadow { fill: none; stroke: #0a1720; stroke-width: 8; stroke-linecap: round; opacity: .88; }
.track-light { stroke: #ff8065; stroke-width: 2.3; stroke-linecap: round; filter: url(#trackGlow); }
.track-beacon { fill: #fff3d9; stroke: #ff8e6e; stroke-width: 3; filter: drop-shadow(0 0 12px #ff785f); transform-box: fill-box; transform-origin: center; animation: beacon-breathe 2.8s ease-in-out infinite; }
.route-map-caption { position: absolute; z-index: 7; right: clamp(24px,6vw,92px); bottom: 15px; margin: 0; color: #8ea7aa; font: 8px/1.4 var(--mono); text-align: right; }
.route-thread-label {
  z-index: 3;
  left: 50%; bottom: 17px;
  padding: 7px 12px;
  border: 1px solid rgba(208,224,216,.18);
  border-radius: 99px;
  background: rgba(9,24,33,.7);
  color: #d2dfd7;
  box-shadow: 0 8px 28px rgba(0,0,0,.23);
  backdrop-filter: blur(8px);
}
.route-thread-label span { background: var(--accent); box-shadow: 0 0 10px var(--accent); }

/* Station modules rise out of the track like small architectural dioramas. */
.route-station {
  z-index: 4;
  width: clamp(156px, 16vw, 205px);
  gap: 2px;
  padding: 0 0 8px;
  color: #eef0e9;
  transform: translate(-50%, -50%) translate3d(calc(var(--pointer-x, 0) * -5px), calc(var(--pointer-y, 0) * -4px), 54px);
  transition: transform .42s cubic-bezier(.2,.8,.2,1), filter .3s ease;
  filter: drop-shadow(0 18px 18px rgba(0,0,0,.28));
}
.route-station::before {
  left: -7%; right: -7%; bottom: 46px; height: 66px;
  border: 1px solid rgba(193,224,215,.34);
  border-radius: 3px;
  background: linear-gradient(150deg, rgba(71,111,115,.96), rgba(21,46,58,.98) 67%, rgba(12,30,40,.98));
  box-shadow: 0 12px 0 #102430, 0 20px 0 rgba(5,14,22,.8), inset 0 1px rgba(255,255,255,.18);
  clip-path: polygon(50% 0,100% 32%,100% 68%,50% 100%,0 68%,0 32%);
  transform: rotateX(58deg) translateZ(-12px);
}
.route-station::after {
  content: "";
  position: absolute;
  z-index: -2;
  bottom: 31px;
  left: 13%; right: 13%; height: 13px;
  border-radius: 50%;
  background: rgba(255,137,105,.36);
  filter: blur(13px);
  transform: translateZ(-25px);
}
.route-station:hover,
.route-station:focus-visible,
.route-station.is-active {
  filter: drop-shadow(0 25px 24px rgba(0,0,0,.44)) drop-shadow(0 0 18px rgba(255,137,105,.2));
  transform: translate(-50%, -56%) translate3d(calc(var(--pointer-x, 0) * -5px), calc(var(--pointer-y, 0) * -4px), 90px);
}
.station-object {
  width: 58px; height: 54px; margin: 0 0 4px;
  transform: scale(1.45) translateZ(36px) rotateY(-12deg) rotateX(8deg);
  filter: drop-shadow(0 13px 7px rgba(0,0,0,.46)) drop-shadow(0 0 10px rgba(240,170,135,.24));
  transition: transform .4s cubic-bezier(.2,.8,.2,1), filter .3s ease;
}
.route-station:hover .station-object,
.route-station:focus-visible .station-object,
.route-station.is-active .station-object { transform: scale(1.56) translateY(-7px) translateZ(48px) rotateY(-5deg) rotateX(4deg); }
.station-object.object-orbit i:first-child { background: linear-gradient(135deg, rgba(255,203,168,.72), rgba(28,66,76,.82)); border-color: #f1d5b7; }
.station-object.object-orbit i:nth-child(2) { border-color: #ff9877; box-shadow: 0 0 14px rgba(255,137,105,.38); }
.station-object.object-orbit b { background: #f5e7d2; box-shadow: inset -4px -3px 0 #d78567, 0 0 14px rgba(255,213,170,.45); }
.station-object.object-path i:nth-child(2) { background: linear-gradient(145deg, #d9c9aa, #b8755f 52%, #365c64); box-shadow: 5px 8px 0 #142a37; }
.station-object.object-book i:first-child { background: linear-gradient(100deg,#e9e2c9,#a9c7c2); box-shadow: 3px 4px 0 #29444c, 6px 7px 0 #132935; }
.station-object.object-book i:nth-child(2) { background: linear-gradient(115deg,#ffc49e,#be755f); box-shadow: 3px 4px 0 #2b434b, 6px 7px 0 #132935; }
.station-object.object-data i:first-child { background: #a9d0c7; box-shadow: 13px -9px 0 -1px #edb292, 25px -20px 0 -1px #83b1b0, 37px -28px 0 -1px #ff8969; }
.station-object.object-data i:nth-child(2) { background: #d1d4c7; }
.station-object.object-cube i:first-child { background: linear-gradient(145deg,#f4e2c7,#b9a28d); box-shadow: 6px 8px 0 #162d38; }
.station-object.object-cube i:nth-child(2) { background: linear-gradient(90deg,#aac8bf,#41666a); }
.station-object.object-cube b { background: linear-gradient(90deg,#d9896f,#eab496); }
.station-object.object-signal i:first-child { background: linear-gradient(145deg,#fff2dc,#bfd4cc); box-shadow: 4px 6px 0 #27434a, 7px 10px 0 #142a36; }
.station-copy {
  width: 100%;
  padding: 8px 10px 9px;
  border: 1px solid rgba(222,235,226,.27);
  border-radius: 3px 9px 3px 3px;
  background: linear-gradient(145deg, rgba(18,43,54,.94), rgba(7,22,31,.92));
  box-shadow: 0 9px 0 rgba(3,12,19,.48), inset 0 1px rgba(255,255,255,.1), 0 14px 30px rgba(0,0,0,.2);
  backdrop-filter: blur(10px);
  transform: translateZ(20px);
}
.station-copy small { color: #a8c0bd; font-size: 8px; }
.station-copy strong { margin-top: 3px; color: #fff1de; font-size: 15px; }
.route-station:hover .station-copy,
.route-station:focus-visible .station-copy,
.route-station.is-active .station-copy { border-color: rgba(255,153,119,.8); background: linear-gradient(145deg,rgba(37,67,74,.98),rgba(13,31,41,.97)); transform: translateZ(30px); }

/* The rest of the home page becomes connected exhibit bays in the same world. */
.page-home .home-work,
.page-home .home-projects,
.page-home .home-about,
.page-home .home-contact {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(195,218,213,.12);
  background: linear-gradient(115deg, #0b1c26, #102a34 52%, #0b1c26);
  color: #edf2ec;
}
.page-home .home-work::before,
.page-home .home-projects::before,
.page-home .home-about::before,
.page-home .home-contact::before {
  content: "";
  position: absolute;
  left: clamp(26px,6vw,90px);
  top: 0; bottom: 0;
  width: 1px;
  opacity: .62;
  background: linear-gradient(transparent,rgba(255,137,105,.76) 12%,rgba(96,156,157,.35) 76%,transparent);
  box-shadow: 0 0 12px rgba(255,137,105,.3);
}
.page-home .home-section-head h2,
.page-home .home-about h2,
.page-home .home-contact h2 { color: #eff2e9; }
.page-home .home-kicker,
.page-home .home-card-meta { color: #f09b79; }
.page-home .home-work-card {
  overflow: hidden;
  border: 1px solid rgba(192,219,212,.16);
  border-radius: 3px 14px 3px 3px;
  background: linear-gradient(145deg, rgba(25,53,64,.88), rgba(11,27,37,.96));
  box-shadow: 0 24px 46px rgba(0,0,0,.2), 7px 9px 0 rgba(66,107,110,.12);
  transform: perspective(1200px) rotateX(1deg);
}
.page-home .home-work-image { height: clamp(185px,22vw,280px); border-bottom-color: rgba(192,219,212,.16); background: radial-gradient(ellipse at center, #edf0e9, #cdd9d4); }
.page-home .home-work-copy h3,
.page-home .home-work-copy h3 a { color: #f0f1e9; }
.page-home .home-work-copy > p:not(.home-card-meta) { color: #b1c2c2; }
.page-home .home-project-list { border-color: rgba(192,219,212,.2); }
.page-home .home-project-row { border-color: rgba(192,219,212,.17); color: #f0f2eb; transition: transform .3s ease, background .3s ease, padding .3s ease; }
.page-home .home-project-row > p { color: #b2c1c1; }
.page-home .home-project-row:hover { padding-left: 14px; background: rgba(54,92,98,.2); }
.page-home .home-about { background: linear-gradient(120deg,#112c35,#0a1b26 75%); }
.page-home .home-about > div:last-child p { color: #d1ddda; }
.page-home .home-about .plain-link,
.page-home .home-project-row .plain-link { color: #f0eadd; }
.page-home .home-contact { background: radial-gradient(ellipse at 75% 50%,rgba(255,137,105,.13),transparent 42%), #091922; }
.page-home .home-contact .home-kicker { color: #ffae88; }
.page-home .home-contact .button { background: #ffb08b; color: #1a2930; }

/* Each URL is a room on the same night-lit rail. The scene carries the mood; the glass panel carries the reading. */
.station-page-hero {
  min-height: max(650px, calc(100svh - 112px));
  padding: clamp(76px, 10vh, 118px) clamp(24px, 7vw, 108px) clamp(64px, 8vh, 92px);
  background: radial-gradient(ellipse at 75% 27%, rgba(47,91,99,.25), transparent 42%), #0a1922;
  color: #edf2ec;
}
.station-room-scene {
  background:
    radial-gradient(ellipse at 77% 34%, rgba(57,104,111,.26), transparent 41%),
    linear-gradient(115deg, rgba(7,18,27,.9), rgba(11,31,41,.42) 62%, rgba(8,21,30,.75));
}
.room-wall { opacity: 1; background: radial-gradient(ellipse at 83% 37%,rgba(255,137,105,.1),transparent 39%), linear-gradient(110deg,transparent 0 62%,rgba(187,221,215,.035) 62.1% 62.3%,transparent 62.4%); }
.room-floor {
  right: -12%; bottom: -55%; width: 105%; height: 91%; opacity: .4;
  background-image: linear-gradient(rgba(158,198,196,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(158,198,196,.18) 1px,transparent 1px);
  background-size: 48px 48px;
  filter: drop-shadow(0 -22px 38px rgba(39,82,89,.15));
}
.room-light {
  top: 2%; right: 5%; width: clamp(320px, 48vw, 640px);
  border-color: rgba(255,169,130,.26);
  opacity: .72;
  box-shadow: 0 0 0 28px rgba(255,137,105,.035), 0 0 0 72px rgba(98,157,161,.035), 0 0 90px rgba(255,137,105,.13), inset 0 0 100px rgba(132,186,179,.09);
}
.room-sculpture {
  --room-art-opacity: .92;
  top: 5%; right: clamp(25px, 8vw, 125px);
  width: clamp(360px, 48vw, 610px);
  filter: drop-shadow(0 30px 28px rgba(0,0,0,.45)) drop-shadow(0 0 24px rgba(255,167,131,.12));
  transform: translateZ(40px) rotateY(-14deg) rotateX(7deg);
}
.room-sculpture .orb-core,
.room-sculpture .orb-person { fill: #e7b18e; stroke: #dfebe3; stroke-width: 1.4; }
.room-sculpture .orb-ring { stroke: #ff9572; opacity: .93; filter: drop-shadow(0 0 8px rgba(255,137,105,.5)); }
.room-sculpture .orb-ring-two { stroke: #b8d4cb; opacity: .62; }
.room-sculpture .path-shadow { stroke: rgba(0,0,0,.42); stroke-width: 28; }
.room-sculpture .path-line { stroke: #ff9874; stroke-width: 4; filter: drop-shadow(0 0 7px rgba(255,137,105,.75)); }
.room-sculpture .memory-card { fill: #193b47; stroke: #d1e0d9; stroke-width: 1.6; filter: drop-shadow(12px 15px 0 rgba(0,0,0,.32)); }
.room-sculpture .memory-card path + path { stroke: #e8b492; }
.room-sculpture .room-node { fill: #ff9672; stroke: #fff0d4; }
.room-sculpture .book-side { fill: #16343f; stroke: #d7e4db; }
.room-sculpture .book-top { fill: #e9e5ce; stroke: #f2f2e8; }
.room-sculpture .book-front { fill: #ce8066; stroke: #f2c09e; }
.room-sculpture .book-line { stroke: #253943; }
.room-sculpture .chart-platform { fill: #173742; stroke: #c8dbd4; }
.room-sculpture .chart-axis { stroke: #c8dbd4; }
.room-sculpture .chart-bar { fill: #eca987; stroke: #f3dcc2; }
.room-sculpture .chart-line { stroke: #ff8969; filter: drop-shadow(0 0 7px rgba(255,137,105,.65)); }
.room-sculpture .signal-link { stroke: #d5e3dc; opacity: .72; }
.room-sculpture .signal-core { fill: #f0aa87; stroke: #f7e7d4; }
.room-sculpture .signal-point { fill: #143340; stroke: #ff9672; }
.room-sculpture .build-left { fill: #547b78; stroke: #d0e0d7; }
.room-sculpture .build-right { fill: #c57861; stroke: #f0c09f; }
.room-sculpture .build-top { fill: #d6ddd0; stroke: #eff2e8; }
.room-sculpture .signal-ring { stroke: #ff9875; filter: drop-shadow(0 0 8px rgba(255,137,105,.55)); }
.room-sculpture .signal-ring-two { stroke: #c6dcd5; opacity: .66; }
.room-sculpture .message-box { fill: #153542; stroke: #dfebe2; filter: drop-shadow(12px 14px 0 rgba(0,0,0,.36)); }
.room-sculpture .message-line { stroke: #ff9875; }

.station-page-hero > .section-number {
  margin: 0 0 8px;
  padding: 6px 10px;
  border: 1px solid rgba(197,221,214,.22);
  border-radius: 99px;
  background: rgba(13,34,44,.78);
  color: #f2ab89;
  font: 9px var(--mono);
  letter-spacing: .04em;
  box-shadow: 0 8px 23px rgba(0,0,0,.18);
  backdrop-filter: blur(9px);
}
.station-route-return {
  display: flex;
  width: max-content;
  margin: 0 0 28px;
  padding: 6px 9px;
  border: 1px solid rgba(188,216,208,.19);
  border-radius: 2px 8px 2px 2px;
  background: rgba(16,39,49,.66);
  color: #b8c8c5;
  box-shadow: 0 7px 20px rgba(0,0,0,.15);
}
.station-route-return:hover { border-color: rgba(255,137,105,.55); color: #ffe2cd; }
.station-page-hero h1,
.station-page-hero h2,
.station-page-hero h3 { color: #f2f1e9; text-shadow: 0 8px 27px rgba(0,0,0,.22); }
.station-page-hero .section-intro,
.station-page-hero .detail-lede { color: #b8c8c6; }
.station-page-hero .about-copy,
.station-page-hero .story-copy {
  border: 1px solid rgba(191,219,211,.17);
  border-radius: 3px 16px 3px 3px;
  background: linear-gradient(145deg, rgba(19,46,57,.89), rgba(9,25,35,.88));
  color: #c2d1cf;
  box-shadow: 0 30px 58px rgba(0,0,0,.28), 8px 10px 0 rgba(70,115,119,.15), inset 0 1px rgba(255,255,255,.07);
  backdrop-filter: blur(14px) saturate(130%);
}
.station-page-hero .focus-tags span,
.station-page-hero .tags span { border-color: rgba(202,222,212,.21); background: rgba(8,23,32,.7); color: #d8e1d9; }
.station-page-hero .story-steps { border-color: rgba(198,222,211,.2); background: rgba(11,31,41,.6); }
.station-page-hero .story-steps > div { border-color: rgba(198,222,211,.2); }
.station-page-hero .story-steps b { color: #f2d2b5; }
.station-page-hero .story-steps p { color: #b7c8c5; }
.station-page-hero .research-list { border-color: rgba(195,220,212,.18); }
.station-page-hero .research-item {
  border: 1px solid rgba(195,220,212,.15);
  border-radius: 3px 14px 3px 3px;
  background: linear-gradient(145deg, rgba(19,45,56,.9), rgba(9,24,34,.93));
  box-shadow: 0 23px 44px rgba(0,0,0,.2), 6px 8px 0 rgba(73,118,119,.13);
}
.station-page-hero .research-item h3,
.station-page-hero .project h3,
.station-page-hero .timeline h3 { color: #f1f1e9; }
.station-page-hero .research-item p:not(.item-meta),
.station-page-hero .project-body p,
.station-page-hero .timeline p { color: #b6c7c5; }
.station-page-hero .item-meta,
.station-page-hero .project-body > span,
.station-page-hero .timeline article > span { color: #f2a987; }
.station-page-hero .research-card-image,
.station-page-hero .research-media { border-color: rgba(199,221,213,.24); background: #e9ece6; color: #20343b; box-shadow: 0 18px 28px rgba(0,0,0,.2); }
.station-page-hero .research-card-image figcaption { color: #5b6c6c; }
.station-page-hero .project {
  border: 1px solid rgba(197,222,214,.18);
  border-radius: 3px 15px 3px 3px;
  background: linear-gradient(145deg, rgba(21,49,59,.94), rgba(8,24,34,.97));
  box-shadow: 0 28px 48px rgba(0,0,0,.28), 7px 10px 0 rgba(78,124,122,.15);
}
.station-page-hero .project-image { border-color: rgba(206,224,215,.17); }
.station-page-hero .project-mindjoy { background: radial-gradient(ellipse at 50% 50%, #bb947a, #31535a 61%, #122a35); }
.station-page-hero .project-security { background: radial-gradient(ellipse at 50% 50%, #8db4a9, #274c56 61%, #102731); }
.station-page-hero .project-robot { background: radial-gradient(ellipse at 50% 50%, #74abb5, #24505d 60%, #102731); }
.station-page-hero .timeline { border-color: rgba(199,220,213,.2); }
.station-page-hero .timeline article { border-color: rgba(196,220,212,.15); background: rgba(15,38,48,.85); }
.station-page-hero .education-feature { border-color: rgba(211,229,219,.2); background: linear-gradient(140deg,#1f454a,#18353f); }
.station-page-hero .education-feature p { color: #c3d1ca; }
.station-contact { background: radial-gradient(ellipse at 70% 20%,rgba(66,105,110,.27),transparent 42%),#091a24; }
.station-contact .contact-email,
.station-contact .contact-linkedin,
.station-contact .contact-github { color: #f4e9d5; border-color: #f29d7a; }
.station-contact .contact-footer { border-color: rgba(202,225,216,.18); color: #aebfbb; }

/* Research details remain readable as layered exhibit panels inside the same world. */
.page-research-detail main { background: #091923; color: #e8efec; }
.page-research-detail .detail-hero,
.page-research-detail .detail-section,
.page-research-detail .paper-figures { background-color: #0d202a; color: #e8efec; }
.page-research-detail .detail-hero { background: radial-gradient(ellipse at 80% 23%,rgba(57,104,111,.22),transparent 43%),#0a1923; }
.page-research-detail .detail-tint { background: linear-gradient(120deg,#15323b,#102630); }
.page-research-detail .detail-hero h1,
.page-research-detail .detail-section h2,
.page-research-detail .paper-figures h2,
.page-research-detail .detail-cta h2 { color: #f0f1e9; }
.page-research-detail .detail-hero h1 em { color: #f19b79; }
.page-research-detail .detail-lede,
.page-research-detail .detail-copy,
.page-research-detail .detail-columns p,
.page-research-detail .detail-list { color: #b8c9c5; }
.page-research-detail .metric-grid { border-color: rgba(205,225,216,.22); }
.page-research-detail .metric-grid > div { border-color: rgba(205,225,216,.22); background: rgba(19,45,56,.88); box-shadow: 0 16px 32px rgba(0,0,0,.23); }
.page-research-detail .metric-grid strong { color: #f2a583; }
.page-research-detail .metric-grid span { color: #d5dfd8; }
.page-research-detail .detail-columns h3 { color: #eeeede; }
.page-research-detail .detail-list li { border-color: rgba(208,226,217,.2); }
.page-research-detail .result-grid article { border-color: rgba(205,225,216,.18); background: linear-gradient(145deg,#173741,#0e2530); }
.page-research-detail .result-grid h3 { color: #f2e9d9; }
.page-research-detail .result-grid p { color: #b7c7c4; }
.page-research-detail .data-table { background: #122b35; color: #e2ebe4; }
.page-research-detail .data-table th { background: #254750; color: #fff0dd; }
.page-research-detail .data-table td { border-color: rgba(206,226,216,.2); }
.page-research-detail .data-table caption { color: #aebfbd; }
.page-research-detail .detail-callout { border-color: #ff9876; }
.page-research-detail .detail-callout p { color: #f0e9dd; }
.page-research-detail .detail-cta { background: linear-gradient(120deg,#17353e,#0d222c); }
.page-research-detail .detail-cta .section-number { color: #f2ad8c; }
.page-research-detail .text-link { color: #e8eee7; border-color: #f1a381; }
.page-research-detail .paper-figure-grid figure { border-color: rgba(202,223,214,.18); background: #e9ece6; }
.page-research-detail .paper-figure-grid figcaption { color: #536566; }

footer { border-top-color: rgba(197,220,212,.15); background: #07131c; color: #a7bab8; }
footer a { color: #edf1e8; }

@media (max-width: 780px) {
  .page-home .home-intro { height: auto; min-height: 920px; }
  .page-home .home-intro-meta { top: 17px; left: 6vw; right: 6vw; }
  .page-home .home-intro-grid { top: 76px; left: 6vw; width: min(320px, 86vw); }
  .page-home .home-intro h1 { font-size: clamp(48px, 12vw, 64px); }
  .page-home .home-intro-copy { max-width: 320px; padding: 12px 13px; }
  .route-map-heading { top: auto; left: 6vw; right: 6vw; bottom: 842px; text-align: left; }
  .route-map-heading h2 { font-size: 16px; }
  .route-hint { max-width: 92px; }
  .route-world { top: 230px; bottom: 0; height: auto; overflow: hidden; padding: 0; display: block; background: transparent; }
  .route-world::before { left: -28%; right: -28%; bottom: -28%; height: 75%; transform: perspective(780px) rotateX(57deg); background-size: 34px 34px; mask-image: linear-gradient(to bottom,#000,transparent 85%); }
  .route-world-grid { display: block; }
  .route-track { display: block; width: 100%; height: 100%; inset: 0; }
  .route-station { position: absolute; left: var(--station-x); top: var(--station-y); width: clamp(122px,32vw,155px); min-height: 0; padding: 0 0 6px; background: none; border: 0; box-shadow: none; transform: translate(-50%,-50%) translateZ(32px); }
  .route-station::before { display: block; left: -3%; right: -3%; bottom: 40px; height: 46px; }
  .route-station::after { display: block; }
  .route-station:hover,
  .route-station:focus-visible,
  .route-station.is-active { transform: translate(-50%,-55%) translateZ(48px); }
  .station-object { width: 45px; height: 42px; transform: scale(1.15) translateZ(24px) rotateY(-10deg); }
  .route-station:hover .station-object,
  .route-station:focus-visible .station-object,
  .route-station.is-active .station-object { transform: scale(1.25) translateY(-4px) translateZ(30px); }
  .station-copy { padding: 6px 7px; }
  .station-copy small { font-size: 7px; }
  .station-copy strong { font-size: 12px; }
  .route-thread-label { position: absolute; bottom: 13px; left: 50%; grid-column: auto; background: rgba(9,24,33,.8); font-size: 7px; }
  .route-map-caption { bottom: 0; left: 6vw; right: 6vw; font-size: 7px; text-align: left; }
  .room-sculpture { --room-art-opacity: .58; top: 3%; right: -1%; width: clamp(240px,60vw,390px); }
  .room-light { right: -8%; top: 2%; width: 300px; }
  .station-page-hero { min-height: 0; padding: 64px 6vw 56px; }
  .station-page-hero .about-layout { grid-template-columns: 1fr; gap: 24px; }
  .station-page-hero .story-layout { display: block; }
  .station-page-hero .story-copy { margin-top: 26px; }
  .station-page-hero .project-grid { grid-template-columns: 1fr; }
  .station-page-hero .project { transform: none; }
  .station-page-hero .project:hover { transform: translateY(-3px); }
  .page-research-detail .station-page-hero { min-height: 0; }
  .page-research-detail .station-page-hero h1,
  .page-research-detail .station-page-hero .detail-lede,
  .page-research-detail .station-page-hero .research-actions { max-width: 100%; }
  .page-home .home-work,
  .page-home .home-projects,
  .page-home .home-about,
  .page-home .home-contact { padding-left: 9vw; }
}
@media (max-width: 480px) {
  .nav { background: rgba(6,17,26,.92); }
  .world-wayfinder { background: rgba(11,27,36,.96); }
  .page-home .home-intro { min-height: 980px; }
  .route-map-heading { bottom: 902px; }
  .route-world { top: 260px; }
  .route-station { width: 126px; }
  .station-copy small { font-size: 6.5px; }
  .station-copy strong { font-size: 11px; }
  .route-thread-label { font-size: 6px; }
  .station-route-return { margin-bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .route-station,
  .station-object,
  .station-copy,
  .room-sculpture,
  .route-world::before,
  .route-world-grid,
  .page-home .home-work-card,
  .page-home .home-project-row { animation: none !important; transition: none !important; }
}

/* Spatial redesign pass: give the portfolio one continuous, physical rail system. */
main { position: relative; }
.world-wayfinder { position: relative; z-index: 9; }
.wayfinder-stops { position: relative; }
.wayfinder-stops::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 7px;
  right: 7px;
  top: 50%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(143,177,177,.55) 8%, rgba(143,177,177,.34) 92%, transparent);
}
.wayfinder-stops a { position: relative; z-index: 1; padding: 5px 7px; background: rgba(8,22,30,.92); }
.wayfinder-stops a > span { box-shadow: 0 0 0 3px #0b1b25; }

/* A living thread connects the five stations; the visitor is a person inside a glass orb. */
.route-world { perspective: 1500px; }
.route-world::before { background-size: 40px 36px; }
.route-track { overflow: visible; }
.track-shadow { stroke: rgba(1,13,20,.6); stroke-width: 21; transform: translateY(7px); filter: blur(8px); }
.track-bed { stroke: url(#threadBed); stroke-width: 7; opacity: .95; filter: drop-shadow(0 0 11px rgba(110,191,181,.32)); }
.track-light { stroke: url(#threadLight); stroke-width: 1.5; stroke-dasharray: 2 29; opacity: .72; filter: drop-shadow(0 0 8px rgba(164,224,207,.62)); animation: thread-flow 13s linear infinite; }
.thread-node-halo { fill: rgba(129,203,196,.1); stroke: rgba(169,221,204,.35); stroke-width: 1; }
.thread-node { fill: #ffe5c1; stroke: #6bb6b4; stroke-width: 2; filter: drop-shadow(0 0 7px #f4b092); }
@keyframes thread-flow { to { stroke-dashoffset: -186; } }

.route-companion {
  position: absolute;
  z-index: 8;
  left: 9.2%; top: 86%;
  width: clamp(76px, 7.2vw, 98px);
  aspect-ratio: 1;
  transform: translate(-50%, -104%);
  pointer-events: none;
}
.route-orb {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%; height: 100%;
  margin: 0; padding: 0;
  border: 0; border-radius: 50%;
  background: transparent; color: inherit;
  cursor: pointer;
  overflow: visible;
  pointer-events: auto;
  filter: drop-shadow(0 14px 15px rgba(0,0,0,.62)) drop-shadow(0 0 18px rgba(131,216,211,.55));
  transition: filter .35s ease;
}
.route-orb:focus-visible { outline: 2px solid #ffe4bc; outline-offset: 4px; }
.route-orb::before {
  content: "";
  position: absolute;
  inset: -17px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(134,218,207,.2), transparent 69%);
  opacity: .8;
  animation: orb-aura 4s ease-in-out infinite;
}
.route-orb svg { position: relative; display: block; width: 100%; height: 100%; overflow: visible; }
.route-orb.is-spotlight { filter: drop-shadow(0 17px 18px rgba(0,0,0,.65)) drop-shadow(0 0 24px rgba(255,181,139,.82)); }
.route-orb.is-spotlight svg { animation: orb-greet .6s ease-out; }
.orb-shell { fill: url(#orbGlass); stroke: rgba(234,252,240,.38); stroke-width: 1; }
.orb-land { fill: rgba(17,58,66,.78); }
.orb-outline { fill: none; stroke: url(#orbRim); stroke-width: 3; }
.orb-glint { fill: none; stroke: #fffefa; stroke-width: 3; stroke-linecap: round; opacity: .9; }
.orb-spark { fill: #fff5df; filter: drop-shadow(0 0 4px #fff5df); }
.orb-scene { opacity: 0; transform: translateY(4px) scale(.94); transform-origin: 50px 55px; transition: opacity .42s ease, transform .42s ease; }
.route-companion[data-scene="about"] .orb-scene-about,
.route-companion[data-scene="research"] .orb-scene-research,
.route-companion[data-scene="projects"] .orb-scene-projects,
.route-companion[data-scene="internship"] .orb-scene-internship,
.route-companion[data-scene="extracurricular"] .orb-scene-extracurricular,
.route-companion[data-scene="contact"] .orb-scene-contact { opacity: 1; transform: translateY(0) scale(1); }
.orb-person-head { fill: #f7cba8; stroke: #ffe2c0; stroke-width: 1; }
.orb-person-hair { fill: #243943; }
.orb-person-body { fill: #df957c; stroke: #ffe0bb; stroke-width: 1.3; }
.orb-person-arm { fill: none; stroke: #f7cba8; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.orb-scene-detail { fill: #ffe8bb; filter: drop-shadow(0 0 3px #ffe8bb); }
.orb-book { fill: #fff1d5; stroke: #7eafa6; stroke-width: 1.8; stroke-linejoin: round; }
.orb-book-spine { fill: none; stroke: #bf846e; stroke-width: 1.5; }
.orb-research-lens { fill: rgba(204,247,230,.33); stroke: #fff2cf; stroke-width: 3; }
.orb-research-handle { fill: none; stroke: #fff2cf; stroke-width: 3; stroke-linecap: round; }
.orb-research-point { fill: #ffe3a6; }
.orb-sapling { fill: none; stroke: #d9c593; stroke-width: 3; stroke-linecap: round; }
.orb-sapling-leaf { fill: #a9d4ac; stroke: #d7efc5; stroke-width: 1; }
.orb-screen { fill: #e6e3cc; stroke: #9fcac2; stroke-width: 1.6; }
.orb-screen-line { fill: none; stroke: #bd876d; stroke-width: 1.7; stroke-linecap: round; }
.orb-message { fill: #fff1db; stroke: #d6a07d; stroke-width: 1.6; stroke-linejoin: round; }
.orb-message-line { fill: none; stroke: #6d918f; stroke-width: 2; stroke-linecap: round; }
.route-orb-dialog {
  position: absolute;
  z-index: 12;
  top: -7px; left: calc(100% + 16px);
  display: flex;
  width: min(246px, calc(100vw - 110px));
  min-height: 126px;
  flex-direction: column;
  align-items: stretch;
  justify-content: space-between;
  padding: 21px 17px 13px;
  border: 1px solid rgba(187,225,213,.62);
  border-radius: 5px 16px 5px 5px;
  background: linear-gradient(145deg,rgba(25,54,62,.98),rgba(7,20,29,.98));
  box-shadow: 0 17px 40px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.12);
  color: #edf2e8;
  pointer-events: auto;
  transform-origin: 0 20px;
  animation: orb-dialog-in .24s cubic-bezier(.2,.8,.2,1) both;
  backdrop-filter: blur(14px);
}
.route-orb-dialog[hidden] { display: none !important; }
.route-orb-dialog::before {
  content: "";
  position: absolute;
  top: 23px; left: -9px;
  width: 10px; height: 18px;
  background: #193740;
  clip-path: polygon(0 50%,100% 0,100% 100%);
  filter: drop-shadow(-1px 0 rgba(187,225,213,.62));
}
.route-companion[data-side="left"] .route-orb-dialog {
  right: calc(100% + 16px); left: auto;
  transform-origin: 100% 20px;
}
.route-companion[data-side="left"] .route-orb-dialog::before {
  right: -9px; left: auto;
  transform: scaleX(-1);
}
.route-orb-question {
  max-width: 210px;
  margin: 0 13px 13px 0;
  color: #f2eee0;
  font: 500 16px/1.38 var(--sans);
  letter-spacing: -.02em;
}
.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.route-orb-typed::after {
  content: "";
  display: inline-block;
  width: 1px; height: 1em;
  margin-left: 3px;
  vertical-align: -.12em;
  background: #ffc09b;
}
.route-orb-dialog:not(.is-typing) .route-orb-typed::after { display: none; }
.route-orb-close {
  position: absolute;
  top: 4px; right: 7px;
  display: grid;
  width: 25px; height: 25px;
  place-items: center;
  border: 0; border-radius: 50%;
  background: transparent; color: #b7cbc4;
  font: 18px/1 var(--sans);
  cursor: pointer;
}
.route-orb-close:hover,
.route-orb-close:focus-visible { background: rgba(199,226,211,.12); color: #fff1d7; }
.route-orb-go {
  align-self: flex-end;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  border: 1px solid rgba(255,192,155,.7);
  border-radius: 3px 8px 3px 3px;
  background: linear-gradient(135deg,#df9175,#a65f57);
  box-shadow: 0 4px 0 rgba(3,12,19,.42);
  color: #fff6e8;
  font: 500 10px var(--mono);
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.route-orb-go:hover,
.route-orb-go:focus-visible { transform: translateY(-2px); box-shadow: 0 6px 0 rgba(3,12,19,.42); filter: brightness(1.12); }
.route-orb-go span:last-child { font-size: 13px; }
@keyframes orb-dialog-in { from { opacity: 0; transform: translateY(6px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes orb-aura { 50% { opacity: 1; transform: scale(1.12); } }
@keyframes orb-greet { 50% { transform: scale(1.12); } }
.route-station {
  width: clamp(126px, 14vw, 198px);
  filter: drop-shadow(0 22px 22px rgba(0,0,0,.4));
}
.route-station::before {
  bottom: 43px;
  height: 72px;
  border-color: rgba(212,231,221,.42);
  background: linear-gradient(150deg, rgba(100,137,136,.98), rgba(30,61,72,.98) 62%, rgba(11,28,38,.99));
  box-shadow: 0 9px 0 #102631, 0 18px 0 #091720, 0 24px 22px rgba(0,0,0,.34), inset 0 1px rgba(255,255,255,.24);
}
.route-station::after { bottom: 22px; }
.station-object { width: 60px; height: 56px; transform: scale(1.55) translateZ(43px) rotateY(-14deg) rotateX(9deg); }
.station-copy {
  min-height: 54px;
  padding: 8px 11px 9px;
  box-shadow: 0 8px 0 rgba(3,12,19,.58), inset 0 1px rgba(255,255,255,.12), 0 17px 32px rgba(0,0,0,.27);
}
.station-copy small { font-size: 8.5px; }
.station-copy strong { font-size: 16px; }
.object-paper-search svg,
.object-tree svg,
.object-briefcase svg,
.object-heart svg { display: block; width: 100%; height: 100%; overflow: visible; }
.art-paper-shadow { fill: #122e38; opacity: .9; }
.art-paper { fill: #f2e8ce; stroke: #fff2d3; stroke-width: 1.5; stroke-linejoin: round; }
.art-paper-fold { fill: none; stroke: #b9856e; stroke-width: 1.5; stroke-linejoin: round; }
.art-paper-line { fill: none; stroke: #7b9f99; stroke-width: 2; stroke-linecap: round; }
.art-search-lens { fill: rgba(143,207,198,.28); stroke: #f4d9b5; stroke-width: 3; }
.art-search-handle { fill: none; stroke: #f4d9b5; stroke-width: 5; stroke-linecap: round; }
.art-search-glint { fill: none; stroke: #fff8e5; stroke-width: 1.8; stroke-linecap: round; }
.art-tree-roots { fill: none; stroke: #cb9b7d; stroke-width: 4; stroke-linecap: round; }
.art-tree-trunk { fill: none; stroke: #b77964; stroke-width: 9; stroke-linecap: round; stroke-linejoin: round; }
.art-tree-leaf { stroke: #bedfbd; stroke-width: 1; }
.art-tree-leaf-one { fill: #5d978a; }
.art-tree-leaf-two { fill: #83b4a0; }
.art-tree-leaf-three { fill: #3c796f; }
.art-tree-branch { fill: none; stroke: #b9dfc2; stroke-width: 1.5; stroke-linecap: round; opacity: .7; }
.art-tree-fruit { fill: #ffac86; stroke: #ffe8bd; stroke-width: 1; filter: drop-shadow(0 0 3px rgba(255,159,116,.75)); }
.art-case-shadow { fill: #183640; }
.art-case-handle { fill: none; stroke: #f8e8cb; stroke-width: 5; stroke-linecap: round; }
.art-case { fill: #bd8f77; stroke: #ffe5c8; stroke-width: 2; stroke-linejoin: round; }
.art-case-lid { fill: #e9d7b5; stroke: #fff0d3; stroke-width: 1.5; stroke-linejoin: round; }
.art-case-clasp { fill: #80aaa3; stroke: #d9efe1; stroke-width: 1.5; }
.art-heart-shadow { fill: #132d37; }
.art-heart { fill: #e69079; stroke: #ffe0be; stroke-width: 2; stroke-linejoin: round; }
.art-heart-glint { fill: none; stroke: #fff1d8; stroke-width: 2; stroke-linecap: round; }
.route-station:hover .art-search-lens,
.route-station:focus-visible .art-search-lens,
.route-station:hover .art-tree-fruit,
.route-station:focus-visible .art-tree-fruit { animation: art-spark .9s ease-in-out alternate infinite; }
@keyframes art-spark { to { opacity: .55; transform: scale(.85); transform-origin: center; } }
.route-station:hover .station-copy,
.route-station:focus-visible .station-copy,
.route-station.is-active .station-copy { box-shadow: 0 8px 0 rgba(3,12,19,.58), inset 0 1px rgba(255,255,255,.16), 0 0 22px rgba(255,137,105,.2); }
.route-map-caption { color: #a8bbba; }

/* The thread carries into the selected work sections. */
.page-home .home-work::before,
.page-home .home-projects::before,
.page-home .home-about::before,
.page-home .home-contact::before {
  left: clamp(23px, 5vw, 70px);
  width: 3px;
  opacity: .78;
  background: linear-gradient(transparent, rgba(144,213,198,.72) 16%, rgba(255,169,132,.7) 80%, transparent);
  box-shadow: 0 0 15px rgba(131,203,195,.45);
}
.page-home .home-work-card {
  transform: perspective(1300px) rotateY(-1deg) rotateX(2deg) translateZ(0);
  box-shadow: 0 26px 48px rgba(0,0,0,.32), 10px 13px 0 rgba(66,107,110,.18), inset 0 1px rgba(255,255,255,.1);
}
.page-home .home-work-card:nth-child(even) { transform: perspective(1300px) rotateY(1deg) rotateX(2deg); }
.page-home .home-work-card:hover { transform: perspective(1300px) rotateY(0) rotateX(0) translateY(-7px) translateZ(14px); }
.page-home .home-project-row {
  position: relative;
  padding: 20px 18px;
  border: 1px solid rgba(192,219,212,.13);
  border-radius: 3px 10px 3px 3px;
  background: linear-gradient(115deg, rgba(23,49,60,.78), rgba(10,27,37,.4));
  box-shadow: 0 12px 20px rgba(0,0,0,.16), 4px 5px 0 rgba(76,119,118,.12);
}
.page-home .home-project-row:hover { padding-left: 22px; transform: translateY(-3px) translateZ(8px); }
.page-home .home-project-row h3 { color: #f2eee3; }

/* Every interior page carries a slim 3D rail beside its reading panels. */
.page-route-spine {
  position: absolute;
  z-index: 6;
  top: 0;
  left: 0;
  width: clamp(55px, 7.5vw, 100px);
  overflow: visible;
  pointer-events: none;
  opacity: .88;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,.26));
}
.spine-shadow { fill: none; stroke: rgba(0,0,0,.56); stroke-width: 27; stroke-linecap: round; filter: blur(4px); }
.spine-bed { fill: none; stroke: url(#spineMetal); stroke-width: 22; stroke-linecap: round; filter: drop-shadow(0 5px 5px rgba(0,0,0,.36)); }
.spine-ties { opacity: .95; }
.spine-tie { stroke: #102733; stroke-width: 4.5; stroke-linecap: round; filter: drop-shadow(0 1px 1px rgba(0,0,0,.72)); }
.spine-rails { fill: none; }
.spine-rail { fill: none; stroke: #dfb893; stroke-width: 1.7; stroke-linecap: round; filter: url(#spineGlow); }
.spine-light { fill: none; stroke: rgba(255,137,105,.72); stroke-width: 1; stroke-dasharray: 5 18; stroke-linecap: round; }
.spine-stops { fill: #ffc096; stroke: #fff1dc; stroke-width: 1.5; filter: drop-shadow(0 0 6px rgba(255,137,105,.9)); }
.spine-runner { fill: #fff4d9; stroke: #ff8969; stroke-width: 2.2; filter: drop-shadow(0 0 7px #ff8969); }

/* Shared 3D room grammar: illuminated threshold, patterned floor, raised content panels. */
.station-page-hero {
  min-height: max(690px, calc(100svh - 108px));
  background-image:
    radial-gradient(ellipse at 76% 24%, rgba(76,132,138,.22), transparent 38%),
    linear-gradient(145deg, rgba(10,25,35,.98), rgba(13,36,46,.96) 68%, rgba(7,19,29,.99));
  box-shadow: inset 0 -1px rgba(196,222,213,.15), inset 0 1px rgba(196,222,213,.08);
}
.station-room-scene { perspective: 1300px; }
.room-wall {
  background:
    radial-gradient(ellipse at 82% 34%, rgba(255,137,105,.14), transparent 36%),
    linear-gradient(90deg, transparent 0 67%, rgba(200,228,218,.045) 67.1% 67.3%, transparent 67.4%),
    linear-gradient(rgba(165,202,197,.045) 1px, transparent 1px);
  background-size: auto, auto, 100% 92px;
  mask-image: linear-gradient(90deg, transparent, #000 40%);
}
.room-floor {
  right: -5%; bottom: -57%; width: 82%; height: 94%; opacity: .5;
  background-size: 44px 44px;
  transform: perspective(560px) rotateX(62deg) rotateZ(-8deg);
}
.room-light {
  top: 5%; right: 7%; width: clamp(310px, 45vw, 600px);
  border-color: rgba(255,173,135,.32);
  box-shadow: 0 0 0 36px rgba(255,137,105,.04), 0 0 0 78px rgba(98,157,161,.035), 0 0 110px rgba(255,137,105,.18), inset 0 0 110px rgba(132,186,179,.12);
}
.room-sculpture {
  transform: translateZ(62px) rotateY(-19deg) rotateX(9deg);
  filter: drop-shadow(0 38px 30px rgba(0,0,0,.52)) drop-shadow(0 0 31px rgba(255,167,131,.18));
}
.station-page-hero .about-copy,
.station-page-hero .story-copy,
.station-page-hero .education-feature,
.station-page-hero .research-item,
.station-page-hero .project,
.station-page-hero .timeline article {
  transform-style: preserve-3d;
  backdrop-filter: blur(16px) saturate(135%);
}
.station-page-hero .research-item,
.station-page-hero .project,
.station-page-hero .timeline article { isolation: isolate; }
.station-page-hero .project { overflow: visible; }
.station-page-hero .project-image { border-radius: 2px 11px 2px 2px; }
.station-page-hero .about-layout > div:first-child h2,
.station-page-hero .story-layout > h2,
.station-page-hero > h2 { text-shadow: 0 18px 42px rgba(0,0,0,.4); }
.station-page-hero .research-item,
.station-page-hero .project,
.station-page-hero .timeline article {
  position: relative;
  box-shadow: 0 29px 48px rgba(0,0,0,.32), 8px 10px 0 rgba(75,119,119,.17), inset 0 1px rgba(255,255,255,.09);
}
.station-page-hero .research-item::after,
.station-page-hero .project::after,
.station-page-hero .timeline article::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 10px; right: -7px; bottom: -11px; height: 10px;
  border-radius: 0 0 5px 5px;
  background: linear-gradient(90deg, rgba(173,202,190,.24), rgba(16,40,50,.9));
  transform: skewX(-34deg);
}
.station-page-hero .research-item:hover,
.station-page-hero .project:hover,
.station-page-hero .timeline article:hover {
  transform: translateY(-5px) translateZ(12px);
  box-shadow: 0 34px 54px rgba(0,0,0,.38), 9px 12px 0 rgba(75,119,119,.2), inset 0 1px rgba(255,255,255,.12);
}
.station-page-hero .education-feature { box-shadow: 0 28px 44px rgba(0,0,0,.3), 8px 10px 0 rgba(75,119,119,.17); }
.station-page-hero .story-steps { box-shadow: 0 25px 45px rgba(0,0,0,.24); }
.page-research-detail .detail-section,
.page-research-detail .paper-figures,
.page-research-detail .detail-cta { box-shadow: inset 0 1px rgba(192,219,212,.06), inset 0 -1px rgba(192,219,212,.06); }
.page-research-detail .metric-grid > div,
.page-research-detail .result-grid article,
.page-research-detail .paper-figure-grid figure {
  border: 1px solid rgba(192,219,212,.2);
  border-radius: 3px 12px 3px 3px;
  box-shadow: 0 22px 36px rgba(0,0,0,.29), 5px 7px 0 rgba(73,118,119,.15);
}
.page-research-detail .paper-figure-grid figure:hover,
.page-research-detail .result-grid article:hover,
.page-research-detail .metric-grid > div:hover { transform: translateY(-5px) translateZ(10px); }
.page-research-detail .paper-figure-grid img { background: #edf0e8; }
.page-research-detail .room-sculpture { opacity: .38; width: clamp(300px, 36vw, 480px); }

.route-station.station-about { --station-x: 9.17%; --station-y: 86.25%; }
.route-station.station-research { --station-x: 35%; --station-y: 62.5%; }
.route-station.station-projects { --station-x: 52.5%; --station-y: 81.25%; }
.route-station.station-internship { --station-x: 70.83%; --station-y: 77.5%; }
.route-station.station-extracurricular { --station-x: 77.5%; --station-y: 50%; }
.route-station.station-contact { --station-x: 90.83%; --station-y: 30%; }

@media (min-width: 781px) and (max-width: 1100px) {
  .route-station { width: clamp(115px, 13vw, 150px); }
  .route-station.station-research { --station-x: 43.33%; }
  .route-station.station-projects { --station-x: 54.17%; }
  .route-map-caption { display: none; }
}

@media (max-width: 780px) {
  .page-route-spine { left: 0; width: 25px; opacity: .68; }
  .spine-bed { stroke-width: 8; }
  .spine-shadow { stroke-width: 12; filter: blur(2px); }
  .spine-tie { stroke-width: 2.2; }
  .spine-rail { stroke-width: 1.1; }
  .spine-stop { r: 2.4; }
  .spine-runner { r: 3.5; }
  .page-home .home-intro { height: auto; min-height: 1500px; }
  .page-home .home-intro-grid { top: 82px; left: 6vw; width: min(360px, 88vw); }
  .page-home .home-intro h1 { font-size: clamp(48px, 12vw, 64px); }
  .page-home .home-intro-copy { max-width: 360px; padding: 13px 14px; }
  .page-home .home-intro-copy .home-lede { font-size: 15px; }
  .route-map-heading { top: 500px; right: 6vw; bottom: auto; left: 6vw; display: block; }
  .route-map-heading h2 { font-size: 18px; }
  .route-hint { display: block; max-width: none; margin-top: 7px; font-size: 8px; }
  .route-world { top: 575px; right: 0; bottom: auto; left: 0; width: 100%; height: 900px; min-height: 0; }
  .route-world::before { left: -30%; right: -30%; bottom: -22%; height: 75%; transform: perspective(680px) rotateX(58deg); background-size: 29px 29px; }
  .route-world-grid { display: block; }
  .route-companion { left: 20%; top: 8.33%; width: 70px; }
  .route-orb-dialog { width: min(164px, calc(100vw - 180px)); min-height: 0; padding: 17px 12px 11px; left: calc(100% + 8px); }
  .route-companion[data-side="left"] .route-orb-dialog { right: calc(100% + 8px); }
  .route-orb-question { font-size: 13px; line-height: 1.35; }
  .route-companion[data-scene="contact"] .route-orb-dialog { top: -78px; }
  .route-station { width: min(126px, 34vw); }
  .route-station::before { bottom: 40px; height: 45px; }
  .station-object { width: 44px; height: 42px; transform: scale(1.12) translateZ(24px) rotateY(-10deg); }
  .station-copy { min-height: 46px; padding: 6px 7px; }
  .station-copy small { font-size: 7px; }
  .station-copy strong { font-size: 12px; }
  .route-station.station-about { --station-x: 20%; --station-y: 8.33%; }
  .route-station.station-research { --station-x: 80%; --station-y: 25%; }
  .route-station.station-projects { --station-x: 20%; --station-y: 41.67%; }
  .route-station.station-internship { --station-x: 80%; --station-y: 58.33%; }
  .route-station.station-extracurricular { --station-x: 20%; --station-y: 75%; }
  .route-station.station-contact { --station-x: 80%; --station-y: 91.67%; }
  .route-thread-label { bottom: 10px; font-size: 6.5px; }
  .route-thread-label { display: none; }
  .route-map-caption { display: none; }
  .page-home .home-work::before,
  .page-home .home-projects::before,
  .page-home .home-about::before,
  .page-home .home-contact::before { left: 14px; width: 12px; }
  .page-home .home-work-card,
  .page-home .home-work-card:nth-child(even) { transform: none; }
  .page-home .home-project-row { padding: 16px 12px; }
  .station-page-hero { min-height: 0; padding: 65px 6vw 54px; }
  .station-room-scene { opacity: .65; }
  .room-sculpture { --room-art-opacity: .36; top: 2%; right: -9%; width: clamp(220px, 60vw, 350px); }
  .page-research-detail .room-sculpture { width: clamp(220px, 60vw, 350px); opacity: .28; }
  .room-light { top: 0; right: -12%; width: 280px; }
  .room-floor { right: -30%; bottom: -34%; width: 115%; height: 58%; opacity: .35; }
  .station-page-hero .about-copy,
  .station-page-hero .story-copy { padding: 17px; }
  .station-page-hero .research-item::after,
  .station-page-hero .project::after,
  .station-page-hero .timeline article::after { display: none; }
}
@media (max-width: 480px) {
  .page-home .home-intro { min-height: 1480px; }
  .page-home .home-intro-meta { top: 17px; }
  .page-home .home-intro-grid { top: 68px; }
  .page-home .home-intro h1 { font-size: 50px; }
  .route-map-heading { top: 486px; }
  .route-world { top: 555px; height: 900px; }
  .route-station { width: 124px; }
}
@media (prefers-reduced-motion: reduce) {
  .track-light,
  .route-orb::before,
  .route-orb.is-spotlight svg,
  .route-orb-dialog { animation: none !important; }
  .orb-scene { transition: none !important; }
  .page-route-spine .spine-light { stroke-dasharray: none; }
  .station-page-hero .research-item,
  .station-page-hero .project,
  .station-page-hero .timeline article { transition: none !important; }
}
