:root {
  --winter-blue: #0b2b9e;
  --winter-blue-2: #1635bd;
  --winter-text: #0f1940;
  --winter-muted: #5e6b8e;
  --winter-border: #dce5f5;
  --winter-soft: #f4f7ff;
}

.winter-gifts {
  position: relative;
  overflow: hidden;
  max-width: 1280px;
  margin: 0 auto;
  padding: 24px 28px 22px;
  border: 1px solid var(--winter-border);
  border-radius: 28px;
  background:
    url("./decor/winter-hills.svg") right -12px top -10px / 520px auto no-repeat,
    linear-gradient(180deg, #fbfdff 0%, #ffffff 100%);
  box-shadow: 0 10px 34px rgba(26, 61, 141, .04);
}

.winter-gifts * { box-sizing: border-box; }
.winter-gifts a { text-decoration: none; }

.winter-gifts__head {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 26px;
  align-items: end;
  margin-bottom: 16px;
}

.winter-gifts__eyebrow {
  margin-bottom: 6px;
  color: var(--winter-blue);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.winter-gifts h2,
.winter-gifts h3 {
  margin: 0;
  color: var(--winter-blue);
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: -.025em;
}

.winter-gifts h2 { font-size: clamp(30px, 2vw, 52px); line-height: 1.04; }
.winter-gifts h3 { font-size: clamp(26px, 1.6vw, 42px); line-height: 1.08; }

.winter-gifts__head p,
.winter-interest-head p {
  margin: 8px 0 0;
  color: var(--winter-muted);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(17px, 1vw, 24px);
  line-height: 1.28;
  max-width: 34em;
}

.winter-gifts__all,
.winter-gifts__business {
  position: relative;
  z-index: 2;
  color: var(--winter-blue);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
}

.winter-gifts__all {
  margin: 0 0 9px;
  font-size: clamp(18px, 1vw, 22px);
  white-space: nowrap;
}

.winter-gifts__business {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin: 14px 0 24px;
  font-size: clamp(18px, 1vw, 22px);
}

.winter-season-cards {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.winter-season-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(126px, 40%) minmax(0, 1fr) 44px;
  gap: 14px;
  align-items: center;
  min-width: 0;
  min-height: 156px;
  padding: 12px 14px 12px 10px;
  overflow: hidden;
  border: 1px solid var(--winter-border);
  border-radius: 22px;
  background: linear-gradient(100deg, #f7fbff 0%, #fff 64%);
  color: #0e235f;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.winter-season-card:hover {
  transform: translateY(-2px);
  border-color: #c8d7f3;
  box-shadow: 0 12px 30px rgba(12, 43, 158, .09);
}

.winter-season-card picture {
  display: flex;
  align-items: flex-end;
  height: 100%;
  min-width: 0;
}

.winter-season-card__art {
  position: static;
  width: 100%;
  height: 126px;
  object-fit: contain;
  object-position: left bottom;
  pointer-events: none;
  user-select: none;
}

.winter-season-card__title {
  position: static;
  color: #10235d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(17px, 1.1vw, 28px);
  font-weight: 700;
  line-height: 1.02;
  text-wrap: balance;
}

.winter-season-card__arrow {
  position: static;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid #dbe5f7;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  color: var(--winter-blue-2);
  font-size: 22px;
  line-height: 1;
  justify-self: end;
}

.winter-interest-head { position: relative; z-index: 2; margin-bottom: 14px; }

.winter-interest-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px 14px;
}

.winter-interest {
  min-width: 0;
  min-height: 56px;
  display: grid;
  grid-template-columns: 36px minmax(0,1fr) 18px;
  gap: 11px;
  align-items: center;
  padding: 8px 14px 8px 10px;
  border: 1px solid var(--winter-border);
  border-radius: 15px;
  background: rgba(255,255,255,.94);
  color: #12245c;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(15px, .9vw, 20px);
  font-weight: 700;
  line-height: 1.08;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.winter-interest:hover {
  transform: translateY(-1px);
  border-color: #c9d7f1;
  box-shadow: 0 8px 20px rgba(12, 43, 158, .06);
}

.winter-interest__icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: var(--winter-soft);
}

.winter-interest__icon img { width: 20px; height: 20px; display: block; }
.winter-interest__arrow { justify-self: end; color: var(--winter-blue); font-size: 18px; }

.winter-interest--sale {
  border-color: transparent;
  background: linear-gradient(135deg, #1734bd 0%, #081b9e 100%);
  color: #fff !important;
}
.winter-interest--sale .winter-interest__icon { background: rgba(255,255,255,.12); }
.winter-interest--sale .winter-interest__icon img { filter: brightness(0) invert(1); }
.winter-interest--sale > span:not(.winter-interest__icon),
.winter-interest--sale .winter-interest__arrow { color: #fff !important; }

.winter-interest-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 12px auto 0;
  padding: 13px 18px;
  border: 1px solid var(--winter-border);
  border-radius: 999px;
  background: #fff;
  color: var(--winter-blue);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
}
.winter-interest-toggle span { font-size: 22px; line-height: 1; }

.winter-gifts__snowflake {
  position: absolute;
  z-index: 1;
  opacity: .3;
  pointer-events: none;
}
.winter-gifts__snowflake--1 { width: 50px; right: 24%; top: 16px; }
.winter-gifts__snowflake--2 { width: 34px; right: 29%; top: 74px; opacity: .2; }

@media (max-width: 1380px) {
  .winter-gifts {
    max-width: 1180px;
    background-size: 460px auto;
  }
  .winter-season-cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .winter-season-card { min-height: 164px; }
  .winter-season-card__art { height: 134px; }
  .winter-interest-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}

@media (max-width: 1160px) {
  .winter-gifts { padding: 22px 22px 20px; }
  .winter-gifts__head { gap: 18px; }
  .winter-interest-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 920px) {
  .winter-gifts {
    padding: 22px 18px 18px;
    border-radius: 22px;
    background-size: 420px auto;
  }
  .winter-gifts__head { grid-template-columns: 1fr; gap: 8px; }
  .winter-gifts__all { justify-self: start; margin: 0; }
  .winter-season-cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .winter-season-card {
    min-height: 156px;
    grid-template-columns: minmax(112px, 42%) minmax(0,1fr) 40px;
    gap: 10px;
    padding: 10px 12px 10px 8px;
  }
  .winter-season-card__title { font-size: clamp(18px, 2.2vw, 24px); }
  .winter-season-card__art { height: 118px; }
  .winter-interest-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .winter-gifts__snowflake { display: none; }
}

@media (max-width: 699px) {
  .winter-gifts {
    padding: 18px 14px 16px;
    border-radius: 18px;
    background-size: 330px auto;
    background-position: right -30px top -6px;
  }
  .winter-gifts h2 { font-size: 31px; }
  .winter-gifts h3 { font-size: 27px; }
  .winter-gifts__head p,
  .winter-interest-head p { font-size: 17px; }
  .winter-season-cards {
    display: flex;
    gap: 12px;
    margin-right: -14px;
    padding-right: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .winter-season-cards::-webkit-scrollbar { display: none; }
  .winter-season-card {
    flex: 0 0 min(92vw, 560px);
    min-height: 182px;
    border-radius: 18px;
    scroll-snap-align: start;
    grid-template-columns: minmax(128px, 48%) minmax(0,1fr) 40px;
    gap: 12px;
  }
  .winter-season-card__art { height: 154px; }
  .winter-season-card__title { font-size: 22px; }
  .winter-season-card__arrow { width: 40px; height: 40px; }
  .winter-gifts__business { margin: 12px 0 20px; }
  .winter-interest-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 10px;
  }
  .winter-interest {
    min-height: 70px;
    padding: 10px 12px;
    grid-template-columns: 40px minmax(0,1fr) 16px;
    gap: 10px;
    font-size: 15px;
    border-radius: 16px;
  }
  .winter-interest__icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
  }
  .winter-interest__icon img { width: 22px; height: 22px; }
  .winter-interest__arrow { font-size: 19px; }
  .winter-interest--sale { grid-column: 1 / -1; }
  .winter-interest-grid.is-collapsed .winter-interest:nth-child(n+7):not(.winter-interest--sale) { display: none; }
  .winter-interest-toggle:not([hidden]) { display: inline-flex; }
}

@media (max-width: 390px) {
  .winter-season-card { flex-basis: 93vw; min-height: 170px; grid-template-columns: minmax(120px, 46%) minmax(0,1fr) 38px; }
  .winter-season-card__art { height: 142px; }
  .winter-season-card__title { font-size: 20px; }
  .winter-interest-grid { grid-template-columns: 1fr; }
  .winter-interest--sale { grid-column: auto; }
  .winter-interest-grid.is-collapsed .winter-interest:nth-child(n+7):not(.winter-interest--sale) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .winter-season-card,
  .winter-interest { transition: none; }
}

/* ==========================================================
   LESTER WINTER DESKTOP COMPACT V1.0.6
   Desktop/tablet only. Mobile <=699px intentionally untouched.
   ========================================================== */
@media (min-width: 700px) {
  .winter-gifts {
    max-width: 1180px;
    padding: 18px 24px 16px;
    border-radius: 24px;
    background-size: 430px auto;
    background-position: right -12px top -10px;
  }

  .winter-gifts__head {
    gap: 22px;
    margin-bottom: 12px;
  }

  .winter-gifts__eyebrow {
    margin-bottom: 4px;
    font-size: 13px;
    letter-spacing: .075em;
  }

  .winter-gifts h2 {
    font-size: 30px;
    line-height: 1.03;
  }

  .winter-gifts h3 {
    font-size: 29px;
    line-height: 1.04;
  }

  .winter-gifts__head p,
  .winter-interest-head p {
    margin-top: 6px;
    max-width: 720px;
    font-size: 16px;
    line-height: 1.22;
  }

  .winter-gifts__all {
    margin-bottom: 6px;
    font-size: 17px;
  }

  .winter-season-cards {
    gap: 10px;
  }

  .winter-season-card {
    min-height: 112px;
    height: 112px;
    grid-template-columns: minmax(82px, 34%) minmax(0, 1fr) 32px;
    gap: 9px;
    padding: 7px 9px 7px 7px;
    border-radius: 17px;
  }

  .winter-season-card picture {
    height: 100%;
  }

  .winter-season-card__art {
    height: 92px;
  }

  .winter-season-card__title {
    font-size: 17px;
    line-height: 1.02;
    letter-spacing: -.015em;
  }

  .winter-season-card__arrow {
    width: 32px;
    height: 32px;
    font-size: 18px;
  }

  .winter-gifts__business {
    margin: 9px 0 15px;
    font-size: 17px;
  }

  .winter-interest-head {
    margin-bottom: 9px;
  }

  .winter-interest-grid {
    gap: 7px 10px;
  }

  .winter-interest {
    min-height: 44px;
    grid-template-columns: 30px minmax(0, 1fr) 14px;
    gap: 8px;
    padding: 5px 9px 5px 7px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.05;
  }

  .winter-interest__icon {
    width: 30px;
    height: 30px;
    border-radius: 9px;
  }

  .winter-interest__icon img {
    width: 17px;
    height: 17px;
  }

  .winter-interest__arrow {
    font-size: 15px;
  }

  .winter-interest--sale,
  .winter-interest--sale:visited,
  .winter-interest--sale:hover,
  .winter-interest--sale:focus {
    color: #fff !important;
  }

  .winter-interest--sale > span:not(.winter-interest__icon),
  .winter-interest--sale .winter-interest__arrow {
    color: #fff !important;
  }

  .winter-gifts__snowflake--1 {
    width: 42px;
    top: 10px;
  }

  .winter-gifts__snowflake--2 {
    width: 28px;
    top: 58px;
  }
}

@media (min-width: 1200px) {
  .winter-season-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .winter-interest-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (min-width: 700px) and (max-width: 1199px) {
  .winter-season-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .winter-interest-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* ==========================================================
   LESTER WINTER OUTER SPACING V1.0.7
   Desktop/tablet only. Mobile <=699px intentionally untouched.
   Reduces whitespace above the winter block and between it and
   the following home catalog section. Internal block layout is unchanged.
   ========================================================== */
@media (min-width: 700px) {
  #lester-app-shell .lester-page__container:has(> .winter-gifts) {
    padding-top: 20px;
    padding-bottom: 16px;
  }

  #lester-app-shell .lester-page__container:has(> .winter-gifts) + .lester-home-catalog .lester-page__container {
    padding-top: 24px;
  }
}

/* ==========================================================
   LESTER WINTER MOBILE SPACING + SWIPE V1.0.9
   Mobile <=699px only. Desktop/tablet >=700px intentionally unchanged.
   ========================================================== */
@media (max-width: 699px) {
  #lester-app-shell .lester-home-model-support {
    padding-bottom: 8px;
  }

  #lester-app-shell .lester-page__container:has(> .winter-gifts) {
    padding-top: 8px;
    padding-bottom: 8px;
  }

  #lester-app-shell .lester-page__container:has(> .winter-gifts) + .lester-home-catalog .lester-page__container {
    padding-top: 18px;
  }

  .winter-season-cards {
    gap: 10px;
    padding-right: 28px;
    scroll-padding-inline: 0 28px;
    overscroll-behavior-inline: contain;
  }

  .winter-season-card {
    flex: 0 0 min(82vw, 440px);
    grid-template-columns: minmax(124px, 46%) minmax(0, 1fr);
    gap: 10px;
  }

  .winter-season-card__arrow {
    display: none;
  }

  .winter-swipe-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 18px;
    margin: 7px 0 0;
    user-select: none;
    pointer-events: none;
  }

  .winter-swipe-dot {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: #c7d3ef;
    opacity: .95;
    transform: scale(1);
    transition: width .22s ease, background .22s ease, transform .22s ease;
  }

  .winter-swipe-dot.is-active {
    width: 20px;
    background: #1635bd;
    animation: winterSwipeDotPulse 1.7s ease-in-out 2;
  }

  @keyframes winterSwipeDotPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.08); }
  }
}

