/**
 * Season Decor - CSS Styles
 * @version 3.2.0 - Festive visual effects for web pages
 */

/* ========== Snow Piles - VARIED DESIGN ========== */
.sd-pile-snow {
  position: absolute;
  left: -3px;
  right: -3px;
  bottom: -12px;
  height: 38px;
  pointer-events: none;
  z-index: 1;
  transform: translateZ(0);
  will-change: transform;
  filter: drop-shadow(0 -2px 3px rgba(0, 0, 0, 0.12));
  background-repeat: repeat-x;
  background-position: bottom left;
  background-size: auto 38px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="160" height="38" viewBox="0 0 160 38"><defs><linearGradient id="snowPileGradient" x1="0" y1="1" x2="0" y2="0"><stop offset="0%" stop-color="%23ffffff"/><stop offset="40%" stop-color="%23f5f9ff"/><stop offset="100%" stop-color="%23e8f2fa"/></linearGradient><filter id="softGlow"><feGaussianBlur stdDeviation="0.5"/></filter></defs><path d="M0 26 C6 35, 12 36, 20 28 C25 22, 30 20, 38 26 C44 32, 50 35, 58 28 C64 22, 70 24, 78 30 C84 36, 92 36, 100 28 C106 22, 112 20, 120 26 C128 34, 136 35, 144 28 C150 24, 155 24, 160 26 L160 0 L0 0 Z" fill="url(%23snowPileGradient)" filter="url(%23softGlow)"/><path d="M0 26 C6 35, 12 36, 20 28 C25 22, 30 20, 38 26 C44 32, 50 35, 58 28 C64 22, 70 24, 78 30 C84 36, 92 36, 100 28 C106 22, 112 20, 120 26 C128 34, 136 35, 144 28 C150 24, 155 24, 160 26" fill="none" stroke="rgba(255,255,255,0.9)" stroke-width="1.5"/><g opacity="0.85"><path d="M15 14 L17 18 L16 18 L14 14 Z" fill="%23b8d8f0" stroke="%237db8e0" stroke-width="0.5"/><rect x="15.5" y="10" width="1" height="4" fill="%237db8e0" rx="0.5"/><path d="M48 10 L50 14 L49 14 L47 10 Z" fill="%23b8d8f0" stroke="%237db8e0" stroke-width="0.5"/><rect x="48.5" y="6" width="1" height="4" fill="%237db8e0" rx="0.5"/><path d="M85 16 L87 20 L86 20 L84 16 Z" fill="%23b8d8f0" stroke="%237db8e0" stroke-width="0.5"/><rect x="85.5" y="12" width="1" height="4" fill="%237db8e0" rx="0.5"/><path d="M115 12 L117 16 L116 16 L114 12 Z" fill="%23b8d8f0" stroke="%237db8e0" stroke-width="0.5"/><rect x="115.5" y="8" width="1" height="4" fill="%237db8e0" rx="0.5"/><path d="M145 14 L147 18 L146 18 L144 14 Z" fill="%23b8d8f0" stroke="%237db8e0" stroke-width="0.5"/><rect x="145.5" y="10" width="1" height="4" fill="%237db8e0" rx="0.5"/></g></svg>');
}

/* Enhanced snow mounds on top of pile */
.sd-pile-snow.drip::before {
  content: "";
  position: absolute;
  bottom: 28px;
  left: 0;
  right: 0;
  height: 14px;
  background:
    radial-gradient(ellipse at center, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 40%, transparent 65%) 
      15px 0 / 40px 10px repeat-x,
    radial-gradient(ellipse at center, rgba(245,249,255,0.9) 0%, rgba(240,248,255,0.75) 40%, transparent 65%) 
      32px 1px / 38px 9px repeat-x;
  filter: blur(0.4px);
  opacity: 0.9;
}

