/* System Font Stack */
html,
body {
    overflow-x: hidden;
    width: 100%;
}

body {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    background-color: #f5f5f7;
    color: #1d1d1f;
    -webkit-font-smoothing: antialiased;
    cursor: default;
    padding-bottom: 90px;
}

@media (min-width: 768px) {
    body {
        padding-bottom: 0;
    }
}

html.lenis {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-scrolling iframe {
    pointer-events: none;
}

.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.68s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.glass-nav {
    background-color: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

/* Liquid Glass */
.liquid-glass {
    background: rgba(255, 255, 255, 0.015);
    background-blend-mode: luminosity;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: none;
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.1), 0 4px 24px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.liquid-glass::before {
    content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px;
    background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 20%, rgba(255,255,255,0) 40%, rgba(255,255,255,0) 60%, rgba(255,255,255,0.05) 80%, rgba(255,255,255,0.2) 100%);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none;
}
.liquid-glass-strong {
    background: rgba(255, 255, 255, 0.02);
    background-blend-mode: luminosity;
    backdrop-filter: blur(50px);
    -webkit-backdrop-filter: blur(50px);
    border: none;
    box-shadow: 0 8px 32px rgba(0,0,0,0.3), inset 0 1px 1px rgba(255,255,255,0.2);
    position: relative; overflow: hidden;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.liquid-glass-strong::before {
    content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1.2px;
    background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.15) 20%, rgba(255,255,255,0) 40%, rgba(255,255,255,0) 60%, rgba(255,255,255,0.15) 80%, rgba(255,255,255,0.4) 100%);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none;
}

.btn-primary {
    background-color: #0071e3;
    color: white;
    border-radius: 980px;
    padding: 8px 20px;
    font-size: 14px;
    font-weight: 700;
    transition: all 0.3s ease;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
}

.btn-primary:hover {
    background-color: #0077ed;
    transform: scale(1.02);
}

.mobile-bottom-nav {
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    padding-bottom: env(safe-area-inset-bottom);
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.nav-item {
    position: relative;
    touch-action: none;
    text-decoration: none;
}

.nav-item.active i {
    color: #0071e3;
}

.nav-item.active span {
    color: #0071e3;
    font-weight: 600;
}

#mascot-follower {
    position: fixed;
    top: 0;
    left: 0;
    width: 48px;
    height: 60px;
    pointer-events: none;
    z-index: 40;
    opacity: 0;
    transform: translate(20px, 15px) scale(0.5);
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.15));
    transition: opacity 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}

@media (max-width: 768px) {
    #mascot-follower {
        display: none !important;
    }
}

#mascot-follower svg {
    pointer-events: auto;
    cursor: grab;
    transition: color 0.3s;
    overflow: visible;
}

#mascot-follower svg:active {
    cursor: grabbing;
}

.mascot-eye {
    transform-origin: center;
    animation: blink-anim 4s infinite;
}

@keyframes blink-anim {

    0%,
    96% {
        transform: scaleY(1);
    }

    97% {
        transform: scaleY(0.1);
    }

    98% {
        transform: scaleY(1);
    }

    100% {
        transform: scaleY(1);
    }
}

#mascot-skateboard-group {
    opacity: 0;
    transition: opacity 0.3s ease;
    transform-origin: 14px 28px;
}

.skating #mascot-skateboard-group {
    opacity: 1;
}

.skating #mascot-legs {
    opacity: 0;
}

#nav-logo-svg {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.nav-logo-hidden {
    opacity: 0;
    transform: scale(0.8);
}

#article-view {
    display: none;
}

#article-view.active {
    display: block;
}

#blog-list.hidden {
    display: none;
}

/* Navbar dark-background adaptation */
.nav-adaptive-text { transition: color 0.35s ease; }
.nav-cta-btn { transition: background-color 0.35s ease, color 0.35s ease; }
#navbar.nav-on-dark .nav-adaptive-text { color: rgba(255, 255, 255, 0.92) !important; }
#navbar .nav-cta-btn.nav-cta-over-light { background-color: rgba(255, 255, 255, 0.95) !important; color: #1d1d1f !important; }
#navbar .nav-cta-btn.nav-cta-over-dark { background-color: #0071e3 !important; color: #ffffff !important; }
