/* GREEN WORLD — seasonal skin. Base layout/content stays untouched. */
html {
  --season-main: #ff9a3d;
  --season-main-2: #d96418;
  --season-main-3: #8c3517;
  --season-rgb: 255 154 61;
  --season-rgb-2: 217 100 24;
  --season-alt: #ffd166;
  --season-alt-rgb: 255 209 102;
  --season-deep: #1c0d08;
  --season-deep-2: #35150c;
  --season-name: "ОСЕНЬ";
}

html[data-season="winter"] {
  --season-main: #7be7ff;
  --season-main-2: #39a9ff;
  --season-main-3: #2476c9;
  --season-rgb: 123 231 255;
  --season-rgb-2: 57 169 255;
  --season-alt: #dff8ff;
  --season-alt-rgb: 223 248 255;
  --season-deep: #03101b;
  --season-deep-2: #08233c;
  --season-name: "ЗИМА";
}

html[data-season="spring"] {
  --season-main: #75ff74;
  --season-main-2: #31dc7b;
  --season-main-3: #168e55;
  --season-rgb: 117 255 116;
  --season-rgb-2: 49 220 123;
  --season-alt: #ff9bd2;
  --season-alt-rgb: 255 155 210;
  --season-deep: #04130c;
  --season-deep-2: #092b1b;
  --season-name: "ВЕСНА";
}

html[data-season="summer"] {
  --season-main: #b9ff3d;
  --season-main-2: #65e629;
  --season-main-3: #2b9f1b;
  --season-rgb: 185 255 61;
  --season-rgb-2: 101 230 41;
  --season-alt: #ffd84d;
  --season-alt-rgb: 255 216 77;
  --season-deep: #061307;
  --season-deep-2: #103115;
  --season-name: "ЛЕТО";
}

/* Re-map the existing Green World accent so all pages inherit the season. */
html[data-season] {
  --green: var(--season-main);
  --green-2: var(--season-main-2);
  --green-3: var(--season-main-3);
  --shadow-green: 0 20px 70px rgb(var(--season-rgb) / .13);
}