/* ========== Icicle Layer - HANGS FROM TOP ========== */
.sd-icicles {
  position: absolute;
  left: 0;
  right: 0;
  top: -5px;
  height: 55px;
  pointer-events: none;
  z-index: 1;
  transform: translateZ(0);
  will-change: transform;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.15));
  background-repeat: repeat-x;
  background-position: top left;
  background-size: auto 45px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="45" viewBox="0 0 200 45"><defs><linearGradient id="icicleGradient" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="%23ffffff"/><stop offset="30%" stop-color="%23f0f8ff"/><stop offset="70%" stop-color="%23e0f2ff"/><stop offset="100%" stop-color="%23d0ebff"/></linearGradient><linearGradient id="icicleHighlight" x1="0" y1="0" x2="1" y2="0"><stop offset="0%" stop-color="rgba(255,255,255,0)"/><stop offset="40%" stop-color="rgba(255,255,255,0.8)"/><stop offset="60%" stop-color="rgba(255,255,255,0.8)"/><stop offset="100%" stop-color="rgba(255,255,255,0)"/></linearGradient><filter id="icicleGlow"><feGaussianBlur stdDeviation="0.8"/></filter></defs><path d="M0 0 L200 0 L200 8 C195 6, 190 8, 185 6 C180 4, 175 7, 170 5 C165 3, 160 8, 155 6 C150 4, 145 7, 140 5 C135 3, 130 8, 125 6 C120 4, 115 7, 110 5 C105 3, 100 8, 95 6 C90 4, 85 7, 80 5 C75 3, 70 8, 65 6 C60 4, 55 7, 50 5 C45 3, 40 8, 35 6 C30 4, 25 7, 20 5 C15 3, 10 8, 5 6 C2.5 4, 1 7, 0 5 Z" fill="url(%23icicleGradient)" opacity="0.95"/><g><path d="M10 8 L12 8 L11 28 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="10.5" y1="8" x2="11" y2="28" stroke="url(%23icicleHighlight)" stroke-width="0.8" opacity="0.7"/></g><g><path d="M28 6 L30 6 L29 20 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="28.5" y1="6" x2="29" y2="20" stroke="url(%23icicleHighlight)" stroke-width="0.8" opacity="0.7"/></g><g><path d="M45 7 L46.5 7 L45.75 15 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="45.5" y1="7" x2="45.75" y2="15" stroke="url(%23icicleHighlight)" stroke-width="0.6" opacity="0.7"/></g><g><path d="M62 5 L64 5 L63 24 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="62.5" y1="5" x2="63" y2="24" stroke="url(%23icicleHighlight)" stroke-width="0.8" opacity="0.7"/></g><g><path d="M78 8 L79.5 8 L78.75 16 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="78.5" y1="8" x2="78.75" y2="16" stroke="url(%23icicleHighlight)" stroke-width="0.6" opacity="0.7"/></g><g><path d="M95 6 L97 6 L96 30 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="95.5" y1="6" x2="96" y2="30" stroke="url(%23icicleHighlight)" stroke-width="0.8" opacity="0.7"/></g><g><path d="M112 7 L114 7 L113 22 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="112.5" y1="7" x2="113" y2="22" stroke="url(%23icicleHighlight)" stroke-width="0.8" opacity="0.7"/></g><g><path d="M130 8 L131.5 8 L130.75 14 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="130.5" y1="8" x2="130.75" y2="14" stroke="url(%23icicleHighlight)" stroke-width="0.6" opacity="0.7"/></g><g><path d="M148 5 L150 5 L149 26 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="148.5" y1="5" x2="149" y2="26" stroke="url(%23icicleHighlight)" stroke-width="0.8" opacity="0.7"/></g><g><path d="M165 7 L167 7 L166 19 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="165.5" y1="7" x2="166" y2="19" stroke="url(%23icicleHighlight)" stroke-width="0.8" opacity="0.7"/></g><g><path d="M182 8 L183.5 8 L182.75 15 Z" fill="url(%23icicleGradient)" stroke="%23b0d8f0" stroke-width="0.3"/><line x1="182.5" y1="8" x2="182.75" y2="15" stroke="url(%23icicleHighlight)" stroke-width="0.6" opacity="0.7"/></g><g opacity="0.6"><circle cx="11" cy="28" r="0.8" fill="%23d0ebff"/><circle cx="96" cy="30" r="0.8" fill="%23d0ebff"/><circle cx="149" cy="26" r="0.8" fill="%23d0ebff"/></g></svg>');
}

