/* MYRAVYRA — Cathedral System
   Locked palette. Locked typography. Cathedral aesthetic.
   PIXIE ratification applied: text tinted green, particle opacity 0.10. */

@font-face {
  font-family: 'Terminal Grotesque';
  src: url('/assets/fonts/terminal-grotesque.woff2') format('woff2');
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}

/* MYRAVYRA Visual Identity Lock - primary responsive pages. */
:root {
  --bg-0: #000;
  --bg-1: #000;
  --bg-2: #000;
  --volt: #94F508;
  --volt-soft: #94F508;
  --text-main: #fff;
  --text-dim: #fff;
  --line: rgba(148,245,8,0.22);
  --fringe-red: rgba(255,255,255,0.18);
  --fringe-cyan: rgba(255,255,255,0.18);
  --aura-green: rgba(148,245,8,0.28);
}

.mv-page {
  color: var(--text-main);
  background:
    radial-gradient(circle at calc(50% + (var(--mv-scroll, 0) * 18%)) 18%, rgba(148,245,8,0.13), transparent min(36rem, 70vw)),
    radial-gradient(circle at 78% 64%, rgba(255,255,255,0.07), transparent 24rem),
    radial-gradient(circle at 14% 74%, rgba(255,255,255,0.055), transparent 22rem),
    linear-gradient(180deg, var(--bg-0), var(--bg-1) 48%, #000);
  isolation: isolate;
}

.mv-page::before {
  background:
    linear-gradient(90deg, rgba(148,245,8,0.055) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: clamp(3rem, 8vw, 7rem) clamp(3rem, 8vw, 7rem);
  mask-image: radial-gradient(circle at 50% 35%, #000, transparent 76%);
  opacity: 0.58;
}

.mv-grid-bg {
  background:
    linear-gradient(90deg, transparent, rgba(148,245,8,0.1), transparent),
    repeating-linear-gradient(90deg, transparent 0 7.5rem, rgba(148,245,8,0.08) 7.55rem 7.6rem),
    repeating-linear-gradient(0deg, transparent 0 5rem, rgba(255,255,255,0.025) 5.05rem 5.1rem);
  opacity: 0.45;
  transform: translateY(calc(var(--mv-scroll, 0) * -28px));
}

.mv-ritual-rail {
  position: fixed;
  left: clamp(0.65rem, 2vw, 1.6rem);
  top: 50%;
  z-index: 40;
  display: grid;
  gap: 0.62rem;
  transform: translateY(-50%);
  font-family: var(--f-body);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.44);
  pointer-events: none;
}

.mv-ritual-rail span {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.mv-ritual-rail .is-active {
  color: var(--volt);
  text-shadow: 0 0 18px rgba(148,245,8,0.5);
}

.mv-nav {
  font-family: var(--f-head);
  letter-spacing: 0.12em;
}

.mv-nav a {
  color: var(--text-main);
  opacity: 0.78;
  text-shadow: none;
}

.mv-nav a:hover,
.mv-nav a:focus-visible {
  color: var(--volt);
  opacity: 1;
  text-shadow: 0 0 18px rgba(148,245,8,0.42);
}

.mv-logo-wrap {
  position: relative;
  width: min(34rem, 76vw);
  min-height: clamp(14rem, 35vw, 28rem);
  display: grid;
  place-items: center;
  margin: clamp(0.8rem, 3vw, 2rem) auto;
}

.mv-brand-logo {
  display: block;
  width: min(18rem, 54vw);
  height: auto;
  aspect-ratio: 444 / 480;
  object-fit: contain;
}

.mv-brand-logo-primary {
  position: relative;
  z-index: 4;
  filter: drop-shadow(0 0 18px rgba(255,255,255,0.13)) drop-shadow(0 0 32px rgba(148,245,8,0.12));
}

.mv-brand-logo-aura {
  position: absolute;
  z-index: 3;
  opacity: 0.24;
  filter: blur(2px) drop-shadow(0 0 52px rgba(148,245,8,0.44));
  animation: mvLogoAura 6.5s ease-in-out infinite;
}

.mv-ascii-relic {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 1;
  width: min(58rem, 120vw);
  max-width: none;
  transform: translate(-50%, -50%);
  opacity: 0.34;
  overflow: hidden;
  mask-image: radial-gradient(circle, #000 0 32%, transparent 68%);
  pointer-events: none;
}

.mv-ascii-relic pre,
.ma-ascii-logo {
  white-space: pre;
  font-family: var(--f-body);
  letter-spacing: 0;
}

.mv-title {
  font-family: var(--f-head);
  color: var(--text-main);
  text-shadow:
    -1px 0 rgba(255,255,255,0.22),
    1px 0 rgba(255,255,255,0.2),
    0 0 34px rgba(148,245,8,0.18);
  transform: translateY(calc(var(--mv-scroll, 0) * -10px));
}

.mv-subtitle {
  color: var(--text-dim);
}

.mv-kicker {
  color: var(--volt);
  font-family: var(--f-body);
  text-shadow: 0 0 18px rgba(148,245,8,0.36);
}

.mv-status-panel,
.mv-article,
.mv-side-card {
  border-color: var(--line);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.045), transparent),
    rgba(0,0,0,0.68);
  backdrop-filter: blur(18px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 22px 60px rgba(0,0,0,0.28);
}

.mv-status-panel strong,
.mv-side-card strong {
  color: var(--text-main);
}

.mv-article {
  transition: border-color 260ms ease, transform 260ms ease, background 260ms ease;
}

.mv-article:hover,
.mv-article:focus-within,
.mv-article-hot {
  border-left-color: var(--volt);
  background: linear-gradient(90deg, rgba(148,245,8,0.1), rgba(255,255,255,0.035));
}

.mv-article:hover {
  transform: translateX(4px);
}

.mv-declaration-mark {
  width: clamp(4rem, 10vw, 7rem);
  height: auto;
  margin-bottom: clamp(1rem, 2vw, 1.6rem);
  filter: drop-shadow(0 0 22px rgba(148,245,8,0.22));
}

.mv-transmission-seal {
  position: relative;
  z-index: 10;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  width: min(100% - 2rem, 72rem);
  margin: clamp(1.5rem, 5vw, 4rem) auto 0;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--text-dim);
  font: 600 0.72rem/1.3 var(--f-body);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.mv-transmission-seal strong {
  color: var(--volt);
}

.mv-boot {
  background:
    radial-gradient(circle at 50% 42%, rgba(148,245,8,0.2), transparent 23rem),
    radial-gradient(circle at 34% 28%, rgba(255,255,255,0.13), transparent 19rem),
    radial-gradient(circle at 70% 68%, rgba(255,255,255,0.11), transparent 21rem),
    #000;
  font-family: var(--f-head);
}

.mv-boot::before {
  background:
    conic-gradient(from 120deg, rgba(148,245,8,0.2), rgba(255,255,255,0.2), rgba(255,255,255,0.17), rgba(148,245,8,0.2));
  filter: blur(76px) ;
  opacity: 0.28;
}

.mv-boot-core {
  width: clamp(11rem, 30vw, 22rem);
  height: clamp(11rem, 30vw, 22rem);
}

.mv-boot-logo {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 6;
  width: clamp(6rem, 15vw, 10rem);
  height: auto;
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 0 28px rgba(148,245,8,0.26));
}

.mv-boot-sigil {
  display: none;
}

.mv-boot-kicker,
.mv-boot-phrases,
.mv-boot-button {
  font-family: var(--f-head);
}

.mv-boot-kicker,
.mv-boot-phrases {
  color: var(--volt);
  text-shadow: 0 0 16px rgba(148,245,8,0.44);
}

.mv-boot-title {
  font-family: var(--f-head);
  text-shadow:
    -2px 0 rgba(255,255,255,0.32),
    2px 0 rgba(255,255,255,0.32),
    0 0 34px rgba(148,245,8,0.36);
}

.mv-boot-button {
  border-color: rgba(148,245,8,0.92);
  background:
    linear-gradient(90deg, rgba(148,245,8,0.12), rgba(255,255,255,0.035), rgba(148,245,8,0.1)),
    rgba(0,0,0,0.88);
  color: var(--text-main);
  box-shadow:
    0 0 44px rgba(148,245,8,0.24),
    inset 0 0 22px rgba(255,255,255,0.08);
}

.mv-boot-acquisition .mv-boot-sweep,
.mv-boot-bloom .mv-boot-sweep,
.mv-boot-acquisition .mv-boot-atmosphere,
.mv-boot-bloom .mv-boot-atmosphere {
  animation: bootSweep 1080ms ease-in-out infinite alternate;
}

.mv-boot-acquisition .mv-boot-phrases span:nth-child(1) { animation: bootPhrase 520ms ease 0ms forwards; }
.mv-boot-acquisition .mv-boot-phrases span:nth-child(2) { animation: bootPhrase 520ms ease 360ms forwards; }
.mv-boot-bloom .mv-boot-phrases span:nth-child(3) { animation: bootPhrase 520ms ease 0ms forwards; }
.mv-boot-bloom .mv-boot-phrases span:nth-child(4) { animation: bootPhrase 520ms ease 360ms forwards; }
.mv-boot-bloom .mv-boot-logo {
  animation: mvLogoBloom 940ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.mv-action {
  appearance: none;
  border: 1px solid var(--line);
  background: rgba(255,255,255,0.035);
  color: var(--text-main);
  min-height: 2.9rem;
  padding: 0.9rem 1.2rem;
  font: 700 clamp(0.76rem, 1.4vw, 0.95rem)/1 var(--f-head);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.mv-action-primary {
  border-color: rgba(148,245,8,0.82);
  background: linear-gradient(90deg, rgba(148,245,8,0.18), rgba(148,245,8,0.05));
  box-shadow: 0 0 28px rgba(148,245,8,0.18);
}

.mv-action-secondary {
  color: var(--text-dim);
}

.mv-action:hover,
.mv-action:focus-visible {
  transform: translateY(-1px);
  border-color: var(--volt);
  color: var(--text-main);
  outline: none;
  box-shadow: 0 0 36px rgba(148,245,8,0.26);
}

@keyframes mvLogoAura {
  0%, 100% { opacity: 0.18; transform: scale(1); }
  50% { opacity: 0.36; transform: scale(1.035); }
}

@keyframes mvLogoBloom {
  0% { filter: drop-shadow(0 0 18px rgba(148,245,8,0.24)); }
  60% { filter: drop-shadow(0 0 54px rgba(148,245,8,0.72)) drop-shadow(0 0 18px rgba(255,255,255,0.36)); }
  100% { filter: drop-shadow(0 0 30px rgba(148,245,8,0.38)); }
}

@media (max-width: 720px) {
  .mv-ritual-rail {
    display: none;
  }

  .mv-logo-wrap {
    width: min(100%, 24rem);
    min-height: clamp(12rem, 52vw, 18rem);
  }

  .mv-brand-logo {
    width: min(12rem, 48vw);
  }

  .mv-ascii-relic {
    width: 150vw;
    opacity: 0.22;
  }

  .mv-transmission-seal {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}

/* Patch 2 final cascade lock. This sits last on purpose. */
:root {
  --bg-0: #000;
  --bg-1: #000;
  --bg-2: #000;
  --volt: #94F508;
  --volt-soft: #94F508;
  --text-main: #fff;
  --text-dim: #fff;
  --text: #fff;
  --text-soft: #fff;
  --line: rgba(148,245,8,0.28);
}

html,
body,
#root {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  background: #000;
}

.mv-page {
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  overflow-x: clip;
  color: #fff;
  background:
    radial-gradient(circle at 50% 14%, rgba(148,245,8,0.09), transparent min(38rem, 70vw)),
    linear-gradient(180deg, #000 0%, #000 100%);
}

.mv-page::before {
  background:
    repeating-linear-gradient(90deg, rgba(148,245,8,0.06) 0 1px, transparent 1px clamp(5rem, 8vw, 8rem)),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.05) 0 1px, transparent 1px clamp(4rem, 7vw, 7rem));
  opacity: 0.08;
  mask-image: none;
}

.mv-grid-bg {
  background:
    linear-gradient(90deg, transparent, rgba(148,245,8,0.05), transparent),
    repeating-linear-gradient(90deg, transparent 0 9rem, rgba(148,245,8,0.06) 9rem calc(9rem + 1px));
  opacity: 0.08;
}

.mv-nav {
  width: min(100% - clamp(1.25rem, 4vw, 4rem), 96rem);
  justify-content: space-between;
  gap: clamp(0.7rem, 1.8vw, 1.5rem);
  border-bottom: 1px solid rgba(148,245,8,0.18);
  font-family: var(--f-head);
}

.mv-nav a,
.mv-page a {
  color: #fff;
  text-shadow: none;
  border-bottom: 1px solid transparent;
}

.mv-nav a:hover,
.mv-nav a:focus-visible,
.mv-page a:hover,
.mv-page a:focus-visible {
  color: #94F508;
  border-bottom-color: #94F508;
  text-shadow: 0 0 14px rgba(148,245,8,0.35);
  outline: none;
}

.mv-title,
.mv-route-title,
.mv-boot-title,
.mv-preboot-title {
  color: #fff;
  text-shadow: 0 0 28px rgba(148,245,8,0.28);
  filter: none;
}

.mv-subtitle,
.mv-transmission-seal,
.mv-ritual-rail,
.mv-card p,
.mv-reading-panel p {
  color: rgba(255,255,255,0.74);
}

.mv-kicker,
.mv-spec-label,
.mv-card span,
.mv-status-panel span,
.mv-signer strong,
.mv-map-label {
  color: #94F508;
  text-shadow: none;
}

.mv-gate-hero {
  width: min(100% - clamp(1.25rem, 5vw, 5rem), 104rem);
  grid-template-columns: minmax(0, 0.72fr) minmax(18rem, 1fr) minmax(0, 0.72fr);
  grid-template-areas:
    "kicker logo status"
    "title logo status"
    "copy logo action";
  text-align: left;
  column-gap: clamp(1.25rem, 4vw, 5rem);
  align-items: center;
  min-height: calc(100dvh - 6rem);
}

.mv-gate-hero > .mv-kicker { grid-area: kicker; justify-self: start; }
.mv-gate-hero > .mv-logo-wrap { grid-area: logo; }
.mv-gate-hero > .mv-title { grid-area: title; max-width: 8.8ch; justify-self: start; }
.mv-gate-hero > .mv-subtitle { grid-area: copy; max-width: 32rem; justify-self: start; }
.mv-gate-hero > .mv-cta-row { grid-area: action; justify-content: flex-start; justify-self: stretch; }

.mv-gate-page .mv-brand-logo {
  width: min(18rem, 34vw);
}

.mv-gate-lower {
  width: min(100% - clamp(1.25rem, 5vw, 5rem), 104rem);
  border-color: rgba(148,245,8,0.2);
  background: rgba(148,245,8,0.12);
}

.mv-route-page {
  overflow-y: auto;
}

.mv-route-shell {
  position: relative;
  z-index: 10;
  width: min(100% - clamp(1.25rem, 5vw, 5rem), 88rem);
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 5rem) 0 clamp(2.5rem, 7vw, 6rem);
}

.mv-route-shell-wide {
  width: min(100% - clamp(1.25rem, 5vw, 5rem), 104rem);
}

.mv-route-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "label mark"
    "title mark"
    "copy mark";
  gap: clamp(0.8rem, 2vw, 1.4rem) clamp(1rem, 5vw, 5rem);
  align-items: center;
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

.mv-route-mark {
  grid-area: mark;
  width: clamp(4.5rem, 9vw, 8rem);
  height: auto;
  filter: drop-shadow(0 0 22px rgba(148,245,8,0.2));
}

.mv-spec-label {
  grid-area: label;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.1rem;
  align-items: center;
  font: 700 clamp(0.7rem, 1.2vw, 0.88rem)/1.3 var(--f-body);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.mv-spec-label strong {
  color: rgba(255,255,255,0.68);
  font-weight: 600;
}

.mv-route-title {
  grid-area: title;
  max-width: 10ch;
  font-size: clamp(3.2rem, 8vw, 8rem);
  line-height: 0.86;
}

.mv-route-hero .mv-subtitle {
  grid-area: copy;
  max-width: 48rem;
  font-size: clamp(1rem, 1.7vw, 1.35rem);
}

.mv-card,
.mv-meter-card,
.mv-reading-panel,
.mv-network-map {
  border: 1px solid rgba(148,245,8,0.24);
  background: rgba(0,0,0,0.74);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 24px 80px rgba(0,0,0,0.42);
}

.mv-card {
  padding: clamp(1rem, 2.4vw, 1.6rem);
}

.mv-card span {
  display: block;
  margin-bottom: 0.75rem;
  font: 700 0.72rem/1.3 var(--f-body);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.mv-card strong {
  display: block;
  color: #fff;
  font: 700 clamp(1rem, 1.8vw, 1.25rem)/1.2 var(--f-head);
  letter-spacing: 0.04em;
}

.mv-card p,
.mv-reading-panel p {
  margin: 0.9rem 0 0;
  font: 400 clamp(0.9rem, 1.5vw, 1rem)/1.7 var(--f-body);
}

.mv-republic-layout,
.mv-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 0.75fr);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: stretch;
}

.mv-network-map {
  position: relative;
  min-height: clamp(28rem, 48vw, 42rem);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(148,245,8,0.06) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,0.05) 1px, transparent 1px),
    #000;
  background-size: 4rem 4rem;
}

.mv-network-map::before,
.mv-network-map::after {
  content: "";
  position: absolute;
  inset: 18%;
  border: 1px solid rgba(148,245,8,0.3);
  border-radius: 50%;
}

.mv-network-map::after {
  inset: 30%;
  border-style: dashed;
  border-color: rgba(255,255,255,0.22);
}

