:root {
    --transition-speed: 0.4s;
}

body {
    font-family: 'Roboto', sans-serif;
    transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Poppins', sans-serif;
}

.gradient-bg {
    background: radial-gradient(circle at 50% 50%, rgba(245, 158, 11, 0.15), transparent 60%);
}

.dark .gradient-bg {
    background: radial-gradient(circle at 50% 50%, rgba(245, 158, 11, 0.08), transparent 70%);
}

.page-view {
    transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1), transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: opacity, transform;
}

.page-view.hidden-page {
    opacity: 0;
    transform: translateY(20px);
    pointer-events: none;
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    z-index: -10;
}

.page-view.active-page {
    opacity: 1;
    transform: translateY(0);
    position: relative;
    z-index: 10;
}

.glowing-purple-badge {
    border-color: rgba(168, 85, 247, 0.5);
    animation: pulse-purple-glow 2.5s infinite alternate ease-in-out;
}

@keyframes pulse-purple-glow {
    0% {
        box-shadow: 0 0 8px rgba(168, 85, 247, 0.3), inset 0 0 4px rgba(168, 85, 247, 0.1);
        border-color: rgba(168, 85, 247, 0.4);
    }
    100% {
        box-shadow: 0 0 20px rgba(168, 85, 247, 0.7), inset 0 0 10px rgba(168, 85, 247, 0.3);
        border-color: rgba(192, 132, 252, 0.8);
    }
}

#particle-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: auto;
}

#scroll-progress {
    transform-origin: left;
    transition: transform 0.1s ease-out;
}

.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

*:focus-visible {
    outline: 3px solid #F59E0B;
    outline-offset: 2px;
}
