/* ═══════════════════════════════════════════════════════════════════════
   ToolzVerse — Performance Optimizations
   Critical CSS, lazy loading, and rendering optimizations
   ═══════════════════════════════════════════════════════════════════════ */

/* Critical rendering optimizations */
:root {
    --transition-fast: 150ms;
    --transition-base: 250ms;
    --transition-slow: 350ms;
}

/* Reduce paint on scroll */
.navbar,
.footer,
.tool-card,
.feature-item {
    will-change: transform;
}

/* Optimize images */
img {
    image-rendering: auto;
}

/* Smooth animations with GPU acceleration */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 30px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Contain layout for better performance */
.tools-grid,
.features-grid {
    contain: layout;
}

/* Backdrop filters handled by navbar-enhanced.css and main.css */

/* Reduce shadow complexity */
.shadow-card,
.shadow-hover {
    box-shadow: 
        0 1px 3px rgba(0, 0, 0, 0.05),
        0 1px 2px rgba(0, 0, 0, 0.05);
}

/* Optimize gradients for GPU */
.grad-primary {
    background: linear-gradient(
        135deg,
        #2563eb 0%,
        #0ea5e9 100%
    );
    transform: translateZ(0);
}

/* Lazy loading placeholder */
.lazy-load {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: loading 1.5s infinite;
}

@keyframes loading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Optimize font rendering */
body {
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-feature-settings: "kern" 1, "liga" 1;
}

/* Hover transforms handled by component CSS */

/* Content-visibility handled by component CSS */

/* Scrollbar styles handled by main.css */

/* Print styles */
@media print {
    .navbar,
    .footer,
    .download-btn,
    .social-links {
        display: none !important;
    }
    
    body {
        font-size: 12pt;
        line-height: 1.4;
    }
    
    .tool-card {
        break-inside: avoid;
        border: 1pt solid #ccc;
    }
}

/* Reduce motion for performance */
@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;
    }
}

/* High DPI displays optimization */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .nav-logo-img {
        image-rendering: -webkit-optimize-contrast;
    }
}

/* Battery saver mode */
@media (prefers-reduced-data: reduce) {
    .tool-hero-icon::before,
    .feature-icon::before {
        display: none;
    }
    
    .animated-gradient {
        animation: none;
    }
}

/* Preload critical fonts */
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-display: swap;
    src: local('Plus Jakarta Sans');
}

/* Optimize form inputs */
input,
button,
select,
textarea {
    font-family: inherit;
    -webkit-appearance: none;
    appearance: none;
}

/* CSS containment for better performance */
.main-content {
    contain: layout style paint;
}

/* Intersection observer optimizations */
.fade-in-on-scroll {
    opacity: 0;
    transition: opacity var(--transition-base) ease;
}

.fade-in-on-scroll.visible {
    opacity: 1;
}
