html, body { background: #0A0A0B; color: #F2E8D0; }
.grain::before {
  content:''; position:fixed; inset:0; pointer-events:none; opacity:.035; z-index:1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.glow-red::after {
  content:''; position:absolute; inset:-40% -20%;
  background:
    radial-gradient(55% 45% at 35% 55%, rgba(200,50,50,.32), rgba(200,50,50,0) 70%),
    radial-gradient(55% 45% at 65% 55%, rgba(42,122,58,.25), rgba(42,122,58,0) 70%);
  filter: blur(40px); z-index:-1;
}
.snow-layer { position: fixed; inset: 0; pointer-events: none; z-index: 2; overflow: hidden; }
.snow-layer .flake {
  position: absolute; top: -10px; color: #F7F2E6; opacity: .85;
  animation: fall linear infinite;
  text-shadow: 0 0 6px rgba(247,242,230,.5);
}
.snow-layer .flake.ornament {
  color: #E7C470;
  text-shadow: 0 0 10px rgba(212,169,78,.7);
}
@keyframes fall {
  0%   { transform: translate3d(0, -10vh, 0) rotate(0deg);   opacity: 0; }
  10%  { opacity: .9; }
  100% { transform: translate3d(var(--drift, 30px), 110vh, 0) rotate(360deg); opacity: .9; }
}
.holiday-pill {
  background: linear-gradient(90deg, rgba(200,50,50,.18), rgba(42,122,58,.18));
  border: 1px solid rgba(212,169,78,.45);
  color: #E7C470;
}
.xmas-lights {
  position: absolute; left: 0; right: 0; top: 0; height: 14px;
  display: flex; justify-content: space-around; align-items: flex-start;
  pointer-events: none; z-index: 30; overflow: hidden;
  padding: 0 8px;
}
.xmas-lights span {
  width: 9px; height: 12px; margin-top: 2px;
  border-radius: 50% 50% 40% 40%;
  background: #C83232;
  box-shadow: 0 0 8px 2px rgba(200,50,50,.75);
  animation: xmas-twinkle 1.35s ease-in-out infinite alternate;
}
.xmas-lights span:nth-child(3n) {
  background: #E7C470;
  box-shadow: 0 0 8px 2px rgba(231,196,112,.75);
}
.xmas-lights span:nth-child(3n+1) {
  background: #3FA054;
  box-shadow: 0 0 8px 2px rgba(63,160,84,.7);
}
@keyframes xmas-twinkle {
  0%   { opacity: .35; transform: scale(.85); }
  100% { opacity: 1; transform: scale(1.12); }
}
.holiday-banner {
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  padding: 7px 16px 9px;
  color: #E7C470;
  background: linear-gradient(90deg, rgba(26,10,10,.95), rgba(10,22,14,.95), rgba(26,10,10,.95));
  border-top: 1px solid rgba(212,169,78,.22);
  text-shadow: 0 0 12px rgba(212,169,78,.25);
}
.xmas header {
  box-shadow: 0 1px 0 rgba(200,50,50,.28);
}
.xmas .card {
  background:
    linear-gradient(180deg, rgba(42,122,58,.06), transparent 28%),
    linear-gradient(180deg, #161618 0%, #111113 100%);
}
.xmas .card:hover {
  border-color: rgba(212,169,78,.35);
}
.xmas .btn-red {
  box-shadow: 0 10px 30px -10px rgba(200,50,50,.7), 0 0 18px -8px rgba(231,196,112,.45), inset 0 1px 0 rgba(255,255,255,.08);
}
.gold-badge {
  background: linear-gradient(180deg, #E7C470 0%, #B88A2E 100%);
  color: #1B1206; text-shadow: 0 1px 0 rgba(255,255,255,.3);
  box-shadow: 0 6px 18px -6px rgba(212,169,78,.7), inset 0 1px 0 rgba(255,255,255,.4);
}
.icon-green { background: rgba(42,122,58,.15); border-color: rgba(63,160,84,.4); color: #3FA054; }
.modal-backdrop { background: rgba(0,0,0,.72); backdrop-filter: blur(6px); }
.gw-option input { display:none; }
.gw-option .box {
  border: 1px solid #28282C; background: rgba(255,255,255,.02);
  transition: border-color .15s, background .15s;
}
.gw-option input:checked + .box {
  border-color: #C83232; background: rgba(200,50,50,.08);
  box-shadow: inset 0 0 0 1px rgba(200,50,50,.4);
}
.gw-option:hover .box { border-color: #3A3A3F; }
.field {
  background: #0E0E10; border: 1px solid #28282C; color: #F2E8D0;
  transition: border-color .15s;
}
.field:focus { outline: none; border-color: #C83232; }
.btn-red {
  background: linear-gradient(180deg, #D23A3A 0%, #B12A2A 100%);
  box-shadow: 0 10px 30px -10px rgba(200,50,50,.6), inset 0 1px 0 rgba(255,255,255,.08);
}
.btn-red:hover { background: linear-gradient(180deg, #DD4747 0%, #BE3232 100%); }
.btn-ghost { background: rgba(255,255,255,.03); border: 1px solid #28282C; }
.btn-ghost:hover { background: rgba(255,255,255,.06); border-color: #3A3A3F; }
.card { background: linear-gradient(180deg, #161618 0%, #111113 100%); border: 1px solid #1F1F22; }
.card:hover { border-color: #2C2C32; }
.ring-cream { box-shadow: 0 0 0 1px rgba(242,232,208,.08); }
.divider { background: linear-gradient(90deg, transparent, #2A2A30, transparent); }
.shimmer {
  background: linear-gradient(90deg, #1A1A1D 0%, #222228 50%, #1A1A1D 100%);
  background-size: 200% 100%; animation: shimmer 1.4s linear infinite;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.cat-tab {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.6rem 1.1rem; border-radius:12px;
  background: rgba(255,255,255,.03);
  border: 1px solid #28282C;
  color: #D9D1BC;
  font-weight: 600; font-size: .9rem;
  transition: all .15s ease;
  cursor:pointer;
}
.cat-tab:hover { border-color:#3A3A3F; color:#F2E8D0; background: rgba(255,255,255,.06); }
.cat-tab.active {
  background: linear-gradient(180deg, rgba(200,50,50,.22) 0%, rgba(200,50,50,.10) 100%);
  border-color: rgba(200,50,50,.55);
  color: #F2E8D0;
  box-shadow: 0 10px 30px -14px rgba(200,50,50,.55), inset 0 1px 0 rgba(255,255,255,.08);
}
.cat-badge {
  font-size: .65rem; letter-spacing:.08em; text-transform:uppercase;
  padding: .15rem .45rem; border-radius: 999px; font-weight: 700;
}
.cat-badge.live    { background: rgba(42,122,58,.18); color:#3FA054; border:1px solid rgba(63,160,84,.35); }
.cat-badge.soon    { background: rgba(212,169,78,.14); color:#E7C470; border:1px solid rgba(212,169,78,.35); }
.nav-link { color: #8C8C94; }
.nav-link:hover, .nav-link.active { color: #F2E8D0; }