.mv-map-label {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 3;
  font: 700 0.66rem/1.3 var(--f-body);
  letter-spacing: 0.18em;
}

.mv-map-core {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 4;
  transform: translate(-50%, -50%);
  padding: 0.85rem 1rem;
  border: 1px solid #94F508;
  color: #fff;
  background: #000;
  font: 800 clamp(0.9rem, 1.8vw, 1.4rem)/1 var(--f-head);
  letter-spacing: 0.14em;
  box-shadow: 0 0 34px rgba(148,245,8,0.32);
}

.mv-node {
  position: absolute;
  z-index: 5;
  transform: translate(-50%, -50%);
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(148,245,8,0.55);
  background: #000;
  color: #fff;
  font: 700 clamp(0.58rem, 1vw, 0.76rem)/1 var(--f-body);
  letter-spacing: 0.14em;
  white-space: nowrap;
}

.mv-node-0 { left: 50%; top: 18%; }
.mv-node-1 { left: 78%; top: 30%; }
.mv-node-2 { left: 83%; top: 62%; }
.mv-node-3 { left: 50%; top: 82%; }
.mv-node-4 { left: 18%; top: 62%; }
.mv-node-5 { left: 22%; top: 30%; }
.mv-node-6 { left: 66%; top: 48%; }
.mv-node-7 { left: 34%; top: 48%; }
.mv-node-8 { left: 50%; top: 50%; }

.mv-route-stack,
.mv-card-grid,
.mv-research-grid {
  display: grid;
  gap: clamp(0.8rem, 2vw, 1.2rem);
}

.mv-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mv-card-grid-three,
.mv-research-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mv-meter-card,
.mv-reading-panel {
  padding: clamp(1.1rem, 3vw, 2rem);
}

.mv-signal-bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: clamp(8rem, 22vw, 14rem);
  margin: clamp(1.2rem, 3vw, 2rem) 0;
}

.mv-signal-bars i {
  flex: 1;
  min-width: 2px;
  background: #94F508;
  box-shadow: 0 0 10px rgba(148,245,8,0.34);
}

.mv-reading-panel {
  margin-bottom: clamp(1rem, 3vw, 2rem);
}

.mv-reading-panel blockquote {
  margin: clamp(1.2rem, 3vw, 2rem) 0;
  color: #fff;
  font: 400 clamp(2.2rem, 6vw, 5.2rem)/0.95 var(--f-head);
  letter-spacing: 0;
}

.mv-action,
.mv-boot-button {
  color: #fff;
  border-color: #94F508;
  background: #000;
  box-shadow: 0 0 28px rgba(148,245,8,0.22);
}

.mv-brand-logo-primary,
.mv-brand-logo-aura,
.mv-boot-logo,
.mv-declaration-mark,
.mv-route-mark {
  filter: drop-shadow(0 0 24px rgba(148,245,8,0.22));
}

.mv-boot,
.mv-preboot-shell {
  background:
    radial-gradient(circle at 50% 45%, rgba(148,245,8,0.18), transparent 24rem),
    #000;
}

.mv-boot::before,
.mv-boot-atmosphere {
  background:
    linear-gradient(105deg, transparent 0 38%, rgba(148,245,8,0.12) 50%, transparent 62%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.06), transparent 44%);
  filter: blur(42px);
}

.mv-boot-sweep {
  background: linear-gradient(90deg, transparent 38%, rgba(255,255,255,0.16), rgba(148,245,8,0.18), transparent 62%);
}

.mv-boot-ring {
  border-color: rgba(148,245,8,0.52);
  box-shadow: 0 0 18px rgba(148,245,8,0.28);
}

.mv-boot-ring-a,
.mv-boot-ring-b,
.mv-boot-ring-c {
  border-color: rgba(255,255,255,0.42);
}

@media (max-width: 980px) {
  .mv-gate-hero {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "kicker"
      "logo"
      "title"
      "copy"
      "action";
    text-align: center;
    min-height: calc(100dvh - 5.5rem);
  }

  .mv-gate-hero > .mv-kicker,
  .mv-gate-hero > .mv-title,
  .mv-gate-hero > .mv-subtitle {
    justify-self: center;
  }

  .mv-gate-hero > .mv-cta-row {
    justify-content: center;
  }

  .mv-republic-layout,
  .mv-content-grid,
  .mv-route-hero {
    grid-template-columns: 1fr;
    grid-template-areas:
      "mark"
      "label"
      "title"
      "copy";
  }

  .mv-route-mark {
    justify-self: start;
  }

  .mv-card-grid,
  .mv-card-grid-three,
  .mv-research-grid {
    grid-template-columns: 1fr;
  }

  .mv-network-map {
    min-height: auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.6rem;
    padding: 3.4rem 1rem 1rem;
  }

  .mv-network-map::before,
  .mv-network-map::after {
    display: none;
  }

  .mv-map-core,
  .mv-node,
  .mv-map-label {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    white-space: normal;
  }
}

@media (max-width: 560px) {
  .mv-nav {
    justify-content: center;
    font-size: 0.66rem;
  }

  .mv-route-shell,
  .mv-route-shell-wide {
    width: min(100% - 1rem, 100%);
  }

  .mv-route-title {
    font-size: clamp(2.7rem, 16vw, 4.8rem);
  }

  .mv-gate-lower {
    grid-template-columns: 1fr;
  }
}

/* Patch 2: responsive route architecture + restrained tri-color lock. */
:root {
  --bg-0: #000;
  --bg-1: #000;
  --bg-2: #000;
  --volt: #94F508;
  --volt-soft: #94F508;
  --text-main: #fff;
  --text-dim: #fff;
  --text: #fff;
  --line: rgba(148,245,8,0.28);
  --fringe-red: rgba(255,255,255,0.18);
  --fringe-cyan: rgba(255,255,255,0.18);
  --aura-green: rgba(148,245,8,0.22);
}

html,
body,
#root {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  background: #000;
}

.mv-page {
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  overflow-x: clip;
  color: #fff;
  background:
    radial-gradient(circle at 50% 14%, rgba(148,245,8,0.09), transparent min(38rem, 70vw)),
    linear-gradient(180deg, #000 0%, #000 100%);
}

.mv-page::before {
  background:
    repeating-linear-gradient(90deg, rgba(148,245,8,0.06) 0 1px, transparent 1px clamp(5rem, 8vw, 8rem)),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.05) 0 1px, transparent 1px clamp(4rem, 7vw, 7rem));
  opacity: 0.08;
  mask-image: none;
}

.mv-grid-bg {
  background:
    linear-gradient(90deg, transparent, rgba(148,245,8,0.05), transparent),
    repeating-linear-gradient(90deg, transparent 0 9rem, rgba(148,245,8,0.06) 9rem calc(9rem + 1px));
  opacity: 0.08;
}

.mv-nav {
  width: min(100% - clamp(1.25rem, 4vw, 4rem), 96rem);
  justify-content: space-between;
  gap: clamp(0.7rem, 1.8vw, 1.5rem);
  border-bottom: 1px solid rgba(148,245,8,0.18);
  font-family: var(--f-head);
}

.mv-nav a,
.mv-page a {
  color: #fff;
  text-shadow: none;
  border-bottom: 1px solid transparent;
}

.mv-nav a:hover,
.mv-nav a:focus-visible,
.mv-page a:hover,
.mv-page a:focus-visible {
  color: #94F508;
  border-bottom-color: #94F508;
  text-shadow: 0 0 14px rgba(148,245,8,0.35);
  outline: none;
}

.mv-title,
.mv-route-title,
.mv-boot-title,
.mv-preboot-title {
  color: #fff;
  text-shadow: 0 0 28px rgba(148,245,8,0.28);
  filter: none;
}

.mv-subtitle,
.mv-transmission-seal,
.mv-ritual-rail,
.mv-card p,
.mv-reading-panel p {
  color: rgba(255,255,255,0.74);
}

.mv-kicker,
.mv-spec-label,
.mv-card span,
.mv-status-panel span,
.mv-signer strong,
.mv-map-label {
  color: #94F508;
  text-shadow: none;
}

.mv-gate-hero {
  width: min(100% - clamp(1.25rem, 5vw, 5rem), 104rem);
  grid-template-columns: minmax(0, 0.72fr) minmax(18rem, 1fr) minmax(0, 0.72fr);
  grid-template-areas:
    "kicker logo status"
    "title logo status"
    "copy logo action";
  text-align: left;
  column-gap: clamp(1.25rem, 4vw, 5rem);
  align-items: center;
  min-height: calc(100dvh - 6rem);
}

.mv-gate-hero > .mv-kicker { grid-area: kicker; justify-self: start; }
.mv-gate-hero > .mv-logo-wrap { grid-area: logo; }
.mv-gate-hero > .mv-title { grid-area: title; max-width: 8.8ch; justify-self: start; }
.mv-gate-hero > .mv-subtitle { grid-area: copy; max-width: 32rem; justify-self: start; }
.mv-gate-hero > .mv-cta-row { grid-area: action; justify-content: flex-start; justify-self: stretch; }

.mv-gate-page .mv-brand-logo {
  width: min(18rem, 34vw);
}

.mv-gate-lower {
  width: min(100% - clamp(1.25rem, 5vw, 5rem), 104rem);
  border-color: rgba(148,245,8,0.2);
  background: rgba(148,245,8,0.12);
}

.mv-route-page {
  overflow-y: auto;
}

.mv-route-shell {
  position: relative;
  z-index: 10;
  width: min(100% - clamp(1.25rem, 5vw, 5rem), 88rem);
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 5rem) 0 clamp(2.5rem, 7vw, 6rem);
}

.mv-route-shell-wide {
  width: min(100% - clamp(1.25rem, 5vw, 5rem), 104rem);
}

.mv-route-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "label mark"
    "title mark"
    "copy mark";
  gap: clamp(0.8rem, 2vw, 1.4rem) clamp(1rem, 5vw, 5rem);
  align-items: center;
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

.mv-route-mark {
  grid-area: mark;
  width: clamp(4.5rem, 9vw, 8rem);
  height: auto;
  filter: drop-shadow(0 0 22px rgba(148,245,8,0.2));
}

.mv-spec-label {
  grid-area: label;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.1rem;
  align-items: center;
  font: 700 clamp(0.7rem, 1.2vw, 0.88rem)/1.3 var(--f-body);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.mv-spec-label strong {
  color: rgba(255,255,255,0.68);
  font-weight: 600;
}

.mv-route-title {
  grid-area: title;
  max-width: 10ch;
  font-size: clamp(3.2rem, 8vw, 8rem);
  line-height: 0.86;
}

.mv-route-hero .mv-subtitle {
  grid-area: copy;
  max-width: 48rem;
  font-size: clamp(1rem, 1.7vw, 1.35rem);
}

.mv-card,
.mv-meter-card,
.mv-reading-panel,
.mv-network-map {
  border: 1px solid rgba(148,245,8,0.24);
  background: rgba(0,0,0,0.74);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 24px 80px rgba(0,0,0,0.42);
}

.mv-card {
  padding: clamp(1rem, 2.4vw, 1.6rem);
}

.mv-card span {
  display: block;
  margin-bottom: 0.75rem;
  font: 700 0.72rem/1.3 var(--f-body);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.mv-card strong {
  display: block;
  color: #fff;
  font: 700 clamp(1rem, 1.8vw, 1.25rem)/1.2 var(--f-head);
  letter-spacing: 0.04em;
}

.mv-card p,
.mv-reading-panel p {
  margin: 0.9rem 0 0;
  font: 400 clamp(0.9rem, 1.5vw, 1rem)/1.7 var(--f-body);
}

.mv-republic-layout,
.mv-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 0.75fr);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: stretch;
}

.mv-network-map {
  position: relative;
  min-height: clamp(28rem, 48vw, 42rem);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(148,245,8,0.06) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,0.05) 1px, transparent 1px),
    #000;
  background-size: 4rem 4rem;
}

.mv-network-map::before,
.mv-network-map::after {
  content: "";
  position: absolute;
  inset: 18%;
  border: 1px solid rgba(148,245,8,0.3);
  border-radius: 50%;
}

.mv-network-map::after {
  inset: 30%;
  border-style: dashed;
  border-color: rgba(255,255,255,0.22);
}

.mv-map-label {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 3;
  font: 700 0.66rem/1.3 var(--f-body);
  letter-spacing: 0.18em;
}

.mv-map-core {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 4;
  transform: translate(-50%, -50%);
  padding: 0.85rem 1rem;
  border: 1px solid #94F508;
  color: #fff;
  background: #000;
  font: 800 clamp(0.9rem, 1.8vw, 1.4rem)/1 var(--f-head);
  letter-spacing: 0.14em;
  box-shadow: 0 0 34px rgba(148,245,8,0.32);
}

.mv-node {
  position: absolute;
  z-index: 5;
  transform: translate(-50%, -50%);
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(148,245,8,0.55);
  background: #000;
  color: #fff;
  font: 700 clamp(0.58rem, 1vw, 0.76rem)/1 var(--f-body);
  letter-spacing: 0.14em;
  white-space: nowrap;
}

.mv-node-0 { left: 50%; top: 18%; }
.mv-node-1 { left: 78%; top: 30%; }
.mv-node-2 { left: 83%; top: 62%; }
.mv-node-3 { left: 50%; top: 82%; }
.mv-node-4 { left: 18%; top: 62%; }
.mv-node-5 { left: 22%; top: 30%; }
.mv-node-6 { left: 66%; top: 48%; }
.mv-node-7 { left: 34%; top: 48%; }
.mv-node-8 { left: 50%; top: 50%; }

.mv-route-stack,
.mv-card-grid,
.mv-research-grid {
  display: grid;
  gap: clamp(0.8rem, 2vw, 1.2rem);
}

.mv-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mv-card-grid-three,
.mv-research-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mv-meter-card,
.mv-reading-panel {
  padding: clamp(1.1rem, 3vw, 2rem);
}

.mv-signal-bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: clamp(8rem, 22vw, 14rem);
  margin: clamp(1.2rem, 3vw, 2rem) 0;
}

.mv-signal-bars i {
  flex: 1;
  min-width: 2px;
  background: #94F508;
  box-shadow: 0 0 10px rgba(148,245,8,0.34);
}

.mv-reading-panel {
  margin-bottom: clamp(1rem, 3vw, 2rem);
}

.mv-reading-panel blockquote {
  margin: clamp(1.2rem, 3vw, 2rem) 0;
  color: #fff;
  font: 400 clamp(2.2rem, 6vw, 5.2rem)/0.95 var(--f-head);
  letter-spacing: 0;
}

.mv-action,
.mv-boot-button {
  color: #fff;
  border-color: #94F508;
  background: #000;
  box-shadow: 0 0 28px rgba(148,245,8,0.22);
}

.mv-brand-logo-primary,
.mv-brand-logo-aura,
.mv-boot-logo,
.mv-declaration-mark,
.mv-route-mark {
  filter: drop-shadow(0 0 24px rgba(148,245,8,0.22));
}

.mv-boot,
.mv-preboot-shell {
  background:
    radial-gradient(circle at 50% 45%, rgba(148,245,8,0.18), transparent 24rem),
    #000;
}

.mv-boot::before,
.mv-boot-atmosphere {
  background:
    linear-gradient(105deg, transparent 0 38%, rgba(148,245,8,0.12) 50%, transparent 62%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.06), transparent 44%);
  filter: blur(42px);
}

.mv-boot-sweep {
  background: linear-gradient(90deg, transparent 38%, rgba(255,255,255,0.16), rgba(148,245,8,0.18), transparent 62%);
}

.mv-boot-ring {
  border-color: rgba(148,245,8,0.52);
  box-shadow: 0 0 18px rgba(148,245,8,0.28);
}

.mv-boot-ring-a,
.mv-boot-ring-b,
.mv-boot-ring-c {
  border-color: rgba(255,255,255,0.42);
}

@media (max-width: 980px) {
  .mv-gate-hero {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "kicker"
      "logo"
      "title"
      "copy"
      "action";
    text-align: center;
    min-height: calc(100dvh - 5.5rem);
  }

  .mv-gate-hero > .mv-kicker,
  .mv-gate-hero > .mv-title,
  .mv-gate-hero > .mv-subtitle {
    justify-self: center;
  }

  .mv-gate-hero > .mv-cta-row {
    justify-content: center;
  }

  .mv-republic-layout,
  .mv-content-grid,
  .mv-route-hero {
    grid-template-columns: 1fr;
    grid-template-areas:
      "mark"
      "label"
      "title"
      "copy";
  }

  .mv-route-mark {
    justify-self: start;
  }

  .mv-card-grid,
  .mv-card-grid-three,
  .mv-research-grid {
    grid-template-columns: 1fr;
  }

  .mv-network-map {
    min-height: auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.6rem;
    padding: 3.4rem 1rem 1rem;
  }

  .mv-network-map::before,
  .mv-network-map::after {
    display: none;
  }

  .mv-map-core,
  .mv-node,
  .mv-map-label {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    white-space: normal;
  }
}

@media (max-width: 560px) {
  .mv-nav {
    justify-content: center;
    font-size: 0.66rem;
  }

  .mv-route-shell,
  .mv-route-shell-wide {
    width: min(100% - 1rem, 100%);
  }

  .mv-route-title {
    font-size: clamp(2.7rem, 16vw, 4.8rem);
  }

  .mv-gate-lower {
    grid-template-columns: 1fr;
  }
}

