:root {
  --color-bg-primary: #f5f8fc;
  --color-bg-secondary: #eef4ff;
  --color-bg-card: #ffffff;
  --color-bg-hover: #eaf1ff;
  --color-text-primary: #1b2433;
  --color-text-secondary: #64748f;
  --color-text-muted: #8d9ab0;
  --color-accent: #4f7df3;
  --color-accent-hover: #3868e8;
  --color-primary: #4f7df3;
  --color-border: #dfe7f3;
  --color-border-hover: #b9cbf4;
  --glass-bg: rgba(255, 255, 255, 0.9);
  --glass-border: rgba(189, 209, 246, 0.78);
  --shadow-sm: 0 4px 14px rgba(61, 91, 145, 0.07);
  --shadow-md: 0 12px 30px rgba(61, 91, 145, 0.1);
  --shadow-lg: 0 22px 52px rgba(61, 91, 145, 0.14);
  --shadow-glow: 0 0 0 3px rgba(79, 125, 243, 0.16);
}

body { background: var(--color-bg-primary); }
.siteHeader { border-color: var(--color-border); background: rgba(255, 255, 255, 0.86); }
.brand { color: var(--color-text-primary); }
.brand span, .primaryNav a:first-child, .primaryNav a:hover { color: var(--color-accent); }
.primaryNav a { color: var(--color-text-secondary); }
.navSearch input, .loginLink, .accountButton { border-color: var(--color-border); color: var(--color-text-primary); }
.navSearch input:focus { border-color: var(--color-accent); box-shadow: var(--shadow-glow); }
.loginLink:hover, .accountDropdown a:hover, .accountDropdown button:hover { background: var(--color-bg-hover); color: var(--color-accent); }
.accountDropdown { border-color: var(--color-border); }

.snowfall { position: fixed; inset: var(--nav-height) 0 0; z-index: 20; overflow: hidden; pointer-events: none; }
.snowflake { position: absolute; top: -14px; width: 7px; height: 7px; border-radius: 50%; background: rgba(167, 204, 255, 0.55); box-shadow: 0 0 12px rgba(255, 255, 255, 0.82); animation: snow-drift 13s linear infinite; }
.snowflake:nth-child(1) { left: 4%; animation-delay: -2s; animation-duration: 15s; }
.snowflake:nth-child(2) { left: 12%; animation-delay: -9s; }
.snowflake:nth-child(3) { left: 21%; animation-delay: -4s; animation-duration: 16s; }
.snowflake:nth-child(4) { left: 30%; animation-delay: -12s; }
.snowflake:nth-child(5) { left: 39%; animation-delay: -6s; animation-duration: 17s; }
.snowflake:nth-child(6) { left: 48%; animation-delay: -1s; }
.snowflake:nth-child(7) { left: 57%; animation-delay: -11s; animation-duration: 16s; }
.snowflake:nth-child(8) { left: 66%; animation-delay: -7s; }
.snowflake:nth-child(9) { left: 74%; animation-delay: -14s; animation-duration: 15s; }
.snowflake:nth-child(10) { left: 82%; animation-delay: -3s; }
.snowflake:nth-child(11) { left: 90%; animation-delay: -10s; animation-duration: 18s; }
.snowflake:nth-child(12) { left: 96%; animation-delay: -5s; }
@keyframes snow-drift { from { transform: translate3d(0, 0, 0) scale(0.7); } 50% { transform: translate3d(22px, 52vh, 0) scale(1); } to { transform: translate3d(-12px, 110vh, 0) scale(0.78); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .snowfall { display: none; }
}