html[data-season] body {
  background:
    radial-gradient(circle at 10% 0%, rgb(var(--season-rgb) / .16), transparent 30%),
    radial-gradient(circle at 88% 9%, rgb(var(--season-alt-rgb) / .10), transparent 27%),
    radial-gradient(circle at 54% 110%, rgb(var(--season-rgb-2) / .08), transparent 34%),
    linear-gradient(180deg, var(--season-deep) 0%, #040806 53%, var(--season-deep) 100%);
}

html[data-season] body::after {
  content: var(--season-name);
  position: fixed;
  right: clamp(12px, 2vw, 28px);
  bottom: 12px;
  z-index: 1100;
  pointer-events: none;
  padding: 7px 9px 6px;
  border: 1px solid rgb(var(--season-rgb) / .18);
  border-radius: 8px;
  background: rgb(2 8 5 / .58);
  color: rgb(var(--season-rgb) / .60);
  backdrop-filter: blur(14px);
  font: 700 7px/1 "Press Start 2P", monospace;
  letter-spacing: .8px;
}

html[data-season] .ambient-a { background: var(--season-main); opacity: .23; }
html[data-season] .ambient-b { background: var(--season-alt); opacity: .12; }
html[data-season] .site-header { border-bottom-color: rgb(var(--season-rgb) / .10); background: rgb(2 8 5 / .82); }
html[data-season] .site-header.scrolled { background: rgb(2 8 5 / .95); }
html[data-season] .brand-mark {
  color: #071005;
  background: linear-gradient(145deg, var(--season-alt), var(--season-main) 55%, var(--season-main-3));
  box-shadow: inset 0 0 0 3px rgb(0 0 0 / .22), 0 0 28px rgb(var(--season-rgb) / .25);
}
html[data-season] .brand-copy strong:first-child,
html[data-season] .eyebrow,
html[data-season] .section-kicker { color: var(--season-main); }
html[data-season] .nav-link span { color: rgb(var(--season-rgb) / .84); }
html[data-season] .nav-link:hover,
html[data-season] .nav-link.active-link { border-color: rgb(var(--season-rgb) / .20); background: rgb(var(--season-rgb) / .08); }
html[data-season] .live-dot,
html[data-season] .status-led,
html[data-season] .footer-live,
html[data-season] .wiki-header-dot {
  background: var(--season-main);
  box-shadow: 0 0 0 4px rgb(var(--season-rgb) / .10), 0 0 17px rgb(var(--season-rgb) / .72);
}

html[data-season] .hero-panel {
  background: var(--season-deep);
  border-color: rgb(var(--season-rgb) / .16);
  box-shadow: 0 30px 90px rgb(0 0 0 / .50), 0 22px 78px rgb(var(--season-rgb) / .10);
}
html[data-season] .hero-bg { filter: saturate(1.03) contrast(1.03); }
html[data-season="autumn"] .hero-bg { filter: sepia(.20) saturate(1.20) hue-rotate(-8deg) brightness(.90); }
html[data-season="winter"] .hero-bg { filter: saturate(.76) hue-rotate(145deg) brightness(.88) contrast(1.05); }
html[data-season="spring"] .hero-bg { filter: saturate(1.16) hue-rotate(4deg) brightness(.96); }
html[data-season="summer"] .hero-bg { filter: saturate(1.25) brightness(1.02) contrast(1.02); }
html[data-season] .hero-panel::before {
  background:
    radial-gradient(circle at 20% 40%, rgb(var(--season-rgb) / .20), transparent 26%),
    radial-gradient(circle at 78% 34%, rgb(var(--season-alt-rgb) / .13), transparent 23%),
    linear-gradient(180deg, transparent 42%, rgb(2 8 5 / .89) 100%);
}
html[data-season] .hero-gridline {
  background-image:
    linear-gradient(rgb(var(--season-rgb) / .095) 1px, transparent 1px),
    linear-gradient(90deg, rgb(var(--season-rgb) / .095) 1px, transparent 1px);
}
html[data-season] .hero-logo {
  filter: drop-shadow(0 16px 34px rgb(0 0 0 / .58)) drop-shadow(0 0 26px rgb(var(--season-rgb) / .16));
}

html[data-season] .btn-primary {
  border-color: rgb(var(--season-rgb) / .48);
  background: linear-gradient(135deg, var(--season-main), var(--season-main-2));
  box-shadow: 0 12px 34px rgb(var(--season-rgb) / .18);
}
html[data-season] .btn-primary:hover { box-shadow: 0 16px 42px rgb(var(--season-rgb) / .28); }
html[data-season] .btn-secondary:hover,
html[data-season] .ghost-link:hover,
html[data-season] .quick-card:hover,
html[data-season] .feature-card:hover,
html[data-season] .news-card:hover,
html[data-season] .mode-card:hover {
  border-color: rgb(var(--season-rgb) / .24);
}
html[data-season] .ip-card,
html[data-season] .feature-icon,
html[data-season] .quick-icon,
html[data-season] .mode-icon,
html[data-season] .rules-stat-main,
html[data-season] .rule-section-green .rule-section-icon {
  border-color: rgb(var(--season-rgb) / .22);
  background-color: rgb(var(--season-rgb) / .075);
}
html[data-season] .feature-icon,
html[data-season] .quick-icon,
html[data-season] .mode-icon { color: var(--season-main); }
html[data-season] .feature-card > button,
html[data-season] .map-badge,
html[data-season] .rule-filter.active {
  border-color: rgb(var(--season-rgb) / .22);
  background: rgb(var(--season-rgb) / .10);
  color: var(--season-main);
}

/* Wiki seasonal treatment */
html[data-season] .wiki-hero {
  background:
    radial-gradient(circle at 86% 13%, rgb(var(--season-rgb) / .13), transparent 30%),
    radial-gradient(circle at 8% 100%, rgb(var(--season-alt-rgb) / .06), transparent 28%),
    linear-gradient(180deg, rgb(255 255 255 / .018), transparent);
}
html[data-season] .wiki-hero h1 em,
html[data-season] .wiki-kicker,
html[data-season] .wiki-eyebrow,
html[data-season] .wiki-copy-command:hover { color: var(--season-main); }
html[data-season] .wiki-kicker,
html[data-season] .wiki-global-search,
html[data-season] .wiki-sidebar-card,
html[data-season] .wiki-card,
html[data-season] .wiki-article-hero {
  border-color: rgb(var(--season-rgb) / .15);
}
html[data-season] .wiki-nav button.active,
html[data-season] .wiki-card:hover,
html[data-season] .wiki-ip-button:hover,
html[data-season] .wiki-quick-links button:hover {
  border-color: rgb(var(--season-rgb) / .18);
  background: rgb(var(--season-rgb) / .05);
}

/* Seasonal atmospheric layer */
.season-layer {
  position: fixed;
  inset: 0;
  z-index: 1190;
  pointer-events: none;
  overflow: hidden;
  opacity: .82;
}
.season-particle {
  position: absolute;
  top: -12vh;
  left: var(--x);
  width: var(--size);
  height: var(--size);
  opacity: var(--opacity);
  animation-duration: var(--duration);
  animation-delay: var(--delay);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  will-change: transform, opacity;
}

html[data-season="winter"] .season-particle {
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 8px rgb(181 235 255 / .42);
  animation-name: season-snow;
}
html[data-season="autumn"] .season-particle {
  width: calc(var(--size) * 1.25);
  height: calc(var(--size) * .72);
  border-radius: 72% 18% 68% 24%;
  background: var(--leaf-color);
  box-shadow: 0 0 8px rgb(var(--season-rgb) / .12);
  animation-name: season-leaf;
}
html[data-season="spring"] .season-particle {
  width: calc(var(--size) * 1.22);
  height: calc(var(--size) * .72);
  border-radius: 80% 16% 80% 16%;
  background: var(--petal-color);
  filter: blur(.15px);
  animation-name: season-petal;
}
html[data-season="summer"] .season-particle {
  top: var(--y);
  border-radius: 50%;
  background: #f7ff8d;
  box-shadow: 0 0 7px #d7ff4d, 0 0 15px rgb(196 255 71 / .5);
  animation-name: season-firefly;
  animation-timing-function: ease-in-out;
  animation-direction: alternate;
}

@keyframes season-snow {
  0% { transform: translate3d(0,-8vh,0) rotate(0deg); }
  50% { transform: translate3d(var(--drift),52vh,0) rotate(160deg); }
  100% { transform: translate3d(var(--drift-neg),115vh,0) rotate(320deg); }
}
@keyframes season-leaf {
  0% { transform: translate3d(0,-8vh,0) rotate(0deg); }
  38% { transform: translate3d(var(--drift),38vh,0) rotate(230deg); }
  72% { transform: translate3d(var(--drift-neg-small),78vh,0) rotate(520deg); }
  100% { transform: translate3d(var(--drift-small),115vh,0) rotate(760deg); }
}
@keyframes season-petal {
  0% { transform: translate3d(0,-10vh,0) rotate(0deg); }
  45% { transform: translate3d(var(--drift),48vh,0) rotate(290deg); }
  100% { transform: translate3d(var(--drift-neg-small),112vh,0) rotate(620deg); }
}
@keyframes season-firefly {
  0% { transform: translate3d(-8px,5px,0) scale(.65); opacity: .16; }
  45% { transform: translate3d(var(--drift),-15px,0) scale(1.18); opacity: .92; }
  100% { transform: translate3d(var(--drift-neg-small),13px,0) scale(.78); opacity: .28; }
}

@media (max-width: 720px) {
  .season-layer { opacity: .58; }
  html[data-season] body::after { right: 9px; bottom: 9px; font-size: 6px; opacity: .8; }
}

@media (prefers-reduced-motion: reduce) {
  .season-layer { display: none !important; }
}

/* ========================================================================
   GREEN WORLD — SEASONAL EXPERIENCE V2
   Seasonal mood changes, but the Rules taxonomy keeps its canonical colors.
   ======================================================================== */
html[data-season] {
  --rules-green: #7cff38;
  --rules-green-rgb: 124 255 56;
  --rules-cyan: #38d8ff;
  --rules-cyan-rgb: 56 216 255;
  --rules-orange: #ff9f43;
  --rules-orange-rgb: 255 159 67;
  --season-card: rgb(7 15 10 / .76);
  --season-card-strong: rgb(5 12 8 / .91);
  --season-hairline: rgb(var(--season-rgb) / .14);
  --season-hairline-strong: rgb(var(--season-rgb) / .26);
  --season-soft: rgb(var(--season-rgb) / .055);
  --season-soft-2: rgb(var(--season-alt-rgb) / .045);
  --season-glow: 0 24px 70px rgb(var(--season-rgb) / .075);
  color-scheme: dark;
}

html[data-season="autumn"] {
  --season-card: rgb(19 12 8 / .78);
  --season-card-strong: rgb(14 9 6 / .92);
}
html[data-season="winter"] {
  --season-card: rgb(4 14 23 / .78);
  --season-card-strong: rgb(3 10 18 / .93);
}
html[data-season="spring"] {
  --season-card: rgb(5 18 12 / .77);
  --season-card-strong: rgb(4 13 9 / .92);
}
html[data-season="summer"] {
  --season-card: rgb(8 18 8 / .78);
  --season-card-strong: rgb(5 13 6 / .92);
}

html[data-season] body {
  background-attachment: fixed;
  background:
    radial-gradient(circle at 14% -8%, rgb(var(--season-rgb) / .22), transparent 31%),
    radial-gradient(circle at 88% 5%, rgb(var(--season-alt-rgb) / .12), transparent 28%),
    radial-gradient(circle at 72% 68%, rgb(var(--season-rgb-2) / .055), transparent 30%),
    radial-gradient(circle at 18% 88%, rgb(var(--season-alt-rgb) / .045), transparent 28%),
    linear-gradient(180deg, var(--season-deep) 0%, #030806 45%, #040a06 70%, var(--season-deep) 115%);
}

html[data-season] body::before {
  background-image:
    linear-gradient(rgb(var(--season-rgb) / .026) 1px, transparent 1px),
    linear-gradient(90deg, rgb(var(--season-rgb) / .026) 1px, transparent 1px),
    radial-gradient(circle at 50% 0%, rgb(var(--season-alt-rgb) / .05), transparent 42%);
  background-size: 50px 50px, 50px 50px, 100% 100%;
  opacity: .92;
}

/* Small season signature: visible but intentionally unobtrusive. */
html[data-season] body::after {
  right: clamp(10px, 2vw, 26px);
  bottom: 12px;
  padding: 8px 11px 7px;
  border-color: rgb(var(--season-rgb) / .25);
  border-radius: 999px;
  background: linear-gradient(180deg, rgb(5 11 8 / .74), rgb(2 7 5 / .68));
  color: rgb(var(--season-rgb) / .78);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .05), 0 10px 30px rgb(0 0 0 / .22), 0 0 24px rgb(var(--season-rgb) / .08);
  letter-spacing: 1px;
}

/* Header gets a thin seasonal light line instead of a heavy recolor. */
html[data-season] .site-header {
  position: sticky;
  border-bottom-color: rgb(var(--season-rgb) / .12);
  background:
    linear-gradient(90deg, rgb(var(--season-rgb) / .035), transparent 26%, transparent 74%, rgb(var(--season-alt-rgb) / .025)),
    rgb(2 8 5 / .84);
  box-shadow: 0 14px 42px rgb(0 0 0 / .25), 0 1px 0 rgb(var(--season-rgb) / .035);
}
html[data-season] .site-header.scrolled {
  background:
    linear-gradient(90deg, rgb(var(--season-rgb) / .03), transparent 28%, transparent 72%, rgb(var(--season-alt-rgb) / .02)),
    rgb(2 8 5 / .95);
}
html[data-season] .site-header::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: -1px;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgb(var(--season-rgb) / .42), rgb(var(--season-alt-rgb) / .25), transparent);
  opacity: .7;
}
html[data-season] .brand-mark {
  transition: transform .22s ease, box-shadow .22s ease, filter .22s ease;
}
html[data-season] .brand:hover .brand-mark {
  transform: translateY(-1px) rotate(-2deg);
  filter: saturate(1.08) brightness(1.04);
  box-shadow: inset 0 0 0 3px rgb(0 0 0 / .22), 0 0 36px rgb(var(--season-rgb) / .34);
}
html[data-season] .nav-link {
  transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease;
}
html[data-season] .nav-link:hover { transform: translateY(-1px); }

