/* ------------------------------------------------------------------
   Seasonal promotions
   One component, two shapes (panel / banner), several themes.

   A theme only ever sets the four custom properties at the top of its
   block — background, ink, accent, ornament — so adding Easter or a
   World Cup later is a colour change, never new layout.

   Note the ?v= on the decorative SVG urls below. This stylesheet is
   cache-busted by filemtime, but the urls inside it are not, so a swapped
   SVG would otherwise sit stale in people's browsers for months. Bump the
   number whenever you change one of those files.
   ------------------------------------------------------------------ */

.promo {
  /* Defaults; every theme overrides these. */
  --promo-bg:       var(--navy);
  --promo-bg-2:     var(--near-black);
  --promo-ink:      var(--cream);
  --promo-accent:   var(--gold);
  --promo-ornament: none;
  --promo-ornament-opacity: 0.22;

  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(160deg, var(--promo-bg) 0%, var(--promo-bg-2) 100%);
  color: var(--promo-ink);
}

/* Optional photo behind the panel, held well back so the copy stays readable. */
.promo__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-size: cover;
  background-position: center;
  opacity: 0.18;
  filter: grayscale(0.4);
}

/* ---- Shapes ------------------------------------------------------ */

.promo--panel  { padding: 84px 0 0; }
.promo--banner { padding: 26px 0 0; }

.promo__inner { position: relative; z-index: 1; }

.promo--panel .promo__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
}

.promo--banner .promo__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding-bottom: 26px;
}

/* ---- Copy -------------------------------------------------------- */

.promo__eyebrow {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--promo-accent);
  margin-bottom: 14px;
}

.promo__heading {
  font-family: var(--font-serif);
  font-weight: 700;
  line-height: 1.05;
  color: var(--promo-ink);
  margin: 0;
}

.promo--panel  .promo__heading { font-size: clamp(2.3rem, 4.4vw, 3.9rem); }
.promo--banner .promo__heading { font-size: clamp(1.45rem, 2.6vw, 2.1rem); }

.promo__rule { display: block; margin: 20px 0 22px; }

.promo__subheading {
  font-family: var(--font-sans);
  color: rgba(243, 239, 230, 0.92);
  margin: 0;
}

.promo--panel  .promo__subheading { font-size: 1.12rem; line-height: 1.65; max-width: 44ch; }
.promo--banner .promo__subheading { font-size: 0.95rem; line-height: 1.5; margin-top: 4px; }

.promo__body {
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.75;
  color: rgba(243, 239, 230, 0.82);
  margin: 16px 0 0;
  max-width: 52ch;
}

/* ---- Selling points --------------------------------------------- */

/* Full-width row beneath the copy and buttons. */
.promo__points {
  position: relative;
  z-index: 1;
  list-style: none;
  margin: 44px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 16px;
}

.promo__point-item { display: flex; }

.promo__point {
  position: relative;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  width: 100%;
  padding: 16px 18px;
  border: 1px solid rgba(243, 239, 230, 0.16);
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(2px);
}

/* A point with a link behind it lifts on hover and shows its arrow. */
a.promo__point--link {
  text-decoration: none;
  color: inherit;
  transition: transform 0.25s ease, border-color 0.25s ease, background-color 0.25s ease;
}

a.promo__point--link:hover,
a.promo__point--link:focus-visible {
  transform: translateY(-3px);
  border-color: var(--promo-accent);
  background: rgba(0, 0, 0, 0.3);
}

a.promo__point--link:focus-visible { outline: 2px solid var(--promo-accent); outline-offset: 3px; }

.promo__point-arrow {
  position: absolute;
  right: 14px;
  bottom: 12px;
  font-size: 0.95rem;
  color: var(--promo-accent);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

a.promo__point--link:hover .promo__point-arrow,
a.promo__point--link:focus-visible .promo__point-arrow { opacity: 1; transform: translateX(0); }

.promo__point-icon { font-size: 1.3rem; line-height: 1.2; flex: none; }
.promo__point-text { display: block; }

.promo__point-heading {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.93rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--promo-ink);
}

.promo__point-body {
  display: block;
  margin-top: 3px;
  font-family: var(--font-sans);
  font-size: 0.86rem;
  line-height: 1.55;
  color: rgba(243, 239, 230, 0.76);
}

/* ---- Buttons ----------------------------------------------------- */

.promo__actions { position: relative; z-index: 1; }

.promo__ctas { display: flex; gap: 14px; flex-wrap: wrap; }

.promo--panel .promo__actions  { text-align: left; }
.promo--banner .promo__ctas    { justify-content: flex-end; }

.promo__footnote {
  margin: 14px 0 0;
  font-family: var(--font-sans);
  font-size: 0.82rem;
  line-height: 1.5;
  color: rgba(243, 239, 230, 0.68);
}

/* ---- Partner strip (sister venue) -------------------------------- */

.promo__partner {
  position: relative;
  z-index: 1;
  margin-top: 48px;
  padding: 24px 0 8px;
  border-top: 1px solid rgba(243, 239, 230, 0.18);
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.promo__partner-logo { height: 46px; width: auto; flex: none; }

.promo__partner-name {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--promo-accent);
}

.promo__partner-body {
  margin: 0;
  flex: 1 1 260px;
  font-family: var(--font-sans);
  font-size: 0.92rem;
  line-height: 1.6;
  color: rgba(243, 239, 230, 0.82);
}

.promo__partner-cta { flex: none; }

/* ---- Gold bar ---------------------------------------------------- */

.promo__gold-bar { position: relative; z-index: 1; height: 4px; background: var(--promo-accent); margin-top: 52px; }
.promo--banner .promo__gold-bar { margin-top: 0; }

/* ---- Ornaments --------------------------------------------------- */
/* Masked, not <img>, so one SVG tints itself to whatever the theme wants. */

/* Hidden by default: a theme opts in by setting --promo-ornament and
   switching its own corners on (see the Christmas block below). */
.promo__ornament {
  display: none;
  position: absolute;
  z-index: 0;
  width: 132px;
  height: 130px;
  pointer-events: none;
  opacity: var(--promo-ornament-opacity);
  background-color: var(--promo-ink);
  -webkit-mask-image: var(--promo-ornament);
          mask-image: var(--promo-ornament);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
}

.promo__ornament--tl { top: 0; left: 0; }
.promo__ornament--tr { top: 0; right: 0; transform: scaleX(-1); }
.promo__ornament--bl { bottom: 0; left: 0; transform: scaleY(-1); }
.promo__ornament--br { bottom: 0; right: 0; transform: scale(-1, -1); }

.promo--banner .promo__ornament { width: 84px; height: 82px; }

/* ---- Tree watermark --------------------------------------------- */
/* Sits behind the copy like the lion watermark elsewhere on the site. */

.promo__tree {
  display: none;
  position: absolute;
  right: 4%;
  bottom: 104px;          /* clear of the points row and the cookie widget */
  z-index: 0;
  width: clamp(165px, 19vw, 290px);
  aspect-ratio: 140 / 190;
  pointer-events: none;
  opacity: 0.19;
  background-color: var(--promo-accent);
  -webkit-mask-image: url('/assets/images/christmas-tree.svg?v=1');
          mask-image: url('/assets/images/christmas-tree.svg?v=1');
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-position: bottom center;
          mask-position: bottom center;
}

/* ---- Falling snow ------------------------------------------------ */
/* Two layers of real flakes, tiled from one SVG and scrolled — no JS. The far
   layer is smaller, slower and drifts the other way, so the fall reads as
   depth rather than one flat sheet of dots.

   This is the snow that carries on afterwards, so it stays hidden while the
   drift is building: until then every flake you can see is one that is going
   to land, and nothing falls straight through the pile. It arrives once the
   last flake has settled — see the settling-snow block below for the timing.
   Switched off entirely for anyone who asks for reduced motion. */

.promo__snow {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  background-image: url('/assets/images/snow-fall.svg?v=1');
  background-repeat: repeat;
  --promo-snow-tile-w: 340px;
  --promo-snow-tile-h: 416px;
  --promo-snow-dur:     189s;
  --promo-snow-dur-far: 200s;
  background-size: var(--promo-snow-tile-w) var(--promo-snow-tile-h);
  /* Both figures MUST be whole multiples of the tile, or the loop does not
     wrap — see the note on the keyframes below. */
  --promo-snow-travel: calc(var(--promo-snow-tile-h) * 10);
  --promo-snow-drift:  calc(var(--promo-snow-tile-w) * -1);
  animation: promo-snow var(--promo-snow-dur, 57s) linear infinite,
             promo-snow-arrive 7s ease-in var(--promo-ambient-delay, 30s) forwards;
}

/* The handover: the last flake lands at about 31s, so the background snow
   comes up under it rather than switching on to an empty sky. */
@keyframes promo-snow-arrive {
  to { opacity: 0.55; }
}

/* The far layer. */
.promo__snow::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.6;
  background-image: inherit;
  background-repeat: repeat;
  --promo-snow-tile-w: 218px;
  --promo-snow-tile-h: 266px;
  background-size: var(--promo-snow-tile-w) var(--promo-snow-tile-h);
  --promo-snow-travel: calc(var(--promo-snow-tile-h) * 6);
  --promo-snow-drift:  calc(var(--promo-snow-tile-w) * 1);
  animation: promo-snow var(--promo-snow-dur-far, 133s) linear infinite;
}

/* The end position has to land on an exact multiple of the tile in BOTH axes,
   or the loop restart is a visible jump. The vertical was always a whole tile
   so it wrapped cleanly, but the sideways drift used to be a flat -34px
   against a 340px tile: every cycle the near layer snapped 34px right, and
   the far layer 40px left on its own slower cycle. That is what read as the
   snow glitching sideways. Drift is now one whole tile across three or four
   tiles down, which wraps exactly.

   The counts are deliberately lopsided — one tile sideways against ten down
   for the near layer, six for the far. That keeps the slant where it always
   looked right (8% and 14%) while still landing on a whole tile. A shorter
   cycle would wrap just as cleanly but at a much steeper angle; the period
   itself is invisible, so there is no reason not to make it long. */
@keyframes promo-snow {
  from { background-position: 0 0; }
  to   { background-position: var(--promo-snow-drift, 0) var(--promo-snow-travel, 1248px); }
}

/* ---- Settling snow ----------------------------------------------- */
/* The drift is not a shape - it is the flakes themselves. Each one falls
   once, swaying as it goes, and stops where it lands. They are dealt out
   lowest-first over about twenty-five seconds, so the pile builds from the
   bottom up, and the resting positions are arranged into uneven mounds so
   what is left reads as a drift rather than a row. Flakes that land late sit
   brightest, the way fresh snow does on top of packed.

   fill-mode is `both`, not `forwards`: without the backwards half a flake
   would sit in its landed position all through its delay, then jump back up
   to fall again. */

