/* Seasonal look - a few quiet touches, switched on by the site admin:
   <html data-season="halloween|thanksgiving|mikulas|christmas|winter">. Without the attribute
   nothing here applies, so the site looks exactly as always. Motion (a bat,
   snow and Santa's sleigh, falling leaves and a runaway turkey, Mikuláš with
   the angel and the devil, a child on a sledge, twinkling lights) runs only
   for people who allow it in their system and stops with
   data-season-motion="off". Light and dark mode both. */

html[data-season="halloween"] {
  --season-accent: #a8530b;
  --season-web: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' fill='none' stroke='%235f6f82' stroke-width='1.1' stroke-linecap='round'%3E%3Cpath d='M120 0 L0 8 M120 0 L10 60 M120 0 L45 110 M120 0 L95 120'/%3E%3Cpath d='M84 2.4 Q88 12 87 18 Q93 27 97.5 33 Q106 36 112.5 36'/%3E%3Cpath d='M48 4.8 Q54 22 54 36 Q66 50 75 66 Q92 70 105 72'/%3E%3Cpath d='M12 7.2 Q20 32 21 54 Q38 78 52.5 99 Q78 103 97.5 108'/%3E%3C/svg%3E");
  --season-bat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32'%3E%3Cpath fill='%233b2f4a' d='M32 10 C30 6 27 6 26 9 C22 4 14 2 4 8 C10 9 12 13 12 16 C16 13 20 14 22 18 C25 15 28 16 32 22 C36 16 39 15 42 18 C44 14 48 13 52 16 C52 13 54 9 60 8 C50 2 42 4 38 9 C37 6 34 6 32 10Z'/%3E%3C/svg%3E");
}

html[data-season="halloween"][data-theme="dark"] {
  --season-accent: #f0954a;
  --season-web: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' fill='none' stroke='%23c9bfdc' stroke-width='1.1' stroke-linecap='round'%3E%3Cpath d='M120 0 L0 8 M120 0 L10 60 M120 0 L45 110 M120 0 L95 120'/%3E%3Cpath d='M84 2.4 Q88 12 87 18 Q93 27 97.5 33 Q106 36 112.5 36'/%3E%3Cpath d='M48 4.8 Q54 22 54 36 Q66 50 75 66 Q92 70 105 72'/%3E%3Cpath d='M12 7.2 Q20 32 21 54 Q38 78 52.5 99 Q78 103 97.5 108'/%3E%3C/svg%3E");
  --season-bat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32'%3E%3Cpath fill='%238f84a6' d='M32 10 C30 6 27 6 26 9 C22 4 14 2 4 8 C10 9 12 13 12 16 C16 13 20 14 22 18 C25 15 28 16 32 22 C36 16 39 15 42 18 C44 14 48 13 52 16 C52 13 54 9 60 8 C50 2 42 4 38 9 C37 6 34 6 32 10Z'/%3E%3C/svg%3E");
  /* A night-plum ground instead of the usual navy. */
  --bg: #16121d;
  --surface: #201a2a;
  --surface-alt: #2a2236;
}