/* Hero — deeper image treatment, cleaner frame and subtle seasonal bloom. */
html[data-season] .hero-panel {
  border-color: rgb(var(--season-rgb) / .20);
  box-shadow:
    0 34px 100px rgb(0 0 0 / .52),
    0 24px 82px rgb(var(--season-rgb) / .095),
    inset 0 1px 0 rgb(255 255 255 / .045);
}
html[data-season] .hero-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / .025), inset 0 -90px 130px rgb(0 0 0 / .18);
  background:
    linear-gradient(115deg, rgb(var(--season-rgb) / .04), transparent 22%, transparent 76%, rgb(var(--season-alt-rgb) / .035));
}
html[data-season] .hero-content { position: relative; z-index: 1; }
html[data-season] .hero-gridline { opacity: .15; }
html[data-season] .hero-subtitle { text-shadow: 0 2px 16px rgb(0 0 0 / .72); }
html[data-season] .server-status {
  border-color: rgb(var(--season-rgb) / .13);
  background: rgb(2 9 6 / .66);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .035), 0 14px 34px rgb(0 0 0 / .22);
}

/* Primary controls feel seasonal, secondary controls stay calm and readable. */
html[data-season] .btn-primary {
  color: #061006;
  border-color: rgb(var(--season-rgb) / .55);
  background: linear-gradient(145deg, var(--season-alt), var(--season-main) 44%, var(--season-main-2));
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / .35),
    0 8px 0 color-mix(in srgb, var(--season-main-3) 76%, #071006),
    0 22px 42px rgb(var(--season-rgb) / .18);
}
html[data-season] .btn-primary:hover {
  filter: saturate(1.06) brightness(1.03);
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / .40),
    0 10px 0 color-mix(in srgb, var(--season-main-3) 78%, #071006),
    0 28px 50px rgb(var(--season-rgb) / .25);
}
html[data-season] .btn-secondary {
  background: linear-gradient(180deg, rgb(255 255 255 / .035), rgb(255 255 255 / .018)), rgb(2 9 6 / .62);
}
html[data-season] .btn-secondary:hover {
  border-color: rgb(var(--season-rgb) / .31);
  background: rgb(var(--season-rgb) / .055);
}