/* ========== Leaf Piles - REALISTIC LEAVES (FLIPPED UPSIDE DOWN) ========== */
.sd-pile-leaves {
  position: absolute;
  left: -3px;
  right: -3px;
  bottom: -12px;
  height: 36px;
  pointer-events: none;
  z-index: 1;
  transform: translateZ(0) scaleY(-1);
  will-change: transform;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.2));
  background-repeat: repeat-x;
  background-position: bottom left;
  background-size: auto 36px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="140" height="36" viewBox="0 0 140 36"><defs><linearGradient id="leafPileGradient" x1="0" y1="1" x2="0" y2="0"><stop offset="0%" stop-color="%236b3410"/><stop offset="30%" stop-color="%238b4513"/><stop offset="60%" stop-color="%23a0522d"/><stop offset="100%" stop-color="%23b8860b"/></linearGradient></defs><path d="M0 24 C10 30, 20 32, 30 26 C40 20, 50 18, 60 24 C70 30, 80 32, 90 26 C100 20, 110 18, 120 24 C130 30, 135 28, 140 24 L140 0 L0 0 Z" fill="url(%23leafPileGradient)"/><g opacity="0.85"><path d="M12 16 Q14 18 16 16 Q15 20 12 22 Q9 20 8 16 Q10 18 12 16" fill="%23ff6b35" stroke="%23cc4520" stroke-width="0.3"/><line x1="12" y1="16" x2="12" y2="22" stroke="%238b4513" stroke-width="0.5"/><path d="M28 18 L30 14 L32 18 L34 16 L32 20 L34 24 L30 22 L28 26 L26 22 L24 24 L26 20 L24 16 L26 18 Z" fill="%23e63946" stroke="%23b82633" stroke-width="0.3"/><line x1="30" y1="14" x2="28" y2="26" stroke="%238b4513" stroke-width="0.5"/><ellipse cx="50" cy="20" rx="5" ry="8" fill="%23f4a261" stroke="%23d4822e" stroke-width="0.3" transform="rotate(25 50 20)"/><line x1="50" y1="12" x2="50" y2="28" stroke="%238b4513" stroke-width="0.5"/><circle cx="68" cy="22" r="5" fill="%23bc6c25" stroke="%238b501c" stroke-width="0.3"/><path d="M68 17 Q70 19 68 22" stroke="%238b4513" stroke-width="0.5" fill="none"/><path d="M80 18 Q82 20 84 18 Q83 22 80 24 Q77 22 76 18 Q78 20 80 18" fill="%23d4a574" stroke="%23a8845c" stroke-width="0.3"/><line x1="80" y1="18" x2="80" y2="24" stroke="%238b4513" stroke-width="0.5"/><ellipse cx="98" cy="19" rx="4" ry="7" fill="%23ff6b35" stroke="%23cc4520" stroke-width="0.3" transform="rotate(-20 98 19)"/><line x1="98" y1="12" x2="98" y2="26" stroke="%238b4513" stroke-width="0.5"/><path d="M112 20 L114 18 L116 20 L117 19 L116 21 L117 23 L115 22 L114 24 L113 22 L111 23 L112 21 L111 19 Z" fill="%23e63946" stroke="%23b82633" stroke-width="0.3"/><circle cx="128" cy="21" r="4.5" fill="%23f4a261" stroke="%23d4822e" stroke-width="0.3"/><path d="M128 16.5 Q130 18.5 128 21" stroke="%238b4513" stroke-width="0.5" fill="none"/></g></svg>');
}