html[data-season="christmas"] {
  --season-accent: #a3192e;
  --season-snow: #b9cbe2;
  --season-sleigh: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 40'%3E%3Cpath d='M28 16 L58 21 M28 16 L88 18' stroke='%236b4a35' stroke-width='0.8' fill='none'/%3E%3Cg transform='translate(52 22)'%3E%3Cellipse cx='8' cy='0' rx='8' ry='3.6' fill='%236b4a35'/%3E%3Cpath d='M13 -1.5 L18.5 -7.5 L22.5 -7.5 L24 -5.6 L19.5 -4.4 L16 1.5Z' fill='%236b4a35'/%3E%3Cpath d='M-0.5 -1 L-3 -3' stroke='%236b4a35' stroke-width='1.6' stroke-linecap='round'/%3E%3Cg stroke='%236b4a35' stroke-width='1.3' stroke-linecap='round' fill='none'%3E%3Cpath d='M3 2 L-1.5 6.5 M5.5 2.5 L1.5 7.5 M12 2 L17 5.5 M14 1.5 L19.5 3.5'/%3E%3Cpath d='M19 -7.5 L17 -12.5 M17.8 -10.5 L15 -12.2 M20.5 -7.5 L21.5 -13 M21.1 -10.8 L23.6 -12.4'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(82 19)'%3E%3Cellipse cx='8' cy='0' rx='8' ry='3.6' fill='%236b4a35'/%3E%3Cpath d='M13 -1.5 L18.5 -7.5 L22.5 -7.5 L24 -5.6 L19.5 -4.4 L16 1.5Z' fill='%236b4a35'/%3E%3Cpath d='M-0.5 -1 L-3 -3' stroke='%236b4a35' stroke-width='1.6' stroke-linecap='round'/%3E%3Cg stroke='%236b4a35' stroke-width='1.3' stroke-linecap='round' fill='none'%3E%3Cpath d='M3 2 L-1.5 6.5 M5.5 2.5 L1.5 7.5 M12 2 L17 5.5 M14 1.5 L19.5 3.5'/%3E%3Cpath d='M19 -7.5 L17 -12.5 M17.8 -10.5 L15 -12.2 M20.5 -7.5 L21.5 -13 M21.1 -10.8 L23.6 -12.4'/%3E%3C/g%3E%3Ccircle cx='23.8' cy='-6' r='1.1' fill='%23e0303f'/%3E%3C/g%3E%3Cellipse cx='11' cy='15' rx='5.5' ry='5.2' fill='%238a5a3b'/%3E%3Cpath d='M18 21 Q18 11.5 24 11.5 Q30 11.5 30 21Z' fill='%23c0283d'/%3E%3Cpath d='M27 15 L31 16.5' stroke='%23c0283d' stroke-width='2.2' stroke-linecap='round'/%3E%3Ccircle cx='24.4' cy='9.2' r='3' fill='%23f1c9a5'/%3E%3Cpath d='M21.4 9.6 Q24.4 16.5 27.4 9.6Z' fill='%23fff'/%3E%3Cpath d='M21.2 8 L23.8 2.6 L27.6 8Z' fill='%23c0283d'/%3E%3Crect x='21' y='7.4' width='6.8' height='1.6' rx='0.8' fill='%23fff'/%3E%3Ccircle cx='23.8' cy='2.6' r='1.2' fill='%23fff'/%3E%3Cpath d='M5 19 H35 Q41 19 42 28 H12 Q5 28 5 19Z' fill='%23c0283d'/%3E%3Cpath d='M8 22.5 H38.5' stroke='%23e3ad2f' stroke-width='1.1'/%3E%3Cpath d='M10 28 V32.5 M36 28 V32.5 M2 30.5 Q3 34 9 34 H40 Q46 34 46.5 29' stroke='%23e3ad2f' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

html[data-season="christmas"][data-theme="dark"] {
  --season-accent: #ef8390;
  --season-snow: rgba(255, 255, 255, 0.8);
  --season-sleigh: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 40'%3E%3Cpath d='M28 16 L58 21 M28 16 L88 18' stroke='%23c9a78a' stroke-width='0.8' fill='none'/%3E%3Cg transform='translate(52 22)'%3E%3Cellipse cx='8' cy='0' rx='8' ry='3.6' fill='%23c9a78a'/%3E%3Cpath d='M13 -1.5 L18.5 -7.5 L22.5 -7.5 L24 -5.6 L19.5 -4.4 L16 1.5Z' fill='%23c9a78a'/%3E%3Cpath d='M-0.5 -1 L-3 -3' stroke='%23c9a78a' stroke-width='1.6' stroke-linecap='round'/%3E%3Cg stroke='%23c9a78a' stroke-width='1.3' stroke-linecap='round' fill='none'%3E%3Cpath d='M3 2 L-1.5 6.5 M5.5 2.5 L1.5 7.5 M12 2 L17 5.5 M14 1.5 L19.5 3.5'/%3E%3Cpath d='M19 -7.5 L17 -12.5 M17.8 -10.5 L15 -12.2 M20.5 -7.5 L21.5 -13 M21.1 -10.8 L23.6 -12.4'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate(82 19)'%3E%3Cellipse cx='8' cy='0' rx='8' ry='3.6' fill='%23c9a78a'/%3E%3Cpath d='M13 -1.5 L18.5 -7.5 L22.5 -7.5 L24 -5.6 L19.5 -4.4 L16 1.5Z' fill='%23c9a78a'/%3E%3Cpath d='M-0.5 -1 L-3 -3' stroke='%23c9a78a' stroke-width='1.6' stroke-linecap='round'/%3E%3Cg stroke='%23c9a78a' stroke-width='1.3' stroke-linecap='round' fill='none'%3E%3Cpath d='M3 2 L-1.5 6.5 M5.5 2.5 L1.5 7.5 M12 2 L17 5.5 M14 1.5 L19.5 3.5'/%3E%3Cpath d='M19 -7.5 L17 -12.5 M17.8 -10.5 L15 -12.2 M20.5 -7.5 L21.5 -13 M21.1 -10.8 L23.6 -12.4'/%3E%3C/g%3E%3Ccircle cx='23.8' cy='-6' r='1.1' fill='%23e0303f'/%3E%3C/g%3E%3Cellipse cx='11' cy='15' rx='5.5' ry='5.2' fill='%238a5a3b'/%3E%3Cpath d='M18 21 Q18 11.5 24 11.5 Q30 11.5 30 21Z' fill='%23c0283d'/%3E%3Cpath d='M27 15 L31 16.5' stroke='%23c0283d' stroke-width='2.2' stroke-linecap='round'/%3E%3Ccircle cx='24.4' cy='9.2' r='3' fill='%23f1c9a5'/%3E%3Cpath d='M21.4 9.6 Q24.4 16.5 27.4 9.6Z' fill='%23fff'/%3E%3Cpath d='M21.2 8 L23.8 2.6 L27.6 8Z' fill='%23c0283d'/%3E%3Crect x='21' y='7.4' width='6.8' height='1.6' rx='0.8' fill='%23fff'/%3E%3Ccircle cx='23.8' cy='2.6' r='1.2' fill='%23fff'/%3E%3Cpath d='M5 19 H35 Q41 19 42 28 H12 Q5 28 5 19Z' fill='%23c0283d'/%3E%3Cpath d='M8 22.5 H38.5' stroke='%23e3ad2f' stroke-width='1.1'/%3E%3Cpath d='M10 28 V32.5 M36 28 V32.5 M2 30.5 Q3 34 9 34 H40 Q46 34 46.5 29' stroke='%23e3ad2f' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

html[data-season="thanksgiving"] {
  --season-accent: #9a4a12;
  --season-leaves-a: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 340' width='300' height='340'%3E%3Cg transform='translate(60 40) rotate(20) scale(1.2)'%3E%3Cpath d='M0 -10 C7 -6 7 4 0 10 C-7 4 -7 -6 0 -10Z' fill='%23d9701f'/%3E%3Cpath d='M0 -8 V13' stroke='%239a4a12' stroke-width='0.9' fill='none' stroke-linecap='round'/%3E%3C/g%3E%3Cg transform='translate(210 190) rotate(-35) scale(1.0)'%3E%3Cpath d='M0 -10 C7 -6 7 4 0 10 C-7 4 -7 -6 0 -10Z' fill='%23c4501a'/%3E%3Cpath d='M0 -8 V13' stroke='%238a3412' stroke-width='0.9' fill='none' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");
  --season-leaves-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 380 420' width='380' height='420'%3E%3Cg transform='translate(120 90) rotate(55) scale(1.4)'%3E%3Cpath d='M0 -10 C7 -6 7 4 0 10 C-7 4 -7 -6 0 -10Z' fill='%23e3ad2f'/%3E%3Cpath d='M0 -8 V13' stroke='%23a8771a' stroke-width='0.9' fill='none' stroke-linecap='round'/%3E%3C/g%3E%3Cg transform='translate(300 300) rotate(-10) scale(1.1)'%3E%3Cpath d='M0 -10 C7 -6 7 4 0 10 C-7 4 -7 -6 0 -10Z' fill='%23a8530b'/%3E%3Cpath d='M0 -8 V13' stroke='%236e360a' stroke-width='0.9' fill='none' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");
  --season-turkey: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 40'%3E%3Cg stroke-linecap='round' fill='none' stroke-width='5'%3E%3Cpath d='M17 23 L3 19' stroke='%23a8530b'/%3E%3Cpath d='M17 23 L5 10' stroke='%23d9701f'/%3E%3Cpath d='M17 23 L11 4' stroke='%23e3ad2f'/%3E%3Cpath d='M17 23 L19 3' stroke='%23d9701f'/%3E%3C/g%3E%3Cpath d='M18 31 L14 38 H11.5 M23 31 L27 37 H29.5' stroke='%23e3ad2f' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cellipse cx='21' cy='25' rx='10' ry='7.5' fill='%237a4a2c'/%3E%3Cellipse cx='19' cy='24.5' rx='6' ry='3.6' fill='%235e3820'/%3E%3Cpath d='M28 21 Q31 17 32.5 12' stroke='%238a5a3b' stroke-width='3.6' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='33' cy='11' r='3.3' fill='%238a5a3b'/%3E%3Ccircle cx='34.3' cy='10.2' r='0.75' fill='%23fff'/%3E%3Cpath d='M36 10.3 L39.8 11.5 L36 12.7Z' fill='%23e3ad2f'/%3E%3Cpath d='M35.8 12.6 q1.4 2.6 -0.3 4.2' stroke='%23c0283d' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  --season-chef: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 44'%3E%3Cpath d='M12 30 L8 37 L5 37.5 M17 30 L22 36.5 L25 35.5' stroke='%233b3f4a' stroke-width='3.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M10 18 Q14.5 16 19 18 L20 30.5 H9Z' fill='%23fff' stroke='%238a96a8' stroke-width='0.7'/%3E%3Cpath d='M12 22 H19.3 L19.8 30.5 H11.4Z' fill='%233d6fb8'/%3E%3Cpath d='M12 17.4 L14.6 20.6 L17.2 17.4Z' fill='%23c0283d'/%3E%3Cpath d='M17 19.5 L27.5 16.5 M16.5 22 L27 21.5' stroke='%238a96a8' stroke-width='3.6' fill='none' stroke-linecap='round'/%3E%3Cpath d='M17 19.5 L27.5 16.5 M16.5 22 L27 21.5' stroke='%23fff' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='29' cy='16.2' r='1.6' fill='%23f1c9a5'/%3E%3Ccircle cx='28.6' cy='21.4' r='1.6' fill='%23f1c9a5'/%3E%3Ccircle cx='14' cy='13' r='4' fill='%23f1c9a5'/%3E%3Ccircle cx='16.2' cy='12.3' r='0.65' fill='%232b2b2b'/%3E%3Ccircle cx='17.1' cy='14.7' r='0.8' fill='%23a3192e'/%3E%3Cpath d='M10 10.2 H18 V7 Q21 5.5 19.5 3 Q18.5 0.6 16 1.6 Q14 -0.4 12 1.6 Q9.5 0.6 8.5 3 Q7 5.5 10 7Z' fill='%23fff' stroke='%238a96a8' stroke-width='0.7' stroke-linejoin='round'/%3E%3C/svg%3E");
}

html[data-season="thanksgiving"][data-theme="dark"] {
  --season-accent: #f0a35e;
  --season-turkey: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 40'%3E%3Cg stroke-linecap='round' fill='none' stroke-width='5'%3E%3Cpath d='M17 23 L3 19' stroke='%23a8530b'/%3E%3Cpath d='M17 23 L5 10' stroke='%23d9701f'/%3E%3Cpath d='M17 23 L11 4' stroke='%23e3ad2f'/%3E%3Cpath d='M17 23 L19 3' stroke='%23d9701f'/%3E%3C/g%3E%3Cpath d='M18 31 L14 38 H11.5 M23 31 L27 37 H29.5' stroke='%23e3ad2f' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cellipse cx='21' cy='25' rx='10' ry='7.5' fill='%23a8714a'/%3E%3Cellipse cx='19' cy='24.5' rx='6' ry='3.6' fill='%238a5a3b'/%3E%3Cpath d='M28 21 Q31 17 32.5 12' stroke='%23b5805a' stroke-width='3.6' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='33' cy='11' r='3.3' fill='%23b5805a'/%3E%3Ccircle cx='34.3' cy='10.2' r='0.75' fill='%23fff'/%3E%3Cpath d='M36 10.3 L39.8 11.5 L36 12.7Z' fill='%23e3ad2f'/%3E%3Cpath d='M35.8 12.6 q1.4 2.6 -0.3 4.2' stroke='%23c0283d' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  --season-chef: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 44'%3E%3Cpath d='M12 30 L8 37 L5 37.5 M17 30 L22 36.5 L25 35.5' stroke='%23aeb6c4' stroke-width='3.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M10 18 Q14.5 16 19 18 L20 30.5 H9Z' fill='%23fff' stroke='%238a96a8' stroke-width='0.7'/%3E%3Cpath d='M12 22 H19.3 L19.8 30.5 H11.4Z' fill='%233d6fb8'/%3E%3Cpath d='M12 17.4 L14.6 20.6 L17.2 17.4Z' fill='%23c0283d'/%3E%3Cpath d='M17 19.5 L27.5 16.5 M16.5 22 L27 21.5' stroke='%238a96a8' stroke-width='3.6' fill='none' stroke-linecap='round'/%3E%3Cpath d='M17 19.5 L27.5 16.5 M16.5 22 L27 21.5' stroke='%23fff' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='29' cy='16.2' r='1.6' fill='%23f1c9a5'/%3E%3Ccircle cx='28.6' cy='21.4' r='1.6' fill='%23f1c9a5'/%3E%3Ccircle cx='14' cy='13' r='4' fill='%23f1c9a5'/%3E%3Ccircle cx='16.2' cy='12.3' r='0.65' fill='%232b2b2b'/%3E%3Ccircle cx='17.1' cy='14.7' r='0.8' fill='%23a3192e'/%3E%3Cpath d='M10 10.2 H18 V7 Q21 5.5 19.5 3 Q18.5 0.6 16 1.6 Q14 -0.4 12 1.6 Q9.5 0.6 8.5 3 Q7 5.5 10 7Z' fill='%23fff' stroke='%238a96a8' stroke-width='0.7' stroke-linejoin='round'/%3E%3C/svg%3E");
}

html[data-season="mikulas"] {
  --season-accent: #8a6400;
  --season-mikulas: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 56'%3E%3Cpath d='M33 54 V10 Q33 3 27.5 4 Q24 5 25 8.5 Q26.5 11 29 9.5' stroke='%23d6a12a' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3Cpath d='M12 22 L8 53 H28 L24 22Z' fill='%23fff' stroke='%238a96a8' stroke-width='0.7'/%3E%3Cpath d='M11 53 H16.5 M20.5 53 H26' stroke='%236b4a35' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M11 21 Q18 18 25 21 L28 44 Q18 47.5 8 44Z' fill='%23c0283d'/%3E%3Cpath d='M8 44 Q18 47.5 28 44' stroke='%23e3ad2f' stroke-width='1.3' fill='none'/%3E%3Cpath d='M18 20 V46' stroke='%23e3ad2f' stroke-width='1.3'/%3E%3Cpath d='M22 26 L31 30' stroke='%23c0283d' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='32.6' cy='30' r='1.8' fill='%23f1c9a5'/%3E%3Ccircle cx='18' cy='15' r='4.2' fill='%23f1c9a5'/%3E%3Cpath d='M13.6 15 Q14 25 18.5 26.5 Q23 25 22.6 15 Q18 18.6 13.6 15Z' fill='%23fff' stroke='%238a96a8' stroke-width='0.6'/%3E%3Ccircle cx='20' cy='13.6' r='0.65' fill='%232b2b2b'/%3E%3Cpath d='M13.5 11.5 V6.5 Q14.5 3 18 0.8 Q21.5 3 22.5 6.5 V11.5Z' fill='%23fff' stroke='%238a96a8' stroke-width='0.7' stroke-linejoin='round'/%3E%3Cpath d='M13.5 10.3 H22.5' stroke='%23e3ad2f' stroke-width='1.6'/%3E%3Cpath d='M18 3.6 V8 M16.2 5.4 H19.8' stroke='%23e3ad2f' stroke-width='1.1' stroke-linecap='round'/%3E%3C/svg%3E");
  --season-angel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 44'%3E%3Cpath d='M14 19 Q5 9 1.5 15 Q2 22 13 23Z' fill='%23e8f0fb' stroke='%238a96a8' stroke-width='0.6'/%3E%3Cpath d='M14 21 Q6 15 3 20 Q5 25 13.5 25Z' fill='%23fff' stroke='%238a96a8' stroke-width='0.6'/%3E%3Cpath d='M13 18.5 L8 38 H25 L20 18.5Z' fill='%23fff' stroke='%238a96a8' stroke-width='0.7'/%3E%3Cpath d='M12 25 H21.3' stroke='%23e3ad2f' stroke-width='1.2'/%3E%3Cpath d='M19 22 L25 19.5' stroke='%238a96a8' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M19 22 L25 19.5' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='26' cy='19' r='1.4' fill='%23f1c9a5'/%3E%3Cpath d='M28.5 11.5 L29.4 14.1 L32.1 14.1 L29.9 15.7 L30.7 18.3 L28.5 16.7 L26.3 18.3 L27.1 15.7 L24.9 14.1 L27.6 14.1Z' fill='%23e3ad2f'/%3E%3Ccircle cx='16.5' cy='13' r='4' fill='%23f1c9a5'/%3E%3Cpath d='M12.4 13.5 Q11.5 8.2 16.5 8.6 Q21 8.4 20.6 12 Q18.5 10.4 16 11.2 Q14 11.6 13.6 14 Q13 17 14.5 18.5 Q11.3 17.5 12.4 13.5Z' fill='%23e3ad2f'/%3E%3Ccircle cx='18.4' cy='12.8' r='0.6' fill='%232b2b2b'/%3E%3Cellipse cx='16.5' cy='5.6' rx='4' ry='1.3' stroke='%23e3ad2f' stroke-width='1' fill='none'/%3E%3C/svg%3E");
  --season-devil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 48'%3E%3Cpath d='M11 32 Q2 33 3 24 Q3.5 20 6.5 20.5' stroke='%232b2b2b' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cpath d='M6.5 18 L9 21.5 L4.6 22.2Z' fill='%23c0283d'/%3E%3Cellipse cx='10' cy='19' rx='6' ry='7' fill='%23a07a4a'/%3E%3Cpath d='M7 13 Q10 11.5 13 13' stroke='%236b4a35' stroke-width='1' fill='none'/%3E%3Cpath d='M14.5 37 L12 44 M22 37 L25.5 43' stroke='%232b2b2b' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M10.4 44.5 H13.6 M24.4 43.6 H27.4' stroke='%231b1b1b' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M12 20.5 Q18 17.5 24 20.5 L25.5 37.5 H10.5Z' fill='%232b2b2b' stroke='%232b2b2b' stroke-width='0.6'/%3E%3Cpath d='M14.5 22.5 L11 16.5' stroke='%232b2b2b' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M22.5 23.5 L28.5 26' stroke='%232b2b2b' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M29 26.5 Q31.5 31 30 37' stroke='%239aa3ad' stroke-width='1.6' stroke-dasharray='1.6 1' fill='none'/%3E%3Cpath d='M15.2 9.5 Q12.8 4 16 2.4 Q15.8 6 17.6 8.4Z' fill='%23e8dcc4'/%3E%3Cpath d='M21 8.2 Q23 3.4 26.2 4 Q23.6 6 22.8 9.4Z' fill='%23e8dcc4'/%3E%3Ccircle cx='19' cy='13.5' r='5.2' fill='%232b2b2b' stroke='%232b2b2b' stroke-width='0.6'/%3E%3Cellipse cx='21.2' cy='14.2' rx='3.2' ry='3.6' fill='%23d65a4a'/%3E%3Ccircle cx='21.8' cy='12.6' r='1.1' fill='%23fff'/%3E%3Ccircle cx='22.2' cy='12.7' r='0.5' fill='%231b1b1b'/%3E%3Cpath d='M22.6 16.2 q1.8 2.2 0.2 3.6 q-1 -1.6 -0.2 -3.6Z' fill='%23e0303f'/%3E%3C/svg%3E");
  --season-tail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 90'%3E%3Cpath d='M44 0 Q46 22 32 34 Q18 46 28 60 Q36 70 30 78' stroke='%232b2b2b' stroke-width='4.5' fill='none' stroke-linecap='round'/%3E%3Cpath d='M30 72 L37.5 85 L23.5 85Z' fill='%23c0283d'/%3E%3C/svg%3E");
}

html[data-season="mikulas"][data-theme="dark"] {
  --season-accent: #e8c15a;
  --season-devil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 48'%3E%3Cpath d='M11 32 Q2 33 3 24 Q3.5 20 6.5 20.5' stroke='%233d3434' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cpath d='M6.5 18 L9 21.5 L4.6 22.2Z' fill='%23c0283d'/%3E%3Cellipse cx='10' cy='19' rx='6' ry='7' fill='%23a07a4a'/%3E%3Cpath d='M7 13 Q10 11.5 13 13' stroke='%236b4a35' stroke-width='1' fill='none'/%3E%3Cpath d='M14.5 37 L12 44 M22 37 L25.5 43' stroke='%233d3434' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M10.4 44.5 H13.6 M24.4 43.6 H27.4' stroke='%231b1b1b' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M12 20.5 Q18 17.5 24 20.5 L25.5 37.5 H10.5Z' fill='%233d3434' stroke='%239a8a8a' stroke-width='0.6'/%3E%3Cpath d='M14.5 22.5 L11 16.5' stroke='%233d3434' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M22.5 23.5 L28.5 26' stroke='%233d3434' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M29 26.5 Q31.5 31 30 37' stroke='%239aa3ad' stroke-width='1.6' stroke-dasharray='1.6 1' fill='none'/%3E%3Cpath d='M15.2 9.5 Q12.8 4 16 2.4 Q15.8 6 17.6 8.4Z' fill='%23e8dcc4'/%3E%3Cpath d='M21 8.2 Q23 3.4 26.2 4 Q23.6 6 22.8 9.4Z' fill='%23e8dcc4'/%3E%3Ccircle cx='19' cy='13.5' r='5.2' fill='%233d3434' stroke='%239a8a8a' stroke-width='0.6'/%3E%3Cellipse cx='21.2' cy='14.2' rx='3.2' ry='3.6' fill='%23d65a4a'/%3E%3Ccircle cx='21.8' cy='12.6' r='1.1' fill='%23fff'/%3E%3Ccircle cx='22.2' cy='12.7' r='0.5' fill='%231b1b1b'/%3E%3Cpath d='M22.6 16.2 q1.8 2.2 0.2 3.6 q-1 -1.6 -0.2 -3.6Z' fill='%23e0303f'/%3E%3C/svg%3E");
  --season-tail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 90'%3E%3Cpath d='M44 0 Q46 22 32 34 Q18 46 28 60 Q36 70 30 78' stroke='%239a8a8a' stroke-width='4.5' fill='none' stroke-linecap='round'/%3E%3Cpath d='M30 72 L37.5 85 L23.5 85Z' fill='%23c0283d'/%3E%3C/svg%3E");
}

html[data-season="winter"] {
  --season-accent: #2f6690;
  --season-snow: #b9cbe2;
  --season-sled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 40'%3E%3Ccircle cx='4' cy='33' r='1.4' fill='%239db5d3'/%3E%3Ccircle cx='1.6' cy='30' r='1' fill='%239db5d3'/%3E%3Ccircle cx='6' cy='29.5' r='0.9' fill='%239db5d3'/%3E%3Cpath d='M7 35.5 H44 Q50 35.5 50.5 29' stroke='%23b04a2a' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3Cpath d='M12 31.5 V35.5 M38 31.5 V35.5' stroke='%23b04a2a' stroke-width='1.4'/%3E%3Crect x='8' y='28.5' width='34' height='3.6' rx='1' fill='%23c27a3a'/%3E%3Cpath d='M21 26.5 L33 26.5' stroke='%233b3f4a' stroke-width='4.2' stroke-linecap='round'/%3E%3Cpath d='M33.5 24 V28 H37' stroke='%232b2b2b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16 28.5 Q15 17 21 16 Q26.5 16 26 22 L26 28.5Z' fill='%23c0283d'/%3E%3Cpath d='M24 21 L31.5 23' stroke='%23c0283d' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='32.6' cy='23.3' r='1.6' fill='%23f1c9a5'/%3E%3Cpath d='M33.5 23.5 Q42 22.5 46.5 29' stroke='%236b4a35' stroke-width='0.8' fill='none'/%3E%3Cpath d='M18.5 15.5 Q12 14 7 16.5 Q10.5 17.5 7.5 20.5 Q13 19 19 18Z' fill='%23e3ad2f'/%3E%3Ccircle cx='22' cy='11' r='4.2' fill='%23f1c9a5'/%3E%3Cpath d='M17.6 10.2 Q17.6 4.6 22 4.6 Q26.4 4.6 26.4 10.2Z' fill='%232f8a5f'/%3E%3Cpath d='M17.4 10 H26.6' stroke='%23fff' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='17.8' cy='4.6' r='2' fill='%23fff' stroke='%238a96a8' stroke-width='0.6'/%3E%3Ccircle cx='23.8' cy='11.4' r='0.6' fill='%232b2b2b'/%3E%3Cpath d='M23.4 13.4 q1.2 0.9 2.3 -0.2' stroke='%23a3192e' stroke-width='0.7' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

html[data-season="winter"][data-theme="dark"] {
  --season-accent: #8cc4ec;
  --season-snow: rgba(255, 255, 255, 0.8);
  --season-sled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 40'%3E%3Ccircle cx='4' cy='33' r='1.4' fill='rgba(255,255,255,0.85)'/%3E%3Ccircle cx='1.6' cy='30' r='1' fill='rgba(255,255,255,0.85)'/%3E%3Ccircle cx='6' cy='29.5' r='0.9' fill='rgba(255,255,255,0.85)'/%3E%3Cpath d='M7 35.5 H44 Q50 35.5 50.5 29' stroke='%23b04a2a' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3Cpath d='M12 31.5 V35.5 M38 31.5 V35.5' stroke='%23b04a2a' stroke-width='1.4'/%3E%3Crect x='8' y='28.5' width='34' height='3.6' rx='1' fill='%23c27a3a'/%3E%3Cpath d='M21 26.5 L33 26.5' stroke='%23aeb6c4' stroke-width='4.2' stroke-linecap='round'/%3E%3Cpath d='M33.5 24 V28 H37' stroke='%232b2b2b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16 28.5 Q15 17 21 16 Q26.5 16 26 22 L26 28.5Z' fill='%23c0283d'/%3E%3Cpath d='M24 21 L31.5 23' stroke='%23c0283d' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='32.6' cy='23.3' r='1.6' fill='%23f1c9a5'/%3E%3Cpath d='M33.5 23.5 Q42 22.5 46.5 29' stroke='%236b4a35' stroke-width='0.8' fill='none'/%3E%3Cpath d='M18.5 15.5 Q12 14 7 16.5 Q10.5 17.5 7.5 20.5 Q13 19 19 18Z' fill='%23e3ad2f'/%3E%3Ccircle cx='22' cy='11' r='4.2' fill='%23f1c9a5'/%3E%3Cpath d='M17.6 10.2 Q17.6 4.6 22 4.6 Q26.4 4.6 26.4 10.2Z' fill='%232f8a5f'/%3E%3Cpath d='M17.4 10 H26.6' stroke='%23fff' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='17.8' cy='4.6' r='2' fill='%23fff' stroke='%238a96a8' stroke-width='0.6'/%3E%3Ccircle cx='23.8' cy='11.4' r='0.6' fill='%232b2b2b'/%3E%3Cpath d='M23.4 13.4 q1.2 0.9 2.3 -0.2' stroke='%23a3192e' stroke-width='0.7' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* --- The small mark before the logo --- */

html[data-season] .brand::before {
  content: "";
  display: inline-block;
  width: 1.05em;
  height: 1.05em;
  margin-right: 0.35em;
  vertical-align: -0.15em;
  background: center / contain no-repeat;
}

html[data-season="halloween"] .brand::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7c-.6-2.2.4-4 2.4-4.6' stroke='%232f6b3a' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3Cellipse cx='7.6' cy='14.5' rx='5' ry='7' fill='%23d9701f'/%3E%3Cellipse cx='16.4' cy='14.5' rx='5' ry='7' fill='%23d9701f'/%3E%3Cellipse cx='12' cy='14.5' rx='5' ry='7.5' fill='%23ef8f35'/%3E%3C/svg%3E");
}

html[data-season="christmas"] .brand::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 13C8 6 3 9 2 12c3-1 4 3 7 2 0 3 3 2 3-1Z' fill='%232f6b4f'/%3E%3Cpath d='M12 13c4-7 9-4 10-1-3-1-4 3-7 2 0 3-3 2-3-1Z' fill='%233a8060'/%3E%3Ccircle cx='10.4' cy='14.6' r='2.2' fill='%23c0283d'/%3E%3Ccircle cx='13.6' cy='14.6' r='2.2' fill='%23c0283d'/%3E%3Ccircle cx='12' cy='12.2' r='2.2' fill='%23d6364b'/%3E%3C/svg%3E");
}

html[data-season="thanksgiving"] .brand::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 15 L1.66 11.26' stroke='%23a8530b' stroke-width='4.2' stroke-linecap='round'/%3E%3Cpath d='M12 15 L4.96 6.53' stroke='%23d9701f' stroke-width='4.2' stroke-linecap='round'/%3E%3Cpath d='M12 15 L10.13 4.22' stroke='%23e3ad2f' stroke-width='4.2' stroke-linecap='round'/%3E%3Cpath d='M12 15 L13.87 4.22' stroke='%23e3ad2f' stroke-width='4.2' stroke-linecap='round'/%3E%3Cpath d='M12 15 L19.04 6.53' stroke='%23d9701f' stroke-width='4.2' stroke-linecap='round'/%3E%3Cpath d='M12 15 L22.34 11.26' stroke='%23a8530b' stroke-width='4.2' stroke-linecap='round'/%3E%3Cellipse cx='12' cy='16' rx='4.6' ry='5.4' fill='%237a4a2c'/%3E%3Ccircle cx='12' cy='10' r='2.6' fill='%238a5a3b'/%3E%3Cpath d='M11.2 11 L12 12.8 L12.8 11Z' fill='%23e3ad2f'/%3E%3Cpath d='M12.6 12 q1 1.6 0 2.6' stroke='%23c0283d' stroke-width='1.1' fill='none' stroke-linecap='round'/%3E%3Cpath d='M10 21.5 v1.5 M14 21.5 v1.5' stroke='%23e3ad2f' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");
}

html[data-season="mikulas"] .brand::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.5 22 V11 Q7.5 5 12 1.5 Q16.5 5 18.5 11 V22Z' fill='%23fff' stroke='%23b8902a' stroke-width='1.2' stroke-linejoin='round'/%3E%3Cpath d='M5.5 19 H18.5' stroke='%23e3ad2f' stroke-width='2.4'/%3E%3Cpath d='M12 6.5 V15 M8.8 10 H15.2' stroke='%23c0283d' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

html[data-season="winter"] .brand::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='%234f86d9' stroke-width='1.7' stroke-linecap='round' fill='none'%3E%3Cpath d='M12 2 V22 M3.3 7 L20.7 17 M3.3 17 L20.7 7'/%3E%3Cpath d='M9.5 3.5 L12 6 L14.5 3.5 M9.5 20.5 L12 18 L14.5 20.5 M3.6 10.4 L7 9.5 L6.1 6.1 M20.4 13.6 L17 14.5 L17.9 17.9 M3.6 13.6 L7 14.5 L6.1 17.9 M20.4 10.4 L17 9.5 L17.9 6.1'/%3E%3C/svg%3E");
}

