:root {
  --fmp-signal: #2ae2ff;
  --fmp-lock: #b8ff45;
  --fmp-alert: #ff9b45;
  --fmp-void: #030b15;
  --fmp-panel: #081827;
}

.material-symbols-rounded {
  max-width: 1.35em;
  overflow: hidden;
}

/* Never expose raw ligature names such as "arrow_forward" on a slow font load. */
html:not(.fmp-icons-ready) .material-symbols-rounded { color: transparent !important; }

.fmp-scroll-progress {
  position: fixed;
  z-index: 1200;
  inset: 0 0 auto;
  height: 2px;
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
  background: linear-gradient(90deg, var(--fmp-signal), var(--fmp-lock), var(--fmp-alert));
  box-shadow: 0 0 18px rgba(42, 226, 255, .72);
}

.route-telescope::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: .34;
  background: linear-gradient(110deg, transparent 0 42%, rgba(42, 226, 255, .12) 49%, transparent 56%);
  transform: translateX(-110%);
  animation: fmp-radar-sweep 8s cubic-bezier(.22, .61, .36, 1) infinite;
}

.route-telescope > * { position: relative; z-index: 1; }

.route-node.active > .material-symbols-rounded {
  animation: fmp-lock-pulse 2.4s ease-in-out infinite;
}

.mission-deck {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr);
  gap: clamp(42px, 7vw, 96px);
  padding: clamp(72px, 8vw, 116px) clamp(22px, 8vw, 118px);
  background:
    radial-gradient(circle at 14% 15%, rgba(42, 226, 255, .11), transparent 28%),
    linear-gradient(135deg, #06111d, #081a2a 58%, #07131f);
  border-block: 1px solid rgba(143, 211, 234, .18);
}

