/* Womble v22 — complete seasonal recolor pass.
   Goal: each season feels like a different cozy skin, not the default palette with small tweaks. */
:root{
  --season-bg:#faf8f3;
  --season-surface:#ffffff;
  --season-surface-2:#fffdf8;
  --season-section:#ffffff;
  --season-nav:#fffdf9;
  --season-accent:#8b70d6;
  --season-accent-2:#baa7f5;
  --season-strong:#2d2744;
  --season-soft:#efe8ff;
  --season-soft-2:#f6f1ff;
  --season-line:#e7e1f2;
  --season-text:#2d2937;
  --season-muted:#716d7e;
  --season-button:#2d2744;
  --season-button-text:#fff;
  --season-notice:#f7f1ff;
  --season-notice-2:#fbf8ff;
  --season-chip:#f5f2fb;
  --season-wash-a:rgba(255,255,255,.55);
  --season-wash-b:rgba(255,255,255,0);
  --season-shadow:0 20px 44px rgba(28,23,47,.08);
  --season-shadow-soft:0 12px 24px rgba(28,23,47,.06);
  --season-deco-left:"*";
  --season-deco-right:"*";
  --season-emoji-left:"*";
  --season-emoji-right:"*";
}

/* Distinct seasonal palettes */
html[data-season="halloween"]{
  --season-bg:#22171a;
  --season-surface:#2b1f22;
  --season-surface-2:#332529;
  --season-section:#2a1d20;
  --season-nav:#24191c;
  --season-accent:#ef7f32;
  --season-accent-2:#ffb36f;
  --season-strong:#fff1df;
  --season-soft:#4a2d2a;
  --season-soft-2:#5a342a;
  --season-line:#513330;
  --season-text:#fff4e8;
  --season-muted:#ddb89e;
  --season-button:#ef7f32;
  --season-button-text:#261611;
  --season-notice:#49311d;
  --season-notice-2:#5a3920;
  --season-chip:#3d2726;
  --season-wash-a:rgba(239,127,50,.14);
  --season-wash-b:rgba(239,127,50,0);
  --season-shadow:0 26px 58px rgba(0,0,0,.28);
  --season-shadow-soft:0 12px 26px rgba(0,0,0,.18);
  --season-deco-left:"✦";
  --season-deco-right:"✦";
  --season-emoji-left:"🎃";
  --season-emoji-right:"🕯️";
}
html[data-season="thanksgiving"]{
  --season-bg:#efe1cf;
  --season-surface:#f7ecdc;
  --season-surface-2:#fcf3e6;
  --season-section:#f4e6d6;
  --season-nav:#f8ebdc;
  --season-accent:#a65b2d;
  --season-accent-2:#d79a58;
  --season-strong:#4d3425;
  --season-soft:#ead0a6;
  --season-soft-2:#f2ddba;
  --season-line:#dbc1a2;
  --season-text:#4b382c;
  --season-muted:#6e594a;
  --season-button:#805132;
  --season-button-text:#fff9f3;
  --season-notice:#e8cf9c;
  --season-notice-2:#f2ddb7;
  --season-chip:#f1e2cb;
  --season-wash-a:rgba(255,255,255,.35);
  --season-wash-b:rgba(255,255,255,0);
  --season-shadow:0 22px 46px rgba(104,73,38,.10);
  --season-shadow-soft:0 10px 22px rgba(104,73,38,.08);
  --season-deco-left:"❋";
  --season-deco-right:"❋";
  --season-emoji-left:"🍂";
  --season-emoji-right:"🌾";
}
html[data-season="christmas"]{
  --season-bg:#eef3ef;
  --season-surface:#f8fbf8;
  --season-surface-2:#ffffff;
  --season-section:#f3f8f4;
  --season-nav:#f6faf7;
  --season-accent:#b6424f;
  --season-accent-2:#2e7652;
  --season-strong:#244536;
  --season-soft:#dcecdf;
  --season-soft-2:#f4dfdf;
  --season-line:#d7e2d8;
  --season-text:#2c3f35;
  --season-muted:#64756d;
  --season-button:#2e7652;
  --season-button-text:#fffdf9;
  --season-notice:#efe4c6;
  --season-notice-2:#f6edd6;
  --season-chip:#eef4ef;
  --season-wash-a:rgba(255,255,255,.5);
  --season-wash-b:rgba(255,255,255,0);
  --season-shadow:0 22px 48px rgba(51,95,67,.10);
  --season-shadow-soft:0 10px 22px rgba(51,95,67,.07);
  --season-deco-left:"✶";
  --season-deco-right:"✶";
  --season-emoji-left:"🎄";
  --season-emoji-right:"❄️";
}
html[data-season="valentines"]{
  --season-bg:#fff2f6;
  --season-surface:#fff9fb;
  --season-surface-2:#ffffff;
  --season-section:#fff6fa;
  --season-nav:#fff8fb;
  --season-accent:#c75a8b;
  --season-accent-2:#ef9dbc;
  --season-strong:#6c3a54;
  --season-soft:#ffdbe9;
  --season-soft-2:#ffe8f1;
  --season-line:#efd2de;
  --season-text:#5c4050;
  --season-muted:#836878;
  --season-button:#a84b75;
  --season-button-text:#fff;
  --season-notice:#ffe0ea;
  --season-notice-2:#ffebf1;
  --season-chip:#fff0f5;
  --season-wash-a:rgba(255,255,255,.45);
  --season-wash-b:rgba(255,255,255,0);
  --season-shadow:0 22px 48px rgba(160,79,120,.10);
  --season-shadow-soft:0 10px 22px rgba(160,79,120,.08);
  --season-deco-left:"♡";
  --season-deco-right:"♥";
  --season-emoji-left:"💗";
  --season-emoji-right:"🌹";
}
html[data-season="easter"]{
  --season-bg:#f7f6ef;
  --season-surface:#fffdfa;
  --season-surface-2:#ffffff;
  --season-section:#fbfaf5;
  --season-nav:#fcfbf8;
  --season-accent:#8c74c7;
  --season-accent-2:#f3b98a;
  --season-strong:#5a5272;
  --season-soft:#ebe4ff;
  --season-soft-2:#ffe9d5;
  --season-line:#e2dced;
  --season-text:#5d5768;
  --season-muted:#7d7789;
  --season-button:#7b67b6;
  --season-button-text:#fff;
  --season-notice:#f7eec8;
  --season-notice-2:#fcf5dd;
  --season-chip:#f2eef9;
  --season-wash-a:rgba(255,255,255,.5);
  --season-wash-b:rgba(255,255,255,0);
  --season-shadow:0 22px 48px rgba(124,103,182,.10);
  --season-shadow-soft:0 10px 22px rgba(124,103,182,.07);
  --season-deco-left:"❀";
  --season-deco-right:"✿";
  --season-emoji-left:"🐣";
  --season-emoji-right:"🥚";
}
html[data-season="summer"]{
  --season-bg:#effaf8;
  --season-surface:#fbfffe;
  --season-surface-2:#ffffff;
  --season-section:#f4fbf9;
  --season-nav:#f8fffd;
  --season-accent:#1f97a1;
  --season-accent-2:#ffd26d;
  --season-strong:#254f5f;
  --season-soft:#c9f1f2;
  --season-soft-2:#ffe9b2;
  --season-line:#d6e9e6;
  --season-text:#355761;
  --season-muted:#6b848b;
  --season-button:#227885;
  --season-button-text:#fff;
  --season-notice:#fff0c6;
  --season-notice-2:#fff6db;
  --season-chip:#ecf9f9;
  --season-wash-a:rgba(255,255,255,.5);
  --season-wash-b:rgba(255,255,255,0);
  --season-shadow:0 22px 48px rgba(44,130,137,.10);
  --season-shadow-soft:0 10px 22px rgba(44,130,137,.07);
  --season-deco-left:"✺";
  --season-deco-right:"✺";
  --season-emoji-left:"☀️";
  --season-emoji-right:"🌼";
}

