/* CartVerity v2.1 — lightweight desktop motion layer.
   Everything is progressive enhancement: no animation needed to use the site. */
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
  /* Entrance into marketplace hero */
  .feature-hero .hero-label { animation: cv-rise .64s .08s cubic-bezier(.18,.8,.2,1) both; }
  .feature-hero .hero-content h1 { animation: cv-rise .8s .16s cubic-bezier(.18,.8,.2,1) both; }
  .feature-hero .hero-content p { animation: cv-rise .8s .27s cubic-bezier(.18,.8,.2,1) both; }
  .feature-hero .hero-cta { animation: cv-rise .8s .39s cubic-bezier(.18,.8,.2,1) both; }
  .feature-hero .hero-small-trust { animation: cv-rise .8s .5s cubic-bezier(.18,.8,.2,1) both; }
  @keyframes cv-rise { from {opacity:0;transform:translate3d(0,19px,0)} to {opacity:1;transform:translate3d(0,0,0)} }

  /* Orbit and independently floating shopping cards */
  .feature-hero .art-orbit { animation:cv-orbit 30s linear infinite;will-change:transform; }
  @keyframes cv-orbit { from {transform:rotate(20deg)} to {transform:rotate(380deg)} }
  .feature-hero .hero-card.card-one { animation: cv-float-one 5.7s ease-in-out infinite; }
  .feature-hero .hero-card.card-two { animation: cv-float-two 6.2s ease-in-out -1.7s infinite; }
  .feature-hero .hero-card.card-three { animation: cv-float-three 6.9s ease-in-out -2.4s infinite; }
  @keyframes cv-float-one { 0%,100% {transform:translate3d(0,0,0) rotate(12deg)} 50% {transform:translate3d(-4px,-11px,0) rotate(15deg)} }
  @keyframes cv-float-two { 0%,100% {transform:translate3d(0,0,0) rotate(-8deg)} 50% {transform:translate3d(5px,-13px,0) rotate(-5deg)} }
  @keyframes cv-float-three { 0%,100% {transform:translate3d(0,0,0) rotate(11deg)} 50% {transform:translate3d(-6px,9px,0) rotate(7deg)} }
  .feature-hero .star-one { animation: cv-twinkle 3.8s ease-in-out infinite; }
  .feature-hero .star-two { animation: cv-twinkle 4.7s ease-in-out -1.3s infinite; }
  @keyframes cv-twinkle { 0%,100% {opacity:.8;scale:1} 50% {opacity:1;scale:1.22} }
  .feature-hero .hero-label-dot {animation:cv-beat 2.8s ease-in-out infinite;}
  @keyframes cv-beat {0%,100% {box-shadow:0 0 0 0 rgba(202,250,104,.2)} 50% {box-shadow:0 0 0 7px rgba(202,250,104,0)}}
  .feature-hero .cv-hero-glow {position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(260px circle at var(--cv-x,70%) var(--cv-y,40%),rgba(207,253,120,.15),transparent 72%);opacity:0;transition:opacity .45s ease;}
  .feature-hero.cv-glow-active .cv-hero-glow {opacity:1;}

  /* Scroll reveals are only activated after JS confirms IntersectionObserver. */
  html.cv-motion-ready .cv-scroll-in {opacity:0;transform:translate3d(0,25px,0);transition:transform .73s cubic-bezier(.19,1,.22,1),opacity .73s ease;transition-delay:var(--cv-delay,0ms);}
  html.cv-motion-ready .cv-scroll-in.cv-visible {opacity:1;transform:translate3d(0,0,0);}
  html.cv-motion-ready .department-tile.cv-scroll-in.cv-visible:hover {transform:translate3d(0,-7px,0);}
  html.cv-motion-ready .product-card.cv-scroll-in.cv-visible:hover {transform:translate3d(0,-8px,0);}
  html.cv-motion-ready .compare-step.cv-scroll-in.cv-visible:hover {transform:translate3d(0,-5px,0);}

  /* Category tiles feel clickable without distracting loops. */
  .department-tile {transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease;}
  .department-tile:hover {border-color:#dcd6ff;box-shadow:0 16px 32px rgba(63,48,146,.12);}
  .department-tile .tile-graphic {transition:transform .42s cubic-bezier(.2,.8,.2,1),border-radius .35s ease;}
  .department-tile:hover .tile-graphic {transform:translateY(-5px) rotate(-5deg) scale(1.08);border-radius:20px;}
  .department-tile .tile-more span,.section-action span,.hero-cta span {display:inline-block;transition:transform .3s ease;}
  .department-tile:hover .tile-more span,.section-action:hover span,.hero-cta:hover span {transform:translate3d(3px,-3px,0);}

  /* Lift, zoom and soft light sweep on actual product cards */
  .product-card {transition:transform .36s cubic-bezier(.2,.8,.2,1),box-shadow .36s ease,border-color .36s ease;}
  .product-card:hover,.product-card:focus-within {border-color:#d8d5fa;box-shadow:0 18px 34px rgba(43,34,105,.14);}
  .product-card-media::after {content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 34%,rgba(255,255,255,.37) 48%,transparent 64%);transform:translateX(-140%);transition:transform .85s cubic-bezier(.16,.8,.26,1);}
  .product-card:hover .product-card-media::after,.product-card:focus-within .product-card-media::after {transform:translateX(140%);}
  .product-card .product-image {transition:transform .55s cubic-bezier(.2,.8,.2,1);}
  .product-card:hover .product-image,.product-card:focus-within .product-image {transform:scale(1.065);}
  .product-card:hover .product-emoji {transform:translateY(-5px) scale(1.09) rotate(-5deg);}
  .compare-button {transition:background-color .2s,transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .2s;}
  .compare-button:hover {transform:rotate(-7deg) scale(1.12);box-shadow:0 6px 16px rgba(89,71,203,.22);}
  .product-visit,.hero-cta,.nav-search button {transition:background-color .25s,transform .25s,box-shadow .25s;}
  .product-visit:hover,.hero-cta:hover,.nav-search button:hover {transform:translateY(-2px);box-shadow:0 8px 18px rgba(72,55,170,.16);}

  /* Compare steps & utility polish */
  .compare-step {transition:transform .35s ease,box-shadow .35s ease;}
  .compare-step:hover {box-shadow:0 15px 28px rgba(16,23,49,.15);}
  .compare-step .step-glyph {transition:transform .38s cubic-bezier(.2,.8,.2,1),background-color .28s;}
  .compare-step:hover .step-glyph {transform:rotate(-8deg) scale(1.12);background-color:#e4dfff;}
  .market-picker a,.region-options a {transition:transform .22s,background-color .22s,box-shadow .22s;}
  .market-picker a:hover,.region-options a:hover {transform:translateY(-2px);}
  .compare-tray:not([hidden]) {animation:cv-tray .43s cubic-bezier(.18,.8,.2,1) both;}
  @keyframes cv-tray {from {opacity:0;transform:translate(-50%,22px)} to {opacity:1;transform:translate(-50%,0)}}
}
/* Accessibility: animations never override a visitor's reduced-motion preference. */
@media (prefers-reduced-motion: reduce) {
 .feature-hero *, .cv-scroll-in, .compare-tray {animation:none!important;transition:none!important;opacity:1!important;}
}