/* --- Accents: the small labels warm up, the main blue buttons stay --- */

html[data-season] .eyebrow,
html[data-season] .hero-card-kicker,
html[data-season] .section-heading-link {
  color: var(--season-accent);
}

html[data-season] :focus-visible {
  outline-color: var(--season-accent);
}

/* --- Halloween: a cobweb in the corner of the hero card --- */

html[data-season="halloween"] .hero-card {
  position: relative;
}

html[data-season="halloween"] .hero-card::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 7.5rem;
  height: 7.5rem;
  border-top-right-radius: inherit;
  background: var(--season-web) top right / contain no-repeat;
  opacity: 0.18;
  pointer-events: none;
}

/* --- Thanksgiving: a sprig of autumn leaves in the same corner --- */

html[data-season="thanksgiving"] .hero-card {
  position: relative;
}

html[data-season="thanksgiving"] .hero-card::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 6rem;
  height: 6rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cpath d='M120 0 Q92 18 70 46' stroke='%237a4a2c' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cg transform='translate(104 20) rotate(60) scale(1.5)'%3E%3Cpath d='M0 -10 C7 -6 7 4 0 10 C-7 4 -7 -6 0 -10Z' fill='%23c4501a'/%3E%3Cpath d='M0 -8 V13' stroke='%238a3412' stroke-width='0.9' fill='none' stroke-linecap='round'/%3E%3C/g%3E%3Cg transform='translate(90 22) rotate(-30) scale(1.3)'%3E%3Cpath d='M0 -10 C7 -6 7 4 0 10 C-7 4 -7 -6 0 -10Z' fill='%23e3ad2f'/%3E%3Cpath d='M0 -8 V13' stroke='%23a8771a' stroke-width='0.9' fill='none' stroke-linecap='round'/%3E%3C/g%3E%3Cg transform='translate(80 40) rotate(40) scale(1.6)'%3E%3Cpath d='M0 -10 C7 -6 7 4 0 10 C-7 4 -7 -6 0 -10Z' fill='%23d9701f'/%3E%3Cpath d='M0 -8 V13' stroke='%239a4a12' stroke-width='0.9' fill='none' stroke-linecap='round'/%3E%3C/g%3E%3Cg transform='translate(66 46) rotate(-60) scale(1.2)'%3E%3Cpath d='M0 -10 C7 -6 7 4 0 10 C-7 4 -7 -6 0 -10Z' fill='%23a8530b'/%3E%3Cpath d='M0 -8 V13' stroke='%236e360a' stroke-width='0.9' fill='none' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E") top right / contain no-repeat;
  opacity: 0.6;
  pointer-events: none;
}

