/* Version 1.3.0: absolutely positioned overlay on the existing footer, zero layout height. */
.ym-wf-host{position:relative!important;}
.ym-wf{
  --ymwf-desktop:300px;--ymwf-mobile:35vw;--ymwf-legal:66px;
  position:absolute!important;inset:0!important;z-index:10!important;
  width:100%!important;height:100%!important;min-height:0!important;
  margin:0!important;padding:0!important;border:0!important;
  background:transparent!important;overflow:hidden!important;pointer-events:none!important;
  isolation:isolate;box-sizing:border-box!important;
}
.ym-wf *{box-sizing:border-box!important;pointer-events:none!important;}
.ym-wf-decoration{position:absolute;left:0;right:0;bottom:var(--ymwf-legal);height:min(360px,75%);z-index:2;}
.ym-wf-decoration img{position:absolute;bottom:0;width:min(var(--ymwf-desktop),27vw)!important;height:auto!important;
 max-width:none!important;border:0!important;margin:0!important;padding:0!important;box-shadow:none!important;display:block!important;}
.ym-wf-left{left:0;z-index:3;}
.ym-wf-right{right:0;z-index:3;}
.ym-wf-snow{
 position:absolute;bottom:0;left:calc(min(var(--ymwf-desktop),27vw) - 30px);
 right:calc(min(var(--ymwf-desktop),27vw) - 30px);
 height:clamp(38px,5.8vw,85px);z-index:2;
 background-image:var(--ymwf-snow);
 background-size:100% 100%;background-repeat:no-repeat;background-position:center bottom;
 -webkit-mask-image:linear-gradient(90deg,transparent 0%,black 6%,black 94%,transparent 100%);
 mask-image:linear-gradient(90deg,transparent 0%,black 6%,black 94%,transparent 100%);
}
.ym-wf-flakes{position:absolute;top:0;bottom:var(--ymwf-legal);left:0;right:0;z-index:1;overflow:hidden;}
/* Real six-armed snow crystals (not dots or rectangles), with depth and drift. */
.ym-wf-flake{
 position:absolute;top:-28px;left:var(--fx,50%);
 width:var(--fs,12px);height:var(--fs,12px);
 background-repeat:no-repeat;background-position:center;background-size:contain;
 opacity:var(--fo,.65);filter:drop-shadow(0 0 1px rgba(255,255,255,.35));
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23fff' stroke-width='4.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M50 7V93M7 50H93M19.6 19.6L80.4 80.4M80.4 19.6L19.6 80.4'/%3E%3Cpath d='M39 18L50 29L61 18M39 82L50 71L61 82M18 39L29 50L18 61M82 39L71 50L82 61M20 33L35 35L33 20M67 80L65 65L80 67M67 20L65 35L80 33M20 67L35 65L33 80'/%3E%3C/g%3E%3C/svg%3E");
 transform:translate3d(0,0,0) rotate(var(--fr,0deg));
 animation:ymwf-fall var(--fd,13s) linear var(--fl,0s) infinite;
 will-change:transform;
}
.ym-wf-flake:nth-child(3n){
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M50 5V95M11 27.5L89 72.5M11 72.5L89 27.5'/%3E%3Cpath d='M38 18L50 31L62 18M38 82L50 69L62 82M24 22L30 40L12 43M76 78L70 60L88 57M76 22L70 40L88 43M24 78L30 60L12 57'/%3E%3Cpath d='M44 40L50 45L56 40M44 60L50 55L56 60'/%3E%3C/g%3E%3C/svg%3E");
}
.ym-wf-flake:nth-child(5n){filter:blur(.6px) drop-shadow(0 0 2px rgba(255,255,255,.3));}
/* Natural wind: different horizontal drift and alternating, curved side-to-side oscillations.
   Keyframe paths vary independently per crystal via CSS custom properties. */
