/* ==========================================================================
   THE ART OF SIMPLE GOLF : EMIL KOWALSKI MOTION PHYSICS ENGINE
   Physical Tactility, Natural Springs, GPU-Accelerated Micro-Interactions
   ========================================================================== */

:root {
    /* Natural Spring Physics Curves */
    --ease-spring: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-quick: cubic-bezier(0.2, 0, 0, 1);
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

    /* Durations */
    --duration-tactile: 160ms;
    --duration-card: 220ms;
    --duration-modal: 280ms;
    --duration-drawer: 320ms;

    /* Transition Presets */
    --transition-tactile: transform var(--duration-tactile) var(--ease-quick), 
                          box-shadow var(--duration-card) var(--ease-spring),
                          border-color var(--duration-tactile) ease;
    --transition-smooth: all var(--duration-modal) var(--ease-spring);
    --transition-theme: background-color 240ms ease, color 240ms ease, border-color 240ms ease;
}

/* Tactile Active Press Compression on all interactive buttons and cards */
button, 
.btn, 
.quiz-opt-card, 
.tab-filter, 
.nav-cta-btn, 
.nav-login-btn,
.theme-toggle-btn {
    transition: var(--transition-tactile);
    will-change: transform;
    -webkit-tap-highlight-color: transparent;
}

button:active, 
.btn:active, 
.quiz-opt-card:active, 
.tab-filter:active, 
.nav-cta-btn:active, 
.nav-login-btn:active,
.theme-toggle-btn:active {
    transform: scale(0.98) !important;
}

/* Scroll reveal states */
.js-reveal .reveal-up {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 500ms var(--ease-spring), transform 500ms var(--ease-spring);
    will-change: opacity, transform;
}

.js-reveal .reveal-up.visible {
    opacity: 1;
    transform: translateY(0);
}

.delay-1 { transition-delay: 60ms !important; }
.delay-2 { transition-delay: 120ms !important; }
.delay-3 { transition-delay: 180ms !important; }
.delay-4 { transition-delay: 240ms !important; }

/* Subtle pulse dot */
@keyframes pulse-dot {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.35); opacity: 0.75; }
}

/* Reduced Motion Preference Accessibility Guard */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .js-reveal .reveal-up {
        opacity: 1 !important;
        transform: none !important;
    }
}
