/** Shopify CDN: Minification failed

Line 117:96 Unexpected "]"

**/
/*!
 * Veloura Animation Layer v1.3.2
 * Cartoony Motion Pack
 * - CSS-first ATC wiggle every 5s
 * - High-specificity .va-atc selector with !important to beat theme resets
 * - Reduced-motion respected unless body[data-va-atc-wiggle=on] or body[data-va-force-motion=on]
 * Safe: transform + opacity only
 */

/* Tokens */
:root {
  --va-ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --va-ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
  --va-ease-in-out: cubic-bezier(0.45, 0, 0.40, 1);

  --va-dur-70: 70ms;
  --va-dur-120: 120ms;
  --va-dur-140: 140ms;
  --va-dur-160: 160ms;
  --va-dur-180: 180ms;
  --va-dur-200: 200ms;
  --va-dur-220: 220ms;
  --va-dur-240: 240ms;
  --va-dur-260: 260ms;
  --va-dur-280: 280ms;
  --va-dur-320: 320ms;
  --va-dur-360: 360ms;
  --va-dur-400: 400ms;
  --va-dur-600: 600ms;

  --va-sparkle-size: 12px;

  /* Idle cart nudge interval; customize via body if needed */
  --va-idle-interval: 20s;
}

/* Base */
.va-anim { backface-visibility: hidden; transform-origin: center; will-change: transform, opacity; }

/* Reduced Motion guard with escape hatches */
@media (prefers-reduced-motion: reduce) {
  /* Global heavy auto-motions off unless forced */
  body:not([data-va-force-motion="on"]) .va-sticker-in,
  body:not([data-va-force-motion="on"]) .va-fade-lift-in,
  body:not([data-va-force-motion="on"]) .va-wiggle-once,
  body:not([data-va-force-motion="on"]) .va-toast-in,
  body:not([data-va-force-motion="on"]) .va-drawer-enter,
  body:not([data-va-force-motion="on"]) .va-peel-in,
  body:not([data-va-force-motion="on"]) .va-image-pop,
  body:not([data-va-force-motion="on"]) .va-threshold-pop,
  body:not([data-va-force-motion="on"]) .va-sparkle {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
  body:not([data-va-force-motion="on"]) .va-tilt,
  body:not([data-va-force-motion="on"]) .va-tilt-img,
  body:not([data-va-force-motion="on"]) .va-tilt-text { transition: none !important; transform: none !important; }
}

/* ===== Global enters ===== */
@keyframes va-sticker-pop {
  0%   { transform: scale(0.96); opacity: 0.0; }
  60%  { transform: scale(1.04); opacity: 1; }
  100% { transform: scale(1.00); }
}
.va-sticker-in { animation: va-sticker-pop var(--va-dur-240) var(--va-ease-out-back) both; }

@keyframes va-fade-lift {
  0%   { opacity: 0; transform: translateY(6px); }
  100% { opacity: 1; transform: translateY(0); }
}
.va-fade-lift-in { animation: va-fade-lift var(--va-dur-180) var(--va-ease-out) both; }

/* ===== Buttons and Icons ===== */
@keyframes va-rubber-press {
  0%   { transform: scale(1, 1); }
  45%  { transform: scaleX(1.04) scaleY(0.90); }
  70%  { transform: scaleX(0.98) scaleY(1.02); }
  100% { transform: scale(1, 1); }
}
@keyframes va-press-rebound {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.02, 0.98); }
  100% { transform: scale(1); }
}
.va-pressable { transition: transform var(--va-dur-160) var(--va-ease-out); }
.va-pressable.is-pressed { animation: va-rubber-press var(--va-dur-160) var(--va-ease-out) both; }
.va-press-rebound { animation: va-press-rebound var(--va-dur-140) var(--va-ease-out); }

/* One-shot wiggle used by JS */
@keyframes va-wiggle-nod {
  0%   { transform: rotate(0deg); }
  20%  { transform: rotate(-1.5deg); }
  40%  { transform: rotate(1.5deg); }
  60%  { transform: rotate(-0.5deg); }
  100% { transform: rotate(0deg); }
}
.va-wiggle-once { animation: va-wiggle-nod var(--va-dur-400, 400ms) ease-out both; transform-origin: center; display: inline-flex; }

/* Every-5s wiggle cycle (0.4s motion + 4.6s rest) */
@keyframes va-wiggle-5s {
  0%   { transform: rotate(0deg); }
  2%   { transform: rotate(-1.5deg); }  /* ~0.10s */
  4.5% { transform: rotate(1.5deg); }   /* ~0.225s */
  6.5% { transform: rotate(-0.5deg); }  /* ~0.325s */
  8%   { transform: rotate(0deg); }     /* ~0.40s */
  100% { transform: rotate(0deg); }
}

/* High-specificity target for ATC buttons that JS marks with .va-atc */
.va-atc:not([disabled]):not(.disabled):not([aria-disabled="true"]):not(.loading):not(.is-loading]) {
  transform-origin: center;
  animation: va-wiggle-5s 5s var(--va-ease-out) infinite !important;
}

