html {
  scroll-behavior: smooth;
  -webkit-tap-highlight-color: transparent;
}

body {
  font-family: 'Inter', sans-serif;
}

/* GiftHisk bolt — same pulse as classic GiftPapa mark */
@keyframes giftpapa-bolt-pulse {
  0%, 100% {
    transform: scale(1) rotate(0deg);
    filter: drop-shadow(0 0 0 rgba(16, 185, 129, 0));
  }
  45% {
    transform: scale(1.08) rotate(-4deg);
    filter: drop-shadow(0 0 7px rgba(52, 211, 153, 0.55));
  }
  70% {
    transform: scale(1.03) rotate(1deg);
    filter: drop-shadow(0 0 3px rgba(16, 185, 129, 0.25));
  }
}

@keyframes giftpapa-bolt-spark {
  0%, 88%, 100% { opacity: 1; }
  91% { opacity: 0.72; }
  93% { opacity: 1; }
  96% { opacity: 0.82; }
}

.giftpapa-bolt,
.gifthisk-mark,
.heic-mark {
  transform-origin: 50% 15%;
  animation:
    giftpapa-bolt-pulse 3.4s cubic-bezier(0.45, 0, 0.55, 1) infinite,
    giftpapa-bolt-spark 5.5s ease-in-out infinite;
}

a:hover .giftpapa-bolt,
.group:hover .giftpapa-bolt,
a:hover .gifthisk-mark,
.group:hover .gifthisk-mark,
a:hover .heic-mark,
.group:hover .heic-mark {
  animation-duration: 1.5s, 2.8s;
}

@media (prefers-reduced-motion: reduce) {
  .giftpapa-bolt,
  .gifthisk-mark,
  .heic-mark {
    animation: none;
  }

  a:hover .giftpapa-bolt,
  .group:hover .giftpapa-bolt,
  a:hover .gifthisk-mark,
  .group:hover .gifthisk-mark,
  a:hover .heic-mark,
  .group:hover .heic-mark {
    transform: scale(1.06);
    transition: transform 0.25s ease;
  }
}

.modal-panel {
  box-shadow: -12px 0 48px rgba(15, 23, 42, 0.12);
}

@media (max-width: 767px) {
  .modal-panel {
    box-shadow: 0 -12px 48px rgba(15, 23, 42, 0.15);
  }
}

.pill-active {
  background: linear-gradient(135deg, #2563eb 0%, #4f46e5 100%);
}

.apple-pay-btn {
  background: #000 !important;
  color: #fff !important;
  min-height: 44px;
}

.apple-pay-btn:hover:not(:disabled) {
  background: #18181b !important;
}

.apple-pay-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.gpay-btn {
  background: #fff !important;
  border: 1px solid #e2e8f0;
  color: #0f172a !important;
  min-height: 44px;
}

.gpay-btn:hover:not(:disabled) {
  background: #f8fafc !important;
}

.gpay-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.stripe-input {
  transition: border-color 0.15s, box-shadow 0.15s;
}

.stripe-input:focus {
  border-color: #635bff;
  box-shadow: 0 0 0 3px rgba(99, 91, 255, 0.15);
  outline: none;
}

.success-check {
  animation: pop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes pop {
  0% {
    transform: scale(0.6);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes hero-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

.hero-card-mockup {
  transform: perspective(1200px) rotateY(-11deg) rotateX(5deg);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.hero-card-mockup:hover {
  transform: perspective(1200px) rotateY(-7deg) rotateX(3deg) translateY(-8px) rotate(2deg);
}

.hero-float-badge {
  animation: hero-float 4s ease-in-out infinite;
}

.hero-float-badge-delay {
  animation: hero-float 4s ease-in-out infinite;
  animation-delay: 1.5s;
}

.hero-float-card {
  animation: hero-float 4s ease-in-out infinite;
}

.hero-float-delay {
  animation-delay: 1.5s;
}

@media (prefers-reduced-motion: reduce) {
  .hero-card-mockup,
  .hero-card-mockup:hover {
    transform: none;
  }

  .hero-float-badge,
  .hero-float-badge-delay,
  .hero-float-card {
    animation: none;
  }
}

