/* GENERATED: public/season/seasonal.css is built from qa/season/seasonal-visuals.src.css by
   `node qa/season/tools/build-css.mjs` (the SVG motifs in qa/season/svg inlined as data: URIs).
   Edit the source, not this file. Linked by app/layout.tsx only while a theme is scheduled. */
/* ==========================================================================
   Seasonal visuals (ldcradio.co.uk Seasonal Theme Engine, P3).

   SOURCE FILE (qa/season/seasonal-visuals.src.css). Edit this one, then run
   `node qa/season/tools/build-css.mjs`, which writes styles/seasonal.css with
   every url(svg/NAME.svg) inlined as a data: URI.

   Every rule is keyed on html[data-theme], which only the seasonal head script
   (and the layout, for no-JS first paint) sets. With no attribute nothing here
   matches and the site is exactly as approved.

   Ground rules this file keeps:
   - No layout: no width/height/margin/padding/position/display change on any
     existing box. New boxes are ::before/::after pseudo-elements that are
     position:absolute or fixed (out of flow), so CLS stays 0.
   - Only z-index is added to existing boxes, and only to boxes that are already
     positioned in ldc.css at that breakpoint (.hero .head/.sub/.cta, .onair).
   - Text contrast: tints and motifs sit beside or under text, never over it;
     glows only colour the near-black background a little (at most 14% of a
     theme colour behind any text). --ink-4 is lifted to #8E9290 under themes,
     which keeps >= 4.5:1 on the brightest glow centre of every theme (checked
     per theme in README), and html.hc still wins.
   - prefers-reduced-motion: reduce switches every animation here off.
   - Colours come from per-theme triplets (--s1/--s2/--s3, "r g b") so alpha
     variants need no color-mix(); --season-1..3 are the same colours as hex for
     the canvas layer (SeasonalDecor.tsx), which uses them ahead of LDC One's
     accents (those only colour the canvas for a custom theme key).
   ========================================================================== */

/* ---------- 1. per-theme palettes and art ---------- */