.promo__pile {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.promo__flake {
  position: absolute;
  left: var(--x);
  bottom: calc(var(--y) * var(--promo-flake-scale, 1));
  z-index: 0;
  width:  calc(var(--size) * var(--promo-flake-scale, 1));
  height: calc(var(--size) * var(--promo-flake-scale, 1));
  margin-left: calc(var(--size) * var(--promo-flake-scale, 1) / -2);
  pointer-events: none;
  opacity: var(--o, 0.85);
  background-color: var(--promo-ink);
  -webkit-mask-image: url('/assets/images/snowflake.svg?v=1');
          mask-image: url('/assets/images/snowflake.svg?v=1');
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  animation: promo-flake calc(var(--dur, 6s) * var(--promo-fall-factor, 1))
             linear var(--delay, 0s) both;
}

/* How far above its resting place a flake starts. This MUST exceed the height
   of the section, or flakes pop into existence part-way down it and every one
   of them does so on the same line — which reads as a bright band across the
   middle of the panel. The section grows as it narrows and its content stacks:
   the panel measures 683px wide-screen but 823px at 901px and 1380px at 360px,
   and the banner 150px against 369px. So each breakpoint sets its own fall,
   with headroom, and a matching factor to hold the speed steady.

   --promo-fall-factor is always fall / 780px. Keep it that way, or the snow
   changes speed between breakpoints. --promo-mass-dur and
   --promo-ambient-delay follow the longest fall, so the packed layer and the
   background snow still arrive as the last flakes land. */
.promo--panel {
  --promo-flake-fall: 950px;
  --promo-fall-factor: 1.22;
  --promo-mass-dur: 36s;
  --promo-ambient-delay: 31s;
}

/* The banner's copy sits only 30px above its foot, so its snow is scaled to
   keep the pile clear of the text the way the panel keeps clear of the
   partner row. */
.promo--banner {
  --promo-flake-fall: 400px;
  --promo-fall-factor: 0.51;
  --promo-flake-scale: 0.42;
  --promo-mass-dur: 32s;
  --promo-ambient-delay: 27s;
}

/* Falls at a constant speed, drifting sideways as it goes. The vertical
   travel is linear in keyframe percentage on purpose: uneven spacing here is
   what made the flakes lurch and then snap to a halt on landing. */
@keyframes promo-flake {
  0% {
    transform: translate3d(var(--sway, 30px), calc(-1 * var(--promo-flake-fall, 780px)), 0)
               rotate(0deg);
  }
  25% {
    transform: translate3d(calc(var(--sway, 30px) * -0.62), calc(-0.75 * var(--promo-flake-fall, 780px)), 0)
               rotate(calc(var(--spin, 240deg) * 0.25));
  }
  50% {
    transform: translate3d(calc(var(--sway, 30px) * 0.48), calc(-0.5 * var(--promo-flake-fall, 780px)), 0)
               rotate(calc(var(--spin, 240deg) * 0.5));
  }
  75% {
    transform: translate3d(calc(var(--sway, 30px) * -0.3), calc(-0.25 * var(--promo-flake-fall, 780px)), 0)
               rotate(calc(var(--spin, 240deg) * 0.75));
  }
  100% {
    transform: translate3d(0, 0, 0) rotate(var(--spin, 240deg));
  }
}

/* ---- The mass the flakes fill in --------------------------------- */
/* Snow packs down as it piles up. This is that packed layer: it deepens in
   step with the flakes landing, and its top edge is generated from the same
   profile as their mounds, held just below the crest so the flakes always
   lace over it instead of being swallowed by it. */

.promo__pile::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 4px;              /* rests on the gold bar rather than hiding it */
  height: 0;
  opacity: 0.95;
  background-color: var(--promo-ink);
  -webkit-mask-image: url('/assets/images/snow-mass.svg?v=2');
          mask-image: url('/assets/images/snow-mass.svg?v=2');
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  -webkit-mask-position: bottom center;
          mask-position: bottom center;
  animation: promo-mass var(--promo-mass-dur, 34s) linear forwards;
}

/* Held flat until the first flakes are actually down, then deepening at the
   rate they land, so the mass never runs ahead of the snow making it. */
@keyframes promo-mass {
  0%, 22% { height: 0; }
  100%    { height: calc(46px * var(--promo-flake-scale, 1)); }
}

