@tailwind base;
@tailwind components;
@tailwind utilities;
@import './style.css';

.animate-gradient {
    background-size: 300% 300%;
    background-position: 0% 50%;
    animation: gradientMove 6s ease infinite;
}

@keyframes gradientMove {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.gis-hero {
    background-color: #06121f;

    background-image:
        radial-gradient(circle at 20% 20%, rgba(14,165,233,0.35) 0%, transparent 40%),
        radial-gradient(circle at 80% 30%, rgba(251,191,36,0.25) 0%, transparent 45%),
        radial-gradient(circle at 50% 80%, rgba(3,105,161,0.35) 0%, transparent 60%);

    overflow: hidden;
}

.gis-hero::before {
    content: "";
    position: absolute;
    inset: 0;

    background-image:
        linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);

    background-size: 60px 60px;
    opacity: 0.35;
    pointer-events: none;
}


.gis-hero h1 {
    text-shadow: 0 10px 40px rgba(0,0,0,0.4);
}

.wave {
    position: absolute;
    bottom: 0;
    left: 0;

    width: 200%;
    height: 120%;

    display: block; 
}

.wave-1 {
    fill: rgba(56,189,248,0.12);
    animation: waveMove1 8s linear infinite;
}

.wave-2 {
    fill: rgba(255,255,255,0.06);
    animation: waveMove2 12s linear infinite;
    opacity: 0.9;
}

@keyframes waveMove1 {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes waveMove2 {
    0% { transform: translateX(0); }
    100% { transform: translateX(-30%); }
}

input[type="date"]::-webkit-calendar-picker-indicator {
    filter: brightness(0) invert(1);
    cursor: pointer;
}

/* animation */
/* ===== Entrance animation ===== */
.fade-in-up {
    opacity: 0;
    transform: translateY(24px);
    animation: fadeInUp 0.8s ease forwards;
}

@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== Gradient text shimmer ===== */
.animate-gradient-text {
    background-size: 200% auto;
    animation: gradientText 4s ease infinite;
}

@keyframes gradientText {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* ===== Floating blobs ===== */
.animate-blob-1 {
    animation: floatBlob1 12s ease-in-out infinite;
}
.animate-blob-2 {
    animation: floatBlob2 14s ease-in-out infinite;
}
.animate-blob-3 {
    animation: floatBlob3 16s ease-in-out infinite;
}

@keyframes floatBlob1 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(40px, 30px) scale(1.1); }
}
@keyframes floatBlob2 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(-40px, -30px) scale(1.15); }
}
@keyframes floatBlob3 {
    0%, 100% { transform: translate(-50%, 0) scale(1); opacity: 0.6; }
    50% { transform: translate(-50%, -40px) scale(1.2); opacity: 0.9; }
}

/* ===== Floating particles ===== */
.particles span {
    position: absolute;
    display: block;
    width: 4px;
    height: 4px;
    background: rgba(56,189,248,0.6);
    border-radius: 50%;
    animation: particleFloat linear infinite;
}

.particles span:nth-child(1) { left: 10%; top: 80%; animation-duration: 9s; animation-delay: 0s; }
.particles span:nth-child(2) { left: 25%; top: 90%; animation-duration: 12s; animation-delay: 1.5s; background: rgba(251,191,36,0.6); }
.particles span:nth-child(3) { left: 45%; top: 85%; animation-duration: 10s; animation-delay: 3s; }
.particles span:nth-child(4) { left: 65%; top: 95%; animation-duration: 14s; animation-delay: 2s; background: rgba(251,191,36,0.5); }
.particles span:nth-child(5) { left: 80%; top: 88%; animation-duration: 11s; animation-delay: 4s; }
.particles span:nth-child(6) { left: 90%; top: 92%; animation-duration: 13s; animation-delay: 1s; background: rgba(255,255,255,0.5); }

@keyframes particleFloat {
    0% { transform: translateY(0) translateX(0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translateY(-600px) translateX(30px); opacity: 0; }
}

/* ===== Scroll indicator ===== */
.scroll-indicator {
    animation: bounce 2s ease-in-out infinite;
}

@keyframes bounce {
    0%, 100% { transform: translateY(0); opacity: 0.5; }
    50% { transform: translateY(8px); opacity: 1; }
}

#mapDetail{
    z-index:1;
}

.leaflet-control-layers {
    font-size: 12px;
    border-radius: 6px !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.15) !important;
}

.leaflet-control-layers-toggle {
    width: 28px !important;
    height: 28px !important;
    background-size: 14px 14px !important;
}

.leaflet-control-layers-expanded {
    padding: 6px 8px !important;
}

.leaflet-control-layers-selector {
    transform: scale(0.9);
}

.leaflet-control-layers label {
    font-size: 12px;
    margin-bottom: 2px;
}

input[type="date"]::-webkit-calendar-picker-indicator {
    filter: invert(20%);
    opacity: 1;
    cursor: pointer;
}
