:root {
  --black: #050505;
  --black-2: #0d0e10;
  --black-3: #15171b;
  --white: #ffffff;
  --muted: #c7cad1;
  --muted-2: #969aa4;
  --yellow: #ffd400;
  --yellow-dark: #d8b400;
  --danger: #ff7d7d;
  --success: #62e6a7;
  --line: rgba(255,255,255,.18);
  --line-strong: rgba(255,255,255,.38);
  --shadow: 0 25px 70px rgba(0,0,0,.42);
  --radius: 1.4rem;
  --page: 1280px;
  --font-scale: 1;
  --line-scale: 1;
  --parallax-x: 0px;
  --parallax-y: 0px;
  --scroll-shift: 0px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--black);
  font-size: calc(18px * var(--font-scale));
}

body {
  margin: 0;
  min-width: 320px;
  color: var(--white);
  background:
    radial-gradient(circle at 15% 10%, rgba(255,212,0,.11), transparent 28rem),
    radial-gradient(circle at 85% 35%, rgba(255,212,0,.07), transparent 30rem),
    var(--black);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 520;
  line-height: calc(1.62 * var(--line-scale));
  overflow-x: hidden;
}

body.yellow-mode {
  --black: #ffd400;
  --black-2: #f3c900;
  --black-3: #e1ba00;
  --white: #050505;
  --muted: #262626;
  --muted-2: #3d3d3d;
  --yellow: #050505;
  --yellow-dark: #252525;
  --line: rgba(0,0,0,.24);
  --line-strong: rgba(0,0,0,.48);
  background: #ffd400;
}

body.underline-links a,
body.underline-links .text-link {
  text-decoration: underline !important;
  text-decoration-thickness: .16em !important;
  text-underline-offset: .2em !important;
}

body.reduced-motion *,
body.reduced-motion *::before,
body.reduced-motion *::after {
  animation-duration: .001ms !important;
  animation-iteration-count: 1 !important;
  scroll-behavior: auto !important;
  transition-duration: .001ms !important;
}

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

a {
  color: var(--yellow);
}

button,
select,
input {
  min-height: 3rem;
}

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

button {
  cursor: pointer;
}

:focus-visible {
  outline: .25rem solid var(--yellow);
  outline-offset: .25rem;
}

::selection {
  color: var(--black);
  background: var(--yellow);
}

.skip-link {
  position: fixed;
  z-index: 9999;
  left: 1rem;
  top: -8rem;
  padding: .8rem 1rem;
  color: var(--black);
  background: var(--yellow);
  font-weight: 900;
  text-decoration: none;
}

.skip-link:focus {
  top: 1rem;
}

.legal-bar {
  position: relative;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .55rem max(1rem, calc((100vw - var(--page)) / 2));
  color: #050505;
  background: #ffd400;
  border-bottom: 2px solid #050505;
  font-size: .82rem;
  line-height: 1.25;
}

.legal-bar p {
  margin: 0;
}

.legal-bar__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .35rem;
}

.legal-bar button {
  min-height: auto;
  padding: .25rem .4rem;
  color: #050505;
  background: transparent;
  border: 0;
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: .18rem;
}

.site-header {
  position: sticky;
  z-index: 90;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 5.1rem;
  padding: .8rem max(1rem, calc((100vw - var(--page)) / 2));
  background: color-mix(in srgb, var(--black) 88%, transparent);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  color: var(--white);
  text-decoration: none;
}

.brand__mark {
  width: 3rem;
  height: 3rem;
  overflow: visible;
}

.brand__mark circle,
.brand__mark path {
  fill: none;
  stroke: var(--yellow);
  stroke-width: 4;
}

.brand strong,
.brand small {
  display: block;
}

.brand strong {
  font-size: 1.05rem;
  line-height: 1.05;
}

.brand small {
  margin-top: .18rem;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 760;
  text-transform: uppercase;
  letter-spacing: .09em;
}

.site-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .4rem;
}

.site-nav a,
.site-nav button {
  min-height: auto;
  padding: .65rem .7rem;
  color: var(--white);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .84rem;
  font-weight: 820;
  text-decoration: none;
}

.site-nav a:hover,
.site-nav button:hover {
  border-color: var(--line-strong);
}

.nav-tool-button {
  color: var(--black) !important;
  background: var(--yellow) !important;
}

.nav-count {
  display: inline-grid;
  place-items: center;
  min-width: 1.45rem;
  height: 1.45rem;
  margin-left: .25rem;
  padding: 0 .25rem;
  color: var(--black);
  background: var(--yellow);
  border-radius: 50%;
  font-size: .7rem;
}

.menu-button {
  display: none;
  padding: .6rem .8rem;
  color: var(--black);
  background: var(--yellow);
  border: 0;
  border-radius: .7rem;
  font-weight: 900;
}

.hero {
  position: relative;
  isolation: isolate;
  min-height: calc(100svh - 7.5rem);
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(22rem, .94fr);
  align-items: center;
  gap: 2rem;
  max-width: 1500px;
  margin: auto;
  padding: clamp(4rem, 9vw, 8rem) max(1rem, calc((100vw - var(--page)) / 2)) 5rem;
  overflow: hidden;
}

.hero__mesh {
  position: absolute;
  z-index: -2;
  inset: 0;
  opacity: .32;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 4rem 4rem;
  mask-image: radial-gradient(circle at 50% 50%, black, transparent 76%);
  transform: translate3d(calc(var(--parallax-x) * -.12), calc(var(--parallax-y) * -.12 + var(--scroll-shift) * .15), 0);
}

.hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 38rem;
  height: 38rem;
  right: 1%;
  top: 8%;
  border: 1px solid rgba(255,212,0,.22);
  border-radius: 50%;
  box-shadow: 0 0 8rem rgba(255,212,0,.11);
}

.hero__content {
  position: relative;
  z-index: 2;
  max-width: 54rem;
}

.kicker {
  margin: 0 0 .8rem;
  color: var(--yellow);
  font-size: .76rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .14em;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

h1 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(3.5rem, 8vw, 7.8rem);
  line-height: .88;
  letter-spacing: -.075em;
}

h1 span {
  display: block;
  color: var(--yellow);
}