/* Where each flake comes to rest, and how long it takes to get there. */
.promo__flake:nth-child(1) { --x:24.4%; --y:-5px; --size:28px; --o:0.49; --dur:4.6s; --delay:0.2s; --sway:-31px; --spin:173deg; }
.promo__flake:nth-child(2) { --x:68.2%; --y:-5px; --size:23px; --o:0.56; --dur:7.0s; --delay:0.3s; --sway:-17px; --spin:250deg; }
.promo__flake:nth-child(3) { --x:95.8%; --y:-5px; --size:27px; --o:0.52; --dur:5.5s; --delay:0.8s; --sway:49px; --spin:264deg; }
.promo__flake:nth-child(4) { --x:14.0%; --y:-5px; --size:23px; --o:0.50; --dur:5.0s; --delay:0.2s; --sway:-43px; --spin:182deg; }
.promo__flake:nth-child(5) { --x:91.3%; --y:-5px; --size:27px; --o:0.46; --dur:5.6s; --delay:1.0s; --sway:28px; --spin:168deg; }
.promo__flake:nth-child(6) { --x:16.2%; --y:-5px; --size:27px; --o:0.47; --dur:7.3s; --delay:0.8s; --sway:-29px; --spin:341deg; }
.promo__flake:nth-child(7) { --x:87.1%; --y:-5px; --size:26px; --o:0.52; --dur:7.1s; --delay:1.5s; --sway:-19px; --spin:311deg; }
.promo__flake:nth-child(8) { --x:8.5%; --y:-5px; --size:26px; --o:0.52; --dur:6.8s; --delay:0.6s; --sway:42px; --spin:190deg; }
.promo__flake:nth-child(9) { --x:44.3%; --y:-4px; --size:25px; --o:0.45; --dur:6.7s; --delay:1.0s; --sway:-42px; --spin:125deg; }
.promo__flake:nth-child(10) { --x:97.3%; --y:-5px; --size:26px; --o:0.46; --dur:7.1s; --delay:0.7s; --sway:33px; --spin:420deg; }
.promo__flake:nth-child(11) { --x:25.5%; --y:-4px; --size:25px; --o:0.45; --dur:7.3s; --delay:1.0s; --sway:47px; --spin:283deg; }
.promo__flake:nth-child(12) { --x:0.5%; --y:-5px; --size:24px; --o:0.52; --dur:7.2s; --delay:1.8s; --sway:34px; --spin:164deg; }
.promo__flake:nth-child(13) { --x:79.9%; --y:-5px; --size:28px; --o:0.46; --dur:6.0s; --delay:1.4s; --sway:-45px; --spin:266deg; }
.promo__flake:nth-child(14) { --x:31.8%; --y:-4px; --size:26px; --o:0.56; --dur:6.0s; --delay:1.8s; --sway:-40px; --spin:117deg; }
.promo__flake:nth-child(15) { --x:37.9%; --y:-4px; --size:28px; --o:0.56; --dur:7.2s; --delay:0.9s; --sway:24px; --spin:359deg; }
.promo__flake:nth-child(16) { --x:65.5%; --y:-4px; --size:24px; --o:0.50; --dur:7.2s; --delay:1.4s; --sway:-19px; --spin:130deg; }
.promo__flake:nth-child(17) { --x:27.5%; --y:-4px; --size:26px; --o:0.55; --dur:4.8s; --delay:1.5s; --sway:-44px; --spin:447deg; }
.promo__flake:nth-child(18) { --x:67.6%; --y:-6px; --size:26px; --o:0.45; --dur:5.2s; --delay:2.3s; --sway:18px; --spin:176deg; }
.promo__flake:nth-child(19) { --x:50.1%; --y:-3px; --size:24px; --o:0.49; --dur:4.9s; --delay:1.6s; --sway:-17px; --spin:202deg; }
.promo__flake:nth-child(20) { --x:93.9%; --y:-5px; --size:29px; --o:0.50; --dur:5.8s; --delay:1.7s; --sway:52px; --spin:209deg; }
.promo__flake:nth-child(21) { --x:19.1%; --y:-4px; --size:26px; --o:0.57; --dur:6.5s; --delay:1.3s; --sway:17px; --spin:379deg; }
.promo__flake:nth-child(22) { --x:11.8%; --y:-4px; --size:28px; --o:0.44; --dur:6.7s; --delay:2.0s; --sway:-17px; --spin:174deg; }
.promo__flake:nth-child(23) { --x:69.8%; --y:-3px; --size:24px; --o:0.46; --dur:4.7s; --delay:2.5s; --sway:-37px; --spin:388deg; }
.promo__flake:nth-child(24) { --x:46.0%; --y:-3px; --size:24px; --o:0.47; --dur:5.6s; --delay:2.5s; --sway:29px; --spin:156deg; }
.promo__flake:nth-child(25) { --x:62.3%; --y:-4px; --size:28px; --o:0.49; --dur:6.2s; --delay:2.3s; --sway:-44px; --spin:432deg; }
.promo__flake:nth-child(26) { --x:53.4%; --y:-5px; --size:24px; --o:0.49; --dur:5.7s; --delay:2.3s; --sway:49px; --spin:190deg; }
.promo__flake:nth-child(27) { --x:77.1%; --y:-4px; --size:27px; --o:0.52; --dur:5.1s; --delay:2.2s; --sway:32px; --spin:117deg; }
.promo__flake:nth-child(28) { --x:99.5%; --y:-5px; --size:25px; --o:0.48; --dur:4.7s; --delay:2.5s; --sway:-18px; --spin:388deg; }
.promo__flake:nth-child(29) { --x:89.9%; --y:-5px; --size:27px; --o:0.50; --dur:7.3s; --delay:1.8s; --sway:-22px; --spin:450deg; }
.promo__flake:nth-child(30) { --x:5.1%; --y:-3px; --size:26px; --o:0.56; --dur:6.9s; --delay:2.8s; --sway:48px; --spin:208deg; }
.promo__flake:nth-child(31) { --x:94.8%; --y:-3px; --size:26px; --o:0.45; --dur:5.9s; --delay:2.6s; --sway:42px; --spin:380deg; }
.promo__flake:nth-child(32) { --x:41.7%; --y:-4px; --size:28px; --o:0.50; --dur:5.8s; --delay:2.6s; --sway:20px; --spin:342deg; }
.promo__flake:nth-child(33) { --x:48.2%; --y:-3px; --size:28px; --o:0.56; --dur:6.8s; --delay:2.2s; --sway:30px; --spin:249deg; }
.promo__flake:nth-child(34) { --x:17.2%; --y:-5px; --size:24px; --o:0.51; --dur:5.5s; --delay:2.9s; --sway:-37px; --spin:408deg; }
.promo__flake:nth-child(35) { --x:85.4%; --y:-6px; --size:23px; --o:0.55; --dur:4.6s; --delay:2.6s; --sway:43px; --spin:119deg; }
.promo__flake:nth-child(36) { --x:40.5%; --y:-5px; --size:25px; --o:0.54; --dur:4.6s; --delay:2.2s; --sway:26px; --spin:409deg; }
.promo__flake:nth-child(37) { --x:99.5%; --y:-3px; --size:29px; --o:0.43; --dur:6.1s; --delay:3.0s; --sway:20px; --spin:405deg; }
.promo__flake:nth-child(38) { --x:65.9%; --y:-5px; --size:25px; --o:0.48; --dur:6.3s; --delay:3.4s; --sway:18px; --spin:116deg; }
.promo__flake:nth-child(39) { --x:19.1%; --y:-2px; --size:27px; --o:0.46; --dur:7.3s; --delay:2.8s; --sway:51px; --spin:209deg; }
.promo__flake:nth-child(40) { --x:51.5%; --y:-4px; --size:26px; --o:0.55; --dur:6.6s; --delay:2.5s; --sway:-42px; --spin:289deg; }
.promo__flake:nth-child(41) { --x:74.3%; --y:-5px; --size:26px; --o:0.46; --dur:5.4s; --delay:3.2s; --sway:40px; --spin:121deg; }
.promo__flake:nth-child(42) { --x:55.8%; --y:-5px; --size:27px; --o:0.55; --dur:4.7s; --delay:3.4s; --sway:-42px; --spin:132deg; }
.promo__flake:nth-child(43) { --x:28.4%; --y:-3px; --size:24px; --o:0.57; --dur:7.0s; --delay:3.0s; --sway:26px; --spin:168deg; }
.promo__flake:nth-child(44) { --x:9.6%; --y:-4px; --size:23px; --o:0.53; --dur:5.9s; --delay:2.9s; --sway:-23px; --spin:409deg; }
.promo__flake:nth-child(45) { --x:1.9%; --y:-4px; --size:26px; --o:0.57; --dur:4.6s; --delay:3.9s; --sway:-35px; --spin:172deg; }
.promo__flake:nth-child(46) { --x:87.0%; --y:-3px; --size:25px; --o:0.45; --dur:6.1s; --delay:3.8s; --sway:49px; --spin:116deg; }
.promo__flake:nth-child(47) { --x:78.3%; --y:-6px; --size:25px; --o:0.44; --dur:4.7s; --delay:3.7s; --sway:37px; --spin:305deg; }
.promo__flake:nth-child(48) { --x:58.4%; --y:-4px; --size:23px; --o:0.44; --dur:5.3s; --delay:3.0s; --sway:-27px; --spin:231deg; }
.promo__flake:nth-child(49) { --x:7.7%; --y:-3px; --size:25px; --o:0.50; --dur:6.5s; --delay:3.8s; --sway:25px; --spin:329deg; }
.promo__flake:nth-child(50) { --x:78.7%; --y:-5px; --size:27px; --o:0.53; --dur:5.7s; --delay:3.3s; --sway:-37px; --spin:125deg; }
.promo__flake:nth-child(51) { --x:30.1%; --y:-4px; --size:24px; --o:0.43; --dur:7.3s; --delay:4.1s; --sway:-43px; --spin:224deg; }
.promo__flake:nth-child(52) { --x:60.9%; --y:-4px; --size:28px; --o:0.48; --dur:4.6s; --delay:3.3s; --sway:-52px; --spin:248deg; }
.promo__flake:nth-child(53) { --x:82.5%; --y:-4px; --size:28px; --o:0.55; --dur:4.8s; --delay:4.4s; --sway:22px; --spin:242deg; }
.promo__flake:nth-child(54) { --x:6.7%; --y:-4px; --size:27px; --o:0.46; --dur:5.7s; --delay:4.2s; --sway:-29px; --spin:197deg; }
.promo__flake:nth-child(55) { --x:89.8%; --y:-4px; --size:23px; --o:0.55; --dur:5.5s; --delay:3.7s; --sway:20px; --spin:406deg; }
.promo__flake:nth-child(56) { --x:49.5%; --y:-5px; --size:27px; --o:0.53; --dur:5.0s; --delay:3.9s; --sway:-20px; --spin:222deg; }
.promo__flake:nth-child(57) { --x:21.7%; --y:-4px; --size:24px; --o:0.48; --dur:7.4s; --delay:4.1s; --sway:-51px; --spin:245deg; }
.promo__flake:nth-child(58) { --x:13.4%; --y:-3px; --size:24px; --o:0.47; --dur:6.5s; --delay:4.5s; --sway:-17px; --spin:124deg; }
.promo__flake:nth-child(59) { --x:72.4%; --y:-4px; --size:25px; --o:0.46; --dur:7.3s; --delay:4.0s; --sway:17px; --spin:156deg; }
.promo__flake:nth-child(60) { --x:71.8%; --y:-4px; --size:26px; --o:0.48; --dur:7.1s; --delay:4.2s; --sway:-34px; --spin:197deg; }
.promo__flake:nth-child(61) { --x:39.2%; --y:-4px; --size:29px; --o:0.43; --dur:6.7s; --delay:4.7s; --sway:-24px; --spin:154deg; }
.promo__flake:nth-child(62) { --x:21.4%; --y:-3px; --size:29px; --o:0.43; --dur:7.3s; --delay:4.3s; --sway:26px; --spin:204deg; }
.promo__flake:nth-child(63) { --x:28.6%; --y:-3px; --size:29px; --o:0.45; --dur:6.8s; --delay:3.9s; --sway:-24px; --spin:433deg; }
.promo__flake:nth-child(64) { --x:36.7%; --y:-4px; --size:24px; --o:0.42; --dur:7.2s; --delay:4.6s; --sway:44px; --spin:232deg; }
.promo__flake:nth-child(65) { --x:57.9%; --y:-4px; --size:29px; --o:0.44; --dur:5.2s; --delay:4.8s; --sway:29px; --spin:127deg; }
.promo__flake:nth-child(66) { --x:42.7%; --y:-3px; --size:28px; --o:0.46; --dur:5.9s; --delay:4.5s; --sway:-40px; --spin:171deg; }
.promo__flake:nth-child(67) { --x:32.8%; --y:-3px; --size:24px; --o:0.57; --dur:5.9s; --delay:5.0s; --sway:-33px; --spin:211deg; }
.promo__flake:nth-child(68) { --x:81.6%; --y:-3px; --size:23px; --o:0.52; --dur:6.2s; --delay:5.0s; --sway:29px; --spin:204deg; }
.promo__flake:nth-child(69) { --x:56.1%; --y:-3px; --size:28px; --o:0.43; --dur:4.6s; --delay:4.6s; --sway:17px; --spin:221deg; }
.promo__flake:nth-child(70) { --x:36.3%; --y:-3px; --size:23px; --o:0.51; --dur:5.5s; --delay:4.6s; --sway:-47px; --spin:140deg; }
.promo__flake:nth-child(71) { --x:2.9%; --y:-2px; --size:27px; --o:0.55; --dur:5.5s; --delay:4.9s; --sway:-34px; --spin:349deg; }
.promo__flake:nth-child(72) { --x:61.4%; --y:-3px; --size:28px; --o:0.58; --dur:5.4s; --delay:5.0s; --sway:21px; --spin:407deg; }
.promo__flake:nth-child(73) { --x:9.0%; --y:2px; --size:25px; --o:0.57; --dur:7.2s; --delay:4.7s; --sway:25px; --spin:294deg; }
.promo__flake:nth-child(74) { --x:46.8%; --y:1px; --size:26px; --o:0.55; --dur:5.2s; --delay:5.1s; --sway:44px; --spin:298deg; }
.promo__flake:nth-child(75) { --x:17.6%; --y:2px; --size:26px; --o:0.59; --dur:5.8s; --delay:5.4s; --sway:-18px; --spin:367deg; }
.promo__flake:nth-child(76) { --x:71.3%; --y:2px; --size:24px; --o:0.54; --dur:5.1s; --delay:5.0s; --sway:49px; --spin:162deg; }
.promo__flake:nth-child(77) { --x:63.1%; --y:3px; --size:22px; --o:0.56; --dur:4.7s; --delay:5.7s; --sway:-29px; --spin:206deg; }
.promo__flake:nth-child(78) { --x:69.7%; --y:2px; --size:21px; --o:0.61; --dur:5.7s; --delay:5.3s; --sway:-17px; --spin:420deg; }
.promo__flake:nth-child(79) { --x:74.7%; --y:2px; --size:23px; --o:0.64; --dur:5.4s; --delay:6.0s; --sway:20px; --spin:228deg; }
.promo__flake:nth-child(80) { --x:83.9%; --y:2px; --size:26px; --o:0.49; --dur:4.9s; --delay:5.7s; --sway:-51px; --spin:232deg; }
.promo__flake:nth-child(81) { --x:62.3%; --y:3px; --size:22px; --o:0.63; --dur:6.3s; --delay:5.6s; --sway:-34px; --spin:174deg; }
.promo__flake:nth-child(82) { --x:60.1%; --y:3px; --size:24px; --o:0.58; --dur:6.5s; --delay:5.9s; --sway:-42px; --spin:433deg; }
.promo__flake:nth-child(83) { --x:74.1%; --y:2px; --size:24px; --o:0.64; --dur:5.8s; --delay:5.2s; --sway:23px; --spin:150deg; }
.promo__flake:nth-child(84) { --x:44.4%; --y:3px; --size:23px; --o:0.50; --dur:4.6s; --delay:5.3s; --sway:27px; --spin:381deg; }
.promo__flake:nth-child(85) { --x:34.3%; --y:2px; --size:24px; --o:0.59; --dur:7.3s; --delay:6.4s; --sway:-48px; --spin:311deg; }
.promo__flake:nth-child(86) { --x:99.4%; --y:2px; --size:24px; --o:0.53; --dur:4.8s; --delay:5.8s; --sway:38px; --spin:148deg; }
.promo__flake:nth-child(87) { --x:65.1%; --y:2px; --size:25px; --o:0.56; --dur:7.2s; --delay:5.6s; --sway:48px; --spin:147deg; }
.promo__flake:nth-child(88) { --x:77.0%; --y:3px; --size:25px; --o:0.60; --dur:4.9s; --delay:5.7s; --sway:32px; --spin:269deg; }
.promo__flake:nth-child(89) { --x:86.3%; --y:4px; --size:26px; --o:0.49; --dur:6.9s; --delay:6.2s; --sway:-31px; --spin:164deg; }
.promo__flake:nth-child(90) { --x:57.0%; --y:3px; --size:21px; --o:0.55; --dur:5.3s; --delay:6.0s; --sway:44px; --spin:221deg; }
.promo__flake:nth-child(91) { --x:39.0%; --y:3px; --size:25px; --o:0.55; --dur:5.9s; --delay:5.9s; --sway:-43px; --spin:378deg; }
.promo__flake:nth-child(92) { --x:1.0%; --y:4px; --size:21px; --o:0.61; --dur:7.3s; --delay:6.5s; --sway:-44px; --spin:197deg; }
.promo__flake:nth-child(93) { --x:6.1%; --y:2px; --size:22px; --o:0.57; --dur:5.8s; --delay:6.2s; --sway:-40px; --spin:422deg; }
.promo__flake:nth-child(94) { --x:33.4%; --y:2px; --size:25px; --o:0.56; --dur:7.0s; --delay:6.7s; --sway:34px; --spin:196deg; }
.promo__flake:nth-child(95) { --x:87.1%; --y:3px; --size:21px; --o:0.58; --dur:6.6s; --delay:6.2s; --sway:27px; --spin:264deg; }
.promo__flake:nth-child(96) { --x:17.2%; --y:4px; --size:22px; --o:0.53; --dur:5.2s; --delay:6.3s; --sway:29px; --spin:417deg; }
.promo__flake:nth-child(97) { --x:89.1%; --y:3px; --size:21px; --o:0.62; --dur:5.2s; --delay:6.5s; --sway:44px; --spin:394deg; }
.promo__flake:nth-child(98) { --x:66.6%; --y:4px; --size:22px; --o:0.63; --dur:5.1s; --delay:6.9s; --sway:45px; --spin:372deg; }
.promo__flake:nth-child(99) { --x:80.4%; --y:3px; --size:21px; --o:0.63; --dur:7.2s; --delay:6.5s; --sway:-26px; --spin:291deg; }
.promo__flake:nth-child(100) { --x:15.6%; --y:4px; --size:22px; --o:0.57; --dur:5.1s; --delay:7.1s; --sway:-40px; --spin:242deg; }
.promo__flake:nth-child(101) { --x:54.9%; --y:3px; --size:23px; --o:0.61; --dur:6.8s; --delay:6.7s; --sway:-34px; --spin:165deg; }
.promo__flake:nth-child(102) { --x:51.9%; --y:3px; --size:24px; --o:0.63; --dur:5.1s; --delay:7.0s; --sway:31px; --spin:159deg; }
.promo__flake:nth-child(103) { --x:92.5%; --y:4px; --size:21px; --o:0.63; --dur:7.1s; --delay:7.1s; --sway:-49px; --spin:359deg; }
.promo__flake:nth-child(104) { --x:98.2%; --y:3px; --size:22px; --o:0.62; --dur:4.7s; --delay:7.3s; --sway:41px; --spin:211deg; }
.promo__flake:nth-child(105) { --x:82.6%; --y:1px; --size:25px; --o:0.52; --dur:6.8s; --delay:7.1s; --sway:-41px; --spin:182deg; }
.promo__flake:nth-child(106) { --x:41.7%; --y:2px; --size:22px; --o:0.55; --dur:5.1s; --delay:7.2s; --sway:37px; --spin:414deg; }
.promo__flake:nth-child(107) { --x:69.3%; --y:2px; --size:22px; --o:0.68; --dur:6.2s; --delay:7.0s; --sway:-36px; --spin:273deg; }
.promo__flake:nth-child(108) { --x:40.4%; --y:4px; --size:26px; --o:0.61; --dur:5.9s; --delay:7.0s; --sway:-28px; --spin:387deg; }
.promo__flake:nth-child(109) { --x:51.7%; --y:4px; --size:25px; --o:0.57; --dur:6.4s; --delay:6.9s; --sway:-49px; --spin:285deg; }
.promo__flake:nth-child(110) { --x:93.9%; --y:2px; --size:21px; --o:0.63; --dur:5.6s; --delay:7.8s; --sway:40px; --spin:339deg; }
.promo__flake:nth-child(111) { --x:0.5%; --y:2px; --size:25px; --o:0.54; --dur:7.0s; --delay:7.9s; --sway:44px; --spin:357deg; }
.promo__flake:nth-child(112) { --x:15.0%; --y:4px; --size:23px; --o:0.61; --dur:5.3s; --delay:7.0s; --sway:46px; --spin:392deg; }
.promo__flake:nth-child(113) { --x:97.8%; --y:2px; --size:24px; --o:0.57; --dur:7.0s; --delay:7.0s; --sway:37px; --spin:418deg; }
.promo__flake:nth-child(114) { --x:94.7%; --y:4px; --size:23px; --o:0.52; --dur:5.2s; --delay:7.6s; --sway:-23px; --spin:110deg; }
.promo__flake:nth-child(115) { --x:61.5%; --y:3px; --size:22px; --o:0.61; --dur:4.9s; --delay:7.4s; --sway:-35px; --spin:243deg; }
.promo__flake:nth-child(116) { --x:94.9%; --y:4px; --size:25px; --o:0.56; --dur:7.4s; --delay:7.5s; --sway:-49px; --spin:363deg; }
.promo__flake:nth-child(117) { --x:31.3%; --y:4px; --size:24px; --o:0.55; --dur:4.9s; --delay:7.5s; --sway:-17px; --spin:218deg; }
.promo__flake:nth-child(118) { --x:36.4%; --y:3px; --size:23px; --o:0.52; --dur:7.1s; --delay:8.3s; --sway:48px; --spin:237deg; }
.promo__flake:nth-child(119) { --x:48.8%; --y:3px; --size:24px; --o:0.63; --dur:6.3s; --delay:8.5s; --sway:41px; --spin:438deg; }
.promo__flake:nth-child(120) { --x:29.5%; --y:3px; --size:21px; --o:0.57; --dur:6.2s; --delay:8.4s; --sway:-36px; --spin:317deg; }
.promo__flake:nth-child(121) { --x:57.4%; --y:3px; --size:21px; --o:0.58; --dur:5.0s; --delay:8.4s; --sway:18px; --spin:212deg; }
.promo__flake:nth-child(122) { --x:24.5%; --y:2px; --size:22px; --o:0.54; --dur:4.9s; --delay:8.2s; --sway:43px; --spin:254deg; }
.promo__flake:nth-child(123) { --x:66.7%; --y:4px; --size:23px; --o:0.69; --dur:7.1s; --delay:8.5s; --sway:-16px; --spin:232deg; }
.promo__flake:nth-child(124) { --x:2.9%; --y:2px; --size:25px; --o:0.55; --dur:6.9s; --delay:7.9s; --sway:30px; --spin:223deg; }
.promo__flake:nth-child(125) { --x:11.1%; --y:4px; --size:26px; --o:0.60; --dur:5.8s; --delay:7.8s; --sway:-47px; --spin:198deg; }
.promo__flake:nth-child(126) { --x:26.1%; --y:3px; --size:21px; --o:0.55; --dur:7.3s; --delay:8.9s; --sway:25px; --spin:408deg; }
.promo__flake:nth-child(127) { --x:22.3%; --y:2px; --size:26px; --o:0.61; --dur:5.4s; --delay:8.1s; --sway:30px; --spin:159deg; }
.promo__flake:nth-child(128) { --x:27.2%; --y:4px; --size:20px; --o:0.54; --dur:5.4s; --delay:8.4s; --sway:34px; --spin:159deg; }
.promo__flake:nth-child(129) { --x:30.5%; --y:3px; --size:22px; --o:0.69; --dur:4.6s; --delay:8.4s; --sway:25px; --spin:444deg; }
.promo__flake:nth-child(130) { --x:4.9%; --y:3px; --size:26px; --o:0.52; --dur:5.9s; --delay:8.8s; --sway:-20px; --spin:166deg; }
.promo__flake:nth-child(131) { --x:50.1%; --y:5px; --size:24px; --o:0.64; --dur:4.7s; --delay:8.6s; --sway:48px; --spin:186deg; }
.promo__flake:nth-child(132) { --x:76.4%; --y:2px; --size:21px; --o:0.51; --dur:5.4s; --delay:9.0s; --sway:34px; --spin:153deg; }
.promo__flake:nth-child(133) { --x:24.7%; --y:3px; --size:21px; --o:0.61; --dur:6.3s; --delay:8.3s; --sway:27px; --spin:200deg; }
.promo__flake:nth-child(134) { --x:52.7%; --y:3px; --size:20px; --o:0.56; --dur:4.9s; --delay:9.5s; --sway:34px; --spin:175deg; }
.promo__flake:nth-child(135) { --x:83.0%; --y:5px; --size:24px; --o:0.56; --dur:5.7s; --delay:8.5s; --sway:-26px; --spin:147deg; }
.promo__flake:nth-child(136) { --x:6.2%; --y:3px; --size:22px; --o:0.50; --dur:5.3s; --delay:9.0s; --sway:-42px; --spin:293deg; }
.promo__flake:nth-child(137) { --x:20.4%; --y:3px; --size:24px; --o:0.66; --dur:4.8s; --delay:9.3s; --sway:-51px; --spin:205deg; }
.promo__flake:nth-child(138) { --x:10.1%; --y:4px; --size:23px; --o:0.64; --dur:7.2s; --delay:9.5s; --sway:-48px; --spin:219deg; }
.promo__flake:nth-child(139) { --x:19.3%; --y:4px; --size:25px; --o:0.64; --dur:5.3s; --delay:9.2s; --sway:-40px; --spin:368deg; }
.promo__flake:nth-child(140) { --x:37.5%; --y:4px; --size:26px; --o:0.52; --dur:6.4s; --delay:8.7s; --sway:-35px; --spin:387deg; }
.promo__flake:nth-child(141) { --x:44.7%; --y:4px; --size:22px; --o:0.58; --dur:6.9s; --delay:9.3s; --sway:31px; --spin:405deg; }
.promo__flake:nth-child(142) { --x:12.1%; --y:4px; --size:26px; --o:0.66; --dur:5.0s; --delay:9.8s; --sway:46px; --spin:342deg; }
.promo__flake:nth-child(143) { --x:79.7%; --y:4px; --size:23px; --o:0.57; --dur:6.5s; --delay:9.8s; --sway:-43px; --spin:328deg; }
.promo__flake:nth-child(144) { --x:90.8%; --y:4px; --size:25px; --o:0.57; --dur:5.2s; --delay:9.9s; --sway:-34px; --spin:131deg; }
.promo__flake:nth-child(145) { --x:96.1%; --y:9px; --size:23px; --o:0.62; --dur:5.1s; --delay:9.7s; --sway:22px; --spin:168deg; }
.promo__flake:nth-child(146) { --x:76.5%; --y:9px; --size:18px; --o:0.66; --dur:6.4s; --delay:9.8s; --sway:51px; --spin:271deg; }
.promo__flake:nth-child(147) { --x:19.7%; --y:9px; --size:24px; --o:0.67; --dur:6.1s; --delay:9.4s; --sway:-40px; --spin:371deg; }
.promo__flake:nth-child(148) { --x:23.3%; --y:9px; --size:16px; --o:0.68; --dur:4.9s; --delay:10.3s; --sway:-35px; --spin:337deg; }
.promo__flake:nth-child(149) { --x:88.0%; --y:9px; --size:20px; --o:0.65; --dur:4.7s; --delay:9.7s; --sway:31px; --spin:329deg; }
.promo__flake:nth-child(150) { --x:56.0%; --y:9px; --size:21px; --o:0.69; --dur:6.4s; --delay:10.1s; --sway:42px; --spin:186deg; }
.promo__flake:nth-child(151) { --x:92.0%; --y:9px; --size:17px; --o:0.71; --dur:6.9s; --delay:9.7s; --sway:-28px; --spin:364deg; }
.promo__flake:nth-child(152) { --x:80.8%; --y:9px; --size:24px; --o:0.66; --dur:7.3s; --delay:10.4s; --sway:26px; --spin:331deg; }
.promo__flake:nth-child(153) { --x:0.7%; --y:9px; --size:23px; --o:0.61; --dur:7.4s; --delay:10.0s; --sway:46px; --spin:155deg; }
.promo__flake:nth-child(154) { --x:34.2%; --y:9px; --size:21px; --o:0.56; --dur:7.4s; --delay:9.8s; --sway:42px; --spin:131deg; }
.promo__flake:nth-child(155) { --x:6.6%; --y:10px; --size:24px; --o:0.65; --dur:6.3s; --delay:10.7s; --sway:17px; --spin:208deg; }
.promo__flake:nth-child(156) { --x:29.3%; --y:10px; --size:17px; --o:0.66; --dur:7.3s; --delay:10.5s; --sway:25px; --spin:295deg; }
.promo__flake:nth-child(157) { --x:17.7%; --y:11px; --size:19px; --o:0.56; --dur:6.2s; --delay:10.2s; --sway:-30px; --spin:184deg; }
.promo__flake:nth-child(158) { --x:53.9%; --y:9px; --size:18px; --o:0.68; --dur:7.2s; --delay:10.0s; --sway:-26px; --spin:192deg; }
.promo__flake:nth-child(159) { --x:42.1%; --y:9px; --size:21px; --o:0.67; --dur:6.0s; --delay:9.9s; --sway:24px; --spin:176deg; }
.promo__flake:nth-child(160) { --x:89.9%; --y:11px; --size:19px; --o:0.60; --dur:6.9s; --delay:11.1s; --sway:20px; --spin:402deg; }
.promo__flake:nth-child(161) { --x:48.4%; --y:10px; --size:20px; --o:0.64; --dur:6.9s; --delay:10.1s; --sway:-42px; --spin:238deg; }
.promo__flake:nth-child(162) { --x:44.2%; --y:9px; --size:20px; --o:0.68; --dur:6.8s; --delay:10.9s; --sway:-28px; --spin:114deg; }
.promo__flake:nth-child(163) { --x:2.0%; --y:9px; --size:22px; --o:0.65; --dur:4.7s; --delay:10.7s; --sway:-20px; --spin:438deg; }
.promo__flake:nth-child(164) { --x:81.7%; --y:9px; --size:23px; --o:0.67; --dur:6.7s; --delay:10.7s; --sway:18px; --spin:363deg; }
.promo__flake:nth-child(165) { --x:65.1%; --y:10px; --size:20px; --o:0.72; --dur:4.6s; --delay:10.7s; --sway:-42px; --spin:132deg; }
.promo__flake:nth-child(166) { --x:59.7%; --y:11px; --size:20px; --o:0.68; --dur:5.1s; --delay:10.9s; --sway:23px; --spin:223deg; }
.promo__flake:nth-child(167) { --x:83.5%; --y:11px; --size:25px; --o:0.64; --dur:5.6s; --delay:11.2s; --sway:26px; --spin:277deg; }
.promo__flake:nth-child(168) { --x:9.4%; --y:10px; --size:22px; --o:0.66; --dur:4.7s; --delay:11.7s; --sway:21px; --spin:367deg; }
.promo__flake:nth-child(169) { --x:26.6%; --y:9px; --size:20px; --o:0.77; --dur:7.1s; --delay:11.0s; --sway:-25px; --spin:395deg; }
.promo__flake:nth-child(170) { --x:38.4%; --y:9px; --size:24px; --o:0.54; --dur:7.1s; --delay:11.0s; --sway:23px; --spin:260deg; }
.promo__flake:nth-child(171) { --x:92.4%; --y:10px; --size:19px; --o:0.65; --dur:6.1s; --delay:10.7s; --sway:52px; --spin:446deg; }
.promo__flake:nth-child(172) { --x:11.6%; --y:11px; --size:21px; --o:0.70; --dur:5.2s; --delay:11.7s; --sway:25px; --spin:295deg; }
.promo__flake:nth-child(173) { --x:75.6%; --y:9px; --size:23px; --o:0.62; --dur:5.1s; --delay:10.9s; --sway:19px; --spin:214deg; }
.promo__flake:nth-child(174) { --x:15.2%; --y:10px; --size:19px; --o:0.60; --dur:7.2s; --delay:10.9s; --sway:36px; --spin:267deg; }
.promo__flake:nth-child(175) { --x:30.8%; --y:11px; --size:19px; --o:0.68; --dur:5.0s; --delay:12.0s; --sway:31px; --spin:203deg; }
.promo__flake:nth-child(176) { --x:55.7%; --y:9px; --size:23px; --o:0.63; --dur:6.5s; --delay:11.8s; --sway:-24px; --spin:146deg; }
.promo__flake:nth-child(177) { --x:78.1%; --y:10px; --size:21px; --o:0.56; --dur:6.5s; --delay:11.6s; --sway:35px; --spin:252deg; }
.promo__flake:nth-child(178) { --x:61.9%; --y:9px; --size:18px; --o:0.68; --dur:6.0s; --delay:11.5s; --sway:39px; --spin:328deg; }
.promo__flake:nth-child(179) { --x:21.2%; --y:10px; --size:20px; --o:0.61; --dur:4.7s; --delay:11.9s; --sway:42px; --spin:283deg; }
.promo__flake:nth-child(180) { --x:39.9%; --y:11px; --size:23px; --o:0.55; --dur:6.3s; --delay:12.0s; --sway:-25px; --spin:166deg; }
.promo__flake:nth-child(181) { --x:50.7%; --y:10px; --size:22px; --o:0.69; --dur:5.3s; --delay:11.6s; --sway:-41px; --spin:338deg; }
.promo__flake:nth-child(182) { --x:25.8%; --y:10px; --size:20px; --o:0.70; --dur:5.1s; --delay:12.5s; --sway:-22px; --spin:428deg; }
.promo__flake:nth-child(183) { --x:84.8%; --y:11px; --size:22px; --o:0.68; --dur:5.2s; --delay:12.3s; --sway:47px; --spin:364deg; }
.promo__flake:nth-child(184) { --x:57.0%; --y:10px; --size:21px; --o:0.70; --dur:7.3s; --delay:12.2s; --sway:26px; --spin:243deg; }
.promo__flake:nth-child(185) { --x:99.5%; --y:9px; --size:22px; --o:0.60; --dur:7.1s; --delay:12.7s; --sway:-28px; --spin:271deg; }
.promo__flake:nth-child(186) { --x:11.1%; --y:11px; --size:23px; --o:0.66; --dur:6.3s; --delay:12.5s; --sway:44px; --spin:254deg; }
.promo__flake:nth-child(187) { --x:48.4%; --y:10px; --size:22px; --o:0.62; --dur:7.1s; --delay:11.8s; --sway:-31px; --spin:217deg; }
.promo__flake:nth-child(188) { --x:73.9%; --y:10px; --size:20px; --o:0.66; --dur:6.7s; --delay:12.8s; --sway:40px; --spin:393deg; }
.promo__flake:nth-child(189) { --x:14.8%; --y:11px; --size:22px; --o:0.62; --dur:7.2s; --delay:12.6s; --sway:44px; --spin:393deg; }
.promo__flake:nth-child(190) { --x:36.7%; --y:11px; --size:20px; --o:0.60; --dur:6.1s; --delay:12.3s; --sway:34px; --spin:428deg; }
.promo__flake:nth-child(191) { --x:67.2%; --y:11px; --size:18px; --o:0.70; --dur:6.9s; --delay:12.7s; --sway:29px; --spin:360deg; }
.promo__flake:nth-child(192) { --x:18.6%; --y:11px; --size:20px; --o:0.69; --dur:6.6s; --delay:12.5s; --sway:-43px; --spin:430deg; }
.promo__flake:nth-child(193) { --x:38.9%; --y:11px; --size:22px; --o:0.65; --dur:7.1s; --delay:12.7s; --sway:22px; --spin:199deg; }
.promo__flake:nth-child(194) { --x:51.9%; --y:10px; --size:19px; --o:0.71; --dur:7.2s; --delay:12.5s; --sway:-19px; --spin:221deg; }
.promo__flake:nth-child(195) { --x:88.0%; --y:10px; --size:22px; --o:0.62; --dur:7.2s; --delay:13.1s; --sway:-42px; --spin:313deg; }
.promo__flake:nth-child(196) { --x:76.8%; --y:12px; --size:22px; --o:0.70; --dur:6.0s; --delay:13.1s; --sway:30px; --spin:264deg; }
.promo__flake:nth-child(197) { --x:60.8%; --y:10px; --size:21px; --o:0.69; --dur:5.2s; --delay:12.7s; --sway:25px; --spin:217deg; }
.promo__flake:nth-child(198) { --x:68.6%; --y:10px; --size:17px; --o:0.78; --dur:5.4s; --delay:13.4s; --sway:-24px; --spin:114deg; }
.promo__flake:nth-child(199) { --x:23.2%; --y:10px; --size:20px; --o:0.69; --dur:6.1s; --delay:12.7s; --sway:40px; --spin:356deg; }
.promo__flake:nth-child(200) { --x:43.9%; --y:11px; --size:24px; --o:0.63; --dur:6.6s; --delay:13.5s; --sway:-21px; --spin:190deg; }
.promo__flake:nth-child(201) { --x:94.9%; --y:11px; --size:21px; --o:0.59; --dur:6.5s; --delay:13.3s; --sway:-16px; --spin:384deg; }
.promo__flake:nth-child(202) { --x:27.6%; --y:10px; --size:17px; --o:0.72; --dur:6.1s; --delay:13.7s; --sway:39px; --spin:190deg; }
.promo__flake:nth-child(203) { --x:72.6%; --y:10px; --size:19px; --o:0.72; --dur:5.3s; --delay:12.9s; --sway:-20px; --spin:437deg; }
.promo__flake:nth-child(204) { --x:46.9%; --y:11px; --size:21px; --o:0.58; --dur:7.3s; --delay:13.3s; --sway:41px; --spin:357deg; }
.promo__flake:nth-child(205) { --x:9.5%; --y:11px; --size:22px; --o:0.63; --dur:5.8s; --delay:13.7s; --sway:-35px; --spin:152deg; }
.promo__flake:nth-child(206) { --x:5.1%; --y:11px; --size:24px; --o:0.68; --dur:5.5s; --delay:13.2s; --sway:-31px; --spin:393deg; }
.promo__flake:nth-child(207) { --x:96.0%; --y:10px; --size:22px; --o:0.75; --dur:5.8s; --delay:13.5s; --sway:18px; --spin:443deg; }
.promo__flake:nth-child(208) { --x:5.9%; --y:11px; --size:24px; --o:0.69; --dur:5.5s; --delay:13.6s; --sway:36px; --spin:126deg; }
.promo__flake:nth-child(209) { --x:66.0%; --y:10px; --size:18px; --o:0.74; --dur:5.4s; --delay:13.8s; --sway:32px; --spin:238deg; }
.promo__flake:nth-child(210) { --x:34.2%; --y:12px; --size:21px; --o:0.72; --dur:5.8s; --delay:13.3s; --sway:-18px; --spin:363deg; }
.promo__flake:nth-child(211) { --x:1.4%; --y:11px; --size:25px; --o:0.67; --dur:5.9s; --delay:13.9s; --sway:-20px; --spin:309deg; }
.promo__flake:nth-child(212) { --x:62.7%; --y:11px; --size:17px; --o:0.78; --dur:5.4s; --delay:13.6s; --sway:-18px; --spin:371deg; }
.promo__flake:nth-child(213) { --x:84.3%; --y:11px; --size:24px; --o:0.61; --dur:6.3s; --delay:14.2s; --sway:46px; --spin:272deg; }
.promo__flake:nth-child(214) { --x:97.5%; --y:11px; --size:20px; --o:0.68; --dur:6.7s; --delay:13.5s; --sway:-22px; --spin:440deg; }
.promo__flake:nth-child(215) { --x:69.6%; --y:11px; --size:19px; --o:0.61; --dur:7.1s; --delay:13.6s; --sway:22px; --spin:298deg; }
.promo__flake:nth-child(216) { --x:31.4%; --y:12px; --size:19px; --o:0.65; --dur:4.6s; --delay:13.7s; --sway:48px; --spin:387deg; }
.promo__flake:nth-child(217) { --x:52.4%; --y:16px; --size:16px; --o:0.85; --dur:5.4s; --delay:14.3s; --sway:45px; --spin:306deg; }
.promo__flake:nth-child(218) { --x:40.2%; --y:16px; --size:22px; --o:0.57; --dur:4.9s; --delay:14.7s; --sway:-41px; --spin:276deg; }
.promo__flake:nth-child(219) { --x:65.6%; --y:16px; --size:14px; --o:0.80; --dur:6.7s; --delay:14.5s; --sway:-50px; --spin:314deg; }
.promo__flake:nth-child(220) { --x:38.8%; --y:16px; --size:21px; --o:0.66; --dur:5.2s; --delay:13.9s; --sway:-34px; --spin:355deg; }
.promo__flake:nth-child(221) { --x:21.4%; --y:16px; --size:19px; --o:0.71; --dur:5.7s; --delay:14.8s; --sway:51px; --spin:235deg; }
.promo__flake:nth-child(222) { --x:76.4%; --y:17px; --size:17px; --o:0.71; --dur:5.6s; --delay:13.9s; --sway:-51px; --spin:257deg; }
.promo__flake:nth-child(223) { --x:71.1%; --y:16px; --size:17px; --o:0.78; --dur:5.6s; --delay:15.0s; --sway:19px; --spin:267deg; }
.promo__flake:nth-child(224) { --x:78.4%; --y:16px; --size:22px; --o:0.60; --dur:4.7s; --delay:14.4s; --sway:-32px; --spin:411deg; }
.promo__flake:nth-child(225) { --x:23.0%; --y:17px; --size:14px; --o:0.80; --dur:6.7s; --delay:14.6s; --sway:-42px; --spin:243deg; }
.promo__flake:nth-child(226) { --x:0.5%; --y:17px; --size:19px; --o:0.70; --dur:6.6s; --delay:14.3s; --sway:-43px; --spin:147deg; }
.promo__flake:nth-child(227) { --x:5.1%; --y:16px; --size:18px; --o:0.59; --dur:6.9s; --delay:14.8s; --sway:41px; --spin:121deg; }
.promo__flake:nth-child(228) { --x:7.4%; --y:17px; --size:21px; --o:0.65; --dur:6.5s; --delay:14.6s; --sway:-40px; --spin:301deg; }
.promo__flake:nth-child(229) { --x:14.3%; --y:18px; --size:17px; --o:0.78; --dur:5.4s; --delay:15.2s; --sway:26px; --spin:393deg; }
.promo__flake:nth-child(230) { --x:18.5%; --y:17px; --size:19px; --o:0.69; --dur:6.7s; --delay:15.2s; --sway:-47px; --spin:132deg; }
.promo__flake:nth-child(231) { --x:60.0%; --y:17px; --size:21px; --o:0.70; --dur:6.5s; --delay:14.5s; --sway:29px; --spin:324deg; }
.promo__flake:nth-child(232) { --x:74.2%; --y:18px; --size:19px; --o:0.74; --dur:6.6s; --delay:15.6s; --sway:-22px; --spin:276deg; }
.promo__flake:nth-child(233) { --x:27.2%; --y:18px; --size:12px; --o:0.84; --dur:4.8s; --delay:15.6s; --sway:44px; --spin:235deg; }
.promo__flake:nth-child(234) { --x:57.0%; --y:17px; --size:18px; --o:0.67; --dur:6.5s; --delay:14.8s; --sway:51px; --spin:447deg; }
.promo__flake:nth-child(235) { --x:28.8%; --y:16px; --size:13px; --o:0.86; --dur:5.5s; --delay:15.5s; --sway:-30px; --spin:388deg; }
.promo__flake:nth-child(236) { --x:70.0%; --y:16px; --size:17px; --o:0.78; --dur:5.5s; --delay:15.7s; --sway:-36px; --spin:224deg; }
.promo__flake:nth-child(237) { --x:39.5%; --y:16px; --size:21px; --o:0.64; --dur:6.7s; --delay:15.3s; --sway:20px; --spin:381deg; }
.promo__flake:nth-child(238) { --x:80.5%; --y:16px; --size:20px; --o:0.61; --dur:6.7s; --delay:15.8s; --sway:47px; --spin:396deg; }
.promo__flake:nth-child(239) { --x:87.2%; --y:18px; --size:18px; --o:0.71; --dur:6.5s; --delay:15.5s; --sway:30px; --spin:243deg; }
.promo__flake:nth-child(240) { --x:1.6%; --y:16px; --size:19px; --o:0.70; --dur:7.4s; --delay:16.1s; --sway:-21px; --spin:250deg; }
.promo__flake:nth-child(241) { --x:34.2%; --y:17px; --size:18px; --o:0.74; --dur:5.6s; --delay:15.3s; --sway:39px; --spin:137deg; }
.promo__flake:nth-child(242) { --x:46.6%; --y:18px; --size:19px; --o:0.74; --dur:6.5s; --delay:15.6s; --sway:-42px; --spin:347deg; }
.promo__flake:nth-child(243) { --x:32.4%; --y:17px; --size:17px; --o:0.72; --dur:4.9s; --delay:16.3s; --sway:23px; --spin:368deg; }
.promo__flake:nth-child(244) { --x:77.2%; --y:18px; --size:17px; --o:0.74; --dur:5.0s; --delay:16.4s; --sway:36px; --spin:122deg; }
.promo__flake:nth-child(245) { --x:84.1%; --y:17px; --size:22px; --o:0.59; --dur:6.5s; --delay:16.3s; --sway:-38px; --spin:252deg; }
.promo__flake:nth-child(246) { --x:94.0%; --y:18px; --size:17px; --o:0.83; --dur:5.8s; --delay:16.1s; --sway:40px; --spin:176deg; }
.promo__flake:nth-child(247) { --x:98.7%; --y:18px; --size:20px; --o:0.62; --dur:6.4s; --delay:16.4s; --sway:41px; --spin:434deg; }
.promo__flake:nth-child(248) { --x:83.6%; --y:18px; --size:18px; --o:0.69; --dur:5.3s; --delay:15.7s; --sway:-33px; --spin:233deg; }
.promo__flake:nth-child(249) { --x:17.6%; --y:16px; --size:19px; --o:0.72; --dur:7.1s; --delay:16.3s; --sway:-44px; --spin:243deg; }
.promo__flake:nth-child(250) { --x:94.9%; --y:17px; --size:15px; --o:0.68; --dur:5.3s; --delay:15.8s; --sway:28px; --spin:260deg; }
.promo__flake:nth-child(251) { --x:49.9%; --y:18px; --size:17px; --o:0.72; --dur:6.2s; --delay:16.8s; --sway:18px; --spin:190deg; }
.promo__flake:nth-child(252) { --x:4.9%; --y:16px; --size:21px; --o:0.63; --dur:5.3s; --delay:16.5s; --sway:-52px; --spin:125deg; }
.promo__flake:nth-child(253) { --x:92.4%; --y:16px; --size:13px; --o:0.89; --dur:5.7s; --delay:16.2s; --sway:31px; --spin:211deg; }
.promo__flake:nth-child(254) { --x:13.1%; --y:17px; --size:16px; --o:0.77; --dur:7.0s; --delay:16.9s; --sway:29px; --spin:243deg; }
.promo__flake:nth-child(255) { --x:56.3%; --y:18px; --size:17px; --o:0.68; --dur:5.5s; --delay:17.0s; --sway:24px; --spin:234deg; }
.promo__flake:nth-child(256) { --x:89.2%; --y:18px; --size:17px; --o:0.71; --dur:5.4s; --delay:17.1s; --sway:27px; --spin:215deg; }
.promo__flake:nth-child(257) { --x:36.7%; --y:17px; --size:19px; --o:0.70; --dur:5.4s; --delay:16.8s; --sway:-36px; --spin:415deg; }
.promo__flake:nth-child(258) { --x:2.4%; --y:15px; --size:18px; --o:0.61; --dur:5.5s; --delay:16.2s; --sway:31px; --spin:418deg; }
.promo__flake:nth-child(259) { --x:9.2%; --y:16px; --size:19px; --o:0.67; --dur:7.1s; --delay:17.2s; --sway:-51px; --spin:170deg; }
.promo__flake:nth-child(260) { --x:65.9%; --y:17px; --size:14px; --o:0.86; --dur:5.0s; --delay:16.8s; --sway:-28px; --spin:409deg; }
.promo__flake:nth-child(261) { --x:60.0%; --y:17px; --size:17px; --o:0.73; --dur:6.4s; --delay:17.4s; --sway:-38px; --spin:136deg; }
.promo__flake:nth-child(262) { --x:61.6%; --y:17px; --size:15px; --o:0.73; --dur:5.0s; --delay:17.1s; --sway:48px; --spin:278deg; }
.promo__flake:nth-child(263) { --x:89.6%; --y:17px; --size:19px; --o:0.73; --dur:4.7s; --delay:16.8s; --sway:46px; --spin:286deg; }
.promo__flake:nth-child(264) { --x:62.7%; --y:17px; --size:14px; --o:0.90; --dur:6.8s; --delay:17.4s; --sway:22px; --spin:290deg; }
.promo__flake:nth-child(265) { --x:85.8%; --y:16px; --size:21px; --o:0.74; --dur:7.2s; --delay:16.9s; --sway:28px; --spin:264deg; }
.promo__flake:nth-child(266) { --x:27.2%; --y:18px; --size:15px; --o:0.90; --dur:7.3s; --delay:17.3s; --sway:46px; --spin:389deg; }
.promo__flake:nth-child(267) { --x:30.0%; --y:18px; --size:15px; --o:0.85; --dur:5.2s; --delay:16.9s; --sway:-47px; --spin:260deg; }
.promo__flake:nth-child(268) { --x:45.1%; --y:16px; --size:18px; --o:0.70; --dur:7.3s; --delay:16.9s; --sway:52px; --spin:119deg; }
.promo__flake:nth-child(269) { --x:54.5%; --y:17px; --size:13px; --o:0.92; --dur:6.5s; --delay:17.9s; --sway:25px; --spin:206deg; }
.promo__flake:nth-child(270) { --x:15.8%; --y:18px; --size:18px; --o:0.78; --dur:7.2s; --delay:17.9s; --sway:-46px; --spin:269deg; }
.promo__flake:nth-child(271) { --x:42.8%; --y:17px; --size:20px; --o:0.57; --dur:6.8s; --delay:17.4s; --sway:32px; --spin:339deg; }
.promo__flake:nth-child(272) { --x:49.6%; --y:17px; --size:18px; --o:0.65; --dur:6.8s; --delay:17.0s; --sway:36px; --spin:302deg; }
.promo__flake:nth-child(273) { --x:6.7%; --y:18px; --size:18px; --o:0.71; --dur:6.8s; --delay:17.2s; --sway:24px; --spin:176deg; }
.promo__flake:nth-child(274) { --x:47.6%; --y:18px; --size:21px; --o:0.68; --dur:7.2s; --delay:17.1s; --sway:23px; --spin:448deg; }
.promo__flake:nth-child(275) { --x:69.5%; --y:18px; --size:13px; --o:0.87; --dur:7.2s; --delay:18.3s; --sway:31px; --spin:204deg; }
.promo__flake:nth-child(276) { --x:99.5%; --y:18px; --size:17px; --o:0.76; --dur:7.0s; --delay:17.4s; --sway:36px; --spin:178deg; }
.promo__flake:nth-child(277) { --x:23.0%; --y:17px; --size:15px; --o:0.77; --dur:6.3s; --delay:17.7s; --sway:-33px; --spin:190deg; }
.promo__flake:nth-child(278) { --x:91.9%; --y:17px; --size:17px; --o:0.83; --dur:5.7s; --delay:17.9s; --sway:23px; --spin:156deg; }
.promo__flake:nth-child(279) { --x:19.6%; --y:18px; --size:21px; --o:0.69; --dur:4.7s; --delay:18.0s; --sway:-20px; --spin:280deg; }
.promo__flake:nth-child(280) { --x:97.8%; --y:17px; --size:19px; --o:0.71; --dur:7.2s; --delay:18.5s; --sway:35px; --spin:328deg; }
.promo__flake:nth-child(281) { --x:68.4%; --y:18px; --size:13px; --o:0.92; --dur:5.9s; --delay:17.6s; --sway:26px; --spin:293deg; }
.promo__flake:nth-child(282) { --x:12.3%; --y:18px; --size:20px; --o:0.72; --dur:5.6s; --delay:18.1s; --sway:26px; --spin:262deg; }
.promo__flake:nth-child(283) { --x:82.0%; --y:18px; --size:21px; --o:0.61; --dur:6.0s; --delay:17.8s; --sway:35px; --spin:228deg; }
.promo__flake:nth-child(284) { --x:26.4%; --y:18px; --size:15px; --o:0.79; --dur:7.1s; --delay:18.6s; --sway:27px; --spin:353deg; }
.promo__flake:nth-child(285) { --x:55.3%; --y:18px; --size:15px; --o:0.71; --dur:5.8s; --delay:18.7s; --sway:50px; --spin:195deg; }
.promo__flake:nth-child(286) { --x:73.5%; --y:18px; --size:18px; --o:0.71; --dur:6.3s; --delay:18.8s; --sway:-27px; --spin:237deg; }
.promo__flake:nth-child(287) { --x:44.0%; --y:18px; --size:19px; --o:0.65; --dur:6.3s; --delay:18.5s; --sway:38px; --spin:429deg; }
.promo__flake:nth-child(288) { --x:35.7%; --y:18px; --size:19px; --o:0.66; --dur:6.8s; --delay:19.0s; --sway:-40px; --spin:364deg; }
.promo__flake:nth-child(289) { --x:94.6%; --y:23px; --size:12px; --o:0.91; --dur:5.1s; --delay:18.2s; --sway:31px; --spin:160deg; }
.promo__flake:nth-child(290) { --x:61.1%; --y:23px; --size:14px; --o:0.87; --dur:5.2s; --delay:18.4s; --sway:-25px; --spin:172deg; }
.promo__flake:nth-child(291) { --x:34.7%; --y:23px; --size:15px; --o:0.76; --dur:7.1s; --delay:18.9s; --sway:-39px; --spin:320deg; }
.promo__flake:nth-child(292) { --x:9.6%; --y:23px; --size:15px; --o:0.84; --dur:6.9s; --delay:19.3s; --sway:18px; --spin:217deg; }
.promo__flake:nth-child(293) { --x:11.3%; --y:22px; --size:16px; --o:0.84; --dur:6.0s; --delay:19.0s; --sway:23px; --spin:317deg; }
.promo__flake:nth-child(294) { --x:79.6%; --y:23px; --size:20px; --o:0.69; --dur:5.7s; --delay:19.4s; --sway:-27px; --spin:134deg; }
.promo__flake:nth-child(295) { --x:8.6%; --y:24px; --size:18px; --o:0.74; --dur:6.7s; --delay:19.1s; --sway:-38px; --spin:243deg; }
.promo__flake:nth-child(296) { --x:6.9%; --y:23px; --size:17px; --o:0.67; --dur:6.3s; --delay:18.8s; --sway:48px; --spin:421deg; }
.promo__flake:nth-child(297) { --x:87.6%; --y:24px; --size:15px; --o:0.74; --dur:6.0s; --delay:19.6s; --sway:31px; --spin:362deg; }
.promo__flake:nth-child(298) { --x:54.4%; --y:24px; --size:13px; --o:0.81; --dur:5.0s; --delay:19.6s; --sway:39px; --spin:123deg; }
.promo__flake:nth-child(299) { --x:49.4%; --y:24px; --size:15px; --o:0.76; --dur:5.6s; --delay:18.7s; --sway:51px; --spin:421deg; }
.promo__flake:nth-child(300) { --x:95.8%; --y:23px; --size:16px; --o:0.81; --dur:5.8s; --delay:18.9s; --sway:19px; --spin:180deg; }
.promo__flake:nth-child(301) { --x:76.8%; --y:24px; --size:17px; --o:0.80; --dur:4.9s; --delay:19.1s; --sway:-26px; --spin:398deg; }
.promo__flake:nth-child(302) { --x:75.4%; --y:24px; --size:15px; --o:0.81; --dur:6.1s; --delay:19.0s; --sway:16px; --spin:447deg; }
.promo__flake:nth-child(303) { --x:60.0%; --y:23px; --size:16px; --o:0.78; --dur:5.3s; --delay:20.1s; --sway:-43px; --spin:382deg; }
.promo__flake:nth-child(304) { --x:45.3%; --y:24px; --size:19px; --o:0.67; --dur:5.4s; --delay:19.2s; --sway:26px; --spin:123deg; }
.promo__flake:nth-child(305) { --x:61.4%; --y:24px; --size:13px; --o:0.89; --dur:7.4s; --delay:20.1s; --sway:-45px; --spin:380deg; }
.promo__flake:nth-child(306) { --x:80.9%; --y:23px; --size:17px; --o:0.62; --dur:5.9s; --delay:19.3s; --sway:-21px; --spin:340deg; }
.promo__flake:nth-child(307) { --x:39.3%; --y:23px; --size:18px; --o:0.68; --dur:7.1s; --delay:19.6s; --sway:30px; --spin:248deg; }
.promo__flake:nth-child(308) { --x:70.2%; --y:25px; --size:13px; --o:0.82; --dur:7.0s; --delay:20.0s; --sway:-45px; --spin:162deg; }
.promo__flake:nth-child(309) { --x:99.3%; --y:24px; --size:16px; --o:0.75; --dur:7.3s; --delay:19.6s; --sway:33px; --spin:251deg; }
.promo__flake:nth-child(310) { --x:56.1%; --y:25px; --size:16px; --o:0.84; --dur:5.7s; --delay:20.2s; --sway:-29px; --spin:400deg; }
.promo__flake:nth-child(311) { --x:20.5%; --y:23px; --size:13px; --o:0.77; --dur:5.7s; --delay:19.5s; --sway:-31px; --spin:285deg; }
.promo__flake:nth-child(312) { --x:97.8%; --y:24px; --size:17px; --o:0.83; --dur:6.9s; --delay:20.0s; --sway:-37px; --spin:395deg; }
.promo__flake:nth-child(313) { --x:48.2%; --y:23px; --size:19px; --o:0.70; --dur:5.6s; --delay:20.6s; --sway:33px; --spin:180deg; }
.promo__flake:nth-child(314) { --x:40.8%; --y:24px; --size:20px; --o:0.68; --dur:6.4s; --delay:20.5s; --sway:24px; --spin:408deg; }
.promo__flake:nth-child(315) { --x:23.6%; --y:23px; --size:15px; --o:0.90; --dur:6.8s; --delay:20.5s; --sway:18px; --spin:360deg; }
.promo__flake:nth-child(316) { --x:86.5%; --y:23px; --size:16px; --o:0.81; --dur:6.4s; --delay:20.0s; --sway:-22px; --spin:415deg; }
.promo__flake:nth-child(317) { --x:89.2%; --y:25px; --size:15px; --o:0.78; --dur:6.5s; --delay:20.7s; --sway:-17px; --spin:252deg; }
.promo__flake:nth-child(318) { --x:3.8%; --y:23px; --size:20px; --o:0.65; --dur:6.0s; --delay:20.4s; --sway:23px; --spin:117deg; }
.promo__flake:nth-child(319) { --x:99.1%; --y:23px; --size:16px; --o:0.81; --dur:6.5s; --delay:20.7s; --sway:-41px; --spin:327deg; }
.promo__flake:nth-child(320) { --x:16.4%; --y:23px; --size:15px; --o:0.83; --dur:4.9s; --delay:20.9s; --sway:-51px; --spin:349deg; }
.promo__flake:nth-child(321) { --x:86.2%; --y:25px; --size:19px; --o:0.70; --dur:6.8s; --delay:20.9s; --sway:20px; --spin:297deg; }
.promo__flake:nth-child(322) { --x:18.6%; --y:24px; --size:15px; --o:0.82; --dur:6.9s; --delay:21.1s; --sway:-20px; --spin:116deg; }
.promo__flake:nth-child(323) { --x:31.6%; --y:24px; --size:13px; --o:0.88; --dur:7.3s; --delay:21.3s; --sway:-38px; --spin:414deg; }
.promo__flake:nth-child(324) { --x:51.0%; --y:25px; --size:13px; --o:0.86; --dur:7.3s; --delay:20.6s; --sway:-42px; --spin:334deg; }
.promo__flake:nth-child(325) { --x:0.8%; --y:23px; --size:17px; --o:0.64; --dur:6.2s; --delay:20.5s; --sway:41px; --spin:177deg; }
.promo__flake:nth-child(326) { --x:43.3%; --y:24px; --size:19px; --o:0.72; --dur:6.5s; --delay:20.9s; --sway:-29px; --spin:372deg; }
.promo__flake:nth-child(327) { --x:36.2%; --y:25px; --size:15px; --o:0.74; --dur:5.8s; --delay:21.3s; --sway:-48px; --spin:430deg; }
.promo__flake:nth-child(328) { --x:85.6%; --y:24px; --size:20px; --o:0.66; --dur:6.6s; --delay:20.7s; --sway:37px; --spin:440deg; }
.promo__flake:nth-child(329) { --x:81.6%; --y:25px; --size:20px; --o:0.63; --dur:4.9s; --delay:21.3s; --sway:42px; --spin:178deg; }
.promo__flake:nth-child(330) { --x:13.4%; --y:24px; --size:15px; --o:0.85; --dur:7.3s; --delay:21.2s; --sway:-44px; --spin:207deg; }
.promo__flake:nth-child(331) { --x:1.0%; --y:24px; --size:20px; --o:0.73; --dur:5.7s; --delay:21.4s; --sway:-29px; --spin:125deg; }
.promo__flake:nth-child(332) { --x:82.1%; --y:24px; --size:20px; --o:0.62; --dur:6.8s; --delay:21.8s; --sway:-17px; --spin:173deg; }
.promo__flake:nth-child(333) { --x:17.6%; --y:25px; --size:18px; --o:0.73; --dur:6.1s; --delay:21.8s; --sway:-23px; --spin:433deg; }
.promo__flake:nth-child(334) { --x:38.2%; --y:23px; --size:15px; --o:0.70; --dur:5.1s; --delay:22.0s; --sway:-28px; --spin:333deg; }
.promo__flake:nth-child(335) { --x:57.2%; --y:25px; --size:17px; --o:0.71; --dur:6.4s; --delay:21.1s; --sway:-20px; --spin:424deg; }
.promo__flake:nth-child(336) { --x:42.8%; --y:23px; --size:18px; --o:0.67; --dur:6.2s; --delay:21.4s; --sway:35px; --spin:165deg; }
.promo__flake:nth-child(337) { --x:37.5%; --y:23px; --size:18px; --o:0.70; --dur:6.1s; --delay:21.7s; --sway:-33px; --spin:287deg; }
.promo__flake:nth-child(338) { --x:73.3%; --y:24px; --size:14px; --o:0.87; --dur:5.2s; --delay:21.4s; --sway:43px; --spin:204deg; }
.promo__flake:nth-child(339) { --x:20.0%; --y:25px; --size:16px; --o:0.72; --dur:5.4s; --delay:21.5s; --sway:-51px; --spin:433deg; }
.promo__flake:nth-child(340) { --x:13.8%; --y:25px; --size:15px; --o:0.79; --dur:6.0s; --delay:21.6s; --sway:46px; --spin:190deg; }
.promo__flake:nth-child(341) { --x:47.4%; --y:25px; --size:16px; --o:0.67; --dur:6.5s; --delay:21.7s; --sway:47px; --spin:275deg; }
.promo__flake:nth-child(342) { --x:2.6%; --y:25px; --size:18px; --o:0.76; --dur:6.6s; --delay:22.2s; --sway:-41px; --spin:243deg; }
.promo__flake:nth-child(343) { --x:91.8%; --y:25px; --size:13px; --o:0.78; --dur:7.0s; --delay:22.3s; --sway:16px; --spin:144deg; }
.promo__flake:nth-child(344) { --x:71.5%; --y:25px; --size:15px; --o:0.86; --dur:6.3s; --delay:22.4s; --sway:-40px; --spin:397deg; }
.promo__flake:nth-child(345) { --x:73.8%; --y:25px; --size:17px; --o:0.76; --dur:6.5s; --delay:21.9s; --sway:-24px; --spin:266deg; }
.promo__flake:nth-child(346) { --x:5.7%; --y:26px; --size:17px; --o:0.80; --dur:6.2s; --delay:22.6s; --sway:43px; --spin:133deg; }
.promo__flake:nth-child(347) { --x:86.6%; --y:30px; --size:14px; --o:0.71; --dur:5.7s; --delay:22.5s; --sway:49px; --spin:255deg; }
.promo__flake:nth-child(348) { --x:99.1%; --y:30px; --size:16px; --o:0.92; --dur:5.1s; --delay:22.7s; --sway:22px; --spin:207deg; }
.promo__flake:nth-child(349) { --x:84.1%; --y:31px; --size:19px; --o:0.69; --dur:5.2s; --delay:22.1s; --sway:-20px; --spin:355deg; }
.promo__flake:nth-child(350) { --x:78.0%; --y:31px; --size:14px; --o:0.85; --dur:4.6s; --delay:22.3s; --sway:-46px; --spin:347deg; }
.promo__flake:nth-child(351) { --x:44.8%; --y:30px; --size:14px; --o:0.82; --dur:4.8s; --delay:23.0s; --sway:-34px; --spin:241deg; }
.promo__flake:nth-child(352) { --x:18.6%; --y:30px; --size:13px; --o:0.79; --dur:5.7s; --delay:22.4s; --sway:-33px; --spin:278deg; }
.promo__flake:nth-child(353) { --x:40.0%; --y:30px; --size:15px; --o:0.77; --dur:7.3s; --delay:22.6s; --sway:18px; --spin:308deg; }
.promo__flake:nth-child(354) { --x:4.5%; --y:31px; --size:14px; --o:0.75; --dur:5.4s; --delay:23.0s; --sway:52px; --spin:267deg; }
.promo__flake:nth-child(355) { --x:37.5%; --y:31px; --size:14px; --o:0.83; --dur:6.5s; --delay:22.4s; --sway:-47px; --spin:317deg; }
.promo__flake:nth-child(356) { --x:6.4%; --y:31px; --size:15px; --o:0.75; --dur:7.0s; --delay:22.7s; --sway:-37px; --spin:335deg; }
.promo__flake:nth-child(357) { --x:0.5%; --y:30px; --size:17px; --o:0.79; --dur:7.2s; --delay:23.4s; --sway:-21px; --spin:230deg; }
.promo__flake:nth-child(358) { --x:49.3%; --y:30px; --size:13px; --o:0.83; --dur:7.3s; --delay:23.0s; --sway:-19px; --spin:185deg; }
.promo__flake:nth-child(359) { --x:17.5%; --y:31px; --size:13px; --o:0.85; --dur:5.7s; --delay:23.3s; --sway:-34px; --spin:350deg; }
.promo__flake:nth-child(360) { --x:40.4%; --y:32px; --size:18px; --o:0.75; --dur:5.5s; --delay:22.6s; --sway:-43px; --spin:225deg; }
.promo__flake:nth-child(361) { --x:78.8%; --y:31px; --size:16px; --o:0.81; --dur:6.5s; --delay:22.8s; --sway:34px; --spin:446deg; }
.promo__flake:nth-child(362) { --x:48.4%; --y:31px; --size:17px; --o:0.71; --dur:7.1s; --delay:23.8s; --sway:24px; --spin:367deg; }
.promo__flake:nth-child(363) { --x:58.6%; --y:30px; --size:15px; --o:0.88; --dur:5.3s; --delay:22.8s; --sway:-51px; --spin:433deg; }
.promo__flake:nth-child(364) { --x:56.8%; --y:31px; --size:14px; --o:0.79; --dur:6.7s; --delay:23.1s; --sway:-43px; --spin:343deg; }
.promo__flake:nth-child(365) { --x:2.4%; --y:31px; --size:17px; --o:0.83; --dur:7.4s; --delay:22.8s; --sway:-24px; --spin:327deg; }
.promo__flake:nth-child(366) { --x:83.9%; --y:31px; --size:17px; --o:0.68; --dur:4.7s; --delay:23.9s; --sway:46px; --spin:331deg; }
.promo__flake:nth-child(367) { --x:98.1%; --y:31px; --size:13px; --o:0.83; --dur:5.9s; --delay:23.5s; --sway:38px; --spin:400deg; }
.promo__flake:nth-child(368) { --x:4.6%; --y:31px; --size:18px; --o:0.78; --dur:5.6s; --delay:23.2s; --sway:39px; --spin:439deg; }
.promo__flake:nth-child(369) { --x:96.8%; --y:31px; --size:14px; --o:0.84; --dur:7.1s; --delay:24.2s; --sway:-33px; --spin:403deg; }
.promo__flake:nth-child(370) { --x:20.6%; --y:31px; --size:13px; --o:0.82; --dur:5.6s; --delay:24.0s; --sway:43px; --spin:277deg; }
.promo__flake:nth-child(371) { --x:16.3%; --y:31px; --size:13px; --o:0.76; --dur:5.5s; --delay:24.3s; --sway:-31px; --spin:394deg; }
.promo__flake:nth-child(372) { --x:88.8%; --y:30px; --size:15px; --o:0.80; --dur:5.3s; --delay:24.0s; --sway:-20px; --spin:426deg; }
.promo__flake:nth-child(373) { --x:34.9%; --y:32px; --size:13px; --o:0.92; --dur:5.3s; --delay:24.4s; --sway:-17px; --spin:428deg; }
.promo__flake:nth-child(374) { --x:56.7%; --y:32px; --size:12px; --o:0.86; --dur:5.2s; --delay:23.8s; --sway:-40px; --spin:206deg; }
.promo__flake:nth-child(375) { --x:1.5%; --y:32px; --size:16px; --o:0.72; --dur:5.1s; --delay:24.0s; --sway:37px; --spin:322deg; }
.promo__flake:nth-child(376) { --x:45.4%; --y:30px; --size:17px; --o:0.78; --dur:6.5s; --delay:23.7s; --sway:-48px; --spin:138deg; }
.promo__flake:nth-child(377) { --x:75.7%; --y:31px; --size:14px; --o:0.86; --dur:5.3s; --delay:24.3s; --sway:-44px; --spin:391deg; }
.promo__flake:nth-child(378) { --x:82.6%; --y:32px; --size:15px; --o:0.75; --dur:5.9s; --delay:23.7s; --sway:18px; --spin:411deg; }
.promo__flake:nth-child(379) { --x:10.2%; --y:32px; --size:14px; --o:0.91; --dur:6.5s; --delay:23.9s; --sway:-27px; --spin:165deg; }
.promo__flake:nth-child(380) { --x:36.9%; --y:31px; --size:14px; --o:0.78; --dur:6.1s; --delay:24.6s; --sway:-26px; --spin:305deg; }
.promo__flake:nth-child(381) { --x:42.9%; --y:32px; --size:16px; --o:0.78; --dur:6.7s; --delay:24.1s; --sway:-28px; --spin:203deg; }
.promo__flake:nth-child(382) { --x:8.4%; --y:31px; --size:15px; --o:0.71; --dur:5.7s; --delay:25.0s; --sway:-26px; --spin:364deg; }
.promo__flake:nth-child(383) { --x:80.8%; --y:32px; --size:16px; --o:0.75; --dur:6.4s; --delay:24.6s; --sway:46px; --spin:332deg; }
.promo__flake:nth-child(384) { --x:36.3%; --y:32px; --size:15px; --o:0.79; --dur:5.8s; --delay:25.2s; --sway:-24px; --spin:148deg; }
.promo__flake:nth-child(385) { --x:12.3%; --y:32px; --size:14px; --o:0.78; --dur:6.9s; --delay:24.7s; --sway:-43px; --spin:119deg; }
.promo__flake:nth-child(386) { --x:42.6%; --y:32px; --size:18px; --o:0.68; --dur:6.2s; --delay:24.7s; --sway:35px; --spin:266deg; }
.promo__flake:nth-child(387) { --x:88.3%; --y:33px; --size:13px; --o:0.82; --dur:7.1s; --delay:24.4s; --sway:-51px; --spin:333deg; }
.promo__flake:nth-child(388) { --x:0.5%; --y:37px; --size:15px; --o:0.85; --dur:6.7s; --delay:25.1s; --sway:-32px; --spin:429deg; }
.promo__flake:nth-child(389) { --x:77.8%; --y:37px; --size:13px; --o:0.78; --dur:5.1s; --delay:24.7s; --sway:21px; --spin:354deg; }
.promo__flake:nth-child(390) { --x:41.8%; --y:38px; --size:15px; --o:0.74; --dur:6.0s; --delay:24.5s; --sway:23px; --spin:130deg; }
.promo__flake:nth-child(391) { --x:48.6%; --y:38px; --size:16px; --o:0.84; --dur:7.2s; --delay:25.1s; --sway:-41px; --spin:278deg; }
.promo__flake:nth-child(392) { --x:42.9%; --y:37px; --size:16px; --o:0.72; --dur:6.3s; --delay:25.6s; --sway:-26px; --spin:230deg; }
.promo__flake:nth-child(393) { --x:2.0%; --y:38px; --size:14px; --o:0.73; --dur:5.9s; --delay:25.3s; --sway:22px; --spin:429deg; }
.promo__flake:nth-child(394) { --x:43.3%; --y:39px; --size:16px; --o:0.83; --dur:4.7s; --delay:24.9s; --sway:-18px; --spin:352deg; }
.promo__flake:nth-child(395) { --x:85.3%; --y:38px; --size:17px; --o:0.71; --dur:7.2s; --delay:25.5s; --sway:17px; --spin:298deg; }
.promo__flake:nth-child(396) { --x:7.3%; --y:38px; --size:15px; --o:0.77; --dur:6.9s; --delay:25.4s; --sway:-52px; --spin:396deg; }
.promo__flake:nth-child(397) { --x:40.0%; --y:37px; --size:14px; --o:0.82; --dur:6.0s; --delay:25.7s; --sway:-31px; --spin:369deg; }
.promo__flake:nth-child(398) { --x:82.6%; --y:38px; --size:17px; --o:0.81; --dur:7.4s; --delay:24.9s; --sway:-31px; --spin:332deg; }
.promo__flake:nth-child(399) { --x:84.0%; --y:39px; --size:14px; --o:0.82; --dur:5.2s; --delay:25.7s; --sway:35px; --spin:169deg; }
.promo__flake:nth-child(400) { --x:45.1%; --y:38px; --size:13px; --o:0.80; --dur:7.2s; --delay:25.1s; --sway:45px; --spin:293deg; }
.promo__flake:nth-child(401) { --x:5.5%; --y:38px; --size:16px; --o:0.78; --dur:5.4s; --delay:26.2s; --sway:28px; --spin:326deg; }
.promo__flake:nth-child(402) { --x:3.3%; --y:39px; --size:15px; --o:0.87; --dur:7.3s; --delay:25.2s; --sway:-19px; --spin:135deg; }
.promo__flake:nth-child(403) { --x:8.7%; --y:38px; --size:14px; --o:0.77; --dur:5.5s; --delay:26.3s; --sway:33px; --spin:177deg; }
.promo__flake:nth-child(404) { --x:81.3%; --y:39px; --size:17px; --o:0.87; --dur:5.4s; --delay:26.3s; --sway:-16px; --spin:291deg; }
.promo__flake:nth-child(405) { --x:2.8%; --y:39px; --size:15px; --o:0.78; --dur:6.9s; --delay:25.8s; --sway:-40px; --spin:196deg; }
.promo__flake:nth-child(406) { --x:85.4%; --y:39px; --size:16px; --o:0.79; --dur:5.8s; --delay:26.6s; --sway:-24px; --spin:407deg; }
.promo__flake:nth-child(407) { --x:46.7%; --y:40px; --size:15px; --o:0.81; --dur:5.0s; --delay:25.8s; --sway:-22px; --spin:182deg; }
.promo__flake:nth-child(408) { --x:81.0%; --y:44px; --size:12px; --o:0.78; --dur:4.8s; --delay:26.6s; --sway:-41px; --spin:283deg; }
.promo__flake:nth-child(409) { --x:42.7%; --y:44px; --size:12px; --o:0.91; --dur:7.2s; --delay:26.0s; --sway:48px; --spin:131deg; }
.promo__flake:nth-child(410) { --x:0.5%; --y:45px; --size:11px; --o:0.79; --dur:5.2s; --delay:25.7s; --sway:32px; --spin:178deg; }
.promo__flake:nth-child(411) { --x:41.2%; --y:44px; --size:12px; --o:0.87; --dur:7.3s; --delay:26.3s; --sway:24px; --spin:137deg; }
.promo__flake:nth-child(412) { --x:1.1%; --y:45px; --size:11px; --o:0.91; --dur:6.1s; --delay:26.7s; --sway:16px; --spin:293deg; }
.promo__flake:nth-child(413) { --x:40.4%; --y:46px; --size:10px; --o:0.85; --dur:4.9s; --delay:26.1s; --sway:31px; --spin:366deg; }
.promo__flake:nth-child(414) { --x:84.9%; --y:44px; --size:12px; --o:0.91; --dur:7.1s; --delay:26.9s; --sway:-24px; --spin:186deg; }
.promo__flake:nth-child(415) { --x:82.1%; --y:44px; --size:12px; --o:0.80; --dur:5.2s; --delay:26.4s; --sway:31px; --spin:133deg; }
.promo__flake:nth-child(416) { --x:80.7%; --y:45px; --size:11px; --o:0.92; --dur:5.2s; --delay:26.8s; --sway:35px; --spin:380deg; }

