* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: "Segoe UI", system-ui, sans-serif;
    -webkit-tap-highlight-color: transparent;
}

body {
    position: relative;
    min-height: 100vh;
    background: #f8fafc;
    color: #1e293b;
    line-height: 1.6;
}

body::after,
body::before {
    position: fixed;
    z-index: -2;
    inset: 0;
    content: none;
    opacity: 0;
    pointer-events: none;
}

body::after {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

body::before {
    z-index: -1;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.75) 0%,
        rgba(255, 255, 255, 0.7) 50%,
        rgba(255, 255, 255, 0.75) 100%
    );
}

@media (min-width: 769px) {
    body.has-desktop-background::after,
    body.has-desktop-background::before {
        content: "";
        transition: opacity 0.45s ease;
    }

    body.has-desktop-background::after {
        background-image: var(--desktop-background-image);
    }
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1.5rem;
}

@media (max-width: 768px) {
    body.has-mobile-background::after,
    body.has-mobile-background::before {
        content: "";
        transition: opacity 0.45s ease;
    }

    body.has-mobile-background::after {
        background-image: var(--mobile-background-image);
    }

    .container {
        padding: 1rem;
    }
}

@media (min-width: 769px) {
    body.has-desktop-background.background-visible::after,
    body.has-desktop-background.background-visible::before {
        opacity: 1;
    }
}

@media (max-width: 768px) {
    body.has-mobile-background.background-visible::after,
    body.has-mobile-background.background-visible::before {
        opacity: 1;
    }
}