/* ========== Easter Egg Piles - COLORFUL SPRING EGGS ========== */
.sd-pile-easter {
  position: absolute;
  left: -3px;
  right: -3px;
  bottom: -14px;
  height: 40px;
  pointer-events: none;
  z-index: 1;
  transform: translateZ(0);
  will-change: transform;
  filter: drop-shadow(0 -2px 3px rgba(0, 0, 0, 0.15));
  background-repeat: repeat-x;
  background-position: bottom left;
  background-size: auto 40px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="180" height="40" viewBox="0 0 180 40"><defs><linearGradient id="grassBase" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="%2390ee90"/><stop offset="60%" stop-color="%237acc7a"/><stop offset="100%" stop-color="%235aa05a"/></linearGradient><linearGradient id="eggPink" x1="0.3" y1="0" x2="0.7" y2="1"><stop offset="0%" stop-color="%23ffb3d9"/><stop offset="50%" stop-color="%23ff8cbf"/><stop offset="100%" stop-color="%23ff69b4"/></linearGradient><linearGradient id="eggBlue" x1="0.3" y1="0" x2="0.7" y2="1"><stop offset="0%" stop-color="%23b3d9ff"/><stop offset="50%" stop-color="%2380bfff"/><stop offset="100%" stop-color="%234da6ff"/></linearGradient><linearGradient id="eggYellow" x1="0.3" y1="0" x2="0.7" y2="1"><stop offset="0%" stop-color="%23ffffb3"/><stop offset="50%" stop-color="%23ffff80"/><stop offset="100%" stop-color="%23ffff4d"/></linearGradient><linearGradient id="eggPurple" x1="0.3" y1="0" x2="0.7" y2="1"><stop offset="0%" stop-color="%23e6b3ff"/><stop offset="50%" stop-color="%23cc80ff"/><stop offset="100%" stop-color="%23b34dff"/></linearGradient><linearGradient id="eggGreen" x1="0.3" y1="0" x2="0.7" y2="1"><stop offset="0%" stop-color="%23b3ffcc"/><stop offset="50%" stop-color="%2380ff99"/><stop offset="100%" stop-color="%234dff66"/></linearGradient><radialGradient id="eggShine"><stop offset="0%" stop-color="%23ffffff" stop-opacity="0.9"/><stop offset="50%" stop-color="%23ffffff" stop-opacity="0.6"/><stop offset="100%" stop-color="%23ffffff" stop-opacity="0"/></radialGradient></defs><path d="M0 30 Q10 28, 20 30 Q30 32, 40 30 Q50 28, 60 30 Q70 32, 80 30 Q90 28, 100 30 Q110 32, 120 30 Q130 28, 140 30 Q150 32, 160 30 Q170 28, 180 30 L180 40 L0 40 Z" fill="url(%23grassBase)"/><g opacity="0.7"><path d="M8 30 L10 24 L12 30" fill="%237acc7a" stroke="%235aa05a" stroke-width="0.4"/><path d="M25 30 L27 25 L29 30" fill="%237acc7a" stroke="%235aa05a" stroke-width="0.4"/><path d="M42 30 L44 26 L46 30" fill="%237acc7a" stroke="%235aa05a" stroke-width="0.4"/><path d="M65 30 L67 24 L69 30" fill="%237acc7a" stroke="%235aa05a" stroke-width="0.4"/><path d="M88 30 L90 25 L92 30" fill="%237acc7a" stroke="%235aa05a" stroke-width="0.4"/><path d="M110 30 L112 26 L114 30" fill="%237acc7a" stroke="%235aa05a" stroke-width="0.4"/><path d="M135 30 L137 24 L139 30" fill="%237acc7a" stroke="%235aa05a" stroke-width="0.4"/><path d="M158 30 L160 25 L162 30" fill="%237acc7a" stroke="%235aa05a" stroke-width="0.4"/></g><g><ellipse cx="15" cy="24" rx="6" ry="8" fill="url(%23eggPink)"/><ellipse cx="13.5" cy="21" rx="2.5" ry="3.5" fill="url(%23eggShine)" opacity="0.6"/><line x1="12" y1="24" x2="18" y2="24" stroke="white" stroke-width="1.2" opacity="0.8"/><line x1="13" y1="20" x2="17" y2="20" stroke="white" stroke-width="0.8" opacity="0.6"/><line x1="13" y1="28" x2="17" y2="28" stroke="white" stroke-width="0.8" opacity="0.6"/></g><g><ellipse cx="35" cy="23" rx="5.5" ry="7.5" fill="url(%23eggBlue)"/><ellipse cx="33.5" cy="20" rx="2" ry="3" fill="url(%23eggShine)" opacity="0.6"/><circle cx="33" cy="23" r="1.2" fill="white" opacity="0.9"/><circle cx="37" cy="21" r="1" fill="white" opacity="0.9"/><circle cx="36" cy="25" r="1.1" fill="white" opacity="0.9"/><circle cx="33" cy="27" r="0.9" fill="white" opacity="0.9"/></g><g><ellipse cx="55" cy="25" rx="6" ry="8.5" fill="url(%23eggYellow)"/><ellipse cx="53.5" cy="22" rx="2.5" ry="3.5" fill="url(%23eggShine)" opacity="0.6"/><path d="M52 22 L54 24 L52 26 L54 28 L52 30" stroke="white" stroke-width="1.5" fill="none" opacity="0.8" stroke-linecap="round"/><path d="M56 22 L58 24 L56 26 L58 28 L56 30" stroke="white" stroke-width="1.5" fill="none" opacity="0.8" stroke-linecap="round"/></g><g><ellipse cx="78" cy="24" rx="5.5" ry="7.5" fill="url(%23eggPurple)"/><ellipse cx="76.5" cy="21" rx="2" ry="3" fill="url(%23eggShine)" opacity="0.6"/><path d="M76 23 L78 25 L80 23 Q80.5 22.5 80 22 Q79.5 21.5 79 22 L78 23 L77 22 Q76.5 21.5 76 22 Q75.5 22.5 76 23 Z" fill="white" opacity="0.9"/><path d="M74 26 L76 28 L78 26 Q78.5 25.5 78 25 Q77.5 24.5 77 25 L76 26 L75 25 Q74.5 24.5 74 25 Q73.5 25.5 74 26 Z" fill="white" opacity="0.9"/></g><g><ellipse cx="100" cy="23" rx="6" ry="8" fill="url(%23eggGreen)"/><ellipse cx="98.5" cy="20" rx="2.5" ry="3.5" fill="url(%23eggShine)" opacity="0.6"/><path d="M97 20 Q99 21 97 22 Q99 23 97 24" stroke="white" stroke-width="1.2" fill="none" opacity="0.8"/><path d="M101 20 Q103 21 101 22 Q103 23 101 24" stroke="white" stroke-width="1.2" fill="none" opacity="0.8"/><path d="M97 25 Q99 26 97 27 Q99 28 97 29" stroke="white" stroke-width="1.2" fill="none" opacity="0.8"/><path d="M101 25 Q103 26 101 27 Q103 28 101 29" stroke="white" stroke-width="1.2" fill="none" opacity="0.8"/></g><g><ellipse cx="125" cy="25" rx="5.5" ry="7.5" fill="url(%23eggPink)"/><ellipse cx="123.5" cy="22" rx="2" ry="3" fill="url(%23eggShine)" opacity="0.6"/><rect x="122" y="22" width="3" height="2" fill="white" opacity="0.7"/><rect x="125" y="24" width="3" height="2" fill="white" opacity="0.7"/><rect x="122" y="26" width="3" height="2" fill="white" opacity="0.7"/></g><g><ellipse cx="148" cy="24" rx="6" ry="8" fill="url(%23eggBlue)"/><ellipse cx="146.5" cy="21" rx="2.5" ry="3.5" fill="url(%23eggShine)" opacity="0.6"/><path d="M148 20 L148.8 22.5 L151.5 22.5 L149.3 24 L150 26.5 L148 25 L146 26.5 L146.7 24 L144.5 22.5 L147.2 22.5 Z" fill="white" opacity="0.9"/></g><g><ellipse cx="168" cy="23" rx="5.5" ry="7.5" fill="url(%23eggYellow)"/><ellipse cx="166.5" cy="20" rx="2" ry="3" fill="url(%23eggShine)" opacity="0.6"/><circle cx="168" cy="23" r="1.5" fill="white" opacity="0.9"/><circle cx="166" cy="22" r="1.2" fill="white" opacity="0.8"/><circle cx="170" cy="22" r="1.2" fill="white" opacity="0.8"/><circle cx="166.5" cy="24.5" r="1.2" fill="white" opacity="0.8"/><circle cx="169.5" cy="24.5" r="1.2" fill="white" opacity="0.8"/></g><g opacity="0.8"><circle cx="20" cy="32" r="1" fill="%23ffb3d9"/><circle cx="50" cy="31" r="1.2" fill="%23ffffb3"/><circle cx="95" cy="32" r="1" fill="%23e6b3ff"/><circle cx="140" cy="31" r="1.1" fill="%23b3d9ff"/></g></svg>');
}