/* ==================================================================
   THEMES
   ================================================================== */

/* Christmas — the poster's forest green, white ink, snowflake corners. */
.promo--christmas {
  --promo-bg:       #0B4131;
  --promo-bg-2:     #07301F;
  --promo-ink:      #FFFFFF;
  --promo-accent:   var(--gold);
  --promo-ornament: url('/assets/images/snowflake-corner.svg?v=2');
  --promo-ornament-opacity: 0.36;
}

.promo--christmas .promo__ornament { display: block; }
.promo--christmas .promo__snow     { display: block; }
.promo--christmas .promo__tree     { display: block; }
.promo--christmas .promo__pile     { display: block; }

.promo--christmas .promo__subheading,
.promo--christmas .promo__partner-body { color: rgba(255, 255, 255, 0.9); }
.promo--christmas .promo__body         { color: rgba(255, 255, 255, 0.8); }
.promo--christmas .promo__point        { border-color: rgba(255, 255, 255, 0.18); }

/* A warm pool of light behind the copy, so the panel has some depth rather
   than reading as one flat green block. */
.promo--christmas::before {
  content: "";
  position: absolute;
  left: -10%;
  top: -30%;
  width: 70%;
  height: 160%;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(201, 169, 110, 0.16) 0%, transparent 62%);
}