@media (max-width: 390px) {
  .winter-season-card {
    flex-basis: 84vw;
    grid-template-columns: minmax(116px, 45%) minmax(0, 1fr);
  }
}

@media (min-width: 700px) {
  .winter-swipe-dots {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .winter-swipe-dot.is-active {
    animation: none;
  }
}

/* ==========================================================
   LESTER WINTER SEASON CARD COMPACT V1.0.10
   Reduce empty vertical space inside the four seasonal cards.
   All links, swipe dots, nudge logic and interest cards preserved.
   ========================================================== */

/* Desktop / tablet: tighter frame around the existing image + title. */
@media (min-width: 700px) {
  .winter-season-card {
    min-height: 92px;
    padding: 5px 8px 5px 6px;
    grid-template-columns: minmax(86px, 34%) minmax(0, 1fr) 32px;
    gap: 8px;
    align-items: center;
    border-radius: 18px;
  }

  .winter-season-card picture {
    height: 82px;
    align-items: center;
  }

  .winter-season-card__art {
    height: 78px;
    object-position: left center;
  }

  .winter-season-card__title {
    font-size: clamp(15px, .95vw, 21px);
    line-height: 1.02;
  }

  .winter-season-card__arrow {
    width: 30px;
    height: 30px;
    font-size: 17px;
  }
}

/* Mobile: preserve 82vw peek + dots, only remove excess height/padding. */
@media (max-width: 699px) {
  .winter-season-card {
    min-height: 144px;
    padding: 4px 8px 4px 6px;
    grid-template-columns: minmax(116px, 45%) minmax(0, 1fr);
    gap: 8px;
    align-items: center;
  }

  .winter-season-card picture {
    height: 134px;
    align-items: center;
  }

  .winter-season-card__art {
    height: 130px;
    object-position: left center;
  }

  .winter-season-card__title {
    font-size: 21px;
    line-height: 1.02;
  }
}

@media (max-width: 390px) {
  .winter-season-card {
    min-height: 138px;
    padding-top: 3px;
    padding-bottom: 3px;
    grid-template-columns: minmax(108px, 44%) minmax(0, 1fr);
  }

  .winter-season-card picture { height: 128px; }
  .winter-season-card__art { height: 124px; }
  .winter-season-card__title { font-size: 20px; }
}

/* ==========================================================
   LESTER WINTER SWIPE BORDER + SNOW FX V1.0.11
   1) Mobile: keep the seasonal card frame visible while swiping.
   2) Whole winter block: very light CSS-only snowfall/blizzard.
   No new network assets, no new JS, no layout shift.
   ========================================================== */

/* Safari/iOS can clip the outside 1px border at the scrollport edge.
   Draw a second border INSIDE the card so it remains visible at every
   horizontal scroll position. */
@media (max-width: 699px) {
  .winter-season-card {
    border-color: transparent;
    background-clip: padding-box;
    box-shadow: inset 0 0 0 1px var(--winter-border);
  }

  .winter-season-card:hover {
    transform: none;
    border-color: transparent;
    box-shadow: inset 0 0 0 1px var(--winter-border);
  }

  .winter-season-card:focus-visible {
    outline: 2px solid rgba(22, 53, 189, .28);
    outline-offset: -3px;
    box-shadow: inset 0 0 0 1px #bfcfed;
  }
}

/* Snow layers are absolute decorations only. They do not participate
   in layout and cannot intercept taps/clicks. */
.winter-gifts::before,
.winter-gifts::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 1;
}

