/* 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;
}

/* 차분한 배경 (Crowd 톤) — 웜 뉴트럴 + 미세한 머스터드 힌트를 크게 블러해 아주 느리게 드리프트.
   고정 레이어(z-index:-1)라 콘텐츠/카드 뒤 열린 영역에만 은은히 비친다. 무지개색은 신 톤과
   안 맞아 뉴트럴+옐로우 액센트로 교체(2026-07 디자인 개편). */
body::before {
    content: "";
    position: fixed;
    top: -30%;
    left: -30%;
    width: 160%;
    height: 160%;
    z-index: -1;
    background:
        radial-gradient(42% 48% at 20% 24%, hsl(44 70% 90% / 0.55), transparent 70%),
        radial-gradient(40% 44% at 80% 20%, hsl(40 22% 93% / 0.6), transparent 70%),
        radial-gradient(46% 50% at 72% 76%, hsl(0 0% 92% / 0.6), transparent 72%),
        radial-gradient(42% 46% at 26% 78%, hsl(44 45% 92% / 0.45), transparent 72%);
    filter: blur(80px) saturate(1);
    opacity: 0.6;
    animation: bg-drift 12s 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; }
}
