/* ══════════════════════════════════════════════════
   Base / Layout Styles
   ══════════════════════════════════════════════════ */

body {
    font-family: var(--font-family);
    background: var(--bg-primary);
    color: var(--text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow-x: hidden;
    position: relative;
    padding: var(--space-lg);
}

/* ── Container ──────────────────────────────────── */
.app-container {
    position: relative;
    z-index: var(--z-card);
    width: 100%;
    max-width: 480px;
}

/* ── SR-only (screen reader) ────────────────────── */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ── Animated Background Blobs ──────────────────── */
.blob {
    position: fixed;
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.45;
    animation: drift 18s ease-in-out infinite alternate;
    pointer-events: none;
    z-index: var(--z-background);
}

.blob--purple {
    width: 480px;
    height: 480px;
    background: var(--accent);
    top: -10%;
    left: -8%;
}

.blob--pink {
    width: 400px;
    height: 400px;
    background: #e44dff;
    bottom: -12%;
    right: -6%;
    animation-delay: -6s;
}

.blob--cyan {
    width: 320px;
    height: 320px;
    background: #00c6ff;
    top: 40%;
    right: 20%;
    animation-delay: -12s;
}

@keyframes drift {
    0% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(40px, -30px) scale(1.08);
    }

    100% {
        transform: translate(-20px, 20px) scale(0.95);
    }
}