/* Also apply to likely ATC selectors for the moments before JS marks .va-atc */
:where(
  button[name="add"],
  button[type="submit"][name="add"],
  .product-form__submit,
  .quick-add__submit,
  [data-add-to-cart],
  .add-to-cart,
  form[action*="/cart/add"] button[type="submit"],
  form[action*="/cart/add"] input[type="submit"],
  [data-product-add],
  [data-pf-type="atc"]
):not([disabled]):not(.disabled):not([aria-disabled="true"]):not(.loading):not(.is-loading) {
  transform-origin: center;
  animation: va-wiggle-5s 5s var(--va-ease-out) infinite;
}

/* Respect reduced motion unless explicitly allowed for ATC */
@media (prefers-reduced-motion: reduce) {
  body:not([data-va-force-motion="on"]):not([data-va-atc-wiggle="on"]) .va-atc,
  body:not([data-va-force-motion="on"]):not([data-va-atc-wiggle="on"]) :where(
    button[name="add"],
    button[type="submit"][name="add"],
    .product-form__submit,
    .quick-add__submit,
    [data-add-to-cart],
    .add-to-cart,
    form[action*="/cart/add"] button[type="submit"],
    form[action*="/cart/add"] input[type="submit"],
    [data-product-add],
    [data-pf-type="atc"]
  ) {
    animation: none !important;
  }
}

/* ===== Product Grid and PDP ===== */
.va-tilt { transform-style: preserve-3d; }
.va-tilt, .va-tilt-img, .va-tilt-text {
  transition: transform var(--va-dur-200) var(--va-ease-out);
  will-change: transform;
}

/* Image Pop on swatch change */
@keyframes va-image-pop {
  0%   { opacity: 0.6; transform: scale(0.98); }
  100% { opacity: 1; transform: scale(1.00); }
}
.va-image-pop { animation: va-image-pop var(--va-dur-70) var(--va-ease-out) both; }

/* Benefit tag peel */
@keyframes va-peel-in {
  0%   { transform: rotate(-6deg) skewX(-6deg) translate(-6px, -6px); opacity: 0; filter: drop-shadow(0 0 0 rgba(0,0,0,0.0)); }
  100% { transform: rotate(0deg) skewX(0deg) translate(0, 0); opacity: 1; filter: drop-shadow(0 1px 1px rgba(0,0,0,0.08)); }
}
.va-peel-in { animation: va-peel-in var(--va-dur-160) var(--va-ease-out) both; transform-origin: top left; }

/* ===== Cart Drawer and Promotions ===== */
@keyframes va-spring-in-right {
  0%   { transform: translateX(16px); }
  80%  { transform: translateX(-4px); }
  100% { transform: translateX(0); }
}
.va-drawer-enter { animation: va-spring-in-right var(--va-dur-280) var(--va-ease-out-back) both; }

@keyframes va-bump {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.06); }
  100% { transform: scale(1); }
}
.va-bump { animation: va-bump var(--va-dur-140) var(--va-ease-out) both; }

@keyframes va-tick {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
.va-tick { animation: va-tick var(--va-dur-160) var(--va-ease-out) both; display: inline-block; }

/* Confetti tile */
.va-confetti-tile {
  animation: va-sticker-pop var(--va-dur-220) var(--va-ease-out-back) both;
  border-radius: 12px;
  overflow: hidden;
  pointer-events: none;
}

/* Threshold pop */
@keyframes va-pop {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.10); }
  100% { transform: scale(1); }
}
.va-threshold-pop { animation: va-pop var(--va-dur-160) var(--va-ease-out-back) both; }

/* ===== Checkout and System Feedback ===== */
@keyframes va-check-bounce {
  0%   { transform: scale(0.7); }
  70%  { transform: scale(1.10); }
  100% { transform: scale(1.00); }
}
.va-check-bounce { animation: va-check-bounce var(--va-dur-180) var(--va-ease-out-back) both; }

