/* Reusing some previous animations but adding GSAP/Olimei-style behaviors */

/* scan-overlay removed — no longer used */

/* Reveal-Up — starts visible, JS adds smooth animation */
.reveal-up {
    opacity: 1;
    transform: translateY(0) scale(1);
    transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

/* JS adds .js-loaded to body, then animations activate */
.js-loaded .reveal-up {
    opacity: 0;
    transform: translateY(30px) scale(0.98);
}

.js-loaded .is-revealed {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* Text typing */
@keyframes typeWriter {
    from { width: 0; }
    to { width: 100%; }
}

.typewriter-text {
    overflow: hidden;
    white-space: nowrap;
    border-right: 2px solid var(--primary-container);
    animation: typeWriter 1.5s steps(40, end), blink-caret 0.75s step-end infinite;
}

@keyframes blink-caret { from, to { border-color: transparent; } 50% { border-color: var(--primary-container); } }

/* Spotlight Glass Effect (Olimei Tech) */
.glass-spotlight {
    position: relative;
    overflow: hidden;
}

.glass-spotlight::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.3s;
    background: radial-gradient(
        800px circle at var(--mouse-x) var(--mouse-y), 
        rgba(0, 229, 255, 0.08), 
        transparent 40%
    );
    z-index: 1;
    pointer-events: none;
}

.glass-spotlight:hover::before {
    opacity: 1;
}

/* Add a glowing border gradient wrapper if needed */
.spotlight-border {
    position: absolute;
    inset: -1px;
    background: radial-gradient(
        400px circle at var(--mouse-x) var(--mouse-y), 
        rgba(0, 229, 255, 0.4), 
        transparent 40%
    );
    z-index: 0;
    opacity: 0;
    transition: opacity 0.3s;
    border-radius: inherit;
}

.glass-spotlight:hover .spotlight-border {
    opacity: 1;
}

.glass-spotlight > * {
    position: relative;
    z-index: 2; /* Put content above glow */
}

/* Pulsing */
.pulse-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--primary-container);
    display: inline-block;
    animation: neon-pulse 2s infinite;
}

@keyframes neon-pulse {
    0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(0, 229, 255, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 4px rgba(0, 229, 255, 0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(0, 229, 255, 0); }
}

.breathe-light {
    animation: breathe 4s infinite ease-in-out;
}

@keyframes breathe {
    0%, 100% { opacity: 0.15; }
    50% { opacity: 0.35; filter: blur(140px); }
}