/* ========== Summer Beach/Sand Piles - TROPICAL VIBES ========== */
.sd-pile-summer {
  position: absolute;
  left: -3px;
  right: -3px;
  bottom: -10px;
  height: 35px;
  pointer-events: none;
  z-index: 1;
  transform: translateZ(0);
  will-change: transform;
  filter: drop-shadow(0 -1px 2px rgba(0, 0, 0, 0.1));
  background-repeat: repeat-x;
  background-position: bottom left;
  background-size: auto 35px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="180" height="35" viewBox="0 0 180 35"><defs><linearGradient id="sandGradient" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="%23f4e4c1"/><stop offset="50%" stop-color="%23e6d5a8"/><stop offset="100%" stop-color="%23d4c497"/></linearGradient><radialGradient id="shellShine"><stop offset="0%" stop-color="%23ffffff" stop-opacity="0.9"/><stop offset="60%" stop-color="%23fff8dc" stop-opacity="0.5"/><stop offset="100%" stop-color="%23f4e4c1" stop-opacity="0.2"/></radialGradient><radialGradient id="starfishGrad"><stop offset="0%" stop-color="%23ffb366"/><stop offset="100%" stop-color="%23ff8c42"/></radialGradient></defs><path d="M0 22 Q15 18, 30 22 Q45 19, 60 22 Q75 18, 90 22 Q105 19, 120 22 Q135 18, 150 22 Q165 19, 180 22 L180 35 L0 35 Z" fill="url(%23sandGradient)"/><g opacity="0.4"><circle cx="10" cy="25" r="0.6" fill="%23d4a574"/><circle cx="25" cy="27" r="0.5" fill="%23d4a574"/><circle cx="40" cy="24" r="0.7" fill="%23d4a574"/><circle cx="55" cy="26" r="0.5" fill="%23d4a574"/><circle cx="70" cy="25" r="0.6" fill="%23d4a574"/><circle cx="85" cy="27" r="0.5" fill="%23d4a574"/><circle cx="105" cy="24" r="0.7" fill="%23d4a574"/><circle cx="120" cy="26" r="0.6" fill="%23d4a574"/><circle cx="140" cy="25" r="0.5" fill="%23d4a574"/><circle cx="160" cy="27" r="0.6" fill="%23d4a574"/></g><g><ellipse cx="18" cy="23" rx="3.5" ry="2.8" fill="%23ffebcd" stroke="%23d4a574" stroke-width="0.5"/><path d="M18 20.2 Q19 21 18 22 Q17 22.5 16.5 22 Q16.5 21 17.5 20.5 Q18 20 18 20.2" fill="url(%23shellShine)" stroke="%23d4a574" stroke-width="0.3"/><path d="M18 20.2 L18 25.8" stroke="%23d4a574" stroke-width="0.4"/><path d="M16 22 Q17 23 18 23.5" stroke="%23d4a574" stroke-width="0.3" fill="none"/></g><g><path d="M42 23 Q42 21 44 21 Q46 21 46 23 L46 25 Q46 26 44 26 Q42 26 42 25 Z" fill="%23ffe4b5" stroke="%23d4a574" stroke-width="0.5"/><ellipse cx="43" cy="22" rx="1.5" ry="1" fill="url(%23shellShine)" opacity="0.7"/><path d="M44 21 L44 26" stroke="%23d4a574" stroke-width="0.4"/><path d="M42.5 23 L45.5 23" stroke="%23d4a574" stroke-width="0.3"/></g><g><path d="M68 22 L72 22 Q73 23 72 24 L68 24 Q67 23 68 22 Z" fill="%23fff8dc" stroke="%23d4a574" stroke-width="0.5"/><ellipse cx="69" cy="22.5" rx="1" ry="0.7" fill="url(%23shellShine)" opacity="0.7"/><path d="M68 22 L68 24" stroke="%23d4a574" stroke-width="0.3"/><path d="M69 22 L69 24" stroke="%23d4a574" stroke-width="0.3"/><path d="M70 22 L70 24" stroke="%23d4a574" stroke-width="0.3"/><path d="M71 22 L71 24" stroke="%23d4a574" stroke-width="0.3"/><path d="M72 22 L72 24" stroke="%23d4a574" stroke-width="0.3"/></g><g><path d="M95 23 L96 21 L97 23 L99 22.5 L98 24 L100 25 L98 25.5 L98.5 27.5 L97 26 L95 27.5 L95.5 25.5 L93 25 L95 24 L94 22.5 Z" fill="url(%23starfishGrad)" stroke="%23ff6b35" stroke-width="0.4"/><circle cx="95" cy="23.5" r="0.4" fill="%23ff6b35" opacity="0.6"/><circle cx="97" cy="23.5" r="0.4" fill="%23ff6b35" opacity="0.6"/><circle cx="98.5" cy="25" r="0.4" fill="%23ff6b35" opacity="0.6"/><circle cx="97" cy="26.5" r="0.4" fill="%23ff6b35" opacity="0.6"/><circle cx="95" cy="26.5" r="0.4" fill="%23ff6b35" opacity="0.6"/><circle cx="93.5" cy="25" r="0.4" fill="%23ff6b35" opacity="0.6"/></g><g><ellipse cx="125" cy="23" rx="4" ry="3" fill="%23ffebcd" stroke="%23d4a574" stroke-width="0.5"/><ellipse cx="123.5" cy="22" rx="1.5" ry="1.2" fill="url(%23shellShine)" opacity="0.7"/><path d="M121 23 Q123 24 125 24 Q127 24 129 23" stroke="%23d4a574" stroke-width="0.4" fill="none"/><circle cx="123" cy="23.5" r="0.5" fill="%23d4a574" opacity="0.5"/><circle cx="127" cy="23.5" r="0.5" fill="%23d4a574" opacity="0.5"/></g><g><circle cx="152" cy="24" r="3" fill="%23fff8dc" stroke="%23d4a574" stroke-width="0.5"/><ellipse cx="151" cy="23" rx="1.2" ry="0.9" fill="url(%23shellShine)" opacity="0.7"/><circle cx="152" cy="24" r="2" fill="none" stroke="%23d4a574" stroke-width="0.3"/><circle cx="152" cy="24" r="1" fill="none" stroke="%23d4a574" stroke-width="0.3"/></g><g opacity="0.6"><ellipse cx="30" cy="26" rx="1.5" ry="1" fill="%23c4a574"/><ellipse cx="58" cy="25" rx="1.2" ry="0.8" fill="%23c4a574"/><ellipse cx="82" cy="26" rx="1.3" ry="0.9" fill="%23c4a574"/><ellipse cx="110" cy="25" rx="1.4" ry="1" fill="%23c4a574"/><ellipse cx="138" cy="26" rx="1.1" ry="0.8" fill="%23c4a574"/><ellipse cx="170" cy="25" rx="1.5" ry="1" fill="%23c4a574"/></g></svg>');
}