.mission-deck::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .4;
  background-image:
    linear-gradient(rgba(77, 205, 255, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(77, 205, 255, .045) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(90deg, #000, transparent 88%);
}

.mission-heading, .mission-grid { position: relative; z-index: 1; }
.mission-heading { align-self: center; }
.mission-heading h2 {
  margin: 0;
  font: 800 clamp(42px, 5vw, 70px) / .92 var(--display, Urbanist, Inter, sans-serif);
  letter-spacing: -.065em;
}
.mission-heading h2 em { color: var(--fmp-lock); font-style: normal; }
.mission-heading > p:last-child { max-width: 430px; margin: 25px 0 0; color: #a7bac9; }
.mission-grid { display: grid; gap: 10px; }

.mission-card {
  --mx: 75%;
  --my: 30%;
  position: relative;
  display: grid;
  grid-template-columns: minmax(116px, .35fr) 1fr auto;
  align-items: center;
  gap: 20px;
  min-height: 148px;
  padding: 24px 26px;
  overflow: hidden;
  border: 1px solid rgba(143, 211, 234, .19);
  background:
    radial-gradient(circle at var(--mx) var(--my), rgba(42, 226, 255, .14), transparent 27%),
    rgba(5, 19, 32, .76);
  transition: transform .24s ease, border-color .24s ease, background-color .24s ease;
}
.mission-card::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(184, 255, 69, .12), transparent);
  transform: translateX(-100%);
}
.mission-card:hover, .mission-card:focus-visible {
  z-index: 2;
  transform: translateX(8px);
  border-color: rgba(42, 226, 255, .72);
}
.mission-card:hover::after, .mission-card:focus-visible::after {
  opacity: 1;
  animation: fmp-card-scan .8s ease-out both;
}
.mission-card.is-primary { border-left: 3px solid var(--fmp-lock); }
.mission-code { color: var(--fmp-signal); font: 500 10px "DM Mono", monospace; letter-spacing: .1em; }
.mission-card strong { font: 750 22px / 1.1 var(--display, Urbanist, Inter, sans-serif); letter-spacing: -.025em; }
.mission-card p { margin: 0; color: #9eb3c2; font-size: 13px; line-height: 1.62; }
.mission-card b { color: var(--fmp-signal); font-size: 12px; white-space: nowrap; }

[data-game-reveal] .mission-heading,
[data-game-reveal] .mission-card {
  opacity: 0;
  transform: translateY(24px);
}
[data-game-reveal].is-in-view .mission-heading,
[data-game-reveal].is-in-view .mission-card {
  opacity: 1;
  transform: none;
  transition: opacity .55s ease, transform .55s cubic-bezier(.2, .7, .2, 1);
}
[data-game-reveal].is-in-view .mission-card:nth-child(1) { transition-delay: .08s; }
[data-game-reveal].is-in-view .mission-card:nth-child(2) { transition-delay: .15s; }
[data-game-reveal].is-in-view .mission-card:nth-child(3) { transition-delay: .22s; }

.hero-consent-host:empty { display: none; }
.hero-consent-host .fmp-consent,
.diagnose-consent-host .fmp-consent,
.guide-consent-host .fmp-consent {
  position: relative;
  inset: auto;
  z-index: 5;
  display: grid;
  max-width: 470px;
  margin: 20px 0 0;
  padding: 14px 15px;
  gap: 12px;
  box-shadow: none;
  background: rgba(7, 21, 34, .88);
}
.hero-consent-host .fmp-consent-actions,
.diagnose-consent-host .fmp-consent-actions,
.guide-consent-host .fmp-consent-actions { display: grid; grid-template-columns: 1fr 1fr; }
.hero-consent-host .fmp-consent button,
.diagnose-consent-host .fmp-consent button,
.guide-consent-host .fmp-consent button { width: 100%; }

.diagnose-v3 .hero { position: relative; overflow: hidden; }
.diagnose-v3 .hero::after {
  content: "";
  position: absolute;
  right: -10%;
  bottom: -38%;
  width: min(540px, 58vw);
  aspect-ratio: 1;
  pointer-events: none;
  border: 1px solid rgba(42, 226, 255, .18);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgba(42, 226, 255, .025), 0 0 0 140px rgba(42, 226, 255, .02);
}
.diagnose-v3 .mode-nav a { transition: color .2s ease, background .2s ease, transform .2s ease; }
.diagnose-v3 .mode-nav a:hover, .diagnose-v3 .mode-nav a:focus-visible {
  color: #fff;
  background: rgba(42, 226, 255, .08);
  transform: translateY(-2px);
}
.diagnose-v3 .advanced-tool {
  position: relative;
  border-top: 1px solid rgba(42, 226, 255, .22);
  background: linear-gradient(180deg, rgba(42, 226, 255, .025), transparent 260px);
}
.diagnose-v3 .advanced-tool::before {
  content: "OPTIONAL MODULE";
  position: absolute;
  top: 12px;
  right: 0;
  color: rgba(42, 226, 255, .72);
  font: 500 9px "DM Mono", monospace;
  letter-spacing: .12em;
}

.priority-guide .route-visual { overflow: hidden; }
.priority-guide .route-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 36%, color-mix(in srgb, var(--pg-hot) 12%, transparent) 50%, transparent 64%);
  transform: translateX(-120%);
  animation: fmp-radar-sweep 7s ease-in-out infinite;
}
.priority-guide .signal-bars i { animation: fmp-signal-bars 2.8s ease-in-out infinite alternate; }
.priority-guide .signal-bars i:nth-child(2n) { animation-delay: -.9s; }
.priority-guide .quick-answer {
  margin: 0 0 32px;
  padding: 28px;
  border: 1px solid color-mix(in srgb, var(--pg-hot) 46%, transparent);
  background: linear-gradient(120deg, color-mix(in srgb, var(--pg-hot) 11%, transparent), rgba(255,255,255,.018));
}
.priority-guide .quick-answer-head { display: flex; justify-content: space-between; gap: 28px; align-items: start; }
.priority-guide .quick-answer h2 { margin: 5px 0 0; font: 800 clamp(28px, 3vw, 42px) / .98 var(--display); letter-spacing: -.045em; }
.priority-guide .quick-answer p { max-width: 690px; margin: 12px 0 0; color: var(--pg-muted); }
.priority-guide .quick-answer a { flex: none; min-height: 46px; display: inline-flex; align-items: center; padding: 0 18px; background: var(--pg-hot); color: #04111e; font-weight: 800; text-decoration: none; }
.priority-guide details.evidence-drawer { border: 1px solid var(--pg-line); background: rgba(255,255,255,.016); }
.priority-guide details.evidence-drawer > summary { min-height: 54px; display: flex; align-items: center; padding: 0 18px; color: var(--pg-hot); font-weight: 800; cursor: pointer; }
.priority-guide details.evidence-drawer > .evidence-drawer-body { padding: 0 18px 20px; }

@keyframes fmp-radar-sweep { 0%, 18% { transform: translateX(-120%); } 58%, 100% { transform: translateX(120%); } }
@keyframes fmp-lock-pulse { 0%, 100% { filter: drop-shadow(0 0 0 rgba(255,155,69,0)); } 50% { filter: drop-shadow(0 0 12px rgba(255,155,69,.8)); } }
@keyframes fmp-card-scan { to { transform: translateX(100%); } }
@keyframes fmp-signal-bars { to { transform: scaleY(.45); opacity: .62; } }

@media (max-width: 900px) {
  .mission-deck { grid-template-columns: 1fr; }
  .mission-heading > p:last-child { max-width: 620px; }
  .mission-card { grid-template-columns: minmax(100px, .3fr) 1fr; }
  .mission-card b { grid-column: 2; }
}

@media (max-width: 620px) {
  .mission-deck { padding: 64px 18px; gap: 36px; }
  .mission-heading h2 { font-size: 46px; }
  .mission-card { grid-template-columns: 1fr; gap: 10px; padding: 22px; }
  .mission-card b { grid-column: auto; margin-top: 8px; }
  .mission-card:hover, .mission-card:focus-visible { transform: translateY(-3px); }
  .hero-consent-host .fmp-consent,
  .diagnose-consent-host .fmp-consent,
  .guide-consent-host .fmp-consent { max-width: none; }
  .diagnose-v3 .advanced-tool::before { position: static; display: block; padding-top: 12px; }
  .priority-guide .quick-answer-head { display: grid; }
  .priority-guide .quick-answer a { width: 100%; justify-content: center; }

  /* Mobile controls stay comfortably tappable without inflating inline copy links. */
  .diagnose-v3 .site-header .brand,
  .diagnose-v3 .site-footer a,
  .diagnose-v3 .field-help > summary,
  .diagnose-v3 .measurement-boundary summary,
  .diagnose-consent-host .fmp-consent p a,
  .guide-consent-host .fmp-consent p a,
  .telescope-home .why-step > summary,
  .hero-consent-host .fmp-consent p a,
  .priority-guide .site-header .brand,
  .priority-guide .site-header nav a,
  .priority-guide .site-footer a,
  .telescope-home .telescope-footer a,
  .fmp-consent-manage {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  .diagnose-v3 .mode-nav {
    display: flex;
    grid-template-columns: none;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }
  .diagnose-v3 .mode-nav::-webkit-scrollbar { display: none; }
  .diagnose-v3 .mode-nav a {
    flex: 0 0 126px;
    min-width: 126px;
    min-height: 56px;
    scroll-snap-align: start;
  }
  .diagnose-v3 .mode-nav a:last-child { border-right: 0; }

  .diagnose-v3 .site-footer a,
  .telescope-home .telescope-footer a { padding-block: 10px; }
  .diagnose-v3 .site-footer a { padding-inline: 10px; }
  .diagnose-v3 .learn article a { min-height: 44px; display: inline-flex; align-items: center; }
  .diagnose-v3 input:not([type="radio"]):not([type="checkbox"]),
  .diagnose-v3 select { min-height: 46px; }
  .telescope-home .why-step > summary { display: flex; }
  .hero-consent-host .fmp-consent p a,
  .diagnose-consent-host .fmp-consent p a,
  .guide-consent-host .fmp-consent p a { vertical-align: middle; }
  .fmp-consent-manage { padding-block: 8px; }
}

@media (pointer: coarse) {
  .telescope-home a,
  .priority-guide a,
  .diagnose-v3 a,
  .telescope-home summary,
  .priority-guide summary,
  .diagnose-v3 summary { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .route-telescope::before,
  .route-node.active > .material-symbols-rounded,
  .priority-guide .route-visual::after,
  .priority-guide .signal-bars i { animation: none !important; }
  [data-game-reveal] .mission-heading,
  [data-game-reveal] .mission-card { opacity: 1; transform: none; transition: none; }
  .mission-card::after { display: none; }
  .fmp-scroll-progress { display: none; }
}