/* Shared premium surface treatment across the site. */
html[data-season] .feature-card,
html[data-season] .dashboard-left,
html[data-season] .dashboard-side,
html[data-season] .mode-card,
html[data-season] .rules-stat,
html[data-season] .rules-toolbar,
html[data-season] .site-footer,
html[data-season] .admin-modal {
  border-color: rgb(var(--season-rgb) / .12);
  background:
    linear-gradient(145deg, rgb(var(--season-rgb) / .035), transparent 34%),
    linear-gradient(180deg, rgb(255 255 255 / .018), transparent 44%),
    var(--season-card);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .035), var(--season-glow), 0 22px 58px rgb(0 0 0 / .22);
}
html[data-season] .feature-card,
html[data-season] .news-card,
html[data-season] .quick-card,
html[data-season] .mode-card,
html[data-season] .map-preview,
html[data-season] .wiki-card {
  transition: transform .22s ease, border-color .22s ease, background .22s ease, box-shadow .22s ease, filter .22s ease;
}
html[data-season] .feature-card:hover,
html[data-season] .news-card:hover,
html[data-season] .quick-card:hover,
html[data-season] .mode-card:hover,
html[data-season] .wiki-card:hover {
  transform: translateY(-3px);
  border-color: rgb(var(--season-rgb) / .23);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .045), 0 24px 58px rgb(0 0 0 / .27), 0 0 38px rgb(var(--season-rgb) / .055);
}
html[data-season] .feature-card::after { background: rgb(var(--season-rgb) / .075); }
html[data-season] .feature-icon,
html[data-season] .quick-icon,
html[data-season] .mode-icon {
  background: linear-gradient(145deg, rgb(var(--season-rgb) / .13), rgb(var(--season-rgb) / .025));
  border-color: rgb(var(--season-rgb) / .20);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .035), 0 10px 30px rgb(var(--season-rgb) / .045);
}
html[data-season] .dashboard-left,
html[data-season] .dashboard-side { backdrop-filter: blur(10px); }
html[data-season] .news-card,
html[data-season] .quick-card {
  background:
    linear-gradient(135deg, rgb(var(--season-rgb) / .025), transparent 36%),
    rgb(255 255 255 / .022);
}
html[data-season] .news-media::after {
  background: linear-gradient(180deg, transparent 34%, rgb(2 8 5 / .84));
}
html[data-season] .map-preview {
  border-color: rgb(var(--season-rgb) / .17);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / .025), 0 16px 44px rgb(0 0 0 / .20);
}
html[data-season] .map-preview:hover {
  border-color: rgb(var(--season-rgb) / .29);
  filter: saturate(1.04) brightness(1.02);
}
html[data-season] .map-frame-shell {
  border-color: rgb(var(--season-rgb) / .22);
  background: linear-gradient(145deg, rgb(var(--season-rgb) / .065), rgb(255 255 255 / .016));
  box-shadow: 0 28px 80px rgb(0 0 0 / .38), 0 0 70px rgb(var(--season-rgb) / .055);
}
html[data-season] .page-heading h1,
html[data-season] .section-head h2 {
  text-shadow: 0 8px 28px rgb(0 0 0 / .28);
}
html[data-season] .section-kicker {
  text-shadow: 0 0 22px rgb(var(--season-rgb) / .18);
}
html[data-season] .site-footer {
  border-color: rgb(var(--season-rgb) / .10);
  background:
    linear-gradient(90deg, rgb(var(--season-rgb) / .025), transparent 30%, transparent 70%, rgb(var(--season-alt-rgb) / .02)),
    rgb(5 13 8 / .80);
}