/* ========== Gimmick Icons (Snowmen & Pumpkins) ========== */
.sd-gimmick-icons {
  position: fixed;
  z-index: 6;
  pointer-events: none;
}

.sd-gimmick-icons .icon-group {
  transform-origin: 50% 100%;
}

@media (prefers-reduced-motion: no-preference) {
  .sd-gimmick-icons .icon-group {
    animation: sd-gentle-bob 3.4s ease-in-out infinite;
  }
}

@keyframes sd-gentle-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

/* Ground pad for icons */
.sd-ground-pad {
  position: absolute;
  left: -10px;
  right: -10px;
  bottom: -6px;
  height: 18px;
  border-radius: 50%;
}

.sd-ground-pad.snow {
  background: 
    radial-gradient(ellipse 140px 16px at 50% 40%, rgba(255, 255, 255, 0.9), transparent 70%),
    radial-gradient(ellipse 100px 10px at 50% 50%, rgba(240, 248, 255, 0.7), transparent);
  filter: blur(1px);
}

.sd-ground-pad.leaves {
  background: 
    radial-gradient(ellipse 140px 16px at 50% 40%, rgba(139, 69, 19, 0.6), transparent 70%),
    radial-gradient(ellipse 100px 10px at 50% 50%, rgba(205, 133, 63, 0.5), transparent);
  filter: blur(1px);
}