@keyframes ymwf-fall {
  0%   {transform:translate3d(0,-28px,0) rotate(var(--fr,0deg));}
  12%  {transform:translate3d(calc(var(--drift) * .12 + var(--sway) * .65),calc(var(--fall-distance) * .12 - 28px),0) rotate(calc(var(--fr) + 12deg));}
  25%  {transform:translate3d(calc(var(--drift) * .25 - var(--sway) * .45),calc(var(--fall-distance) * .25 - 28px),0) rotate(calc(var(--fr) + 21deg));}
  38%  {transform:translate3d(calc(var(--drift) * .38 + var(--sway)),calc(var(--fall-distance) * .38 - 28px),0) rotate(calc(var(--fr) + 34deg));}
  50%  {transform:translate3d(calc(var(--drift) * .50 - var(--sway) * .65),calc(var(--fall-distance) * .50 - 28px),0) rotate(calc(var(--fr) + 45deg));}
  63%  {transform:translate3d(calc(var(--drift) * .63 + var(--sway) * .70),calc(var(--fall-distance) * .63 - 28px),0) rotate(calc(var(--fr) + 57deg));}
  75%  {transform:translate3d(calc(var(--drift) * .75 - var(--sway) * .40),calc(var(--fall-distance) * .75 - 28px),0) rotate(calc(var(--fr) + 69deg));}
  88%  {transform:translate3d(calc(var(--drift) * .88 + var(--sway) * .55),calc(var(--fall-distance) * .88 - 28px),0) rotate(calc(var(--fr) + 80deg));}
  100% {transform:translate3d(var(--drift),var(--fall-distance),0) rotate(calc(var(--fr) + var(--twirl,85deg)));}
}
.ym-wf-flake.ym-wf-diagonal {animation-timing-function:linear;}
.ym-wf-flake.ym-wf-meander {animation-timing-function:linear;}

/* The existing copyright/legal bar stays in front of all snow and remains clickable. */
.ym-wf-host :is(.footer-bottom,.footer-copyright,.copyright-bar,.site-info,.site-footer-bottom,.bottom-bar,.subfooter,.footer-bar){position:relative;z-index:20;}
@media(max-width:767px){
 .ym-wf-decoration img{width:var(--ymwf-mobile)!important;}
 .ym-wf-decoration{height:min(260px,70%);}
 .ym-wf-snow{left:calc(var(--ymwf-mobile) - 10px);right:calc(var(--ymwf-mobile) - 10px);height:40px;}
 .ym-wf-flakes{opacity:.65;}
}
@media(prefers-reduced-motion:reduce){.ym-wf-flake{animation:none!important;display:none!important;}}

/* v1.3.1: Fallback for themes without a semantic <footer> (e.g. staging test pages). */
body.ym-wf-no-semantic-footer {position:relative!important;}
.ym-wf.ym-wf-fallback {
 position:absolute!important;top:auto!important;bottom:0!important;left:0!important;right:0!important;
 height:min(380px,45vw)!important;min-height:200px!important;
}
.ym-wf.ym-wf-fallback .ym-wf-decoration{height:100%;}
.ym-wf.ym-wf-fallback .ym-wf-flakes{bottom:0;}
@media(max-width:767px){.ym-wf.ym-wf-fallback{height:220px!important;min-height:0!important;}}


/* Version 1.3.3: align the VISUAL snow baseline, not the PNG canvas edges.
 * The right source PNG has approx. 12.4% empty transparent space below its snow.
 * The middle source PNG contains transparent padding above and below its snow.
 */
.ym-wf-decoration .ym-wf-left {
  transform: translateY(1%);
}
.ym-wf-decoration .ym-wf-right {
  transform: translateY(12.4%);
}
.ym-wf-decoration .ym-wf-snow {
  left: calc(min(var(--ymwf-desktop), 27vw) - 85px);
  right: calc(min(var(--ymwf-desktop), 27vw) - 85px);
  bottom: 0;
  height: clamp(82px, 6vw, 105px);
  /* Crop the source's transparent margins visually so real snow has volume. */
  background-size: 100% 400%;
  background-position: center 62%;
  background-repeat: no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
}
@media (max-width: 767px) {
  .ym-wf-decoration .ym-wf-snow {
    left: calc(var(--ymwf-mobile) - 22px);
    right: calc(var(--ymwf-mobile) - 22px);
    height: 68px;
    background-size: 100% 370%;
    background-position: center 62%;
  }
  .ym-wf-decoration .ym-wf-right {transform: translateY(12.4%);}
}

/* v1.3.5: Deep, full-width snow ground with the original realistic snow texture.
   Middle source is now cropped to actual snow, rather than transparent margins. */
.ym-wf-decoration .ym-wf-snow{
  bottom:0!important;
  left:calc(min(var(--ymwf-desktop),27vw) - 92px)!important;
  right:calc(min(var(--ymwf-desktop),27vw) - 92px)!important;
  height:clamp(64px,5.2vw,88px)!important;
  background-image:var(--ymwf-snow)!important;
  background-size:100% 100%!important;
  background-position:center bottom!important;
  background-repeat:no-repeat!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%)!important;
  mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%)!important;
}
.ym-wf-decoration .ym-wf-right{transform:translateY(16%)!important;}
.ym-wf-decoration .ym-wf-left{transform:translateY(2%)!important;}
@media(max-width:767px){
 .ym-wf-decoration .ym-wf-snow{
   left:calc(var(--ymwf-mobile) - 30px)!important;
   right:calc(var(--ymwf-mobile) - 30px)!important;
   height:clamp(35px,9vw,62px)!important;
 }
}