.hero__lead {
  max-width: 48rem;
  margin: 1.6rem 0 0;
  color: var(--muted);
  font-size: clamp(1.12rem, 2vw, 1.45rem);
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 2rem;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.2rem;
  padding: .82rem 1.05rem;
  border: 2px solid transparent;
  border-radius: .75rem;
  font-weight: 920;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button--yellow {
  color: var(--black);
  background: var(--yellow);
  border-color: var(--yellow);
  box-shadow: 0 .45rem 0 rgba(255,212,0,.2);
}

.button--outline {
  color: var(--white);
  background: transparent;
  border-color: var(--line-strong);
}

.button--outline:hover {
  border-color: var(--yellow);
}

.button--compact {
  min-height: 2.6rem;
  padding: .55rem .8rem;
  font-size: .82rem;
}

.button--text {
  min-height: auto;
  padding: .4rem 0;
  color: var(--muted);
  background: transparent;
  border: 0;
}

.hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin: 2.3rem 0 0;
  padding: 0;
  list-style: none;
}

.hero__facts li {
  display: grid;
  gap: .05rem;
}

.hero__facts strong {
  color: var(--yellow);
  font-size: 1.6rem;
  line-height: 1;
}

.hero__facts span {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .09em;
}

.hero__visual {
  display: grid;
  place-items: center;
  min-width: 0;
  transform: translate3d(calc(var(--parallax-x) * .18), calc(var(--parallax-y) * .18 + var(--scroll-shift) * -.08), 0);
}

.rights-orbit {
  width: min(100%, 42rem);
  height: auto;
  overflow: visible;
  filter: drop-shadow(0 0 2rem rgba(255,212,0,.10));
}

.orbit-ring,
.globe-lines circle,
.globe-lines ellipse,
.route,
.centre-mark circle,
.centre-mark path {
  fill: none;
  vector-effect: non-scaling-stroke;
}

.orbit-ring {
  stroke: rgba(255,255,255,.15);
  stroke-width: 2;
  transform-origin: center;
}

.orbit-ring--one {
  stroke: rgba(255,212,0,.28);
  stroke-dasharray: 8 14;
  animation: spin 28s linear infinite;
}

.orbit-ring--two {
  stroke-dasharray: 4 12;
  animation: spin-reverse 23s linear infinite;
}

.orbit-ring--three {
  stroke-dasharray: 14 10;
  animation: spin 32s linear infinite;
}

.globe-lines circle,
.globe-lines ellipse {
  stroke: rgba(255,255,255,.27);
  stroke-width: 2;
}

.route {
  stroke: var(--yellow);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 9 13;
  animation: dash 12s linear infinite;
}

.route--two {
  animation-delay: -4s;
}

.route--three {
  animation-delay: -8s;
}

.node {
  fill: var(--yellow);
  transform-origin: center;
  animation: pulse 2.5s ease-in-out infinite;
}

.node--two,
.node--five {
  animation-delay: -.7s;
}

.node--three,
.node--six {
  animation-delay: -1.4s;
}

.centre-mark circle,
.centre-mark path {
  stroke: var(--yellow);
  stroke-width: 5;
}

.centre-mark {
  transform-origin: center;
  animation: breathe 4s ease-in-out infinite;
}

.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 1.2rem;
  display: flex;
  align-items: center;
  gap: .5rem;
  color: var(--muted-2);
  font-size: .7rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .12em;
  transform: translateX(-50%);
}

.scroll-cue span {
  width: .55rem;
  height: 1rem;
  border: 1px solid var(--yellow);
  border-radius: 999px;
  position: relative;
}

.scroll-cue span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: .15rem;
  width: .15rem;
  height: .15rem;
  background: var(--yellow);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: scroll-dot 1.8s ease-in-out infinite;
}

.trust-strip {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem max(1rem, calc((100vw - var(--page)) / 2));
  background: var(--yellow);
  color: var(--black);
  font-size: .86rem;
  font-weight: 760;
}

.trust-strip p {
  margin: 0;
}

.trust-strip a {
  color: var(--black);
  font-weight: 950;
}

.section-shell {
  width: min(var(--page), calc(100% - 2rem));
  margin-inline: auto;
  padding-block: clamp(4.5rem, 9vw, 8rem);
}

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(18rem, .6fr);
  align-items: end;
  gap: 2rem;
  margin-bottom: 2rem;
}

.section-heading h2 {
  max-width: 14ch;
  margin: 0;
  font-size: clamp(2.5rem, 5.5vw, 5rem);
  line-height: .94;
  letter-spacing: -.055em;
}

.section-heading > p {
  margin: 0;
  color: var(--muted);
  font-size: 1.02rem;
}

.finder {
  position: relative;
}

.finder::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 3rem -25vw auto;
  height: 45rem;
  background: radial-gradient(circle, rgba(255,212,0,.08), transparent 62%);
  pointer-events: none;
}

.finder-controls {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: .85rem;
}

.control-card {
  position: relative;
  min-width: 0;
  padding: 1.1rem;
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.control-card--featured {
  border-color: rgba(255,212,0,.65);
}

.step-number {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  margin-bottom: 1rem;
  color: var(--black);
  background: var(--yellow);
  border-radius: 50%;
  font-weight: 950;
}

.control-card label {
  display: block;
  margin-bottom: .45rem;
  font-weight: 900;
}

.control-card select,
.control-card input {
  width: 100%;
  padding: .72rem;
  color: var(--white);
  background: var(--black);
  border: 1px solid var(--line-strong);
  border-radius: .65rem;
}

.control-card option {
  color: #fff;
  background: #050505;
}

.control-card p {
  margin: .65rem 0 0;
  color: var(--muted-2);
  font-size: .76rem;
}

.topic-scroller {
  display: flex;
  gap: .5rem;
  margin-top: 1rem;
  padding-bottom: .5rem;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--yellow) var(--black-2);
}

.topic-button {
  flex: 0 0 auto;
  min-height: 2.7rem;
  padding: .55rem .78rem;
  color: var(--white);
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 880;
}

.topic-button:hover,
.topic-button.is-active {
  color: var(--black);
  background: var(--yellow);
  border-color: var(--yellow);
}

.results-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin: 2rem 0 1rem;
}

.results-heading h3 {
  margin: 0;
  font-size: clamp(1.7rem, 3.2vw, 2.7rem);
  line-height: 1;
  letter-spacing: -.035em;
}

.rights-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20rem;
  gap: 1rem;
  align-items: start;
}

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

.right-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 1.25rem;
  background:
    linear-gradient(145deg, rgba(255,255,255,.035), transparent 42%),
    var(--black-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 0 0 rgba(0,0,0,0);
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.right-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255,212,0,.55);
  box-shadow: var(--shadow);
}

