/* =========================================================
   PATCH FINAL: MORADO / NEGRO SIN EFECTO RGB
   ========================================================= */
:root {
    --bg-primary: #07070b;
    --bg-secondary: #0d0b12;
    --bg-tertiary: #15111f;
    --text-primary: #f5f3ff;
    --text-secondary: #b8adc9;
    --text-tertiary: #80748f;
    --accent: #8b5cf6;
    --accent-strong: #7c3aed;
    --accent-light: #c4b5fd;
    --accent-glow: #8b5cf633;
    --accent-soft: #8b5cf614;
    --accent-medium: #8b5cf626;
    --border-color: #2a2335;
    --border-light: #3a2f4c;
    --font-display: 'Oswald', 'Space Grotesk', 'Inter', sans-serif;
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

    --rock-yellow: #8b5cf6;
    --rock-yellow-dark: #5b21b6;
    --rock-black: #050508;
    --rock-panel: #0d0b12;
    --rock-white: #f5f3ff;
    --rock-muted: #b8adc9;
    --rock-border: #7c3aed;
    --rock-red: #2e1065;
}

body {
    background: #07070b !important;
}

.hero-background {
    filter: brightness(0.48) saturate(0.72) contrast(1.08) !important;
    transform: scale(1.035) !important;
}

.hero-overlay {
    background: linear-gradient(
        180deg,
        #07070b33 0%,
        #07070b77 45%,
        #07070bcc 82%,
        #07070b 100%
    ) !important;
}

.hero::before {
    background:
        radial-gradient(circle at 50% 15%, #8b5cf62e, transparent 28%),
        radial-gradient(circle at 18% 48%, #4c1d9530, transparent 27%),
        linear-gradient(180deg, #00000044 0%, #07070ba8 58%, #07070bee 100%) !important;
}

.hero::after {
    opacity: 0.10 !important;
}

h2,
h3,
.section-title,
.feature-text h3,
.food-info h3,
.foundation-card h3,
.logo-text {
    background: none !important;
    -webkit-background-clip: initial !important;
    -webkit-text-fill-color: initial !important;
    background-clip: initial !important;
    color: #c4b5fd !important;
}

.today-banner {
    border-color: #6d28d9 !important;
    background:
        linear-gradient(180deg, #15111ff2, #07070bf7),
        repeating-linear-gradient(-10deg, #ffffff08 0 1px, transparent 1px 8px) !important;
    box-shadow:
        0 30px 85px #000000e6,
        0 0 32px #7c3aed30,
        inset 0 1px 0 #ffffff12 !important;
}

.today-banner::before {
    background: #4c1d95 !important;
    color: #f5f3ff !important;
    border: 1px solid #8b5cf6 !important;
    text-shadow: none !important;
    box-shadow: 0 14px 30px #000000aa !important;
}

.today-banner::after {
    border-color: #8b5cf640 !important;
}

.today-title {
    font-family: 'Oswald', 'Bebas Neue', 'Space Grotesk', sans-serif !important;
    color: #c4b5fd !important;
    letter-spacing: 0.01em !important;
    text-shadow:
        0 4px 0 #2e1065,
        0 14px 34px #000000d9,
        0 0 24px #7c3aed55 !important;
}

.today-title .title-top {
    color: #f5f3ff !important;
}

.today-text,
.hero-organizer,
.countdown-title,
.countdown-number,
.countdown-label {
    color: #f5f3ff !important;
}

.today-text strong,
.rock-bolt,
.rock-mark,
.nav-info-item i,
.info-strip-icon i,
.feature-icon i {
    color: #c4b5fd !important;
}

.countdown-card {
    background:
        linear-gradient(180deg, #15111fe8, #08070deb),
        repeating-linear-gradient(8deg, #ffffff06 0 1px, transparent 1px 8px) !important;
    border-color: #6d28d9 !important;
    box-shadow:
        0 18px 42px #000000aa,
        inset 0 1px 0 #ffffff14 !important;
    animation: none !important;
}

.countdown-label::after,
.countdown-title::before,
.countdown-title::after {
    background: #8b5cf6 !important;
}

.countdown-container.state-soon .countdown-card {
    border-color: #a78bfa !important;
    box-shadow: 0 20px 48px #000000b3, 0 0 26px #8b5cf655 !important;
}

.countdown-container.state-urgent .countdown-card {
    border-color: #c4b5fd !important;
    box-shadow: 0 22px 52px #000000c4, 0 0 34px #a78bfa66 !important;
    animation: purplePulse 1.25s ease-in-out infinite !important;
}

.countdown-container.state-critical .countdown-card {
    border-color: #f5f3ff !important;
    box-shadow: 0 24px 60px #000000d9, 0 0 42px #c4b5fd80 !important;
    animation: criticalPulse 0.8s ease-in-out infinite !important;
}

.countdown-container.state-live .countdown-card {
    opacity: 0.55;
}

.event-live-message {
    color: #c4b5fd !important;
    border-color: #8b5cf6 !important;
    background: #100b1a !important;
    text-shadow: none !important;
    box-shadow: 0 20px 55px #000000aa, 0 0 30px #7c3aed44 !important;
}

.btn-hero,
.btn-primary,
.btn-cta,
.btn-location {
    background: #6d28d9 !important;
    color: #ffffff !important;
    border-color: #8b5cf6 !important;
    box-shadow: 0 18px 40px #00000099, 0 0 18px #7c3aed33 !important;
}

.btn-hero:hover,
.btn-primary:hover,
.btn-cta:hover,
.btn-location:hover {
    background: #7c3aed !important;
    box-shadow: 0 22px 52px #000000b3, 0 0 26px #8b5cf64d !important;
}

.confetti-piece.star,
.confetti-piece.spark,
.confetti-piece.square,
.confetti-piece.diamond,
.confetti-piece.circle,
.confetti-piece.triangle {
    color: #c4b5fd !important;
}

.confetti-piece:nth-child(3n) { color: #8b5cf6 !important; }
.confetti-piece:nth-child(4n) { color: #f5f3ff !important; }
.confetti-piece:nth-child(5n) { color: #4c1d95 !important; }

.fireworks-layer {
    position: fixed;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 9998;
}

.firework-burst {
    position: absolute;
    width: 8px;
    height: 8px;
    left: var(--x);
    top: var(--y);
}

.firework-burst span {
    position: absolute;
    left: 0;
    top: 0;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--c);
    box-shadow: 0 0 14px var(--c);
    transform: rotate(var(--a)) translateY(0) scale(1);
    animation: fireworkParticle 900ms ease-out forwards;
}

@keyframes fireworkParticle {
    0% {
        opacity: 1;
        transform: rotate(var(--a)) translateY(0) scale(1);
    }
    100% {
        opacity: 0;
        transform: rotate(var(--a)) translateY(var(--d)) scale(0.15);
    }
}

@keyframes purplePulse {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-3px) scale(1.025); }
}

@keyframes criticalPulse {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-4px) scale(1.045); }
}

@media (max-width: 768px) {
    .hero-background {
        filter: brightness(0.52) saturate(0.75) contrast(1.05) !important;
    }
}