/* Main recolor layer */
html[data-season]:not([data-season="classic"]) body{
  color:var(--season-text);
  background:
    radial-gradient(circle at 8% 0%, var(--season-wash-a) 0%, var(--season-wash-b) 26%),
    radial-gradient(circle at 92% 4%, color-mix(in srgb,var(--season-soft) 28%, transparent) 0%, transparent 24%),
    linear-gradient(180deg, color-mix(in srgb,var(--season-bg) 86%, white) 0%, var(--season-bg) 100%);
  background-attachment:fixed;
}
html[data-season]:not([data-season="classic"]) a{color:inherit}
html[data-season]:not([data-season="classic"]) button:focus-visible,
html[data-season]:not([data-season="classic"]) a:focus-visible,
html[data-season]:not([data-season="classic"]) input:focus-visible{outline-color:var(--season-accent)}
html[data-season]:not([data-season="classic"]) .site-header{
  background:color-mix(in srgb,var(--season-nav) 92%, transparent);
  border-bottom-color:var(--season-line);
  box-shadow:0 8px 20px rgba(0,0,0,.03);
}
html[data-season]:not([data-season="classic"]) .brand,
html[data-season]:not([data-season="classic"]) .desktop-nav,
html[data-season]:not([data-season="classic"]) .desktop-nav a,
html[data-season]:not([data-season="classic"]) .header-date{color:var(--season-strong)}
html[data-season]:not([data-season="classic"]) .brand-dot{color:var(--season-accent)}
html[data-season]:not([data-season="classic"]) .brand-blob{background:var(--season-accent-2)}
html[data-season]:not([data-season="classic"]) .brand-blob:after,
html[data-season]:not([data-season="classic"]) .brand-blob span{border-color:var(--season-strong);background:var(--season-strong)}
html[data-season]:not([data-season="classic"]) .desktop-nav a{padding:10px 12px;border-radius:999px;transition:background .2s,color .2s,transform .2s}
html[data-season]:not([data-season="classic"]) .desktop-nav a:hover{background:var(--season-chip);color:var(--season-accent);transform:translateY(-1px)}

/* Buttons + chips */
html[data-season]:not([data-season="classic"]) .account-nav,
html[data-season]:not([data-season="classic"]) .btn-dark,
html[data-season]:not([data-season="classic"]) .requirement-join,
html[data-season]:not([data-season="classic"]) .game-primary,
html[data-season]:not([data-season="classic"]) .badge-equip,
html[data-season]:not([data-season="classic"]) .badge-filter.selected,
html[data-season]:not([data-season="classic"]) .leaderboard-refresh{background:var(--season-button)!important;color:var(--season-button-text)!important;border-color:transparent!important;box-shadow:var(--season-shadow-soft)}
html[data-season]:not([data-season="classic"]) .btn-light,
html[data-season]:not([data-season="classic"]) .btn-white,
html[data-season]:not([data-season="classic"]) .streak-chip,
html[data-season]:not([data-season="classic"]) .date-pill,
html[data-season]:not([data-season="classic"]) .small-badge,
html[data-season]:not([data-season="classic"]) .card-tag,
html[data-season]:not([data-season="classic"]) .hero-sticker,
html[data-season]:not([data-season="classic"]) .tiny-mark,
html[data-season]:not([data-season="classic"]) .game-kicker{background:var(--season-chip)!important;border-color:var(--season-line)!important;color:var(--season-strong)!important}
html[data-season]:not([data-season="classic"]) .streak-chip strong{color:var(--season-accent)}

/* Notices */
html[data-season]:not([data-season="classic"]) .reset-change-notice{background:linear-gradient(180deg,var(--season-notice) 0%, var(--season-notice-2) 100%);color:var(--season-strong);border-top:1px solid color-mix(in srgb,var(--season-accent) 16%, white);border-bottom:1px solid color-mix(in srgb,var(--season-accent) 20%, white)}
html[data-season]:not([data-season="classic"]) .reset-change-notice .container{position:relative;padding-left:38px}
html[data-season]:not([data-season="classic"]) .reset-change-notice .container::before{content:var(--season-emoji-left);position:absolute;left:8px;top:50%;transform:translateY(-53%);font-size:18px}

/* Site surfaces */
html[data-season]:not([data-season="classic"]) .games-section,
html[data-season]:not([data-season="classic"]) .how-section,
html[data-season]:not([data-season="classic"]) .leaderboard-section{background:transparent;border-color:transparent}
html[data-season]:not([data-season="classic"]) .hero,
html[data-season]:not([data-season="classic"]) .score-panel,
html[data-season]:not([data-season="classic"]) .stats-panel,
html[data-season]:not([data-season="classic"]) .step,
html[data-season]:not([data-season="classic"]) .end-banner,
html[data-season]:not([data-season="classic"]) .leaderboard-panel,
html[data-season]:not([data-season="classic"]) .leaderboard-requirement,
html[data-season]:not([data-season="classic"]) .leaderboard-guest-note,
html[data-season]:not([data-season="classic"]) .archive-card,
html[data-season]:not([data-season="classic"]) .archive-picker,
html[data-season]:not([data-season="classic"]) .game-box,
html[data-season]:not([data-season="classic"]) .modal-dialog,
html[data-season]:not([data-season="classic"]) .account-box,
html[data-season]:not([data-season="classic"]) .account-card,
html[data-season]:not([data-season="classic"]) .profile-card,
html[data-season]:not([data-season="classic"]) .privacy-settings,
html[data-season]:not([data-season="classic"]) .friends-shell,
html[data-season]:not([data-season="classic"]) .player-profile-hero,
html[data-season]:not([data-season="classic"]) .how-card,
html[data-season]:not([data-season="classic"]) .game-card,
html[data-season]:not([data-season="classic"]) .friend-card,
html[data-season]:not([data-season="classic"]) .player-card,
html[data-season]:not([data-season="classic"]) .badge-card{background:linear-gradient(180deg,var(--season-surface-2) 0%, var(--season-surface) 100%);border:1px solid var(--season-line);box-shadow:var(--season-shadow)}
html[data-season]:not([data-season="classic"]) .mini-stat,
html[data-season]:not([data-season="classic"]) .week-dot,
html[data-season]:not([data-season="classic"]) .choice,
html[data-season]:not([data-season="classic"]) .rank-item,
html[data-season]:not([data-season="classic"]) .game-secondary,
html[data-season]:not([data-season="classic"]) .player-search-home,
html[data-season]:not([data-season="classic"]) .avatar-consent,
html[data-season]:not([data-season="classic"]) .difficulty-card{background:color-mix(in srgb,var(--season-surface) 94%, var(--season-chip));border-color:var(--season-line);box-shadow:var(--season-shadow-soft)}

/* Typography */
html[data-season]:not([data-season="classic"]) .eyebrow,
html[data-season]:not([data-season="classic"]) .season-label,
html[data-season]:not([data-season="classic"]) .mini-label,
html[data-season]:not([data-season="classic"]) .tiny-spark,
html[data-season]:not([data-season="classic"]) .small-badge,
html[data-season]:not([data-season="classic"]) .spark-a,
html[data-season]:not([data-season="classic"]) .spark-b,
html[data-season]:not([data-season="classic"]) .spark-c{color:var(--season-accent)!important}
html[data-season]:not([data-season="classic"]) .hero h1 span,
html[data-season]:not([data-season="classic"]) .support-email,
html[data-season]:not([data-season="classic"]) .footer a,
html[data-season]:not([data-season="classic"]) .daily-note a{color:var(--season-accent)}
html[data-season]:not([data-season="classic"]) .section-head p,
html[data-season]:not([data-season="classic"]) .game-card-content p,
html[data-season]:not([data-season="classic"]) .hero p,
html[data-season]:not([data-season="classic"]) .daily-note,
html[data-season]:not([data-season="classic"]) .storage-note,
html[data-season]:not([data-season="classic"]) .leaderboard-footnote,
html[data-season]:not([data-season="classic"]) .leaderboard-requirement p,
html[data-season]:not([data-season="classic"]) .step p,
html[data-season]:not([data-season="classic"]) .footer p,
html[data-season]:not([data-season="classic"]) .footer span:not(.brand-blob):not(.brand-dot){color:var(--season-muted)}

/* Hero + section atmosphere */
html[data-season]:not([data-season="classic"]) .hero,
html[data-season]:not([data-season="classic"]) .end-banner{position:relative;overflow:hidden}
html[data-season]:not([data-season="classic"]) .hero{background:
  radial-gradient(circle at 12% 14%, color-mix(in srgb,var(--season-soft) 34%, transparent) 0%, transparent 30%),
  radial-gradient(circle at 88% 14%, color-mix(in srgb,var(--season-accent-2) 16%, transparent) 0%, transparent 24%),
  linear-gradient(180deg, color-mix(in srgb,var(--season-surface) 86%, transparent) 0%, var(--season-surface) 100%)}