.right-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.right-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.7rem;
  padding: .25rem .45rem;
  color: var(--muted);
  background: var(--black);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: .65rem;
  font-weight: 850;
  line-height: 1.15;
}

.right-badge--status {
  color: var(--black);
  background: var(--yellow);
  border-color: var(--yellow);
}

.right-card h4 {
  margin: .8rem 0 .55rem;
  font-size: 1.35rem;
  line-height: 1.07;
  letter-spacing: -.025em;
}

.right-card > p {
  margin: 0 0 .8rem;
  color: var(--muted);
}

.right-practical {
  margin: .2rem 0 .8rem;
  padding: .9rem;
  color: var(--white);
  background: var(--black);
  border-left: .3rem solid var(--yellow);
  border-radius: .3rem .8rem .8rem .3rem;
}

.right-practical strong {
  display: block;
  margin-bottom: .25rem;
  color: var(--yellow);
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.right-warning {
  margin-bottom: .8rem;
  padding: .75rem;
  color: var(--black);
  background: #ffdca1;
  border-radius: .7rem;
  font-size: .8rem;
}

.right-source {
  margin-top: auto;
  padding-top: .9rem;
  border-top: 1px solid var(--line);
}

.right-source a {
  display: inline-block;
  font-weight: 900;
  word-break: break-word;
}

.right-source small {
  display: block;
  margin-top: .35rem;
  color: var(--muted-2);
}

.pack-button {
  width: 100%;
  margin-top: .8rem;
  padding: .72rem;
  color: var(--black);
  background: var(--yellow);
  border: 2px solid var(--yellow);
  border-radius: .7rem;
  font-weight: 920;
}

.pack-button.is-added {
  color: var(--success);
  background: transparent;
  border-color: var(--success);
}

.empty-state {
  grid-column: 1 / -1;
  padding: 2rem;
  color: var(--muted);
  background: var(--black-2);
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius);
  text-align: center;
}

.pack-sidebar {
  position: sticky;
  top: 6rem;
  padding: 1.1rem;
  background: var(--yellow);
  color: var(--black);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.pack-sidebar .kicker {
  color: var(--black);
}

.pack-sidebar h3 {
  margin: 0;
  font-size: 1.8rem;
  line-height: 1;
  letter-spacing: -.04em;
}

.pack-sidebar__top > p:last-child {
  margin: .5rem 0 0;
  font-weight: 800;
}

.pack-list--mini {
  max-height: 18rem;
  margin: 1rem 0;
  overflow: auto;
}

.pack-mini-item {
  padding: .6rem 0;
  border-bottom: 1px solid rgba(0,0,0,.25);
}

.pack-mini-item strong {
  display: block;
  line-height: 1.15;
}

.pack-mini-item button {
  min-height: auto;
  padding: .25rem 0;
  color: var(--black);
  background: transparent;
  border: 0;
  font-size: .72rem;
  font-weight: 900;
  text-decoration: underline;
}

.pack-sidebar__actions {
  display: grid;
  gap: .35rem;
}

.pack-sidebar .button--yellow {
  color: var(--white);
  background: var(--black);
  border-color: var(--black);
  box-shadow: none;
}

.pack-sidebar .button--text {
  color: var(--black);
}

.privacy-note {
  margin: .8rem 0 0;
  font-size: .7rem;
  line-height: 1.4;
}

.quick-actions {
  position: relative;
}

.cheat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 1rem;
}

