    :root {
      --bg: #0f1019;
      --card: #1a1b2e;
      --border: #2d2e42;
      --primary: #7c4dff;
      --pink: #ff4d8d;
      --blue: #4d9eff;
      --gold: #ffd700;
      --text: #f5f1ff;
      --muted: #9999bb;
      --radius: 16px;
    }
    * { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body { font-family: 'Noto Sans KR', sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; }

    @keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }
    @keyframes shimmerBanner { 0% { left: -100%; } 100% { left: 100%; } }
    @keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
    @keyframes modalSlideIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
    @keyframes spin { to { transform: rotate(360deg); } }
    @keyframes glowPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(124,77,255,0); } 50% { box-shadow: 0 0 12px 2px rgba(124,77,255,0.25); } }
    @keyframes prizeGlow { 0%,100% { box-shadow: 0 0 0 0 rgba(255,215,0,0); border-color: rgba(255,215,0,0.4); } 50% { box-shadow: 0 0 20px 4px rgba(255,215,0,0.18); border-color: rgba(255,215,0,0.7); } }
    @keyframes shimmer { 0% { background-position: -200% center; } 100% { background-position: 200% center; } }
    @keyframes goldGlow { 0%,100% { box-shadow: 0 0 0 0 rgba(255,215,0,0); border-color: rgba(255,215,0,0.5); } 50% { box-shadow: 0 0 18px 4px rgba(255,215,0,0.22); border-color: rgba(255,215,0,0.9); } }
    @keyframes closeRaceGlow { 0%,100% { box-shadow: 0 0 0 0 rgba(255,77,141,0); } 50% { box-shadow: 0 0 8px 0 rgba(255,77,141,0.3); } }
    @keyframes rankHighlight { 0%,100% { box-shadow: none; } 30% { box-shadow: 0 0 0 3px var(--primary); } }
    @keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
    @keyframes shimmerPulse { 0%,100% { background-position: -200% center; } 50% { background-position: 200% center; } }
    @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } }
    @keyframes slideDown { from { opacity: 0; transform: translateY(-8px); max-height: 0; } to { opacity: 1; transform: translateY(0); max-height: 200px; } }