html[data-season]:not([data-season="classic"]) .hero::before,
html[data-season]:not([data-season="classic"]) .hero::after,
html[data-season]:not([data-season="classic"]) .games-section::before,
html[data-season]:not([data-season="classic"]) .leaderboard-section::after,
html[data-season]:not([data-season="classic"]) .how-section::before,
html[data-season]:not([data-season="classic"]) .footer .footer-inner::after{position:absolute;pointer-events:none;opacity:.33}
html[data-season]:not([data-season="classic"]) .hero::before{content:var(--season-emoji-left);left:18px;top:14px;font-size:40px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.08))}
html[data-season]:not([data-season="classic"]) .hero::after{content:var(--season-emoji-right);right:18px;top:18px;font-size:32px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.08))}
html[data-season]:not([data-season="classic"]) .games-section,
html[data-season]:not([data-season="classic"]) .leaderboard-section,
html[data-season]:not([data-season="classic"]) .how-section{position:relative}
html[data-season]:not([data-season="classic"]) .games-section::before{content:var(--season-deco-left);left:18px;top:16px;font-size:26px}
html[data-season]:not([data-season="classic"]) .leaderboard-section::after{content:var(--season-deco-right);right:22px;bottom:18px;font-size:26px}
html[data-season]:not([data-season="classic"]) .how-section::before{content:var(--season-deco-left);right:26px;top:24px;font-size:26px}
html[data-season]:not([data-season="classic"]) .hero-fine,
html[data-season]:not([data-season="classic"]) .daily-note{background:color-mix(in srgb,var(--season-chip) 72%, transparent);border:1px solid color-mix(in srgb,var(--season-line) 92%, transparent);border-radius:14px;padding:10px 12px}

/* Game / progress elements */
html[data-season]:not([data-season="classic"]) .game-card:hover{box-shadow:0 20px 32px color-mix(in srgb,var(--season-accent) 12%, transparent)}
html[data-season]:not([data-season="classic"]) .game-banner.purple{background:color-mix(in srgb,var(--season-soft) 62%, white)}
html[data-season]:not([data-season="classic"]) .game-banner.yellow{background:color-mix(in srgb,var(--season-soft-2) 68%, white)}
html[data-season]:not([data-season="classic"]) .game-banner.mint{background:color-mix(in srgb,var(--season-accent-2) 32%, white)}
html[data-season]:not([data-season="classic"]) .game-banner.coral{background:color-mix(in srgb,var(--season-accent) 16%, var(--season-soft-2))}
html[data-season]:not([data-season="classic"]) .game-banner.blue{background:color-mix(in srgb,var(--season-chip) 80%, white)}
html[data-season]:not([data-season="classic"]) .card-play,
html[data-season]:not([data-season="classic"]) .choice,
html[data-season]:not([data-season="classic"]) .game-secondary{background:var(--season-surface);border-color:var(--season-line);color:var(--season-text)}
html[data-season]:not([data-season="classic"]) .card-play:hover,
html[data-season]:not([data-season="classic"]) .choice:hover:not(:disabled),
html[data-season]:not([data-season="classic"]) .game-secondary:hover{background:var(--season-chip)}
html[data-season]:not([data-season="classic"]) .game-card.is-complete .card-play{background:color-mix(in srgb,var(--season-accent-2) 25%, white);border-color:color-mix(in srgb,var(--season-accent) 22%, white);color:var(--season-strong)}
html[data-season]:not([data-season="classic"]) .progress-track{background:color-mix(in srgb,var(--season-soft) 75%, var(--season-chip))}
html[data-season]:not([data-season="classic"]) .progress-fill{background:linear-gradient(90deg,var(--season-accent),var(--season-accent-2))}
html[data-season]:not([data-season="classic"]) .stat-icon.peach{background:color-mix(in srgb,var(--season-soft-2) 82%, white)}
html[data-season]:not([data-season="classic"]) .stat-icon.lavender{background:color-mix(in srgb,var(--season-soft) 82%, white)}
html[data-season]:not([data-season="classic"]) .stat-icon.mint{background:color-mix(in srgb,var(--season-accent-2) 28%, white)}
html[data-season]:not([data-season="classic"]) .week-day.active .week-dot{background:color-mix(in srgb,var(--season-accent) 14%, white);color:var(--season-accent)}
html[data-season]:not([data-season="classic"]) .week-day.today .week-dot{border-color:var(--season-accent)}

/* Modals and footer */
html[data-season]:not([data-season="classic"]) .modal-bar{background:color-mix(in srgb,var(--season-surface) 92%, transparent);border-bottom-color:var(--season-line)}
html[data-season]:not([data-season="classic"]) .modal-challenge{color:var(--season-accent)}
html[data-season]:not([data-season="classic"]) .back-button,
html[data-season]:not([data-season="classic"]) .modal-close{color:var(--season-muted)}
html[data-season]:not([data-season="classic"]) .back-button:hover,
html[data-season]:not([data-season="classic"]) .modal-close:hover{color:var(--season-text)}
html[data-season]:not([data-season="classic"]) .end-banner{background:
  radial-gradient(circle at 86% 50%, color-mix(in srgb,var(--season-accent-2) 22%, transparent) 0%, transparent 28%),
  linear-gradient(135deg, color-mix(in srgb,var(--season-soft) 34%, white) 0%, color-mix(in srgb,var(--season-surface) 92%, transparent) 100%)}
html[data-season]:not([data-season="classic"]) .end-banner::before{content:var(--season-emoji-left);position:absolute;left:16px;bottom:12px;font-size:30px;opacity:.75}
html[data-season]:not([data-season="classic"]) .end-banner::after{content:var(--season-deco-right);position:absolute;right:16px;top:16px;font-size:28px;opacity:.45}
html[data-season]:not([data-season="classic"]) .footer{background:linear-gradient(180deg,color-mix(in srgb,var(--season-nav) 94%, transparent) 0%, color-mix(in srgb,var(--season-section) 70%, white) 100%);border-top-color:var(--season-line)}
html[data-season]:not([data-season="classic"]) .footer .footer-inner{position:relative}
html[data-season]:not([data-season="classic"]) .footer .footer-inner::after{content:var(--season-emoji-right);right:0;top:6px;font-size:24px}

/* Mobile dock */
html[data-season]:not([data-season="classic"]) .mobile-dock{background:color-mix(in srgb,var(--season-nav) 92%, transparent);border-top-color:var(--season-line);box-shadow:0 -8px 18px rgba(0,0,0,.05)}
html[data-season]:not([data-season="classic"]) .mobile-dock a,
html[data-season]:not([data-season="classic"]) .mobile-dock button{color:var(--season-strong)}
html[data-season]:not([data-season="classic"]) .mobile-dock a:active,
html[data-season]:not([data-season="classic"]) .mobile-dock button:active{background:var(--season-chip)}

@media(max-width:740px){
  html[data-season]:not([data-season="classic"]) .hero::before{font-size:28px;left:8px;top:8px}
  html[data-season]:not([data-season="classic"]) .hero::after{font-size:24px;right:10px;top:10px}
  html[data-season]:not([data-season="classic"]) .reset-change-notice .container{padding-left:34px}
  html[data-season]:not([data-season="classic"]) .games-section::before,
  html[data-season]:not([data-season="classic"]) .leaderboard-section::after,
  html[data-season]:not([data-season="classic"]) .how-section::before{font-size:20px;opacity:.22}
  html[data-season="halloween"] .brand,
  html[data-season="halloween"] .desktop-nav a,
  html[data-season="halloween"] .header-date{color:var(--season-strong)}
}