.cheat-card {
  position: relative;
  overflow: hidden;
  padding: 1.25rem;
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.cheat-card::after {
  content: "";
  position: absolute;
  width: 10rem;
  height: 10rem;
  right: -5rem;
  top: -5rem;
  border: 1px solid rgba(255,212,0,.25);
  border-radius: 50%;
}

.cheat-card svg {
  width: 3rem;
  height: 3rem;
  fill: none;
  stroke: var(--yellow);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cheat-card__label {
  margin: 1rem 0 .5rem;
  color: var(--yellow);
  font-size: .72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.cheat-card h3 {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.08;
}

.cheat-card ul {
  margin: 1rem 0;
  padding-left: 1.2rem;
  color: var(--muted);
  font-size: .84rem;
}

.cheat-card li + li {
  margin-top: .35rem;
}

.text-link {
  min-height: auto;
  padding: .25rem 0;
  color: var(--yellow);
  background: transparent;
  border: 0;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: .2rem;
}

.principles {
  position: relative;
}

.animated-rule {
  width: 100%;
  margin-bottom: 2.5rem;
  overflow: hidden;
}

.animated-rule svg {
  width: 100%;
  height: 7rem;
  overflow: visible;
}

.animated-rule path {
  fill: none;
  stroke: rgba(255,212,0,.7);
  stroke-width: 3;
  stroke-dasharray: 12 16;
  animation: dash 14s linear infinite;
}

.animated-rule circle {
  fill: var(--yellow);
  animation: pulse 2.8s ease-in-out infinite;
}

.principle-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 1rem;
}

.principle-grid article {
  padding: 1.2rem;
  border-top: .35rem solid var(--yellow);
  background: var(--black-2);
}

.principle-grid span {
  color: var(--yellow);
  font-weight: 950;
}

.principle-grid h3 {
  margin: 1rem 0 .4rem;
  font-size: 1.3rem;
}

.principle-grid p {
  margin: 0;
  color: var(--muted);
}

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

.coverage-grid article {
  padding: 1.2rem;
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.coverage-grid strong,
.coverage-grid span {
  display: block;
}

.coverage-grid strong {
  font-size: 1.2rem;
}

.coverage-grid span {
  margin-top: .25rem;
  color: var(--muted);
  font-size: .82rem;
}

.meter {
  height: .55rem;
  margin-top: 1rem;
  background: var(--black);
  border-radius: 999px;
  overflow: hidden;
}

.meter i {
  display: block;
  width: var(--value);
  height: 100%;
  background: var(--yellow);
  transform-origin: left;
  animation: meter-grow 1.2s ease both;
}

.ownership__panel {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(18rem,.8fr);
  gap: 2rem;
  padding: clamp(1.4rem, 4vw, 3rem);
  color: var(--black);
  background: var(--yellow);
  border-radius: calc(var(--radius) * 1.25);
}

.ownership h2 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(2.4rem, 5vw, 4.7rem);
  line-height: .95;
  letter-spacing: -.055em;
}

.ownership p {
  max-width: 55rem;
}

.ownership .kicker {
  color: var(--black);
}

.ownership__contact {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .8rem;
  padding: 1.2rem;
  color: var(--white);
  background: var(--black);
  border-radius: var(--radius);
}

.ownership__contact span {
  color: var(--muted);
}

.ownership__contact a {
  font-size: clamp(1rem, 2vw, 1.35rem);
  font-weight: 950;
  word-break: break-word;
}

.site-footer {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem 2rem;
  padding: 2rem max(1rem, calc((100vw - var(--page)) / 2));
  background: var(--black-2);
  border-top: 1px solid var(--line);
}

.site-footer p {
  margin: .25rem 0 0;
  color: var(--muted);
}

.site-footer nav {
  display: flex;
  align-items: start;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .35rem;
}

.site-footer button {
  min-height: auto;
  padding: .35rem;
  color: var(--yellow);
  background: transparent;
  border: 0;
  font-weight: 850;
  text-decoration: underline;
}

.footer-small {
  grid-column: 1 / -1;
  font-size: .72rem;
}

.floating-tools {
  position: fixed;
  z-index: 80;
  right: 1rem;
  bottom: 1rem;
  display: grid;
  place-items: center;
  gap: .12rem;
  width: 4.3rem;
  height: 4.3rem;
  color: var(--black);
  background: var(--yellow);
  border: 2px solid var(--black);
  border-radius: 50%;
  box-shadow: 0 .8rem 2rem rgba(0,0,0,.35);
  font-size: .65rem;
  font-weight: 950;
}

.floating-tools svg {
  width: 1.7rem;
  height: 1.7rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.reading-guide {
  position: fixed;
  z-index: 70;
  left: 0;
  top: 50%;
  display: none;
  width: 100%;
  height: 3px;
  background: var(--yellow);
  box-shadow: 0 0 1rem var(--yellow);
  pointer-events: none;
}

.reading-guide.is-active {
  display: block;
}

.app-dialog {
  width: min(56rem, calc(100% - 1rem));
  max-height: calc(100svh - 2rem);
  padding: 0;
  color: var(--white);
  background: var(--black-2);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: auto;
}

.app-dialog::backdrop {
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(8px);
}

.dialog-head {
  position: sticky;
  z-index: 2;
  top: 0;
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem;
  background: color-mix(in srgb, var(--black-2) 94%, transparent);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}

.dialog-head h2 {
  margin: 0;
  font-size: clamp(1.8rem, 4vw, 3rem);
  line-height: 1;
  letter-spacing: -.04em;
}

.dialog-close {
  padding: .55rem .7rem;
  color: var(--black);
  background: var(--yellow);
  border: 0;
  border-radius: .6rem;
  font-weight: 900;
}

.policy-copy,
.tools-grid,
#packDialog > p,
#packFull,
.dialog-actions,
.tool-status {
  margin-inline: 1.1rem;
}

.policy-copy {
  padding-block: 1rem 1.5rem;
}

.policy-copy h3 {
  margin: 1.4rem 0 .3rem;
  color: var(--yellow);
}

.policy-copy p,
.policy-copy li {
  color: var(--muted);
}

.policy-copy a {
  font-weight: 900;
}

.storage-choice {
  display: grid;
  gap: .8rem;
  margin-block: 1rem;
  padding: 1rem;
  color: var(--black);
  background: var(--yellow);
  border-radius: .8rem;
}

.storage-choice .button--yellow {
  color: var(--white);
  background: var(--black);
  border-color: var(--black);
  box-shadow: none;
}

.tools-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .7rem;
  padding-block: 1rem;
}

.tools-grid button {
  display: grid;
  grid-template-columns: 3rem 1fr;
  align-items: center;
  gap: .8rem;
  min-height: 4.5rem;
  padding: .8rem;
  color: var(--white);
  background: var(--black);
  border: 1px solid var(--line);
  border-radius: .8rem;
  text-align: left;
}

.tools-grid strong {
  color: var(--yellow);
  font-size: 1.35rem;
  text-align: center;
}

.tools-grid span {
  font-weight: 850;
}

.tools-grid button.is-active {
  color: var(--black);
  background: var(--yellow);
}

.tools-grid button.is-active strong {
  color: var(--black);
}

.tool-status {
  padding-bottom: 1rem;
  color: var(--muted);
}

.pack-list {
  display: grid;
  gap: .7rem;
}

.pack-full-item {
  padding: 1rem;
  background: var(--black);
  border: 1px solid var(--line);
  border-radius: .8rem;
}

.pack-full-item h3 {
  margin: .5rem 0;
}

.pack-full-item p {
  color: var(--muted);
}

.pack-full-item button {
  min-height: auto;
  padding: .3rem 0;
  color: var(--danger);
  background: transparent;
  border: 0;
  font-weight: 900;
  text-decoration: underline;
}

.dialog-actions {
  position: sticky;
  bottom: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  padding-block: 1rem;
  background: var(--black-2);
  border-top: 1px solid var(--line);
}

.noscript-warning {
  position: fixed;
  z-index: 999;
  inset: auto 1rem 1rem;
  padding: 1rem;
  color: #050505;
  background: #ffd400;
  border: 3px solid #050505;
  font-weight: 900;
}

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

@keyframes spin-reverse {
  to { transform: rotate(-360deg); }
}

@keyframes dash {
  to { stroke-dashoffset: -220; }
}

@keyframes pulse {
  0%, 100% { opacity: .45; transform: scale(.82); }
  50% { opacity: 1; transform: scale(1.25); }
}

@keyframes breathe {
  0%, 100% { transform: scale(.96); opacity: .75; }
  50% { transform: scale(1.04); opacity: 1; }
}

@keyframes scroll-dot {
  0%, 100% { transform: translate(-50%, 0); opacity: 0; }
  45% { opacity: 1; }
  80% { transform: translate(-50%, .45rem); opacity: 0; }
}

@keyframes meter-grow {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

@media (max-width: 1120px) {
  .site-nav {
    position: absolute;
    top: calc(100% + 1px);
    left: 1rem;
    right: 1rem;
    display: none;
    padding: .8rem;
    background: var(--black-2);
    border: 1px solid var(--line);
    border-radius: 0 0 1rem 1rem;
    box-shadow: var(--shadow);
  }

  .site-nav.is-open {
    display: grid;
  }

  .site-nav a,
  .site-nav button {
    width: 100%;
    text-align: left;
  }

  .menu-button {
    display: block;
  }

  .hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .hero__content {
    max-width: 60rem;
  }

  .hero__visual {
    margin-top: -3rem;
  }

  .rights-orbit {
    width: min(88vw, 37rem);
  }

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

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

@media (max-width: 850px) {
  .legal-bar {
    display: block;
  }

  .legal-bar__links {
    justify-content: flex-start;
    margin-top: .35rem;
  }

  .section-heading,
  .ownership__panel {
    grid-template-columns: 1fr;
  }

  .section-heading h2 {
    max-width: 18ch;
  }

  .rights-layout {
    grid-template-columns: 1fr;
  }

  .pack-sidebar {
    position: static;
  }

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

  .site-footer {
    grid-template-columns: 1fr;
  }

  .site-footer nav {
    justify-content: flex-start;
  }
}

@media (max-width: 620px) {
  html {
    font-size: calc(17px * var(--font-scale));
  }

  .brand small {
    display: none;
  }

  .brand__mark {
    width: 2.6rem;
    height: 2.6rem;
  }

  .hero {
    padding-top: 4rem;
  }

  h1 {
    font-size: clamp(3.3rem, 17vw, 5rem);
  }

  .hero__visual {
    margin-inline: -3rem;
  }

  .scroll-cue {
    display: none;
  }

  .trust-strip {
    display: grid;
  }

  .finder-controls,
  .rights-grid,
  .cheat-grid,
  .principle-grid,
  .coverage-grid,
  .tools-grid {
    grid-template-columns: 1fr;
  }

  .results-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .floating-tools {
    width: 3.8rem;
    height: 3.8rem;
  }
}

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

  .parallax-layer {
    transform: none !important;
  }
}

@media print {
  .legal-bar,
  .site-header,
  .hero,
  .trust-strip,
  .finder-controls,
  .topic-scroller,
  .results-heading,
  .rights-grid,
  .pack-sidebar,
  .quick-actions,
  .principles,
  .coverage,
  .ownership,
  .site-footer,
  .floating-tools,
  .dialog-head,
  .dialog-actions {
    display: none !important;
  }

  body {
    color: #000;
    background: #fff;
  }

  #packDialog[open] {
    position: static;
    width: 100%;
    max-height: none;
    color: #000;
    background: #fff;
    border: 0;
    box-shadow: none;
  }

  .pack-full-item {
    break-inside: avoid;
    color: #000;
    background: #fff;
    border: 1px solid #777;
  }

  .pack-full-item p,
  #packDialog > p {
    color: #000;
  }
}


/* Version 2 Explorer */
.map-tabs,
.studio-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1rem;
}