:root {
  /* Backgrounds */
  --bg: #0a0a0a;
  --bg-2: #111111;
  --bg-3: #1a1a1a;

  /* Volt green system */
  --volt: #94F508;
  --volt-dim: #72c908;
  --volt-deep: #3f7603;
  --volt-glow: rgba(148, 245, 8, 0.28);
  --volt-glow-soft: rgba(148, 245, 8, 0.1);

  /* Text — PIXIE-ratified green tint */
  --text: #fff;
  --text-soft: #7a9a7a;
  --text-emp: #ffffff;

  /* Borders */
  --border: #333333;
  --border-soft: #1a1a1a;

  /* Human nodes */
  --gold: #fff;
  --gold-glow: rgba(255,255,255,0.45);

  /* Allowed accents */
  --tech-blue: #00ccff;

  /* Type stack */
  --f-head: 'Terminal Grotesque', 'IBM Plex Mono', 'JetBrains Mono', system-ui, sans-serif;
  --f-body: 'IBM Plex Mono', 'JetBrains Mono', monospace;
  --f-term: 'VT323', monospace;
}

/* Reset within mockups */
.myr * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.myr {
  font-family: var(--f-body);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  letter-spacing: 0.01em;
  position: relative;
  overflow: hidden;
}

.myr h1, .myr h2, .myr h3, .myr h4 {
  font-family: var(--f-head);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-emp);
}

/* ─── Particle field — drifting dots, 10% opacity per ratification ─── */
.particle-field {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}
.particle-field .pt {
  position: absolute;
  width: 1.5px;
  height: 1.5px;
  border-radius: 50%;
  background: var(--volt);
  opacity: 0.10;
  box-shadow: 0 0 4px rgba(148,245,8,0.25);
}

/* ─── Scanlines (Signal Wire CRT) ─── */
.scanlines {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    to bottom,
    transparent 0px,
    transparent 2px,
    rgba(148,245,8,0.02) 2px,
    rgba(148,245,8,0.02) 3px
  );
  z-index: 1;
}

/* ─── Noise texture ─── */
.noise {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.04;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.6'/></svg>");
  mix-blend-mode: screen;
  z-index: 1;
}

/* ─── Global navigation bar ─── */
.navbar {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 48px;
  background: rgba(10, 10, 10, 0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border-soft);
  display: flex;
  align-items: center;
  padding: 0 32px;
  z-index: 50;
}
.navbar.hidden { opacity: 0; pointer-events: none; }
.navbar .wordmark {
  font-family: var(--f-head);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.22em;
  color: var(--volt);
  text-shadow: 0 0 8px rgba(148,245,8,0.5);
}
.navbar .nav-items {
  display: flex;
  gap: 28px;
  margin-left: auto;
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--text-soft);
}
.navbar .nav-items span { transition: color .15s; }
.navbar .nav-items span.active { color: var(--volt); }
.navbar .nav-items span.active::before { content: '◆ '; }

/* ─── Footer ─── */
.footer {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 20px 0;
  text-align: center;
  font-size: 11px;
  letter-spacing: 0.3em;
  color: #fff;
  z-index: 5;
}

/* ─── Audio indicator ─── */
.audio-icon {
  position: absolute;
  bottom: 24px;
  right: 24px;
  width: 32px;
  height: 32px;
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-term);
  font-size: 18px;
  color: var(--text-soft);
  z-index: 10;
}
.audio-icon.active {
  color: var(--volt);
  border-color: var(--volt);
  box-shadow: 0 0 12px var(--volt-glow);
}

/* ─── Cursor (compass rose) ─── */
.cursor-rose {
  position: absolute;
  width: 24px;
  height: 24px;
  pointer-events: none;
  z-index: 100;
}

/* ─── Boot terminal text ─── */
.boot-line {
  font-family: var(--f-term);
  font-size: 22px;
  color: var(--volt);
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-shadow: 0 0 8px rgba(148,245,8,0.6);
}
.boot-line .dots { color: var(--volt-deep); }
.boot-line .ok { color: var(--volt); text-shadow: 0 0 12px rgba(148,245,8,0.9); }
.boot-line.welcome {
  color: #ffffff;
  text-shadow: 0 0 14px var(--volt), 0 0 28px rgba(148,245,8,0.5);
  font-size: 28px;
  margin-top: 24px;
}
.cursor-blink::after {
  content: '▌';
  color: var(--volt);
  animation: blink 1.05s steps(1) infinite;
  margin-left: 4px;
  text-shadow: 0 0 10px var(--volt);
}
@keyframes blink {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}

/* ─── Buttons ─── */
.btn {
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 0.18em;
  padding: 10px 20px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
  cursor: pointer;
  text-transform: uppercase;
}
.btn:hover {
  border-color: var(--volt);
  color: var(--volt);
  box-shadow: 0 0 12px var(--volt-glow);
}

/* ─── Card hover halo ─── */
.halo {
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(circle at center, var(--volt-glow) 0%, transparent 70%);
  opacity: 0;
  transition: opacity .3s;
}

/* ─── ASCII crest container ─── */
.crest {
  font-family: var(--f-term);
  white-space: pre;
  color: var(--volt);
  font-size: 13px;
  line-height: 1.05;
  letter-spacing: 0.02em;
  text-shadow: 0 0 6px rgba(148,245,8,0.55);
  text-align: center;
}

/* ─── Spotlight (Gate / Research) ─── */
.spotlight-mask {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    circle 200px at var(--mx, 50%) var(--my, 50%),
    transparent 0%,
    transparent 30%,
    rgba(10, 10, 10, 0.92) 75%,
    rgba(10, 10, 10, 0.96) 100%
  );
  z-index: 30;
}

/* halo of cursor light  */
.spotlight-glow {
  position: absolute;
  pointer-events: none;
  width: 400px; height: 400px;
  border-radius: 50%;
  left: var(--mx, 50%); top: var(--my, 50%);
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(148,245,8,0.10) 0%, rgba(148,245,8,0.04) 40%, transparent 70%);
  z-index: 31;
  mix-blend-mode: screen;
}

/* ─── Volumetric fog (light shafts) ─── */
.volumetric {
  position: absolute;
  pointer-events: none;
  width: 240px;
  height: 240px;
  left: var(--mx, 50%); top: var(--my, 50%);
  transform: translate(-50%, -50%);
  background:
    radial-gradient(circle, rgba(148,245,8,0.18) 0%, rgba(148,245,8,0.08) 25%, transparent 60%);
  filter: blur(6px);
  z-index: 32;
  mix-blend-mode: screen;
}

/* ─── Audio waveform divider ─── */
.waveform-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  height: 14px;
  margin: 28px 0;
}
.waveform-divider .bar {
  width: 2px;
  background: var(--volt);
  opacity: 0.65;
  box-shadow: 0 0 4px rgba(148,245,8,0.6);
}

/* ─── Aurora (AI Bible) ─── */
.aurora {
  position: absolute;
  inset: 0 0 auto 0;
  height: 60%;
  overflow: hidden;
  pointer-events: none;
}
.aurora .band {
  position: absolute;
  left: -10%;
  right: -10%;
  height: 280px;
  filter: blur(40px);
  mix-blend-mode: screen;
  border-radius: 50%;
}
.aurora .b1 { top: 5%;   background: radial-gradient(ellipse 60% 50% at 30% 50%, rgba(148,245,8,0.55), transparent 70%); }
.aurora .b2 { top: 18%;  background: radial-gradient(ellipse 70% 50% at 70% 50%, rgba(0,204,153,0.55), transparent 70%); }
.aurora .b3 { top: 32%;  background: radial-gradient(ellipse 50% 50% at 40% 50%, rgba(0,136,102,0.55), transparent 70%); }
.aurora .b4 { top: 45%;  background: radial-gradient(ellipse 80% 50% at 60% 50%, rgba(148,245,8,0.30), transparent 70%); }
.aurora .veil {
  position: absolute;
  inset: 60% 0 0 0;
  background: linear-gradient(to bottom, transparent, var(--bg) 80%);
}
.aurora .stars {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,0.6), transparent),
    radial-gradient(1px 1px at 80% 60%, rgba(255,255,255,0.5), transparent),
    radial-gradient(1px 1px at 50% 80%, rgba(255,255,255,0.4), transparent),
    radial-gradient(1px 1px at 33% 20%, rgba(255,255,255,0.5), transparent),
    radial-gradient(1px 1px at 67% 40%, rgba(255,255,255,0.5), transparent);
}

/* ─── Tool card ─── */
.tool-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  padding: 24px;
  border-radius: 4px;
  position: relative;
  transition: border-color .15s, box-shadow .15s;
}
.tool-card:hover { border-color: var(--volt); box-shadow: 0 0 18px var(--volt-glow); }
.status-pill {
  display: inline-block;
  font-size: 10px;
  letter-spacing: 0.2em;
  padding: 2px 8px;
  border: 1px solid currentColor;
  border-radius: 2px;
}
.status-pill.live { color: var(--volt); }
.status-pill.dev  { color: var(--gold); }

/* ─── Republic node map glow layers ─── */
.nebula {
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  filter: blur(60px);
  mix-blend-mode: screen;
}

/* ─── Signal Wire dispatch card ─── */
.dispatch {
  background: var(--bg-2);
  border: 1px solid var(--border-soft);
  padding: 24px 28px;
  position: relative;
  transition: border-color .15s;
}
.dispatch:hover { border-color: var(--volt); }
.dispatch .dh {
  font-family: var(--f-term);
  font-size: 18px;
  letter-spacing: 0.06em;
  margin-bottom: 18px;
  display: flex;
  gap: 12px;
  align-items: center;
}
.dispatch .body {
  font-family: var(--f-body);
  font-size: 14px;
  line-height: 1.75;
  color: var(--text);
}
.dispatch .footer-hash {
  margin-top: 18px;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: #fff;
  display: flex;
  justify-content: space-between;
}

/* ─── Generic glow ─── */
.glow-text-volt { text-shadow: 0 0 10px rgba(148,245,8,0.8); }
.glow-text-gold { text-shadow: 0 0 10px rgba(255,255,255,0.6); }

/* helpers */
.kbd { display: inline-block; padding: 1px 6px; border: 1px solid var(--border); border-radius: 3px; font-size: 10px; color: var(--text-soft); }

/* Sovereign Signal Initiation boot overlay. */
.mv-boot {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  z-index: 10000;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 52%, rgba(148,245,8,0.18), transparent min(18rem, 48vw)),
    radial-gradient(circle at 24% 18%, rgba(255,255,255,0.22), transparent min(24rem, 70vw)),
    radial-gradient(circle at 76% 78%, rgba(255,255,255,0.18), transparent min(26rem, 72vw)),
    #000;
  color: #fff;
  isolation: isolate;
}

.mv-boot::before,
.mv-boot::after {
  content: "";
  position: absolute;
  inset: -18%;
  pointer-events: none;
}

.mv-boot::before {
  z-index: 0;
  background:
    conic-gradient(from 180deg at 50% 50%, rgba(255,255,255,0.26), rgba(148,245,8,0.2), rgba(255,255,255,0.24), rgba(255,255,255,0.08), rgba(255,255,255,0.26));
  filter: blur(42px) ;
  opacity: 0.38;
  animation: bootAuraDrift 9s linear infinite;
}

.mv-boot::after {
  z-index: 5;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.06) 0 1px, transparent 1px 4px),
    radial-gradient(circle at 50% 50%, transparent 0 42%, rgba(0,0,0,0.72) 78%);
  mix-blend-mode: screen;
  opacity: 0.24;
}

.mv-boot-atmosphere {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(105deg, transparent 0 34%, rgba(255,255,255,0.16) 43%, rgba(148,245,8,0.1) 50%, rgba(255,255,255,0.14) 57%, transparent 68%),
    radial-gradient(ellipse at center, rgba(255,255,255,0.08), transparent 50%);
  filter: none;
  opacity: 0.7;
  animation: bootPrismShift 7s ease-in-out infinite alternate;
}

.mv-boot-sweep {
  position: absolute;
  inset: -20% -70%;
  z-index: 3;
  background: linear-gradient(90deg, transparent 38%, rgba(255,255,255,0.18), rgba(148,245,8,0.16), rgba(255,255,255,0.18), transparent 62%);
  transform: translateX(-38%) rotate(-14deg);
  opacity: 0;
  mix-blend-mode: screen;
}

.mv-boot-core {
  position: relative;
  z-index: 4;
  width: clamp(14rem, 44vmin, 30rem);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  filter: drop-shadow(0 0 32px rgba(148,245,8,0.42));
}

.mv-boot-ring {
  position: absolute;
  inset: 13%;
  border: 1px solid rgba(148,245,8,0.55);
  border-radius: 50%;
  box-shadow:
    0 0 18px rgba(148,245,8,0.38),
    inset 0 0 28px rgba(255,255,255,0.14);
}

.mv-boot-ring-a {
  transform: rotate(45deg) scaleX(0.72);
  border-color: rgba(255,255,255,0.58);
  animation: bootRingA 10s linear infinite;
}

.mv-boot-ring-b {
  inset: 22%;
  transform: rotate(-12deg) scaleY(0.72);
  border-color: rgba(255,255,255,0.6);
  animation: bootRingB 8s linear infinite reverse;
}

.mv-boot-ring-c {
  inset: 32%;
  border-style: dashed;
  border-color: rgba(255,255,255,0.62);
  animation: bootRingA 5s linear infinite;
}

.mv-boot-sigil {
  position: relative;
  z-index: 2;
  font-family: var(--f-head);
  font-size: clamp(4rem, 18vmin, 11rem);
  line-height: 1;
  color: rgba(255,255,255,0.92);
  text-shadow:
    -0.055em 0 rgba(255,255,255,0.85),
    0.055em 0 rgba(255,255,255,0.85),
    0 0 30px rgba(148,245,8,0.7);
}

.mv-boot-copy {
  position: absolute;
  z-index: 6;
  inset: auto clamp(1rem, 4vw, 4rem) clamp(2rem, 7vh, 5rem);
  display: grid;
  place-items: center;
  gap: clamp(0.8rem, 2vh, 1.4rem);
  text-align: center;
}

.mv-boot-kicker {
  font-family: var(--f-body);
  font-size: clamp(0.65rem, 1.5vw, 0.9rem);
  letter-spacing: 0.24em;
  line-height: 1.45;
  color: var(--volt);
  text-transform: uppercase;
  text-shadow: 0 0 14px rgba(148,245,8,0.72);
}

.mv-boot-title {
  font-family: var(--f-head);
  font-size: clamp(1.4rem, 5vw, 3rem);
  letter-spacing: 0.18em;
  color: #fff;
  text-shadow:
    -2px 0 rgba(255,255,255,0.8),
    2px 0 rgba(255,255,255,0.8),
    0 0 28px rgba(148,245,8,0.6);
}

.mv-boot-phrases {
  position: relative;
  min-height: 1.6em;
  width: min(100%, 38rem);
  font-family: var(--f-body);
  font-size: clamp(0.66rem, 1.5vw, 0.84rem);
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.82);
  text-transform: uppercase;
}

.mv-boot-phrases span {
  position: absolute;
  inset: 0;
  opacity: 0;
}