/* Search fields and focus states use the season without sacrificing contrast. */
html[data-season] .search-box,
html[data-season] .wiki-global-search,
html[data-season] .admin-form input,
html[data-season] .admin-form textarea {
  border-color: rgb(var(--season-rgb) / .13);
}
html[data-season] .search-box:focus-within,
html[data-season] .wiki-global-search:focus-within,
html[data-season] .admin-form input:focus,
html[data-season] .admin-form textarea:focus {
  border-color: rgb(var(--season-rgb) / .34);
  box-shadow: 0 0 0 3px rgb(var(--season-rgb) / .055), 0 12px 34px rgb(0 0 0 / .16);
}
html[data-season] ::selection { background: rgb(var(--season-rgb) / .26); color: #fff; }
html[data-season] * { scrollbar-color: rgb(var(--season-rgb) / .32) rgb(255 255 255 / .025); }

/* ===================== RULES: FIXED CATEGORY COLORS =====================
   These colors NEVER follow autumn/winter/spring/summer.
   General = green, Polit = cyan, Social = orange.
   ====================================================================== */
html[data-season] .rules-stat-dot.green {
  color: var(--rules-green) !important;
  background: var(--rules-green) !important;
  box-shadow: 0 0 15px rgb(var(--rules-green-rgb) / .72) !important;
}
html[data-season] .rules-stat-dot.cyan {
  color: var(--rules-cyan) !important;
  background: var(--rules-cyan) !important;
  box-shadow: 0 0 15px rgb(var(--rules-cyan-rgb) / .62) !important;
}
html[data-season] .rules-stat-dot.orange {
  color: var(--rules-orange) !important;
  background: var(--rules-orange) !important;
  box-shadow: 0 0 15px rgb(var(--rules-orange-rgb) / .62) !important;
}
/* The "21 / общие" statistic is permanently Green World green. */
html[data-season] .rules-overview .rules-stat:nth-child(2) {
  /* Keep the General card content Green World green, but let the card surface
     follow the active season just like the neighboring overview cards. */
  border-color: rgb(var(--season-rgb) / .12);
  background:
    radial-gradient(circle at 12% 50%, rgb(var(--rules-green-rgb) / .06), transparent 40%),
    radial-gradient(circle at 88% 10%, rgb(var(--season-rgb) / .08), transparent 32%),
    linear-gradient(145deg, rgb(var(--season-rgb) / .035), transparent 34%),
    linear-gradient(180deg, rgb(255 255 255 / .018), transparent 44%),
    var(--season-card);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .035), var(--season-glow), 0 22px 58px rgb(0 0 0 / .22);
}
html[data-season] .rules-overview .rules-stat:nth-child(2) strong { color: var(--rules-green); }
html[data-season] .rules-overview .rules-stat:nth-child(2) small { color: var(--muted); }