.map-tab,
.studio-tab,
.veteran-topic,
.library-filter {
  min-height: 2.8rem;
  padding: .55rem .8rem;
  color: var(--white);
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 900;
}

.map-tab.is-active,
.studio-tab.is-active,
.veteran-topic.is-active,
.library-filter.is-active {
  color: var(--black);
  background: var(--yellow);
  border-color: var(--yellow);
}

.map-view,
.studio-panel {
  display: none;
}

.map-view.is-active,
.studio-panel.is-active {
  display: block;
}

.map-panel {
  display: grid;
  grid-template-columns: minmax(0,1fr) 18rem;
  gap: 1rem;
  align-items: stretch;
  padding: 1rem;
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.clickable-map {
  width: 100%;
  height: auto;
  min-height: 25rem;
}

.map-land path {
  fill: rgba(255,255,255,.07);
  stroke: rgba(255,255,255,.24);
  stroke-width: 2;
}

.map-route-lines path {
  fill: none;
  stroke: rgba(255,212,0,.34);
  stroke-width: 2;
  stroke-dasharray: 7 12;
  animation: dash 16s linear infinite;
}

.map-hotspot {
  cursor: pointer;
}

.map-hotspot circle:not(.map-hotspot__pulse) {
  fill: var(--yellow);
  stroke: var(--black);
  stroke-width: 4;
}

.map-hotspot__pulse {
  fill: rgba(255,212,0,.08);
  stroke: rgba(255,212,0,.55);
  stroke-width: 2;
  transform-origin: center;
  transform-box: fill-box;
  animation: map-pulse 2.8s ease-in-out infinite;
}

.map-hotspot text {
  fill: var(--white);
  font-size: 20px;
  font-weight: 950;
  text-anchor: middle;
  letter-spacing: 1px;
  pointer-events: none;
}

.map-hotspot:hover circle:not(.map-hotspot__pulse),
.map-hotspot.is-active circle:not(.map-hotspot__pulse),
.map-hotspot:focus circle:not(.map-hotspot__pulse) {
  fill: var(--white);
}

.map-hotspot.is-active text {
  fill: var(--yellow);
}

.map-hotspot:focus {
  outline: none;
}

.map-hotspot:focus .map-hotspot__pulse {
  stroke: var(--white);
  stroke-width: 5;
}

.map-selection {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.25rem;
  color: var(--black);
  background: var(--yellow);
  border-radius: calc(var(--radius) - .3rem);
}

.map-selection span {
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .09em;
}

.map-selection strong {
  margin: .45rem 0 1.2rem;
  font-size: 1.7rem;
  line-height: 1;
}

.map-selection .button--yellow {
  color: var(--white);
  background: var(--black);
  border-color: var(--black);
  box-shadow: none;
}

.location-list {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: .8rem;
}

.location-list button {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .8rem;
  min-height: 5rem;
  padding: 1rem;
  color: var(--white);
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: 1rem;
  font-weight: 900;
  text-align: left;
}

.location-list button::after {
  content: "→";
  color: var(--yellow);
  font-size: 1.5rem;
}

.location-list button:hover,
.location-list button.is-active {
  border-color: var(--yellow);
}

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

.builder-form,
.builder-output {
  padding: 1.2rem;
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.builder-form {
  display: grid;
  gap: .9rem;
}

.builder-form label:not(.check-row) {
  display: block;
  margin-bottom: .35rem;
  font-weight: 900;
}

.builder-form input,
.builder-form select,
.builder-form textarea,
.builder-output textarea {
  width: 100%;
  padding: .75rem;
  color: var(--white);
  background: var(--black);
  border: 1px solid var(--line-strong);
  border-radius: .65rem;
}

.builder-form textarea {
  min-height: 6.5rem;
  resize: vertical;
}

.builder-output {
  display: flex;
  flex-direction: column;
}

.builder-output textarea {
  flex: 1;
  min-height: 33rem;
  resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  line-height: 1.55;
}

.builder-output__head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .7rem;
}

.builder-output__head span {
  color: var(--muted);
  font-size: .75rem;
  font-weight: 800;
}

.builder-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .7rem;
}

