/* Scroll & Stone home - Inside the Codex */

:root {
  --codex-vellum: #F3E9D2;
  --codex-vellum-2: #EFE3C6;
  --codex-vellum-3: #E6D5AF;
  --codex-lapis: #24356E;
  --codex-deep: #16224C;
  --codex-lapis-2: #2C4087;
  --codex-vermilion: #C8401F;
  --codex-malachite: #1E7B4F;
  --codex-tyrian: #6E2B6B;
  --codex-gold: #C9A227;
  --codex-gold-hi: #F0DD9A;
  --codex-gold-deep: #8C6E1D;
  --codex-ink: #2A2419;
  --codex-coast: #B98A4B;
  --tiltx: 50%;
  --mx: 0px;
  --my: 0px;
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

.home-codex {
  --topbar-h: 74px;
  background: var(--codex-deep);
  color: var(--codex-vellum);
  overflow-x: hidden;
}

.home-codex .topbar {
  position: fixed;
  inset: 0 0 auto;
  z-index: 30;
  background: linear-gradient(180deg, rgba(10, 15, 36, 0.52), transparent);
  border-bottom: 0;
  backdrop-filter: none;
}

.home-codex .wordmark,
.home-codex .topnav a {
  text-shadow: 0 1px 8px rgba(10, 15, 36, 0.8);
}

.home-codex .site-tagline {
  color: rgba(240, 221, 154, 0.72);
}

.gold-text {
  background: linear-gradient(105deg, var(--codex-gold-deep) 0%, var(--codex-gold) calc(var(--tiltx) - 22%), var(--codex-gold-hi) var(--tiltx), var(--codex-gold) calc(var(--tiltx) + 22%), var(--codex-gold-deep) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.home-codex .hero {
  min-height: 100svh;
  height: 100svh;
  background:
    radial-gradient(ellipse 72% 60% at 38% 62%, rgba(46, 67, 145, 0.68), transparent 70%),
    linear-gradient(130deg, var(--codex-lapis-2), var(--codex-lapis) 45%, var(--codex-deep));
}

.codex-map {
  inset: -3%;
  width: 106%;
  height: 106%;
  transform: translate(calc(var(--mx) * -1), calc(var(--my) * -1));
  transition: transform 0.6s cubic-bezier(.2, .6, .2, 1);
  animation: breathe-page 22s ease-in-out infinite alternate;
}

@keyframes breathe-page {
  from { scale: 1; }
  to { scale: 1.035; }
}

#worldmap,
#symmap {
  width: 100%;
  height: 100%;
}

.home-codex .map-frame-line,
.home-codex .compass,
.home-codex .map-zoom,
.home-codex .community-card {
  display: none;
}

.home-codex .map-texture {
  z-index: 2;
  opacity: 0.28;
  mix-blend-mode: multiply;
  background-image: var(--grain);
}

.home-codex .map-vignette {
  z-index: 4;
  background:
    radial-gradient(ellipse 120% 95% at 50% 45%, transparent 52%, rgba(10, 15, 36, 0.58) 100%),
    radial-gradient(ellipse 55% 40% at 38% 64%, rgba(240, 221, 154, 0.1), transparent 70%);
}

.lightray {
  position: absolute;
  inset: 0;
  z-index: 3;
  overflow: hidden;
  pointer-events: none;
}

.lightray::before {
  content: "";
  position: absolute;
  top: -30%;
  bottom: -30%;
  left: -60%;
  width: 46%;
  transform: skewX(-14deg);
  background: linear-gradient(100deg, transparent 0%, rgba(240, 221, 154, 0.14) 42%, rgba(255, 250, 230, 0.2) 50%, rgba(240, 221, 154, 0.14) 58%, transparent 100%);
  mix-blend-mode: screen;
  animation: sweep 9.5s ease-in-out infinite;
}

@keyframes sweep {
  0% { left: -60%; }
  55%, 100% { left: 115%; }
}

.gold-motes span {
  position: absolute;
  left: var(--x);
  bottom: 0;
  z-index: 3;
  width: var(--s);
  height: var(--s);
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(240, 221, 154, 0.95) 0%, rgba(201, 162, 39, 0.35) 60%, transparent 100%);
  filter: blur(0.4px);
  animation: drift var(--d) linear infinite;
  animation-delay: var(--delay);
}

@keyframes drift {
  0% { transform: translate3d(0, 18vh, 0) scale(0.7); opacity: 0; }
  12% { opacity: 0.85; }
  88% { opacity: 0.5; }
  100% { transform: translate3d(7vw, -92vh, 0) scale(1.15); opacity: 0; }
}

.home-codex .hero-title {
  top: auto;
  left: clamp(1.6rem, 6vw, 5.5rem);
  bottom: 22vh;
  max-width: 46rem;
  color: var(--m-hero-fg);
  transform: translate(calc(var(--mx) * 0.4), calc(var(--my) * 0.4));
  transition: transform 0.6s cubic-bezier(.2, .6, .2, 1);
}

.home-codex .hero-title .eyebrow {
  color: var(--codex-gold-hi);
  opacity: 0.86;
  margin-bottom: 1.2rem;
}

.home-codex .hero-title h1 {
  max-width: 13ch;
  font-size: clamp(2.6rem, 5.4vw, 4.7rem);
  line-height: 1.04;
  letter-spacing: 0;
  color: var(--m-hero-fg);
  text-shadow: 0 2px 30px color-mix(in srgb, var(--m-ocean) 68%, transparent);
}

.home-codex .hero-title h1 span {
  display: block;
  font-weight: 700;
}

.home-codex .hero-sub,
.home-codex .hero-credo {
  margin-top: 1.15rem;
  max-width: 36rem;
  font-size: clamp(0.95rem, 1.2vw, 1.1rem);
  line-height: 1.65;
  color: color-mix(in srgb, var(--m-hero-fg) 90%, transparent);
  text-shadow: 0 1px 12px color-mix(in srgb, var(--m-ocean) 72%, transparent);
}

.home-codex .hero-sub {
  max-width: 34rem;
  font-style: italic;
}

.home-codex .hero-credo b {
  font-family: var(--utility);
  font-weight: 600;
  font-size: 0.82em;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.home-codex .hero[data-epoch="antique"] .hero-title .gold-text,
.home-codex .hero[data-epoch="print"] .hero-title .gold-text {
  background: none;
  color: var(--codex-gold-deep);
  -webkit-text-fill-color: currentColor;
  text-shadow: 0 1px 0 rgba(255, 246, 218, 0.32);
}

.home-codex .filament {
  left: 8%;
  right: 8%;
  bottom: 9vh;
  width: auto;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--codex-vellum);
  backdrop-filter: none;
}

.home-codex .era-float {
  --era-rubric-half: min(16.5rem, 44vw);
  position: absolute;
  left: clamp(var(--era-rubric-half), calc(var(--era-left, 0) * 1%), calc(100% - var(--era-rubric-half)));
  bottom: 30px;
  transform: translateX(-50%);
  width: min(33rem, 90vw);
  text-align: center;
}

.home-codex .era-readout .era-year {
  font-family: var(--utility);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--codex-gold-hi);
}