html[data-season] .rule-section-green {
  border-color: rgb(var(--rules-green-rgb) / .15) !important;
  background:
    radial-gradient(circle at 96% 0%, rgb(var(--rules-green-rgb) / .075), transparent 28%),
    linear-gradient(145deg, rgb(9 23 13 / .94), rgb(4 11 7 / .91)) !important;
}
html[data-season] .rule-section-green .rule-section-head {
  background: linear-gradient(90deg, rgb(var(--rules-green-rgb) / .032), transparent 52%);
}
html[data-season] .rule-section-green .rule-section-icon {
  color: var(--rules-green) !important;
  border-color: rgb(var(--rules-green-rgb) / .22) !important;
  background: rgb(var(--rules-green-rgb) / .085) !important;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .04), 0 0 28px rgb(var(--rules-green-rgb) / .055);
}
html[data-season] .rule-section-green .rule-title { color: var(--rules-green); }
html[data-season] .rule-section-green .rule-count {
  border-color: rgb(var(--rules-green-rgb) / .14);
  background: rgb(var(--rules-green-rgb) / .045);
}
html[data-season] .rule-section-green .rule-number {
  border-color: rgb(var(--rules-green-rgb) / .18) !important;
  background: rgb(var(--rules-green-rgb) / .065) !important;
}
html[data-season] .rule-section-green .rule-number strong { color: var(--rules-green) !important; }
html[data-season] .rule-section-green .rule:hover { border-color: rgb(var(--rules-green-rgb) / .11); }