@keyframes va-shake {
  0%   { transform: translateX(0); }
  20%  { transform: translateX(-6px); }
  40%  { transform: translateX(6px); }
  60%  { transform: translateX(-3px); }
  80%  { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
.va-shake { animation: va-shake var(--va-dur-300, 300ms) var(--va-ease-out) both; }

@keyframes va-toast-in {
  0%   { opacity: 0; transform: translateY(-8px); }
  100% { opacity: 1; transform: translateY(0); }
}
.va-toast-in { animation: va-toast-in var(--va-dur-160) var(--va-ease-out) both; }

/* ===== Cart Icon Bounce + Idle ===== */
@keyframes va-cart-bounce {
  0%   { transform: translateY(0) scale(1); }
  28%  { transform: translateY(-6px) scale(1.08); }
  48%  { transform: translateY(2px) scale(0.98); }
  70%  { transform: translateY(-2px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}
.va-cart-bounce { animation: va-cart-bounce var(--va-dur-360) var(--va-ease-out-back) both; }

@media (prefers-reduced-motion: reduce) {
  @keyframes va-cart-bounce-rm {
    0%   { transform: translateY(0) scale(1); }
    40%  { transform: translateY(-2px) scale(1.02); }
    100% { transform: translateY(0) scale(1); }
  }
  body:not([data-va-force-motion="on"]) .va-cart-bounce-rm { animation: va-cart-bounce-rm var(--va-dur-200) linear both; }
}

@keyframes va-idle-cart {
  0%, 94% { transform: none; }
  95%     { transform: translateY(-6px) scale(1.06); }
  97%     { transform: translateY(2px)  scale(0.98); }
  99%     { transform: translateY(-2px) scale(1.02); }
  100%    { transform: none; }
}
@keyframes va-idle-cart-rm {
  0%, 97% { transform: none; }
  98%     { transform: translateY(-2px) scale(1.02); }
  100%    { transform: none; }
}
@keyframes va-idle-bubble {
  0%, 94% { transform: none; }
  95%     { transform: translateY(-6px) scale(1.06); }
  100%    { transform: none; }
}
@keyframes va-idle-bubble-rm {
  0%, 97% { transform: none; }
  98%     { transform: translateY(-2px) scale(1.02); }
  100%    { transform: none; }
}

/* Apply idle loop only when JS idle is not active */
@supports selector(:has(*)) {
  body:not([data-va-js-idle="on"]) .header__icon--cart:has(.cart-count-bubble:not([aria-hidden="true"])),
  body:not([data-va-js-idle="on"]) .header__icons a[href*="/cart"]:has(.cart-count-bubble:not([aria-hidden="true"])),
  body:not([data-va-js-idle="on"]) .header__icons button[aria-controls*="cart"]:has(.cart-count-bubble:not([aria-hidden="true"])) {
    animation: va-idle-cart var(--va-idle-interval) var(--va-ease-in-out) infinite;
    transform-origin: center;
  }

  body:not([data-va-js-idle="on"]) .header__icon--cart:has(.cart-count-bubble[data-count]:not([data-count="0"])),
  body:not([data-va-js-idle="on"]) .header__icons a[href*="/cart"]:has(.cart-count-bubble[data-count]:not([data-count="0"])),
  body:not([data-va-js-idle="on"]) .header__icons button[aria-controls*="cart"]:has(.cart-count-bubble[data-count]:not([data-count="0"])) {
    animation: va-idle-cart var(--va-idle-interval) var(--va-ease-in-out) infinite;
  }

  @media (prefers-reduced-motion: reduce) {
    body:not([data-va-force-motion="on"]) body:not([data-va-js-idle="on"]) .header__icon--cart:has(.cart-count-bubble:not([aria-hidden="true"])),
    body:not([data-va-force-motion="on"]) body:not([data-va-js-idle="on"]) .header__icons a[href*="/cart"]:has(.cart-count-bubble:not([aria-hidden="true"])),
    body:not([data-va-force-motion="on"]) body:not([data-va-js-idle="on"]) .header__icons button[aria-controls*="cart"]:has(.cart-count-bubble:not([aria-hidden="true"])) {
      animation: va-idle-cart-rm var(--va-idle-interval) linear infinite;
    }
    body:not([data-va-force-motion="on"]) body:not([data-va-js-idle="on"]) .header__icon--cart:has(.cart-count-bubble[data-count]:not([data-count="0"])),
    body:not([data-va-force-motion="on"]) body:not([data-va-js-idle="on"]) .header__icons a[href*="/cart"]:has(.cart-count-bubble[data-count]:not([data-count="0"])),
    body:not([data-va-force-motion="on"]) body:not([data-va-js-idle="on"]) .header__icons button[aria-controls*="cart"]:has(.cart-count-bubble[data-count]:not([data-count="0"])) {
      animation: va-idle-cart-rm var(--va-idle-interval) linear infinite;
    }
  }
}

/* Fallback when :has() is unavailable: animate the bubble itself if visible */
body:not([data-va-js-idle="on"]) .cart-count-bubble:not([aria-hidden="true"]) {
  animation: va-idle-bubble var(--va-idle-interval) var(--va-ease-in-out) infinite;
  transform-origin: center;
}
body:not([data-va-js-idle="on"]) .cart-count-bubble[data-count]:not([data-count="0"]) {
  animation: va-idle-bubble var(--va-idle-interval) var(--va-ease-in-out) infinite;
}
@media (prefers-reduced-motion: reduce) {
  body:not([data-va-force-motion="on"]) body:not([data-va-js-idle="on"]) .cart-count-bubble:not([aria-hidden="true"]) { animation: va-idle-bubble-rm var(--va-idle-interval) linear infinite; }
  body:not([data-va-force-motion="on"]) body:not([data-va-js-idle="on"]) .cart-count-bubble[data-count]:not([data-count="0"]) { animation: va-idle-bubble-rm var(--va-idle-interval) linear infinite; }
}
