:root {
  color-scheme: dark;
  --lab-bg: #030405;
  --lab-surface: #0a0d10;
  --lab-surface-2: #10151a;
  --lab-line: rgba(255, 255, 255, 0.13);
  --lab-line-strong: rgba(255, 255, 255, 0.25);
  --lab-text: #f6f4ef;
  --lab-muted: #a8afb6;
  --lab-faint: #737c85;
  --lab-gold: #e7b968;
  --lab-gold-bright: #ffd78c;
  --lab-blue: #92cce9;
  --lab-success: #8bd8b0;
  --lab-danger: #ffb0a5;
  --lab-radius: 1.2rem;
  --lab-content: 90rem;
  --lab-shadow: 0 1.8rem 5rem rgba(0, 0, 0, 0.4);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.world-lab-body {
  min-width: 20rem;
  margin: 0;
  color: var(--lab-text);
  background:
    radial-gradient(circle at 72% 9%, rgba(79, 98, 112, 0.12), transparent 24rem),
    radial-gradient(circle at 20% 32%, rgba(207, 164, 93, 0.055), transparent 28rem),
    var(--lab-bg);
  font-family: Inter, Avenir, "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
}

body.world-lab-body--subscriber {
  color-scheme: light;
  --lab-bg: #f2f5f8;
  --lab-surface: #ffffff;
  --lab-surface-2: #f8fafc;
  --lab-line: rgba(27, 49, 70, 0.13);
  --lab-line-strong: rgba(27, 49, 70, 0.26);
  --lab-text: #182938;
  --lab-muted: #596b7a;
  --lab-faint: #71808c;
  --lab-gold: #a56a17;
  --lab-gold-bright: #8b570f;
  --lab-blue: #096eb8;
  --lab-success: #167650;
  --lab-danger: #b33e31;
  --lab-shadow: 0 1.1rem 3rem rgba(29, 50, 68, 0.12);
  color: var(--lab-text);
  background: linear-gradient(180deg, #f7f9fb 0, var(--lab-bg) 28rem);
  background-color: var(--lab-bg);
}

button, select, textarea, input { font: inherit; }

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

a { color: var(--lab-gold-bright); }

[hidden] { display: none !important; }

.world-lab-skip {
  position: fixed;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 1000;
  padding: 0.7rem 1rem;
  color: #111;
  border-radius: 0.4rem;
  background: #fff;
  transform: translateY(-160%);
}

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

.world-lab-body :focus-visible {
  outline: 3px solid var(--lab-gold-bright);
  outline-offset: 4px;
}

.mission-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.world-lab-shell { min-height: 100vh; overflow: clip; }

.world-lab-public-header {
  display: flex;
  width: min(calc(100% - 3rem), var(--lab-content));
  min-height: 5.1rem;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin: 0 auto;
  border-bottom: 1px solid var(--lab-line);
}

.world-lab-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  color: #fff;
  font-size: 1.12rem;
  font-weight: 760;
  text-decoration: none;
}

.world-lab-brand img { object-fit: contain; }
.world-lab-brand em { color: var(--lab-gold); font-style: normal; }

.world-lab-public-header nav {
  display: flex;
  align-items: center;
  gap: 1.4rem;
}

.world-lab-public-header nav a {
  color: #d9dde1;
  font-size: 0.86rem;
  font-weight: 650;
  text-decoration: none;
}

.world-lab-public-header nav a:hover { color: #fff; }

.world-lab-public-header .world-lab-header-cta {
  padding: 0.58rem 0.85rem;
  color: #17120a;
  border-radius: 999px;
  background: var(--lab-gold);
}

.world-lab-main {
  width: min(calc(100% - 3rem), var(--lab-content));
  margin: 0 auto;
  padding: clamp(2.6rem, 5vw, 5rem) 0 5rem;
}

.world-lab-intro { max-width: 76rem; }

.world-lab-eyebrow {
  margin: 0 0 0.75rem;
  color: var(--lab-gold);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.21em;
  text-transform: uppercase;
}

.world-lab-intro h1,
.world-focus h2 {
  margin: 0;
  font-family: "Helvetica Neue", Avenir, Arial, sans-serif;
  font-weight: 300;
  letter-spacing: 0.2em;
  line-height: 1.02;
  text-transform: uppercase;
}

.world-lab-intro h1 {
  max-width: 18ch;
  font-size: clamp(2.35rem, 4.8vw, 4.9rem);
  letter-spacing: 0.13em;
}

.world-lab-principle {
  max-width: 44rem;
  margin: 1.8rem 0 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 2.2vw, 2rem);
  line-height: 1.35;
}

.world-lab-lead {
  max-width: 47rem;
  margin: 1.2rem 0 0;
  color: var(--lab-muted);
  font-size: 1.03rem;
  line-height: 1.75;
}

.world-lab-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 2rem;
}

.world-lab-capabilities {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 2rem;
}

.world-lab-capabilities a {
  display: grid;
  min-height: 9.4rem;
  min-width: 0;
  align-content: end;
  padding: 1rem;
  color: inherit;
  border: 1px solid var(--lab-line);
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.025);
  text-decoration: none;
}

.world-lab-capabilities a:hover {
  border-color: rgba(231, 185, 104, 0.58);
  background: rgba(231, 185, 104, 0.055);
}

.world-lab-capabilities span {
  color: var(--lab-gold);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.world-lab-capabilities strong {
  display: block;
  margin: 0.35rem 0 0;
  color: #fff;
  font-size: 1rem;
  font-weight: 720;
}

.world-lab-capabilities small {
  display: block;
  margin: 0.4rem 0 0;
  color: var(--lab-muted);
  font-size: 0.78rem;
  line-height: 1.5;
}

.world-lab-app-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.8rem;
  color: var(--lab-faint);
  font-size: 0.75rem;
}