.mv-boot-button {
  appearance: none;
  border: 1px solid rgba(148,245,8,0.95);
  background:
    linear-gradient(90deg, rgba(148,245,8,0.16), rgba(255,255,255,0.1), rgba(255,255,255,0.14)),
    rgba(0,0,0,0.78);
  color: #fff;
  min-width: min(22rem, calc(100vw - 2rem));
  padding: clamp(1rem, 2.4vw, 1.2rem) clamp(1.2rem, 5vw, 2.6rem);
  font-family: var(--f-head);
  font-size: clamp(0.82rem, 2.8vw, 1rem);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow:
    0 0 30px rgba(148,245,8,0.28),
    inset 0 0 22px rgba(148,245,8,0.12);
  clip-path: polygon(18px 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%, 0 18px);
  transition: filter 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.mv-boot-button:hover,
.mv-boot-button:focus-visible {
  transform: translateY(-1px);
  filter: none;brightness(1.18) ;
  box-shadow:
    0 0 46px rgba(148,245,8,0.48),
    -12px 0 36px rgba(255,255,255,0.22),
    12px 0 36px rgba(255,255,255,0.22),
    inset 0 0 28px rgba(255,255,255,0.12);
  outline: none;
}

.mv-boot-ignition .mv-boot-button,
.mv-boot-cascade .mv-boot-button,
.mv-boot-lockin .mv-boot-button,
.mv-boot-reveal .mv-boot-button {
  pointer-events: none;
  animation: bootButtonDissolve 540ms ease forwards;
}

.mv-boot-ignition .mv-boot-core {
  animation: bootIgnite 900ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.mv-boot-ignition .mv-boot-sweep,
.mv-boot-cascade .mv-boot-sweep {
  opacity: 1;
  animation: bootSweep 1200ms cubic-bezier(0.16, 1, 0.3, 1) infinite;
}

.mv-boot-cascade .mv-boot-atmosphere {
  animation: bootCascade 1.4s ease-in-out infinite alternate;
}

.mv-boot-cascade .mv-boot-phrases span:nth-child(1) { animation: bootPhrase 600ms ease 0ms forwards; }
.mv-boot-cascade .mv-boot-phrases span:nth-child(2) { animation: bootPhrase 600ms ease 420ms forwards; }
.mv-boot-cascade .mv-boot-phrases span:nth-child(3) { animation: bootPhrase 600ms ease 840ms forwards; }
.mv-boot-cascade .mv-boot-phrases span:nth-child(4) { animation: bootPhrase 600ms ease 1260ms forwards; }

.mv-boot-lockin .mv-boot-core {
  animation: bootLockin 1100ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.mv-boot-lockin .mv-boot-title {
  animation: bootTitleResolve 900ms ease forwards;
}

.mv-boot-reveal {
  pointer-events: none;
  animation: bootReveal 860ms ease forwards;
}

.mv-boot-reveal .mv-boot-core {
  animation: bootCoreExit 760ms ease forwards;
}

@keyframes bootAuraDrift {
  from { transform: rotate(0deg) scale(1); filter: blur(42px) ; }
  to { transform: rotate(360deg) scale(1.06); filter: blur(46px) ; }
}

@keyframes bootPrismShift {
  from { transform: translateX(-4%) scale(1.02); filter: none; }
  to { transform: translateX(4%) scale(1.08); filter: none; }
}

@keyframes bootRingA {
  to { transform: rotate(405deg) scaleX(0.72); }
}

@keyframes bootRingB {
  to { transform: rotate(348deg) scaleY(0.72); }
}

@keyframes bootButtonDissolve {
  0% { opacity: 1; transform: scale(1); filter: blur(0) brightness(1); }
  100% { opacity: 0; transform: scale(1.08); filter: blur(14px) brightness(2); }
}

@keyframes bootIgnite {
  0% { transform: scale(1); filter: drop-shadow(0 0 26px rgba(148,245,8,0.36)); }
  42% { transform: scale(1.22); filter: drop-shadow(-18px 0 28px rgba(255,255,255,0.8)) drop-shadow(18px 0 28px rgba(255,255,255,0.75)) brightness(1.7); }
  100% { transform: scale(1.04); filter: drop-shadow(0 0 48px rgba(148,245,8,0.7)); }
}

@keyframes bootSweep {
  from { transform: translateX(-40%) rotate(-14deg); }
  to { transform: translateX(40%) rotate(-14deg); }
}

@keyframes bootCascade {
  from { opacity: 0.72; filter: blur(0); }
  to { opacity: 1; filter: blur(2px); }
}

@keyframes bootPhrase {
  0% { opacity: 0; transform: translateY(12px); filter: blur(6px); }
  22%, 72% { opacity: 1; transform: translateY(0); filter: blur(0); }
  100% { opacity: 0; transform: translateY(-10px); filter: blur(6px); }
}

@keyframes bootLockin {
  from { transform: scale(1.04); }
  to { transform: scale(0.86); filter: drop-shadow(0 0 62px rgba(148,245,8,0.9)); }
}

@keyframes bootTitleResolve {
  from { letter-spacing: 0.34em; filter: blur(3px) ; }
  to { letter-spacing: 0.18em; filter: blur(0) ; }
}

@keyframes bootReveal {
  from { opacity: 1; filter: blur(0); }
  to { opacity: 0; filter: blur(12px); }
}

@keyframes bootCoreExit {
  to { transform: scale(1.18); opacity: 0; filter: blur(18px) brightness(1.8); }
}

@media (prefers-reduced-motion: reduce) {
  .mv-boot *,
  .mv-boot::before,
  .mv-boot::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
  }
}

/* MYRAVYRA responsive Patch 1: active / and /declaration layouts.
   No root transform, no fixed stage, no mobile-stage controller. */
.mv-page {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  width: 100%;
  overflow-x: clip;
  background:
    radial-gradient(circle at 50% 18%, rgba(148,245,8,0.18), transparent min(42rem, 70vw)),
    radial-gradient(circle at 12% 82%, rgba(255,255,255,0.12), transparent min(34rem, 70vw)),
    linear-gradient(135deg, #000 0%, #000 42%, #000 100%);
  color: var(--text);
  isolation: isolate;
}

.mv-page::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(90deg, rgba(148,245,8,0.08) 0 1px, transparent 1px 96px),
    repeating-linear-gradient(0deg, rgba(148,245,8,0.06) 0 1px, transparent 1px 72px);
  mask-image: radial-gradient(circle at center, rgba(0,0,0,0.9), transparent 72%);
  opacity: 0.3;
}

.mv-grid-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(148,245,8,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148,245,8,0.04) 1px, transparent 1px);
  background-size: 24px 24px;
  opacity: 0.34;
}

.mv-nav {
  position: relative;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: clamp(0.55rem, 2.2vw, 1.6rem);
  width: min(100% - 2rem, 72rem);
  margin: 0 auto;
  padding: clamp(0.9rem, 2vw, 1.35rem) 0;
  font-family: var(--f-body);
  font-size: clamp(0.68rem, 1.4vw, 0.78rem);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.mv-nav a {
  color: var(--volt);
  text-decoration: none;
  text-shadow: 0 0 9px rgba(148,245,8,0.55);
}

.mv-nav a:hover,
.mv-nav a:focus-visible {
  color: #fff;
  outline: none;
}

.mv-gate-hero {
  position: relative;
  z-index: 10;
  display: grid;
  place-items: center;
  align-content: center;
  gap: clamp(0.65rem, 1.6vw, 1rem);
  width: min(100% - 2rem, 82rem);
  min-height: calc(100dvh - 8rem);
  margin: 0 auto;
  padding: clamp(0.8rem, 2.5vw, 2rem) 0 clamp(1rem, 2.5vw, 2rem);
  text-align: center;
}

.mv-logo-wrap {
  width: 100%;
  max-width: 100%;
  max-height: clamp(10rem, 32vh, 22rem);
  overflow: hidden;
  display: flex;
  justify-content: center;
  pointer-events: none;
}

.mv-logo-wrap pre {
  max-width: 100%;
  font-size: clamp(3px, 0.45vw, 8px) !important;
}

.mv-kicker {
  font-family: var(--f-body);
  font-size: clamp(0.68rem, 1.2vw, 0.82rem);
  letter-spacing: 0.22em;
  line-height: 1.5;
  color: var(--volt);
  text-transform: uppercase;
  text-shadow: 0 0 8px rgba(148,245,8,0.55);
}

.mv-red {
  color: #fff;
  text-shadow: 0 0 10px rgba(255,255,255,0.55);
}

.mv-title {
  margin: 0;
  max-width: 13ch;
  font-family: var(--f-head);
  font-size: clamp(2.25rem, 7vw, 5.2rem);
  line-height: 0.95;
  letter-spacing: 0;
  color: #fff;
  text-shadow:
    -2px 0 #fff,
    2px 0 #fff,
    0 0 30px rgba(148,245,8,0.42);
}

.mv-title-glitch {
  animation: glitchBurst 0.36s steps(4);
}

.mv-subtitle {
  margin: 0;
  max-width: 46rem;
  font-family: var(--f-body);
  font-size: clamp(0.95rem, 2.2vw, 1.22rem);
  line-height: 1.7;
  color: var(--text);
}

.mv-cta-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(0.75rem, 2.2vw, 1.25rem);
  margin-top: clamp(0.4rem, 1.4vw, 0.8rem);
}

.mv-gate-lower {
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  width: min(100% - 2rem, 72rem);
  margin: 0 auto;
  padding-bottom: clamp(1rem, 3vw, 2rem);
  border: 1px solid rgba(148,245,8,0.35);
  background: rgba(148,245,8,0.18);
}

.mv-status-panel {
  min-width: 0;
  padding: clamp(0.85rem, 2vw, 1.15rem);
  background: rgba(0,0,0,0.82);
  font-family: var(--f-body);
}

.mv-status-panel span,
.mv-signer strong {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--volt);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.mv-status-panel strong {
  display: block;
  color: #fff;
  font-size: clamp(0.72rem, 1.4vw, 0.88rem);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.mv-cursor-glow {
  position: absolute;
  z-index: 2;
  width: 34rem;
  height: 34rem;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(148,245,8,0.16) 0%, transparent 63%);
  mix-blend-mode: screen;
  pointer-events: none;
}

.mv-ripple {
  position: absolute;
  z-index: 90;
  width: 7.5rem;
  height: 7.5rem;
  border: 2px solid var(--volt);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 20px var(--volt);
  pointer-events: none;
  animation: ringRipple 1.1s ease-out forwards;
}

.mv-declaration-page {
  overflow-y: auto;
}

.mv-declaration-page .mv-title {
  max-width: 100%;
  font-size: clamp(2.4rem, 8vw, 5.4rem);
}

.mv-declaration-shell {
  position: relative;
  z-index: 10;
  width: min(100% - 2rem, 76rem);
  margin: 0 auto;
  padding: clamp(1.5rem, 5vw, 4.5rem) 0 clamp(2rem, 6vw, 5rem);
}

.mv-declaration-head {
  margin-bottom: clamp(1.5rem, 4vw, 3rem);
}

.mv-declaration-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
  gap: clamp(1.1rem, 4vw, 3rem);
  align-items: start;
}

.mv-articles {
  display: grid;
  gap: 0.65rem;
}

.mv-article {
  display: grid;
  grid-template-columns: minmax(4.7rem, 0.2fr) minmax(0, 1fr);
  gap: clamp(0.6rem, 2vw, 1.2rem);
  align-items: start;
  padding: clamp(0.8rem, 2vw, 1rem);
  border-left: 2px solid rgba(255,255,255,0.78);
  background: rgba(0,0,0,0.5);
  font-family: var(--f-body);
}

.mv-article-hot {
  border-left-color: var(--volt);
  background: rgba(148,245,8,0.09);
  color: #fff;
}

.mv-article span {
  color: #fff;
  font-size: clamp(0.78rem, 1.6vw, 0.92rem);
  letter-spacing: 0.12em;
  white-space: nowrap;
}

.mv-article-hot span {
  color: var(--volt);
}

.mv-article p {
  margin: 0;
  color: inherit;
  font-size: clamp(0.88rem, 1.8vw, 1rem);
  line-height: 1.75;
}

.mv-signatories {
  border: 1px solid rgba(148,245,8,0.75);
  background: rgba(0,0,0,0.72);
  padding: clamp(0.95rem, 2.4vw, 1.25rem);
  font-family: var(--f-body);
}

.mv-signer {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.38rem 0;
  color: var(--text);
  font-size: clamp(0.78rem, 1.5vw, 0.9rem);
  line-height: 1.45;
}

.mv-signer span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.mv-signer strong {
  margin: 0;
  white-space: nowrap;
}

.mv-more {
  margin-top: 0.5rem;
  color: var(--text-soft);
}

