/* Automatic holiday themes, with no user-facing selector. */
html.forum-seasonal {
  --color-bg-primary: var(--holiday-bg); --color-bg-secondary: var(--holiday-panel); --color-bg-tertiary: var(--holiday-raised);
  --color-bg-card: var(--holiday-panel); --color-bg-card-hover: var(--holiday-raised); --color-bg-glass: var(--holiday-panel);
  --color-border: var(--holiday-border); --color-border-hover: var(--holiday-accent); --color-border-accent: var(--holiday-border);
  --color-text-primary: #f0ede7; --color-text-secondary: #c7c1bd; --color-text-muted: #aba4a0;
  --color-accent-primary: var(--holiday-accent); --color-accent-secondary: var(--holiday-highlight);
  --color-accent-gradient: linear-gradient(135deg, var(--holiday-accent), var(--holiday-highlight));
}
html[data-forum-theme=christmas] { --holiday-bg: #111916; --holiday-panel: #19231e; --holiday-raised: #23342b; --holiday-border: #365042; --holiday-accent: #85c2a5; --holiday-highlight: #e3c891; --holiday-button: #365a47; --holiday-halo: #497c6028; }
html[data-forum-theme=spring] { --holiday-bg: #1b1213; --holiday-panel: #28191a; --holiday-raised: #382325; --holiday-border: #633735; --holiday-accent: #ed8f89; --holiday-highlight: #f1c473; --holiday-button: #914b45; --holiday-halo: #b23b2925; }
html[data-forum-theme=midautumn] { --holiday-bg: #151522; --holiday-panel: #1e2030; --holiday-raised: #292b42; --holiday-border: #484663; --holiday-accent: #c5b4eb; --holiday-highlight: #e8cc91; --holiday-button: #61517d; --holiday-halo: #a18ddd23; }
html[data-forum-theme=newyear] { --holiday-bg: #121821; --holiday-panel: #1b2432; --holiday-raised: #28344a; --holiday-border: #40526c; --holiday-accent: #acc8f0; --holiday-highlight: #d9e4f6; --holiday-button: #486388; --holiday-halo: #7aabff22; }
html[data-forum-theme=valentine] { --holiday-bg: #1c141a; --holiday-panel: #291c25; --holiday-raised: #392732; --holiday-border: #653c51; --holiday-accent: #edabb8; --holiday-highlight: #f2d3bf; --holiday-button: #8a4862; --holiday-halo: #d07b9a25; }
html[data-forum-theme=easter] { --holiday-bg: #141b17; --holiday-panel: #1d2922; --holiday-raised: #2b3930; --holiday-border: #41604e; --holiday-accent: #b0d5b9; --holiday-highlight: #e0c9ec; --holiday-button: #4e705b; --holiday-halo: #bba5dc23; }
html[data-forum-theme=halloween] { --holiday-bg: #1b151f; --holiday-panel: #29212b; --holiday-raised: #392a35; --holiday-border: #624b56; --holiday-accent: #f1b072; --holiday-highlight: #c9a7e8; --holiday-button: #875236; --holiday-halo: #b76b3c2a; }
html[data-forum-theme=thanksgiving] { --holiday-bg: #1c1914; --holiday-panel: #2a241d; --holiday-raised: #3a3025; --holiday-border: #63533d; --holiday-accent: #e3ba82; --holiday-highlight: #ead5a3; --holiday-button: #77603f; --holiday-halo: #be925527; }
html[data-forum-theme=dragonboat] { --holiday-bg: #111b19; --holiday-panel: #1b2924; --holiday-raised: #283c33; --holiday-border: #3b5e4f; --holiday-accent: #93cbb5; --holiday-highlight: #dfcb92; --holiday-button: #426d58; --holiday-halo: #58a38b22; }
html.forum-seasonal body { background: repeating-linear-gradient(135deg, #ffffff02 0, #ffffff02 1px, transparent 1px, transparent 4px), var(--holiday-bg); }
html.forum-seasonal :is(.community-page header.header, .community-topbar, .docs-topbar, .staff-page header, .footer-main, .docs-footer) { background: var(--holiday-panel); border-color: var(--holiday-border); }
html.forum-seasonal :is(.community-page .section, .community-page .sidebar, .community-card, .chat-panel, .cat-item, .pd-card, .pd-comments-section, .pd-comment-form, .up-card, .up-bottom, .up-tab-content, .post-container, .store-redeem, .store-summary, .store-note, .store-plan, .unified-membership, .membership-method, .discord-guide-card, .docs-sidebar, .docs-reader, .docs-section, .feature-group, .dm-workspace, .dm-contacts, .dm-conversation, .dm-message, .dm-item, .staff-page .panel, .staff-page .stat-card, .staff-page .create-panel, .staff-page .table-wrap, .staff-page .filter-panel, .login-form-side, .account-dropdown, .forum-search-panel, .user-hover-card) { background-color: var(--holiday-panel); border-color: var(--holiday-border); }
html.forum-seasonal :is(.cat-item:hover, .pd-comment, .chat-panel-header, .ad-header, .ad-links, .ad-logout, .forum-search-heading, .forum-search-footer, .dm-workspace-header, .dm-list-header, .staff-page .tab-bar, .staff-page th) { background-color: var(--holiday-raised); border-color: var(--holiday-border); }
html.forum-seasonal :is(.community-page .sidebar-item.active, .community-page .up-tab.active, .staff-page .tab-btn.active, .docs-page-link.active) { background: var(--holiday-raised); color: var(--holiday-highlight); border-color: var(--holiday-accent); }
html.forum-seasonal :is(.community-page header.header .nav-link.active, .member-navigation [aria-current=page]) { color: var(--holiday-highlight); border-color: var(--holiday-accent); }
html.forum-seasonal :is(.community-location > a, .breadcrumb a, .forum-list-breadcrumb a, .sidebar-item, .ad-link, .client-help a, .footer-legal-link, .docs-footer a, .member-nav-end, .forum-search-heading strong, .category-symbol .forum-ui-icon, .section h2, .community-primary, .chat-input-area button, .docs-link) { color: var(--holiday-accent); }
html.forum-seasonal :is(.community-page .community-primary, .community-page .client-download-button, .community-page .security-submit, .community-page .redeem-row button, .community-page .store-actions button, .login-redesign .login-btn) { background: var(--holiday-button); border-color: var(--holiday-border); color: #fff5e5; }
html.forum-seasonal :is(.community-page .community-primary:hover, .community-page .client-download-button:hover:not(:disabled)) { background: var(--holiday-raised); color: var(--holiday-highlight); }
html.forum-seasonal .community-page :is(input:not([type=checkbox]):not([type=range]):not([type=file]), textarea, select) { background: var(--holiday-bg); border-color: var(--holiday-border); }
html.forum-seasonal .community-page :is(input, textarea, select):focus { border-color: var(--holiday-accent); box-shadow: none; }
html.forum-seasonal .community-page :focus-visible { outline-color: var(--holiday-accent); }
html.forum-seasonal :is(.client-facts > div, .client-download-action, .chat-input-area, .ad-divider, .ad-account-facts, .membership-method, .store-plan-details, .security-form .form-group, .staff-page td) { border-color: var(--holiday-border); }
html.forum-seasonal .chat-messages { scrollbar-color: var(--holiday-accent) var(--holiday-panel); }
html.forum-seasonal .chat-messages::-webkit-scrollbar-thumb { background: var(--holiday-button); border-color: var(--holiday-panel); }

/* Decorations occupy the masthead only; they never cover controls or posts. */
html.forum-seasonal .forum-masthead { position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 50% 40%, var(--holiday-halo), transparent 65%); }
html[data-forum-theme=christmas] .forum-masthead > a { position: relative; }
.brand-holiday-santa { position: absolute; width: 78px; height: 88px; right: 8%; top: -64px; pointer-events: none; filter: drop-shadow(0 4px 3px #0003); }
.brand-holiday-santa svg { display: block; width: 100%; height: 100%; }
.forum-holiday-art { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.holiday-ornament { position: absolute; top: 50%; width: 94px; height: 112px; color: var(--holiday-highlight); opacity: .8; transform: translateY(-50%); }
.holiday-ornament svg { width: 100%; height: 100%; filter: drop-shadow(0 0 13px var(--holiday-halo)); }
.holiday-ornament-left { left: 10%; }
.holiday-ornament-right { right: 10%; }
html[data-forum-theme=spring] .holiday-ornament { top: 40%; transform-origin: top center; animation: holiday-lantern-sway 6s ease-in-out infinite; }
html[data-forum-theme=spring] .holiday-ornament-right { animation-delay: -3s; }
html[data-forum-theme=midautumn] .holiday-ornament-left { opacity: .23; }
html[data-forum-theme=midautumn] .holiday-ornament-right { opacity: .75; }
.holiday-garland { position: absolute; inset: 0 0 auto; height: 58px; opacity: .75; }
.holiday-garland svg { width: 100%; height: 100%; }
html[data-forum-theme=halloween] .holiday-ornament { animation: holiday-float 7s ease-in-out infinite; }
html[data-forum-theme=halloween] .holiday-ornament-right { animation-delay: -3.5s; }
html[data-forum-theme=valentine] .holiday-sparks i { width: 5px; height: 7px; border-radius: 80% 0 80% 0; animation: holiday-petal 9s linear var(--spark-delay) infinite; }
html[data-forum-theme=thanksgiving] .holiday-sparks i { width: 6px; height: 7px; border-radius: 0 65% 0 65%; animation: holiday-petal 10s linear var(--spark-delay) infinite; }
.holiday-sparks { position: absolute; inset: 0; }
.holiday-sparks i { position: absolute; left: var(--spark-x); top: 28%; width: 2px; height: 2px; border-radius: 50%; background: var(--holiday-highlight); opacity: .3; animation: holiday-spark 5s ease-in-out var(--spark-delay) infinite; }
.holiday-sparks i:nth-child(2n) { top: 78%; }
html[data-forum-theme=christmas] .holiday-sparks i { width: 3px; height: 3px; top: -8px; background: #e5eee7; animation: holiday-snow 8s linear var(--spark-delay) infinite; }
.holiday-firework { position: absolute; width: 138px; height: 138px; color: var(--holiday-highlight); transform-origin: center; opacity: 0; animation: holiday-firework-bloom 7s ease-out infinite; }
.holiday-firework svg { display: block; width: 100%; height: 100%; }
.holiday-firework-left { top: 7%; left: 24%; }
.holiday-firework-right { top: 32%; right: 22%; width: 110px; height: 110px; color: var(--holiday-accent); animation-delay: -3.5s; }
@keyframes holiday-firework-bloom { 0%, 18% { opacity: 0; transform: scale(.2); } 32% { opacity: .65; } 62% { opacity: 0; transform: scale(1); } 100% { opacity: 0; transform: scale(1); } }
@keyframes holiday-spark { 0%, 100% { opacity: .2; transform: translateY(0); } 50% { opacity: .65; transform: translateY(-8px); } }
@keyframes holiday-snow { from { transform: translate3d(0, 0, 0); opacity: 0; } 12%, 88% { opacity: .5; } to { transform: translate3d(var(--spark-drift), 250px, 0); opacity: 0; } }
@keyframes holiday-lantern-sway { 0%, 100% { transform: translateY(-50%) rotate(-3deg); } 50% { transform: translateY(-50%) rotate(3deg); } }
@keyframes holiday-float { 0%, 100% { transform: translateY(-50%); } 50% { transform: translateY(calc(-50% - 7px)); } }
@keyframes holiday-petal { 0% { opacity: 0; transform: translate(0, -15px) rotate(0); } 20%, 80% { opacity: .45; } 100% { opacity: 0; transform: translate(var(--spark-drift), 70px) rotate(170deg); } }
@media (max-width: 800px) { .holiday-ornament { width: 56px; height: 76px; opacity: .35; } .holiday-ornament-left { left: 2%; } .holiday-ornament-right { right: 2%; } }
@media (max-width: 480px) { .holiday-ornament { width: 36px; height: 54px; top: 75%; opacity: .3; } }
@media (max-width: 480px) { .brand-holiday-santa { width: 58px; height: 65px; top: -44px; right: 4%; } .holiday-firework { width: 100px; height: 100px; } .holiday-firework-left { left: 10%; } .holiday-firework-right { right: 8%; } }
@media (prefers-reduced-motion: reduce) { .forum-holiday-art *, html[data-forum-theme=spring] .holiday-ornament { animation: none !important; } .holiday-firework { transform: scale(1); opacity: .25; } html[data-forum-theme=christmas] .holiday-sparks i { top: 20%; } html[data-forum-theme=christmas] .holiday-sparks i:nth-child(2n) { top: 80%; } }