.winter-interest-toggle {
  position: relative;
  z-index: 2;
}

@media (prefers-reduced-motion: no-preference) {
  .winter-gifts::before {
    inset: -34% -20%;
    opacity: .30;
    background-image:
      radial-gradient(circle, rgba(104, 150, 226, .55) 0 1px, transparent 1.55px),
      radial-gradient(circle, rgba(164, 193, 239, .48) 0 1.35px, transparent 1.9px),
      radial-gradient(circle, rgba(196, 216, 249, .62) 0 1.6px, transparent 2.15px);
    background-size: 47px 61px, 83px 107px, 139px 157px;
    background-position: 7px 13px, 31px 49px, 82px 21px;
    transform: translate3d(-3%, -13%, 0);
    animation: lesterWinterSnowfallV111 15s linear infinite;
    will-change: transform;
  }

  .winter-gifts::after {
    inset: -25% -28%;
    opacity: .10;
    background-image:
      repeating-linear-gradient(
        116deg,
        transparent 0 58px,
        rgba(132, 170, 233, .26) 59px 60px,
        transparent 61px 126px
      );
    background-size: 190px 82px;
    transform: translate3d(-7%, -1%, 0);
    animation: lesterWinterGustV111 9s ease-in-out infinite;
    will-change: transform, opacity;
  }

  .winter-gifts__snowflake--1 {
    animation: lesterWinterFlakeOneV111 7.5s ease-in-out infinite;
    will-change: transform;
  }

  .winter-gifts__snowflake--2 {
    animation: lesterWinterFlakeTwoV111 9.5s ease-in-out infinite;
    will-change: transform;
  }
}

@keyframes lesterWinterSnowfallV111 {
  0%   { transform: translate3d(-3%, -13%, 0); }
  100% { transform: translate3d(4%, 13%, 0); }
}

@keyframes lesterWinterGustV111 {
  0%, 100% { transform: translate3d(-7%, -1%, 0); opacity: .06; }
  48%      { transform: translate3d(7%, 2%, 0); opacity: .14; }
  62%      { transform: translate3d(4%, 3%, 0); opacity: .10; }
}