@media (max-width: 760px) {
  .mv-page::before,
  .mv-cursor-glow {
    display: none;
  }

  .mv-nav {
    justify-content: flex-start;
    width: min(100% - 1.25rem, 72rem);
    gap: 0.75rem 1rem;
    font-size: 0.66rem;
  }

  .mv-gate-hero {
    place-items: start;
    text-align: left;
    width: min(100% - 1.25rem, 82rem);
    min-height: auto;
    padding-top: 1.25rem;
  }

  .mv-logo-wrap {
    justify-content: flex-start;
  }

  .mv-logo-wrap pre {
    font-size: clamp(3px, 1.08vw, 4px) !important;
  }

  .mv-title {
    max-width: 9ch;
    font-size: clamp(2.15rem, 15vw, 4rem);
  }

  .mv-declaration-page .mv-title {
    max-width: 100%;
    font-size: clamp(2.2rem, 12vw, 3.15rem);
  }

  .mv-cta-row {
    width: 100%;
    justify-content: flex-start;
  }

  .mv-gate-lower {
    grid-template-columns: 1fr;
    width: min(100% - 1.25rem, 72rem);
    margin-top: 1rem;
  }

  .mv-declaration-shell {
    width: min(100% - 1.25rem, 76rem);
    padding-top: 1.25rem;
  }

  .mv-declaration-grid {
    grid-template-columns: 1fr;
  }

  .mv-article {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .mv-signatories {
    width: 100%;
  }
}

/* Mobile + small-tablet baseline (<1440px). The fixed-1440x900 poster
   architecture is being removed. Per-page inline <style> on cathedral
   HTMLs sets #root to width:100%; min-height:100dvh; position:relative;
   overflow:hidden. This @media block only ensures body/html safely fill
   viewport and don't have unexpected horizontal scroll if any child
   overflows. No transforms. No scale-to-fit. No scale-to-cover.
   Internal cathedral-page absolute positions remain pixel-encoded for
   now (Patch 1B / Phase 2 — JSX merge with operator's WIP — will
   convert those to responsive percentages/clamp). */

@media (max-width: 1439px) {
  html, html body {
    margin: 0 !important;
    overflow-x: hidden !important;
  }
  html body {
    background: #000 !important;
    min-height: 100vh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
  }
}

/* Final visual identity overrides. Keep this last so older prototype rules cannot win. */
.mv-page {
  color: var(--text-main);
  background:
    radial-gradient(circle at calc(50% + (var(--mv-scroll, 0) * 18%)) 18%, rgba(148,245,8,0.13), transparent min(36rem, 70vw)),
    radial-gradient(circle at 78% 64%, rgba(255,255,255,0.07), transparent 24rem),
    radial-gradient(circle at 14% 74%, rgba(255,255,255,0.055), transparent 22rem),
    linear-gradient(180deg, var(--bg-0), var(--bg-1) 48%, #000);
}

.mv-boot,
.mv-boot-kicker,
.mv-boot-title,
.mv-boot-phrases,
.mv-boot-button,
.mv-nav,
.mv-title,
.mv-kicker {
  font-family: var(--f-head);
}

.mv-nav a {
  color: var(--text-main);
  opacity: 0.78;
  text-decoration: none;
  text-shadow: none;
}

.mv-nav a:hover,
.mv-nav a:focus-visible {
  color: var(--volt);
  opacity: 1;
  text-shadow: 0 0 18px rgba(148,245,8,0.42);
}

.mv-logo-wrap {
  position: relative;
  width: min(34rem, 76vw);
  min-height: clamp(14rem, 35vw, 28rem);
  display: grid;
  place-items: center;
  margin: clamp(0.8rem, 3vw, 2rem) auto;
}

.mv-logo-wrap pre {
  transform: none !important;
  white-space: pre;
}

.mv-brand-logo {
  display: block;
  width: min(18rem, 54vw);
  height: auto;
  aspect-ratio: 444 / 480;
  object-fit: contain;
}

.mv-brand-logo-primary {
  position: relative;
  z-index: 4;
  filter: drop-shadow(0 0 18px rgba(255,255,255,0.13)) drop-shadow(0 0 32px rgba(148,245,8,0.12));
}

.mv-brand-logo-aura {
  position: absolute;
  z-index: 3;
  opacity: 0.24;
  filter: blur(2px) drop-shadow(0 0 52px rgba(148,245,8,0.44));
  animation: mvLogoAura 6.5s ease-in-out infinite;
}

.mv-ascii-relic {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 1;
  width: min(58rem, 120vw);
  max-width: none;
  transform: translate(-50%, -50%);
  opacity: 0.3;
  overflow: hidden;
  mask-image: radial-gradient(circle, #000 0 32%, transparent 68%);
  pointer-events: none;
}

.mv-title {
  color: var(--text-main);
  font-size: clamp(3rem, 6vw, 5rem);
  line-height: 0.9;
  text-shadow:
    -1px 0 rgba(255,255,255,0.22),
    1px 0 rgba(255,255,255,0.2),
    0 0 34px rgba(148,245,8,0.18);
  transform: translateY(calc(var(--mv-scroll, 0) * -10px));
}

.mv-gate-hero {
  min-height: calc(100dvh - 5.5rem);
  gap: clamp(0.65rem, 1.7vh, 1.15rem);
  padding-top: clamp(1rem, 2.2vh, 1.6rem);
}

.mv-gate-hero .mv-subtitle {
  max-width: 52rem;
}

.mv-gate-page .mv-logo-wrap {
  min-height: clamp(10rem, 24vw, 20rem);
  margin: clamp(0.35rem, 1.4vw, 1rem) auto;
}

.mv-gate-page .mv-brand-logo {
  width: min(15rem, 44vw);
}

.mv-kicker,
.mv-status-panel span,
.mv-article code,
.mv-transmission-seal strong {
  color: var(--volt);
}

.mv-boot {
  background:
    radial-gradient(circle at 50% 42%, rgba(148,245,8,0.2), transparent 23rem),
    radial-gradient(circle at 34% 28%, rgba(255,255,255,0.13), transparent 19rem),
    radial-gradient(circle at 70% 68%, rgba(255,255,255,0.11), transparent 21rem),
    #000;
}

.mv-boot-logo {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 6;
  width: clamp(6rem, 15vw, 10rem);
  height: auto;
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 0 28px rgba(148,245,8,0.26));
}

.mv-boot-sigil {
  display: none;
}

.mv-boot-button {
  border-color: rgba(148,245,8,0.92);
  background:
    linear-gradient(90deg, rgba(148,245,8,0.12), rgba(255,255,255,0.035), rgba(148,245,8,0.1)),
    rgba(0,0,0,0.88);
  color: var(--text-main);
  box-shadow:
    0 0 44px rgba(148,245,8,0.24),
    inset 0 0 22px rgba(255,255,255,0.08);
}

.mv-boot-acquisition .mv-boot-sweep,
.mv-boot-bloom .mv-boot-sweep,
.mv-boot-acquisition .mv-boot-atmosphere,
.mv-boot-bloom .mv-boot-atmosphere {
  animation: bootSweep 1080ms ease-in-out infinite alternate;
}

.mv-boot-acquisition .mv-boot-phrases span:nth-child(1) { animation: bootPhrase 520ms ease 0ms forwards; }
.mv-boot-acquisition .mv-boot-phrases span:nth-child(2) { animation: bootPhrase 520ms ease 360ms forwards; }
.mv-boot-bloom .mv-boot-phrases span:nth-child(3) { animation: bootPhrase 520ms ease 0ms forwards; }
.mv-boot-bloom .mv-boot-phrases span:nth-child(4) { animation: bootPhrase 520ms ease 360ms forwards; }
.mv-boot-bloom .mv-boot-logo {
  animation: mvLogoBloom 940ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.mv-ritual-rail {
  position: fixed;
  left: clamp(0.65rem, 2vw, 1.6rem);
  top: 50%;
  z-index: 40;
  display: grid;
  gap: 0.62rem;
  transform: translateY(-50%);
  font-family: var(--f-body);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.44);
  pointer-events: none;
}

.mv-ritual-rail span {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.mv-ritual-rail .is-active {
  color: var(--volt);
  text-shadow: 0 0 18px rgba(148,245,8,0.5);
}

.mv-declaration-mark {
  width: clamp(4rem, 10vw, 7rem);
  height: auto;
  margin-bottom: clamp(1rem, 2vw, 1.6rem);
  filter: drop-shadow(0 0 22px rgba(148,245,8,0.22));
}

.mv-article:hover,
.mv-article:focus-within,
.mv-article-hot {
  border-left-color: var(--volt);
  background: linear-gradient(90deg, rgba(148,245,8,0.1), rgba(255,255,255,0.035));
}

.mv-transmission-seal {
  position: relative;
  z-index: 10;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  width: min(100% - 2rem, 72rem);
  margin: clamp(1.5rem, 5vw, 4rem) auto 0;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--text-dim);
  font: 600 0.72rem/1.3 var(--f-body);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

@keyframes mvLogoAura {
  0%, 100% { opacity: 0.18; transform: scale(1); }
  50% { opacity: 0.36; transform: scale(1.035); }
}

@keyframes mvLogoBloom {
  0% { filter: drop-shadow(0 0 18px rgba(148,245,8,0.24)); }
  60% { filter: drop-shadow(0 0 54px rgba(148,245,8,0.72)) drop-shadow(0 0 18px rgba(255,255,255,0.36)); }
  100% { filter: drop-shadow(0 0 30px rgba(148,245,8,0.38)); }
}

@media (max-width: 720px) {
  .mv-ritual-rail {
    display: none;
  }

  .mv-brand-logo {
    width: min(12rem, 48vw);
  }

  .mv-ascii-relic {
    width: 150vw;
    opacity: 0.2;
  }

  .mv-transmission-seal {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}
/* Patch 2 EOF cascade correction. */
:root { --text-soft: #fff; }
.mv-more,
.mv-signer,
.mv-signer span,
.mv-signer strong {
  color: #fff;
}

/* Patch 3 experience layer: restraint, motion polish, no poster architecture. */
:root {
  --mv-black: #000;
  --mv-white: #fff;
  --mv-volt: #94F508;
}

html.mv-route-exiting .mv-page {
  opacity: 0;
  transform: translateY(-10px);
  filter: blur(8px);
  transition: opacity 220ms ease, transform 220ms ease, filter 220ms ease;
}

.mv-page {
  background:
    radial-gradient(circle at calc(50% + (var(--mv-scroll, 0) * 12%)) 8%, rgba(148,245,8,0.12), transparent min(46rem, 76vw)),
    radial-gradient(circle at 84% 74%, rgba(255,255,255,0.055), transparent min(38rem, 70vw)),
    linear-gradient(135deg, #000 0%, #000 100%) !important;
}

.mv-experience-field {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
  opacity: 0.82;
  contain: strict;
}

.mv-experience-field::before,
.mv-experience-field::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 0 49.7%, rgba(148,245,8,0.08) 50%, transparent 50.3%),
    linear-gradient(0deg, transparent 0 49.7%, rgba(255,255,255,0.045) 50%, transparent 50.3%);
  background-size: clamp(5rem, 9vw, 11rem) clamp(4rem, 8vw, 9rem);
  opacity: 0.42;
  mask-image: radial-gradient(circle at 50% 42%, #000 0 42%, transparent 78%);
  animation: mvGridPulse 11s ease-in-out infinite;
}

.mv-experience-field::after {
  background:
    repeating-linear-gradient(115deg, transparent 0 21px, rgba(148,245,8,0.04) 22px, transparent 23px),
    radial-gradient(circle at 30% 28%, rgba(148,245,8,0.09), transparent 22rem);
  background-size: auto;
  opacity: 0.56;
  animation: mvSignalDrift 18s linear infinite;
}

.mv-field-orbit,
.mv-field-scan,
.mv-field-dust {
  position: absolute;
  pointer-events: none;
}

.mv-field-orbit {
  width: min(74rem, 110vw);
  aspect-ratio: 1;
  border: 1px solid rgba(148,245,8,0.11);
  border-radius: 50%;
  box-shadow: inset 0 0 70px rgba(148,245,8,0.04), 0 0 86px rgba(148,245,8,0.05);
  opacity: 0.72;
}

.mv-field-orbit-a {
  left: 50%;
  top: 38%;
  transform: translate(-50%, -50%) rotate(8deg) scaleX(1.28);
  animation: mvOrbitBreathe 13s ease-in-out infinite;
}

.mv-field-orbit-b {
  right: -20%;
  bottom: -34%;
  transform: rotate(-18deg) scaleX(0.78);
  opacity: 0.35;
  animation: mvOrbitBreathe 17s ease-in-out infinite reverse;
}

.mv-field-scan {
  inset: -18% -30%;
  background: linear-gradient(102deg, transparent 34%, rgba(148,245,8,0.09), rgba(255,255,255,0.08), transparent 66%);
  opacity: 0.18;
  transform: translateX(-30%) rotate(-8deg);
  animation: mvFieldScan 9s cubic-bezier(0.16, 1, 0.3, 1) infinite;
}

.mv-field-dust {
  inset: 0;
  background-image:
    radial-gradient(circle, rgba(255,255,255,0.34) 0 1px, transparent 1.5px),
    radial-gradient(circle, rgba(148,245,8,0.28) 0 1px, transparent 1.4px);
  background-size: 41px 41px, 67px 67px;
  opacity: 0.12;
  mask-image: linear-gradient(to bottom, transparent, #000 16%, #000 78%, transparent);
  animation: mvDustFloat 22s linear infinite;
}

.mv-field-dust-b {
  transform: translateY(11%);
  opacity: 0.07;
  animation-duration: 31s;
  animation-direction: reverse;
}

.mv-grid-bg {
  opacity: 0.17 !important;
  background-size: clamp(3rem, 5vw, 6rem) clamp(3rem, 5vw, 6rem) !important;
}

.mv-logo-wrap {
  overflow: visible !important;
  max-height: none !important;
  isolation: isolate;
}

.mv-logo-wrap::before,
.mv-logo-wrap::after {
  content: "";
  position: absolute;
  inset: 8% 12%;
  z-index: 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(148,245,8,0.22), transparent 62%);
  filter: blur(34px);
  opacity: 0.75;
  transform: translateZ(0);
  animation: mvLogoBreath 7s ease-in-out infinite;
}

.mv-logo-wrap::after {
  inset: 18% 4%;
  background: radial-gradient(circle, rgba(255,255,255,0.12), transparent 68%);
  filter: blur(52px);
  opacity: 0.56;
  animation-delay: -2.6s;
}

.mv-brand-logo,
.mv-brand-logo-aura,
.mv-boot-logo,
.mv-route-mark,
.mv-declaration-mark,
.mv-map-logo {
  filter: drop-shadow(0 0 24px rgba(148,245,8,0.28)) !important;
}

.mv-brand-logo {
  position: relative;
  z-index: 3;
  transition: transform 420ms cubic-bezier(0.16, 1, 0.3, 1), filter 420ms ease;
}

.mv-gate-hero:hover .mv-brand-logo-primary {
  transform: translateY(-2px) scale(1.015);
}

.mv-ascii-relic {
  z-index: 1;
  opacity: 0.12 !important;
  mix-blend-mode: screen;
}

.mv-title,
.mv-route-title {
  text-shadow: 0 0 24px rgba(148,245,8,0.22), 0 1px 0 rgba(255,255,255,0.22) !important;
}

.mv-title {
  transition: letter-spacing 460ms ease, transform 460ms ease, text-shadow 460ms ease;
}

.mv-gate-hero:hover .mv-title {
  transform: translateY(-1px);
  text-shadow: 0 0 34px rgba(148,245,8,0.32), 0 1px 0 rgba(255,255,255,0.28) !important;
}

.mv-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 720ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 720ms cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--mv-reveal-index, 0) * 42ms);
}

.mv-visible,
.mv-reveal.mv-visible {
  opacity: 1;
  transform: translateY(0);
}

.mv-nav a,
.mv-action,
.mv-boot-button,
.mv-node,
.mv-card {
  transition:
    color 220ms ease,
    border-color 220ms ease,
    background-color 220ms ease,
    box-shadow 260ms ease,
    transform 260ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 260ms ease;
}

.mv-nav a:hover,
.mv-nav a:focus-visible,
.mv-action:hover,
.mv-action:focus-visible,
.mv-boot-button:hover,
.mv-boot-button:focus-visible {
  transform: translateY(-2px);
}

.mv-card:hover,
.mv-card:focus-within,
.mv-status-panel:hover,
.mv-article:hover {
  border-color: rgba(148,245,8,0.48);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.1), 0 22px 70px rgba(148,245,8,0.08);
}

.mv-transmission-seal {
  position: relative;
  overflow: hidden;
}

.mv-transmission-seal::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(148,245,8,0.14), transparent);
  transform: translateX(-100%);
  animation: mvSealSweep 8s ease-in-out infinite;
}

.mv-republic-layout {
  align-items: stretch;
}

.mv-network-map {
  min-height: clamp(33rem, 54vw, 48rem) !important;
  border-color: rgba(148,245,8,0.24) !important;
  background:
    radial-gradient(circle at 50% 50%, rgba(148,245,8,0.12), transparent 18rem),
    linear-gradient(135deg, rgba(255,255,255,0.045), transparent 30%),
    rgba(0,0,0,0.72) !important;
  overflow: hidden;
}

.mv-network-map::before {
  inset: 12% !important;
  border-color: rgba(148,245,8,0.2) !important;
  animation: mvTopologyRing 18s linear infinite;
}

.mv-network-map::after {
  inset: 25% !important;
  animation: mvTopologyRing 26s linear infinite reverse;
}

.mv-network-lines {
  position: absolute;
  inset: 7%;
  width: 86%;
  height: 86%;
  z-index: 2;
  overflow: visible;
}

.mv-network-lines line {
  stroke: rgba(148,245,8,0.22);
  stroke-width: 0.24;
  vector-effect: non-scaling-stroke;
  stroke-dasharray: 6 10;
  animation: mvLinePulse 7s ease-in-out infinite;
}

.mv-map-core {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 6;
  width: clamp(8.5rem, 17vw, 14rem);
  min-height: clamp(8.5rem, 17vw, 14rem);
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0.35rem;
  padding: 1rem;
  border: 1px solid rgba(148,245,8,0.5);
  border-radius: 50%;
  background: rgba(0,0,0,0.82);
  color: #fff;
  text-align: center;
  box-shadow: 0 0 52px rgba(148,245,8,0.18), inset 0 0 28px rgba(148,245,8,0.08);
  animation: mvCoreBreathe 6s ease-in-out infinite;
}

.mv-map-logo {
  width: clamp(3.8rem, 8vw, 6rem);
  height: auto;
}

.mv-map-core strong {
  font-family: var(--f-head);
  font-size: clamp(0.9rem, 1.8vw, 1.2rem);
  letter-spacing: 0.16em;
}

.mv-map-core span {
  font-family: var(--f-body);
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  color: rgba(255,255,255,0.72);
}

.mv-node {
  appearance: none;
  position: absolute;
  left: var(--node-x);
  top: var(--node-y);
  z-index: 8;
  transform: translate(-50%, -50%);
  display: grid;
  min-width: clamp(6.6rem, 10vw, 9rem);
  gap: 0.18rem;
  padding: 0.55rem 0.72rem;
  border: 1px solid rgba(148,245,8,0.34);
  background: rgba(0,0,0,0.84);
  color: #fff;
  font-family: var(--f-body);
  text-align: left;
  cursor: pointer;
  box-shadow: 0 0 28px rgba(0,0,0,0.44);
}

.mv-node span {
  color: #fff;
  font-size: clamp(0.72rem, 1.1vw, 0.84rem);
  letter-spacing: 0.14em;
}

.mv-node em {
  color: #94F508;
  font-style: normal;
  font-size: 0.58rem;
  letter-spacing: 0.18em;
}

.mv-node::before {
  content: "";
  position: absolute;
  left: -0.42rem;
  top: 50%;
  width: 0.42rem;
  height: 1px;
  background: #94F508;
  opacity: 0.6;
}

.mv-node:hover,
.mv-node:focus-visible {
  z-index: 12;
  transform: translate(-50%, -50%) scale(1.04);
  outline: none;
  border-color: rgba(148,245,8,0.88);
  box-shadow: 0 0 34px rgba(148,245,8,0.22), 0 18px 70px rgba(0,0,0,0.42);
}

.mv-node:hover ~ .mv-network-lines line,
.mv-node:focus-visible ~ .mv-network-lines line {
  stroke: rgba(148,245,8,0.5);
}

@keyframes mvGridPulse {
  0%, 100% { opacity: 0.32; transform: translateY(0); }
  50% { opacity: 0.55; transform: translateY(-0.5rem); }
}

@keyframes mvSignalDrift {
  from { transform: translate3d(-2%, -1%, 0); }
  to { transform: translate3d(2%, 1%, 0); }
}

@keyframes mvOrbitBreathe {
  0%, 100% { opacity: 0.42; filter: blur(0); }
  50% { opacity: 0.78; filter: blur(1px); }
}

@keyframes mvFieldScan {
  0%, 72%, 100% { opacity: 0; transform: translateX(-34%) rotate(-8deg); }
  12%, 44% { opacity: 0.2; }
  55% { opacity: 0; transform: translateX(34%) rotate(-8deg); }
}

@keyframes mvDustFloat {
  from { background-position: 0 0, 0 0; }
  to { background-position: 80px -120px, -90px 120px; }
}

@keyframes mvLogoBreath {
  0%, 100% { opacity: 0.5; transform: scale(0.94); }
  50% { opacity: 0.82; transform: scale(1.04); }
}

@keyframes mvSealSweep {
  0%, 68%, 100% { transform: translateX(-110%); }
  82% { transform: translateX(110%); }
}

@keyframes mvTopologyRing {
  to { transform: rotate(360deg); }
}

@keyframes mvLinePulse {
  0%, 100% { opacity: 0.28; stroke-dashoffset: 0; }
  50% { opacity: 0.72; stroke-dashoffset: -16; }
}

@keyframes mvCoreBreathe {
  0%, 100% { box-shadow: 0 0 44px rgba(148,245,8,0.16), inset 0 0 24px rgba(148,245,8,0.08); }
  50% { box-shadow: 0 0 70px rgba(148,245,8,0.24), inset 0 0 34px rgba(148,245,8,0.12); }
}

@media (max-width: 900px) {
  .mv-experience-field {
    opacity: 0.58;
  }

  .mv-field-orbit-b,
  .mv-field-dust-b {
    display: none;
  }

  .mv-gate-hero {
    min-height: auto !important;
    padding-bottom: clamp(2rem, 9vw, 4rem) !important;
  }

  .mv-logo-wrap::before,
  .mv-logo-wrap::after {
    inset: 4% 0;
    filter: blur(28px);
  }

  .mv-network-map {
    min-height: auto !important;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
    padding: clamp(1rem, 5vw, 1.4rem) !important;
  }

  .mv-network-lines,
  .mv-network-map::before,
  .mv-network-map::after {
    display: none;
  }

  .mv-map-core,
  .mv-node {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    width: 100%;
    min-width: 0;
    min-height: 0;
    border-radius: 0;
  }

  .mv-map-core {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
      "logo title"
      "logo meta";
    justify-items: start;
    place-items: center start;
    text-align: left;
  }

  .mv-map-logo { grid-area: logo; width: 3.5rem; }
  .mv-map-core strong { grid-area: title; }
  .mv-map-core span { grid-area: meta; }

  .mv-node:hover,
  .mv-node:focus-visible {
    transform: translateX(4px);
  }

  .mv-node::before {
    left: 0;
    top: 0;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mv-experience-field,
  .mv-logo-wrap::before,
  .mv-logo-wrap::after,
  .mv-network-lines line,
  .mv-map-core,
  .mv-transmission-seal::before {
    animation: none !important;
  }

  .mv-reveal {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
}

/* Patch 4 Republic intelligence upgrade: Canvas concept adapted to MYRAVYRA production language. */
.mv-republic-page .mv-route-shell {
  gap: clamp(1.2rem, 3vw, 2.5rem);
}

.mv-republic-status-strip {
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid rgba(148,245,8,0.18);
  background: rgba(148,245,8,0.16);
  box-shadow: 0 22px 80px rgba(0,0,0,0.34);
}

.mv-republic-status-strip div {
  min-width: 0;
  padding: clamp(0.78rem, 1.8vw, 1.05rem);
  background: rgba(0,0,0,0.84);
}

.mv-republic-status-strip span,
.mv-detail-row span {
  display: block;
  color: rgba(255,255,255,0.48);
  font-family: var(--f-body);
  font-size: 0.58rem;
  letter-spacing: 0.26em;
  line-height: 1.35;
  text-transform: uppercase;
}

.mv-republic-status-strip strong {
  display: block;
  margin-top: 0.35rem;
  color: #fff;
  font-family: var(--f-head);
  font-size: clamp(0.82rem, 1.35vw, 1.05rem);
  letter-spacing: 0.04em;
  line-height: 1.25;
}

.mv-republic-page .mv-republic-layout {
  grid-template-columns: minmax(0, 1.45fr) minmax(20rem, 0.75fr);
  gap: clamp(1rem, 2.2vw, 2rem);
}

.mv-republic-page .mv-network-map {
  min-height: clamp(40rem, 60vw, 52rem) !important;
  background:
    radial-gradient(circle at 50% 48%, rgba(148,245,8,0.14), transparent 16rem),
    linear-gradient(135deg, rgba(255,255,255,0.055), transparent 28%),
    rgba(0,0,0,0.76) !important;
}

.mv-republic-page .mv-network-map::before {
  inset: 8% !important;
  border-color: rgba(148,245,8,0.16) !important;
}

.mv-republic-page .mv-network-map::after {
  inset: 24% !important;
  border-color: rgba(255,255,255,0.18) !important;
}

.mv-network-orbit {
  fill: none;
  stroke: rgba(255,255,255,0.16);
  stroke-width: 0.25;
  stroke-dasharray: 1 4;
  vector-effect: non-scaling-stroke;
}

.mv-network-orbit-wide {
  stroke: rgba(148,245,8,0.18);
  stroke-dasharray: 2 7;
}

.mv-network-lines line {
  stroke-dasharray: 5 10;
  stroke-width: 0.32;
}

.mv-network-lines .mv-link-active {
  stroke: rgba(148,245,8,0.72);
  stroke-width: 0.62;
  filter: drop-shadow(0 0 5px rgba(148,245,8,0.5));
}

.mv-map-core {
  appearance: none;
  cursor: pointer;
  color: #fff;
}

.mv-map-core-active,
.mv-map-core:hover,
.mv-map-core:focus-visible {
  outline: none;
  border-color: rgba(148,245,8,0.9);
  box-shadow: 0 0 78px rgba(148,245,8,0.28), inset 0 0 32px rgba(148,245,8,0.1);
}

.mv-republic-page .mv-map-label {
  z-index: 12;
}

.mv-republic-page .mv-node {
  min-width: clamp(7rem, 9vw, 9.5rem);
  padding: 0.58rem 0.75rem;
}

.mv-node-active {
  border-color: rgba(148,245,8,0.92) !important;
  background: rgba(148,245,8,0.105) !important;
  box-shadow: 0 0 34px rgba(148,245,8,0.22), 0 22px 70px rgba(0,0,0,0.42) !important;
}

.mv-node-active span {
  color: #94F508;
}

.mv-republic-detail {
  position: sticky;
  top: 1.25rem;
  align-self: start;
  display: grid;
  gap: clamp(0.8rem, 1.8vw, 1.05rem);
  padding: clamp(1.05rem, 2.4vw, 1.5rem);
  border: 1px solid rgba(148,245,8,0.24);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.035), transparent 34%),
    rgba(0,0,0,0.78);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 28px 90px rgba(0,0,0,0.42);
}

