/* ── Base & Utilities ── */
*, *::before, *::after { box-sizing: border-box; }

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ── Hero Gradient ── */
.hero-gradient {
    background: linear-gradient(135deg, #064e3b 0%, #065f46 25%, #047857 50%, #059669 75%, #10b981 100%);
}

/* ── Hero Blobs ── */
.hero-blob {
    animation: blobFloat 8s ease-in-out infinite;
}

.hero-blob-1 {
    background: radial-gradient(circle, #6ee7b7 0%, transparent 70%);
    animation-delay: 0s;
}

.hero-blob-2 {
    background: radial-gradient(circle, #a7f3d0 0%, transparent 70%);
    animation-delay: -3s;
    animation-duration: 10s;
}

.hero-blob-3 {
    background: radial-gradient(circle, #34d399 0%, transparent 70%);
    animation-delay: -5s;
    animation-duration: 12s;
}

@keyframes blobFloat {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(30px, -40px) scale(1.05); }
    66% { transform: translate(-20px, 20px) scale(0.95); }
}

/* ── Philosophy Blobs ── */
.philosophy-blob-1 {
    animation: blobFloat 10s ease-in-out infinite;
}

.philosophy-blob-2 {
    animation: blobFloat 12s ease-in-out infinite reverse;
    animation-delay: -4s;
}

/* ── Scroll Reveal ── */
.reveal {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal[data-reveal-delay="1"] { transition-delay: 0.1s; }
.reveal[data-reveal-delay="2"] { transition-delay: 0.2s; }
.reveal[data-reveal-delay="3"] { transition-delay: 0.3s; }
.reveal[data-reveal-delay="4"] { transition-delay: 0.4s; }
.reveal[data-reveal-delay="5"] { transition-delay: 0.5s; }

@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 0;
        transform: translateY(32px);
    }
    .reveal.revealed {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ── Navbar ── */
#navbar {
    background: transparent;
}

#navbar.scrolled {
    background: rgba(254, 253, 248, 0.92);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(6, 95, 70, 0.08);
    box-shadow: 0 1px 20px rgba(6, 95, 70, 0.06);
}

.navbar-inner {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

/* ── Mobile Menu ── */
.mobile-link {
    display: block;
    transition: color 0.2s, padding-left 0.2s;
}

.mobile-link:hover {
    color: #059669;
    padding-left: 0.5rem;
}

/* ── Smooth Scroll Offset ── */
section[id] {
    scroll-margin-top: 5rem;
}

/* ── Custom Selection ── */
::selection {
    background: rgba(5, 150, 105, 0.2);
    color: #064e3b;
}

/* ── Focus Styles ── */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
    outline: 2px solid #059669;
    outline-offset: 2px;
    border-radius: 4px;
}

/* ── Nav active state ── */
.nav-link-active {
    color: #059669 !important;
}