@keyframes lesterWinterFlakeOneV111 {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
  50%      { transform: translate3d(8px, 7px, 0) rotate(14deg); }
}

@keyframes lesterWinterFlakeTwoV111 {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
  50%      { transform: translate3d(-7px, 9px, 0) rotate(-12deg); }
}

@media (prefers-reduced-motion: reduce) {
  .winter-gifts::before,
  .winter-gifts::after,
  .winter-gifts__snowflake--1,
  .winter-gifts__snowflake--2 {
    animation: none !important;
    will-change: auto !important;
  }
  .winter-gifts::before { opacity: .10; }
  .winter-gifts::after { display: none; }
}


/* ==========================================================
   LESTER WINTER NATURAL SNOW V1.0.12
   Replace the regular "dot rows" with irregular multi-depth snow.
   CSS only: no new images, requests or JavaScript.
   V1.0.11 swipe-border fix remains untouched.
   ========================================================== */

/* Static paint is larger than the visible card so transform-only motion
   never exposes an empty edge. Every radial layer is positioned manually,
   therefore flakes do not fall in mathematical rows. */
@media (prefers-reduced-motion: no-preference) {
  .winter-gifts::before {
    inset: -18% -7%;
    opacity: .58;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-image:
      radial-gradient(circle 1.2px at 3% 9%,   rgba(91,137,214,.34) 0 98%, transparent 100%),
      radial-gradient(circle 1.8px at 8% 31%,  rgba(186,209,244,.66) 0 98%, transparent 100%),
      radial-gradient(circle 1px   at 12% 72%, rgba(113,155,222,.30) 0 98%, transparent 100%),
      radial-gradient(circle 2.2px at 17% 16%, rgba(220,232,251,.86) 0 98%, transparent 100%),
      radial-gradient(circle 1.4px at 19% 54%, rgba(136,173,230,.42) 0 98%, transparent 100%),
      radial-gradient(circle 1px   at 23% 88%, rgba(83,131,210,.28) 0 98%, transparent 100%),
      radial-gradient(circle 1.7px at 27% 38%, rgba(199,218,247,.72) 0 98%, transparent 100%),
      radial-gradient(circle 1.1px at 30% 7%,  rgba(105,150,220,.35) 0 98%, transparent 100%),
      radial-gradient(circle 2px   at 34% 66%, rgba(226,237,253,.92) 0 98%, transparent 100%),
      radial-gradient(circle 1.3px at 38% 24%, rgba(123,163,226,.38) 0 98%, transparent 100%),
      radial-gradient(circle 1.6px at 41% 81%, rgba(180,205,241,.60) 0 98%, transparent 100%),
      radial-gradient(circle .9px  at 44% 47%, rgba(74,124,207,.27) 0 98%, transparent 100%),
      radial-gradient(circle 2.3px at 48% 12%, rgba(214,229,250,.84) 0 98%, transparent 100%),
      radial-gradient(circle 1.2px at 51% 59%, rgba(112,155,223,.34) 0 98%, transparent 100%),
      radial-gradient(circle 1.8px at 55% 92%, rgba(190,212,245,.67) 0 98%, transparent 100%),
      radial-gradient(circle 1px   at 58% 33%, rgba(90,137,213,.30) 0 98%, transparent 100%),
      radial-gradient(circle 2.1px at 61% 73%, rgba(225,236,252,.90) 0 98%, transparent 100%),
      radial-gradient(circle 1.4px at 65% 18%, rgba(132,170,228,.43) 0 98%, transparent 100%),
      radial-gradient(circle 1.1px at 68% 52%, rgba(83,130,209,.29) 0 98%, transparent 100%),
      radial-gradient(circle 1.9px at 72% 84%, rgba(201,220,248,.74) 0 98%, transparent 100%),
      radial-gradient(circle 1.3px at 75% 6%,  rgba(104,149,219,.33) 0 98%, transparent 100%),
      radial-gradient(circle 2.4px at 79% 43%, rgba(226,237,253,.92) 0 98%, transparent 100%),
      radial-gradient(circle 1px   at 82% 69%, rgba(88,135,212,.29) 0 98%, transparent 100%),
      radial-gradient(circle 1.6px at 86% 22%, rgba(174,201,239,.58) 0 98%, transparent 100%),
      radial-gradient(circle 1.2px at 89% 91%, rgba(116,157,223,.34) 0 98%, transparent 100%),
      radial-gradient(circle 2px   at 92% 56%, rgba(214,229,250,.82) 0 98%, transparent 100%),
      radial-gradient(circle .9px  at 95% 13%, rgba(76,124,205,.25) 0 98%, transparent 100%),
      radial-gradient(circle 1.7px at 97% 78%, rgba(187,210,244,.64) 0 98%, transparent 100%),
      radial-gradient(circle 1.4px at 6%  61%, rgba(207,224,249,.70) 0 98%, transparent 100%),
      radial-gradient(circle 1.1px at 14% 43%, rgba(101,147,218,.32) 0 98%, transparent 100%),
      radial-gradient(circle 2px   at 25%  4%, rgba(223,235,252,.88) 0 98%, transparent 100%),
      radial-gradient(circle 1.5px at 32% 93%, rgba(147,182,234,.46) 0 98%, transparent 100%),
      radial-gradient(circle 1px   at 46% 71%, rgba(87,134,211,.28) 0 98%, transparent 100%),
      radial-gradient(circle 1.8px at 57%  4%, rgba(195,216,246,.69) 0 98%, transparent 100%),
      radial-gradient(circle 1.2px at 70% 63%, rgba(111,154,222,.34) 0 98%, transparent 100%),
      radial-gradient(circle 2.1px at 84% 94%, rgba(222,234,252,.88) 0 98%, transparent 100%),
      radial-gradient(circle 1.3px at 94% 36%, rgba(132,169,228,.40) 0 98%, transparent 100%);
    transform: translate3d(-1.2%, -10%, 0);
    animation: lesterWinterNaturalSnowV112 13.5s linear infinite;
    will-change: transform;
  }

  /* Intermittent wind: several independent translucent streaks at
     deliberately different angles/positions. No repeating stripe texture. */
  .winter-gifts::after {
    inset: -10% -12%;
    opacity: 0;
    background-repeat: no-repeat;
    background-image:
      linear-gradient(104deg, transparent 0 43%, rgba(115,157,225,.16) 48%, rgba(212,228,250,.20) 50%, transparent 55%),
      linear-gradient(108deg, transparent 0 45%, rgba(151,184,234,.15) 49%, transparent 53%),
      linear-gradient(99deg,  transparent 0 46%, rgba(91,139,214,.11) 49%, transparent 52%),
      linear-gradient(112deg, transparent 0 44%, rgba(196,216,246,.19) 49%, transparent 54%);
    background-size: 250px 34px, 340px 42px, 180px 24px, 290px 38px;
    background-position: 6% 26%, 63% 54%, 38% 76%, 82% 18%;
    transform: translate3d(-7%, 0, 0);
    animation: lesterWinterNaturalGustV112 10.8s ease-in-out infinite;
    will-change: transform, opacity;
  }

  .winter-gifts__snowflake--1 {
    animation: lesterWinterNaturalFlakeOneV112 9s ease-in-out infinite;
  }

  .winter-gifts__snowflake--2 {
    animation: lesterWinterNaturalFlakeTwoV112 11.5s ease-in-out infinite;
  }
}

