/* Minimal custom styles — everything else is handled by Tailwind */

html {
    scroll-behavior: smooth;
}

/* Nav link underline effect */
.nav-link-underline::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(135deg, #3b82f6, #1e40af);
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.nav-link-underline:hover::after {
    width: 100%;
}

/* Floating tech logos — color-adaptive via CSS filter */
.logo-adaptive {
    /* #0B234F (dark navy) in light mode */
    filter: brightness(0) saturate(100%) invert(13%) sepia(78%) saturate(862%) hue-rotate(204deg) brightness(84%) contrast(98%) !important;
    transition: filter 0.3s ease, transform 0.2s ease;
}
.dark .logo-adaptive {
    /* White in dark mode */
    filter: brightness(0) invert(1) !important;
}

/* Hero geometric shapes */
.hero-blob {
    animation: blobRotate 12s ease-in-out infinite;
}
.hero-blob-accent {
    animation: blobRotateAlt 14s ease-in-out infinite;
}
@keyframes blobRotate {
    0%, 100% { transform: translateX(-50%) rotate(2deg); }
    50%      { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes blobRotateAlt {
    0%, 100% { transform: translateX(-58%) rotate(-6deg); }
    50%      { transform: translateX(-58%) rotate(-2deg); }
}

/* Lightbox animations */
.lightbox-image {
    animation: lightboxZoom 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes lightboxZoom {
    0% {
        opacity: 0;
        transform: scale(0.8) translateY(20px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Smooth image transitions */
.gallery-img {
    transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease;
}

/* Print */
@media print {
    nav, .fixed { display: none !important; }
    section { break-inside: avoid; }
    * { box-shadow: none !important; }
}