/* Additional custom styles */
html {
    scroll-behavior: smooth;
}

/* Ensure all interactive elements have proper focus states */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus {
    outline: 2px solid #14b8a6;
    outline-offset: 2px;
}

/* Custom selection color */
::selection {
    background-color: #14b8a6;
    color: white;
}

/* Smooth transitions for all elements */
* {
    transition-property: background-color, border-color, color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

/* Animation delay for staggered reveals */
.scroll-reveal:nth-child(1) { transition-delay: 0ms; }
.scroll-reveal:nth-child(2) { transition-delay: 100ms; }
.scroll-reveal:nth-child(3) { transition-delay: 200ms; }
.scroll-reveal:nth-child(4) { transition-delay: 300ms; }
.scroll-reveal:nth-child(5) { transition-delay: 400ms; }
.scroll-reveal:nth-child(6) { transition-delay: 500ms; }

/* Print styles */
@media print {
    nav,
    .geometric-shape,
    button {
        display: none;
    }
    
    body {
        color: #0f172a;
        background: white;
    }
    
    a {
        color: #0d9488;
        text-decoration: underline;
    }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .card-hover {
        border: 2px solid currentColor;
    }
    
    button,
    a {
        border: 2px solid currentColor;
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    html {
        scroll-behavior: auto;
    }
}

/* Touch device optimizations */
@media (hover: none) and (pointer: coarse) {
    .card-hover:hover {
        transform: none;
    }
    
    a:hover,
    button:hover {
        opacity: 0.9;
    }
}

/* Large screen optimizations */
@media (min-width: 1920px) {
    .max-w-7xl {
        max-width: 80rem;
    }
}

/* Landscape orientation on mobile */
@media screen and (max-height: 500px) and (orientation: landscape) {
    nav {
        position: sticky;
    }
    
    .hero-shape-1,
    .hero-shape-2,
    .hero-shape-3 {
        display: none;
    }
}
