/* ========== BASE & RESET ========== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; }

/* ========== NAVIGATION ========== */
#main-nav {
    background: rgba(255,255,255,0.85);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(0,0,0,0.06);
}
#main-nav.scrolled {
    background: rgba(255,255,255,0.95);
    box-shadow: 0 1px 20px rgba(0,0,0,0.06);
}

/* ========== MOBILE MENU ========== */
#mobile-menu {
    pointer-events: none;
}
#mobile-menu.open {
    pointer-events: all;
    transform: translateX(0);
}
.mobile-link {
    transition: opacity 0.2s, transform 0.2s;
}

/* ========== SCROLL REVEAL ========== */
.reveal-up, .reveal-left, .reveal-right {
    opacity: 1;
    transform: none;
    transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1);
}
@media (prefers-reduced-motion: no-preference) {
    .reveal-up, .reveal-left, .reveal-right {
        opacity: 0;
    }
    .reveal-up { transform: translateY(30px); }
    .reveal-left { transform: translateX(-30px); }
    .reveal-right { transform: translateX(30px); }
    .reveal-up.visible, .reveal-left.visible, .reveal-right.visible {
        opacity: 1;
        transform: none;
    }
}

/* ========== CARD HOVER ========== */
.reveal-up.group {
    will-change: transform;
}

/* ========== SELECTION ========== */
::selection {
    background: #F97066;
    color: white;
}

/* ========== FOCUS ========== */
:focus-visible {
    outline: 2px solid #F97066;
    outline-offset: 2px;
}

/* ========== SMOOTH SCROLLBAR ========== */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #F8F8F8; }
::-webkit-scrollbar-thumb { background: #D4D4D4; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #A3A3A3; }
