/* Custom Neo-Brutalist Styling Utilities */

:root {
  --neo-black: #000000;
  --neo-pink: #ff2e93;
  --neo-yellow: #ffe600;
  --neo-teal: #00e5ff;
  --neo-blue: #4d6bfe;
  --neo-purple: #150228;
  --neo-card-bg: #ffffff;
}

/* Hard Offset Shadows */
.shadow-neo-sm {
  box-shadow: 2px 2px 0px 0px var(--neo-black);
}

.shadow-neo {
  box-shadow: 4px 4px 0px 0px var(--neo-black);
}

.shadow-neo-md {
  box-shadow: 6px 6px 0px 0px var(--neo-black);
}

.shadow-neo-lg {
  box-shadow: 8px 8px 0px 0px var(--neo-black);
}

.shadow-neo-yellow {
  box-shadow: 6px 6px 0px 0px var(--neo-yellow);
}

.shadow-neo-teal {
  box-shadow: 6px 6px 0px 0px var(--neo-teal);
}

/* Borders */
.border-neo-2 {
  border: 2px solid var(--neo-black);
}

.border-neo-3 {
  border: 3px solid var(--neo-black);
}

.border-neo-4 {
  border: 4px solid var(--neo-black);
}

/* Button & Interactive Hover Lift Effects */
.btn-neo {
  transition: transform 0.15s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.15s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.15s ease;
  user-select: none;
}

.btn-neo:hover {
  transform: translate(-3px, -3px);
  box-shadow: 6px 6px 0px 0px var(--neo-black);
}

.btn-neo:active {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0px 0px var(--neo-black);
}

/* Day Selection Cards in Landing Hero */
.day-hero-card {
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  cursor: pointer;
}

.day-hero-card:hover {
  transform: translateY(-6px) scale(1.01);
  box-shadow: 8px 8px 0px 0px var(--neo-black);
}

.day-hero-card:active {
  transform: translateY(1px);
  box-shadow: 3px 3px 0px 0px var(--neo-black);
}

/* Text Stroke / Heavy Drop Shadow */
.text-stroke-black {
  -webkit-text-stroke: 1.5px var(--neo-black);
  paint-order: stroke fill;
}

.text-stroke-thick {
  -webkit-text-stroke: 2.5px var(--neo-black);
  paint-order: stroke fill;
}

.text-shadow-neo {
  text-shadow: 3px 3px 0px var(--neo-black);
}

.text-shadow-neo-lg {
  text-shadow: 4px 4px 0px var(--neo-black);
}

/* Pulse animation for countdown colons */
@keyframes colonPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.92); }
}

.animate-colon {
  animation: colonPulse 1.5s infinite ease-in-out;
}

/* Fade in & slide up animation for ticket reveal */
@keyframes fadeInSlide {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.fade-in-slide {
  animation: fadeInSlide 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