.home-codex .era-readout .era-title {
  font-family: var(--display);
  font-size: clamp(1.1rem, 2.3vw, 1.5rem);
  font-weight: 700;
  line-height: 1.15;
  color: var(--codex-vellum);
  text-shadow: 0 2px 18px rgba(10, 15, 36, 0.8);
}

.home-codex .era-caption {
  display: -webkit-box;
  max-width: min(33rem, 90vw);
  min-height: 0;
  margin-top: 0.28rem;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-size: clamp(0.76rem, 1vw, 0.88rem);
  line-height: 1.35;
  font-style: italic;
  color: rgba(243, 233, 210, 0.78);
  text-shadow: 0 2px 14px rgba(10, 15, 36, 0.78);
}

.home-codex .slider-block {
  position: relative;
  padding: 0;
}

.home-codex .era-slider {
  position: absolute;
  inset: -22px 0 auto;
  width: 100%;
  height: 48px;
  opacity: 0;
  z-index: 2;
}

.home-codex .thread {
  position: relative;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--codex-gold-deep) 6%, var(--codex-gold) 50%, var(--codex-gold-deep) 94%, transparent);
  box-shadow: 0 0 12px rgba(201, 162, 39, 0.5);
}

.home-codex .bead {
  position: absolute;
  top: 50%;
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 35% 30%, var(--codex-gold-hi), var(--codex-gold) 55%, var(--codex-gold-deep));
  box-shadow: 0 0 8px rgba(240, 221, 154, 0.5);
  cursor: pointer;
  transition: scale 0.3s, width 0.3s, height 0.3s, box-shadow 0.3s;
  z-index: 3;
}