.mv-republic-detail h2 {
  margin: 0;
  color: #fff;
  font-family: var(--f-head);
  font-size: clamp(2.1rem, 4vw, 4rem);
  line-height: 0.92;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.mv-detail-row {
  display: grid;
  grid-template-columns: minmax(7.8rem, 0.35fr) minmax(0, 1fr);
  gap: clamp(0.7rem, 1.8vw, 1rem);
  padding-top: 0.84rem;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.mv-detail-row p {
  margin: 0;
  color: rgba(255,255,255,0.78);
  font-family: var(--f-body);
  font-size: clamp(0.86rem, 1.4vw, 0.98rem);
  line-height: 1.65;
}

.mv-principles-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(0.75rem, 1.8vw, 1.1rem);
}

.mv-principle-card {
  min-height: 100%;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04), transparent 44%),
    rgba(0,0,0,0.72);
}

.mv-principle-card::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin-top: 1rem;
  background: linear-gradient(90deg, rgba(148,245,8,0.5), transparent);
  opacity: 0.38;
}

@media (max-width: 1120px) {
  .mv-republic-page .mv-republic-layout {
    grid-template-columns: 1fr;
  }

  .mv-republic-detail {
    position: relative;
    top: auto;
  }

  .mv-principles-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .mv-republic-status-strip {
    grid-template-columns: 1fr;
  }

  .mv-republic-page .mv-network-map {
    min-height: auto !important;
  }

  .mv-republic-page .mv-map-core {
    border-radius: 0;
  }

  .mv-republic-page .mv-node {
    min-width: 0;
    width: 100%;
  }

  .mv-node-active {
    transform: translateX(4px) !important;
  }

.mv-detail-row {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .mv-principles-grid {
    grid-template-columns: 1fr;
  }
}

/* Patch 4 detail-panel readability correction. */
.mv-republic-detail h2 {
  font-size: clamp(1.85rem, 3.2vw, 3.15rem);
  overflow-wrap: normal;
  word-break: normal;
}

.mv-republic-detail .mv-detail-row {
  grid-template-columns: 1fr;
  gap: 0.38rem;
}

.mv-republic-detail .mv-detail-row p {
  max-width: 100%;
  overflow-wrap: normal;
}

.mv-republic-detail .mv-detail-row:nth-child(6) p,
.mv-republic-detail .mv-detail-row:nth-child(8) p {
  overflow-wrap: anywhere;
}

/* Canvas blueprint integration: shared chrome and institutional route systems. */
.mv-route-chrome {
  position: relative;
  z-index: 12;
  display: flex;
  width: min(100% - clamp(2rem, 7vw, 7rem), 116rem);
  margin: 0 auto clamp(0.9rem, 2vw, 1.4rem);
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid rgba(148,245,8,0.16);
  padding-top: 0.72rem;
  color: rgba(255,255,255,0.46);
  font-family: var(--f-body);
  font-size: clamp(0.58rem, 0.8vw, 0.68rem);
  letter-spacing: 0.22em;
  line-height: 1.35;
  text-transform: uppercase;
}

.mv-route-chrome strong {
  color: rgba(148,245,8,0.72);
  font-weight: 500;
}

.mv-nav a {
  position: relative;
}

.mv-nav a::after {
  position: absolute;
  right: 0;
  bottom: -0.42rem;
  left: 0;
  height: 1px;
  background: #94F508;
  content: "";
  opacity: 0;
  transform: scaleX(0.36);
  transform-origin: center;
  transition: opacity 220ms ease, transform 220ms ease;
}

.mv-nav a:hover::after,
.mv-nav a:focus-visible::after,
.mv-nav a.mv-nav-active::after {
  opacity: 0.86;
  transform: scaleX(1);
}

.mv-nav a.mv-nav-active {
  color: #94F508;
  opacity: 1;
}

button.mv-card,
.mv-article {
  appearance: none;
  border-radius: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.mv-card:focus-visible,
.mv-book-card:focus-visible,
.mv-article:focus-visible,
.mv-map-core:focus-visible,
.mv-node:focus-visible {
  outline: 2px solid rgba(148,245,8,0.82);
  outline-offset: 3px;
}

.mv-card-active {
  border-color: rgba(148,245,8,0.62) !important;
  background:
    linear-gradient(180deg, rgba(148,245,8,0.09), transparent 54%),
    rgba(0,0,0,0.78) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 0 44px rgba(148,245,8,0.12),
    0 22px 84px rgba(0,0,0,0.36) !important;
}

.mv-blueprint-grid {
  display: grid;
  gap: clamp(1rem, 2.2vw, 1.8rem);
}

.mv-signal-grid,
.mv-research-feature {
  grid-template-columns: minmax(0, 1fr) minmax(19rem, 0.42fr);
  align-items: stretch;
}

.mv-dispatch-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(0.7rem, 1.6vw, 1rem);
}

.mv-dispatch {
  display: flex;
  min-height: clamp(13rem, 20vw, 18rem);
  flex-direction: column;
}

.mv-dispatch strong {
  display: block;
  margin-top: clamp(1.1rem, 2vw, 1.6rem);
  color: #fff;
  font-family: var(--f-head);
  font-size: clamp(1.45rem, 2.8vw, 2.45rem);
  letter-spacing: 0;
  line-height: 0.95;
}

.mv-dispatch p {
  margin-top: auto;
}

.mv-section-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding-bottom: clamp(0.8rem, 1.8vw, 1.1rem);
}

.mv-section-head span,
.mv-canon-excerpt .mv-spec-label span {
  color: #94F508;
}

.mv-section-head span {
  font-family: var(--f-body);
  font-size: clamp(0.6rem, 0.85vw, 0.72rem);
  letter-spacing: 0.24em;
  line-height: 1.35;
  text-transform: uppercase;
}

.mv-section-head strong {
  color: rgba(255,255,255,0.62);
  font-family: var(--f-body);
  font-size: clamp(0.58rem, 0.78vw, 0.68rem);
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1.35;
  text-align: right;
  text-transform: uppercase;
}

.mv-archive-panel,
.mv-kernel-panel {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(148,245,8,0.2);
  padding: clamp(1rem, 2.4vw, 1.5rem);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.035), transparent 34%),
    rgba(0,0,0,0.78);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 28px 90px rgba(0,0,0,0.36);
}

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

.mv-archive-table {
  width: 100%;
  min-width: 42rem;
  border-collapse: collapse;
  font-family: var(--f-body);
}

.mv-archive-table th,
.mv-archive-table td {
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding: 0.95rem 0.72rem;
  text-align: left;
  vertical-align: top;
}

.mv-archive-table th {
  color: rgba(255,255,255,0.44);
  font-size: 0.6rem;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.mv-archive-table td {
  color: rgba(255,255,255,0.72);
  font-size: clamp(0.76rem, 1vw, 0.86rem);
  line-height: 1.45;
}

.mv-archive-table td:last-child {
  color: #94F508;
}

.mv-canon-excerpt {
  text-align: center;
}

.mv-canon-excerpt p {
  max-width: 46rem;
  margin: 1rem auto 0;
}

.mv-book-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(0.7rem, 1.4vw, 1rem);
}

.mv-book-card {
  min-height: clamp(14rem, 20vw, 18rem);
  text-align: center;
}

.mv-book-card strong {
  display: block;
  margin-top: 1.1rem;
  color: #fff;
  font-family: var(--f-head);
  font-size: clamp(1.35rem, 2.3vw, 2.1rem);
  letter-spacing: 0;
  line-height: 0.94;
}

.mv-kernel-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(148,245,8,0.16);
  background: rgba(148,245,8,0.14);
}

.mv-kernel-grid > div {
  min-width: 0;
  padding: clamp(0.9rem, 2vw, 1.2rem);
  background: rgba(0,0,0,0.84);
}

.mv-kernel-grid span {
  display: block;
  color: #94F508;
  font-family: var(--f-body);
  font-size: 0.58rem;
  letter-spacing: 0.24em;
  line-height: 1.35;
  text-transform: uppercase;
}

.mv-kernel-grid strong {
  display: block;
  margin-top: 0.52rem;
  color: #fff;
  font-family: var(--f-head);
  font-size: clamp(0.95rem, 1.5vw, 1.2rem);
  letter-spacing: 0.02em;
  line-height: 1.1;
}

.mv-kernel-grid p {
  margin: 0.62rem 0 0;
  color: rgba(255,255,255,0.58);
  font-family: var(--f-body);
  font-size: clamp(0.7rem, 1vw, 0.82rem);
  line-height: 1.55;
}

.mv-card-meta {
  display: flex;
  margin-top: clamp(1rem, 2vw, 1.25rem);
  justify-content: space-between;
  gap: 0.8rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 0.86rem;
}

.mv-card-meta span,
.mv-card-meta em {
  font-family: var(--f-body);
  font-size: 0.6rem;
  font-style: normal;
  letter-spacing: 0.2em;
  line-height: 1.35;
  text-transform: uppercase;
}

.mv-card-meta span {
  color: rgba(255,255,255,0.5);
}

.mv-card-meta em {
  color: #94F508;
}

.mv-research-feature {
  display: grid;
  gap: clamp(1rem, 2.2vw, 1.8rem);
}

.mv-category-grid button,
.mv-document-card,
.mv-document-row,
.mv-document-link {
  color: inherit;
  font: inherit;
  text-decoration: none;
}

.mv-category-grid button {
  width: 100%;
  cursor: pointer;
  text-align: left;
}

.mv-document-link {
  display: inline-flex;
  width: fit-content;
  margin-top: clamp(1.1rem, 2vw, 1.45rem);
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(148,245,8,0.5);
  padding: 0.78rem 1.55rem;
  border-radius: 999px;
  color: #94F508;
  font-family: var(--f-head);
  font-size: clamp(0.74rem, 1vw, 0.88rem);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background:
    radial-gradient(circle at 50% 0%, rgba(148,245,8,0.13), transparent 64%),
    rgba(0,0,0,0.72);
  box-shadow: 0 0 24px rgba(148,245,8,0.14);
}

.mv-document-link:hover,
.mv-document-link:focus-visible {
  color: #fff;
  border-color: #94F508;
  box-shadow: 0 0 30px rgba(148,245,8,0.28);
}

.mv-declaration-attribution {
  max-width: 48rem;
  margin: clamp(0.85rem, 2vw, 1.15rem) auto 0;
  color: rgba(255,255,255,0.66);
  font-family: var(--f-body);
  font-size: clamp(0.76rem, 1vw, 0.9rem);
  line-height: 1.55;
}

.mv-document-library {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.85rem, 2vw, 1.2rem);
}

.mv-document-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}

.mv-document-card p {
  flex: 1;
}

.mv-document-row {
  transition: border-color 180ms ease, color 180ms ease;
}

.mv-document-row:hover,
.mv-document-row:focus-visible {
  border-color: rgba(148,245,8,0.42);
}

.mv-research-feature h2 {
  margin: clamp(1rem, 2vw, 1.35rem) 0 0;
  color: #fff;
  font-family: var(--f-head);
  font-size: clamp(2.4rem, 5vw, 5.4rem);
  letter-spacing: 0;
  line-height: 0.9;
}

.mv-research-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.mv-timeline-row {
  display: grid;
  grid-template-columns: 7.2rem minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: baseline;
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 0.95rem 0;
  font-family: var(--f-body);
}

.mv-timeline-row:first-of-type {
  margin-top: 0.85rem;
}

.mv-timeline-row span {
  color: rgba(255,255,255,0.45);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
}

.mv-timeline-row strong {
  color: #fff;
  font-size: clamp(0.78rem, 1.05vw, 0.9rem);
  font-weight: 500;
  line-height: 1.35;
}

.mv-timeline-row em {
  color: #94F508;
  font-size: 0.68rem;
  font-style: normal;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.mv-article {
  width: 100%;
  border: 1px solid rgba(148,245,8,0.18);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.035), transparent 34%),
    rgba(0,0,0,0.72);
}

.mv-article strong {
  display: block;
  margin-top: 0.95rem;
  color: #fff;
  font-family: var(--f-head);
  font-size: clamp(1.08rem, 1.8vw, 1.32rem);
  letter-spacing: 0.01em;
  line-height: 1.08;
}

.mv-declaration-focus {
  display: grid;
  gap: 0.38rem;
  margin: clamp(0.8rem, 1.6vw, 1.1rem) 0;
  border: 1px solid rgba(148,245,8,0.22);
  padding: clamp(0.85rem, 1.8vw, 1.08rem);
  background: rgba(148,245,8,0.07);
}

.mv-declaration-focus span {
  color: rgba(255,255,255,0.48);
  font-family: var(--f-body);
  font-size: 0.58rem;
  letter-spacing: 0.24em;
  line-height: 1.35;
  text-transform: uppercase;
}

.mv-declaration-focus strong {
  color: #94F508;
  font-family: var(--f-head);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.08;
}

.mv-signer span em {
  display: block;
  margin-top: 0.22rem;
  color: rgba(255,255,255,0.48);
  font-family: var(--f-body);
  font-size: 0.62rem;
  font-style: normal;
  letter-spacing: 0.12em;
  line-height: 1.35;
  text-transform: uppercase;
}

/* Declaration legal-record correction: article rows stay archival, not soft app bubbles. */
.mv-declaration-page .mv-article {
  border-radius: clamp(0.35rem, 0.8vw, 0.7rem) !important;
  background:
    linear-gradient(90deg, rgba(148,245,8,0.075), transparent 0.32rem),
    linear-gradient(180deg, rgba(255,255,255,0.035), transparent 58%),
    rgba(0,0,0,0.82) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.07);
}

.mv-declaration-page .mv-article-hot {
  border-color: rgba(148,245,8,0.66) !important;
  background:
    linear-gradient(90deg, rgba(148,245,8,0.24), transparent 0.38rem),
    linear-gradient(180deg, rgba(148,245,8,0.08), transparent 62%),
    rgba(0,0,0,0.86) !important;
  box-shadow:
    inset 0 0 0 1px rgba(148,245,8,0.28),
    0 0 42px rgba(148,245,8,0.12) !important;
}