/* The eyebrow gets a small gold star, and the heading a touch more presence. */
.promo--christmas .promo__eyebrow::before {
  content: "✦";
  margin-right: 8px;
  font-size: 0.8em;
  vertical-align: 1px;
}

.promo--christmas .promo__heading {
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
  letter-spacing: -0.005em;
}

.promo--christmas .promo__partner { border-top-color: rgba(255, 255, 255, 0.22); }

/* World Cup / football — the existing pitch green. */
.promo--worldcup {
  --promo-bg:     #1f6b3b;
  --promo-bg-2:   #154f2c;
  --promo-ink:    var(--cream);
  --promo-accent: var(--gold);
}

/* Easter — soft teal against cream-gold. */
.promo--easter {
  --promo-bg:     #2E6F6B;
  --promo-bg-2:   #1E514E;
  --promo-ink:    var(--cream);
  --promo-accent: var(--gold);
}

/* Sport — the house teal. */
.promo--sport {
  --promo-bg:     var(--teal);
  --promo-bg-2:   var(--deep-teal);
  --promo-ink:    var(--cream);
  --promo-accent: var(--gold);
}

/* Plain — house navy. */
.promo--generic {
  --promo-bg:     var(--navy);
  --promo-bg-2:   var(--near-black);
  --promo-ink:    var(--cream);
  --promo-accent: var(--gold);
}