.builder-intro {
  margin: 0;
  color: var(--muted);
}

.check-row {
  display: grid;
  grid-template-columns: 1.5rem 1fr;
  align-items: center;
  gap: .6rem;
  padding: .65rem;
  background: var(--black);
  border: 1px solid var(--line);
  border-radius: .65rem;
  font-weight: 800;
}

.check-row input {
  width: 1.2rem;
  height: 1.2rem;
  min-height: auto;
  accent-color: var(--yellow);
}

.two-field {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .7rem;
}

.veterans-hero {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(18rem,.45fr);
  gap: 2rem;
  align-items: center;
  padding: clamp(1.3rem,4vw,3rem);
  background:
    linear-gradient(120deg,rgba(255,212,0,.08),transparent 55%),
    var(--black-2);
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) * 1.25);
}

.veterans-hero h2 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(2.6rem,5vw,5rem);
  line-height: .93;
  letter-spacing: -.055em;
}

.veterans-hero p:last-child {
  max-width: 52rem;
  color: var(--muted);
}

.veterans-hero svg {
  width: 100%;
  height: auto;
}

.veteran-shield,
.veteran-line,
.veteran-pulse {
  fill: none;
  vector-effect: non-scaling-stroke;
}

.veteran-shield {
  stroke: rgba(255,255,255,.27);
  stroke-width: 3;
}

.veteran-line {
  stroke: rgba(255,212,0,.44);
  stroke-width: 2;
  stroke-dasharray: 8 12;
  animation: dash 14s linear infinite;
}

.veteran-pulse {
  stroke: var(--yellow);
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 470;
  stroke-dashoffset: 470;
  animation: draw-pulse 4s ease-in-out infinite;
}

.veteran-controls {
  display: grid;
  grid-template-columns: 18rem 1fr;
  gap: 1rem;
  align-items: end;
  margin: 1rem 0;
}

.veteran-controls label {
  display: block;
  margin-bottom: .35rem;
  font-weight: 900;
}

.veteran-controls select {
  width: 100%;
  padding: .7rem;
  color: var(--white);
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: .7rem;
}

.veteran-topic-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .45rem;
}

.veteran-callout {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .8rem;
  align-items: start;
  padding: 1rem;
  color: var(--black);
  background: var(--yellow);
  border-radius: 1rem;
}

.veteran-callout p {
  margin: 0;
}

.veteran-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.veteran-card {
  display: flex;
  flex-direction: column;
  padding: 1.15rem;
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.veteran-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.veteran-card__meta span {
  padding: .25rem .45rem;
  color: var(--black);
  background: var(--yellow);
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 900;
}

.veteran-card h3 {
  margin: .8rem 0 .4rem;
  font-size: 1.35rem;
  line-height: 1.08;
}

.veteran-card p {
  color: var(--muted);
}

.veteran-card .veteran-action {
  padding: .8rem;
  background: var(--black);
  border-left: .3rem solid var(--yellow);
  border-radius: .2rem .7rem .7rem .2rem;
}

.veteran-card a {
  margin-top: auto;
  padding-top: .7rem;
  font-weight: 900;
}

.library-controls {
  display: grid;
  grid-template-columns: minmax(15rem,.5fr) 1fr;
  gap: 1rem;
  align-items: end;
  margin-bottom: 1rem;
}

.library-controls label {
  display: block;
  margin-bottom: .35rem;
  font-weight: 900;
}

.library-controls input {
  width: 100%;
  padding: .72rem;
  color: var(--white);
  background: var(--black-2);
  border: 1px solid var(--line);
  border-radius: .7rem;
}

.library-filter-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .45rem;
}

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