/* v1.3.6: unify the snow base across the full footer width, fill both browser corners,
   and make the ground visually deeper like real accumulated snow. */
.ym-wf-decoration{overflow:visible;}
.ym-wf-decoration .ym-wf-snow{
  z-index:1!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  height:clamp(96px,7.2vw,126px)!important;
  background-image:var(--ymwf-snow)!important;
  background-size:100% 100%!important;
  background-position:center bottom!important;
  background-repeat:no-repeat!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
}
.ym-wf-decoration .ym-wf-left,
.ym-wf-decoration .ym-wf-right{z-index:2!important;}
.ym-wf-decoration .ym-wf-left{transform:translateY(1%)!important;}
.ym-wf-decoration .ym-wf-right{transform:translateY(10%)!important;}
@media(max-width:767px){
  .ym-wf-decoration .ym-wf-snow{
    left:0!important;
    right:0!important;
    height:clamp(78px,16vw,118px)!important;
  }
  .ym-wf-decoration .ym-wf-left{transform:translateY(1%)!important;}
  .ym-wf-decoration .ym-wf-right{transform:translateY(8%)!important;}
}

/* v1.3.6: snowflakes fall more softly and organically, with gentle diagonal drift
   and smooth slalom instead of hard ping-pong direction changes. */
.ym-wf-flakes{overflow:hidden;}
.ym-wf-flake{
  opacity:var(--fo,.50);
  filter:drop-shadow(0 0 1px rgba(255,255,255,.18));
  animation:ymwf-fall-soft var(--fd,18s) linear var(--fl,0s) infinite;
}
.ym-wf-flake:nth-child(4n){filter:blur(.4px) drop-shadow(0 0 2px rgba(255,255,255,.16));}
.ym-wf-flake:nth-child(6n){opacity:var(--fo-soft,.28);}
@keyframes ymwf-fall-soft{
  0%   {transform:translate3d(0,-30px,0) rotate(var(--fr,0deg));}
  10%  {transform:translate3d(calc(var(--drift) * .07 + var(--sway) * .10),calc(var(--fall-distance) * .10 - 30px),0) rotate(calc(var(--fr) + 4deg));}
  22%  {transform:translate3d(calc(var(--drift) * .16 + var(--sway) * .24),calc(var(--fall-distance) * .22 - 30px),0) rotate(calc(var(--fr) + 8deg));}
  35%  {transform:translate3d(calc(var(--drift) * .28 + var(--sway) * .34),calc(var(--fall-distance) * .35 - 30px),0) rotate(calc(var(--fr) + 12deg));}
  48%  {transform:translate3d(calc(var(--drift) * .42 + var(--sway) * .20),calc(var(--fall-distance) * .48 - 30px),0) rotate(calc(var(--fr) + 16deg));}
  61%  {transform:translate3d(calc(var(--drift) * .58 - var(--sway) * .06),calc(var(--fall-distance) * .61 - 30px),0) rotate(calc(var(--fr) + 19deg));}
  74%  {transform:translate3d(calc(var(--drift) * .73 - var(--sway) * .20),calc(var(--fall-distance) * .74 - 30px),0) rotate(calc(var(--fr) + 22deg));}
  87%  {transform:translate3d(calc(var(--drift) * .87 - var(--sway) * .12),calc(var(--fall-distance) * .87 - 30px),0) rotate(calc(var(--fr) + 26deg));}
  100% {transform:translate3d(var(--drift),var(--fall-distance),0) rotate(calc(var(--fr) + var(--twirl,30deg)));}
}

/* Version 1.3.7 – shift the complete winter landscape down as one group.
   The legal navigation bar is a separate sibling and remains above the decoration. */
.ym-wf{overflow:visible!important;}
.ym-wf-decoration{bottom:calc(var(--ymwf-legal) - var(--ymwf-offset,15px))!important;}
.ym-wf-host{overflow:visible!important;}
.ym-footer-bottom, #footer-managed{position:relative;z-index:30;}