/* --- Mikuláš: the devil's tail hangs over the top of the hero card --- */

html[data-season="mikulas"] .hero-card {
  position: relative;
}

html[data-season="mikulas"] .hero-card::after {
  content: "";
  position: absolute;
  top: -1.8rem;
  right: 1.2rem;
  width: 2.8rem;
  height: 4.2rem;
  background: var(--season-tail) center / contain no-repeat;
  pointer-events: none;
}

/* --- Winter: icicles along the top edge of the hero card --- */

html[data-season="winter"] .hero-card {
  position: relative;
}

html[data-season="winter"] .hero-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 1.2rem;
  right: 1.2rem;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 16'%3E%3Cpath d='M0 0 H60 V2 H58 L56.5 8 L55 2 H49 L47 13 L45 2 H38 L36.8 6 L35.6 2 H28 L26 11 L24 2 H17 L15.6 7 L14.2 2 H7 L5 14 L3 2 H0Z' fill='%23d8e8f7' stroke='%238fb3d6' stroke-width='0.6' stroke-linejoin='round'/%3E%3C/svg%3E") left top / 60px 16px repeat-x;
  opacity: 0.85;
  pointer-events: none;
}

/* --- Christmas: a string of small lights under the header --- */

html[data-season="christmas"] .site-header::before,
html[data-season="christmas"] .site-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -5px;
  height: 8px;
  pointer-events: none;
}