.sd-ground-pad.easter {
  background: 
    radial-gradient(ellipse 140px 16px at 50% 40%, rgba(144, 238, 144, 0.7), transparent 70%),
    radial-gradient(ellipse 100px 10px at 50% 50%, rgba(122, 204, 122, 0.6), transparent);
  filter: blur(1px);
}

.sd-ground-pad.summer {
  background: 
    radial-gradient(ellipse 140px 16px at 50% 40%, rgba(244, 228, 193, 0.8), transparent 70%),
    radial-gradient(ellipse 100px 10px at 50% 50%, rgba(230, 213, 168, 0.6), transparent);
  filter: blur(1px);
}

/* ========== COMIC STYLE ICON ANIMATIONS ========== */
/* Pumpkin Animations */
.sd-pumpkin-icon {
  animation: sd-gentle-sway 3s ease-in-out infinite;
  filter: drop-shadow(3px 3px 0 rgba(0,0,0,0.3));
}

@keyframes sd-gentle-sway {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}

.sd-pumpkin-glow {
  animation: sd-spooky-glow 2s ease-in-out infinite;
}

@keyframes sd-spooky-glow {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}

/* Snowman Animations */
.sd-snowman-icon {
  animation: sd-snowman-bounce 2.5s ease-in-out infinite;
  filter: drop-shadow(3px 3px 0 rgba(0,0,0,0.3));
}