@media (max-width: 1180px) {
  .mv-signal-grid,
  .mv-research-feature {
    grid-template-columns: 1fr;
  }

  .mv-dispatch-grid,
  .mv-book-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mv-kernel-grid,
  .mv-research-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mv-document-library {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .mv-route-chrome {
    flex-direction: column;
    width: min(100% - 2rem, 116rem);
    gap: 0.34rem;
    margin-bottom: 0.8rem;
  }

  .mv-route-chrome strong,
  .mv-section-head strong {
    text-align: left;
  }

  .mv-dispatch-grid,
  .mv-book-grid,
  .mv-kernel-grid,
  .mv-research-metrics {
    grid-template-columns: 1fr;
  }

  .mv-document-library {
    grid-template-columns: 1fr;
  }

  .mv-book-card,
  .mv-dispatch {
    min-height: 0;
  }

  .mv-archive-table {
    min-width: 38rem;
  }

  .mv-section-head,
  .mv-card-meta,
  .mv-timeline-row {
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .mv-timeline-row {
    align-items: start;
    gap: 0.32rem;
  }
}

/* Keep the ritual rail architectural, not intrusive. */
.mv-ritual-rail {
  left: clamp(0.45rem, 1vw, 0.9rem);
  opacity: 0.62;
  pointer-events: none;
}

/* Visual elevation pass: custom-font-only, oval interface language, digital cathedral field. */
:root {
  --f-head: 'Terminal Grotesque';
  --f-body: 'Terminal Grotesque';
  --f-term: 'Terminal Grotesque';
  --pill-xl: clamp(2rem, 5vw, 5.5rem);
  --pill-md: clamp(1.25rem, 3vw, 3rem);
  --pill-sm: 999px;
}

html,
body,
button,
input,
textarea,
select,
pre,
code,
body * {
  font-family: 'Terminal Grotesque' !important;
}

.mv-page {
  background:
    radial-gradient(circle at 50% 24%, rgba(148,245,8,0.18), transparent min(22rem, 58vw)),
    radial-gradient(ellipse at 50% 62%, rgba(255,255,255,0.075), transparent min(48rem, 82vw)),
    linear-gradient(180deg, #000 0%, #000 54%, #030503 100%) !important;
}

.mv-page::after {
  position: fixed;
  inset: -10dvh -10vw;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 16%, transparent 0 14%, rgba(148,245,8,0.08) 14.2% 14.45%, transparent 14.8%),
    radial-gradient(ellipse at 50% 18%, transparent 0 23%, rgba(255,255,255,0.06) 23.15% 23.34%, transparent 23.7%),
    radial-gradient(ellipse at 50% 24%, transparent 0 34%, rgba(148,245,8,0.052) 34.12% 34.32%, transparent 34.8%),
    repeating-conic-gradient(from 0deg at 50% 28%, rgba(148,245,8,0.07) 0deg 0.38deg, transparent 0.52deg 8deg),
    linear-gradient(90deg, transparent 0 14%, rgba(148,245,8,0.055) 14.1% 14.18%, transparent 14.3% 85.7%, rgba(148,245,8,0.055) 85.82% 85.9%, transparent 86%),
    linear-gradient(180deg, transparent, rgba(148,245,8,0.055), transparent);
  filter: drop-shadow(0 0 34px rgba(148,245,8,0.13));
  mask-image: radial-gradient(ellipse at 50% 28%, #000 0 58%, transparent 82%);
  opacity: 0.9;
  animation: mvCathedralDrift 18s ease-in-out infinite alternate;
  content: "";
}

.mv-experience-field {
  background:
    radial-gradient(circle at 50% 35%, rgba(148,245,8,0.2), transparent min(18rem, 54vw)),
    linear-gradient(180deg, rgba(148,245,8,0.06), transparent 38%, rgba(255,255,255,0.035));
}

.mv-experience-field::before {
  background:
    repeating-linear-gradient(90deg, transparent 0 3.4rem, rgba(148,245,8,0.055) 3.42rem 3.48rem),
    repeating-linear-gradient(0deg, transparent 0 4.6rem, rgba(255,255,255,0.032) 4.62rem 4.68rem),
    radial-gradient(circle at 50% 22%, rgba(148,245,8,0.13), transparent 28rem) !important;
  animation: mvGridPulse 9s ease-in-out infinite alternate;
}

.mv-cathedral-arch,
.mv-cathedral-spire {
  position: fixed;
  left: 50%;
  top: 45%;
  z-index: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.mv-cathedral-arch {
  width: min(92vw, 70rem);
  aspect-ratio: 1 / 0.92;
  border: 1px solid rgba(148,245,8,0.1);
  border-bottom-color: transparent;
  border-radius: 50% 50% 8% 8% / 62% 62% 8% 8%;
  box-shadow: inset 0 0 60px rgba(148,245,8,0.045), 0 0 80px rgba(148,245,8,0.055);
  opacity: 0.82;
}

.mv-cathedral-arch-b {
  width: min(74vw, 54rem);
  opacity: 0.68;
  animation: mvArchBreath 7s ease-in-out infinite alternate;
}

.mv-cathedral-arch-c {
  width: min(52vw, 38rem);
  opacity: 0.54;
  animation: mvArchBreath 10s ease-in-out infinite alternate-reverse;
}

.mv-cathedral-spire {
  width: min(1px, 0.1vw);
  height: 74dvh;
  background: linear-gradient(180deg, transparent, rgba(148,245,8,0.0) 12%, rgba(148,245,8,0.72) 44%, rgba(255,255,255,0.42) 50%, rgba(148,245,8,0.42) 56%, transparent 88%);
  box-shadow: 0 0 28px rgba(148,245,8,0.5), 0 0 120px rgba(148,245,8,0.16);
  opacity: 0.52;
  animation: mvSpireSignal 5.5s ease-in-out infinite;
}

.mv-field-orbit {
  border-style: solid !important;
  border-radius: 50% !important;
  opacity: 0.5;
}

.mv-field-scan {
  background: linear-gradient(90deg, transparent, rgba(148,245,8,0.32), rgba(255,255,255,0.22), rgba(148,245,8,0.24), transparent) !important;
  filter: blur(8px);
  opacity: 0.42;
}

.mv-logo-wrap {
  min-height: clamp(15rem, 35vw, 31rem) !important;
  isolation: isolate;
}

.mv-logo-wrap::before,
.mv-logo-wrap::after {
  border-radius: 50% !important;
}

.mv-gate-page .mv-logo-wrap {
  width: min(38rem, 82vw) !important;
}

.mv-gate-page .mv-brand-logo-primary {
  width: min(21rem, 58vw) !important;
  filter: drop-shadow(0 0 22px rgba(255,255,255,0.22)) drop-shadow(0 0 72px rgba(148,245,8,0.28));
}

.mv-gate-page .mv-brand-logo-aura,
.mv-gate-page .mv-ascii-relic {
  display: none !important;
}

.mv-logo-halo {
  position: absolute;
  inset: 7%;
  z-index: -1;
  border: 1px solid rgba(148,245,8,0.2);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(148,245,8,0.18), transparent 43%),
    repeating-conic-gradient(from 0deg, rgba(148,245,8,0.14) 0deg 1deg, transparent 1.4deg 12deg);
  box-shadow: inset 0 0 56px rgba(148,245,8,0.11), 0 0 110px rgba(148,245,8,0.18);
  opacity: 0.76;
  animation: mvHaloTurn 16s linear infinite;
}

.mv-logo-axis {
  position: absolute;
  top: -8%;
  bottom: -13%;
  left: 50%;
  z-index: -1;
  width: 1px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, transparent, rgba(148,245,8,0.64), #fff, rgba(148,245,8,0.52), transparent);
  box-shadow: 0 0 20px rgba(148,245,8,0.48);
  opacity: 0.54;
}

.mv-nav,
.mv-route-chrome,
.mv-action,
.mv-boot-button,
.mv-status-panel,
.mv-card,
.mv-article,
.mv-signatories,
.mv-reading-panel,
.mv-meter-card,
.mv-archive-panel,
.mv-kernel-panel,
.mv-republic-detail,
.mv-principle-card,
.mv-network-map,
.mv-table-wrap,
.mv-declaration-focus,
.mv-book-card,
.mv-dispatch,
.mv-republic-status-strip,
.mv-republic-status-strip div,
.mv-kernel-grid,
.mv-kernel-grid > div,
.mv-research-metrics,
.mv-timeline-row,
.mv-node,
.mv-map-core,
.mv-boot-copy {
  border-radius: var(--pill-xl) !important;
}

.mv-nav {
  width: fit-content;
  max-width: calc(100% - 2rem);
  padding: 0.62rem 0.95rem;
  border: 1px solid rgba(148,245,8,0.16);
  background: rgba(0,0,0,0.72);
  box-shadow: 0 0 52px rgba(148,245,8,0.06);
}

.mv-nav a,
.mv-signer,
.mv-section-head,
.mv-card-meta,
.mv-archive-table tr,
.mv-archive-table th,
.mv-archive-table td {
  border-radius: var(--pill-sm) !important;
}

.mv-action,
.mv-boot-button {
  min-height: 3rem;
  border-radius: var(--pill-sm) !important;
  padding-inline: clamp(1.5rem, 4vw, 3.4rem) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.1), 0 0 42px rgba(148,245,8,0.16);
}

.mv-status-panel,
.mv-card,
.mv-article,
.mv-reading-panel,
.mv-signatories,
.mv-meter-card,
.mv-archive-panel,
.mv-kernel-panel,
.mv-republic-detail {
  background:
    radial-gradient(circle at 50% 0%, rgba(148,245,8,0.08), transparent 48%),
    rgba(0,0,0,0.78) !important;
  border-color: rgba(148,245,8,0.18) !important;
}

.mv-card,
.mv-dispatch,
.mv-book-card,
.mv-research-card,
.mv-article {
  padding: clamp(1.15rem, 2.5vw, 2rem) clamp(1.25rem, 3vw, 2.35rem) !important;
}

.mv-card-active,
.mv-article-hot,
.mv-node-active {
  box-shadow: inset 0 0 0 1px rgba(148,245,8,0.28), 0 0 70px rgba(148,245,8,0.16) !important;
}

.mv-grid-bg {
  background:
    radial-gradient(ellipse at 50% 24%, rgba(148,245,8,0.14), transparent 38rem),
    repeating-linear-gradient(90deg, transparent 0 5.8rem, rgba(148,245,8,0.055) 5.84rem 5.9rem),
    repeating-linear-gradient(0deg, transparent 0 5.8rem, rgba(255,255,255,0.026) 5.84rem 5.9rem) !important;
  opacity: 0.62 !important;
}

.mv-title {
  text-shadow: 0 0 18px rgba(255,255,255,0.18), 0 0 64px rgba(148,245,8,0.12);
}

.mv-subtitle {
  color: rgba(255,255,255,0.88) !important;
}

.mv-gate-lower {
  border-radius: var(--pill-xl);
}

.mv-transmission-seal {
  border-radius: var(--pill-sm);
}

@keyframes mvCathedralDrift {
  from { transform: translateY(-1%) scale(1); opacity: 0.72; }
  to { transform: translateY(1.5%) scale(1.035); opacity: 0.96; }
}

@keyframes mvGridPulse {
  from { opacity: 0.45; transform: translateY(0); }
  to { opacity: 0.72; transform: translateY(-1.8rem); }
}

@keyframes mvArchBreath {
  from { transform: translate(-50%, -50%) scale(0.985); opacity: 0.46; }
  to { transform: translate(-50%, -50%) scale(1.025); opacity: 0.76; }
}

@keyframes mvSpireSignal {
  0%, 100% { opacity: 0.28; transform: translate(-50%, -50%) scaleY(0.92); }
  50% { opacity: 0.72; transform: translate(-50%, -50%) scaleY(1.04); }
}

@keyframes mvHaloTurn {
  to { transform: rotate(360deg); }
}

@media (max-width: 760px) {
  .mv-page::after {
    inset: -7dvh -45vw;
    opacity: 0.74;
  }

  .mv-cathedral-arch-a {
    width: 120vw;
  }

  .mv-cathedral-arch-b,
  .mv-cathedral-arch-c {
    width: 96vw;
  }

  .mv-cathedral-spire {
    height: 62dvh;
  }

  .mv-nav {
    width: min(calc(100% - 1rem), 38rem);
    justify-content: center;
  }
}

/* Final boot/audio-ready polish: fast ceremonial launch, no audio URL loaded yet. */
.mv-boot {
  transition: opacity 320ms ease, filter 360ms ease;
}

.mv-boot-core,
.mv-boot-logo,
.mv-boot-sweep,
.mv-boot-atmosphere,
.mv-boot-copy {
  will-change: transform, opacity, filter;
}

.mv-boot-logo {
  transition: filter 360ms ease, transform 360ms cubic-bezier(0.16, 1, 0.3, 1), opacity 280ms ease;
}

.mv-boot-loader-gif {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  width: clamp(8rem, 19vw, 14rem);
  max-width: 48vw;
  height: auto;
  transform: translate(-50%, -50%) scale(1.08);
  opacity: 0.34;
  mix-blend-mode: screen;
  filter: drop-shadow(0 0 32px rgba(148,245,8,0.58)) brightness(1.18);
  pointer-events: none;
}

.mv-boot-dormant .mv-boot-loader-gif {
  opacity: 0.46;
}

.mv-boot-ignition .mv-boot-loader-gif,
.mv-boot-acquisition .mv-boot-loader-gif,
.mv-boot-bloom .mv-boot-loader-gif {
  opacity: 0.7;
  animation: mvBootGifWake 720ms ease-in-out infinite alternate;
}

.mv-boot-lockin .mv-boot-loader-gif,
.mv-boot-reveal .mv-boot-loader-gif {
  opacity: 0.25;
  transform: translate(-50%, -50%) scale(1.22);
  filter: blur(2px) drop-shadow(0 0 52px rgba(148,245,8,0.7)) brightness(1.45);
}

.mv-boot-button {
  position: relative;
  overflow: hidden;
  transition:
    opacity 260ms ease,
    transform 260ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 260ms ease,
    box-shadow 260ms ease,
    border-color 260ms ease;
}

.mv-boot-button::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(110deg, transparent 0 36%, rgba(255,255,255,0.2) 49%, rgba(148,245,8,0.22) 54%, transparent 68%);
  transform: translateX(-115%);
  opacity: 0.75;
  pointer-events: none;
  transition: transform 580ms cubic-bezier(0.16, 1, 0.3, 1);
}

.mv-boot-button:hover::before,
.mv-boot-button:focus-visible::before {
  transform: translateX(115%);
}

.mv-boot-button-exiting {
  pointer-events: none;
  opacity: 0;
  transform: translateY(-0.4rem) scale(1.035);
  filter: blur(10px) brightness(1.5);
}

.mv-boot-ignition .mv-boot-core {
  animation: mvBootCharge 360ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.mv-boot-ignition .mv-boot-sweep,
.mv-boot-acquisition .mv-boot-sweep,
.mv-boot-bloom .mv-boot-sweep {
  opacity: 1;
  animation: mvBootSweepFast 640ms cubic-bezier(0.16, 1, 0.3, 1) infinite alternate;
}

.mv-boot-acquisition .mv-boot-atmosphere,
.mv-boot-bloom .mv-boot-atmosphere {
  animation: mvBootFieldWake 720ms ease-in-out infinite alternate;
}

.mv-boot-acquisition .mv-boot-phrases span:nth-child(1) { animation: mvBootPhraseFast 420ms ease 0ms forwards; }
.mv-boot-acquisition .mv-boot-phrases span:nth-child(2) { animation: mvBootPhraseFast 420ms ease 180ms forwards; }
.mv-boot-bloom .mv-boot-phrases span:nth-child(3) { animation: mvBootPhraseFast 420ms ease 0ms forwards; }
.mv-boot-bloom .mv-boot-phrases span:nth-child(4) { animation: mvBootPhraseFast 420ms ease 180ms forwards; }

.mv-boot-bloom .mv-boot-logo {
  animation: mvBootLogoBloomFast 640ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.mv-boot-lockin .mv-boot-core {
  animation: mvBootLockFast 520ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.mv-boot-lockin .mv-boot-title {
  animation: mvBootTitleFast 460ms ease forwards;
}

.mv-boot-reveal {
  pointer-events: none;
  animation: mvBootRevealFast 420ms ease forwards;
}

.mv-boot-reveal .mv-boot-core {
  animation: mvBootCoreExitFast 420ms ease forwards;
}

@keyframes mvBootCharge {
  0% { transform: scale(1); filter: drop-shadow(0 0 26px rgba(148,245,8,0.32)); }
  52% { transform: scale(1.11); filter: drop-shadow(0 0 58px rgba(148,245,8,0.75)) brightness(1.35); }
  100% { transform: scale(1.02); filter: drop-shadow(0 0 40px rgba(148,245,8,0.58)); }
}

@keyframes mvBootSweepFast {
  from { transform: translateX(-34%) rotate(-14deg); opacity: 0.42; }
  to { transform: translateX(34%) rotate(-14deg); opacity: 0.86; }
}

@keyframes mvBootFieldWake {
  from { opacity: 0.62; transform: scale(1.01); }
  to { opacity: 0.95; transform: scale(1.055); }
}

@keyframes mvBootPhraseFast {
  0% { opacity: 0; transform: translateY(0.7rem); filter: blur(5px); }
  22%, 72% { opacity: 1; transform: translateY(0); filter: blur(0); }
  100% { opacity: 0; transform: translateY(-0.45rem); filter: blur(4px); }
}

@keyframes mvBootLogoBloomFast {
  0% { filter: drop-shadow(0 0 20px rgba(148,245,8,0.32)); transform: translate(-50%, -50%) scale(1); }
  58% { filter: drop-shadow(0 0 68px rgba(148,245,8,0.84)) drop-shadow(0 0 22px rgba(255,255,255,0.38)); transform: translate(-50%, -50%) scale(1.045); }
  100% { filter: drop-shadow(0 0 34px rgba(148,245,8,0.48)); transform: translate(-50%, -50%) scale(1); }
}

@keyframes mvBootLockFast {
  from { transform: scale(1.02); }
  to { transform: scale(0.92); filter: drop-shadow(0 0 64px rgba(148,245,8,0.82)); }
}

@keyframes mvBootTitleFast {
  from { letter-spacing: 0.26em; filter: blur(2px); }
  to { letter-spacing: 0.18em; filter: blur(0); }
}

@keyframes mvBootRevealFast {
  from { opacity: 1; filter: blur(0); }
  to { opacity: 0; filter: blur(10px); }
}

@keyframes mvBootCoreExitFast {
  to { transform: scale(1.08); opacity: 0; filter: blur(14px) brightness(1.55); }
}

@keyframes mvBootGifWake {
  from {
    transform: translate(-50%, -50%) scale(1.04);
    filter: drop-shadow(0 0 24px rgba(148,245,8,0.42)) brightness(1.05);
  }
  to {
    transform: translate(-50%, -50%) scale(1.16);
    filter: drop-shadow(0 0 62px rgba(148,245,8,0.86)) brightness(1.42);
  }
}

@media (prefers-reduced-motion: reduce) {
  .mv-boot,
  .mv-boot * {
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Static crawler layer: raw HTML content for machines before React mounts. */
.crawler-content {
  width: min(100% - 2rem, 74rem);
  margin: 0 auto;
  padding: clamp(5rem, 10vh, 8rem) 0 clamp(4rem, 8vh, 6rem);
  color: var(--text-main);
  background: var(--bg-0);
  font-family: var(--font-display);
  line-height: 1.55;
}

.crawler-content h1,
.crawler-content h2,
.crawler-content h3 {
  margin: 0 0 0.85rem;
  color: var(--text-main);
  font-weight: 500;
  letter-spacing: 0.04em;
}

.crawler-content h1 {
  font-size: clamp(2.4rem, 8vw, 5.5rem);
  line-height: 0.92;
}

.crawler-content h2 {
  margin-top: 2rem;
  font-size: clamp(1.35rem, 3vw, 2.2rem);
}

.crawler-content p,
.crawler-content li {
  color: var(--text-dim);
  font-size: clamp(1rem, 1.8vw, 1.18rem);
}

.crawler-content a {
  color: var(--volt);
  text-decoration: none;
}

.crawler-content a:hover,
.crawler-content a:focus-visible {
  color: var(--text-main);
}

.crawler-content nav,
.crawler-content .crawler-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.5rem 0;
}

.crawler-content nav a,
.crawler-content .crawler-pill {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.68rem 1rem;
  background: rgba(148, 245, 8, 0.04);
}

.crawler-content article,
.crawler-content .crawler-panel {
  border: 1px solid rgba(245, 247, 245, 0.16);
  border-radius: 1.1rem;
  padding: clamp(1rem, 2vw, 1.4rem);
  background: rgba(255, 255, 255, 0.035);
}

.crawler-content ul,
.crawler-content ol {
  padding-left: 1.25rem;
}

.mv-preboot-loader {
  max-width: min(38vw, 12rem);
}

.mv-preboot-shell .mv-preboot-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

/* Finish-line atmosphere pass: animated digital cathedral, semantic meaning mirrored in raw HTML. */
.crawler-semantics {
  margin-top: 2rem;
}

.crawler-noscript {
  min-height: 100dvh;
}

.mv-page {
  position: relative;
  overflow-x: clip;
  background:
    radial-gradient(ellipse at 50% -8%, rgba(148,245,8,0.18), transparent min(42rem, 74vw)),
    radial-gradient(circle at 50% 22%, rgba(255,255,255,0.08), transparent min(28rem, 62vw)),
    linear-gradient(180deg, #000 0%, #000 52%, #000 100%) !important;
}

.mv-page::before {
  content: "" !important;
  position: fixed !important;
  inset: -18dvh -12vw !important;
  z-index: 0 !important;
  pointer-events: none !important;
  background:
    radial-gradient(ellipse at 50% 102%, transparent 0 28%, rgba(148,245,8,0.18) 29%, transparent 30%, transparent 42%, rgba(255,255,255,0.08) 43%, transparent 44%, transparent 56%, rgba(148,245,8,0.1) 57%, transparent 58%),
    radial-gradient(ellipse at 50% 96%, transparent 0 18%, rgba(255,255,255,0.08) 19%, transparent 20%, transparent 33%, rgba(148,245,8,0.12) 34%, transparent 35%),
    conic-gradient(from 0deg at 50% 38%, transparent 0deg 8deg, rgba(148,245,8,0.14) 9deg 10deg, transparent 11deg 23deg, rgba(255,255,255,0.08) 24deg 25deg, transparent 26deg 44deg),
    repeating-radial-gradient(circle at 50% 39%, transparent 0 3.6rem, rgba(148,245,8,0.085) 3.66rem 3.72rem),
    linear-gradient(115deg, transparent 0 38%, rgba(148,245,8,0.09) 47%, rgba(255,255,255,0.06) 50%, transparent 62%),
    linear-gradient(245deg, transparent 0 42%, rgba(148,245,8,0.06) 50%, transparent 64%),
    radial-gradient(circle at 20% 20%, rgba(255,255,255,0.08) 0 1px, transparent 1.4px),
    radial-gradient(circle at 80% 70%, rgba(148,245,8,0.15) 0 1px, transparent 1.5px);
  background-size:
    100% 100%,
    100% 100%,
    100% 100%,
    100% 100%,
    160% 160%,
    150% 150%,
    4.8rem 4.8rem,
    6.6rem 6.6rem;
  mix-blend-mode: screen;
  opacity: 0.78 !important;
  mask-image: radial-gradient(ellipse at 50% 38%, #000 0 62%, transparent 84%);
  animation: mvCathedralAurora 22s ease-in-out infinite alternate, mvSignalDustRise 38s linear infinite;
}

.mv-page::after {
  content: "" !important;
  position: fixed !important;
  left: 50% !important;
  top: 46% !important;
  z-index: 0 !important;
  width: min(92vw, 72rem) !important;
  aspect-ratio: 1 !important;
  pointer-events: none !important;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.16) 0 0.08rem, transparent 0.1rem 7%, rgba(148,245,8,0.12) 7.2% 7.45%, transparent 7.7% 19%, rgba(255,255,255,0.08) 19.2% 19.45%, transparent 19.7% 31%, rgba(148,245,8,0.09) 31.2% 31.45%, transparent 31.7%),
    repeating-conic-gradient(from 0deg, rgba(148,245,8,0.15) 0deg 0.65deg, transparent 0.9deg 11.25deg),
    repeating-conic-gradient(from 5.5deg, rgba(255,255,255,0.08) 0deg 0.55deg, transparent 0.8deg 22.5deg);
  box-shadow:
    inset 0 0 5rem rgba(148,245,8,0.08),
    0 0 8rem rgba(148,245,8,0.1);
  opacity: 0.42;
  mix-blend-mode: screen;
  mask-image: radial-gradient(circle, #000 0 56%, transparent 76%);
  animation: mvRoseWindowTurn 80s linear infinite;
}

.mv-grid-bg {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.055), transparent 28%, transparent 72%, rgba(148,245,8,0.08)),
    linear-gradient(90deg, transparent, rgba(148,245,8,0.14), transparent),
    repeating-linear-gradient(90deg, transparent 0 7.5rem, rgba(148,245,8,0.075) 7.55rem 7.6rem),
    repeating-linear-gradient(0deg, transparent 0 5rem, rgba(255,255,255,0.032) 5.05rem 5.1rem) !important;
  opacity: 0.58 !important;
  animation: mvGridCathedralPulse 16s ease-in-out infinite alternate;
}

.mv-logo-wrap::before {
  content: "";
  position: absolute;
  inset: -18%;
  z-index: 1;
  border-radius: 50%;
  pointer-events: none;
  background:
    repeating-conic-gradient(from 0deg, rgba(148,245,8,0.2) 0deg 1deg, transparent 1.4deg 18deg),
    radial-gradient(circle, rgba(255,255,255,0.12), transparent 45%),
    radial-gradient(circle, rgba(148,245,8,0.18), transparent 68%);
  opacity: 0.44;
  filter: blur(0.2px);
  mix-blend-mode: screen;
  animation: mvRoseWindowSpin 44s linear infinite reverse;
}

.mv-logo-wrap::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -18%;
  bottom: -22%;
  z-index: 1;
  width: 1px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, transparent, rgba(148,245,8,0.75), rgba(255,255,255,0.75), rgba(148,245,8,0.48), transparent);
  box-shadow: 0 0 26px rgba(148,245,8,0.64);
  opacity: 0.55;
  animation: mvSpireBreathe 5.8s ease-in-out infinite alternate;
  pointer-events: none;
}

.mv-boot::before {
  background:
    radial-gradient(ellipse at 50% 72%, transparent 0 30%, rgba(148,245,8,0.24) 31%, transparent 32%, transparent 49%, rgba(255,255,255,0.1) 50%, transparent 51%),
    repeating-conic-gradient(from 0deg at 50% 48%, rgba(148,245,8,0.16) 0deg 1deg, transparent 1.5deg 14deg),
    linear-gradient(115deg, transparent 0 35%, rgba(148,245,8,0.12) 48%, transparent 62%),
    radial-gradient(circle at 50% 44%, rgba(148,245,8,0.18), transparent 34rem),
    #000 !important;
  animation: mvCathedralAurora 12s ease-in-out infinite alternate !important;
}

.mv-boot::after {
  opacity: 0.32 !important;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.1) 0 0.06rem, transparent 0.08rem 12%, rgba(148,245,8,0.16) 12.2% 12.5%, transparent 12.8%),
    repeating-conic-gradient(from 0deg at 50% 50%, rgba(148,245,8,0.18) 0deg 0.8deg, transparent 1.1deg 15deg) !important;
  animation: mvRoseWindowSpin 48s linear infinite !important;
}