@keyframes lesterWinterNaturalSnowV112 {
  0%   { transform: translate3d(-1.2%, -10%, 0); }
  24%  { transform: translate3d(.6%, -4%, 0); }
  51%  { transform: translate3d(-.4%, 2%, 0); }
  76%  { transform: translate3d(1.4%, 7%, 0); }
  100% { transform: translate3d(.2%, 12%, 0); }
}

@keyframes lesterWinterNaturalGustV112 {
  0%, 30%  { opacity: 0; transform: translate3d(-8%, 0, 0); }
  39%      { opacity: .10; }
  46%      { opacity: .26; transform: translate3d(1%, 1%, 0); }
  53%      { opacity: .14; transform: translate3d(6%, 2%, 0); }
  61%,100% { opacity: 0; transform: translate3d(10%, 3%, 0); }
}

@keyframes lesterWinterNaturalFlakeOneV112 {
  0%,100% { transform: translate3d(0,0,0) rotate(0deg); }
  35%     { transform: translate3d(5px,5px,0) rotate(9deg); }
  72%     { transform: translate3d(-3px,9px,0) rotate(-5deg); }
}

@keyframes lesterWinterNaturalFlakeTwoV112 {
  0%,100% { transform: translate3d(0,0,0) rotate(0deg); }
  42%     { transform: translate3d(-6px,7px,0) rotate(-10deg); }
  78%     { transform: translate3d(3px,11px,0) rotate(6deg); }
}

@media (prefers-reduced-motion: reduce) {
  .winter-gifts::before {
    opacity: .22;
    animation: none !important;
    transform: none !important;
  }
  .winter-gifts::after {
    display: none !important;
  }
  .winter-gifts__snowflake--1,
  .winter-gifts__snowflake--2 {
    animation: none !important;
  }
}




/* ==========================================================
   LESTER WINTER SNOW ENHANCED V1.0.13
   More visible, more natural and with clearly drawn snowflakes.
   CSS only: no new images over network and no new JavaScript.
   Keeps swipe/border/layout logic untouched.
   ========================================================== */