/* Lock the other rule-number colors as well, so NO season can recolor them. */
html[data-season] .rule-section-cyan .rule-number strong { color: var(--rules-cyan) !important; }
html[data-season] .rule-section-orange .rule-number strong { color: var(--rules-orange) !important; }
html[data-season] .rule-section-cyan .rule-section-icon { color: var(--rules-cyan) !important; }
html[data-season] .rule-section-orange .rule-section-icon { color: var(--rules-orange) !important; }

/* Filters reflect rule category, not season. */
html[data-season] .rule-filter[data-rule-category="general"].active {
  color: #071005;
  border-color: rgb(var(--rules-green-rgb) / .54);
  background: linear-gradient(180deg, #9aff67, #4ce91b);
  box-shadow: 0 8px 22px rgb(var(--rules-green-rgb) / .14);
}
html[data-season] .rule-filter[data-rule-category="polit"].active {
  color: #031016;
  border-color: rgb(var(--rules-cyan-rgb) / .48);
  background: linear-gradient(180deg, #83eaff, #38cffa);
  box-shadow: 0 8px 22px rgb(var(--rules-cyan-rgb) / .12);
}
html[data-season] .rule-filter[data-rule-category="social"].active {
  color: #160b03;
  border-color: rgb(var(--rules-orange-rgb) / .48);
  background: linear-gradient(180deg, #ffc477, #ff9740);
  box-shadow: 0 8px 22px rgb(var(--rules-orange-rgb) / .12);
}
html[data-season] .rules-note {
  border-color: rgb(56 216 255 / .13);
  background: linear-gradient(90deg, rgb(56 216 255 / .042), transparent);
}

/* Wiki receives the same surface quality as the main site. */
html[data-season] .wiki-hero,
html[data-season] .wiki-sidebar-card,
html[data-season] .wiki-card,
html[data-season] .wiki-article-hero {
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .03), 0 22px 60px rgb(0 0 0 / .18), 0 0 42px rgb(var(--season-rgb) / .025);
}
html[data-season] .wiki-hero {
  border-bottom-color: rgb(var(--season-rgb) / .09);
}
html[data-season] .wiki-stat {
  border-color: rgb(var(--season-rgb) / .11);
  background: linear-gradient(145deg, rgb(var(--season-rgb) / .035), rgb(255 255 255 / .018));
}
html[data-season] .wiki-kicker,
html[data-season] .wiki-global-search {
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .025), 0 12px 34px rgb(0 0 0 / .12);
}

/* Particles stay atmospheric rather than covering content. */
.season-layer {
  z-index: 1190;
  opacity: .68;
  mask-image: linear-gradient(to bottom, #000 0%, #000 68%, rgb(0 0 0 / .72) 86%, transparent 112%);
}
html[data-season="winter"] .season-layer { opacity: .64; }
html[data-season="autumn"] .season-layer { opacity: .61; }
html[data-season="spring"] .season-layer { opacity: .57; }
html[data-season="summer"] .season-layer { opacity: .66; }

@media (max-width: 720px) {
  html[data-season] .site-header::after { left: 3%; right: 3%; }
  html[data-season] .feature-card:hover,
  html[data-season] .news-card:hover,
  html[data-season] .quick-card:hover,
  html[data-season] .mode-card:hover,
  html[data-season] .wiki-card:hover { transform: none; }
  .season-layer { opacity: .42 !important; }
}

@media (prefers-reduced-motion: reduce) {
  html[data-season] .brand-mark,
  html[data-season] .nav-link,
  html[data-season] .feature-card,
  html[data-season] .news-card,
  html[data-season] .quick-card,
  html[data-season] .mode-card,
  html[data-season] .wiki-card { transition: none !important; }
}
