/* Global Styles, Reset & Animations */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-body);
    background: var(--bg-gradient);
    min-height: 100vh;
    color: var(--text-main);
    overflow-x: hidden;
    position: relative;
}

body.page-body {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    margin: 0;
}

body:not(.page-body) {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

/* Background Animation */
body::before {
    content: '';
    position: fixed;
    width: 120vw;
    height: 120vh;
    background: radial-gradient(circle at 50% 50%, rgba(79, 70, 229, 0.15), transparent 60%);
    top: -10%;
    left: -10%;
    z-index: -1;
    animation: pulse 15s infinite ease-in-out;
    pointer-events: none;
}

@keyframes pulse {
    0%,
    100% {
        transform: scale(1);
        opacity: 0.5;
    }

    50% {
        transform: scale(1.1);
        opacity: 0.8;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}