/* v1.3.9: softer, more organic snowfall with curved drift instead of visually straight vertical tracks. */
.ym-wf-flake{
  animation:ymwf-fall-gentle var(--fd,22s) cubic-bezier(.35,.02,.65,1) var(--fl,0s) infinite !important;
}
.ym-wf-flake:nth-child(3n){opacity:calc(var(--fo,.55) * .9);}
.ym-wf-flake:nth-child(4n){filter:blur(.35px) drop-shadow(0 0 2px rgba(255,255,255,.20));}
.ym-wf-flake:nth-child(5n){opacity:calc(var(--fo,.55) * .75);}
@keyframes ymwf-fall-gentle {
  0%   {transform:translate3d(0,-28px,0) rotate(var(--fr,0deg));}
  8%   {transform:translate3d(calc(var(--drift) * .03 + var(--sway) * .08),calc(var(--fall-distance) * .08 - 28px),0) rotate(calc(var(--fr) + 3deg));}
  18%  {transform:translate3d(calc(var(--drift) * .08 + var(--sway) * .18),calc(var(--fall-distance) * .18 - 28px),0) rotate(calc(var(--fr) + 6deg));}
  30%  {transform:translate3d(calc(var(--drift) * .16 + var(--sway) * .26),calc(var(--fall-distance) * .30 - 28px),0) rotate(calc(var(--fr) + 10deg));}
  42%  {transform:translate3d(calc(var(--drift) * .28 + var(--sway) * .18),calc(var(--fall-distance) * .42 - 28px),0) rotate(calc(var(--fr) + 13deg));}
  55%  {transform:translate3d(calc(var(--drift) * .42 + var(--sway) * .02),calc(var(--fall-distance) * .55 - 28px),0) rotate(calc(var(--fr) + 17deg));}
  68%  {transform:translate3d(calc(var(--drift) * .58 - var(--sway) * .14),calc(var(--fall-distance) * .68 - 28px),0) rotate(calc(var(--fr) + 21deg));}
  80%  {transform:translate3d(calc(var(--drift) * .74 - var(--sway) * .22),calc(var(--fall-distance) * .80 - 28px),0) rotate(calc(var(--fr) + 24deg));}
  90%  {transform:translate3d(calc(var(--drift) * .88 - var(--sway) * .14),calc(var(--fall-distance) * .90 - 28px),0) rotate(calc(var(--fr) + 28deg));}
  100% {transform:translate3d(var(--drift),var(--fall-distance),0) rotate(calc(var(--fr) + var(--twirl,26deg)));}
}

/* v1.4.0: Web Animations API owns all snowflake transforms; no CSS transform calc. */
.ym-wf-flake.ym-wf-animated {animation:none!important;transform:translate3d(0,-50px,0);will-change:transform;}
@media(prefers-reduced-motion:reduce){.ym-wf-flake.ym-wf-animated{display:none!important;}}

/* v1.4.1 – optional top-corner evergreen garlands, in their OWN layer.
   They are not part of the bottom decorations, so Santa and gifts remain below. */
.ym-wf > .ym-wf-top-left,
.ym-wf > .ym-wf-top-right{
  position:absolute!important;
  top:0!important;
  bottom:auto!important;
  width:min(var(--ymwf-topwidth,280px),23vw)!important;
  height:auto!important;
  max-width:none!important;
  margin:0!important;padding:0!important;
  z-index:3!important;
  display:block!important;
  pointer-events:none!important;
  object-fit:contain!important;
}
.ym-wf > .ym-wf-top-left{left:0!important;right:auto!important;}
.ym-wf > .ym-wf-top-right{right:0!important;left:auto!important;}
@media(max-width:767px){
  .ym-wf > .ym-wf-top-left,.ym-wf > .ym-wf-top-right{
    width:min(38vw,180px)!important;
  }
}


/* 1.4.3: the two evergreen garlands are attached to the site's navigation HEADER. */
/* Never override the navigation header's fixed/sticky/absolute position. */
#header.ym-wf-header-host,
header.ym-wf-header-host { overflow:visible!important; }
#header.ym-wf-header-static,
header.ym-wf-header-static { position:relative; }
.ym-wf-header-host > .ym-wf-header-branch {
 position:absolute!important;
 top:0!important;
 bottom:auto!important;
 width:min(var(--ymwf-topwidth,280px),23vw)!important;
 height:auto!important;
 max-width:none!important;
 margin:0!important;
 padding:0!important;
 border:0!important;
 display:block!important;
 object-fit:contain!important;
 pointer-events:none!important;
 z-index:5!important;
}
.ym-wf-header-host > .ym-wf-top-left {left:0!important;right:auto!important;}
.ym-wf-header-host > .ym-wf-top-right {right:0!important;left:auto!important;}
@media(max-width:767px) {
 .ym-wf-header-host > .ym-wf-header-branch {
    width:min(var(--ymwf-topwidth,280px),29vw)!important;
 }
}