html[data-season="christmas"] .site-header::before {
  background:
    radial-gradient(circle 3px at 10px 50%, #d6364b 96%, transparent) 0 0 / 72px 100% repeat-x,
    radial-gradient(circle 3px at 46px 50%, #e3ad2f 96%, transparent) 0 0 / 72px 100% repeat-x;
}

html[data-season="christmas"] .site-header::after {
  background:
    radial-gradient(circle 3px at 28px 50%, #2f8a5f 96%, transparent) 0 0 / 72px 100% repeat-x,
    radial-gradient(circle 3px at 64px 50%, #4f86d9 96%, transparent) 0 0 / 72px 100% repeat-x;
}

/* --- A greeting in the footer --- */

html[data-season] .footer-identity::after {
  display: block;
  color: var(--season-accent);
  font-size: 0.9rem;
  font-weight: 700;
}

html[data-season="halloween"] .footer-identity::after {
  content: "Klidný podzim a veselý Halloween";
}

html[data-season="christmas"] .footer-identity::after {
  content: "Krásné Vánoce a klidný konec roku";
}

html[data-season="thanksgiving"] .footer-identity::after {
  content: "Krásný Den díkůvzdání a pohodový podzim";
}

html[data-season="mikulas"] .footer-identity::after {
  content: "Hodně dobrot od Mikuláše a žádné uhlí od čerta";
}

html[data-season="winter"] .footer-identity::after {
  content: "Krásnou zimu – ať to klouže jen na bobech";
}

/* --- Motion: once, slowly, and only for those who allow it --- */

html[data-season] .hero {
  position: relative;
  overflow-x: clip;
}

html[data-season] .hero > .container {
  position: relative;
  z-index: 1;
}

@media (prefers-reduced-motion: no-preference) {
  /* One bat crosses the top of the hero after the page loads. */
  html[data-season="halloween"]:not([data-season-motion="off"]) .hero::before {
    content: "";
    position: absolute;
    top: 1.5rem;
    left: 0;
    z-index: 0;
    width: 46px;
    height: 23px;
    background: var(--season-bat) center / contain no-repeat;
    pointer-events: none;
    animation:
      season-bat-fly 7s ease-in-out 1s 1 both,
      season-bat-flap 0.25s ease-in-out 1s 28 alternate;
  }

  /* A few flakes drift down the hero for a while, then fade away. */
  html[data-season="christmas"]:not([data-season-motion="off"]) .hero::before,
  html[data-season="winter"]:not([data-season-motion="off"]) .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
      radial-gradient(circle, var(--season-snow) 0 2px, transparent 2.6px),
      radial-gradient(circle, var(--season-snow) 0 1.6px, transparent 2.2px),
      radial-gradient(circle, var(--season-snow) 0 2.6px, transparent 3.2px);
    background-size: 260px 300px, 340px 360px, 420px 420px;
    /* Only on the card's side - over the headline flakes look like dust. */
    -webkit-mask-image: linear-gradient(to right, transparent 45%, #000 70%);
    mask-image: linear-gradient(to right, transparent 45%, #000 70%);
    animation: season-snow 18s linear 0.5s 1 both;
  }

  /* Santa's sleigh crosses the top of the hero once and is gone. */
  html[data-season="christmas"]:not([data-season-motion="off"]) .hero::after {
    content: "";
    position: absolute;
    top: 0.9rem;
    left: 0;
    z-index: 0;
    width: 150px;
    height: 50px;
    background: var(--season-sleigh) center / contain no-repeat;
    pointer-events: none;
    animation:
      season-sleigh-fly 9s ease-in-out 2.5s 1 both,
      season-sleigh-bob 0.6s ease-in-out 2.5s 15 alternate;
  }

  /* A few leaves drift down beside the card, then the air is still. */
  html[data-season="thanksgiving"]:not([data-season-motion="off"]) .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: var(--season-leaves-a), var(--season-leaves-b);
    background-size: 300px 340px, 380px 420px;
    -webkit-mask-image: linear-gradient(to right, transparent 45%, #000 70%);
    mask-image: linear-gradient(to right, transparent 45%, #000 70%);
    animation: season-leaves 16s ease-in-out 0.5s 1 both;
  }

  /* Along the bottom of the hero runs a track for the ones that cross on
     foot: on the empty strip between the hero and the next section, below
     the hero's button. */
  html[data-season="thanksgiving"]:not([data-season-motion="off"]) .hero::after,
  html[data-season="mikulas"]:not([data-season-motion="off"]) .hero::after,
  html[data-season="winter"]:not([data-season-motion="off"]) .hero::after {
    content: "";
    position: absolute;
    bottom: -2rem;
    left: 0;
    z-index: 0;
    pointer-events: none;
  }

  /* A turkey runs off, the cook right behind it, their steps out of step. */
  html[data-season="thanksgiving"]:not([data-season-motion="off"]) .hero::after {
    width: 140px;
    height: 56px;
    background:
      var(--season-turkey) right 0 bottom 0 / 52px 47px no-repeat,
      var(--season-chef) left 0 bottom 0 / 42px 54px no-repeat;
    animation:
      season-track-cross 7s linear 3s 1 both,
      season-chase-step 0.2s ease-in-out 3s 35 alternate;
  }

  /* Mikuláš walks across with his crozier, the angel floating ahead and
     the devil hopping behind with his sack. */
  html[data-season="mikulas"]:not([data-season-motion="off"]) .hero::after {
    width: 180px;
    height: 72px;
    background:
      var(--season-angel) right 0 bottom 16px / 36px 47px no-repeat,
      var(--season-mikulas) left 66px bottom 0 / 46px 64px no-repeat,
      var(--season-devil) left 0 bottom 0 / 40px 53px no-repeat;
    animation:
      season-track-cross 11s linear 1.5s 1 both,
      season-procession-step 0.4s ease-in-out 1.5s 28 alternate;
  }

  /* A child on a sledge slides across, bumping over the snow. */
  html[data-season="winter"]:not([data-season-motion="off"]) .hero::after {
    width: 90px;
    height: 60px;
    background: var(--season-sled) center / contain no-repeat;
    animation:
      season-track-cross 6s ease-in-out 3s 1 both,
      season-sled-bump 0.45s ease-in-out 3s 14 alternate;
  }

  /* The lights glow and fade, the two sets taking turns. */
  html[data-season="christmas"]:not([data-season-motion="off"]) .site-header::before {
    animation: season-twinkle 3.2s ease-in-out infinite alternate;
  }

  html[data-season="christmas"]:not([data-season-motion="off"]) .site-header::after {
    animation: season-twinkle 3.2s ease-in-out 1.6s infinite alternate;
  }
}

@keyframes season-bat-fly {
  0% { transform: translate(-60px, 2.5rem); opacity: 0; }
  8% { opacity: 1; }
  30% { transform: translate(28vw, 0.5rem); }
  55% { transform: translate(55vw, 2rem); }
  80% { transform: translate(82vw, 0); }
  92% { opacity: 1; }
  100% { transform: translate(calc(100vw + 60px), -1rem); opacity: 0; }
}

@keyframes season-bat-flap {
  from { scale: 1 1; }
  to { scale: 1 0.55; }
}

@keyframes season-snow {
  0% { opacity: 0; background-position: 20px -40px, 140px 60px, 260px 10px; }
  8% { opacity: 1; }
  85% { opacity: 1; }
  100% { opacity: 0; background-position: 70px 560px, 110px 780px, 300px 850px; }
}

@keyframes season-sleigh-fly {
  0% { transform: translate(-170px, 2.2rem); opacity: 0; }
  6% { opacity: 1; }
  35% { transform: translate(30vw, 0.8rem); }
  65% { transform: translate(62vw, 1.4rem); }
  92% { opacity: 1; }
  100% { transform: translate(calc(100vw + 20px), -1.2rem); opacity: 0; }
}

@keyframes season-sleigh-bob {
  from { translate: 0 0; }
  to { translate: 0 -4px; }
}

@keyframes season-track-cross {
  0% { transform: translateX(-200px); opacity: 0; }
  4% { opacity: 1; }
  96% { opacity: 1; }
  100% { transform: translateX(calc(100vw + 20px)); opacity: 0; }
}

@keyframes season-chase-step {
  from { background-position: right 0 bottom 0, left 0 bottom 4px; }
  to { background-position: right 0 bottom 4px, left 0 bottom 0; }
}

@keyframes season-procession-step {
  from { background-position: right 0 bottom 16px, left 66px bottom 0, left 0 bottom 0; }
  to { background-position: right 0 bottom 20px, left 66px bottom 3px, left 0 bottom 9px; }
}

@keyframes season-sled-bump {
  from { translate: 0 0; rotate: 0deg; }
  to { translate: 0 -3px; rotate: -2deg; }
}

@keyframes season-leaves {
  0% { opacity: 0; background-position: 0 -60px, 120px 20px; }
  8% { opacity: 1; }
  85% { opacity: 1; }
  100% { opacity: 0; background-position: -90px 520px, 40px 700px; }
}

@keyframes season-twinkle {
  from { opacity: 1; }
  to { opacity: 0.35; }
}

@media print {
  html[data-season] .brand::before,
  html[data-season] .hero::before,
  html[data-season] .hero::after,
  html[data-season] .hero-card::after,
  html[data-season] .site-header::before,
  html[data-season] .site-header::after,
  html[data-season] .footer-identity::after {
    display: none;
  }
}
