/* Global Reset */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    /* 흰 베이스 — 그 위로 body::before 의 움직이는 그라데이션이 은은히 비친다 */
    background-color: hsl(var(--background, 0 0% 100%));
}

body {
    font-family: 'Pretendard', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 14px;
    line-height: 1.65;
    color: hsl(var(--foreground, 0 0% 9%));
    letter-spacing: -0.011em;
    background-color: transparent;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* stacker 풍 살아있는 배경 — 5색(파랑→시안→핑크→피치→오렌지) 그라데이션을 크게 블러해
   아주 느리게 드리프트. 고정 레이어(z-index:-1)라 콘텐츠/카드 뒤 열린 영역에만 은은히 비친다.
   transform 애니메이션이라 GPU 합성으로 부드럽다. */
body::before {
    content: "";
    position: fixed;
    top: -30%;
    left: -30%;
    width: 160%;
    height: 160%;
    z-index: -1;
    background:
        radial-gradient(38% 46% at 22% 28%, hsl(219 90% 86% / 0.9), transparent 70%),
        radial-gradient(40% 42% at 78% 22%, hsl(193 72% 74% / 0.85), transparent 70%),
        radial-gradient(46% 50% at 68% 72%, hsl(315 60% 84% / 0.8), transparent 72%),
        radial-gradient(42% 46% at 28% 74%, hsl(20 92% 84% / 0.85), transparent 72%),
        radial-gradient(40% 44% at 50% 50%, hsl(28 96% 78% / 0.7), transparent 70%);
    filter: blur(70px) saturate(1.05);
    opacity: 0.55;
    animation: bg-drift 10s ease-in-out infinite alternate;
    pointer-events: none;
}

@keyframes bg-drift {
    0%   { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
    50%  { transform: translate3d(2%, -3%, 0) rotate(6deg) scale(1.08); }
    100% { transform: translate3d(-2%, 2%, 0) rotate(-5deg) scale(1.12); }
}

@media (prefers-reduced-motion: reduce) {
    body::before { animation: none; }
}