.home-codex .bead:hover {
  scale: 1.7;
}

.home-codex .bead.lit {
  width: 15px;
  height: 15px;
  box-shadow: 0 0 22px 6px rgba(240, 221, 154, 0.65);
  animation: lampGlow 3.5s ease-in-out infinite;
}

@keyframes lampGlow {
  0%, 100% { box-shadow: 0 0 16px 4px rgba(240, 221, 154, 0.5); }
  50% { box-shadow: 0 0 26px 9px rgba(240, 221, 154, 0.8); }
}

.home-codex .bead span {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--utility);
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  color: var(--codex-vellum);
  opacity: 0;
  transition: opacity 0.3s;
  white-space: nowrap;
}

.home-codex .bead:hover span,
.home-codex .bead.lit span {
  opacity: 0.75;
}

.home-codex .era-replay {
  position: absolute;
  right: 0;
  top: 1.15rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid rgba(240, 221, 154, 0.52);
  border-radius: 999px;
  background: rgba(22, 34, 76, 0.32);
  color: var(--codex-gold-hi);
  box-shadow: 0 0 14px rgba(201, 162, 39, 0.18);
  font-family: var(--utility);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
}

.home-codex .era-replay:hover,
.home-codex .era-replay:focus-visible {
  background: rgba(22, 34, 76, 0.52);
  border-color: var(--codex-gold-hi);
}

.home-codex .scroll-cue {
  left: 50%;
  right: auto;
  bottom: 2.2vh;
  transform: translateX(-50%);
  font-family: var(--body);
  font-size: 0.85rem;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-transform: none;
  color: rgba(243, 233, 210, 0.65);
}