.world-lab-app-breadcrumb a { color: #315c7d; text-decoration: none; }
.world-lab-app-breadcrumb a:hover { text-decoration: underline; }

.world-lab-app-header {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(25rem, 0.8fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: end;
}

.world-lab-app-header h1 {
  margin: 0;
  color: var(--lab-text);
  font-size: clamp(1.9rem, 3.2vw, 3.25rem);
  font-weight: 760;
  letter-spacing: -0.045em;
  line-height: 1.04;
}

.world-lab-app-header > div > p:last-child {
  max-width: 44rem;
  margin: 0.65rem 0 0;
  color: var(--lab-muted);
  font-size: 0.94rem;
  line-height: 1.55;
}

.world-lab-app-status {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--lab-line);
  border-radius: 0.85rem;
  background: #fff;
  box-shadow: 0 0.55rem 1.8rem rgba(29, 50, 68, 0.07);
}

.world-lab-app-status div { min-width: 0; padding: 0.75rem 0.85rem; border-left: 1px solid var(--lab-line); }
.world-lab-app-status div:first-child { border-left: 0; }
.world-lab-app-status dt { color: var(--lab-faint); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.world-lab-app-status dd { margin: 0.24rem 0 0; color: var(--lab-text); font-size: 0.76rem; font-weight: 720; line-height: 1.35; }

.world-lab-app-nav {
  position: sticky;
  top: 0.75rem;
  z-index: 30;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.55rem;
  margin-top: 1.35rem;
  padding: 0.55rem;
  border: 1px solid rgba(27, 49, 70, 0.1);
  border-radius: 1rem;
  background: rgba(247, 249, 251, 0.94);
  box-shadow: 0 0.7rem 2rem rgba(29, 50, 68, 0.09);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.world-lab-app-nav__item {
  display: grid;
  min-width: 0;
  min-height: 4.35rem;
  grid-template-columns: 1.85rem minmax(0, 1fr);
  gap: 0.6rem;
  align-items: center;
  padding: 0.68rem;
  color: var(--lab-text);
  border: 1px solid transparent;
  border-radius: 0.72rem;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

.world-lab-app-nav__item > span:first-child {
  display: grid;
  width: 1.85rem;
  height: 1.85rem;
  place-items: center;
  color: #506777;
  border-radius: 0.55rem;
  background: #e7edf2;
  font-size: 0.62rem;
  font-weight: 800;
}

.world-lab-app-nav__item strong,
.world-lab-app-nav__item small { display: block; }
.world-lab-app-nav__item strong { font-size: 0.84rem; line-height: 1.2; }
.world-lab-app-nav__item small { margin-top: 0.18rem; overflow: hidden; color: var(--lab-muted); font-size: 0.67rem; line-height: 1.3; text-overflow: ellipsis; }
.world-lab-app-nav__item:hover { border-color: rgba(9, 110, 184, 0.25); background: #fff; }
.world-lab-app-nav__item.is-active { color: #075a98; border-color: rgba(9, 110, 184, 0.32); background: #eaf5fc; }
.world-lab-app-nav__item.is-active > span:first-child { color: #fff; background: #096eb8; }

.world-lab-action,
.world-lab-button {
  display: inline-flex;
  min-height: 2.85rem;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1rem;
  color: #f5f3ee;
  border: 1px solid var(--lab-line-strong);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.035);
  cursor: pointer;
  font-size: 0.86rem;
  font-weight: 720;
  line-height: 1.2;
  text-decoration: none;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.world-lab-action:hover,
.world-lab-button:hover { border-color: rgba(255, 215, 140, 0.75); transform: translateY(-1px); }

.world-lab-action.is-active {
  color: #1b150d;
  border-color: var(--lab-gold);
  background: var(--lab-gold);
}

.world-lab-action--primary,
.world-lab-button {
  color: #18120a;
  border-color: var(--lab-gold);
  background: var(--lab-gold);
}

.world-lab-button--secondary { color: #f5f3ee; border-color: var(--lab-line-strong); background: transparent; }

.world-lab-stage {
  position: relative;
  display: grid;
  min-height: 39rem;
  grid-template-columns: 12.5rem minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 6rem);
  align-items: center;
  margin-top: clamp(2.2rem, 5vw, 4.5rem);
  padding: 2rem 0 3rem;
  border-top: 1px solid var(--lab-line);
  border-bottom: 1px solid var(--lab-line);
}

.world-list { position: relative; z-index: 4; }

.world-list > p {
  margin: 0 0 0.65rem;
  color: var(--lab-faint);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.19em;
  text-transform: uppercase;
}

.world-list .world-list__dwarf-title {
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--lab-line);
}

.world-list ol {
  display: grid;
  gap: 0.16rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.world-choice {
  position: relative;
  display: grid;
  width: 100%;
  min-height: 2.55rem;
  grid-template-columns: 2rem minmax(0, 1fr);
  align-items: center;
  gap: 0.55rem;
  padding: 0.35rem 0.45rem;
  color: #929aa2;
  border: 0;
  border-radius: 0.45rem;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

.world-choice::after {
  position: absolute;
  right: 0;
  width: 1.4rem;
  height: 1px;
  background: currentColor;
  content: "";
  opacity: 0;
  transform: scaleX(0);
  transform-origin: right;
  transition: opacity 160ms ease, transform 160ms ease;
}

.world-choice span { color: #59626a; font-size: 0.66rem; font-variant-numeric: tabular-nums; }
.world-choice strong { font-size: 0.82rem; font-weight: 620; letter-spacing: 0.11em; text-transform: uppercase; }
.world-choice:hover { color: #e2e6e8; background: rgba(255, 255, 255, 0.035); }
.world-choice.is-selected { color: #fff; background: rgba(255, 255, 255, 0.055); }
.world-choice.is-selected span { color: var(--lab-gold); }
.world-choice.is-selected::after { opacity: 1; transform: scaleX(1); }
.world-choice--dwarf strong { letter-spacing: 0.06em; }

.world-focus {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 34rem;
  grid-template-columns: minmax(19rem, 1.2fr) minmax(20rem, 0.8fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.world-orbit {
  position: absolute;
  inset: 50% auto auto 35%;
  z-index: 0;
  width: min(62vw, 52rem);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}

.world-orbit i {
  position: absolute;
  inset: 10%;
  border: 1px solid rgba(255, 255, 255, 0.055);
  border-radius: 50%;
}

.world-orbit i:nth-child(2) { inset: 22%; }
.world-orbit i:nth-child(3) { inset: 34%; }

.world-visual {
  position: relative;
  isolation: isolate;
  z-index: 1;
  display: grid;
  width: min(42vw, 31rem);
  aspect-ratio: 1;
  margin: 0;
  place-items: center;
  justify-self: center;
  animation: world-float 9s ease-in-out infinite;
}

.world-visual::before {
  position: absolute;
  inset: -20%;
  z-index: 0;
  border-radius: 50%;
  background: radial-gradient(circle, #000 0 54%, rgba(0, 0, 0, 0.94) 64%, transparent 76%);
  content: "";
  pointer-events: none;
}

.world-visual img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 2rem 3.8rem rgba(0, 0, 0, 0.8));
  mix-blend-mode: normal;
  object-fit: contain;
  object-position: center;
  transition: opacity 180ms ease;
}

.world-visual--mercury img.world-globe__fallback { clip-path: circle(45.5% at 50% 50%); transform: scale(1.04); }
.world-visual--venus img.world-globe__fallback { clip-path: ellipse(23% 25% at 49% 50%); transform: scale(1.7); }
.world-visual--earth img.world-globe__fallback { clip-path: circle(46% at 50% 50%); transform: scale(1.04); }
.world-visual--mars img.world-globe__fallback { clip-path: circle(39% at 50% 49%); transform: scale(1.16); }
.world-visual--jupiter img.world-globe__fallback { clip-path: circle(26% at 51.5% 50%); transform: scale(1.55); }
.world-visual--saturn img.world-globe__fallback { clip-path: ellipse(48% 22% at 50% 49.5%); transform: scale(1.06); }
.world-visual--uranus img.world-globe__fallback { clip-path: circle(41% at 49.5% 49.5%); transform: scale(1.1); }
.world-visual--neptune img.world-globe__fallback { clip-path: circle(26% at 49% 50%); transform: scale(1.55); }
.world-visual--pluto img.world-globe__fallback { clip-path: circle(21% at 50% 49.5%); transform: scale(1.85); }

.world-globe__canvas {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 2rem 3.8rem rgba(0, 0, 0, 0.8));
  cursor: grab;
  touch-action: pan-y;
}

.world-globe__canvas[hidden],
.world-globe__hint[hidden],
.world-globe__loading[hidden],
.world-globe__enable[hidden],
.world-globe__controls[hidden] { display: none; }

.world-visual.is-dragging .world-globe__canvas { cursor: grabbing; }
.world-visual[data-globe-state="ready"] .world-globe__fallback { opacity: 0; pointer-events: none; }

.world-globe__canvas:focus-visible {
  border-radius: 50%;
  outline: 3px solid #ffe0a3;
  outline-offset: -0.35rem;
}

.world-globe__loading,
.world-globe__hint {
  position: absolute;
  z-index: 4;
  left: 50%;
  margin: 0;
  padding: 0.45rem 0.72rem;
  color: #f9fafb;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(4, 8, 12, 0.72);
  box-shadow: 0 0.7rem 1.7rem rgba(0, 0, 0, 0.25);
  font-size: 0.7rem;
  font-weight: 720;
  letter-spacing: 0.02em;
  line-height: 1.2;
  pointer-events: none;
  transform: translateX(-50%);
  white-space: nowrap;
}

.world-globe__loading { bottom: 1rem; color: #d9e1e6; }
.world-globe__hint { top: 0.55rem; }
.world-globe__hint span { margin-right: 0.35rem; color: var(--lab-gold-bright); font-size: 0.95rem; }

.world-globe__enable {
  position: absolute;
  z-index: 5;
  bottom: 1rem;
  left: 50%;
  min-height: 2.5rem;
  padding: 0.6rem 0.9rem;
  color: #11171b;
  border: 0;
  border-radius: 999px;
  background: var(--lab-gold-bright);
  box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.32);
  cursor: pointer;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 780;
  transform: translateX(-50%);
  white-space: nowrap;
}

.world-globe__enable:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

.world-globe__controls {
  position: absolute;
  z-index: 5;
  right: 0.55rem;
  bottom: 0.45rem;
  left: 0.55rem;
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  pointer-events: none;
}

.world-globe__controls > div {
  display: inline-flex;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.19);
  border-radius: 999px;
  background: rgba(4, 8, 12, 0.78);
  box-shadow: 0 0.75rem 1.8rem rgba(0, 0, 0, 0.28);
  pointer-events: auto;
}

.world-globe__controls button {
  display: inline-flex;
  min-height: 2.25rem;
  padding: 0.48rem 0.7rem;
  align-items: center;
  justify-content: center;
  gap: 0.32rem;
  color: #f7f8f9;
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.14);
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-size: 0.66rem;
  font-weight: 720;
}

.world-globe__controls button:first-child { border-left: 0; }
.world-globe__controls button:hover { background: rgba(255, 255, 255, 0.11); }
.world-globe__controls button:focus-visible { position: relative; z-index: 1; outline: 3px solid #ffe0a3; outline-offset: -3px; }
.world-globe__controls small {
  padding: 0.25rem 0.45rem;
  color: #d6dde2;
  border-radius: 0.35rem;
  background: rgba(4, 8, 12, 0.68);
  font-size: 0.58rem;
  line-height: 1.25;
  pointer-events: none;
  text-align: center;
}

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

.world-focus__copy { position: relative; z-index: 3; min-width: 0; max-width: 34rem; }

.world-focus__class {
  margin: 0 0 0.65rem;
  color: var(--lab-gold);
  font-size: 0.7rem;
  font-weight: 760;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.world-focus h2 { font-size: clamp(2.2rem, 5vw, 5.2rem); }

@media (min-width: 56.01rem) {
  .world-lab-body--subscriber .world-focus {
    grid-template-columns: minmax(17rem, 0.85fr) minmax(22rem, 1.15fr);
    gap: clamp(1.5rem, 3vw, 3rem);
  }
  .world-lab-body--subscriber .world-visual { width: min(100%, 26rem); }
  .world-lab-body--subscriber .world-focus h2 {
    font-size: clamp(2.2rem, 4vw, 4.5rem);
    letter-spacing: 0.14em;
  }
}

.world-focus__copy > p:not(.world-focus__class):not(.world-visual-note) {
  margin: 1.25rem 0 0;
  color: #c4c9ce;
  font-size: 1rem;
  line-height: 1.75;
}

.world-focus__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 1.65rem 0 0;
  padding: 1rem 0;
  border-top: 1px solid var(--lab-line);
  border-bottom: 1px solid var(--lab-line);
}

.world-focus__facts div { min-width: 0; padding: 0 0.85rem; border-left: 1px solid var(--lab-line); }
.world-focus__facts div:first-child { padding-left: 0; border-left: 0; }
.world-focus__facts dt { color: var(--lab-faint); font-size: 0.65rem; font-weight: 700; line-height: 1.3; text-transform: uppercase; }
.world-focus__facts dd { margin: 0.35rem 0 0; color: #fff; font-size: 0.84rem; font-weight: 680; line-height: 1.35; }

.world-visual-note { margin-top: 0.8rem; color: var(--lab-faint); font-size: 0.7rem; }

.world-visual-question {
  display: inline-flex;
  margin-top: 0.75rem;
  color: var(--lab-gold-bright);
  font-size: 0.82rem;
  font-weight: 720;
  text-underline-offset: 0.22rem;
}

.world-lab-drawer {
  position: relative;
  min-width: 0;
  margin: clamp(2.2rem, 5vw, 5rem) 0;
  border: 1px solid var(--lab-line);
  border-radius: var(--lab-radius);
  background: linear-gradient(145deg, rgba(17, 22, 26, 0.96), rgba(7, 9, 11, 0.98));
  box-shadow: var(--lab-shadow);
}

.world-lab-drawer--public-flow {
  display: grid;
  gap: 1.25rem;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.world-lab-drawer--public-flow .world-lab-panel {
  scroll-margin-top: 1rem;
  border: 1px solid var(--lab-line);
  border-radius: var(--lab-radius);
  background: linear-gradient(145deg, rgba(17, 22, 26, 0.96), rgba(7, 9, 11, 0.98));
  box-shadow: 0 1.1rem 3rem rgba(0, 0, 0, 0.26);
}

.world-lab-panel { min-width: 0; padding: clamp(1.2rem, 3vw, 2.5rem); }

.world-lab-panel__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--lab-line);
}

.world-lab-panel__heading h2,
.world-lab-method h2,
.world-lab-related h2,
.world-lab-sources h2 {
  max-width: 38rem;
  margin: 0;
  color: #fff;
  font-size: clamp(1.45rem, 3vw, 2.45rem);
  font-weight: 480;
  letter-spacing: -0.025em;
  line-height: 1.2;
}

.world-lab-panel-close {
  padding: 0.45rem 0.7rem;
  color: var(--lab-muted);
  border: 1px solid var(--lab-line);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  font-size: 0.72rem;
}

.world-lab-panel.is-collapsed > :not(.world-lab-panel__heading) { display: none; }

.observer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  padding-top: 1.4rem;
}

.observer-grid article,
.comparison-visual article,
.mission-card,
.science-notebook > article {
  padding: 1.25rem;
  border: 1px solid var(--lab-line);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.025);
}

.observer-grid h3,
.comparison-visual h3,
.mission-card h3 { margin: 0 0 0.9rem; font-size: 1rem; font-weight: 680; }
.observer-grid p { color: #bcc2c7; }
.observer-grid dl { margin: 0; }
.observer-grid dl div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.62rem 0; border-bottom: 1px solid var(--lab-line); }
.observer-grid dt { color: var(--lab-muted); }
.observer-grid dd { margin: 0; color: #fff; font-weight: 680; text-align: right; }
.world-source-line { color: var(--lab-faint) !important; font-size: 0.78rem; }

.observer-appearance {
  grid-column: 1 / -1;
  border-color: rgba(146, 204, 233, 0.32) !important;
  background:
    radial-gradient(circle at 92% 0, rgba(146, 204, 233, 0.12), transparent 18rem),
    rgba(255, 255, 255, 0.025) !important;
}

.observer-appearance .world-lab-eyebrow { margin-bottom: 0.55rem; color: var(--lab-blue); }
.observer-appearance h3 { font-size: clamp(1.15rem, 2vw, 1.5rem); }
.observer-appearance__distinction { color: #eef4f7 !important; font-weight: 620; }

.solar-system-explorer {
  margin-top: 1.4rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--lab-line);
}

.solar-system-explorer__header {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr);
  gap: 1.5rem;
  align-items: end;
}

.solar-system-explorer__header h3 {
  max-width: 44rem;
  margin: 0;
  color: #fff;
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  font-weight: 540;
  line-height: 1.25;
}

.solar-system-explorer__header > div:first-child > p:last-child {
  max-width: 48rem;
  margin: 0.75rem 0 0;
  color: var(--lab-muted);
  font-size: 0.86rem;
}

.solar-system-scale-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.4rem;
  padding: 0.35rem;
  border: 1px solid var(--lab-line);
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.025);
}

.solar-system-scale-controls button {
  min-height: 2.8rem;
  padding: 0.5rem;
  color: var(--lab-muted);
  border: 1px solid transparent;
  border-radius: 0.55rem;
  background: transparent;
  cursor: pointer;
  font-size: 0.7rem;
  font-weight: 760;
  line-height: 1.25;
}

.solar-system-scale-controls button:hover { color: #fff; border-color: var(--lab-line); }
.solar-system-scale-controls button.is-active { color: #17120a; border-color: var(--lab-gold); background: var(--lab-gold); }

.solar-system-scale-status {
  margin: 1rem 0 0;
  padding: 0.75rem 0.9rem;
  color: #dbe9ef;
  border-left: 3px solid var(--lab-blue);
  background: rgba(146, 204, 233, 0.07);
  font-size: 0.78rem;
  font-weight: 650;
}

.solar-system-map {
  position: relative;
  min-height: 18rem;
  margin-top: 0.8rem;
  padding: 1rem;
  overflow: hidden;
  border: 1px solid rgba(146, 204, 233, 0.2);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 14% 18%, rgba(255, 255, 255, 0.8) 0 1px, transparent 1.4px),
    radial-gradient(circle at 62% 27%, rgba(255, 255, 255, 0.45) 0 1px, transparent 1.4px),
    radial-gradient(circle at 78% 72%, rgba(146, 204, 233, 0.55) 0 1px, transparent 1.4px),
    radial-gradient(circle at 42% 81%, rgba(255, 255, 255, 0.35) 0 1px, transparent 1.4px),
    radial-gradient(circle at 0 50%, rgba(244, 190, 92, 0.13), transparent 16rem),
    linear-gradient(145deg, #050b11, #020406 72%);
  background-size: 11rem 9rem, 15rem 13rem, 17rem 12rem, 19rem 15rem, auto, auto;
}

.solar-system-explorer.is-enhanced .solar-system-map { min-height: 31rem; }

.solar-system-map__sun {
  position: absolute;
  top: 50%;
  left: -2.5rem;
  z-index: 1;
  width: 5.6rem;
  height: 5.6rem;
  border-radius: 50%;
  background: radial-gradient(circle at 68% 45%, #fff9d5 0 9%, #ffd475 35%, #e58a25 70%, rgba(229, 138, 37, 0.2) 71%);
  box-shadow: 0 0 2.4rem rgba(255, 190, 79, 0.52), 0 0 7rem rgba(232, 139, 35, 0.18);
  transform: translateY(-50%);
}

.solar-system-map__axis {
  position: absolute;
  right: 4%;
  bottom: 2.65rem;
  left: 4%;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 208, 119, 0.48), rgba(146, 204, 233, 0.32));
}

.solar-system-map__axis i {
  position: absolute;
  top: -25rem;
  bottom: -0.35rem;
  left: var(--system-tick-x, 0%);
  width: 1px;
  border-left: 1px dashed rgba(255, 255, 255, 0.09);
}

.solar-system-map__axis i::after {
  position: absolute;
  bottom: -1.65rem;
  left: 0;
  color: #82909b;
  content: attr(data-label);
  font-size: 0.58rem;
  font-style: normal;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  transform: translateX(-50%);
}

.solar-system-map__bodies {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.solar-system-explorer.is-enhanced .solar-system-map__bodies { position: absolute; inset: 0; display: block; }

.solar-system-map__bodies li { min-width: 0; }
.solar-system-explorer.is-enhanced .solar-system-map__bodies li {
  position: absolute;
  top: calc(1.15rem + (var(--system-lane, 0) * 6.25rem));
  left: var(--system-x, 50%);
  width: 5rem;
  transform: translateX(-50%);
}

.solar-system-map__bodies button {
  display: grid;
  width: 100%;
  min-height: 6rem;
  gap: 0.08rem;
  justify-items: center;
  padding: 0.35rem 0.2rem;
  color: #cad3d9;
  border: 1px solid transparent;
  border-radius: 0.7rem;
  background: rgba(3, 7, 10, 0.5);
  cursor: pointer;
  line-height: 1.2;
  text-align: center;
}

.solar-system-map__bodies button:hover,
.solar-system-map__bodies button.is-selected {
  color: #fff;
  border-color: rgba(231, 185, 104, 0.7);
  background: rgba(20, 26, 31, 0.94);
  box-shadow: 0 0 1.4rem rgba(231, 185, 104, 0.12);
}

.solar-system-map__planet {
  display: grid;
  width: 3.3rem;
  height: 3.3rem;
  overflow: hidden;
  place-items: center;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #6d7478, #1f2529 72%);
}

.solar-system-map__planet img { display: block; width: 100%; height: 100%; object-fit: contain; }
.solar-system-map__planet--mercury img { clip-path: circle(45.5% at 50% 50%); transform: scale(1.04); }
.solar-system-map__planet--venus img { clip-path: ellipse(23% 25% at 49% 50%); transform: scale(1.7); }
.solar-system-map__planet--earth img { clip-path: circle(46% at 50% 50%); transform: scale(1.04); }
.solar-system-map__planet--mars img { clip-path: circle(39% at 50% 49%); transform: scale(1.16); }
.solar-system-map__planet--jupiter img { clip-path: circle(26% at 51.5% 50%); transform: scale(1.55); }
.solar-system-map__planet--saturn { border-radius: 0; background: transparent; }
.solar-system-map__planet--saturn img { clip-path: ellipse(48% 22% at 50% 49.5%); transform: scale(1.06); }
.solar-system-map__planet--uranus img { clip-path: circle(41% at 49.5% 49.5%); transform: scale(1.1); }
.solar-system-map__planet--neptune img { clip-path: circle(26% at 49% 50%); transform: scale(1.55); }
.solar-system-map__planet--pluto img { clip-path: circle(21% at 50% 49.5%); transform: scale(1.85); }

.solar-system-map__bodies strong { max-width: 100%; overflow: hidden; font-size: 0.67rem; text-overflow: ellipsis; white-space: nowrap; }
.solar-system-map__bodies button > span:not(.solar-system-map__planet) { color: #9ca8b0; font-size: 0.59rem; font-variant-numeric: tabular-nums; }
.solar-system-map__bodies small { color: var(--lab-gold); font-size: 0.54rem; }

.solar-system-map__dwarf-note {
  position: absolute;
  right: 0.8rem;
  bottom: 0.4rem;
  margin: 0;
  color: #8f99a1;
  font-size: 0.58rem;
}

.satellite-system {
  display: grid;
  grid-template-columns: minmax(19rem, 0.85fr) minmax(0, 1.15fr);
  gap: 0.8rem;
  margin-top: 0.8rem;
}

.satellite-system > article,
.satellite-system__table-wrap {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--lab-line);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.025);
}

.satellite-system__identity {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
}

.satellite-system__planet {
  display: grid;
  width: 8rem;
  height: 8rem;
  margin: 0;
  overflow: hidden;
  place-items: center;
}

.satellite-system__planet img { display: block; width: 100%; height: 100%; object-fit: contain; }
.satellite-system__planet--mercury img { clip-path: circle(45.5% at 50% 50%); transform: scale(1.04); }
.satellite-system__planet--venus img { clip-path: ellipse(23% 25% at 49% 50%); transform: scale(1.7); }
.satellite-system__planet--earth img { clip-path: circle(46% at 50% 50%); transform: scale(1.04); }
.satellite-system__planet--mars img { clip-path: circle(39% at 50% 49%); transform: scale(1.16); }
.satellite-system__planet--jupiter img { clip-path: circle(26% at 51.5% 50%); transform: scale(1.55); }
.satellite-system__planet--saturn img { clip-path: ellipse(48% 22% at 50% 49.5%); transform: scale(1.06); }
.satellite-system__planet--uranus img { clip-path: circle(41% at 49.5% 49.5%); transform: scale(1.1); }
.satellite-system__planet--neptune img { clip-path: circle(26% at 49% 50%); transform: scale(1.55); }
.satellite-system__planet--pluto img { clip-path: circle(21% at 50% 49.5%); transform: scale(1.85); }

.satellite-system h4 { margin: 0; color: #fff; font-size: 1rem; line-height: 1.35; }
.satellite-system__identity > div > p:not(.world-lab-eyebrow) { margin: 0.55rem 0 0; color: var(--lab-muted); font-size: 0.76rem; }
.satellite-system__identity dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0.8rem 0 0; }
.satellite-system__identity dl div { min-width: 0; padding: 0.5rem; border-left: 1px solid var(--lab-line); }
.satellite-system__identity dl div:first-child { padding-left: 0; border-left: 0; }
.satellite-system__identity dt { color: var(--lab-faint); font-size: 0.57rem; text-transform: uppercase; }
.satellite-system__identity dd { margin: 0.18rem 0 0; color: #fff; font-size: 0.68rem; font-weight: 760; }

.satellite-system__portrait > div:first-child p { margin: 0.3rem 0 0; color: var(--lab-muted); font-size: 0.7rem; }
.satellite-rail { position: relative; height: 8.5rem; margin-top: 0.8rem; overflow: hidden; border-radius: 0.65rem; background: rgba(0, 0, 0, 0.18); }
.satellite-rail::before { position: absolute; right: 4%; left: 7%; top: 50%; height: 1px; background: linear-gradient(90deg, rgba(231, 185, 104, 0.45), rgba(146, 204, 233, 0.22)); content: ""; }
.satellite-rail__host { position: absolute; top: 50%; left: 6%; z-index: 2; width: 1.9rem; height: 1.9rem; border: 2px solid var(--lab-gold); border-radius: 50%; background: #12171c; box-shadow: 0 0 1.2rem rgba(231, 185, 104, 0.25); transform: translate(-50%, -50%); }
.satellite-rail ol { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; }
.satellite-rail li { position: absolute; top: 50%; left: var(--satellite-x, 50%); width: 1px; height: 1px; }
.satellite-rail li::before { position: absolute; top: -1.4rem; bottom: -1.4rem; left: 0; border-left: 1px dashed rgba(255, 255, 255, 0.12); content: ""; }
.satellite-rail li i { position: absolute; top: 0; left: 0; display: block; width: var(--satellite-size, 9px); height: var(--satellite-size, 9px); border: 1px solid rgba(255, 255, 255, 0.72); border-radius: 50%; background: radial-gradient(circle at 35% 30%, #f0eee8, #777f85 64%, #343a3f); box-shadow: 0 0 0.65rem rgba(184, 208, 220, 0.28); transform: translate(-50%, -50%); }
.satellite-rail li strong { position: absolute; left: 0; width: 4.8rem; color: #dce5e9; font-size: 0.58rem; font-weight: 650; text-align: center; transform: translateX(-50%); }
.satellite-rail li:nth-child(odd) strong { bottom: 1.2rem; }
.satellite-rail li:nth-child(even) strong { top: 1.2rem; }
.satellite-system__empty { margin: 0.8rem 0 0; padding: 0.75rem; color: var(--lab-muted); border: 1px dashed var(--lab-line); border-radius: 0.55rem; font-size: 0.74rem; }

.satellite-system__table-wrap { grid-column: 1 / -1; overflow-x: auto; }
.satellite-system__table { width: 100%; min-width: 34rem; border-collapse: collapse; }
.satellite-system__table caption { padding: 0 0 0.7rem; color: #fff; font-size: 0.8rem; font-weight: 760; text-align: left; }
.satellite-system__table th,
.satellite-system__table td { padding: 0.6rem 0.7rem; border-bottom: 1px solid var(--lab-line); font-size: 0.72rem; text-align: left; }
.satellite-system__table thead th { color: var(--lab-muted); font-size: 0.61rem; text-transform: uppercase; }
.satellite-system__table tbody th { color: #fff; }
.satellite-system__table tbody td { color: #c6cdd2; font-variant-numeric: tabular-nums; }

.solar-system-method-note {
  margin-top: 0.8rem;
  padding: 1rem;
  color: #c1cbd1;
  border: 1px solid rgba(146, 204, 233, 0.22);
  border-left: 4px solid var(--lab-blue);
  border-radius: 0.75rem;
  background: rgba(146, 204, 233, 0.055);
}

.solar-system-method-note strong { color: #fff; font-size: 0.82rem; }
.solar-system-method-note p { margin: 0.45rem 0 0; font-size: 0.74rem; }

.world-access-label {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  padding: 0.35rem 0.65rem;
  color: var(--lab-gold-bright);
  border: 1px solid rgba(231, 185, 104, 0.45);
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 750;
}

.world-access-label--active { color: var(--lab-success); border-color: rgba(139, 216, 176, 0.45); }

.comparison-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 1rem;
  align-items: end;
  margin: 1.5rem 0;
}

.comparison-controls label,
.mission-text-label,
.model-control label {
  display: grid;
  gap: 0.42rem;
  color: var(--lab-muted);
  font-size: 0.74rem;
  font-weight: 700;
}

.comparison-controls select,
.mission-card textarea,
.mission-card input[type="text"] {
  width: 100%;
  min-height: 2.8rem;
  padding: 0.65rem 0.75rem;
  color: #fff;
  border: 1px solid var(--lab-line-strong);
  border-radius: 0.55rem;
  background: #080b0e;
}

.comparison-visual {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
}

.comparison-visual article { min-height: 12rem; }
.comparison-visual h3 { color: var(--lab-muted); font-size: 0.78rem; }

.diameter-comparison {
  display: grid;
  min-height: 11rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.diameter-object {
  display: grid;
  min-width: 0;
  gap: 0.55rem;
  margin: 0;
}

.diameter-planet-stage {
  position: relative;
  display: flex;
  min-height: 8rem;
  align-items: flex-end;
  justify-content: center;
}

.diameter-planet,
.diameter-detail__image {
  position: relative;
  display: block;
  flex: none;
  border-radius: 50%;
  background: #010204;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18), 0 0.65rem 1.4rem rgba(0, 0, 0, 0.38);
  overflow: hidden;
}

.diameter-planet {
  width: var(--diameter-size, 3rem);
  height: var(--diameter-size, 3rem);
}

.diameter-planet img,
.diameter-detail__image img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  object-position: var(--diameter-image-position, 50% 50%);
  transform: scale(var(--diameter-image-scale, 1.15));
}

.diameter-planet--mercury,
.diameter-detail__image--mercury { --diameter-image-scale: 1.08; }
.diameter-planet--venus,
.diameter-detail__image--venus { --diameter-image-scale: 1.28; --diameter-image-position: 49% 50%; }
.diameter-planet--earth,
.diameter-detail__image--earth { --diameter-image-scale: 1.08; }
.diameter-planet--mars,
.diameter-detail__image--mars { --diameter-image-scale: 1.18; --diameter-image-position: 50% 49%; }
.diameter-planet--jupiter,
.diameter-detail__image--jupiter { --diameter-image-scale: 1.18; --diameter-image-position: 52% 50%; }
.diameter-planet--saturn,
.diameter-detail__image--saturn { --diameter-image-scale: 1.3; --diameter-image-position: 50% 47%; }
.diameter-planet--uranus,
.diameter-detail__image--uranus { --diameter-image-scale: 1.18; }
.diameter-planet--neptune,
.diameter-detail__image--neptune { --diameter-image-scale: 1.24; --diameter-image-position: 49% 50%; }
.diameter-planet--pluto,
.diameter-detail__image--pluto { --diameter-image-scale: 1.3; --diameter-image-position: 50% 49%; }

.diameter-object figcaption {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
  text-align: center;
}

.diameter-object figcaption strong { color: #fff; font-size: 0.78rem; }
.diameter-object figcaption span { color: var(--lab-muted); font-size: 0.68rem; }

.diameter-detail {
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  max-width: 4.8rem;
  justify-items: center;
  gap: 0.25rem;
  color: var(--lab-muted);
  text-align: center;
}

.diameter-detail__image { width: 3rem; height: 3rem; }
.diameter-detail small { font-size: 0.58rem; line-height: 1.2; }

.diameter-scale-note {
  margin: 0.7rem 0 0;
  color: var(--lab-faint);
  font-size: 0.66rem;
  line-height: 1.45;
}

.distance-comparison,
.period-comparison {
  position: relative;
  min-height: 7rem;
  margin-top: 1.2rem;
  border-bottom: 1px solid var(--lab-line-strong);
}

.distance-comparison span,
.period-comparison span { position: absolute; inset: auto 0 0.6rem; height: 1px; background: linear-gradient(90deg, var(--lab-gold), rgba(255, 255, 255, 0.12)); }
.distance-comparison i,
.period-comparison i { position: absolute; bottom: 0; left: var(--marker-left, 18%); width: 0.6rem; height: 0.6rem; border: 2px solid #fff; border-radius: 50%; background: #0d1115; transform: translate(-50%, 50%); }
.distance-comparison i:last-child,
.period-comparison i:last-child { --marker-left: 65%; border-color: var(--lab-gold-bright); }

.comparison-scale-warning { color: var(--lab-faint); font-size: 0.78rem; }

.comparison-explainer {
  margin: 1rem 0;
  padding: 0.8rem 1rem;
  border: 1px solid var(--lab-line);
  border-radius: 0.65rem;
}

.comparison-explainer summary { color: #fff; cursor: pointer; font-weight: 680; }
.comparison-explainer p { color: var(--lab-muted); }

.comparison-table-wrap { width: 100%; max-width: 100%; overflow-x: auto; }

.comparison-table { width: 100%; min-width: 38rem; border-collapse: collapse; }
.comparison-table caption { padding: 0.8rem 0; color: var(--lab-muted); text-align: left; }
.comparison-table th, .comparison-table td { padding: 0.78rem; border-bottom: 1px solid var(--lab-line); text-align: left; vertical-align: top; }
.comparison-table thead th { color: #fff; font-size: 0.78rem; }
.comparison-table tbody th { width: 28%; color: var(--lab-muted); font-size: 0.77rem; font-weight: 620; }
.comparison-table tbody td { color: #f3f3f0; font-size: 0.84rem; }
.comparison-table small { display: block; margin-top: 0.2rem; color: var(--lab-faint); }

.comparison-relation {
  margin: 1.3rem 0 0;
  padding: 1rem 1.2rem;
  color: #f7e5be;
  border-left: 3px solid var(--lab-gold);
  background: rgba(231, 185, 104, 0.08);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.08rem;
}

.comparison-insights {
  display: grid;
  grid-template-columns: minmax(14rem, 0.55fr) minmax(0, 1.45fr);
  gap: 1.2rem;
  margin-top: 1rem;
  padding: 1.15rem;
  border: 1px solid var(--lab-line);
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.025);
}

.comparison-insights h3 { margin: 0; color: #fff; font-size: 1.05rem; }
.comparison-insights ul { display: grid; gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.comparison-insights li { padding: 0.55rem 0.7rem; color: var(--lab-muted); border-left: 2px solid var(--lab-gold); background: rgba(231, 185, 104, 0.045); font-size: 0.82rem; }

.comparison-premium-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-top: 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(231, 185, 104, 0.3);
  border-radius: 0.65rem;
}

.comparison-premium-note p { margin: 0; color: var(--lab-muted); }

.world-lab-premium-showcase {
  margin-top: 1.35rem;
  padding: clamp(1.35rem, 3vw, 2.2rem);
  border: 1px solid rgba(231, 185, 104, 0.46);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 88% 5%, rgba(231, 185, 104, 0.17), transparent 20rem),
    linear-gradient(145deg, #15120d, #0b0d0f 68%);
  scroll-margin-top: 1rem;
}

.world-lab-premium-showcase__intro { max-width: 54rem; }
.world-lab-premium-showcase__intro h3 { margin: 0; color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.55rem, 3.2vw, 2.55rem); font-weight: 500; line-height: 1.2; }
.world-lab-premium-showcase__intro > p:last-child { margin: 0.85rem 0 0; color: #c8c5bf; font-size: 0.94rem; line-height: 1.7; }

.world-lab-premium-showcase__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 1.4rem;
}

.world-lab-premium-showcase__grid article { min-width: 0; padding: 1rem; border: 1px solid rgba(255, 255, 255, 0.11); border-radius: 0.75rem; background: rgba(255, 255, 255, 0.035); }
.world-lab-premium-showcase__grid span { display: block; color: var(--lab-gold); font-size: 0.64rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.world-lab-premium-showcase__grid strong { display: block; margin-top: 0.45rem; color: #fff; font-size: 0.94rem; }
.world-lab-premium-showcase__grid p { margin: 0.5rem 0 0; color: var(--lab-muted); font-size: 0.77rem; line-height: 1.5; }
.world-lab-premium-showcase__actions { display: flex; flex-wrap: wrap; gap: 0.9rem; align-items: center; margin-top: 1.35rem; }
.world-lab-premium-showcase__actions > a:not(.world-lab-button) { color: #ddd8cf; font-size: 0.8rem; }

.public-mission,
.subscriber-mission { padding-top: 1.4rem; }

.mission-card { max-width: 58rem; margin: 0 auto 1rem; }
.mission-step-number { margin: 0 0 0.7rem; color: var(--lab-gold); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; }
.mission-card fieldset { display: grid; gap: 0.55rem; margin: 0; padding: 0; border: 0; }
.mission-card legend { margin-bottom: 0.9rem; color: #fff; font-size: clamp(1.15rem, 2.5vw, 1.6rem); font-weight: 620; line-height: 1.35; }
.mission-card fieldset label {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem;
  color: #d9dde0;
  border: 1px solid var(--lab-line);
  border-radius: 0.6rem;
  cursor: pointer;
}
.mission-card fieldset label:hover { border-color: var(--lab-line-strong); background: rgba(255, 255, 255, 0.03); }
.mission-card input[type="radio"], .mission-card input[type="checkbox"] { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; margin-top: 0.15rem; accent-color: var(--lab-gold); }
.mission-evidence-goal {
  margin-bottom: 0.85rem;
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--lab-blue);
  background: rgba(146, 204, 233, 0.07);
}
.mission-evidence-goal strong { color: #fff; font-size: 0.82rem; }
.mission-evidence-goal p { margin: 0.3rem 0 0; color: var(--lab-muted); font-size: 0.78rem; line-height: 1.55; }
.mission-card fieldset label.is-needed {
  display: grid;
  grid-template-columns: 1.1rem minmax(0, 1fr);
  border-color: rgba(231, 185, 104, 0.62);
  background: rgba(231, 185, 104, 0.08);
}
.mission-choice-hint { grid-column: 2; color: var(--lab-gold-bright); font-size: 0.68rem; font-weight: 760; }
.mission-text-label { margin-top: 1rem; }
.mission-card textarea { min-height: 7rem; resize: vertical; line-height: 1.55; }
.mission-card .world-lab-button { margin-top: 1rem; }
.mission-privacy-note { color: var(--lab-faint); font-size: 0.76rem; }

.public-evidence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.public-evidence-grid article { display: grid; gap: 0.3rem; padding: 1rem; border: 1px solid var(--lab-line); border-radius: 0.7rem; background: rgba(255, 255, 255, 0.025); }
.public-evidence-grid span { color: var(--lab-gold); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; }
.public-evidence-grid strong { font-size: 1.45rem; font-weight: 560; }
.public-evidence-grid small { color: var(--lab-muted); }
.public-evidence-grid b { margin-top: 0.5rem; color: #fff; font-size: 1.1rem; }
.public-evidence-grid p { margin: 0; color: #c3c7ca; }

.public-paradox { border-color: rgba(231, 185, 104, 0.42); }
.public-paradox h3 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.3rem, 3vw, 2rem); font-weight: 500; line-height: 1.35; }
.public-paradox p:last-child { color: var(--lab-muted); }

.world-lab-paywall {
  max-width: 58rem;
  margin: 1.2rem auto 0;
  padding: clamp(1.4rem, 4vw, 2.6rem);
  border: 1px solid rgba(231, 185, 104, 0.52);
  border-radius: 1rem;
  background: radial-gradient(circle at 85% 10%, rgba(231, 185, 104, 0.16), transparent 17rem), #0b0d0f;
}

.world-lab-paywall h3 { max-width: 46rem; margin: 0; font-size: clamp(1.25rem, 2.6vw, 1.9rem); font-weight: 520; line-height: 1.4; }
.world-lab-paywall > div { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1.3rem; }

.planet-forge { padding-top: 1.4rem; }

.planet-forge__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.6fr);
  gap: 2rem;
  align-items: start;
}

.planet-forge__intro h3 { margin: 0; color: var(--lab-text); font-size: clamp(1.25rem, 2.2vw, 1.75rem); line-height: 1.3; }
.planet-forge__intro p { margin: 0.65rem 0 0; color: var(--lab-muted); }
.planet-forge__model { padding: 0.85rem 1rem; border: 1px solid rgba(9, 110, 184, 0.2); border-radius: 0.7rem; background: #eef7fc; font-size: 0.8rem; }

.planet-forge__presets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 1.3rem;
}

.planet-forge__presets button {
  display: grid;
  gap: 0.3rem;
  min-height: 5rem;
  padding: 0.85rem 1rem;
  color: var(--lab-text);
  border: 1px solid var(--lab-line);
  border-radius: 0.75rem;
  background: #f8fafc;
  cursor: pointer;
  text-align: left;
}

.planet-forge__presets button:hover,
.planet-forge__presets button.is-active { border-color: rgba(9, 110, 184, 0.42); background: #eef7fc; }
.planet-forge__presets strong { font-size: 0.87rem; }
.planet-forge__presets span { color: var(--lab-muted); font-size: 0.75rem; line-height: 1.45; }

.planet-forge__form { margin-top: 1rem; }
.planet-forge__variables { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }

.planet-forge-field {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--lab-line);
  border-radius: 0.75rem;
  background: #fff;
}

.planet-forge-field > label { color: var(--lab-text); font-size: 0.86rem; font-weight: 760; }
.planet-forge-field > p { min-height: 2.7em; margin: 0.35rem 0 0.75rem; color: var(--lab-muted); font-size: 0.72rem; line-height: 1.45; }
.planet-forge-field > div { display: grid; grid-template-columns: minmax(5rem, 1fr) 6.3rem auto; gap: 0.65rem; align-items: center; }
.planet-forge-field input[type="range"] { width: 100%; accent-color: #096eb8; }
.planet-forge-field input[type="number"] { width: 100%; min-height: 2.55rem; padding: 0.45rem 0.55rem; color: var(--lab-text); border: 1px solid rgba(27, 49, 70, 0.24); border-radius: 0.5rem; background: #fff; }
.planet-forge-field > div > span { color: var(--lab-faint); font-size: 0.7rem; white-space: nowrap; }

.planet-forge__submit { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 1rem; padding: 1rem; border-top: 1px solid var(--lab-line); }
.planet-forge__submit p { margin: 0; color: var(--lab-faint); font-size: 0.76rem; }
.planet-forge__status { min-height: 1.6rem; margin-top: 0.6rem; color: var(--lab-muted); font-size: 0.82rem; }
.planet-forge__status.is-success { color: var(--lab-success); }
.planet-forge__status.is-error { color: var(--lab-danger); }

.planet-forge__results { margin-top: 1rem; padding-top: 1.2rem; border-top: 1px solid var(--lab-line); scroll-margin-top: 7rem; }
.planet-forge__results > h3 { margin: 0 0 1rem; color: var(--lab-text); font-size: 1.3rem; }
.planet-forge-results-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; }
.planet-forge-results-grid article { display: grid; min-width: 0; gap: 0.35rem; align-content: start; padding: 1rem; border: 1px solid var(--lab-line); border-radius: 0.75rem; background: #f8fafc; }
.planet-forge-results-grid span { color: #096eb8; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.11em; text-transform: uppercase; }
.planet-forge-results-grid strong { color: var(--lab-text); font-size: 0.78rem; }
.planet-forge-results-grid b { color: #075a98; font-size: 1.12rem; font-weight: 780; line-height: 1.3; }
.planet-forge-results-grid small { color: var(--lab-muted); font-size: 0.68rem; line-height: 1.45; }

.planet-forge-indicators { margin-top: 1rem; }
.planet-forge-indicators h4 { margin: 0 0 0.7rem; color: var(--lab-text); }
.planet-forge-indicators > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.7rem; }
.planet-forge-indicators article { padding: 0.85rem 1rem; border: 1px solid rgba(22, 118, 80, 0.2); border-radius: 0.7rem; background: #f0faf5; }
.planet-forge-indicators strong { color: #145f43; font-size: 0.82rem; }
.planet-forge-indicators p { margin: 0.35rem 0 0; color: #3f6757; font-size: 0.73rem; }

.planet-forge-warning { margin-top: 1rem; padding: 1rem; color: #694719; border: 1px solid rgba(165, 106, 23, 0.25); border-radius: 0.75rem; background: #fffaf1; }
.planet-forge-warning ul { margin-bottom: 0; }
.planet-forge-warning li { margin-top: 0.3rem; }

.planet-forge-epistemic { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.7rem; margin-top: 1rem; }
.planet-forge-epistemic section { padding: 1rem; border: 1px solid var(--lab-line); border-radius: 0.75rem; background: #fff; }
.planet-forge-epistemic h4 { margin: 0; color: var(--lab-text); font-size: 0.86rem; }
.planet-forge-epistemic ul { margin: 0.65rem 0 0; padding-left: 1.1rem; color: var(--lab-muted); font-size: 0.73rem; }
.planet-forge-epistemic li + li { margin-top: 0.35rem; }
.planet-forge-epistemic__assumed { border-top: 3px solid #096eb8 !important; }
.planet-forge-epistemic__unknown { border-top: 3px solid #8a6d2f !important; }
.planet-forge-epistemic__limit { border-top: 3px solid #7b5c83 !important; }

.planet-forge-formulas { margin-top: 1rem; padding: 0.9rem 1rem; border: 1px solid var(--lab-line); border-radius: 0.75rem; background: #f8fafc; }
.planet-forge-formulas summary { color: var(--lab-text); cursor: pointer; font-weight: 740; }
.planet-forge-formulas article { display: grid; grid-template-columns: minmax(10rem, 0.45fr) minmax(9rem, 0.35fr) minmax(0, 1.2fr); gap: 0.8rem; align-items: start; padding: 0.8rem 0; border-bottom: 1px solid var(--lab-line); }
.planet-forge-formulas article:last-child { border-bottom: 0; }
.planet-forge-formulas strong { color: var(--lab-text); font-size: 0.78rem; }
.planet-forge-formulas code { color: #075a98; font-family: "SFMono-Regular", Consolas, monospace; font-size: 0.78rem; }
.planet-forge-formulas p { margin: 0; color: var(--lab-muted); font-size: 0.73rem; }

.mission-progress {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
  margin-bottom: 1rem;
}

.mission-progress button {
  min-height: 3.4rem;
  padding: 0.45rem;
  color: var(--lab-faint);
  border: 1px solid var(--lab-line);
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.02);
  cursor: pointer;
  font-size: 0.66rem;
  line-height: 1.25;
}

.mission-progress button span { display: block; color: inherit; font-size: 0.62rem; font-weight: 800; }
.mission-progress button.is-current { color: #17120a; border-color: var(--lab-gold); background: var(--lab-gold); }
.mission-progress button.is-complete { color: var(--lab-success); border-color: rgba(139, 216, 176, 0.3); }
.mission-progress button:disabled { cursor: not-allowed; opacity: 0.48; }

.mission-workspace { min-height: 25rem; }
.mission-loading { padding: 2rem; color: var(--lab-muted); text-align: center; }
.mission-status {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  color: var(--lab-muted);
  border: 1px solid var(--lab-line);
  border-left-width: 4px;
  border-radius: 0.65rem;
  background: rgba(255, 255, 255, 0.035);
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.5;
}
.mission-status:empty { display: none; }
.mission-status.is-error { color: #ffe7e7; border-color: rgba(243, 140, 140, 0.52); background: rgba(243, 140, 140, 0.1); }
.mission-status.is-success { color: #dff8e9; border-color: rgba(139, 216, 176, 0.52); background: rgba(139, 216, 176, 0.1); }
.mission-status.is-pending { color: #fff1cf; border-color: rgba(231, 185, 104, 0.58); background: rgba(231, 185, 104, 0.11); }

.mission-feedback {
  margin-top: 1rem;
  padding: 1.15rem;
  border: 1px solid rgba(139, 216, 176, 0.38);
  border-left-width: 5px;
  border-radius: 0.7rem;
  background: rgba(139, 216, 176, 0.075);
  scroll-margin-top: 7rem;
}
.mission-feedback:focus { outline: 3px solid var(--lab-gold-bright); outline-offset: 3px; }
.mission-feedback--pending { border-color: rgba(231, 185, 104, 0.58); background: rgba(231, 185, 104, 0.095); }
.mission-feedback h4 { margin: 0 0 0.55rem; color: #fff; font-size: 1.08rem; }
.mission-feedback p, .mission-feedback li { color: #c9d1d0; }
.mission-feedback ul { margin: 0.5rem 0; padding-left: 1.2rem; }
.mission-requirements { margin: 0.9rem 0; padding: 0.85rem; border: 1px solid var(--lab-line); border-radius: 0.55rem; background: rgba(0, 0, 0, 0.12); }
.mission-requirements > strong { color: #fff; font-size: 0.78rem; }
.mission-requirements ul { display: grid; gap: 0.45rem; margin: 0.65rem 0 0; padding: 0; list-style: none; }
.mission-requirements li { display: grid; grid-template-columns: 1.45rem minmax(0, 1fr); gap: 0.45rem; align-items: start; }
.mission-requirement-mark { display: grid; width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 50%; font-size: 0.72rem; font-weight: 900; }
.mission-requirements .is-complete .mission-requirement-mark { color: #07150e; background: var(--lab-success); }
.mission-requirements .is-missing .mission-requirement-mark { color: #171008; background: var(--lab-gold); }
.mission-correction-button { width: 100%; justify-content: center; min-height: 2.8rem; }
.mission-diagnostics { margin-top: 0.9rem; padding: 0.8rem; border: 1px solid var(--lab-line); border-radius: 0.55rem; }
.mission-diagnostics summary { color: #fff; cursor: pointer; font-size: 0.78rem; font-weight: 760; }
.mission-continue-button { width: 100%; justify-content: center; min-height: 3rem; }

.diagnostic-card { margin-top: 0.75rem; padding: 0.8rem; border: 1px solid rgba(231, 185, 104, 0.3); border-radius: 0.6rem; }
.diagnostic-card > p { margin-top: 0; color: #f4e4c2; }
.diagnostic-card fieldset { margin-top: 0.7rem; }

.model-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.75fr);
  gap: 1rem;
}

.model-controls { display: grid; gap: 1rem; }
.model-presets { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.model-presets .world-lab-button { margin-top: 0; }
.model-control { padding: 0.8rem; border: 1px solid var(--lab-line); border-radius: 0.6rem; }
.model-control output { color: #fff; font-weight: 750; }
.model-control input[type="range"] { width: 100%; accent-color: var(--lab-gold); }
.model-results { padding: 1rem; border: 1px solid rgba(146, 204, 233, 0.3); border-radius: 0.7rem; background: rgba(146, 204, 233, 0.05); }
.model-results dl { margin: 0; }
.model-results div { padding: 0.7rem 0; border-bottom: 1px solid var(--lab-line); }
.model-results dt { color: var(--lab-muted); font-size: 0.72rem; }
.model-results dd { margin: 0.2rem 0 0; font-size: 1.35rem; font-weight: 600; }
.model-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; margin-top: 1rem; }
.model-notes details { padding: 0.7rem; border: 1px solid var(--lab-line); border-radius: 0.55rem; }
.model-notes summary { cursor: pointer; font-weight: 680; }
.model-notes li { color: var(--lab-muted); }
.model-formula { padding: 0.75rem; overflow-wrap: anywhere; color: var(--lab-blue); border: 1px solid rgba(146, 204, 233, 0.24); border-radius: 0.55rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.78rem; }
.model-acknowledgement { display: flex; align-items: flex-start; gap: 0.7rem; margin-top: 1rem; color: #dce2e4; }
.model-acknowledgement input { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; margin-top: 0.25rem; accent-color: var(--lab-gold); }

.transfer-world { display: flex; flex-wrap: wrap; gap: 0.65rem 1.1rem; margin-bottom: 1rem; padding: 1rem; border: 1px solid rgba(146, 204, 233, 0.28); border-radius: 0.7rem; background: rgba(146, 204, 233, 0.05); }
.transfer-world strong { width: 100%; color: var(--lab-blue); }
.transfer-world span { color: #edf4f5; }
.transfer-world small { width: 100%; color: var(--lab-muted); }

.causal-list { display: grid; gap: 0.55rem; margin: 0; padding: 0; list-style: none; }
.causal-item { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: 0.7rem; align-items: center; padding: 0.72rem; border: 1px solid var(--lab-line); border-radius: 0.6rem; background: #0b0e11; }
.causal-item[draggable="true"] { cursor: grab; }
.causal-item.is-dragging { opacity: 0.55; }
.causal-item > span { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; color: #17120a; border-radius: 50%; background: var(--lab-gold); font-size: 0.7rem; font-weight: 800; }
.causal-item > div { display: flex; gap: 0.35rem; }
.causal-item button { width: 2rem; height: 2rem; color: #fff; border: 1px solid var(--lab-line); border-radius: 0.4rem; background: transparent; cursor: pointer; }

.science-notebook { display: grid; gap: 0.8rem; padding-top: 1.2rem; }
.science-notebook h3 { margin: 0; }
.science-notebook dl { display: grid; gap: 0.7rem; margin: 0.8rem 0 0; }
.science-notebook dt { color: var(--lab-muted); font-size: 0.72rem; font-weight: 700; }
.science-notebook dd { margin: 0.1rem 0 0; white-space: pre-wrap; }
.notebook-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; }
.notebook-card { padding: 1rem; border: 1px solid rgba(231, 185, 104, 0.28); border-radius: 0.65rem; background: rgba(231, 185, 104, 0.05); }
.notebook-card strong, .notebook-card span { display: block; }
.notebook-card span { margin-top: 0.55rem; color: var(--lab-muted); }
.notebook-card small { display: block; margin-top: 0.8rem; color: var(--lab-gold); }

.world-lab-method,
.world-lab-related,
.world-lab-sources {
  margin-top: clamp(4rem, 9vw, 8rem);
  padding-top: clamp(2rem, 4vw, 4rem);
  border-top: 1px solid var(--lab-line);
}

.world-lab-method {
  display: grid;
  grid-template-columns: minmax(16rem, 0.65fr) minmax(0, 1.35fr);
  gap: clamp(2rem, 6vw, 6rem);
}

.world-lab-method ol {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--lab-line);
  list-style: none;
}

.world-lab-method li { display: grid; gap: 0.35rem; padding: 1.2rem; border-right: 1px solid var(--lab-line); border-bottom: 1px solid var(--lab-line); }
.world-lab-method li:nth-child(even) { border-right: 0; }
.world-lab-method li span { color: var(--lab-gold); font-size: 0.66rem; font-weight: 800; }
.world-lab-method li strong { font-size: 1.05rem; }
.world-lab-method li small { color: var(--lab-muted); font-size: 0.82rem; line-height: 1.5; }

.world-lab-related > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.7rem; margin-top: 1.5rem; }
.world-lab-related a { display: grid; gap: 0.5rem; min-height: 9rem; align-content: end; padding: 1rem; color: #fff; border: 1px solid var(--lab-line); border-radius: 0.75rem; background: rgba(255, 255, 255, 0.022); text-decoration: none; }
.world-lab-related a:hover { border-color: rgba(231, 185, 104, 0.5); background: rgba(231, 185, 104, 0.05); }
.world-lab-related span { color: var(--lab-muted); font-size: 0.8rem; }

.world-lab-sources { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(16rem, 0.7fr); gap: 3rem; }
.world-lab-sources p { color: var(--lab-muted); }
.world-lab-sources ul { margin: 0; padding: 0; list-style: none; }
.world-lab-sources li { padding: 0.7rem 0; border-bottom: 1px solid var(--lab-line); }
.world-lab-sources a { color: #dce4e8; font-size: 0.84rem; }

.world-lab-footer {
  display: flex;
  width: min(calc(100% - 3rem), var(--lab-content));
  flex-wrap: wrap;
  gap: 1.4rem;
  margin: 0 auto;
  padding: 1.5rem 0 2.5rem;
  color: var(--lab-faint);
  border-top: 1px solid var(--lab-line);
  font-size: 0.74rem;
}
.world-lab-footer a { color: var(--lab-muted); }

/* L'espace connecte reste une application claire et continue. Le contraste
   nocturne est limite au halo utile autour de la planete et aux instruments. */
.world-lab-body--subscriber .world-lab-main {
  width: min(calc(100% - 3rem), 84rem);
  padding-top: 1.15rem;
}

.world-lab-body--subscriber .world-lab-stage {
  --lab-line: rgba(21, 64, 92, 0.14);
  --lab-line-strong: rgba(21, 64, 92, 0.28);
  --lab-muted: #506879;
  --lab-faint: #718594;
  --lab-gold: #996116;
  --lab-gold-bright: #80500e;
  --lab-blue: #0876bb;
  min-height: 36rem;
  margin-top: 1.25rem;
  padding: 1.5rem;
  color: var(--lab-text);
  border: 1px solid rgba(21, 64, 92, 0.13);
  border-radius: 1.2rem;
  background:
    radial-gradient(circle at 31% 48%, rgba(43, 120, 168, 0.14), transparent 29rem),
    radial-gradient(circle at 82% 19%, rgba(226, 177, 98, 0.13), transparent 20rem),
    linear-gradient(145deg, #f7fbfe, #eaf3f8 68%);
  background-color: #edf5fa;
  box-shadow: 0 1.1rem 2.8rem rgba(29, 50, 68, 0.12);
  overflow: hidden;
}

.world-lab-body--subscriber .world-choice { color: #5d7281; }
.world-lab-body--subscriber .world-choice span { color: #7b8d99; }
.world-lab-body--subscriber .world-choice:hover {
  color: #17384e;
  background: rgba(255, 255, 255, 0.58);
}
.world-lab-body--subscriber .world-choice.is-selected {
  color: #102f44;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: inset 0 0 0 1px rgba(21, 64, 92, 0.09), 0 0.4rem 1.2rem rgba(29, 67, 92, 0.07);
}
.world-lab-body--subscriber .world-choice.is-selected span { color: var(--lab-gold); }
.world-lab-body--subscriber .world-orbit i { border-color: rgba(21, 64, 92, 0.09); }
.world-lab-body--subscriber .world-visual::before {
  background: radial-gradient(circle, #0b1720 0 53%, rgba(22, 67, 94, 0.24) 64%, transparent 76%);
}
.world-lab-body--subscriber .world-visual img {
  filter: drop-shadow(0 1.6rem 2.8rem rgba(13, 35, 49, 0.38));
}
.world-lab-body--subscriber .world-focus h2 { color: #132f43; }
.world-lab-body--subscriber .world-focus__copy > p:not(.world-focus__class):not(.world-visual-note) { color: #405a6c; }
.world-lab-body--subscriber .world-focus__facts dd { color: #142f42; }
.world-lab-body--subscriber .world-visual-note { color: #607584; }
.world-lab-body--subscriber .world-visual-question { color: #80500e; }

.world-lab-body--subscriber .world-lab-drawer {
  margin: 1.35rem 0 2rem;
  color: var(--lab-text);
  border-color: rgba(27, 49, 70, 0.13);
  background: #fff;
  box-shadow: 0 1rem 2.8rem rgba(29, 50, 68, 0.1);
}

.world-lab-body--subscriber .world-lab-panel { scroll-margin-top: 7rem; }

.world-lab-body--subscriber .world-lab-panel__heading h2,
.world-lab-body--subscriber .world-lab-method h2,
.world-lab-body--subscriber .world-lab-related h2,
.world-lab-body--subscriber .world-lab-sources h2,
.world-lab-body--subscriber .observer-grid h3,
.world-lab-body--subscriber .comparison-visual h3,
.world-lab-body--subscriber .mission-card h3,
.world-lab-body--subscriber .science-notebook h3,
.world-lab-body--subscriber .mission-card legend,
.world-lab-body--subscriber .comparison-explainer summary,
.world-lab-body--subscriber .comparison-table thead th {
  color: var(--lab-text);
}

.world-lab-body--subscriber .observer-grid article,
.world-lab-body--subscriber .comparison-visual article,
.world-lab-body--subscriber .mission-card,
.world-lab-body--subscriber .science-notebook > article,
.world-lab-body--subscriber .model-control,
.world-lab-body--subscriber .model-notes details {
  background: #f8fafc;
}

.world-lab-body--subscriber .observer-grid p,
.world-lab-body--subscriber .mission-card fieldset label,
.world-lab-body--subscriber .mission-feedback p,
.world-lab-body--subscriber .mission-feedback li,
.world-lab-body--subscriber .model-acknowledgement,
.world-lab-body--subscriber .transfer-world span {
  color: #425868;
}

.world-lab-body--subscriber .observer-grid dd,
.world-lab-body--subscriber .model-control output,
.world-lab-body--subscriber .comparison-table tbody td {
  color: var(--lab-text);
}

.world-lab-body--subscriber .solar-system-explorer__header h3,
.world-lab-body--subscriber .satellite-system h4,
.world-lab-body--subscriber .satellite-system__identity dd,
.world-lab-body--subscriber .satellite-system__table caption,
.world-lab-body--subscriber .satellite-system__table tbody th,
.world-lab-body--subscriber .solar-system-method-note strong {
  color: var(--lab-text);
}

.world-lab-body--subscriber .solar-system-explorer__header > div:first-child > p:last-child,
.world-lab-body--subscriber .satellite-system__identity > div > p:not(.world-lab-eyebrow),
.world-lab-body--subscriber .satellite-system__portrait > div:first-child p,
.world-lab-body--subscriber .satellite-system__empty,
.world-lab-body--subscriber .satellite-system__table tbody td,
.world-lab-body--subscriber .solar-system-method-note {
  color: #425868;
}

.world-lab-body--subscriber .solar-system-scale-controls,
.world-lab-body--subscriber .satellite-system > article,
.world-lab-body--subscriber .satellite-system__table-wrap {
  background: #f8fafc;
}

.world-lab-body--subscriber .solar-system-scale-controls button { color: #536979; }
.world-lab-body--subscriber .solar-system-scale-controls button:hover { color: var(--lab-text); }
.world-lab-body--subscriber .solar-system-scale-controls button.is-active { color: #fff; border-color: #096eb8; background: #096eb8; }
.world-lab-body--subscriber .solar-system-scale-status { color: #1d516f; background: #eef7fc; }
.world-lab-body--subscriber .satellite-rail {
  background:
    radial-gradient(circle at 78% 28%, rgba(146, 204, 233, 0.1), transparent 9rem),
    linear-gradient(145deg, #0b141b, #05090d);
}
.world-lab-body--subscriber .satellite-rail li strong { color: #edf4f7; }
.world-lab-body--subscriber .satellite-system__table thead th { color: #5a6c79; }
.world-lab-body--subscriber .solar-system-method-note { background: #eef7fc; }

.world-lab-body--subscriber .diameter-object figcaption strong { color: var(--lab-text); }
.world-lab-body--subscriber .diameter-object figcaption span,
.world-lab-body--subscriber .diameter-scale-note,
.world-lab-body--subscriber .diameter-detail { color: #5b6e7c; }

.world-lab-body--subscriber .comparison-controls select,
.world-lab-body--subscriber .mission-card textarea,
.world-lab-body--subscriber .mission-card input[type="text"] {
  color: var(--lab-text);
  border-color: rgba(27, 49, 70, 0.24);
  background: #fff;
}

.world-lab-body--subscriber .mission-card fieldset label:hover { background: #fff; }

.world-lab-body--subscriber .world-lab-button {
  color: #fff;
  border-color: #096eb8;
  background: #096eb8;
}

.world-lab-body--subscriber .world-lab-button:hover {
  border-color: #075a98;
  background: #075a98;
}

.world-lab-body--subscriber .world-lab-button--secondary {
  color: #096eb8;
  background: #fff;
}

.world-lab-body--subscriber .mission-evidence-goal {
  border-left-color: #096eb8;
  background: #eef7fc;
}
.world-lab-body--subscriber .mission-evidence-goal strong { color: var(--lab-text); }
.world-lab-body--subscriber .mission-evidence-goal p { color: #425868; }
.world-lab-body--subscriber .mission-card fieldset label.is-needed {
  border-color: rgba(165, 106, 23, 0.46);
  background: #fff8e9;
}
.world-lab-body--subscriber .mission-choice-hint { color: #72490f; }
.world-lab-body--subscriber .mission-status { color: #425868; background: #f8fafc; }
.world-lab-body--subscriber .mission-status.is-error { color: #8b2424; border-color: rgba(173, 52, 52, 0.35); background: #fff3f3; }
.world-lab-body--subscriber .mission-status.is-success { color: #145f43; border-color: rgba(22, 118, 80, 0.35); background: #edf9f3; }
.world-lab-body--subscriber .mission-status.is-pending { color: #72490f; border-color: rgba(165, 106, 23, 0.4); background: #fff8e9; }

.world-lab-body--subscriber .comparison-relation {
  color: #72490f;
  background: #fff8e9;
}

.world-lab-body--subscriber .comparison-insights { background: #f8fafc; }
.world-lab-body--subscriber .comparison-insights h3 { color: var(--lab-text); }
.world-lab-body--subscriber .comparison-insights li { color: #425868; background: #fffaf1; }
.world-lab-body--subscriber .observer-appearance { background: #f0f8fc !important; }
.world-lab-body--subscriber .observer-appearance__distinction { color: #23485f !important; }

.world-lab-body--subscriber .mission-progress button {
  color: var(--lab-faint);
  background: #f8fafc;
}

.world-lab-body--subscriber .mission-progress button.is-current {
  color: #fff;
  border-color: #096eb8;
  background: #096eb8;
}

.world-lab-body--subscriber .mission-feedback {
  border-color: rgba(22, 118, 80, 0.25);
  background: #f0faf5;
}

.world-lab-body--subscriber .mission-feedback--pending {
  border-color: rgba(165, 106, 23, 0.42);
  background: #fff8e9;
}
.world-lab-body--subscriber .mission-feedback h4,
.world-lab-body--subscriber .mission-requirements > strong,
.world-lab-body--subscriber .mission-diagnostics summary { color: var(--lab-text); }
.world-lab-body--subscriber .mission-requirements { background: rgba(255, 255, 255, 0.72); }

.world-lab-body--subscriber .diagnostic-card {
  border-color: rgba(165, 106, 23, 0.28);
  background: #fffaf1;
}

.world-lab-body--subscriber .diagnostic-card > p { color: #694719; }
.world-lab-body--subscriber .model-results,
.world-lab-body--subscriber .transfer-world { background: #f0f8fc; }
.world-lab-body--subscriber .causal-item { background: #fff; }
.world-lab-body--subscriber .causal-item > span { color: #fff; background: #096eb8; }
.world-lab-body--subscriber .causal-item button { color: var(--lab-text); background: #f8fafc; }
.world-lab-body--subscriber .notebook-card { background: #fff9ee; }

.world-lab-body--subscriber .world-lab-related a {
  color: var(--lab-text);
  background: #fff;
}

.world-lab-body--subscriber .world-lab-related a:hover { background: #fff9ed; }
.world-lab-body--subscriber .world-lab-sources a { color: #1f5f8b; }

@keyframes world-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-0.7rem); }
}

@media (max-width: 74rem) {
  .world-lab-app-header { grid-template-columns: 1fr; gap: 1rem; }
  .world-lab-app-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .world-lab-stage { grid-template-columns: 10rem minmax(0, 1fr); gap: 2rem; }
  .world-focus { grid-template-columns: minmax(17rem, 1fr) minmax(18rem, 1fr); }
  .world-focus__facts { grid-template-columns: 1fr; }
  .world-focus__facts div { padding: 0.55rem 0; border-top: 1px solid var(--lab-line); border-left: 0; }
  .world-focus__facts div:first-child { border-top: 0; }
}

@media (max-width: 56rem) {
  body.world-lab-body--subscriber { padding-left: 0; }
  .world-lab-main { width: min(calc(100% - 2rem), var(--lab-content)); padding-top: 3rem; }
  .world-lab-body--subscriber .world-lab-main { width: min(calc(100% - 2rem), 84rem); padding-top: 1rem; }
  .world-lab-app-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .world-lab-body--subscriber .world-lab-stage { padding: 1rem; }
  .world-lab-public-header { width: calc(100% - 2rem); }
  .world-lab-public-header nav a:first-child { display: none; }
  .world-lab-stage { display: block; min-height: 0; }
  .world-list { margin-bottom: 2rem; }
  .world-list ol { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.35rem; }
  .world-choice { min-height: 3.3rem; grid-template-columns: 1fr; gap: 0; text-align: center; }
  .world-choice::after { display: none; }
  .world-choice span { display: block; }
  .world-choice strong { overflow: hidden; font-size: 0.67rem; letter-spacing: 0.04em; text-overflow: ellipsis; }
  .world-list .world-list__dwarf-title { margin-top: 0.8rem; }
  .world-list .world-list__dwarf-title + ol { grid-template-columns: minmax(7rem, 10rem); }
  .world-focus { min-height: 0; grid-template-columns: 1fr; gap: 1.5rem; }
  .world-visual { width: min(76vw, 27rem); }
  .world-orbit { inset: 28% auto auto 50%; width: 95vw; }
  .world-focus__copy { max-width: none; }
  .world-focus__facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .world-focus__facts div { padding: 0 0.65rem; border-top: 0; border-left: 1px solid var(--lab-line); }
  .world-focus__facts div:first-child { padding-left: 0; border-left: 0; }
  .comparison-visual { grid-template-columns: 1fr; }
  .comparison-visual article { min-height: 10rem; }
  .world-lab-premium-showcase__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comparison-insights, .planet-forge__intro { grid-template-columns: 1fr; }
  .planet-forge-results-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planet-forge-epistemic { grid-template-columns: 1fr; }
  .observer-grid, .model-grid, .world-lab-method, .world-lab-sources,
  .solar-system-explorer__header, .satellite-system { grid-template-columns: 1fr; }
  .mission-progress { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .world-lab-related > div { grid-template-columns: 1fr; }
  .world-lab-related a { min-height: 7rem; }
}

@media (max-width: 40rem) {
  .world-lab-public-header { align-items: flex-start; padding: 0.8rem 0; }
  .world-lab-brand span { display: none; }
  .world-lab-public-header nav { gap: 0.6rem; }
  .world-lab-public-header nav a { font-size: 0.72rem; }
  .world-lab-intro h1 { letter-spacing: 0.12em; }
  .world-lab-capabilities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .world-lab-app-header h1 { font-size: 1.85rem; }
  .world-lab-app-status { grid-template-columns: 1fr; }
  .world-lab-app-status div { border-top: 1px solid var(--lab-line); border-left: 0; }
  .world-lab-app-status div:first-child { border-top: 0; }
  .world-lab-app-nav { position: static; }
  .world-lab-app-nav__item { min-height: 4.8rem; grid-template-columns: 1.65rem minmax(0, 1fr); padding: 0.58rem; }
  .world-lab-app-nav__item > span:first-child { width: 1.65rem; height: 1.65rem; }
  .world-lab-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .world-lab-action { width: 100%; }
  .world-list ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .solar-system-scale-controls { grid-template-columns: 1fr; }
  .solar-system-explorer.is-enhanced .solar-system-map { min-height: 32rem; }
  .solar-system-map__bodies button { min-height: 5.7rem; }
  .solar-system-map__planet { width: 2.9rem; height: 2.9rem; }
  .satellite-system__identity { grid-template-columns: 1fr; }
  .satellite-system__planet { width: 7rem; height: 7rem; justify-self: center; }
  .satellite-system__identity dl { grid-template-columns: 1fr; }
  .satellite-system__identity dl div { padding: 0.5rem 0; border-top: 1px solid var(--lab-line); border-left: 0; }
  .satellite-system__identity dl div:first-child { border-top: 0; }
  .satellite-rail li strong { width: 3.8rem; font-size: 0.53rem; }
  .world-focus__facts { grid-template-columns: 1fr; }
  .world-focus__facts div { padding: 0.55rem 0; border-top: 1px solid var(--lab-line); border-left: 0; }
  .world-focus__facts div:first-child { border-top: 0; }
  .world-lab-panel__heading { display: grid; gap: 0.8rem; }
  .comparison-controls { grid-template-columns: 1fr; }
  .comparison-controls > span { display: none; }
  .comparison-premium-note { display: grid; }
  .world-lab-premium-showcase__grid,
  .planet-forge__presets,
  .planet-forge__variables,
  .planet-forge-results-grid,
  .planet-forge-indicators > div { grid-template-columns: 1fr; }
  .planet-forge-field > p { min-height: 0; }
  .planet-forge-field > div { grid-template-columns: minmax(4rem, 1fr) 5.8rem; }
  .planet-forge-field > div > span { grid-column: 1 / -1; }
  .planet-forge-formulas article { grid-template-columns: 1fr; }
  .public-evidence-grid, .model-notes, .notebook-cards { grid-template-columns: 1fr; }
  .mission-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .causal-item { grid-template-columns: 1.8rem minmax(0, 1fr); }
  .causal-item > div { grid-column: 1 / -1; justify-content: flex-end; }
  .world-lab-method ol { grid-template-columns: 1fr; }
  .world-lab-method li { border-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .world-visual { animation: none; }
}

@media (prefers-contrast: more) {
  :root { --lab-line: rgba(255, 255, 255, 0.35); --lab-muted: #d2d6d9; --lab-faint: #afb6bc; }
}

@media (forced-colors: active) {
  .world-lab-action.is-active,
  .world-lab-button,
  .causal-item > span { forced-color-adjust: none; color: Canvas; background: CanvasText; }
  .world-visual img { outline: 3px solid CanvasText; mix-blend-mode: normal; }
}
