body { font-family: 'Noto Sans KR', sans-serif; }
.hero-gradient { background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.6)); }
.text-shadow { text-shadow: 2px 2px 4px rgba(0,0,0,0.5); }

/* Navigation Active State */
.nav-link.active { color: #0ea5e9; font-weight: 700; }
.nav-link { position: relative; }
.nav-link::after {
    content: ''; position: absolute; width: 0; height: 2px; bottom: -4px; left: 0;
    background-color: #0ea5e9; transition: width 0.3s;
}
.nav-link:hover::after { width: 100%; }
.nav-link.active::after { width: 100%; }

/* Page Transitions */
.page-section {
    display: none;
    animation: fadeIn 0.4s ease-in-out;
}
.page-section.active {
    display: block;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Business Tab Active State */
.biz-tab.active {
    background-color: #0ea5e9;
    color: white;
    border-color: #0ea5e9;
    box-shadow: 0 4px 6px -1px rgba(14, 165, 233, 0.5);
}

/* Hide scrollbar */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}
.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Scroll Container Base (for all pages) */
.scroll-container {
    height: calc(100vh - 5rem); /* Viewport - Header */
    margin-top: 5rem; /* Header height */
    overflow-y: auto;
    scroll-behavior: smooth;
}

/* Snap Logic - ONLY for Home and Intro */
.snap-enabled {
    scroll-snap-type: y mandatory;
}
.snap-enabled .snap-section {
    height: 100%;
    width: 100%;
    scroll-snap-align: start;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
}

/* Footer Snap Behavior */
.snap-enabled footer {
    scroll-snap-align: end;
}

/* Hero Animation */
@keyframes slideUpFade {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-slide-up > * {
    opacity: 0;
    animation: slideUpFade 0.8s ease-out forwards;
}

.animate-slide-up > *:nth-child(1) { animation-delay: 0.2s; }
.animate-slide-up > *:nth-child(2) { animation-delay: 0.4s; }
.animate-slide-up > *:nth-child(3) { animation-delay: 0.6s; }
.animate-slide-up > *:nth-child(4) { animation-delay: 0.8s; }

/* Background Zoom Animation */
@keyframes slowZoom {
    from { transform: scale(1); }
    to { transform: scale(1.1); }
}
.animate-slow-zoom {
    animation: slowZoom 20s ease-in-out infinite alternate;
}

