/* Shared presentation and parallax mechanics for public pages and the Skill Tree. */
body.theme-site {
  --theme-accent: #8ddce5;
  --theme-warm: #eeb979;
  --theme-purple: #bba0dd;
  --theme-ink: #070d13;
  background: var(--theme-ink) !important;
  isolation: isolate;
}
body.theme-site::before, body.theme-site::after { display: none !important; }
body.theme-site > .site-parallax { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; contain: strict; }
.site-parallax__layer { position: absolute; top: -80px; left: -24px; width: calc(100% + 48px); height: calc(100vh + 160px); will-change: transform; background-position: center top; background-repeat: repeat; }
.site-parallax__texture { background-size: 1440px auto; opacity: .65; }
.site-parallax__foreground { background-size: 100% auto; background-repeat: repeat-y; opacity: .64; }
.site-parallax__light { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, #060c154d, #0509118c 85%); }
.theme-normal .site-parallax__texture { background-size: 620px auto; opacity: .55; }
body.theme-site > main, body.theme-site > footer { position: relative; z-index: 1; }
body.theme-site .asc-page-shell { background: transparent !important; }
body.theme-site .asc-home-hero {
  min-height: min(920px, 100svh) !important;
  padding: 130px 18px 72px !important;
  background: transparent !important;
}
.theme-site .asc-hero-content { margin: 0 auto; }
.theme-site .asc-hero-logo-stack { width: min(760px, 94vw); }
.theme-site .asc-home-hero .hero-stage { min-height: 0; margin-bottom: 22px; }
.theme-site .asc-home-hero .asc-logo-wrap, .theme-site .asc-home-hero .asc-logo-wrap img { animation: none !important; transform: none !important; }
/* Constrain both automatic dimensions so short landscape screens preserve the logo ratio. */
.theme-site .asc-home-hero .asc-logo-wrap img { width: auto; height: auto; max-width: min(720px, 90vw); max-height: min(405px, 44vh) !important; object-fit: contain; filter: drop-shadow(0 8px 18px #020510b3) !important; }
.asc-season-announcement { color: var(--theme-warm); text-align: center; font-family: "Aboreto", serif; font-size: clamp(1.7rem, 2.4vw, 2rem); line-height: 1.4; letter-spacing: .06em; font-weight: 400; text-wrap: balance; margin: 0 0 18px; text-shadow: 0 2px 12px #020510; }
.asc-hero-season-links { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; justify-content: center; margin: 22px auto 0; font-size: .92rem; color: #d0cadc; }
.asc-hero-season-links a { text-decoration: none; color: inherit; transition: color .2s; }
.asc-hero-season-links a:hover { color: var(--theme-warm); }
.asc-hero-season-links > span { color: var(--theme-purple); }
.theme-site .asc-community-inner { grid-template-columns: minmax(0, 1fr) auto; }
body.theme-site.controller-home .asc-media-section { padding-top: 75px; padding-bottom: 48px; }
body.theme-site.controller-home .asc-watch-section { padding-top: 35px; padding-bottom: 75px; }
.theme-site :is(.asc-update-tab, .asc-updates-source, .asc-update-discord-link, .asc-hero-season-links a):focus-visible { outline: 2px solid var(--theme-warm); outline-offset: 4px; }
@media (max-width: 640px) {
  body.theme-site .asc-home-hero { min-height: min(790px, 100svh) !important; padding: 110px 14px 65px !important; }
  .theme-site .asc-home-hero .hero-stage { margin-bottom: 28px; }
  .asc-season-announcement { max-width: 310px; font-size: 1.7rem; letter-spacing: .06em; margin-bottom: 25px; }
  .asc-hero-season-links { font-size: .8rem; gap: 10px; }
  .theme-site .asc-community-inner { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .site-parallax__texture { background-size: 950px auto; }
  .site-parallax__foreground { background-size: 145% auto; opacity: .6; }
}
@media (prefers-reduced-motion: reduce) {
  .site-parallax__layer { transform: none !important; will-change: auto; }
  .theme-site *, .theme-site *::before, .theme-site *::after { scroll-behavior: auto !important; }
}