html[data-theme="halloween"]{
  --season-1:#FF7A1A;--season-2:#9B4DFF;--season-3:#8DFF6A;
  --s1:255 122 26;--s2:155 77 255;--s3:141 255 106;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3CradialGradient id='h' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='.38' stop-color='%23FFD98A' stop-opacity='.55'/%3E%3Cstop offset='.6' stop-color='%23FF8A3D' stop-opacity='.16'/%3E%3Cstop offset='1' stop-color='%237B2CFF' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='m' cx='.4' cy='.38' r='.7'%3E%3Cstop offset='0' stop-color='%23FFF6D8'/%3E%3Cstop offset='.7' stop-color='%23F7D78A'/%3E%3Cstop offset='1' stop-color='%23E0A85A'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='128' cy='98' r='132' fill='url(%23h)'/%3E%3Ccircle cx='128' cy='98' r='54' fill='url(%23m)'/%3E%3Cg fill='%23C9934B' opacity='.45'%3E%3Ccircle cx='110' cy='84' r='9'/%3E%3Ccircle cx='146' cy='112' r='12'/%3E%3Ccircle cx='140' cy='76' r='5'/%3E%3Ccircle cx='112' cy='120' r='6'/%3E%3Ccircle cx='158' cy='92' r='4'/%3E%3C/g%3E%3Cg fill='%2312081c'%3E%3Cpath id='b' d='M0 0c-5-9-17-12-28-7 6 3 7 8 5 13 5-4 9-2 11 3 3-5 8-3 10 2l2-4 2 4c2-5 7-7 10-2 2-5 6-7 11-3-2-5-1-10 5-13-11-5-23-2-28 7z'/%3E%3Cuse href='%23b' transform='translate(198 50) scale(.9) rotate(-8)'/%3E%3Cuse href='%23b' transform='translate(232 88) scale(.55) rotate(12)'/%3E%3Cuse href='%23b' transform='translate(56 168) scale(.7) rotate(6)'/%3E%3Cuse href='%23b' transform='translate(140 98) scale(.5)'/%3E%3C/g%3E%3Cg stroke='%23fff' stroke-opacity='.38' fill='none' stroke-width='1.3' transform='translate(231 0) scale(.72) translate(-231 0)'%3E%3Cpath d='M231 0l70 64M231 0l40 78M231 0l84 30M231 0l20 86M231 0l92 6'/%3E%3Cpath d='M247 22c8 4 16 2 24-2 3 8 9 12 18 12 0 8 5 13 13 14M262 38c11 5 21 3 31-3 4 9 11 14 21 13M276 56c11 4 22 2 32-5'/%3E%3C/g%3E%3Cg fill='%23FFE7B0'%3E%3Ccircle cx='30' cy='40' r='1.4'/%3E%3Ccircle cx='214' cy='22' r='1.1'/%3E%3Ccircle cx='62' cy='118' r='1'/%3E%3Ccircle cx='196' cy='146' r='1.3'/%3E%3C/g%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='.5' stop-color='%23FFD98A' stop-opacity='.35'/%3E%3Cstop offset='1' stop-color='%237B2CFF' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='m' cx='.38' cy='.36' r='.72'%3E%3Cstop offset='0' stop-color='%23FFF8E0'/%3E%3Cstop offset='.65' stop-color='%23F7D78A'/%3E%3Cstop offset='1' stop-color='%23D99C4A'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='18' cy='21' r='19' fill='url(%23g)'/%3E%3Ccircle cx='18' cy='21' r='13' fill='url(%23m)'/%3E%3Cg fill='%23C9934B' opacity='.5'%3E%3Ccircle cx='12' cy='16' r='2.6'/%3E%3Ccircle cx='22' cy='26' r='3'/%3E%3Ccircle cx='21' cy='14' r='1.5'/%3E%3Ccircle cx='11' cy='25' r='1.6'/%3E%3C/g%3E%3Cpath d='M33 9c-1.3-2.2-4.2-3-6.9-1.7 1.5.8 1.7 2 1.2 3.2 1.2-1 2.2-.5 2.7.7.7-1.2 2-.8 2.5.5l.5-1 .5 1c.5-1.3 1.8-1.7 2.5-.5.5-1.2 1.5-1.7 2.7-.7-.5-1.2-.3-2.4 1.2-3.2-2.7-1.3-5.6-.5-6.9 1.7z' fill='%2312081c'/%3E%3Cpath d='M9 31c-.8-1.3-2.6-1.8-4.2-1 .9.5 1 1.2.7 1.9.7-.6 1.3-.3 1.6.4.4-.7 1.2-.5 1.5.3l.3-.6.3.6c.3-.8 1.1-1 1.5-.3.3-.7.9-1 1.6-.4-.3-.7-.2-1.4.7-1.9-1.6-.8-3.4-.3-4.2 1z' fill='%2312081c' opacity='.8'/%3E%3C/svg%3E");
  /* purple night over the top of the art, the brand orange kept low down so
     the art still belongs with the orange headline, pills and on-air tile */
  --season-tint:linear-gradient(200deg,#6A2BD0 0%,#4A1A8C 40%,#FF7A1A 78%,#FF6A00 100%);
  --season-tint-mode:color;--season-tint-a:.38;
  --season-line:linear-gradient(90deg,transparent 0%,rgb(155 77 255) 25%,rgb(255 122 26) 60%,rgb(141 255 106 / .8) 85%,transparent 100%);
  --season-bar:linear-gradient(90deg,#FF7A1A 0%,#9B4DFF 110%);
}
html[data-theme="bonfire"]{
  --season-1:#FF6A1A;--season-2:#FFC247;--season-3:#FF2D55;
  --s1:255 106 26;--s2:255 194 71;--s3:255 45 85;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-50%25' width='200%25' height='200%25'%3E%3CfeGaussianBlur stdDeviation='3' result='b'/%3E%3CfeMerge%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3Cg id='f' stroke-linecap='round'%3E%3Cpath d='M0-18v-30M13-13l21-21M18 0h30M13 13l21 21M0 18v30M-13 13l-21 21M-18 0h-30M-13-13l-21-21M7-17l11-27M17-7l27-11M17 7l27 11M7 17l11 27M-7 17l-11 27M-17 7l-27 11M-17-7l-27-11M-7-17l-11-27'/%3E%3C/g%3E%3C/defs%3E%3Cg filter='url(%23g)'%3E%3Cuse href='%23f' transform='translate(110 86) scale(1.25)' stroke='%23FFC247' stroke-width='2.4'/%3E%3Cuse href='%23f' transform='translate(110 86) scale(.62)' stroke='%23FFF2C8' stroke-width='2'/%3E%3Cuse href='%23f' transform='translate(200 168) scale(.72)' stroke='%23FF3D6E' stroke-width='2.2'/%3E%3Cuse href='%23f' transform='translate(36 186) scale(.48)' stroke='%23FF7A1A' stroke-width='2.2'/%3E%3Cuse href='%23f' transform='translate(206 34) scale(.4)' stroke='%23FFC247' stroke-width='2'/%3E%3C/g%3E%3Cg fill='%23FFD27A'%3E%3Ccircle cx='110' cy='10' r='2'/%3E%3Ccircle cx='180' cy='48' r='1.6'/%3E%3Ccircle cx='168' cy='130' r='1.8'/%3E%3Ccircle cx='54' cy='126' r='1.5'/%3E%3Ccircle cx='222' cy='226' r='1.6'/%3E%3Ccircle cx='88' cy='160' r='1.2'/%3E%3C/g%3E%3Cpath d='M200 300c-2-40 1-80 0-116M110 300c3-60-2-130 0-196' stroke='%23FFC247' stroke-opacity='.22' stroke-width='1.5' stroke-dasharray='2 7' fill='none'/%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%23FFC247' stop-opacity='.55'/%3E%3Cstop offset='.5' stop-color='%23FF6A1A' stop-opacity='.18'/%3E%3Cstop offset='1' stop-color='%23FF2D55' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='20' cy='20' r='20' fill='url(%23g)'/%3E%3Cg stroke='%23FFC247' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M20 20v-13M20 20l9-9M20 20h13M20 20l9 9M20 20v13M20 20l-9 9M20 20H7M20 20l-9-9'/%3E%3C/g%3E%3Cg fill='%23FF6A1A'%3E%3Ccircle cx='20' cy='5' r='2'/%3E%3Ccircle cx='31' cy='9' r='2'/%3E%3Ccircle cx='35' cy='20' r='2'/%3E%3Ccircle cx='31' cy='31' r='2'/%3E%3Ccircle cx='20' cy='35' r='2'/%3E%3Ccircle cx='9' cy='31' r='2'/%3E%3Ccircle cx='5' cy='20' r='2'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3C/g%3E%3Cg fill='%23FF2D55'%3E%3Ccircle cx='26' cy='13' r='1.2'/%3E%3Ccircle cx='14' cy='27' r='1.2'/%3E%3Ccircle cx='27' cy='27' r='1.2'/%3E%3Ccircle cx='13' cy='13' r='1.2'/%3E%3C/g%3E%3Ccircle cx='20' cy='20' r='3' fill='%23FFF3C4'/%3E%3C/svg%3E");
  --season-tint:linear-gradient(0deg,#FF3D00 0%,#B3122B 45%,#2A0606 100%);
  --season-tint-mode:soft-light;--season-tint-a:.75;
  --season-line:linear-gradient(90deg,transparent 0%,rgb(255 45 85) 20%,rgb(255 106 26) 50%,rgb(255 194 71) 80%,transparent 100%);
  --season-bar:linear-gradient(90deg,#FFC247 0%,#FF6A1A 55%,#FF2D55 110%);
}
html[data-theme="christmas"]{
  --season-1:#FFFFFF;--season-2:#CFE8FF;--season-3:#F5C451;
  --s1:230 50 75;--s2:120 190 255;--s3:245 196 81;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3Cfilter id='g' x='-100%25' y='-100%25' width='300%25' height='300%25'%3E%3CfeGaussianBlur stdDeviation='3.2' result='b'/%3E%3CfeMerge%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3Cg id='l'%3E%3Crect x='-2.6' y='-1' width='5.2' height='4' rx='1' fill='%232a2d2e'/%3E%3Cellipse cy='9' rx='5' ry='7.5'/%3E%3C/g%3E%3C/defs%3E%3Cpath d='M-10 6Q90 58 190 14Q222 2 240-2' stroke='%231d3a24' stroke-width='2.2' fill='none'/%3E%3Cg filter='url(%23g)'%3E%3Cuse href='%23l' x='14' y='14' fill='%23FF3B4E'/%3E%3Cuse href='%23l' x='46' y='28' fill='%23FFD25E'/%3E%3Cuse href='%23l' x='78' y='36' fill='%233FDC7E'/%3E%3Cuse href='%23l' x='110' y='36' fill='%235EB8FF'/%3E%3Cuse href='%23l' x='142' y='28' fill='%23FF3B4E'/%3E%3Cuse href='%23l' x='172' y='17' fill='%23FFD25E'/%3E%3Cuse href='%23l' x='204' y='8' fill='%233FDC7E'/%3E%3C/g%3E%3Cg stroke='%23E8D9A8' stroke-opacity='.5' stroke-width='1'%3E%3Cpath d='M60 32v64M124 40v104M190 18v52'/%3E%3C/g%3E%3Cdefs%3E%3CradialGradient id='r' cx='.35' cy='.3'%3E%3Cstop offset='0' stop-color='%23ff9aa6'/%3E%3Cstop offset='.5' stop-color='%23d81f3a'/%3E%3Cstop offset='1' stop-color='%235c0716'/%3E%3C/radialGradient%3E%3CradialGradient id='o' cx='.35' cy='.3'%3E%3Cstop offset='0' stop-color='%23fff3c4'/%3E%3Cstop offset='.5' stop-color='%23e3ad3c'/%3E%3Cstop offset='1' stop-color='%236b4508'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect x='56' y='94' width='8' height='6' rx='1.5' fill='%23cfb46b'/%3E%3Ccircle cx='60' cy='116' r='17' fill='url(%23r)'/%3E%3Crect x='120' y='142' width='8' height='6' rx='1.5' fill='%23cfb46b'/%3E%3Ccircle cx='124' cy='167' r='22' fill='url(%23o)'/%3E%3Cpath d='M106 162q18-6 36 0M104 172q20 6 40 0' stroke='%23fff' stroke-opacity='.35' fill='none'/%3E%3Crect x='186' y='68' width='8' height='6' rx='1.5' fill='%23cfb46b'/%3E%3Ccircle cx='190' cy='86' r='13' fill='url(%23r)'/%3E%3Cg fill='%23fff' opacity='.85'%3E%3Cpath d='M30 70l1.5 4 4 1.5-4 1.5-1.5 4-1.5-4-4-1.5 4-1.5z'/%3E%3Cpath d='M214 128l1.2 3.4 3.4 1.2-3.4 1.2-1.2 3.4-1.2-3.4-3.4-1.2 3.4-1.2z'/%3E%3Cpath d='M94 214l1 3 3 1-3 1-1 3-1-3-3-1 3-1z'/%3E%3C/g%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='b' cx='.35' cy='.3' r='.75'%3E%3Cstop offset='0' stop-color='%23FF8A95'/%3E%3Cstop offset='.5' stop-color='%23E6324B'/%3E%3Cstop offset='1' stop-color='%238E0F24'/%3E%3C/radialGradient%3E%3CradialGradient id='g' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='.55' stop-color='%23CFE8FF' stop-opacity='.35'/%3E%3Cstop offset='1' stop-color='%23CFE8FF' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='20' cy='22' r='18' fill='url(%23g)'/%3E%3Cpath d='M20 2v4' stroke='%23F5C451' stroke-width='1.4' stroke-linecap='round'/%3E%3Crect x='16.5' y='6' width='7' height='4.5' rx='1' fill='%23F5C451'/%3E%3Ccircle cx='20' cy='23' r='13' fill='url(%23b)'/%3E%3Cpath d='M8.5 20c3-2.2 6.5-3.3 11.5-3.3s8.5 1.1 11.5 3.3' fill='none' stroke='%23F5C451' stroke-width='1.3' opacity='.9'/%3E%3Cpath d='M8.5 26c3 2.2 6.5 3.3 11.5 3.3s8.5-1.1 11.5-3.3' fill='none' stroke='%23F5C451' stroke-width='1.3' opacity='.9'/%3E%3Cellipse cx='14.5' cy='16.5' rx='2.6' ry='1.6' fill='%23fff' opacity='.55' transform='rotate(-35 14.5 16.5)'/%3E%3C/svg%3E");
  --season-tint:linear-gradient(180deg,#9FD0FF 0%,#3A6EA8 60%,#C21E3A 100%);
  --season-tint-mode:color;--season-tint-a:.42;
  --season-line:repeating-linear-gradient(90deg,#FF3B4E 0 5px,transparent 5px 22px,#FFD25E 22px 27px,transparent 27px 44px,#3FDC7E 44px 49px,transparent 49px 66px);
  --season-bar:linear-gradient(90deg,#E6324B 0%,#FF5A5F 55%,#F5C451 110%);
}
html[data-theme="newyear"]{
  --season-1:#F6D58E;--season-2:#FFE9B8;--season-3:#C9A0FF;
  --s1:246 213 142;--s2:120 110 255;--s3:201 160 255;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23FFF1C6'/%3E%3Cstop offset='.5' stop-color='%23E7B95A'/%3E%3Cstop offset='1' stop-color='%239C6B1E'/%3E%3C/linearGradient%3E%3CradialGradient id='h'%3E%3Cstop offset='.55' stop-color='%23F6D58E' stop-opacity='.22'/%3E%3Cstop offset='1' stop-color='%23F6D58E' stop-opacity='0'/%3E%3C/radialGradient%3E%3Cfilter id='f'%3E%3CfeGaussianBlur stdDeviation='1.6' result='b'/%3E%3CfeMerge%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3C/defs%3E%3Ccircle cx='120' cy='112' r='108' fill='url(%23h)'/%3E%3Ccircle cx='120' cy='112' r='66' fill='%230d0f18' fill-opacity='.72' stroke='url(%23g)' stroke-width='4'/%3E%3Ccircle cx='120' cy='112' r='57' fill='none' stroke='%23E7B95A' stroke-opacity='.35'/%3E%3Cg stroke='%23F6D58E' stroke-width='2' stroke-linecap='round' transform='translate(120 112)'%3E%3Cpath d='M0-52v10' stroke-width='3.5'/%3E%3Cpath d='M26-45l-3 5M45-26l-5 3M52 0h-6M45 26l-5-3M26 45l-3-5M0 52v-6M-26 45l3-5M-45 26l5-3M-52 0h6M-45-26l5 3M-26-45l3 5'/%3E%3C/g%3E%3Cg filter='url(%23f)' stroke-linecap='round'%3E%3Cpath d='M120 112V64' stroke='%23FFF1C6' stroke-width='5'/%3E%3Cpath d='M120 112V58' stroke='%23FFE08A' stroke-width='2.4' transform='rotate(-6 120 112)'/%3E%3C/g%3E%3Ccircle cx='120' cy='112' r='5' fill='url(%23g)'/%3E%3Cg fill='%23FFE9B8' filter='url(%23f)'%3E%3Cpath d='M208 40l2 6 6 2-6 2-2 6-2-6-6-2 6-2z'/%3E%3Cpath d='M30 46l1.6 4.4 4.4 1.6-4.4 1.6-1.6 4.4-1.6-4.4-4.4-1.6 4.4-1.6z'/%3E%3Cpath d='M214 178l1.4 4 4 1.4-4 1.4-1.4 4-1.4-4-4-1.4 4-1.4z'/%3E%3Cpath d='M262 92l1 3 3 1-3 1-1 3-1-3-3-1 3-1z'/%3E%3C/g%3E%3Cg fill='%23F6D58E' fill-opacity='.7'%3E%3Ccircle cx='40' cy='190' r='2'/%3E%3Ccircle cx='58' cy='168' r='1.4'/%3E%3Ccircle cx='196' cy='220' r='1.8'/%3E%3Ccircle cx='176' cy='20' r='1.4'/%3E%3Ccircle cx='246' cy='140' r='1.2'/%3E%3C/g%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='.6' stop-color='%23F6D58E' stop-opacity='.3'/%3E%3Cstop offset='1' stop-color='%23F6D58E' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='20' cy='20' r='20' fill='url(%23g)'/%3E%3Ccircle cx='20' cy='20' r='15' fill='%230F1430' stroke='%23E7B95A' stroke-width='1.8'/%3E%3Cg stroke='%23FFF1C6' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M20 7.5v2.5M32.5 20H30M20 32.5V30M7.5 20H10'/%3E%3C/g%3E%3Cg stroke='%23E7B95A' stroke-width='1' stroke-linecap='round' opacity='.8'%3E%3Cpath d='M26.3 9.2l-1 1.7M30.8 13.7l-1.7 1M30.8 26.3l-1.7-1M26.3 30.8l-1-1.7M13.7 30.8l1-1.7M9.2 26.3l1.7-1M9.2 13.7l1.7 1M13.7 9.2l1 1.7'/%3E%3C/g%3E%3Cpath d='M20 20V11' stroke='%23FFF1C6' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M20 20l-1.4-8.5' stroke='%23FFF1C6' stroke-width='1.4' stroke-linecap='round'/%3E%3Ccircle cx='20' cy='20' r='1.6' fill='%23F6D58E'/%3E%3C/svg%3E");
  --season-tint:linear-gradient(200deg,#F6D58E 0%,#B48A3C 45%,#1B2A5A 100%);
  --season-tint-mode:color;--season-tint-a:.6;
  --season-line:linear-gradient(90deg,transparent 0%,#9C6B1E 15%,#FFF1C6 50%,#9C6B1E 85%,transparent 100%);
  --season-bar:linear-gradient(90deg,#FFF1C6 0%,#E7B95A 50%,#9C6B1E 110%);
}
html[data-theme="valentines"]{
  --season-1:#FF3D7F;--season-2:#FF8FB5;--season-3:#E0115F;
  --s1:255 61 127;--s2:255 143 181;--s3:224 17 95;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3Cfilter id='g' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeGaussianBlur stdDeviation='4' result='b'/%3E%3CfeMerge%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3ClinearGradient id='p' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23FFB3CD'/%3E%3Cstop offset='1' stop-color='%23FF2D7A'/%3E%3C/linearGradient%3E%3Cpath id='h' d='M0 30C-30 10-34-10-24-20-14-30 0-24 0-12 0-24 14-30 24-20 34-10 30 10 0 30z'/%3E%3C/defs%3E%3Cuse href='%23h' transform='translate(122 112) scale(2.3)' fill='none' stroke='url(%23p)' stroke-width='1.6' filter='url(%23g)'/%3E%3Cuse href='%23h' transform='translate(122 112) scale(1.75)' fill='%23FF2D7A' fill-opacity='.14'/%3E%3Cg fill='url(%23p)'%3E%3Cuse href='%23h' transform='translate(222 52) scale(.5) rotate(12)'/%3E%3Cuse href='%23h' transform='translate(30 182) scale(.42) rotate(-14)'/%3E%3Cuse href='%23h' transform='translate(206 196) scale(.3) rotate(8)'/%3E%3Cuse href='%23h' transform='translate(262 128) scale(.36) rotate(-10)'/%3E%3Cuse href='%23h' transform='translate(46 54) scale(.28)'/%3E%3C/g%3E%3Cg fill='%23FFD1E1'%3E%3Ccircle cx='186' cy='20' r='1.6'/%3E%3Ccircle cx='20' cy='110' r='1.3'/%3E%3Ccircle cx='240' cy='246' r='1.4'/%3E%3Ccircle cx='96' cy='232' r='1.2'/%3E%3C/g%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='.4' stop-color='%23FF3D7F' stop-opacity='.45'/%3E%3Cstop offset='1' stop-color='%23FF3D7F' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='h' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23FF8FB5'/%3E%3Cstop offset='1' stop-color='%23E0115F'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='20' cy='21' r='19' fill='url(%23g)'/%3E%3Cpath d='M20 34.5c-7.5-5.7-13-10.5-13-17 0-4 3-7 6.8-7 2.6 0 4.8 1.5 6.2 3.8 1.4-2.3 3.6-3.8 6.2-3.8 3.8 0 6.8 3 6.8 7 0 6.5-5.5 11.3-13 17z' fill='url(%23h)'/%3E%3Cellipse cx='14' cy='15.5' rx='2.4' ry='1.5' fill='%23fff' opacity='.55' transform='rotate(-30 14 15.5)'/%3E%3C/svg%3E");
  --season-tint:linear-gradient(200deg,#FF8FB5 0%,#E0115F 60%,#5A0626 100%);
  --season-tint-mode:color;--season-tint-a:.45;
  --season-line:linear-gradient(90deg,transparent 0%,#E0115F 20%,#FF8FB5 50%,#E0115F 80%,transparent 100%);
  --season-bar:linear-gradient(90deg,#FF8FB5 0%,#FF3D7F 50%,#E0115F 110%);
}
html[data-theme="easter"]{
  --season-1:#FFB7D0;--season-2:#FFF1F6;--season-3:#D9C2FF;
  --s1:255 183 208;--s2:200 170 255;--s3:255 216 107;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3Cg id='f'%3E%3Cg fill='%23FFC7DC'%3E%3Cellipse cy='-9' rx='6.5' ry='9'/%3E%3Cellipse cy='-9' rx='6.5' ry='9' transform='rotate(72)'/%3E%3Cellipse cy='-9' rx='6.5' ry='9' transform='rotate(144)'/%3E%3Cellipse cy='-9' rx='6.5' ry='9' transform='rotate(216)'/%3E%3Cellipse cy='-9' rx='6.5' ry='9' transform='rotate(288)'/%3E%3C/g%3E%3Ccircle r='4.2' fill='%23FF8DB4'/%3E%3Cg fill='%23FFD86B'%3E%3Ccircle cx='0' cy='-2.5' r='1'/%3E%3Ccircle cx='2.3' cy='1' r='1'/%3E%3Ccircle cx='-2.3' cy='1' r='1'/%3E%3C/g%3E%3C/g%3E%3Cg id='b'%3E%3Cellipse rx='4.5' ry='6' fill='%23FFE6EF'/%3E%3C/g%3E%3C/defs%3E%3Cpath d='M-8 18C40 30 90 22 140 44S220 70 262 64M70 26c10 16 26 22 40 22M150 50c-6 18-2 32 10 44M206 62c10-12 22-16 36-14' stroke='%234a2f2a' stroke-width='3.2' stroke-linecap='round' fill='none'/%3E%3Cg%3E%3Cuse href='%23f' transform='translate(30 18)'/%3E%3Cuse href='%23f' transform='translate(96 30) scale(1.2) rotate(20)'/%3E%3Cuse href='%23f' transform='translate(112 50) scale(.9)'/%3E%3Cuse href='%23f' transform='translate(146 46) scale(1.1) rotate(-15)'/%3E%3Cuse href='%23f' transform='translate(160 94) scale(.95) rotate(30)'/%3E%3Cuse href='%23f' transform='translate(204 64) scale(1.15)'/%3E%3Cuse href='%23f' transform='translate(242 48) scale(.85) rotate(40)'/%3E%3Cuse href='%23f' transform='translate(262 64) scale(.7)'/%3E%3Cuse href='%23b' transform='translate(64 22) rotate(30)'/%3E%3Cuse href='%23b' transform='translate(186 64) rotate(-20)'/%3E%3Cuse href='%23b' transform='translate(128 40) rotate(60)'/%3E%3C/g%3E%3Cg fill='%23FFC7DC' fill-opacity='.85'%3E%3Cellipse cx='60' cy='130' rx='4' ry='2.4' transform='rotate(30 60 130)'/%3E%3Cellipse cx='200' cy='170' rx='4' ry='2.4' transform='rotate(-20 200 170)'/%3E%3Cellipse cx='120' cy='208' rx='3.4' ry='2' transform='rotate(50 120 208)'/%3E%3Cellipse cx='236' cy='118' rx='3.4' ry='2'/%3E%3C/g%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='.5' stop-color='%23FFB7D0' stop-opacity='.35'/%3E%3Cstop offset='1' stop-color='%23FFB7D0' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='p' cx='.5' cy='.8' r='.8'%3E%3Cstop offset='0' stop-color='%23FFF1F6'/%3E%3Cstop offset='1' stop-color='%23FFB7D0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='20' cy='20' r='20' fill='url(%23g)'/%3E%3Cg fill='url(%23p)'%3E%3Cellipse cx='20' cy='10.5' rx='5' ry='7.5'/%3E%3Cellipse cx='20' cy='10.5' rx='5' ry='7.5' transform='rotate(72 20 20)'/%3E%3Cellipse cx='20' cy='10.5' rx='5' ry='7.5' transform='rotate(144 20 20)'/%3E%3Cellipse cx='20' cy='10.5' rx='5' ry='7.5' transform='rotate(216 20 20)'/%3E%3Cellipse cx='20' cy='10.5' rx='5' ry='7.5' transform='rotate(288 20 20)'/%3E%3C/g%3E%3Ccircle cx='20' cy='20' r='4.2' fill='%23FFE38A'/%3E%3Ccircle cx='20' cy='20' r='2' fill='%23FFD25E'/%3E%3Ccircle cx='33' cy='31' r='1.6' fill='%23A8E6CF'/%3E%3Ccircle cx='7' cy='30' r='1.2' fill='%23D9C2FF'/%3E%3C/svg%3E");
  --season-tint:linear-gradient(200deg,#FFE38A 0%,#FFB7D0 45%,#B9A2FF 100%);
  --season-tint-mode:soft-light;--season-tint-a:.8;
  --season-line:linear-gradient(90deg,transparent 0%,#FFB7D0 20%,#FFE38A 50%,#A8E6CF 75%,transparent 100%);
  --season-bar:linear-gradient(90deg,#FFB7D0 0%,#D9C2FF 55%,#A8E6CF 110%);
}
html[data-theme="pride"]{
  --season-1:#FF3B3B;--season-2:#FFD23F;--season-3:#3FA9FF;
  --s1:255 140 0;--s2:138 43 194;--s3:36 87 255;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3Cfilter id='g' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5' result='b'/%3E%3CfeMerge%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3ClinearGradient id='m' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='.55' stop-color='%23fff'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3Cmask id='k'%3E%3Crect width='694' height='298' fill='url(%23m)'/%3E%3C/mask%3E%3C/defs%3E%3Cg fill='none' stroke-width='9' filter='url(%23g)' mask='url(%23k)' opacity='.92'%3E%3Cpath d='M18 236a120 120 0 0 1 240 0' stroke='%23E40303'/%3E%3Cpath d='M27 236a111 111 0 0 1 222 0' stroke='%23FF8C00'/%3E%3Cpath d='M36 236a102 102 0 0 1 204 0' stroke='%23FFED00'/%3E%3Cpath d='M45 236a93 93 0 0 1 186 0' stroke='%23008026'/%3E%3Cpath d='M54 236a84 84 0 0 1 168 0' stroke='%232457FF'/%3E%3Cpath d='M63 236a75 75 0 0 1 150 0' stroke='%238A2BC2'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Cpath d='M236 70l1.6 4.4 4.4 1.6-4.4 1.6-1.6 4.4-1.6-4.4-4.4-1.6 4.4-1.6z'/%3E%3Cpath d='M40 92l1.2 3.4 3.4 1.2-3.4 1.2-1.2 3.4-1.2-3.4-3.4-1.2 3.4-1.2z'/%3E%3Cpath d='M150 50l1 3 3 1-3 1-1 3-1-3-3-1 3-1z'/%3E%3C/g%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke-width='3.2'%3E%3Cpath d='M3.5 32A16.5 16.5 0 0 1 36.5 32' stroke='%23E40303'/%3E%3Cpath d='M6.7 32A13.3 13.3 0 0 1 33.3 32' stroke='%23FF8C00'/%3E%3Cpath d='M9.9 32A10.1 10.1 0 0 1 30.1 32' stroke='%23FFED00'/%3E%3Cpath d='M13.1 32A6.9 6.9 0 0 1 26.9 32' stroke='%23008026'/%3E%3Cpath d='M16.3 32A3.7 3.7 0 0 1 23.7 32' stroke='%232457FF'/%3E%3C/g%3E%3Ccircle cx='20' cy='32' r='1.6' fill='%238A2BC2'/%3E%3C/svg%3E");
  --season-tint:linear-gradient(120deg,#E40303 0%,#FF8C00 20%,#FFED00 38%,#008026 56%,#2457FF 76%,#8A2BC2 100%);
  --season-tint-mode:soft-light;--season-tint-a:.5;
  --season-line:linear-gradient(90deg,#E40303,#FF8C00,#FFED00,#008026,#2457FF,#8A2BC2,#E40303);
  --season-bar:linear-gradient(90deg,#E40303,#FF8C00,#FFED00,#008026,#2457FF,#8A2BC2);
}
html[data-theme="summer"]{
  --season-1:#FFB000;--season-2:#FF7A3D;--season-3:#FFE08A;
  --s1:255 176 0;--s2:255 122 61;--s3:0 194 209;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3CradialGradient id='s' cx='.42' cy='.4'%3E%3Cstop offset='0' stop-color='%23FFF6C9'/%3E%3Cstop offset='.6' stop-color='%23FFC233'/%3E%3Cstop offset='1' stop-color='%23FF8A1F'/%3E%3C/radialGradient%3E%3CradialGradient id='h'%3E%3Cstop offset='.3' stop-color='%23FFB000' stop-opacity='.4'/%3E%3Cstop offset='1' stop-color='%23FF7A3D' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='r' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23FFD25E' stop-opacity='.9'/%3E%3Cstop offset='1' stop-color='%23FFD25E' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='124' cy='100' r='130' fill='url(%23h)'/%3E%3Cg fill='url(%23r)' transform='translate(124 100)'%3E%3Cpath id='y' d='M-4-56L0-100 4-56z'/%3E%3Cuse href='%23y' transform='rotate(30)'/%3E%3Cuse href='%23y' transform='rotate(60)'/%3E%3Cuse href='%23y' transform='rotate(90)'/%3E%3Cuse href='%23y' transform='rotate(120)'/%3E%3Cuse href='%23y' transform='rotate(150)'/%3E%3Cuse href='%23y' transform='rotate(180)'/%3E%3Cuse href='%23y' transform='rotate(210)'/%3E%3Cuse href='%23y' transform='rotate(240)'/%3E%3Cuse href='%23y' transform='rotate(270)'/%3E%3Cuse href='%23y' transform='rotate(300)'/%3E%3Cuse href='%23y' transform='rotate(330)'/%3E%3C/g%3E%3Ccircle cx='124' cy='100' r='46' fill='url(%23s)'/%3E%3Cg stroke='%23FFE08A' stroke-opacity='.35' stroke-width='1.4' fill='none' stroke-linecap='round'%3E%3Cpath d='M20 210q12-6 24 0t24 0 24 0'/%3E%3Cpath d='M150 228q12-6 24 0t24 0 24 0'/%3E%3Cpath d='M60 244q10-5 20 0t20 0'/%3E%3C/g%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='.35' stop-color='%23FFE08A' stop-opacity='.55'/%3E%3Cstop offset='1' stop-color='%23FF7A3D' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='s' cx='.4' cy='.4' r='.7'%3E%3Cstop offset='0' stop-color='%23FFF4C2'/%3E%3Cstop offset='.6' stop-color='%23FFB000'/%3E%3Cstop offset='1' stop-color='%23FF7A3D'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='20' cy='20' r='20' fill='url(%23g)'/%3E%3Cg stroke='%23FFB000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M20 3v4M32 8l-2.8 2.8M37 20h-4M32 32l-2.8-2.8M20 37v-4M8 32l2.8-2.8M3 20h4M8 8l2.8 2.8'/%3E%3C/g%3E%3Ccircle cx='20' cy='20' r='8.5' fill='url(%23s)'/%3E%3C/svg%3E");
  --season-tint:linear-gradient(210deg,#FFE08A 0%,#FFB000 40%,#FF5A1F 100%);
  --season-tint-mode:soft-light;--season-tint-a:.7;
  --season-line:linear-gradient(90deg,transparent 0%,#FF7A3D 20%,#FFB000 50%,#00C2D1 85%,transparent 100%);
  --season-bar:linear-gradient(90deg,#FFE08A 0%,#FFB000 45%,#FF7A3D 110%);
}
html[data-theme="carnival"]{
  --season-1:#FFD400;--season-2:#00B86B;--season-3:#E4002B;
  --s1:255 212 0;--s2:0 181 226;--s3:228 0 43;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3Cfilter id='g' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='2.5' result='b'/%3E%3CfeMerge%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3Cpath id='f' d='M0 0C-13-30-12-90 0-130 12-90 13-30 0 0z'/%3E%3Cpath id='e' d='M0-104c-5 0-8-6-8-12s4-10 8-10 8 4 8 10-3 12-8 12z'/%3E%3C/defs%3E%3Cg transform='translate(126 232)' filter='url(%23g)'%3E%3Cg transform='rotate(-62)'%3E%3Cuse href='%23f' fill='%238A2BE2'/%3E%3Cuse href='%23e' fill='%23FFD400'/%3E%3C/g%3E%3Cg transform='rotate(-41)'%3E%3Cuse href='%23f' fill='%2300B5E2'/%3E%3Cuse href='%23e' fill='%23E4002B'/%3E%3C/g%3E%3Cg transform='rotate(-20)'%3E%3Cuse href='%23f' fill='%2300B86B'/%3E%3Cuse href='%23e' fill='%23FFD400'/%3E%3C/g%3E%3Cg%3E%3Cuse href='%23f' fill='%23FFD400' transform='scale(1.12)'/%3E%3Cuse href='%23e' fill='%23E4002B' transform='scale(1.12)'/%3E%3C/g%3E%3Cg transform='rotate(20)'%3E%3Cuse href='%23f' fill='%23E4002B'/%3E%3Cuse href='%23e' fill='%2300B5E2'/%3E%3C/g%3E%3Cg transform='rotate(41)'%3E%3Cuse href='%23f' fill='%2300B86B'/%3E%3Cuse href='%23e' fill='%23FFD400'/%3E%3C/g%3E%3Cg transform='rotate(62)'%3E%3Cuse href='%23f' fill='%238A2BE2'/%3E%3Cuse href='%23e' fill='%2300B86B'/%3E%3C/g%3E%3Cg stroke='%23fff' stroke-opacity='.5' stroke-width='1' fill='none'%3E%3Cpath d='M0 0L-115-61M0 0L-85-98M0 0L-44-122M0 0V-140M0 0L44-122M0 0L85-98M0 0L115-61'/%3E%3C/g%3E%3Cellipse rx='22' ry='12' fill='%23FFD400'/%3E%3Ccircle r='7' fill='%23E4002B'/%3E%3Ccircle cx='-14' r='3.5' fill='%2300B5E2'/%3E%3Ccircle cx='14' r='3.5' fill='%2300B86B'/%3E%3C/g%3E%3Cg%3E%3Crect x='244' y='40' width='5' height='10' fill='%23FFD400' transform='rotate(30 246 45)'/%3E%3Crect x='20' y='70' width='5' height='10' fill='%2300B5E2' transform='rotate(-25 22 75)'/%3E%3Crect x='250' y='190' width='5' height='10' fill='%23E4002B' transform='rotate(60 252 195)'/%3E%3Crect x='34' y='20' width='4' height='8' fill='%2300B86B'/%3E%3Crect x='200' y='12' width='4' height='8' fill='%238A2BE2' transform='rotate(20 202 16)'/%3E%3C/g%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.6' r='.5'%3E%3Cstop offset='.4' stop-color='%23FFD400' stop-opacity='.3'/%3E%3Cstop offset='1' stop-color='%23FFD400' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='20' cy='22' r='20' fill='url(%23g)'/%3E%3Cg stroke-width='1' stroke-opacity='.5'%3E%3Cpath d='M20 36C9 32 5 22 6 8c6 4 10 12 14 28z' fill='%23E4002B' stroke='%23fff'/%3E%3Cpath d='M20 36c11-4 15-14 14-28-6 4-10 12-14 28z' fill='%2300B5E2' stroke='%23fff'/%3E%3Cpath d='M20 36C13 30 10 20 12 4c5 6 7 16 8 32z' fill='%2300B86B' stroke='%23fff'/%3E%3Cpath d='M20 36c7-6 10-16 8-32-5 6-7 16-8 32z' fill='%238A2BE2' stroke='%23fff'/%3E%3Cpath d='M20 36c-3-8-4-20 0-34 4 14 3 26 0 34z' fill='%23FFD400' stroke='%23fff'/%3E%3C/g%3E%3Ccircle cx='20' cy='35' r='3' fill='%23FFF3C4'/%3E%3C/svg%3E");
  --season-tint:linear-gradient(160deg,#00B86B 0%,#FFD400 40%,#FF8A00 65%,#E4002B 100%);
  --season-tint-mode:soft-light;--season-tint-a:.6;
  --season-line:linear-gradient(90deg,#FFD400 0 20%,#00B86B 20% 40%,#00B5E2 40% 60%,#8A2BE2 60% 80%,#E4002B 80% 100%);
  --season-bar:linear-gradient(90deg,#FFD400 0%,#00B86B 35%,#00B5E2 70%,#E4002B 110%);
}
html[data-theme="lightnight"]{
  --season-1:#00E5FF;--season-2:#FF2BD6;--season-3:#8C5CFF;
  --s1:0 229 255;--s2:255 43 214;--s3:140 92 255;
  --season-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 694 298'%3E%3Cdefs%3E%3Cfilter id='g' x='-10%25' y='-30%25' width='120%25' height='160%25'%3E%3CfeGaussianBlur stdDeviation='3.5' result='b'/%3E%3CfeMerge%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='b'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3ClinearGradient id='n' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%2300E5FF'/%3E%3Cstop offset='.55' stop-color='%238C5CFF'/%3E%3Cstop offset='1' stop-color='%23FF2BD6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg filter='url(%23g)' fill='none' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M22 214H38V174H54V190H64V122L66 110 78 122V214H92V150H112V96L118 82 120 52 122 82 128 96V214H142V138L158 126V214H172V64L200 46V214H214V160H232V178H254V214H268' stroke='url(%23n)' stroke-width='2.2'/%3E%3Cpath d='M100 96h28M108 118h12M108 134h12M180 90h12M180 110h12M180 130h12' stroke='%2300E5FF' stroke-width='1.6'/%3E%3Cpath d='M40 236H700' stroke='url(%23n)' stroke-width='1.4' stroke-opacity='.7'/%3E%3Cpath d='M20 12L262 70' stroke='%23FF2BD6' stroke-width='1.6' stroke-opacity='.75'/%3E%3Cpath d='M30 44L262 14' stroke='%2300E5FF' stroke-width='1.2' stroke-opacity='.6'/%3E%3C/g%3E%3Ccircle cx='120' cy='52' r='3' fill='%23fff'/%3E%3Ccircle cx='200' cy='46' r='2.5' fill='%23FF2BD6'/%3E%3C/svg%3E");--season-motif-sm:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='.3' stop-color='%2300E5FF' stop-opacity='.4'/%3E%3Cstop offset='.7' stop-color='%23FF2BD6' stop-opacity='.15'/%3E%3Cstop offset='1' stop-color='%238C5CFF' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='20' cy='20' r='20' fill='url(%23g)'/%3E%3Cpath d='M23 3L9 22h9l-2 15 15-20h-9z' fill='none' stroke='%23FF2BD6' stroke-width='4' stroke-linejoin='round' opacity='.55'/%3E%3Cpath d='M23 3L9 22h9l-2 15 15-20h-9z' fill='%230A0C1A' stroke='%2300E5FF' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M21.5 8l-8 11.5h6' fill='none' stroke='%23fff' stroke-width='1' stroke-linecap='round' opacity='.7'/%3E%3C/svg%3E");
  --season-tint:linear-gradient(200deg,#00E5FF 0%,#4B2BFF 50%,#FF2BD6 100%);
  --season-tint-mode:color;--season-tint-a:.4;
  --season-line:linear-gradient(90deg,#00E5FF,#8C5CFF,#FF2BD6,#00E5FF);
  --season-bar:linear-gradient(90deg,#00E5FF 0%,#8C5CFF 50%,#FF2BD6 110%);
}

/* ---------- 2. tokens every theme shares ---------- */

/* --ink-4 (#7C807E) sits at about 4.6:1 on the page; the atmosphere glows lift
   the background a touch, so lift the ink too. High contrast always wins. */
html[data-theme]{--ink-4:#8E9290}
html.hc[data-theme]{--ink-4:#B4B4B3}

/* ---------- 3. atmosphere ---------- */

/* Layered glows on the page canvas (1024px design units, zoomed with the page).
   Section boxes have no background of their own, so the glow shows through. */
html[data-theme] .page{
  background:
    radial-gradient(560px 300px at 50% 0,rgb(var(--s2) / .13),transparent 70%),
    radial-gradient(420px 360px at 0 360px,rgb(var(--s1) / .10),transparent 70%),
    radial-gradient(520px 420px at 100% 640px,rgb(var(--s3) / .07),transparent 70%),
    radial-gradient(800px 360px at 50% 100%,rgb(var(--s2) / .12),transparent 70%),
    var(--bg);
}
/* A soft, faintly tinted vignette fixed to the viewport, under the decor layer
   (z 4) and under the header, hero controls and on-air bar (z 5). */
html[data-theme] body::after{
  content:"";position:fixed;inset:0;z-index:3;pointer-events:none;
  background:radial-gradient(ellipse 120% 90% at 50% 42%,transparent 58%,rgb(var(--s2) / .07) 80%,rgb(0 0 0 / .32) 100%);
}

/* ---------- 4. header and footer accents ---------- */

html[data-theme] .hdr::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;
  background:var(--season-line);opacity:.85;
}
html[data-theme] .hdr .logo,
html[data-theme] .ftr .lockup .logo{filter:drop-shadow(0 0 9px rgb(var(--s1) / .5)) drop-shadow(0 0 22px rgb(var(--s2) / .3))}
html[data-theme] .ftr::before{
  content:"";position:absolute;left:38px;right:38px;top:0;height:2px;pointer-events:none;
  background:var(--season-line);opacity:.7;
}
html[data-theme] .ftr .sky{filter:drop-shadow(0 0 5px rgb(var(--s1) / .55)) drop-shadow(0 0 16px rgb(var(--s2) / .4))}

/* ---------- 5. controls: lifted above the decor layer, with a glow ---------- */

/* Both are already positioned (ldc.css: .hero .cta absolute / relative on
   mobile; .onair relative), so z-index changes paint order only. The decor
   layer is z 4: particles never paint over Listen Live, the DJ form or Pause. */
html[data-theme] .hero .cta{z-index:5}
html[data-theme] .onair{z-index:5}
html[data-theme] .pill.listen,
html[data-theme] .hero .cta .apply{box-shadow:0 0 0 1px rgb(255 255 255 / .07),0 8px 24px -8px rgb(var(--s1) / .9),0 0 26px -6px rgb(var(--s2) / .65)}
html[data-theme] .onair .pause{box-shadow:0 0 18px -3px rgb(var(--s2) / .7),inset 0 0 10px -4px rgb(var(--s1) / .6)}
html[data-theme] .onair .tile{box-shadow:0 0 28px -8px rgb(var(--s2) / .7)}

/* ---------- 6. hero ---------- */

/* Paint order inside the hero, lowest first: .art (the LCP <img>, untouched),
   ::before (colour grade over the art), ::after (seasonal motif, or a
   director's own artwork), then the headline and strap (z 2), then the
   controls (z 5, above the decor layer). */
html[data-theme] .hero .head,
html[data-theme] .hero .sub{z-index:2}

@media (min-width:701px){
  /* the colour grade covers the art box exactly (ldc.css .hero .art) */
  html[data-theme] .hero::before{
    content:"";position:absolute;left:561px;top:-20px;width:463px;height:318px;z-index:1;pointer-events:none;
    background:var(--season-tint);mix-blend-mode:var(--season-tint-mode,soft-light);opacity:var(--season-tint-a,.5);
  }
  /* the motif box: the empty dark band between the headline and the art
     (x 330-561) plus the art box. A director's artwork (--season-art, from
     themeCss) is a second layer on top, sized exactly to the art box. */
  html[data-theme] .hero::after{
    content:"";position:absolute;left:330px;top:0;width:694px;height:298px;z-index:1;pointer-events:none;
    background:
      var(--season-art,none) 231px -20px/463px 318px no-repeat,
      var(--season-motif,none) 0 0/694px 298px no-repeat;
  }
}
@media (max-width:700px){
  /* ldc.css already gives ::before content + inset:0 here (a scrim that sits
     under the art). Under a theme it becomes the colour grade over the art. */
  html[data-theme] .hero::before{
    z-index:1;pointer-events:none;
    background:var(--season-tint);mix-blend-mode:var(--season-tint-mode,soft-light);opacity:var(--season-tint-a,.5);
  }
  /* scrim (keeps the headline and strap readable), then a director's
     mobile artwork if there is one. No hero motif on phones: the art fills
     the whole hero with no empty band, so any motif lands on the subject's
     face or hands. The season's emblem goes in the header instead (below). */
  html[data-theme] .hero::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:
      linear-gradient(180deg,rgb(10 12 13 / 0) 30%,rgb(10 12 13 / .38) 58%,rgb(10 12 13 / .78) 100%),
      var(--season-art-mobile,var(--season-art,none)) center/cover no-repeat;
  }
  /* The phone emblem: the 390px header has about 190px of empty space
     between the logo and the burger, so a small per-theme mark (the moon, a
     bauble, a firework, the clock...) sits there and the phone reads the
     season at a glance. An absolute pseudo-element in the header (.hdr is
     positioned, z 5, above the decor layer): out of flow, nothing moves. */
  html[data-theme] .hdr::before{
    content:"";position:absolute;right:58px;top:11px;width:42px;height:42px;pointer-events:none;
    background:var(--season-motif-sm,none) center/contain no-repeat;
    filter:drop-shadow(0 0 7px rgb(var(--s1) / .55));
  }
}

/* ---------- 7. inner page headers (.phead) ---------- */

html[data-theme] .phead{
  background-image:
    radial-gradient(420px 170px at 85% 0,rgb(var(--s2) / .14),transparent 70%),
    radial-gradient(300px 140px at 0 100%,rgb(var(--s1) / .08),transparent 70%);
}
/* No motif on inner pages: the right of .phead belongs to the page art or the
   MPU, and anywhere else it would sit behind the intro text. A themed rule over
   the bottom hairline instead (.phead is overflow:hidden, so it sits inside). */
html[data-theme] .phead::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;pointer-events:none;
  background:var(--season-line);opacity:.75;
}
@media (max-width:700px){
  html[data-theme] .ftr::before{left:20px;right:20px}
}

/* ---------- 8. accent retint (decorative bars only) ----------
   Recolours the quick-link underlines and the hero/page wedges. Text colours
   and the pill fills stay brand (whether themes may recolour the Listen Live
   pill is Dan's question 1; LDC One's --grad override covers that when he
   says yes). Delete this block if Dan wants accents left alone. */
html[data-theme] .quick i,
html[data-theme] .hero .wedge,
html[data-theme] .phead .wedge{background:var(--season-bar)}
html[data-theme] .hdr nav a.is-active::after{background:var(--season-bar)}

/* ---------- 9. seasonal badge ----------
   Optional chip for "Happy Halloween"-style labels. Not keyed on data-theme:
   it only exists where a component renders it. */
.season-badge{
  display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 10px 0 8px;border-radius:999px;
  font-family:var(--font);font-weight:700;font-stretch:85%;font-size:8.37px;line-height:1;letter-spacing:.06em;
  text-transform:uppercase;white-space:nowrap;color:#fff;
  background:rgb(10 12 13 / .78);border:1px solid rgb(var(--s1,255 138 0) / .75);
  box-shadow:0 0 14px -3px rgb(var(--s1,255 138 0) / .8);
}
.season-badge::before{
  content:"";flex:none;width:6px;height:6px;border-radius:50%;
  background:rgb(var(--s1,255 138 0));box-shadow:0 0 8px rgb(var(--s1,255 138 0));
}

/* ---------- 10. motion (header line shimmer) ---------- */

@keyframes season-line{to{background-position:200% 0}}
html[data-theme="pride"] .hdr::after,
html[data-theme="lightnight"] .hdr::after,
html[data-theme="newyear"] .hdr::after{background-size:200% 100%;animation:season-line 9s linear infinite}
@keyframes season-twinkle{50%{opacity:.45}}
html[data-theme="christmas"] .hdr::after{animation:season-twinkle 2.4s ease-in-out infinite}

/* ---------- 11. high contrast and reduced motion ---------- */

/* High contrast: keep the season, drop the glow under text and the vignette. */
html.hc[data-theme] body::after{display:none}
html.hc[data-theme] .page{background:var(--bg)}
html.hc[data-theme] .season-decor{opacity:.5}

/* Browsers without CSS zoom (Firefox before 126) take the transform fallback
   (styles/canvas.css: html.no-zoom .page{transform:scale()}), and a transform
   makes #page its own stacking context: nothing inside it can rise above the
   layer, so the canvas would paint over the logo and the Listen Live pill.
   They get the colours, the motifs and the rules, and no canvas (the
   component sees the hidden layer and never starts the engine). */
html.no-zoom[data-theme] .season-decor{display:none}

@media (prefers-reduced-motion:reduce){
  html[data-theme] .hdr::after,
  html[data-theme] .hero::after,
  html[data-theme] .hero::before{animation:none}
  .season-decor{display:none}
}