.library-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 20rem;
  padding: 1.2rem;
  overflow: hidden;
  background:
    linear-gradient(145deg,rgba(255,212,0,.08),transparent 42%),
    var(--black-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.library-card::after {
  content: attr(data-number);
  position: absolute;
  right: -.1rem;
  bottom: -1.5rem;
  color: rgba(255,255,255,.04);
  font-size: 8rem;
  font-weight: 950;
  line-height: 1;
}

.library-card__category {
  color: var(--yellow);
  font-size: .7rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.library-card h3 {
  position: relative;
  z-index: 1;
  margin: .7rem 0 .5rem;
  font-size: 1.6rem;
  line-height: 1.03;
  letter-spacing: -.035em;
}

.library-card p {
  position: relative;
  z-index: 1;
  color: var(--muted);
}

.library-card blockquote {
  position: relative;
  z-index: 1;
  margin: .6rem 0 1rem;
  color: var(--white);
  font-size: .9rem;
  font-weight: 850;
}

.library-card button {
  position: relative;
  z-index: 1;
  align-self: flex-start;
  min-height: auto;
  margin-top: auto;
  padding: .35rem 0;
  color: var(--yellow);
  background: transparent;
  border: 0;
  font-weight: 950;
  text-decoration: underline;
  text-underline-offset: .2rem;
}

.library-reader {
  padding: 1.2rem;
}

.library-reader .reader-lead {
  color: var(--white);
  font-size: 1.18rem;
  font-weight: 800;
}

.library-reader h3 {
  margin: 1.5rem 0 .4rem;
  color: var(--yellow);
  font-size: 1.35rem;
}

.library-reader p,
.library-reader li {
  color: var(--muted);
}

.library-reader blockquote {
  margin: 1.4rem 0;
  padding: 1rem;
  color: var(--black);
  background: var(--yellow);
  border-radius: .8rem;
  font-weight: 900;
}

.library-reader a {
  font-weight: 900;
}

.site-footer a {
  padding: .35rem;
  font-weight: 850;
}

@keyframes map-pulse {
  0%,100% { opacity:.25; transform:scale(.8); }
  50% { opacity:1; transform:scale(1.2); }
}

@keyframes draw-pulse {
  0% { stroke-dashoffset:470; opacity:.3; }
  45%,75% { stroke-dashoffset:0; opacity:1; }
  100% { stroke-dashoffset:-470; opacity:.3; }
}

@media (max-width: 1050px) {
  .map-panel,
  .builder-grid,
  .veterans-hero {
    grid-template-columns: 1fr;
  }

  .map-selection {
    min-height: 13rem;
  }

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

  .veteran-controls {
    grid-template-columns: 1fr;
  }

  .veteran-topic-buttons,
  .library-filter-row {
    justify-content: flex-start;
  }
}

@media (max-width: 720px) {
  .location-list,
  .veteran-grid,
  .library-grid,
  .library-controls {
    grid-template-columns: 1fr;
  }

  .two-field {
    grid-template-columns: 1fr;
  }

  .clickable-map {
    min-height: 18rem;
  }

  .map-hotspot text {
    font-size: 24px;
  }
}


/* Boxed dashboard interface */
body{height:100vh;overflow:hidden}
.legal-bar{position:relative}
.site-header{position:relative}
.dashboard-intro,.trust-strip,.dashboard-support-section{display:none}
main{height:calc(100vh - 8.8rem);overflow:hidden}
.dashboard-shell{
  width:min(1500px,calc(100% - 1.2rem));
  height:calc(100vh - 9.5rem);
  margin:.6rem auto;
  display:grid;
  grid-template-columns:11rem minmax(0,1fr);
  overflow:hidden;
  background:var(--black-2);
  border:1px solid var(--line);
  border-radius:1.35rem;
  box-shadow:var(--shadow);
}
.dashboard-rail{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  padding:1rem;
  background:var(--black);
  border-right:1px solid var(--line);
}
.dashboard-rail strong{
  margin-bottom:.6rem;
  color:var(--yellow);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.dashboard-rail button{
  min-height:2.8rem;
  padding:.65rem .75rem;
  color:var(--white);
  background:transparent;
  border:1px solid transparent;
  border-radius:.7rem;
  font-weight:850;
  text-align:left;
}
.dashboard-rail button:hover,.dashboard-rail button.is-active{
  color:var(--black);
  background:var(--yellow);
}
.dashboard-workspace{
  position:relative;
  min-width:0;
  height:100%;
  overflow:hidden;
}
.dashboard-panel{
  display:none;
  width:100%;
  height:100%;
  margin:0;
  padding:1.3rem;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--yellow) var(--black);
}
.dashboard-panel.is-active{display:block}
.dashboard-panel .section-heading{margin-bottom:1rem}
.dashboard-panel .section-heading h2{font-size:clamp(2rem,4vw,3.6rem)}
.dashboard-panel .finder-controls{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard-panel .rights-layout{grid-template-columns:minmax(0,1fr) 18rem}
.dashboard-panel .rights-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard-panel .builder-output textarea{min-height:22rem}
.dashboard-nav{gap:.25rem}
.dashboard-nav__item{white-space:nowrap}
.dashboard-menu-toggle{display:none;align-items:center;gap:.45rem}
.dashboard-pack-layout{display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:1rem}
.pack-dashboard-actions{display:grid;align-content:start;gap:.6rem}
#dashboardPackList .pack-full-item{margin-bottom:.7rem}
.ownership{display:none}
.site-footer{display:none}
.floating-tools{bottom:.7rem}
@media(max-width:1120px){
  .dashboard-menu-toggle{display:inline-flex}
  .dashboard-nav{
    position:absolute;
    top:100%;
    left:.6rem;
    right:.6rem;
    z-index:150;
    display:none;
    max-height:calc(100vh - 8rem);
    overflow:auto;
    padding:.75rem;
    background:var(--black-2);
    border:1px solid var(--line);
    border-radius:0 0 1rem 1rem;
    box-shadow:var(--shadow);
  }
  .dashboard-nav.is-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-nav a,.dashboard-nav button{width:100%;text-align:left}
  .dashboard-shell{grid-template-columns:5.2rem minmax(0,1fr)}
  .dashboard-rail{padding:.55rem}
  .dashboard-rail strong{display:none}
  .dashboard-rail button{padding:.5rem;font-size:.72rem;text-align:center}
  .dashboard-panel .finder-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  body{height:auto;min-height:100vh;overflow:auto}
  main{height:auto;overflow:visible}
  .dashboard-shell{
    width:calc(100% - .7rem);
    height:calc(100vh - 8.7rem);
    min-height:38rem;
    grid-template-columns:1fr;
  }
  .dashboard-rail{
    display:flex;
    flex-direction:row;
    overflow-x:auto;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .dashboard-rail button{flex:0 0 auto;min-width:5.7rem}
  .dashboard-workspace{min-height:0}
  .dashboard-panel{padding:.85rem}
  .dashboard-panel .finder-controls,
  .dashboard-panel .rights-grid,
  .builder-grid,
  .veteran-grid,
  .library-grid,
  .dashboard-pack-layout{grid-template-columns:1fr}
  .dashboard-panel .rights-layout{grid-template-columns:1fr}
  .pack-sidebar{display:none}
  .map-panel{grid-template-columns:1fr}
  .dashboard-nav.is-open{grid-template-columns:1fr}
}


/* Why this application exists */
.why-page{
  height:auto;
  min-height:100vh;
  overflow:auto;
}
.why-page main{
  height:auto;
  overflow:visible;
}
.why-page .legal-bar__links a{
  color:#050505;
  font-weight:900;
}
.why-header{
  position:sticky;
}
.why-menu-toggle{
  display:none;
  align-items:center;
  gap:.45rem;
}
.why-hero{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(22rem,.88fr);
  gap:2rem;
  align-items:center;
  width:min(1380px,calc(100% - 2rem));
  min-height:calc(100svh - 8rem);
  margin:auto;
  padding:clamp(4rem,8vw,8rem) 0;
}
.why-hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:10% 8%;
  background:radial-gradient(circle,rgba(255,212,0,.11),transparent 68%);
}
.why-hero h1{
  max-width:12ch;
}
.why-lead{
  max-width:54rem;
  color:var(--muted);
  font-size:clamp(1.08rem,2vw,1.35rem);
}
.why-hero__visual svg{
  width:100%;
  height:auto;
  overflow:visible;
}
.scattered-pages rect{
  fill:rgba(255,255,255,.035);
  stroke:rgba(255,255,255,.26);
  stroke-width:2;
}
.scattered-pages path{
  fill:none;
  stroke:rgba(255,255,255,.28);
  stroke-width:3;
  stroke-linecap:round;
}
.why-routes path{
  fill:none;
  stroke:var(--yellow);
  stroke-width:3;
  stroke-dasharray:10 14;
  animation:dash 13s linear infinite;
}
.why-core circle,.why-core path{
  fill:none;
  stroke:var(--yellow);
  stroke-width:5;
}
.why-core__glow{
  fill:rgba(255,212,0,.15)!important;
  stroke:none!important;
  animation:breathe 3.5s ease-in-out infinite;
}
.why-strip{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:.7rem 1.5rem;
  padding:1rem max(1rem,calc((100vw - 1380px)/2));
  color:var(--black);
  background:var(--yellow);
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.why-section,.challenge-section,.final-statement{
  width:min(1280px,calc(100% - 2rem));
  margin:auto;
  padding:clamp(4rem,8vw,7rem) 0;
}
.why-section__heading{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(20rem,.5fr);
  gap:2rem;
  align-items:end;
  margin-bottom:2rem;
}
.why-section__heading h2,.challenge-section h2,.funding-layout h2,.association-panel h2,.final-statement h2{
  margin:0;
  font-size:clamp(2.6rem,5vw,5rem);
  line-height:.94;
  letter-spacing:-.055em;
}
.why-card-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.why-card{
  padding:1.2rem;
  background:var(--black-2);
  border:1px solid var(--line);
  border-top:.35rem solid var(--yellow);
  border-radius:0 0 var(--radius) var(--radius);
}
.why-card span{
  color:var(--yellow);
  font-weight:950;
}
.why-card h3{
  margin:1rem 0 .45rem;
  font-size:1.35rem;
}
.why-card p{
  margin:0;
  color:var(--muted);
}
.challenge-section{
  width:auto;
  max-width:none;
  padding-inline:max(1rem,calc((100vw - 1280px)/2));
  background:
    linear-gradient(125deg,rgba(255,212,0,.06),transparent 55%),
    var(--black-2);
  border-block:1px solid var(--line);
}
.challenge-section__intro{
  max-width:880px;
}
.challenge-section__intro p{
  color:var(--muted);
  font-size:1.05rem;
}
.institution-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin-top:2rem;
}
.institution-card{
  padding:1.4rem;
  background:var(--black);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.institution-card__name{
  margin:0;
  color:var(--yellow)!important;
  font-size:.72rem!important;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.institution-card h3{
  margin:.7rem 0 .45rem;
  font-size:1.55rem;
  line-height:1.06;
}
.institution-card p{
  color:var(--muted);
}
.institution-card a{
  font-weight:900;
}
.institution-card--yellow{
  color:var(--black);
  background:var(--yellow);
}
.institution-card--yellow .institution-card__name,.institution-card--yellow p{
  color:var(--black)!important;
}
.why-quote{
  margin:2rem 0 0;
  padding:clamp(1.2rem,4vw,2.5rem);
  color:var(--black);
  background:var(--yellow);
  border-radius:var(--radius);
  font-size:clamp(1.5rem,3.3vw,3rem);
  font-weight:950;
  line-height:1.08;
  letter-spacing:-.035em;
}
.funding-layout{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(20rem,.8fr);
  gap:1rem;
}
.funding-layout p{
  color:var(--muted);
}
.funding-box{
  align-self:start;
  padding:1.4rem;
  color:var(--black);
  background:var(--yellow);
  border-radius:var(--radius);
}
.funding-box strong{
  font-size:1.25rem;
}
.funding-box li+li{
  margin-top:.5rem;
}
.honesty-panel{
  margin-top:1rem;
  padding:1.5rem;
  background:var(--black-2);
  border:1px solid var(--line);
  border-left:.4rem solid var(--yellow);
  border-radius:var(--radius);
}
.honesty-panel h3{
  margin:0 0 .6rem;
  color:var(--yellow);
  font-size:1.55rem;
}
.honesty-panel p{
  color:var(--muted);
}
.association-panel{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(18rem,.55fr);
  gap:2rem;
  padding:clamp(1.4rem,4vw,3rem);
  background:var(--black-2);
  border:1px solid var(--line);
  border-radius:calc(var(--radius)*1.25);
}
.association-panel p{
  color:var(--muted);
}
.association-actions{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.7rem;
}
.final-statement{
  text-align:center;
}
.final-statement p{
  margin:0;
  color:var(--muted);
  font-size:1.1rem;
}
.final-statement h2{
  max-width:14ch;
  margin:.5rem auto 1.5rem;
}
.why-footer{
  display:grid;
  grid-template-columns:1fr auto;
  gap:1rem 2rem;
  padding:2rem max(1rem,calc((100vw - 1280px)/2));
  background:var(--black-2);
  border-top:1px solid var(--line);
}
.why-footer p{
  margin:.25rem 0 0;
  color:var(--muted);
}
.why-footer nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:.7rem;
}
.why-footer nav a{
  font-weight:850;
}
.why-footer>p{
  grid-column:1/-1;
  font-size:.72rem;
}
@media(max-width:1000px){
  .why-menu-toggle{display:inline-flex}
  .why-nav{
    position:absolute;
    top:100%;
    left:.6rem;
    right:.6rem;
    display:none;
    padding:.75rem;
    background:var(--black-2);
    border:1px solid var(--line);
    border-radius:0 0 1rem 1rem;
    box-shadow:var(--shadow);
  }
  .why-nav.is-open{
    display:grid;
    grid-template-columns:1fr;
  }
  .why-nav a{
    width:100%;
    text-align:left;
  }
  .why-hero,.funding-layout,.association-panel{
    grid-template-columns:1fr;
  }
  .why-hero__visual{
    max-width:38rem;
    margin:auto;
  }
  .why-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:700px){
  .why-section__heading,.institution-grid,.why-footer{
    grid-template-columns:1fr;
  }
  .why-card-grid{
    grid-template-columns:1fr;
  }
  .why-footer nav{
    justify-content:flex-start;
  }
}

.dashboard-rail__link{
  display:flex;
  align-items:center;
  min-height:2.8rem;
  padding:.65rem .75rem;
  color:var(--yellow);
  border:1px solid var(--line);
  border-radius:.7rem;
  font-size:.78rem;
  font-weight:900;
  text-decoration:none;
}
.dashboard-rail__link:hover{
  color:var(--black);
  background:var(--yellow);
}
@media(max-width:1120px){
  .dashboard-rail__link{
    flex:0 0 auto;
    justify-content:center;
    min-width:5.7rem;
    padding:.5rem;
    font-size:.72rem;
  }
}