.home-codex .map-tooltip {
  position: fixed;
  z-index: 40;
  width: 250px;
  max-width: calc(100vw - 24px);
  padding: 0.85rem 1rem;
  border: 0;
  border-radius: 0;
  font-family: var(--body);
  font-size: 0.88rem;
  font-style: italic;
  line-height: 1.45;
  color: var(--codex-ink);
  background: linear-gradient(165deg, #FAF3E0, #EFE2C2);
  clip-path: polygon(0 3%, 4% 0, 96% 1%, 100% 6%, 99% 95%, 95% 100%, 3% 99%, 0 94%);
  box-shadow: 4px 6px 22px rgba(5, 8, 20, 0.55);
  transform: scale(0.92) translateY(4px);
  transform-origin: left center;
}

.home-codex .map-tooltip.show {
  opacity: 1;
  transform: scale(1) translateY(0);
}

.home-codex .map-tooltip strong {
  font-family: var(--display);
  font-style: normal;
  font-size: 1.02rem;
  color: var(--codex-lapis);
  display: block;
  margin-bottom: 0.15rem;
  letter-spacing: 0;
  text-transform: none;
}

.home-codex .ocean {
  fill: var(--m-ocean);
  opacity: var(--m-ocean-a);
}

.home-codex .land {
  fill: var(--m-land);
  opacity: var(--m-land-a);
}

.home-codex .ghost-land {
  display: block;
  stroke: color-mix(in srgb, var(--m-coast) 82%, var(--m-ink));
  stroke-width: 1.35;
  opacity: 0.58;
  filter: drop-shadow(0 0 1px rgba(255, 246, 218, 0.26));
}

.home-codex .coast-flood {
  flood-color: color-mix(in srgb, var(--m-coast) 86%, var(--m-ink));
}

.home-codex .stone-mark {
  display: none;
}

.home-codex .empire {
  fill: rgba(200, 64, 31, 0.16);
  stroke: rgba(200, 64, 31, 0.45);
}

.home-codex .empire-label {
  fill: rgba(240, 180, 150, 0.9);
}

.home-codex .dot {
  fill: url(#codex-goldlamp);
  stroke: rgba(255, 230, 170, 0.88);
  animation: lampPulse 4.2s ease-in-out infinite;
}

.home-codex .dot-halo {
  fill: url(#codex-halo);
  stroke: none;
}

@keyframes lampPulse {
  0%, 100% { filter: drop-shadow(0 0 6px rgba(240, 221, 154, 0.55)); }
  50% { filter: drop-shadow(0 0 14px rgba(240, 221, 154, 0.95)); }
}

.home-codex .place-label,
.home-codex .sea-label {
  fill: var(--codex-vellum);
  stroke: rgba(22, 34, 76, 0.34);
  font-family: var(--body);
  font-style: italic;
}

.home-codex .sea-label {
  fill: rgba(240, 221, 154, 0.55);
  letter-spacing: 5px;
}

.page-south {
  position: relative;
  color: var(--codex-ink);
  background:
    radial-gradient(ellipse 90% 40% at 50% 0%, rgba(255, 252, 240, 0.65), transparent 60%),
    linear-gradient(180deg, var(--codex-vellum-2) 0%, var(--codex-vellum) 45%, #EDE0BF 100%);
}

.page-south::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: var(--grain);
  opacity: 0.16;
  mix-blend-mode: multiply;
}

.shore {
  display: block;
  width: 100%;
  height: 21vh;
  margin-top: -1px;
}

.vine {
  position: absolute;
  left: clamp(0.5rem, 4vw, 4rem);
  top: 6vh;
  height: 34vh;
  z-index: 1;
  opacity: 0.9;
}

.colophon {
  position: relative;
  max-width: 54rem;
  margin: 0 auto;
  padding: 9vh 2rem 12vh;
  text-align: center;
  z-index: 2;
}

.colophon .flourish {
  font-size: 1.5rem;
  color: var(--codex-gold);
  letter-spacing: 1.2em;
  padding-left: 1.2em;
  margin-bottom: 2.4rem;
}

.colophon blockquote {
  font-family: var(--display);
  font-weight: 300;
  font-size: clamp(1.7rem, 3.1vw, 2.7rem);
  line-height: 1.32;
  color: var(--codex-ink);
}

.colophon blockquote b {
  font-weight: 700;
}

.colophon cite {
  display: block;
  margin-top: 2rem;
  font-family: var(--utility);
  font-size: 0.68rem;
  font-style: normal;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--codex-tyrian);
  opacity: 0.85;
}

.treasury {
  position: relative;
  z-index: 2;
  padding: 2vh 0 8vh;
}

.treasury .head {
  position: relative;
  z-index: 2;
  margin-bottom: 6vh;
  text-align: center;
}

.treasury .head .eyebrow {
  color: var(--codex-tyrian);
}

.treasury .head h2 {
  font-family: var(--display);
  font-weight: 900;
  font-size: clamp(2rem, 3.6vw, 3.1rem);
  line-height: 1.1;
  color: var(--codex-ink);
}

.treasury .head p {
  max-width: 36rem;
  margin: 0.6rem auto 0;
  font-style: italic;
  opacity: 0.75;
}

.docs {
  position: relative;
  max-width: 1280px;
  min-height: 84vh;
  margin: 0 auto;
}

.doc {
  position: absolute;
  z-index: 3;
  width: var(--w);
  text-decoration: none;
  cursor: pointer;
  transform: rotate(var(--r));
  transition: transform 0.5s cubic-bezier(.2, .7, .2, 1), z-index 0s;
}

.doc:hover,
.doc:focus-visible {
  z-index: 8;
  transform: translateY(-12px) scale(1.04) rotate(0deg);
}

.doc::before {
  content: "";
  position: absolute;
  inset: -14%;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(ellipse 60% 60% at 50% 55%, rgba(201, 162, 39, 0.22), rgba(140, 110, 29, 0.07) 55%, transparent 72%);
  filter: blur(6px);
}

.doc img {
  display: block;
  width: 100%;
  filter: sepia(0.22) saturate(1.28) contrast(1.07) brightness(1.02) drop-shadow(0 16px 26px rgba(58, 42, 20, 0.38));
  -webkit-mask-image: radial-gradient(ellipse 74% 74% at 50% 50%, #000 52%, transparent 76%);
  mask-image: radial-gradient(ellipse 74% 74% at 50% 50%, #000 52%, transparent 76%);
}

.doc:hover img,
.doc:focus-visible img {
  filter: sepia(0.12) saturate(1.35) contrast(1.1) brightness(1.06) drop-shadow(0 26px 38px rgba(58, 42, 20, 0.45));
}

.doc .caption {
  position: absolute;
  left: 50%;
  bottom: -2.6rem;
  width: max-content;
  max-width: 112%;
  transform: translateX(-50%);
  text-align: center;
}

.doc .caption span {
  display: block;
}

.cap-series {
  font-family: var(--utility);
  font-size: 0.56rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--codex-tyrian);
}

.cap-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.25;
  color: var(--codex-ink);
}

.home-codex .contribute {
  position: relative;
  z-index: 2;
  background: transparent;
  color: var(--codex-ink);
}

.home-codex .contribute-inner {
  padding-top: 2vh;
  padding-bottom: 9vh;
}

.home-codex .btn-dark {
  margin-top: 1.4rem;
  background: var(--codex-lapis);
}

.home-codex footer {
  position: relative;
  z-index: 2;
  border-top-color: rgba(140, 110, 29, 0.22);
  background: #EDE0BF;
}

.home-codex footer .fine {
  color: rgba(42, 36, 25, 0.68);
}

@media (max-width: 900px) {
  .home-codex .topbar {
    position: absolute;
  }

  .home-codex .hero-title {
    left: 1.2rem;
    right: 1.2rem;
    bottom: 27vh;
    max-width: none;
  }

  .home-codex .hero-title h1 {
    font-size: clamp(2.25rem, 10vw, 3.6rem);
  }

  .home-codex .hero-sub {
    display: block;
    max-width: 32rem;
  }

  .home-codex .hero-credo {
    max-width: 34rem;
  }

  .home-codex .filament {
    left: 6%;
    right: 6%;
    bottom: 8vh;
  }

  .home-codex .era-float {
    max-width: min(26rem, 90vw);
  }
}

@media (max-width: 900px) and (max-height: 760px) {
  .home-codex .hero-title {
    top: calc(var(--topbar-h, 64px) + 1.1rem);
    bottom: auto;
  }

  .home-codex .hero-title h1 {
    font-size: clamp(2rem, 8vw, 3rem);
  }
}

@media (max-width: 640px) {
  .home-codex {
    --topbar-h: 58px;
  }

  .home-codex .hero {
    min-height: 760px;
    height: 100svh;
  }

  .home-codex .hero-title {
    bottom: 30vh;
  }

  .home-codex .hero-sub {
    display: none;
  }

  .home-codex .hero-credo {
    font-size: 0.95rem;
    line-height: 1.5;
  }

  .home-codex .filament {
    bottom: 9vh;
  }

  .home-codex .era-float {
    bottom: 28px;
    max-width: min(22rem, 88vw);
  }

  .home-codex .era-caption {
    -webkit-line-clamp: 3;
    font-size: 0.72rem;
  }

  .home-codex .bead span {
    display: none;
  }

  .home-codex .era-replay {
    right: 50%;
    top: 1.35rem;
    transform: translateX(50%);
  }

  .vine {
    opacity: 0.25;
  }

  .docs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4.6rem;
    min-height: 0;
    padding: 0 1.2rem 5rem;
  }

  .doc {
    position: relative;
    left: auto !important;
    top: auto !important;
    width: min(88vw, 360px);
    margin: 0 auto;
  }

  .doc .caption {
    max-width: 96%;
  }

  .home-codex .contribute-inner {
    padding-top: 0;
  }
}

@media (hover: none) and (pointer: coarse) {
  .codex-map,
  .lightray::before,
  .gold-motes span {
    animation: none;
  }

  .codex-map {
    inset: 0;
    width: 100%;
    height: 100%;
    transform: none;
    transition: none;
  }

  .home-codex #worldmap [filter],
  .home-codex #symmap [filter] {
    filter: none;
  }

  .home-codex .dot,
  .home-codex .dot-halo,
  .home-codex .israel-halo {
    animation: none !important;
    filter: none !important;
  }

  .home-codex .map-texture {
    opacity: 0.2;
  }

  .home-codex .ghost-land {
    stroke-width: 1.7;
    opacity: 0.72;
  }
}