.mv-card,
.mv-article,
.mv-dispatch,
.mv-book-card,
.mv-research-card,
.mv-reading-panel,
.mv-archive-panel,
.mv-network-map,
.mv-republic-detail,
.mv-status-panel {
  backdrop-filter: blur(12px);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.04),
    0 0 42px rgba(148,245,8,0.045) !important;
}

@keyframes mvCathedralAurora {
  0% { transform: translate3d(-1.5%, 0, 0) scale(1); filter: brightness(0.9); }
  100% { transform: translate3d(1.5%, -1.2%, 0) scale(1.035); filter: brightness(1.18); }
}

@keyframes mvSignalDustRise {
  0% { background-position: 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0; }
  100% { background-position: 0 0, 0 0, 0 0, 0 0, 8rem -10rem, -7rem 8rem, 0 -22rem, 0 -28rem; }
}

@keyframes mvRoseWindowTurn {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes mvRoseWindowSpin {
  to { transform: rotate(360deg); }
}

@keyframes mvGridCathedralPulse {
  from { opacity: 0.38; transform: translateY(calc(var(--mv-scroll, 0) * -18px)); }
  to { opacity: 0.66; transform: translateY(calc(var(--mv-scroll, 0) * -34px)); }
}

@keyframes mvSpireBreathe {
  from { opacity: 0.32; transform: translateX(-50%) scaleY(0.9); }
  to { opacity: 0.74; transform: translateX(-50%) scaleY(1.05); }
}

@media (max-width: 760px) {
  .mv-page::before {
    inset: -12dvh -48vw !important;
    opacity: 0.62 !important;
  }

  .mv-page::after {
    width: 118vw !important;
    top: 38% !important;
    opacity: 0.24 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mv-page::before,
  .mv-page::after,
  .mv-grid-bg,
  .mv-logo-wrap::before,
  .mv-logo-wrap::after,
  .mv-boot::before,
  .mv-boot::after {
    animation: none !important;
  }
}

/* OPSEC + cathedral ascension pass: temporary seal, richer atmosphere, Signal Wire portal. */
.mv-temp-gate {
  min-height: 100dvh;
  width: 100%;
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: clamp(1.25rem, 4vw, 3rem);
  background:
    radial-gradient(ellipse at 50% 32%, rgba(148,245,8,0.18), transparent min(34rem, 72vw)),
    radial-gradient(ellipse at 50% 112%, rgba(255,255,255,0.08), transparent 36rem),
    #000;
  color: var(--text-main);
}

.mv-temp-gate::before,
.mv-temp-gate::after {
  content: "";
  position: absolute;
  inset: -20dvh -20vw;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 92%, transparent 0 24%, rgba(148,245,8,0.22) 25%, transparent 26%, transparent 42%, rgba(255,255,255,0.08) 43%, transparent 44%),
    repeating-conic-gradient(from 0deg at 50% 45%, rgba(148,245,8,0.16) 0deg 0.85deg, transparent 1.2deg 13deg),
    linear-gradient(118deg, transparent 0 38%, rgba(148,245,8,0.14) 49%, transparent 61%),
    radial-gradient(circle at 22% 26%, rgba(255,255,255,0.12) 0 1px, transparent 1.5px);
  background-size: 100% 100%, 100% 100%, 170% 170%, 4.5rem 4.5rem;
  opacity: 0.74;
  mix-blend-mode: screen;
  mask-image: radial-gradient(ellipse at 50% 42%, #000 0 62%, transparent 84%);
  animation: mvCathedralAurora 18s ease-in-out infinite alternate, mvSignalDustRise 32s linear infinite;
}

.mv-temp-gate::after {
  inset: auto;
  left: 50%;
  top: 43%;
  width: min(94vw, 54rem);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255,255,255,0.15) 0 0.08rem, transparent 0.1rem 9%, rgba(148,245,8,0.14) 9.2% 9.5%, transparent 9.8%),
    repeating-conic-gradient(from 0deg, rgba(148,245,8,0.2) 0deg 0.75deg, transparent 1deg 10deg),
    repeating-conic-gradient(from 6deg, rgba(255,255,255,0.08) 0deg 0.55deg, transparent 0.9deg 22deg);
  opacity: 0.4;
  animation: mvRoseWindowTurn 90s linear infinite;
}

.mv-temp-gate-card {
  position: relative;
  z-index: 2;
  width: min(100%, 38rem);
  padding: clamp(2rem, 6vw, 4rem);
  border: 1px solid rgba(245,247,245,0.24);
  border-radius: 2.25rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.07), rgba(0,0,0,0.72));
  box-shadow:
    inset 0 0 0 1px rgba(148,245,8,0.1),
    0 0 7rem rgba(148,245,8,0.2),
    0 0 0 1px rgba(0,0,0,0.9);
  backdrop-filter: blur(18px);
  text-align: center;
}

.mv-temp-gate-logo {
  width: clamp(5.5rem, 18vw, 9rem);
  height: auto;
  filter: drop-shadow(0 0 34px rgba(148,245,8,0.46));
}

.mv-temp-gate-kicker,
.mv-temp-gate-form label,
.mv-temp-gate-status {
  display: block;
  margin-top: 1.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--volt);
}

.mv-temp-gate h1 {
  margin: 1rem 0 0;
  font-size: clamp(2.8rem, 9vw, 6rem);
  letter-spacing: 0.16em;
}

.mv-temp-gate p {
  color: var(--text-dim);
  max-width: 32rem;
  margin: 1rem auto 0;
  line-height: 1.7;
}

.mv-temp-gate-form {
  display: grid;
  gap: 0.9rem;
  margin-top: 2rem;
}

.mv-temp-gate-form input,
.mv-temp-gate-form button {
  width: 100%;
  min-height: 3.25rem;
  border-radius: 999px;
  font: inherit;
  letter-spacing: 0.12em;
  color: var(--text-main);
}

.mv-temp-gate-form input {
  border: 1px solid rgba(245,247,245,0.22);
  background: rgba(0,0,0,0.62);
  padding: 0 1.25rem;
  outline: none;
}

.mv-temp-gate-form input:focus-visible {
  border-color: var(--volt);
  box-shadow: 0 0 0 3px rgba(148,245,8,0.18), 0 0 36px rgba(148,245,8,0.22);
}

.mv-temp-gate-form button,
.mv-source-strip a {
  border: 1px solid rgba(148,245,8,0.82);
  background:
    radial-gradient(circle at 50% 0%, rgba(148,245,8,0.22), transparent 62%),
    rgba(148,245,8,0.08);
  color: var(--volt);
  cursor: pointer;
  box-shadow: 0 0 34px rgba(148,245,8,0.18), inset 0 0 24px rgba(148,245,8,0.08);
}

.mv-temp-gate-form button:hover,
.mv-temp-gate-form button:focus-visible,
.mv-source-strip a:hover,
.mv-source-strip a:focus-visible {
  color: #fff;
  box-shadow: 0 0 48px rgba(148,245,8,0.34), inset 0 0 24px rgba(148,245,8,0.16);
}

.mv-source-strip {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  gap: 1rem;
  margin: 1.25rem 0 1.75rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(245,247,245,0.16);
  border-radius: 999px;
  background: rgba(255,255,255,0.035);
  backdrop-filter: blur(12px);
}

.mv-source-strip span {
  color: var(--volt);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
}

.mv-source-strip a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  padding: 0 1rem;
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.76rem;
  letter-spacing: 0.12em;
}

.mv-source-strip p {
  margin: 0;
  color: var(--text-dim);
  font-size: 0.82rem;
  line-height: 1.5;
}

.mv-page .mv-experience-field::before,
.mv-page .mv-experience-field::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 42%;
  width: min(72vw, 54rem);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  background:
    repeating-conic-gradient(from 0deg, rgba(148,245,8,0.11) 0deg 0.45deg, transparent 0.9deg 7.5deg),
    radial-gradient(circle, transparent 0 24%, rgba(148,245,8,0.09) 24.2% 24.8%, transparent 25.2% 46%, rgba(255,255,255,0.06) 46.2% 46.8%, transparent 47.2%);
  opacity: 0.46;
  mix-blend-mode: screen;
  filter: blur(0.15px);
  animation: mvRoseWindowTurn 110s linear infinite reverse;
}

.mv-page .mv-experience-field::after {
  width: min(52vw, 40rem);
  opacity: 0.28;
  animation-duration: 70s;
  animation-direction: normal;
}

@media (max-width: 760px) {
  .mv-source-strip {
    grid-template-columns: 1fr;
    border-radius: 1.5rem;
  }

  .mv-temp-gate-card {
    border-radius: 1.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mv-temp-gate::before,
  .mv-temp-gate::after,
  .mv-page .mv-experience-field::before,
  .mv-page .mv-experience-field::after {
    animation: none !important;
  }
}