@media (prefers-reduced-motion: no-preference) {
  .winter-gifts::before {
    inset: -16% -8%;
    opacity: .82;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-image:
      radial-gradient(circle 1.1px at 3% 9%,   rgba(92,136,212,.34) 0 98%, transparent 100%),
      radial-gradient(circle 1.7px at 7% 29%,  rgba(213,226,248,.82) 0 98%, transparent 100%),
      radial-gradient(circle 2.2px at 9% 57%,  rgba(247,251,255,.98) 0 98%, transparent 100%),
      radial-gradient(circle 1.3px at 13% 73%, rgba(126,165,225,.46) 0 98%, transparent 100%),
      radial-gradient(circle 1.8px at 15% 16%, rgba(228,237,252,.88) 0 98%, transparent 100%),
      radial-gradient(circle 1px   at 18% 46%, rgba(95,139,214,.32) 0 98%, transparent 100%),
      radial-gradient(circle 2.4px at 21% 84%, rgba(250,252,255,1) 0 98%, transparent 100%),
      radial-gradient(circle 1.4px at 24% 7%,  rgba(149,181,233,.56) 0 98%, transparent 100%),
      radial-gradient(circle 1.9px at 27% 37%, rgba(223,234,251,.84) 0 98%, transparent 100%),
      radial-gradient(circle 1.2px at 30% 63%, rgba(113,154,222,.40) 0 98%, transparent 100%),
      radial-gradient(circle 2.1px at 33% 91%, rgba(243,248,255,.96) 0 98%, transparent 100%),
      radial-gradient(circle 1px   at 36% 19%, rgba(88,133,208,.30) 0 98%, transparent 100%),
      radial-gradient(circle 1.6px at 39% 49%, rgba(193,213,245,.72) 0 98%, transparent 100%),
      radial-gradient(circle 2.3px at 42% 78%, rgba(247,250,255,1) 0 98%, transparent 100%),
      radial-gradient(circle 1.1px at 45% 5%,  rgba(121,161,224,.44) 0 98%, transparent 100%),
      radial-gradient(circle 1.8px at 48% 33%, rgba(227,237,252,.86) 0 98%, transparent 100%),
      radial-gradient(circle 2px   at 52% 59%, rgba(251,252,255,1) 0 98%, transparent 100%),
      radial-gradient(circle 1.3px at 55% 87%, rgba(135,171,228,.50) 0 98%, transparent 100%),
      radial-gradient(circle 1.7px at 58% 14%, rgba(215,228,249,.80) 0 98%, transparent 100%),
      radial-gradient(circle .95px at 61% 41%, rgba(85,131,207,.28) 0 98%, transparent 100%),
      radial-gradient(circle 2.4px at 63% 74%, rgba(249,252,255,1) 0 98%, transparent 100%),
      radial-gradient(circle 1.4px at 66% 97%, rgba(152,183,233,.56) 0 98%, transparent 100%),
      radial-gradient(circle 1.9px at 69% 24%, rgba(224,235,251,.86) 0 98%, transparent 100%),
      radial-gradient(circle 1.2px at 72% 50%, rgba(117,157,223,.40) 0 98%, transparent 100%),
      radial-gradient(circle 2px   at 75% 80%, rgba(250,252,255,1) 0 98%, transparent 100%),
      radial-gradient(circle 1.1px at 78% 8%,  rgba(99,144,216,.34) 0 98%, transparent 100%),
      radial-gradient(circle 1.8px at 81% 36%, rgba(212,226,249,.80) 0 98%, transparent 100%),
      radial-gradient(circle 2.5px at 84% 67%, rgba(248,251,255,1) 0 98%, transparent 100%),
      radial-gradient(circle 1.4px at 87% 92%, rgba(140,175,230,.51) 0 98%, transparent 100%),
      radial-gradient(circle 1.7px at 90% 19%, rgba(228,238,252,.88) 0 98%, transparent 100%),
      radial-gradient(circle 1px   at 93% 48%, rgba(91,136,212,.30) 0 98%, transparent 100%),
      radial-gradient(circle 2.1px at 96% 77%, rgba(248,252,255,1) 0 98%, transparent 100%),
      radial-gradient(circle 1.2px at 5% 88%, rgba(164,191,237,.60) 0 98%, transparent 100%),
      radial-gradient(circle 1.6px at 11% 41%, rgba(204,220,247,.77) 0 98%, transparent 100%),
      radial-gradient(circle 1.1px at 17% 64%, rgba(104,149,219,.36) 0 98%, transparent 100%),
      radial-gradient(circle 1.9px at 26% 52%, rgba(237,244,254,.92) 0 98%, transparent 100%),
      radial-gradient(circle 1.3px at 35% 29%, rgba(144,178,231,.52) 0 98%, transparent 100%),
      radial-gradient(circle 1.7px at 41% 96%, rgba(216,229,249,.80) 0 98%, transparent 100%),
      radial-gradient(circle 1.1px at 49% 69%, rgba(109,152,221,.38) 0 98%, transparent 100%),
      radial-gradient(circle 1.6px at 56% 4%,  rgba(201,219,247,.75) 0 98%, transparent 100%),
      radial-gradient(circle 1.2px at 64% 44%, rgba(132,168,227,.48) 0 98%, transparent 100%),
      radial-gradient(circle 1.8px at 73% 60%, rgba(236,243,254,.92) 0 98%, transparent 100%),
      radial-gradient(circle 1.1px at 79% 28%, rgba(98,143,216,.35) 0 98%, transparent 100%),
      radial-gradient(circle 1.7px at 88% 57%, rgba(214,228,249,.82) 0 98%, transparent 100%),
      radial-gradient(circle 1.3px at 98% 13%, rgba(123,162,224,.46) 0 98%, transparent 100%);
    transform: translate3d(-1.4%, -11%, 0);
    animation: lesterWinterNaturalSnowV113 11.5s linear infinite;
    will-change: transform;
  }

  .winter-gifts::after {
    inset: -10% -12%;
    opacity: 0;
    background-repeat: no-repeat;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg stroke='%23dfeafe' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M13 3v20M3 13h20M5.9 5.9l14.2 14.2M20.1 5.9L5.9 20.1'/%3E%3C/g%3E%3Cg stroke='%23b7cef5' stroke-width='1.05' stroke-linecap='round'%3E%3Cpath d='M13 3l-1.4 2.2M13 3l1.4 2.2M13 23l-1.4-2.2M13 23l1.4-2.2M3 13l2.2-1.4M3 13l2.2 1.4M23 13l-2.2-1.4M23 13l-2.2 1.4M5.9 5.9l2.5.6M5.9 5.9l.6 2.5M20.1 20.1l-2.5-.6M20.1 20.1l-.6-2.5M20.1 5.9l-2.5.6M20.1 5.9l-.6 2.5M5.9 20.1l2.5-.6M5.9 20.1l.6-2.5'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cg stroke='%23eef5ff' stroke-width='1.55' stroke-linecap='round'%3E%3Cpath d='M11 2.5v17M2.5 11h17M4.6 4.6l12.8 12.8M17.4 4.6L4.6 17.4'/%3E%3C/g%3E%3Cg stroke='%23cadcf9' stroke-width='1' stroke-linecap='round'%3E%3Cpath d='M11 2.5l-1.1 1.8M11 2.5l1.1 1.8M11 19.5l-1.1-1.8M11 19.5l1.1-1.8M2.5 11l1.8-1.1M2.5 11l1.8 1.1M19.5 11l-1.8-1.1M19.5 11l-1.8 1.1'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg stroke='%23e4efff' stroke-width='1.45' stroke-linecap='round'%3E%3Cpath d='M10 2v16M2 10h16M4.3 4.3l11.4 11.4M15.7 4.3L4.3 15.7'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"),
      linear-gradient(104deg, transparent 0 43%, rgba(115,157,225,.13) 48%, rgba(212,228,250,.19) 50%, transparent 55%),
      linear-gradient(108deg, transparent 0 45%, rgba(151,184,234,.14) 49%, transparent 53%),
      linear-gradient(99deg,  transparent 0 46%, rgba(91,139,214,.10) 49%, transparent 52%),
      linear-gradient(112deg, transparent 0 44%, rgba(196,216,246,.18) 49%, transparent 54%);
    background-size: 38px 38px, 24px 24px, 18px 18px, 250px 34px, 340px 42px, 180px 24px, 290px 38px;
    background-position: 8% 18%, 64% 62%, 86% 27%, 6% 26%, 63% 54%, 38% 76%, 82% 18%;
    transform: translate3d(-7%, 0, 0);
    animation: lesterWinterNaturalGustV113 9.8s ease-in-out infinite;
    will-change: transform, opacity;
  }

  .winter-gifts__snowflake--1 {
    width: 68px;
    opacity: .62;
    filter: drop-shadow(0 2px 6px rgba(173,194,232,.2));
    animation: lesterWinterNaturalFlakeOneV113 8s ease-in-out infinite;
  }

  .winter-gifts__snowflake--2 {
    width: 44px;
    opacity: .48;
    filter: drop-shadow(0 2px 5px rgba(160,184,229,.15));
    animation: lesterWinterNaturalFlakeTwoV113 10.5s ease-in-out infinite;
  }
}

@keyframes lesterWinterNaturalSnowV113 {
  0%   { transform: translate3d(-1.4%, -11%, 0); }
  18%  { transform: translate3d(.4%, -6%, 0); }
  39%  { transform: translate3d(-.2%, -1%, 0); }
  63%  { transform: translate3d(1%, 4%, 0); }
  82%  { transform: translate3d(.2%, 8%, 0); }
  100% { transform: translate3d(1.4%, 12%, 0); }
}

@keyframes lesterWinterNaturalGustV113 {
  0%, 24%  { opacity: 0; transform: translate3d(-8%, 0, 0); }
  31%      { opacity: .10; }
  38%      { opacity: .30; transform: translate3d(0, .5%, 0); }
  45%      { opacity: .18; transform: translate3d(6%, 1.5%, 0); }
  53%      { opacity: 0; transform: translate3d(10%, 2%, 0); }
  74%      { opacity: 0; transform: translate3d(-4%, -1%, 0); }
  82%      { opacity: .12; }
  88%      { opacity: .24; transform: translate3d(4%, 1%, 0); }
  94%,100% { opacity: 0; transform: translate3d(9%, 2%, 0); }
}