@keyframes sd-snowman-bounce {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-8px) scale(1.02); }
}

.sd-snowman-shimmer {
  animation: sd-ice-shimmer 3s ease-in-out infinite;
}

@keyframes sd-ice-shimmer {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.7; }
}

/* Bunny Animations */
.sd-bunny-icon {
  animation: sd-bunny-hop 2s ease-in-out infinite;
  filter: drop-shadow(3px 3px 0 rgba(0,0,0,0.3));
}

@keyframes sd-bunny-hop {
  0%, 100% { transform: translateY(0); }
  25% { transform: translateY(-10px); }
  50% { transform: translateY(-5px); }
  75% { transform: translateY(-12px); }
}

.sd-bunny-ear-left {
  animation: sd-ear-wiggle-left 1.5s ease-in-out infinite;
  transform-origin: 60px 57px;
}

.sd-bunny-ear-right {
  animation: sd-ear-wiggle-right 1.5s ease-in-out infinite;
  transform-origin: 120px 57px;
}

@keyframes sd-ear-wiggle-left {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-8deg); }
  75% { transform: rotate(3deg); }
}

@keyframes sd-ear-wiggle-right {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  75% { transform: rotate(-3deg); }
}

/* Sun Animations */
.sd-sun-icon {
  animation: sd-sun-pulse 2s ease-in-out infinite;
  filter: drop-shadow(3px 3px 0 rgba(0,0,0,0.3));
}

@keyframes sd-sun-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

.sd-sun-rays {
  animation: sd-rotate-rays 20s linear infinite;
  transform-origin: center;
}

@keyframes sd-rotate-rays {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.sd-sun-shine {
  animation: sd-shine 1.5s ease-in-out infinite;
}

@keyframes sd-shine {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 0.8; }
}