/* Global Animation Variables */
:root {
    --ease-smooth: cubic-bezier(0.25, 0.1, 0.25, 1);
    --anim-micro: 0.15s;
    --anim-hover: 0.25s;
    --anim-reveal: 0.6s;
    --brand-blue: #1f4494;
}

/* Base Restores */
@media (pointer: fine) {

    body,
    a,
    button,
    [role="button"],
    input,
    select,
    textarea {
        cursor: auto !important;
    }

    a,
    button,
    [role="button"] {
        cursor: pointer !important;
    }
}

/* Lenis */
html.lenis,
html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-smooth iframe {
    pointer-events: none;
}

/* Page Transition Wrapper */
.page-transition-wrapper {
    opacity: 0;
    transform: scale(0.98);
    transition: opacity 0.45s var(--ease-smooth), transform 0.45s var(--ease-smooth);
    will-change: opacity, transform;
}

.page-transition-wrapper.is-loaded {
    opacity: 1;
    transform: scale(1);
}

.page-transition-wrapper.is-leaving {
    opacity: 0;
    transform: scale(0.98);
    transition: opacity 0.35s var(--ease-smooth), transform 0.35s var(--ease-smooth);
}

/* Navigation System */

/* Professional Floating Navigation System */
@media (min-width: 1025px) {
    .floating-nav {
        position: absolute;
        top: 160px;
        left: 50%;
        width: 100%;
        transform: translateX(-50%);
        background: transparent;
        box-shadow: none;
        z-index: 999;
        transition: top 0.4s ease-in-out, background 0.4s ease-in-out, box-shadow 0.4s ease-in-out, padding 0.4s ease-in-out;
        will-change: top, background, box-shadow;
    }

    .floating-nav.sticky-nav {
        position: fixed;
        top: 0px;
        background: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
        padding-top: 1rem;
        padding-bottom: 1rem;
    }
}

@media (max-width: 1024px) {
    .floating-nav {
        transition: all 0.4s ease;
    }

    .floating-nav.sticky-nav {
        position: sticky;
        top: 0;
        z-index: 999;
        background: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(10px);
        box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
    }
}

/* Security Radar Scanning Animation */
.radar-container {
    position: absolute;
    width: 600px;
    height: 600px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    border: 1px solid rgba(31, 68, 148, 0.15);
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
    opacity: 0.6;
}

.radar-grid {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1px solid rgba(31, 68, 148, 0.1);
}

.radar-sweep {
    position: absolute;
    top: 0;
    left: 50%;
    width: 50%;
    height: 50%;
    background: conic-gradient(from 0deg at 0% 100%, rgba(31, 68, 148, 0) 0deg, rgba(31, 68, 148, 0.4) 90deg, transparent 90deg);
    transform-origin: bottom left;
    animation: radarSpin 4s linear infinite;
}

@keyframes radarSpin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* Light Sweep over Title */
.title-light-sweep {
    position: relative;
    display: inline-block;
}

.title-light-sweep::after {
    content: '';
    position: absolute;
    top: -10%;
    left: -20%;
    width: 30px;
    height: 120%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0) 100%);
    transform: rotate(20deg);
    filter: blur(4px);
    animation: sweepBeam 4s cubic-bezier(0.25, 0.1, 0.25, 1) infinite;
    pointer-events: none;
    mix-blend-mode: overlay;
    z-index: 10;
}

@keyframes sweepBeam {
    0% {
        left: -20%;
        opacity: 0;
    }

    10% {
        opacity: 1;
    }

    40% {
        left: 120%;
        opacity: 1;
    }

    50% {
        opacity: 0;
        left: 120%;
    }

    100% {
        opacity: 0;
    }
}

/* Parallax Background Helper */
.parallax-bg {
    will-change: transform;
}

/* Nav Link Hover Underline */
nav>ul>li>a {
    position: relative;
    display: inline-block;
}

nav>ul>li>a::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: -4px;
    left: 50%;
    background-color: var(--brand-blue);
    transform: translateX(-50%);
    transition: width 0.25s var(--ease-smooth);
}

nav>ul>li>a:hover::after {
    width: 100%;
}

/* Dropdown Animation CSS classes (if triggered via CSS, but we'll manage via Tailwind mostly) */
.group:hover .dropdown-menu {
    animation: dropdownAnim 0.25s var(--ease-smooth) forwards;
}

@keyframes dropdownAnim {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Button Micro Interactions */
button,
.btn-primary,
.btn-secondary,
a.inline-flex {
    transition: transform var(--anim-hover) var(--ease-smooth), box-shadow var(--anim-hover) var(--ease-smooth), background-color var(--anim-hover) var(--ease-smooth), color var(--anim-hover) var(--ease-smooth) !important;
    will-change: transform, box-shadow;
}

button:hover,
.btn-primary:hover,
.btn-secondary:hover,
a.inline-flex:hover {
    transform: scale(1.04);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

button i.lucide,
.btn-primary i.lucide,
a.inline-flex i.lucide {
    transition: transform var(--anim-hover) var(--ease-smooth);
}

button:hover i.lucide,
.btn-primary:hover i.lucide,
a.inline-flex:hover i.lucide {
    transform: translateX(4px);
}

/* Cards Hover (Stats, News) */
.hover-card-anim {
    transition: transform 0.3s var(--ease-smooth), box-shadow 0.3s var(--ease-smooth), border-color 0.3s var(--ease-smooth);
}

.hover-card-anim:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.hover-card-anim.news-card:hover {
    border-color: var(--brand-blue);
}

/* Social Icons */
.social-icon-anim {
    transition: transform 0.2s var(--ease-smooth), color 0.2s var(--ease-smooth);
    display: inline-block;
}

.social-icon-anim:hover {
    transform: scale(1.2);
    color: var(--brand-blue) !important;
}

/* Utility constraints */
.hide-initial {
    opacity: 0;
    visibility: hidden;
}