@keyframes lesterWinterNaturalFlakeOneV113 {
  0%,100% { transform: translate3d(0,0,0) rotate(0deg); }
  28%     { transform: translate3d(7px,5px,0) rotate(11deg); }
  56%     { transform: translate3d(-2px,9px,0) rotate(-7deg); }
  82%     { transform: translate3d(4px,12px,0) rotate(6deg); }
}

@keyframes lesterWinterNaturalFlakeTwoV113 {
  0%,100% { transform: translate3d(0,0,0) rotate(0deg); }
  34%     { transform: translate3d(-5px,7px,0) rotate(-8deg); }
  68%     { transform: translate3d(3px,12px,0) rotate(5deg); }
}

@media (prefers-reduced-motion: reduce) {
  .winter-gifts::before,
  .winter-gifts::after,
  .winter-gifts__snowflake--1,
  .winter-gifts__snowflake--2 {
    animation: none !important;
  }
}


/* ==========================================================
   LESTER WINTER SNOW DENSE V1.0.16
   Snow-only visual override.
   - more small flakes
   - irregular distribution
   - two independent falling layers
   - embedded SVG flakes, no network requests
   - no JavaScript
   ========================================================== */

@media (prefers-reduced-motion: no-preference) {
  .winter-gifts::before,
  .winter-gifts::after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: 1;
  }

  /* Layer 1: dense fine snow, manually scattered to avoid rows. */
  .winter-gifts::before {
    inset: -20% -10%;
    opacity: .92;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-image:
      radial-gradient(circle 1.1px at 2% 7%,rgba(101,145,216,.38) 0 98%,transparent 100%),
      radial-gradient(circle 1.7px at 4% 19%,rgba(241,247,255,.96) 0 98%,transparent 100%),
      radial-gradient(circle 1.2px at 7% 35%,rgba(181,204,242,.70) 0 98%,transparent 100%),
      radial-gradient(circle 2px at 9% 53%,rgba(250,253,255,1) 0 98%,transparent 100%),
      radial-gradient(circle 1px at 11% 72%,rgba(111,153,221,.40) 0 98%,transparent 100%),
      radial-gradient(circle 1.6px at 13% 88%,rgba(222,234,251,.86) 0 98%,transparent 100%),
      radial-gradient(circle 1.3px at 16% 12%,rgba(145,178,232,.53) 0 98%,transparent 100%),
      radial-gradient(circle 1.9px at 18% 28%,rgba(248,251,255,1) 0 98%,transparent 100%),
      radial-gradient(circle 1.1px at 20% 45%,rgba(94,139,213,.34) 0 98%,transparent 100%),
      radial-gradient(circle 1.8px at 22% 64%,rgba(229,239,253,.90) 0 98%,transparent 100%),
      radial-gradient(circle 1.2px at 24% 81%,rgba(126,165,225,.46) 0 98%,transparent 100%),
      radial-gradient(circle 2.1px at 26% 95%,rgba(251,253,255,1) 0 98%,transparent 100%),
      radial-gradient(circle 1px at 29% 8%,rgba(96,141,214,.34) 0 98%,transparent 100%),
      radial-gradient(circle 1.6px at 31% 23%,rgba(204,220,247,.78) 0 98%,transparent 100%),
      radial-gradient(circle 1.2px at 33% 40%,rgba(118,158,222,.42) 0 98%,transparent 100%),
      radial-gradient(circle 1.9px at 35% 58%,rgba(247,251,255,1) 0 98%,transparent 100%),
      radial-gradient(circle 1.1px at 37% 76%,rgba(101,146,217,.36) 0 98%,transparent 100%),
      radial-gradient(circle 1.7px at 39% 91%,rgba(231,240,253,.91) 0 98%,transparent 100%),
      radial-gradient(circle 1.2px at 42% 14%,rgba(140,175,230,.52) 0 98%,transparent 100%),
      radial-gradient(circle 2px at 44% 31%,rgba(250,252,255,1) 0 98%,transparent 100%),
      radial-gradient(circle 1px at 46% 49%,rgba(91,137,212,.32) 0 98%,transparent 100%),
      radial-gradient(circle 1.6px at 48% 67%,rgba(214,228,249,.82) 0 98%,transparent 100%),
      radial-gradient(circle 1.2px at 50% 84%,rgba(129,167,226,.47) 0 98%,transparent 100%),
      radial-gradient(circle 1.9px at 52% 97%,rgba(248,251,255,1) 0 98%,transparent 100%),
      radial-gradient(circle 1.1px at 55% 10%,rgba(105,149,219,.38) 0 98%,transparent 100%),
      radial-gradient(circle 1.8px at 57% 26%,rgba(235,243,254,.93) 0 98%,transparent 100%),
      radial-gradient(circle 1.2px at 59% 43%,rgba(150,181,233,.56) 0 98%,transparent 100%),
      radial-gradient(circle 2px at 61% 61%,rgba(251,253,255,1) 0 98%,transparent 100%),
      radial-gradient(circle 1px at 63% 78%,rgba(93,139,213,.33) 0 98%,transparent 100%),
      radial-gradient(circle 1.7px at 65% 93%,rgba(220,233,251,.85) 0 98%,transparent 100%),
      radial-gradient(circle 1.2px at 68% 6%,rgba(122,161,224,.44) 0 98%,transparent 100%),
      radial-gradient(circle 1.9px at 70% 21%,rgba(246,250,255,.98) 0 98%,transparent 100%),
      radial-gradient(circle 1.1px at 72% 38%,rgba(97,142,215,.35) 0 98%,transparent 100%),
      radial-gradient(circle 1.8px at 74% 56%,rgba(229,239,253,.90) 0 98%,transparent 100%),
      radial-gradient(circle 1.2px at 76% 74%,rgba(136,172,229,.50) 0 98%,transparent 100%),
      radial-gradient(circle 2px at 78% 89%,rgba(250,252,255,1) 0 98%,transparent 100%),
      radial-gradient(circle 1px at 81% 13%,rgba(89,135,211,.31) 0 98%,transparent 100%),
      radial-gradient(circle 1.7px at 83% 29%,rgba(216,230,250,.83) 0 98%,transparent 100%),
      radial-gradient(circle 1.2px at 85% 47%,rgba(145,178,232,.53) 0 98%,transparent 100%),
      radial-gradient(circle 1.9px at 87% 65%,rgba(248,251,255,1) 0 98%,transparent 100%),
      radial-gradient(circle 1.1px at 89% 82%,rgba(103,147,218,.37) 0 98%,transparent 100%),
      radial-gradient(circle 1.6px at 91% 96%,rgba(229,239,253,.90) 0 98%,transparent 100%),
      radial-gradient(circle 1.3px at 94% 9%,rgba(132,169,227,.49) 0 98%,transparent 100%),
      radial-gradient(circle 1.8px at 96% 34%,rgba(244,249,255,.97) 0 98%,transparent 100%),
      radial-gradient(circle 1.1px at 98% 71%,rgba(96,141,214,.34) 0 98%,transparent 100%),
      radial-gradient(circle 1.5px at 6% 93%,rgba(199,217,246,.75) 0 98%,transparent 100%),
      radial-gradient(circle 1.1px at 15% 59%,rgba(107,151,220,.39) 0 98%,transparent 100%),
      radial-gradient(circle 1.5px at 28% 69%,rgba(211,226,249,.80) 0 98%,transparent 100%),
      radial-gradient(circle 1px at 36% 5%,rgba(92,139,214,.32) 0 98%,transparent 100%),
      radial-gradient(circle 1.6px at 47% 92%,rgba(233,241,253,.91) 0 98%,transparent 100%),
      radial-gradient(circle 1.1px at 58% 72%,rgba(109,152,221,.39) 0 98%,transparent 100%),
      radial-gradient(circle 1.5px at 69% 97%,rgba(206,222,248,.79) 0 98%,transparent 100%),
      radial-gradient(circle 1px at 80% 52%,rgba(95,140,214,.34) 0 98%,transparent 100%),
      radial-gradient(circle 1.6px at 92% 58%,rgba(225,236,252,.87) 0 98%,transparent 100%);
    transform: translate3d(-2%, -15%, 0);
    animation: lesterSnowDenseFineV116 8.2s linear infinite;
    will-change: transform;
  }

  /* Layer 2: actual small snowflake shapes + a few larger flakes. */
  .winter-gifts::after {
    inset: -18% -12%;
    opacity: .78;
    background-repeat: no-repeat;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg stroke='%23d6e5fb' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M10 2v16M2 10h16M4.3 4.3l11.4 11.4M15.7 4.3L4.3 15.7'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg stroke='%23edf5ff' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M10 2v16M2 10h16M4.3 4.3l11.4 11.4M15.7 4.3L4.3 15.7'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg stroke='%23bdd3f6' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M10 2v16M2 10h16M4.3 4.3l11.4 11.4M15.7 4.3L4.3 15.7'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg stroke='%23e3efff' stroke-width='1.35' stroke-linecap='round'%3E%3Cpath d='M10 2v16M2 10h16M4.3 4.3l11.4 11.4M15.7 4.3L4.3 15.7'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg stroke='%23c9dcf9' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M10 2v16M2 10h16M4.3 4.3l11.4 11.4M15.7 4.3L4.3 15.7'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg stroke='%23f4f9ff' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M10 2v16M2 10h16M4.3 4.3l11.4 11.4M15.7 4.3L4.3 15.7'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg stroke='%23b9cff4' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M10 2v16M2 10h16M4.3 4.3l11.4 11.4M15.7 4.3L4.3 15.7'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cg stroke='%23e8f2ff' stroke-width='1.35' stroke-linecap='round'%3E%3Cpath d='M10 2v16M2 10h16M4.3 4.3l11.4 11.4M15.7 4.3L4.3 15.7'/%3E%3C/g%3E%3C/svg%3E"),
      linear-gradient(108deg,transparent 0 46%,rgba(160,191,238,.12) 49%,transparent 53%),
      linear-gradient(102deg,transparent 0 45%,rgba(207,224,249,.16) 49%,transparent 54%);
    background-size:
      12px 12px, 10px 10px, 14px 14px, 11px 11px,
      9px 9px, 13px 13px, 10px 10px, 12px 12px,
      330px 38px, 240px 28px;
    background-position:
      7% 14%, 18% 37%, 29% 72%, 41% 22%,
      53% 83%, 65% 46%, 77% 17%, 91% 63%,
      12% 33%, 67% 76%;
    transform: translate3d(-5%, -10%, 0);
    animation: lesterSnowDenseFlakesV116 11.7s linear infinite, lesterSnowDenseGustV116 7.8s ease-in-out infinite;
    will-change: transform, opacity;
  }

  .winter-gifts__snowflake--1 {
    opacity: .58;
    animation: lesterSnowHeroFlakeOneV116 8s ease-in-out infinite;
  }

  .winter-gifts__snowflake--2 {
    opacity: .44;
    animation: lesterSnowHeroFlakeTwoV116 10.5s ease-in-out infinite;
  }
}