/* ==================================================================
   Responsive
   ================================================================== */

@media (max-width: 900px) {
  .promo--panel .promo__inner { grid-template-columns: 1fr; gap: 30px; }
  .promo--panel { padding-top: 60px; }
  .promo__ornament { width: 92px; height: 90px; }
  /* Stacked content makes both shapes taller — the panel reaches ~1150px in
     this band and the banner ~270px. */
  .promo--panel {
    --promo-flake-fall: 1300px;
    --promo-fall-factor: 1.67;
    --promo-mass-dur: 40s;
    --promo-ambient-delay: 35s;
  }
  .promo--banner {
    --promo-flake-fall: 450px;
    --promo-fall-factor: 0.58;
    --promo-mass-dur: 33s;
    --promo-ambient-delay: 28s;
  }
}

@media (max-width: 640px) {
  .promo--panel  { padding-top: 48px; }
  .promo--banner .promo__inner { flex-direction: column; align-items: flex-start; }
  .promo--banner .promo__ctas  { justify-content: flex-start; width: 100%; }
  .promo__ctas .btn { flex: 1 1 auto; text-align: center; }
  .promo__points { grid-template-columns: 1fr; }
  .promo__gold-bar { margin-top: 36px; }
  .promo__ornament { width: 68px; height: 66px; opacity: calc(var(--promo-ornament-opacity) * 0.7); }
  .promo__partner { margin-top: 32px; gap: 16px; }
  /* On a phone the tree would sit under the cards, so tuck it behind the
     heading instead, where there is genuinely empty space. */
  .promo__tree { right: -10px; bottom: auto; top: 12px; width: 120px; opacity: 0.13; }
  /* Only the tile sizes and the periods change; travel and drift are derived
     from the tile, so they stay whole multiples automatically. */
  .promo__snow {
    --promo-snow-tile-w: 232px;
    --promo-snow-tile-h: 284px;
    --promo-snow-dur:     129s;
    --promo-snow-dur-far: 145s;
  }
  .promo__snow::after { --promo-snow-tile-w: 158px; --promo-snow-tile-h: 193px; }
  /* The partner row's box bottoms out 40px above the foot on a phone, and
     it wraps, so its last line can sit right on that edge. 0.6 puts the
     pile's ceiling at ~34px and keeps a margin under it. */
  .promo--panel  { --promo-flake-scale: 0.60; }
  .promo--banner { --promo-flake-scale: 0.40; }
  /* Tallest of the lot: 1380px at 360px wide, and the banner 369px. */
  .promo--panel {
    --promo-flake-fall: 1600px;
    --promo-fall-factor: 2.05;
    --promo-mass-dur: 44s;
    --promo-ambient-delay: 39s;
  }
  .promo--banner {
    --promo-flake-fall: 550px;
    --promo-fall-factor: 0.71;
    --promo-mass-dur: 34s;
    --promo-ambient-delay: 29s;
  }
  .promo__flake:nth-child(2n) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .promo, .promo *, .promo *::before, .promo *::after {
    transition: none !important;
    animation: none !important;
  }
  a.promo__point--link:hover { transform: none; }
  .promo__flake { transform: none; }
  .promo__snow  { opacity: 0.55; }
  .promo__pile::before { height: calc(46px * var(--promo-flake-scale, 1)); }
}
