body {
    scroll-behavior: smooth;
}

#app-container {
    padding-top: 2rem; 
    padding-bottom: 8rem; 
}

#hero-section .hero-content-enter {
    animation: subtleFadeInUp 0.8s ease-out 0.2s forwards;
    opacity: 0;
}

@keyframes subtleFadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


#game-map {
    background-color: #2c3e50; 
    position: relative;
    overflow: hidden;
    background-image:
        linear-gradient(rgba(255,255,255,0.07) 4px, transparent 4px), 
        linear-gradient(90deg, rgba(255,255,255,0.07) 4px, transparent 4px), 
        linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
    background-size:
        120px 120px, 
        120px 120px, 
        30px 30px,   
        30px 30px;   
}

.location-marker {
    position: absolute;
    transform: translate(-50%, -50%);
    padding: 0px; 
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out, border 0.2s ease-out;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px; 
    height: 44px;
    border: 2px solid rgba(255,255,255,0.5);
}

@media (max-width: 768px) {
    .location-marker {
        width: 38px;
        height: 38px;
    }
}


.location-marker:hover {
    transform: translate(-50%, -50%) scale(1.15);
    box-shadow: 0 0 18px rgba(255, 255, 255, 0.8);
}

.merchant-marker {
    background-color: #ff8c00; 
    color: white;
    border-color: #e67e22;
}

.customer-marker {
    background-color: #67C23A; 
    color: white;
    border-color: #55a532;
}

.rider-icon {
    position: absolute;
    width: 50px; 
    height: 50px;
    z-index: 10;
}
@media (max-width: 768px) {
    .rider-icon {
        width: 40px;
        height: 40px;
    }
}


.highlight-location {
    box-shadow: 0 0 25px 8px #FFF352 !important; 
    border: 3px solid #FFF352 !important;
    transform: translate(-50%, -50%) scale(1.1);
}

.prose h4 {
    color: #D91F11; 
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    font-weight: 600;
}

.prose p, .prose li {
    margin-bottom: 0.8em;
    line-height: 1.6;
}
.prose ol, .prose ul {
    padding-left: 1.5rem;
}

.prose strong.rules-keyword {
    color: #E2231A;
    font-weight: 600;
}


@keyframes pulse {
    0%, 100% {
        transform: scale(1);
        filter: brightness(100%);
    }
    50% {
        transform: scale(1.05);
        filter: brightness(110%);
    }
}

#start-challenge-btn {
    animation: pulse 2s infinite ease-in-out;
}


#random-event-popup { 
    display: none; 
}


@keyframes bounceInDown {
  0% {
    opacity: 0;
    transform: translate(-50%, -150%) scale(0.3);
  }
  50% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.05);
  }
  70% {
    transform: translate(-50%, -50%) scale(0.95);
  }
  100% {
    transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes fadeOutCustom {
    from { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    to { opacity: 0; transform: translate(-50%, -30%) scale(0.8); display:none; }
}


.active-section {
    display: block !important; 
    width: 100%;
    animation: fadeIn 0.5s ease-out;
}

.inactive-section {
    display: none !important;
}


@keyframes fadeIn {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}

.rider-trail-particle {
    position: absolute;
    width: 10px;
    height: 10px;
    background-color: rgba(255, 215, 0, 0.6); 
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none; 
    z-index: 9; 
    box-shadow: 0 0 5px rgba(255,215,0,0.5);
}

.location-marker.congested-zone {
    border: 3px dashed rgba(220, 20, 60, 0.7); 
    animation: pulseRedBorder 1.2s infinite ease-in-out;
}
.congestion-overlay-visual {
    position: absolute;
    width: 110%; 
    height: 110%;
    border-radius: 50%;
    background-color: rgba(220, 20, 60, 0.15); 
    animation: pulseCongestionAura 1.8s infinite alternate ease-in-out;
    pointer-events: none;
    z-index: -1; 
}

@keyframes pulseRedBorder {
    0% { border-color: rgba(220, 20, 60, 0.7); }
    50% { border-color: rgba(255, 80, 100, 0.9); }
    100% { border-color: rgba(220, 20, 60, 0.7); }
}
@keyframes pulseCongestionAura {
    from { transform: scale(0.95); opacity: 0.1; }
    to { transform: scale(1.05); opacity: 0.25; }
}


#accelerator-powerup {
    border: 2px solid white;
    box-shadow: 0 0 15px 5px rgba(255, 215, 0, 0.7);
}
#accelerator-powerup.active {
    animation: pulseYellowGlow 1s infinite;
}

@keyframes pulseYellowGlow {
    0%, 100% { box-shadow: 0 0 15px 5px rgba(255, 215, 0, 0.7); transform: scale(1); }
    50% { box-shadow: 0 0 25px 10px rgba(255, 215, 0, 1); transform: scale(1.1); }
}


.game-feedback-popup {
    position: absolute;
    padding: 6px 12px;
    border-radius: 20px;
    font-weight: bold;
    font-size: 0.9rem;
    z-index: 100;
    transform: translateX(-50%);
    pointer-events: none;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.2);
    border: 1px solid rgba(255,255,255,0.5);
}
.game-feedback-popup.success {
    background: linear-gradient(135deg, #4CAF50, #81C784);
    color: white;
    box-shadow: 0 2px 10px rgba(76, 175, 80, 0.5);
}
.game-feedback-popup.info {
    background: linear-gradient(135deg, #2196F3, #64B5F6);
    color: white;
    box-shadow: 0 2px 10px rgba(33, 150, 243, 0.5);
}
.game-feedback-popup.warning {
    background: linear-gradient(135deg, #FF9800, #FFB74D);
    color: white;
    box-shadow: 0 2px 10px rgba(255, 152, 0, 0.5);
}

#order-now-section h3 {
    animation: pulseRedText 2s infinite;
}
@keyframes pulseRedText {
    0%, 100% { color: #e2231a; }
    50% { color: #ff4d4d; }
}

.prose i[data-lucide] {
    vertical-align: middle;
}