@keyframes lesterSnowDenseFineV116 {
  0%   { transform: translate3d(-2%, -15%, 0); }
  17%  { transform: translate3d(.4%, -9%, 0); }
  36%  { transform: translate3d(-.8%, -3%, 0); }
  56%  { transform: translate3d(1.6%, 4%, 0); }
  76%  { transform: translate3d(.2%, 10%, 0); }
  100% { transform: translate3d(2.5%, 18%, 0); }
}

@keyframes lesterSnowDenseFlakesV116 {
  0%   { transform: translate3d(-5%, -10%, 0); }
  18%  { transform: translate3d(-2%, -5%, 0); }
  39%  { transform: translate3d(1%, 1%, 0); }
  61%  { transform: translate3d(4%, 7%, 0); }
  81%  { transform: translate3d(2%, 12%, 0); }
  100% { transform: translate3d(7%, 18%, 0); }
}

@keyframes lesterSnowDenseGustV116 {
  0%,22% { opacity:.70; }
  30%    { opacity:.86; }
  40%    { opacity:.72; }
  58%    { opacity:.80; }
  70%    { opacity:.68; }
  86%    { opacity:.84; }
  100%   { opacity:.70; }
}

@keyframes lesterSnowHeroFlakeOneV116 {
  0%,100% { transform:translate3d(0,0,0) rotate(0deg); }
  33% { transform:translate3d(7px,5px,0) rotate(10deg); }
  67% { transform:translate3d(-3px,10px,0) rotate(-6deg); }
}

@keyframes lesterSnowHeroFlakeTwoV116 {
  0%,100% { transform:translate3d(0,0,0) rotate(0deg); }
  36% { transform:translate3d(-5px,6px,0) rotate(-8deg); }
  72% { transform:translate3d(4px,12px,0) rotate(6deg); }
}

@media (prefers-reduced-motion: reduce) {
  .winter-gifts::before,
  .winter-gifts::after,
  .winter-gifts__snowflake--1,
  .winter-gifts__snowflake--2 {
    animation: none !important;
  }
}

