/* GLOBAL INVESTMENT CAPITAL
   Shared animation system
*/

/* Smooth page entrance */
body {
    animation: gicPageEnter .65s ease both;
}

@keyframes gicPageEnter {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

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

/* Scroll reveal */
[data-reveal],
.gic-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition:
        opacity .7s ease,
        transform .7s cubic-bezier(.2, .7, .2, 1);
    will-change: opacity, transform;
}

[data-reveal="left"] {
    transform: translateX(-28px);
}

[data-reveal="right"] {
    transform: translateX(28px);
}

[data-reveal="zoom"] {
    transform: scale(.94);
}

[data-reveal].is-visible,
.gic-reveal.is-visible {
    opacity: 1;
    transform: translate(0) scale(1);
}

/* Staggered children */
[data-reveal-group]>* {
    opacity: 0;
    transform: translateY(20px);
    transition:
        opacity .6s ease,
        transform .6s cubic-bezier(.2, .7, .2, 1);
}

[data-reveal-group].is-visible>* {
    opacity: 1;
    transform: translateY(0);
}

[data-reveal-group].is-visible>*:nth-child(2) {
    transition-delay: .10s;
}

[data-reveal-group].is-visible>*:nth-child(3) {
    transition-delay: .20s;
}

[data-reveal-group].is-visible>*:nth-child(4) {
    transition-delay: .30s;
}

[data-reveal-group].is-visible>*:nth-child(5) {
    transition-delay: .40s;
}

[data-reveal-group].is-visible>*:nth-child(6) {
    transition-delay: .50s;
}

/* Premium glowing background */
.gic-animated-glow {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.gic-animated-glow::before,
.gic-animated-glow::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    filter: blur(85px);
    pointer-events: none;
    opacity: .18;
}

.gic-animated-glow::before {
    background: #168cff;
    top: -130px;
    left: -100px;
    animation: gicGlowMove 12s ease-in-out infinite alternate;
}

.gic-animated-glow::after {
    background: #20d5e8;
    right: -120px;
    bottom: -150px;
    animation: gicGlowMove 15s ease-in-out infinite alternate-reverse;
}

@keyframes gicGlowMove {
    from {
        transform: translate(0, 0) scale(.9);
    }

    to {
        transform: translate(45px, 35px) scale(1.2);
    }
}

/* Floating decorative elements */
.gic-float {
    animation: gicFloat 5s ease-in-out infinite;
}

@keyframes gicFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-9px);
    }
}

/* Card interaction */
.card,
.contact-card,
.benefit-card,
.feature-card,
.stat-card,
.metric-card {
    transition:
        transform .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}

.card:hover,
.contact-card:hover,
.benefit-card:hover,
.feature-card:hover,
.stat-card:hover,
.metric-card:hover {
    transform: translateY(-4px);
    border-color: rgba(56, 165, 255, .38);
    box-shadow: 0 12px 35px rgba(0, 0, 0, .18);
}

/* Buttons */
button,
.btn,
.contact-button,
a.button {
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        filter .22s ease;
}

button:hover,
.btn:hover,
.contact-button:hover,
a.button:hover {
    filter: brightness(1.08);
    box-shadow: 0 7px 22px rgba(39, 160, 255, .17);
}

button:active,
.btn:active,
.contact-button:active,
a.button:active {
    transform: scale(.97);
}

/* Navigation drawer */
.navigation-drawer {
    transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}

.drawer-overlay {
    transition: opacity .3s ease, visibility .3s ease;
}

/* Subtle link underline */
.desktop-nav a,
.top-right a {
    transition: color .2s ease;
}

.desktop-nav a:hover,
.top-right a:hover {
    color: #38a5ff;
}

/* Animated accent line */
.gic-accent-line {
    height: 3px;
    width: 65px;
    border-radius: 10px;
    background: linear-gradient(90deg, #38a5ff, #27d5e8);
    transform-origin: left;
    animation: gicLineGrow .8s ease both;
}

@keyframes gicLineGrow {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

/* Animated number highlight */
[data-counter] {
    font-variant-numeric: tabular-nums;
}

/* Loading shimmer, for optional loading placeholders */
.gic-shimmer {
    background: linear-gradient(100deg,
            rgba(255, 255, 255, .035) 20%,
            rgba(255, 255, 255, .10) 45%,
            rgba(255, 255, 255, .035) 70%);
    background-size: 200% 100%;
    animation: gicShimmer 1.7s linear infinite;
}

@keyframes gicShimmer {
    to {
        background-position: -200% 0;
    }
}

/* Keyboard accessibility */
button:focus-visible,
a:focus-visible {
    outline: 2px solid #27d5e8;
    outline-offset: 4px;
}

/* Respect user motion preferences */
@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }

    [data-reveal],
    .gic-reveal,
    [data-reveal-group]>* {
        opacity: 1 !important;
        transform: none !important;
    }

    body {
        animation: none !important;
    }
}