/* Continuous viewport backgrounds, visible throughout scrolling on every public page. */
:is(.wrapper, #root > div:has(> nav):not(:has(.wrapper)), .footer-sticky) { isolation: isolate; }
#root > div:has(> nav):not(:has(.wrapper)) { position: relative; }
:is(.wrapper, #root > div:has(> nav):not(:has(.wrapper)), .footer-sticky)::before,
:is(.wrapper, #root > div:has(> nav):not(:has(.wrapper)), .footer-sticky)::after {
  content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none;
}
:is(.wrapper, #root > div:has(> nav):not(:has(.wrapper)), .footer-sticky)::before {
  background:
    radial-gradient(ellipse at 76% 26%, #d9a95345 0%, transparent 45%),
    radial-gradient(ellipse at 20% 76%, #698ba53b 0%, transparent 43%),
    linear-gradient(118deg, transparent 32%, #e8c58b0a 39%, #e8c58b30 40%, transparent 42%, transparent 58%, #e8c58b1c 59%, transparent 62%);
  background-size: 170% 170%;
  animation: em-full-light 22s ease-in-out infinite alternate;
}
:is(.wrapper, #root > div:has(> nav):not(:has(.wrapper)), .footer-sticky)::after {
  background: repeating-radial-gradient(ellipse at 90% 30%, transparent 0px, transparent 76px, #e9ca8e18 78px, transparent 80px, transparent 113px);
  background-size: 150% 160%; opacity: .65;
  animation: em-full-curves 32s ease-in-out infinite alternate;
}
/* Keep content surfaces readable while exposing the continuous background. */
.wrapper > .stack-section,
.wrapper > section[style*='background: rgb(13, 13, 13)'],
#root > div:has(> nav):not(:has(.wrapper)) > section[style*='background: rgb(13, 13, 13)'],
#root > div:has(> nav):not(:has(.wrapper)) > footer { background-color: transparent !important; }
.ticker-wrap { background: #111111b8; }
.card-inner { background: #111318c9; }
.card-content { background: #1113188c; }
.wrapper > section[style*='background: rgb(200, 169, 110)'] { background: #c8a96edb !important; }
.wrapper > section[style*='background: rgb(240, 237, 232)'] { background: #f0ede8eb !important; }
/* The main photo remains visible, with the same moving light above it. */
section:has(> .hero-img)::before {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(118deg,transparent 32%,#e8c58b08 39%,#e8c58b25 40%,transparent 43%,transparent 58%,#e8c58b14 60%,transparent 63%);
  background-size: 170% 170%; animation: em-full-light 22s ease-in-out infinite alternate; mix-blend-mode: screen;
}
section:has(> .hero-img) > a.absolute, section:has(> .hero-img) > .absolute.bottom-10 { z-index: 2; }
section:has(h1):not(:has(.hero-img)) p { color: #c3c4c9 !important; }
@keyframes em-full-light { from { background-position: 0% 10%; } to { background-position: 100% 90%; } }
@keyframes em-full-curves { from { background-position: 0% 0%; } to { background-position: 100% 70%; } }
@media (max-width:767px) {
  section:has(h1):not(:has(.hero-img)) { padding-left: 24px !important; padding-right: 24px !important; }
  :is(.wrapper, #root > div:has(> nav):not(:has(.wrapper)), .footer-sticky)::after { opacity: .45; }
}
@media (prefers-reduced-motion:reduce) {
  :is(.wrapper, #root > div:has(> nav):not(:has(.wrapper)), .footer-sticky)::before,
  :is(.wrapper, #root > div:has(> nav):not(:has(.wrapper)), .footer-sticky)::after,
  section:has(> .hero-img)::before { animation: none !important; }
}