/* v23 Halloween polish fixes */
html[data-season="halloween"] body{
  background:
    radial-gradient(circle at 10% 0%, rgba(239,127,50,.12) 0%, rgba(239,127,50,0) 24%),
    radial-gradient(circle at 92% 8%, rgba(255,179,111,.08) 0%, rgba(255,179,111,0) 20%),
    linear-gradient(180deg, #24171b 0%, #1d1316 100%);
  color:var(--season-text);
}
html[data-season="halloween"] .site-shell{
  background:
    radial-gradient(circle at 12% 18%, rgba(255,150,77,.08) 0%, transparent 28%),
    radial-gradient(circle at 88% 72%, rgba(255,150,77,.06) 0%, transparent 26%);
}
html[data-season="halloween"] .hero,
html[data-season="halloween"] .games-section,
html[data-season="halloween"] .progress-section,
html[data-season="halloween"] .how-section,
html[data-season="halloween"] .leaderboard-section,
html[data-season="halloween"] .footer{
  background-color:transparent;
}
html[data-season="halloween"] .footer{
  background:linear-gradient(180deg, rgba(44,28,31,.96) 0%, rgba(28,18,21,.98) 100%);
  border-top-color:#4b2f31;
}
html[data-season="halloween"] .footer .footer-inner::after{opacity:.34}

/* Completed game button readability */
html[data-season="halloween"] .game-card.is-complete .card-play{
  background:#f1dfcf;
  border-color:#cb9468;
  color:#4d2d22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
}
html[data-season="halloween"] .game-card.is-complete .card-play:hover{
  background:#f5e6d9;
  color:#40241b;
}
html[data-season="halloween"] .card-play:disabled{
  background:#473034;
  border-color:#614247;
  color:#f1d6c1;
}

/* Hero art cleanup */
html[data-season="halloween"] .tilt-card{
  border-color:#f8efe8;
  box-shadow:0 18px 34px rgba(0,0,0,.26);
}
html[data-season="halloween"] .tilt-card small,
html[data-season="halloween"] .tilt-front strong{
  color:#3f261f;
}
html[data-season="halloween"] .tilt-back{
  background:#e8c1ac;
}
html[data-season="halloween"] .tilt-middle{
  background:#bfd9cc;
}
html[data-season="halloween"] .tilt-front{
  background:#b8a8f0;
}
html[data-season="halloween"] .star-mark{
  color:#fff8ee;
  text-shadow:0 1px 0 rgba(0,0,0,.08);
}
html[data-season="halloween"] .mascot{
  background:#fff5ec;
  box-shadow:inset -8px -8px #e8dbd2;
}
html[data-season="halloween"] .mascot-eye,
html[data-season="halloween"] .mascot-mouth{border-color:#2b2236;background:#2b2236}
html[data-season="halloween"] .hero-sticker{
  background:#472927;
  border-color:#7a4e47;
  color:#fff4e7!important;
  box-shadow:0 12px 28px rgba(0,0,0,.24);
}
html[data-season="halloween"] .hero-sticker b{color:#ffd39e}

/* Leaderboard/footer readability and lower-page cohesion */
html[data-season="halloween"] .leaderboard-panel,
html[data-season="halloween"] .leaderboard-section .leaderboard-row,
html[data-season="halloween"] .leaderboard-requirement,
html[data-season="halloween"] .leaderboard-guest-note{
  box-shadow:0 14px 26px rgba(0,0,0,.16);
}
html[data-season="halloween"] .leaderboard-footnote,
html[data-season="halloween"] .footer p,
html[data-season="halloween"] .footer span:not(.brand-blob):not(.brand-dot){
  color:#dcb8a0;
}
html[data-season="halloween"] .footer a,
html[data-season="halloween"] .support-email{color:#ef9a53}

/* Make sure no pale underlay shows below the page */
html[data-season="halloween"],
html[data-season="halloween"] body{
  background-color:#1d1316;
}


/* ========================================================================
   Womble v24 · durable seasonal component styles / dark Halloween skin
   All these rules intentionally follow the original component styles.
   ======================================================================== */
/* Avoid browser viewport / overscroll white behind short pages or the footer. */
html[data-season="halloween"] {
  background: #1c1316;
  color-scheme: dark;
}
html[data-season="halloween"] body {
  background: linear-gradient(160deg, #281a1d 0%, #201619 53%, #1c1316 100%);
  background-attachment: fixed;
  min-height: 100vh;
  min-height: 100dvh;
}
html[data-season="halloween"] .site-shell {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: transparent;
}
html[data-season="halloween"] .site-shell > main {flex: 1 0 auto;}
html[data-season="halloween"] .footer {
  flex: 0 0 auto;
  background: #211619;
  background-image: linear-gradient(180deg,#271a1e 0%,#1c1316 100%);
  border-top: 1px solid #583a35;
  box-shadow: none;
  color: #e8c9b0;
  padding: 32px 0;
}
html[data-season="halloween"] .footer-inner,
html[data-season="halloween"] .footer .brand { color: #fff1e5; }
html[data-season="halloween"] .footer .footer-inner p,
html[data-season="halloween"] .footer .footer-inner span:not(.brand-dot):not(.brand-blob) {
  color:#d4b09a;
}
html[data-season="halloween"] .footer .footer-inner p a,
html[data-season="halloween"] .footer .footer-inner > span a,
html[data-season="halloween"] .footer .support-email {
  color: #ffb476;
  text-decoration-color: rgba(255,180,118,.5);
}
html[data-season="halloween"] .footer a:hover { color:#ffcf9c; }

/* CONSISTENT SEASONAL LEADERBOARDS — overrides original fixed white styles */
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-panel {
  background: var(--season-surface);
  border-color: var(--season-line);
  color: var(--season-text);
  box-shadow: var(--season-shadow);
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-overview strong,
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-name,
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-count,
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-rank {
  color: var(--season-text);
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-overview p,
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-name small,
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-score small {
  color: var(--season-muted);
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-tabs {
  background:var(--season-chip);
  border:1px solid var(--season-line);
  padding:5px;
  border-radius:16px;
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-tabs button {
  background:transparent;
  color:var(--season-muted);
  border-radius:12px;
  transition:color .2s ease,background .2s ease,box-shadow .2s ease;
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-tabs button.active,
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-tabs button[aria-pressed="true"] {
  color:var(--season-strong);
  background:var(--season-surface-2);
  box-shadow:var(--season-shadow-soft);
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-row {
  background: var(--season-surface-2);
  border:1px solid var(--season-line);
  color: var(--season-text);
  border-radius:16px;
  transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-top {
  background:color-mix(in srgb,var(--season-surface-2) 82%,var(--season-soft));
  border-color:color-mix(in srgb,var(--season-line) 65%,var(--season-accent));
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-me {
  background:color-mix(in srgb,var(--season-surface-2) 85%,var(--season-accent));
  border-color:var(--season-accent);
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-player-link:hover {
  background:color-mix(in srgb,var(--season-surface-2) 86%,var(--season-soft))!important;
  border-color:var(--season-accent)!important;
  color:var(--season-text);
  box-shadow:var(--season-shadow-soft);
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-score {
  color:var(--season-accent);
  font-weight:1000;
  font-variant-numeric:tabular-nums;
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-avatar {
  background:var(--season-soft);
  color:var(--season-strong);
  border:1px solid var(--season-line);
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .player-link-arrow {
  color:var(--season-muted);
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-count,
html[data-season]:not([data-season="classic"]) .leaderboard-section .tiny-mark {
  color:var(--season-strong)!important;
  background:var(--season-chip)!important;
  border:1px solid var(--season-line)!important;
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-row .womble-badge {
  background:var(--season-chip);
  border-color:var(--season-line);
  color:var(--season-strong);
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-row .womble-badge.owner {
  background:#55391d;
  border-color:#996832;
  color:#ffdb8d;
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-row .womble-badge.developer {
  background:#223f52;
  border-color:#39788e;
  color:#b9ecff;
}
html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-row .womble-badge.enthusiast {
  background:#284b36;
  border-color:#4a8860;
  color:#c8f7d8;
}
/* Keep tab focus and avatar ring legible in the dark theme. */
html[data-season="halloween"] .leaderboard-section .leaderboard-list {gap:10px;}
html[data-season="halloween"] .leaderboard-section .leaderboard-row {
  background:#362629;
  border-color:#61413c;
  color:#fff0e4;
  box-shadow:0 8px 19px rgba(0,0,0,.13);
}
html[data-season="halloween"] .leaderboard-section .leaderboard-top {
  background:#3e2a2b;
  border-color:#81503a;
}
html[data-season="halloween"] .leaderboard-section .leaderboard-me {
  background:#4a302c;
  border-color:#ec8b4c;
  box-shadow:inset 3px 0 0 #ef8b46,0 8px 20px rgba(0,0,0,.16);
}
html[data-season="halloween"] .leaderboard-section .leaderboard-player-link:hover {
  background:#53352c!important;
  border-color:#f2a268!important;
  box-shadow:0 12px 26px rgba(0,0,0,.22);
}
html[data-season="halloween"] .leaderboard-section .leaderboard-name,
html[data-season="halloween"] .leaderboard-section .leaderboard-rank,
html[data-season="halloween"] .leaderboard-section .leaderboard-overview strong {
  color:#fff1e5;
}
html[data-season="halloween"] .leaderboard-section .leaderboard-name small,
html[data-season="halloween"] .leaderboard-section .leaderboard-overview p,
html[data-season="halloween"] .leaderboard-section .leaderboard-score small {
  color:#d2ac94;
}
html[data-season="halloween"] .leaderboard-section .leaderboard-score {
  color:#ffb36d;
}
html[data-season="halloween"] .leaderboard-section .leaderboard-avatar {
  background:#744c3b;
  border-color:#96654a;
  color:#fff3df;
}
html[data-season="halloween"] .leaderboard-section .leaderboard-tabs {
  background:#2a1d20;
  border-color:#523633;
}
html[data-season="halloween"] .leaderboard-section .leaderboard-tabs button {color:#d3ad98;}
html[data-season="halloween"] .leaderboard-section .leaderboard-tabs button.active {
  background:#734327;
  color:#fff1df;
  box-shadow:0 4px 11px rgba(0,0,0,.2);
}
html[data-season="halloween"] .leaderboard-section .leaderboard-count {
  background:#4c3028!important;
  border-color:#805039!important;
  color:#ffce9d!important;
}
html[data-season="halloween"] .leaderboard-section .leaderboard-row .womble-badge {
  background:#58392f;
  border-color:#97664b;
  color:#f5d5ba;
}
html[data-season="halloween"] .leaderboard-section .leaderboard-row .womble-badge.owner {
  background:#60401d;
  border-color:#ac803e;
  color:#ffe3a3;
}
html[data-season="halloween"] .leaderboard-section .leaderboard-row .tiny-mark {
  background:#a75c30!important;
  border-color:#d8834f!important;
  color:#fff9ed!important;
}
html[data-season="halloween"] .leaderboard-section .player-link-arrow {color:#df9c72;}
html[data-season="halloween"] .leaderboard-section .leaderboard-footnote {color:#d2ad98;}

/* COMPLETED GAME STATES: resolve old button styles and disabled opacity. */
html[data-season="halloween"] .game-card.is-complete .card-play,
html[data-season="halloween"] .game-card.is-complete .card-play:disabled {
  background:#e9b17b!important;
  color:#321d17!important;
  border:1px solid #ffc08d!important;
  opacity:1;
  text-shadow:none;
  font-weight:950;
  box-shadow:0 4px 12px rgba(0,0,0,.13);
}
html[data-season="halloween"] .game-card.is-complete .card-play:hover:not(:disabled) {
  background:#f2bf8e!important;
  color:#291914!important;
}
html[data-season="halloween"] .game-card .card-play:disabled:not(.is-complete .card-play) {
  color:#ebc7af;
  background:#493030;
}

/* HERO ART: Halloween's own ink / pumpkin / parchment deck (no pastel default). */
html[data-season="halloween"] .tilt-card {
  border:5px solid #f4dfc8;
  box-shadow:0 22px 44px rgba(0,0,0,.25);
}
html[data-season="halloween"] .tilt-back {
  background:#a45c36;
  color:#fff0dc;
}
html[data-season="halloween"] .tilt-middle {
  background:#687252;
  color:#fff2dd;
}
html[data-season="halloween"] .tilt-front {
  background:#d88b51;
  color:#3b251a;
}
html[data-season="halloween"] .tilt-card small {
  color:#fff4e6;
  text-shadow:0 1px 2px rgba(0,0,0,.12);
}
html[data-season="halloween"] .tilt-front strong {color:#3c2318;}
html[data-season="halloween"] .mascot {
  background:#fff2df;
  box-shadow:inset -8px -7px #e3cbb6;
}
html[data-season="halloween"] .mascot-eye {background:#3b2a27;}
html[data-season="halloween"] .mascot-mouth {
  background:transparent;
  border-bottom-color:#3b2a27;
}
html[data-season="halloween"] .star-mark {color:#fff3db;}
html[data-season="halloween"] .hero-sticker {
  background:#4b2b29;
  color:#fff0df!important;
  border:3px solid #9a6250;
  text-shadow:none;
}
html[data-season="halloween"] .hero-sticker b {color:#ffd09d;}
html[data-season="halloween"] .hero-art .spark {color:#ff9851;}

/* Dark theme components throughout gameplay, especially modal and inputs. */
html[data-season="halloween"] .game-title,
html[data-season="halloween"] .game-question,
html[data-season="halloween"] .game-content h3,
html[data-season="halloween"] .account-content h2,
html[data-season="halloween"] .leaderboard-content h2 {color:#fff1e5;}
html[data-season="halloween"] .game-desc,
html[data-season="halloween"] .game-help,
html[data-season="halloween"] .modal-challenge,
html[data-season="halloween"] .account-content p {color:#ddba9f;}
html[data-season="halloween"] .game-box,
html[data-season="halloween"] .modal-dialog,
html[data-season="halloween"] .score-panel,
html[data-season="halloween"] .stats-panel,
html[data-season="halloween"] .step {
  background:#2d2023;
  color:#fff0e3;
  border-color:#583b36;
}
html[data-season="halloween"] .modal-bar {background:#2d2023;border-bottom-color:#583b36;}
html[data-season="halloween"] input,
html[data-season="halloween"] select,
html[data-season="halloween"] textarea {
  background:#39292a;
  color:#fff0e2;
  border-color:#725046;
}
html[data-season="halloween"] input::placeholder,
html[data-season="halloween"] textarea::placeholder {color:#c09b86;opacity:1;}
html[data-season="halloween"] .step p,
html[data-season="halloween"] .stats-panel small,
html[data-season="halloween"] .week-heading {color:#d9b69d;}
html[data-season="halloween"] .rank-item,
html[data-season="halloween"] .choice {
  background:#3b2b2e;
  color:#fff0e5;
  border-color:#775047;
}
html[data-season="halloween"] .rank-item:hover,
html[data-season="halloween"] .choice:hover:not(:disabled) {background:#55372e;border-color:#df8b52;}
html[data-season="halloween"] .rank-item.is-dragging {background:#6e4331;color:#fff8ef;}
html[data-season="halloween"] .date-pill,
html[data-season="halloween"] .streak-chip {background:#3b2829!important;color:#ffe2c6!important;border-color:#6b453b!important;}
html[data-season="halloween"] .card-heading h3,
html[data-season="halloween"] .section-head h2,
html[data-season="halloween"] .score-number,
html[data-season="halloween"] .step h3 {color:#fff1e5;}
html[data-season="halloween"] .game-card-content p,
html[data-season="halloween"] .section-head p,
html[data-season="halloween"] .daily-note,
html[data-season="halloween"] .score-foot {color:#d6b19b;}

/* Readability and layout on narrow screens. */
@media(max-width:740px) {
  html[data-season="halloween"] .leaderboard-section .leaderboard-row {padding:12px 11px;}
  html[data-season="halloween"] .leaderboard-section .leaderboard-avatar {width:34px;height:34px;}
  html[data-season="halloween"] .leaderboard-section .leaderboard-name {font-size:13px;}
  html[data-season="halloween"] .leaderboard-section .leaderboard-score {font-size:16px;}
  html[data-season="halloween"] .leaderboard-section .leaderboard-score small {font-size:10px;}
  html[data-season="halloween"] .footer {padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px));}
}
@media(prefers-reduced-motion:reduce) {
  html[data-season]:not([data-season="classic"]) .leaderboard-section .leaderboard-row {transition:none;}
}

/* v24 final CSS-cascade corrections verified in browser rendering */
html[data-season="halloween"] body {
  background:linear-gradient(155deg,#281a1d 0%,#201519 52%,#1c1316 100%)!important;
}
html[data-season="halloween"] body .site-shell > footer.footer {
  background:#1c1316!important;
  background-image:linear-gradient(180deg,#271a1e 0%,#1c1316 100%)!important;
  border-top:1px solid #573831!important;
  box-shadow:none!important;
}
html[data-season="halloween"] body .site-shell {
  background:transparent!important;
}
html[data-season="halloween"] .leaderboard-requirement strong,
html[data-season="halloween"] .player-search-home > label,
html[data-season="halloween"] .player-search-home label,
html[data-season="halloween"] .leaderboard-section .leaderboard-overview strong,
html[data-season="halloween"] .leaderboard-section .leaderboard-locked strong {
  color:#fff1e5;
}
html[data-season="halloween"] .player-search-home input,
html[data-season="halloween"] .player-search-home input[type="search"] {
  background:#402c2d;
  border-color:#785042;
  color:#fff1e5;
}
html[data-season="halloween"] .player-search-home input::placeholder {color:#d2ad98;opacity:1;}
html[data-season="halloween"] .player-search-home,
html[data-season="halloween"] .leaderboard-requirement {
  background:#302226;
  border-color:#5c3b36;
}
html[data-season="halloween"] .leaderboard-requirement p {color:#dfbaa4;}
html[data-season="halloween"] .leaderboard-section .leaderboard-tabs button.active,
html[data-season="halloween"] .leaderboard-section .leaderboard-tabs button[aria-pressed="true"] {
  background:#744428!important;
  color:#fff3e4!important;
}
/* Public player pages share the seasonal skin as well. */
html[data-season="halloween"] .players-search-box,
html[data-season="halloween"] .player-profile,
html[data-season="halloween"] .player-result,
html[data-season="halloween"] .player-stats .player-stat,
html[data-season="halloween"] .player-game,
html[data-season="halloween"] .badge-card,
html[data-season="halloween"] .badge-pinned,
html[data-season="halloween"] .advanced-stats,
html[data-season="halloween"] .advanced-stats-grid > div,
html[data-season="halloween"] .recent-score-days > span,
html[data-season="halloween"] .private-profile-message {
  background:#302226;
  color:#fff1e5;
  border-color:#5a3935;
}
html[data-season="halloween"] .players-intro h1,
html[data-season="halloween"] .players-search-box h2,
html[data-season="halloween"] .player-profile h2,
html[data-season="halloween"] .player-profile h3,
html[data-season="halloween"] .badge-card h4,
html[data-season="halloween"] .player-stat strong,
html[data-season="halloween"] .advanced-stats strong,
html[data-season="halloween"] #players-form label {
  color:#fff1e5;
}
html[data-season="halloween"] .players-intro p,
html[data-season="halloween"] .player-profile p,
html[data-season="halloween"] .player-profile small,
html[data-season="halloween"] .player-stat span,
html[data-season="halloween"] .badge-card p,
html[data-season="halloween"] .advanced-stats-grid span,
html[data-season="halloween"] .players-search-hint {
  color:#d2ad98;
}
html[data-season="halloween"] .players-search-inputs input,
html[data-season="halloween"] .badge-filter {
  background:#3f2b2c;
  border-color:#754a3d;
  color:#fff1e5;
}
html[data-season="halloween"] .badge-filter.selected {background:#75482e;color:#fff1e5;}

/* v25: extend seasonal skin to puzzle result screens + legal pages */
html[data-season]:not([data-season="classic"]) .result-box{
  background:linear-gradient(180deg, color-mix(in srgb,var(--season-surface) 94%, white) 0%, var(--season-surface) 100%);
  border:1px solid var(--season-line);
  box-shadow:var(--season-shadow);
}
html[data-season]:not([data-season="classic"]) .result-box h3,
html[data-season]:not([data-season="classic"]) .game-title,
html[data-season]:not([data-season="classic"]) .game-question,
html[data-season]:not([data-season="classic"]) .question-report h3,
html[data-season]:not([data-season="classic"]) .legal-main h1,
html[data-season]:not([data-season="classic"]) .legal-section h2,
html[data-season]:not([data-season="classic"]) .legal-home-link{color:var(--season-strong)}
html[data-season]:not([data-season="classic"]) .result-points{color:var(--season-accent)}
html[data-season]:not([data-season="classic"]) .result-points span,
html[data-season]:not([data-season="classic"]) .answer-review,
html[data-season]:not([data-season="classic"]) .legal-meta,
html[data-season]:not([data-season="classic"]) .legal-intro,
html[data-season]:not([data-season="classic"]) .legal-section p,
html[data-season]:not([data-season="classic"]) .legal-section li,
html[data-season]:not([data-season="classic"]) .legal-other,
html[data-season]:not([data-season="classic"]) .report-question-trigger,
html[data-season]:not([data-season="classic"]) .question-report p,
html[data-season]:not([data-season="classic"]) .game-desc,
html[data-season]:not([data-season="classic"]) .game-help,
html[data-season]:not([data-season="classic"]) .feedback{color:var(--season-muted)}
html[data-season]:not([data-season="classic"]) .feedback.error{color:#c45b58}
html[data-season]:not([data-season="classic"]) .completed-pill{
  background:color-mix(in srgb,var(--season-accent-2) 26%, var(--season-surface));
  color:var(--season-strong);
  border:1px solid color-mix(in srgb,var(--season-accent) 22%, white);
}
html[data-season]:not([data-season="classic"]) .answer-review{border-top-color:var(--season-line)}
html[data-season]:not([data-season="classic"]) .report-question-trigger,
html[data-season]:not([data-season="classic"]) .legal-section a,
html[data-season]:not([data-season="classic"]) .legal-other a{color:var(--season-accent)}
html[data-season]:not([data-season="classic"]) .question-report{
  background:linear-gradient(180deg, color-mix(in srgb,var(--season-surface) 96%, white) 0%, var(--season-chip) 100%);
  border:1px solid var(--season-line);
  box-shadow:var(--season-shadow-soft);
}
html[data-season]:not([data-season="classic"]) .question-report select,
html[data-season]:not([data-season="classic"]) .question-report textarea,
html[data-season]:not([data-season="classic"]) .answer-input{
  background:var(--season-surface);
  border:1px solid var(--season-line);
  color:var(--season-text);
}
html[data-season]:not([data-season="classic"]) .question-meta{color:var(--season-accent)}
html[data-season]:not([data-season="classic"]) .legal-paper{
  background:linear-gradient(180deg, color-mix(in srgb,var(--season-surface-2) 98%, white) 0%, var(--season-surface) 100%);
  border:1px solid var(--season-line);
  box-shadow:var(--season-shadow);
}
html[data-season]:not([data-season="classic"]) .legal-section + .legal-section{border-top-color:var(--season-line)}
html[data-season]:not([data-season="classic"]) .legal-main{padding-top:52px;padding-bottom:100px}

/* Give legal pages the same themed section framing */
html[data-season]:not([data-season="classic"]) .legal-main::before,
html[data-season]:not([data-season="classic"]) .legal-main::after{
  content:"";
  position:fixed;
  z-index:-1;
  pointer-events:none;
  border-radius:999px;
}
html[data-season]:not([data-season="classic"]) .legal-main::before{
  top:120px;left:-100px;width:260px;height:260px;
  background:radial-gradient(circle, color-mix(in srgb,var(--season-soft) 35%, transparent) 0%, transparent 66%);
}
html[data-season]:not([data-season="classic"]) .legal-main::after{
  bottom:60px;right:-90px;width:300px;height:300px;
  background:radial-gradient(circle, color-mix(in srgb,var(--season-accent-2) 18%, transparent) 0%, transparent 67%);
}

/* Halloween-specific polish for result screens and legal pages */
html[data-season="halloween"] .result-box{
  background:linear-gradient(180deg,#2e2024 0%, #261b1e 100%);
  border-color:#533235;
}
html[data-season="halloween"] .result-box h3,
html[data-season="halloween"] .game-title,
html[data-season="halloween"] .game-question,
html[data-season="halloween"] .legal-main h1,
html[data-season="halloween"] .legal-section h2{color:#fff2e3}
html[data-season="halloween"] .result-points{color:#f2994c}
html[data-season="halloween"] .result-points span,
html[data-season="halloween"] .answer-review,
html[data-season="halloween"] .legal-meta,
html[data-season="halloween"] .legal-intro,
html[data-season="halloween"] .legal-section p,
html[data-season="halloween"] .legal-section li,
html[data-season="halloween"] .legal-other,
html[data-season="halloween"] .question-report p,
html[data-season="halloween"] .game-desc,
html[data-season="halloween"] .game-help,
html[data-season="halloween"] .feedback{color:#ddbaa2}
html[data-season="halloween"] .completed-pill{
  background:#374c3c;
  border-color:#63866b;
  color:#e8f7ec;
}
html[data-season="halloween"] .question-report{
  background:linear-gradient(180deg,#302125 0%, #281d20 100%);
  border-color:#523538;
}
html[data-season="halloween"] .question-report label,
html[data-season="halloween"] .question-report h3,
html[data-season="halloween"] .legal-home-link{color:#fff1de}
html[data-season="halloween"] .question-report select,
html[data-season="halloween"] .question-report textarea,
html[data-season="halloween"] .answer-input{
  background:#22181b;
  border-color:#5d3d40;
  color:#fff3e8;
}
html[data-season="halloween"] .legal-paper{
  background:linear-gradient(180deg,#2c1f22 0%, #251a1d 100%);
  border-color:#503236;
}
html[data-season="halloween"] .legal-section + .legal-section{border-top-color:#493034}
html[data-season="halloween"] .report-question-trigger,
html[data-season="halloween"] .legal-section a,
html[data-season="halloween"] .legal-other a{color:#ef9a53}
html[data-season="halloween"] .question-meta{color:#f2a863}
html[data-season="halloween"] .answer-review{border-top-color:#4b3034}

/* v26 — ClueDrop/WordDrop readable clue cards in every seasonal skin.
   The clue card used a hard-coded pastel surface but inherited cream text from the
   dark Halloween modal; define the surface AND foreground together. */
html[data-season]:not([data-season="classic"]) .clue-list {
  gap:12px;
}
html[data-season]:not([data-season="classic"]) .clue-list .clue-line {
  background:var(--season-surface-2);
  border:1px solid var(--season-line);
  color:var(--season-text);
  border-radius:15px;
  padding:16px;
  align-items:flex-start;
  line-height:1.6;
  box-shadow:0 4px 10px rgba(0,0,0,.035);
}
html[data-season]:not([data-season="classic"]) .clue-list .clue-line > span:last-child {
  color:inherit;
  overflow-wrap:anywhere;
  min-width:0;
  flex:1 1 auto;
}
html[data-season]:not([data-season="classic"]) .clue-list .clue-index {
  background:var(--season-soft);
  color:var(--season-strong);
  border:1px solid var(--season-line);
  border-radius:10px;
  width:31px;
  height:31px;
  flex:0 0 31px;
  font-size:13px;
  line-height:1;
}
/* Halloween uses a rich burgundy card, not pastel boxes. */
html[data-season="halloween"] .clue-list .clue-line {
  background:#402a2c;
  color:#fff1df;
  border-color:#845340;
  box-shadow:0 5px 14px rgba(0,0,0,.12);
}
html[data-season="halloween"] .clue-list .clue-line > span:last-child {
  color:#fff1df;
}
html[data-season="halloween"] .clue-list .clue-index {
  background:#f39245;
  border-color:#f7b173;
  color:#321b15;
}

/* Keep the answer and clue sections visually cohesive on the dark skin. */
html[data-season="halloween"] .choices .choice {
  background:#3b2b2e;
  border-color:#775047;
  color:#fff0e5;
}
html[data-season="halloween"] .choices .choice:hover:not(:disabled),
html[data-season="halloween"] .choices .choice:focus-visible {
  background:#55372e;
  border-color:#f39245;
}
html[data-season="halloween"] .choices .choice.selected-correct,
html[data-season="halloween"] .choices .choice.reveal-correct {
  background:#284638;
  border-color:#74b995;
  color:#e9fff0;
}
html[data-season="halloween"] .choices .choice.selected-wrong {
  background:#5c2c31;
  border-color:#f18b84;
  color:#fff0ed;
}
@media(max-width:740px) {
  html[data-season]:not([data-season="classic"]) .clue-list .clue-line {
    padding:14px 13px;
    font-size:14px;
    gap:12px;
  }
  html[data-season]:not([data-season="classic"]) .clue-list .clue-index {
    width:29px;
    height:29px;
    flex-basis:29px;
  }
}

/* v26.1 — mobile puzzle polish for ClueDrop + GridLock */
/* Force clue-card foregrounds so dark seasonal modal text does not wash out the hints. */
html[data-season]:not([data-season="classic"]) .clue-line,
html[data-season]:not([data-season="classic"]) .clue-line span,
html[data-season]:not([data-season="classic"]) .clue-line strong {
  color: var(--season-text) !important;
}
html[data-season="halloween"] .clue-line,
html[data-season="halloween"] .clue-line span,
html[data-season="halloween"] .clue-line strong {
  color:#fff1df !important;
}
html[data-season="halloween"] .clue-index{
  color:#321b15 !important;
}

/* Seasonal 4x4 number grid styling */
html[data-season]:not([data-season="classic"]) .sudoku{
  border-color:var(--season-strong);
  background:var(--season-surface);
  box-shadow:0 12px 28px rgba(0,0,0,.14);
}
html[data-season]:not([data-season="classic"]) .sudoku input{
  background:var(--season-surface-2);
  color:var(--season-strong);
  border-right:1px solid var(--season-line);
  border-bottom:1px solid var(--season-line);
}
html[data-season]:not([data-season="classic"]) .sudoku input:nth-child(4n+2),
html[data-season]:not([data-season="classic"]) .sudoku input:nth-child(4n+1):nth-child(n+5):nth-child(-n+6),
html[data-season]:not([data-season="classic"]) .sudoku input:nth-child(4n+3):nth-child(n+11):nth-child(-n+12),
html[data-season]:not([data-season="classic"]) .sudoku input:nth-child(4n):nth-child(n+15){
  background:color-mix(in srgb,var(--season-surface-2) 82%, var(--season-soft));
}
html[data-season]:not([data-season="classic"]) .sudoku input:nth-child(4n+2){
  border-right:3px solid var(--season-strong);
}
html[data-season]:not([data-season="classic"]) .sudoku input:nth-child(n+5):nth-child(-n+8){
  border-bottom:3px solid var(--season-strong);
}
html[data-season]:not([data-season="classic"]) .sudoku input:focus{
  background:color-mix(in srgb,var(--season-soft) 55%, white);
  color:var(--season-strong);
  box-shadow:inset 0 0 0 2px var(--season-accent);
}
html[data-season]:not([data-season="classic"]) .sudoku input.given{
  background:color-mix(in srgb,var(--season-soft) 70%, white);
  color:var(--season-strong);
  font-weight:1000;
}
html[data-season]:not([data-season="classic"]) .sudoku input.hinted{
  background:color-mix(in srgb,var(--season-accent-2) 45%, white);
  color:var(--season-strong);
  font-weight:1000;
}

/* Halloween-specific premium puzzle skin */
html[data-season="halloween"] .sudoku{
  border-color:#7d5649;
  background:#23171a;
  box-shadow:0 16px 34px rgba(0,0,0,.28);
}
html[data-season="halloween"] .sudoku input{
  background:#342225;
  color:#fff2e3;
  border-right:1px solid #6a4840;
  border-bottom:1px solid #6a4840;
}
/* More visible 2x2 quadrants */
html[data-season="halloween"] .sudoku input:nth-child(1),
html[data-season="halloween"] .sudoku input:nth-child(2),
html[data-season="halloween"] .sudoku input:nth-child(5),
html[data-season="halloween"] .sudoku input:nth-child(6),
html[data-season="halloween"] .sudoku input:nth-child(11),
html[data-season="halloween"] .sudoku input:nth-child(12),
html[data-season="halloween"] .sudoku input:nth-child(15),
html[data-season="halloween"] .sudoku input:nth-child(16){
  background:#40292d;
}
html[data-season="halloween"] .sudoku input:nth-child(3),
html[data-season="halloween"] .sudoku input:nth-child(4),
html[data-season="halloween"] .sudoku input:nth-child(7),
html[data-season="halloween"] .sudoku input:nth-child(8),
html[data-season="halloween"] .sudoku input:nth-child(9),
html[data-season="halloween"] .sudoku input:nth-child(10),
html[data-season="halloween"] .sudoku input:nth-child(13),
html[data-season="halloween"] .sudoku input:nth-child(14){
  background:#2f1f22;
}
html[data-season="halloween"] .sudoku input:nth-child(4n+2){
  border-right:4px solid #f09347;
}
html[data-season="halloween"] .sudoku input:nth-child(n+5):nth-child(-n+8){
  border-bottom:4px solid #f09347;
}
html[data-season="halloween"] .sudoku input:focus{
  background:#5d3a32;
  color:#fff8ef;
  box-shadow:inset 0 0 0 2px #ffd29d;
}
html[data-season="halloween"] .sudoku input.given{
  background:#f3ebe8;
  color:#231a2f;
}
html[data-season="halloween"] .sudoku input.hinted{
  background:#f5a257;
  color:#291a12;
}

@media(max-width:440px){
  html[data-season="halloween"] .sudoku{
    box-shadow:0 10px 22px rgba(0,0,0,.24);
  }
  html[data-season]:not([data-season="classic"]) .sudoku input{
    font-size:24px;
  }
}


/* Womble v27: stable staff badges across ALL calendar themes. */
html .womble-badge.beta-tester,
html[data-season] .womble-badge.beta-tester,
html[data-season] .leaderboard-section .leaderboard-row .womble-badge.beta-tester {
  background:#ede4ff !important;
  border:1px solid #b6a0ed !important;
  color:#563493 !important;
}
html .womble-badge.owner,
html[data-season] .womble-badge.owner,
html[data-season] .leaderboard-section .leaderboard-row .womble-badge.owner {
  background:#fff1bc !important;
  border:1px solid #e2b94e !important;
  color:#795003 !important;
}
html .womble-badge.developer,
html[data-season] .womble-badge.developer,
html[data-season] .leaderboard-section .leaderboard-row .womble-badge.developer {
  background:#d5f4df !important;
  border:1px solid #83cda0 !important;
  color:#1d6440 !important;
}

/* Keep the text and the card background in the SAME scheme in seasonal modes. */
html[data-season]:not([data-season="classic"]) .friends-section,
html[data-season]:not([data-season="classic"]) .archive-alert,
html[data-season]:not([data-season="classic"]) .archive-date,
html[data-season]:not([data-season="classic"]) .archive-game,
html[data-season]:not([data-season="classic"]) .archive-result,
html[data-season]:not([data-season="classic"]) .friend-join-message {
  background:var(--season-surface);
  border:1px solid var(--season-line);
  color:var(--season-text);
  box-shadow:var(--season-shadow-soft);
}
html[data-season]:not([data-season="classic"]) .friends-section h2,
html[data-season]:not([data-season="classic"]) .friend-name,
html[data-season]:not([data-season="classic"]) .archive-date strong,
html[data-season]:not([data-season="classic"]) .archive-game span:nth-child(2),
html[data-season]:not([data-season="classic"]) .archive-day-head h2,
html[data-season]:not([data-season="classic"]) .archive-browser-head h2,
html[data-season]:not([data-season="classic"]) .archive-result strong {
  color:var(--season-strong);
}
html[data-season]:not([data-season="classic"]) .friends-empty,
html[data-season]:not([data-season="classic"]) .friends-intro,
html[data-season]:not([data-season="classic"]) .archive-date small,
html[data-season]:not([data-season="classic"]) .archive-caption,
html[data-season]:not([data-season="classic"]) .archive-day-head p,
html[data-season]:not([data-season="classic"]) .archive-intro,
html[data-season]:not([data-season="classic"]) .archive-result p,
html[data-season]:not([data-season="classic"]) .archive-empty {
  color:var(--season-muted);
}
html[data-season]:not([data-season="classic"]) .friend-card {
  background:transparent;
  border:0;
  border-top:1px solid var(--season-line);
  box-shadow:none;
  color:var(--season-text);
}
html[data-season]:not([data-season="classic"]) .friend-card:first-child {border-top:0;}
html[data-season]:not([data-season="classic"]) .friend-buttons button {
  background:var(--season-chip);
  border:1px solid var(--season-line);
  color:var(--season-strong);
}
html[data-season]:not([data-season="classic"]) .friend-buttons button:hover {
  background:var(--season-soft);
}
html[data-season]:not([data-season="classic"]) .friend-join-message a {
  color:var(--season-accent);
  text-decoration-thickness:2px;
}
html[data-season]:not([data-season="classic"]) .archive-date:hover,
html[data-season]:not([data-season="classic"]) .archive-date[aria-pressed="true"],
html[data-season]:not([data-season="classic"]) .archive-game:hover {
  background:var(--season-chip);
  border-color:var(--season-accent);
  color:var(--season-strong);
}
html[data-season]:not([data-season="classic"]) .archive-game span:last-child,
html[data-season]:not([data-season="classic"]) .archive-back,
html[data-season]:not([data-season="classic"]) .archive-result strong {color:var(--season-accent);}
html[data-season]:not([data-season="classic"]) .archive-alert {
  background:var(--season-chip);
  color:var(--season-strong);
  font-weight:750;
}

/* Womble's banner uses only oversized typographic * characters, never seasonal emoji art. */
html[data-season] .end-banner::before,
html[data-season] .end-banner::after {
  content:"*" !important;
  font-family:Arial, sans-serif;
  color:var(--season-accent);
  font-weight:800;
  opacity:.14;
  font-size:clamp(68px,10vw,134px);
  line-height:1;
  z-index:0;
  pointer-events:none;
}
html[data-season] .end-banner::before {left:5%;top:auto;bottom:-42px;}
html[data-season] .end-banner::after {right:8%;bottom:-44px;top:auto;}
html[data-season] .banner-decor {
  font-family:Arial, sans-serif;
  font-size:clamp(85px,14vw,155px);
  line-height:.9;
  color:var(--season-accent);
  opacity:.12;
  right:28%;
  bottom:-38px;
  z-index:0;
  pointer-events:none;
  filter:none;
}
html[data-season] .end-banner > div:first-child,
html[data-season] .end-banner > a {position:relative;z-index:2;}

/* Clues: readable text on matching (not pastel-on-cream) surfaces. */
html[data-season]:not([data-season="classic"]) .clue-list .clue-line {
  background:var(--season-surface-2);
  border:1px solid var(--season-line);
  color:var(--season-text) !important;
}
html[data-season]:not([data-season="classic"]) .clue-list .clue-line > span:last-child {
  color:inherit !important;
}
html[data-season="halloween"] .clue-list .clue-line {
  background:#402a2c;
  border-color:#87573f;
  color:#fff3e6 !important;
}
html[data-season="halloween"] .clue-list .clue-line > span:last-child {color:#fff3e6 !important;}
html[data-season="halloween"] .clue-list .clue-index {
  background:#ffaf73;
  border-color:#f4c194;
  color:#281919 !important;
}

/* High-contrast center dividers make all four 2x2 GridLock boxes obvious. */
html[data-season]:not([data-season="classic"]) .sudoku {border-width:4px;border-style:solid;}
html[data-season]:not([data-season="classic"]) .sudoku input:nth-child(4n+2) {
  border-right-width:5px;
  border-right-style:solid;
  border-right-color:var(--season-strong);
}
html[data-season]:not([data-season="classic"]) .sudoku input:nth-child(n+5):nth-child(-n+8) {
  border-bottom-width:5px;
  border-bottom-style:solid;
  border-bottom-color:var(--season-strong);
}
html[data-season="halloween"] .sudoku input:nth-child(4n+2) {border-right-color:#f3a96c;}
html[data-season="halloween"] .sudoku input:nth-child(n+5):nth-child(-n+8) {border-bottom-color:#f3a96c;}

@media(max-width:740px){
  html[data-season] .end-banner::before {font-size:70px;bottom:-23px;left:4%;}
  html[data-season] .end-banner::after {font-size:70px;bottom:-29px;right:8%;}
  html[data-season] .banner-decor {font-size:88px;right:21%;bottom:-25px;}
  html[data-season]:not([data-season="classic"]) .friends-section {padding:17px;}
  html[data-season]:not([data-season="classic"]) .clue-list .clue-line {padding:14px;}
}


/* Account tab only: dark profile header with cream name in every season.
   Keep staff and achievement badges unchanged. */
html .account-content .profile-header,
html[data-season] .account-content .profile-header {
  background:#35272b;
  border:1px solid #695157;
  color:#fff1e5;
}
html .account-content .profile-header .profile-info > strong,
html[data-season] .account-content .profile-header .profile-info > strong {
  color:#fff1e5 !important;
  text-shadow:none;
}
html .account-content .profile-header .profile-info > small,
html[data-season] .account-content .profile-header .profile-info > small {
  color:#e2c7bd !important;
}
html .account-content .profile-header .profile-info,
html[data-season] .account-content .profile-header .profile-info {
  min-width:0;
}


/* Womble v31: Bug Tester stays red during every seasonal theme. */
html .womble-badge.bug-tester,
html[data-season] .womble-badge.bug-tester,
html[data-season] .leaderboard-section .leaderboard-row .womble-badge.bug-tester {
  background:#ffe1e0 !important;
  border:1px solid #e88585 !important;
  color:#912b31 !important;
}