@supports (-webkit-touch-callout: none) {
  @media (hover: none) and (pointer: coarse) {
    .home-codex .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      background: url("img/home/mobile-map-fallback.webp") center / cover no-repeat;
    }

    .home-codex .codex-map,
    .home-codex .map-texture,
    .home-codex .map-vignette,
    .home-codex .lightray,
    .home-codex .gold-motes {
      display: none;
    }
  }
}

.home-codex.home-static-map .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url("img/home/mobile-map-fallback.webp") center / cover no-repeat;
}

.home-codex.home-static-map .codex-map,
.home-codex.home-static-map .map-texture,
.home-codex.home-static-map .map-vignette,
.home-codex.home-static-map .lightray,
.home-codex.home-static-map .gold-motes {
  display: none;
}

html.stable-map .home-codex .codex-map,
html.stable-map .home-codex .lightray::before,
html.stable-map .home-codex .gold-motes span,
html.stable-map .home-codex .bead,
html.stable-map .home-codex .bead span,
html.stable-map .home-codex .era-readout,
html.stable-map .home-codex .region-label,
html.stable-map .home-codex .empire,
html.stable-map .home-codex .empire-label,
html.stable-map .home-codex .dot,
html.stable-map .home-codex .dot-halo,
html.stable-map .home-codex .place-label,
html.stable-map .home-codex .stone-mark,
html.stable-map .home-codex .israel-halo {
  animation: none !important;
  transition: none !important;
}

html.stable-map .home-codex .codex-map,
html.stable-map .home-codex .hero-title {
  transform: none !important;
}

html.stable-map .home-codex .lightray,
html.stable-map .home-codex .gold-motes {
  display: none;
}

html.stable-map .home-codex .map-texture {
  mix-blend-mode: normal;
  opacity: 0.12;
}

html.stable-map .home-codex .map-vignette {
  opacity: 0.86;
}

html.stable-map .home-codex #worldmap [filter],
html.stable-map .home-codex #symmap [filter],
html.stable-map .home-codex .dot,
html.stable-map .home-codex .dot-halo,
html.stable-map .home-codex .israel-halo {
  filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .codex-map,
  .lightray::before,
  .gold-motes span,
  .home-codex .bead.lit,
  .home-codex .dot,
  .home-codex .dot-halo,
  .home-codex .israel-halo {
    animation: none !important;
  }

  .codex-map,
  .home-codex .hero-title {
    transform: none !important;
  }
}
