.cart-flight-token {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 100000;
  width: 42px;
  height: 42px;
  pointer-events: none;
  will-change: transform, opacity;
  filter: drop-shadow(0 10px 15px rgba(109, 63, 8, .3));
}

.cart-flight-token::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 32% 26%, #fff9d9 0 8%, transparent 9%),
    linear-gradient(145deg, #f7d77e, #c88517 62%, #8f5307);
  border: 1px solid rgba(255,255,255,.9);
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.18), 0 0 0 6px rgba(221,165,57,.12);
}

.cart-flight-token::after {
  content: "✓";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font: 900 18px/1 Inter, Arial, sans-serif;
  text-shadow: 0 1px 4px rgba(80,43,0,.34);
}

.cart-flight-halo {
  position: fixed;
  z-index: 99999;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid rgba(222,160,43,.8);
  pointer-events: none;
  animation: cartHaloOut .52s ease-out forwards;
}

.cart-spark {
  --spark-x: 0px;
  --spark-y: 0px;
  position: fixed;
  z-index: 100001;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: linear-gradient(145deg,#fff0ae,#d08a18);
  box-shadow: 0 0 8px rgba(231,178,73,.7);
  pointer-events: none;
  animation: cartSparkBurst .58s cubic-bezier(.15,.8,.25,1) forwards;
}

.nav .actions .cart-receive {
  animation: cartIconReceive .62s cubic-bezier(.2,.9,.25,1) both !important;
}

.nav .cart-badge.cart-badge-pop {
  animation: cartBadgePop .64s cubic-bezier(.15,.9,.2,1.2) both !important;
}

@keyframes cartIconReceive {
  0% { transform: scale(1); filter: none; }
  28% { transform: scale(1.24) rotate(-7deg); filter: drop-shadow(0 0 8px rgba(216,148,28,.55)); }
  52% { transform: scale(.93) rotate(4deg); }
  74% { transform: scale(1.08) rotate(-2deg); }
  100% { transform: scale(1); filter: none; }
}

@keyframes cartBadgePop {
  0% { transform: scale(.4); opacity: .35; }
  45% { transform: scale(1.55); opacity: 1; box-shadow: 0 0 0 8px rgba(201,142,42,.15); }
  100% { transform: scale(1); opacity: 1; box-shadow: none; }
}

@keyframes cartHaloOut {
  from { transform: translate(-50%,-50%) scale(.35); opacity: .95; }
  to { transform: translate(-50%,-50%) scale(3.6); opacity: 0; }
}

@keyframes cartSparkBurst {
  from { transform: translate(-50%,-50%) scale(1); opacity: 1; }
  to { transform: translate(calc(-50% + var(--spark-x)),calc(-50% + var(--spark-y))) scale(.15); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .cart-flight-token,
  .cart-flight-halo,
  .cart-spark { display: none !important; }
  .nav .actions .cart-receive,
  .nav .cart-badge.cart-badge-pop { animation-duration: .01ms !important; }
}
