/* Custom Scrollbar and Safe Area Styling */
:root {
  --safe-area-top: env(safe-area-inset-top, 0px);
  --safe-area-bottom: env(safe-area-inset-bottom, 0px);
}

body {
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  -webkit-user-select: none;
}

.pt-safe {
  padding-top: calc(1rem + var(--safe-area-top));
}

.pb-safe {
  padding-bottom: calc(1rem + var(--safe-area-bottom));
}

/* Typography styles */
h1, h2, h3, h4, h5 {
  letter-spacing: 0.05em;
}

/* Animations & Transitions */
.animate-spin-slow {
  animation: spin 45s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.animate-pulse-slow {
  animation: pulse-glow 4s ease-in-out infinite;
}

@keyframes pulse-glow {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 0 10px rgba(251, 191, 36, 0.3));
  }
  50% {
    transform: scale(1.05);
    filter: drop-shadow(0 0 20px rgba(251, 191, 36, 0.6));
  }
}

/* Card 3D Flip Styles */
.perspective-container {
  perspective: 1000px;
}

.preserve-3d {
  transform-style: preserve-3d;
}

.backface-hidden {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.rotate-y-180 {
  transform: rotateY(180deg);
}

.card-inner.flipped {
  transform: rotateY(180deg);
}

/* Glow gradient background */
.bg-radial-glow {
  background: radial-gradient(circle, rgba(139, 92, 246, 0.15) 0%, rgba(0, 0, 0, 0) 70%);
}

/* Input overrides for mobile */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator {
  filter: invert(1);
  opacity: 0.6;
}

/* Scroll Snap/Fade classes */
.fade-in-up {
  opacity: 0;
  transform: translateY(20px);
}