/* Halloween wheel page. Tokens from halloween/palette.md, sprites from halloween/anim/anim.md. */
:root {
  /* === Базовая тёмная основа сайта (без изменений) === */
  --hw-bg-base: #070913;
  --hw-bg-elevated: #0b0e1d;
  --hw-card-bg: rgba(16, 22, 42, 0.65);
  --hw-card-bg-hover: rgba(22, 27, 50, 0.78);
  --hw-card-border: rgba(255, 255, 255, 0.08);
  --hw-text-primary: #ffffff;
  --hw-text-secondary: #cbd5e1;
  --hw-text-muted: #94a3b8;
  --hw-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* === Приглушённые хэллоуинские акценты (-25..30% насыщенности) === */
  --hw-pumpkin: #d96b27;          /* Тёплая печёная тыква: основные кнопки, активные акценты */
  --hw-pumpkin-bright: #e08245;   /* Мягкий янтарно-тыквенный блик для ховеров и верхнего градиента */
  --hw-pumpkin-deep: #8f3e14;     /* Глубокая жжёная охра для нижних границ и теней */
  --hw-pumpkin-surface: rgba(217, 107, 39, 0.11);
  --hw-pumpkin-border: rgba(217, 107, 39, 0.28);

  --hw-purple: #8659c8;           /* Сумеречный аметист / слива: вторичный акцент, магия */
  --hw-purple-bright: #a37fd9;    /* Приглушённая лаванда для подзаголовков и иконок */
  --hw-purple-deep: #231138;      /* Тёмный баклажановый для глубоких подложек */
  --hw-purple-surface: rgba(134, 89, 200, 0.12);
  --hw-purple-border: rgba(134, 89, 200, 0.26);

  --hw-potion: #3ca86b;           /* Изумрудно-шалфейное зелье (вместо кислотного неона) */
  --hw-potion-teal: #2b8a68;      /* Спокойный лесной изумруд для плашек и прогресса */
  --hw-potion-deep: #0b3326;      /* Тёмная бутылочная подложка */
  --hw-potion-surface: rgba(60, 168, 107, 0.10);
  --hw-potion-border: rgba(60, 168, 107, 0.26);

  /* === Дополнительные акценты редкости призов === */
  --hw-gold: #cfa043;             /* Тёплое состаренное золото / свеча: джекпот, короны, лампочки */
  --hw-gold-glow: rgba(207, 160, 67, 0.22);
  --hw-crimson: #c44d61;          /* Приглушённый винно-ягодный: отказы и редкие метки */

  /* === Статусы заявок на отзыв (ServerHunter / Trustpilot) === */
  --hw-status-pending-bg: rgba(207, 160, 67, 0.11);
  --hw-status-pending-border: rgba(207, 160, 67, 0.28);
  --hw-status-pending-text: #d6ae5c;   /* «На проверке» */

  --hw-status-approved-bg: rgba(60, 168, 107, 0.11);
  --hw-status-approved-border: rgba(60, 168, 107, 0.28);
  --hw-status-approved-text: #56bf82;  /* «Одобрено» */

  --hw-status-rejected-bg: rgba(196, 77, 97, 0.11);
  --hw-status-rejected-border: rgba(196, 77, 97, 0.28);
  --hw-status-rejected-text: #d66d7e;  /* «Отклонено» */

  /* === Мягкие свечения без неоновых ореолов (яркость снижена на ~50%) === */
  --hw-glow: 0 4px 20px rgba(217, 107, 39, 0.20), 0 8px 40px rgba(134, 89, 200, 0.12);
  --hw-glow-pumpkin: 0 4px 18px rgba(217, 107, 39, 0.24);
  --hw-glow-purple: 0 4px 22px rgba(134, 89, 200, 0.22);
  --hw-glow-potion: 0 4px 16px rgba(60, 168, 107, 0.22);

  /* === Спокойные градиенты === */
  --hw-grad-cta: linear-gradient(135deg, #e08245 0%, #d96b27 55%, #b34e16 100%);
  --hw-grad-magic: linear-gradient(135deg, #d96b27 0%, #8659c8 60%, #5254b8 100%);
  --hw-grad-potion: linear-gradient(135deg, #4fb87d 0%, #2b8a68 100%);
  --hw-grad-banner: linear-gradient(90deg, rgba(22, 14, 36, 0.94) 0%, rgba(14, 19, 36, 0.94) 50%, rgba(32, 18, 14, 0.94) 100%);

  /* === Цвета секторов колеса (26 секторов) === */
  --hw-sector-1: #101528;         /* Базовый тёмно-индиговый сектор (нечётный) */
  --hw-sector-2: #19112b;         /* Уютный тёмно-сливовый сектор (чётный) */
  --hw-sector-3: #221410;         /* Тёплый каштаново-угольный сектор (ценные призы и соседи зомби) */
  --hw-sector-jackpot: #2d190c;   /* Сектор главного приза (Скидка 31%) */
  --hw-sector-stroke: rgba(207, 160, 67, 0.20); /* Мягкая разделительная линия между секторами */
}

* { box-sizing: border-box; }

body.hw {
  position: relative;
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  font-family: var(--hw-font-sans);
  color: var(--hw-text-primary);
  background:
    url("/halloween/home/hero-bg.png") center top / 1440px auto no-repeat,
    radial-gradient(900px 500px at 50% 0, rgba(134, 89, 200, 0.18), transparent 70%),
    var(--hw-bg-base);
}

a { color: var(--hw-pumpkin-bright); }

.hw-web { position: absolute; top: 56px; z-index: 0; width: 220px; height: auto; pointer-events: none; opacity: 0.8; }
.hw-web--left { left: 0; }
.hw-web--right { right: 0; }
.hw-bat { position: absolute; top: 140px; left: 6%; z-index: 0; transform: scale(0.6); transform-origin: left top; pointer-events: none; }

.hw-top {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px;
  border-bottom: 1px solid var(--hw-card-border);
}
.hw-logo { display: flex; align-items: center; gap: 10px; color: var(--hw-text-primary); font-size: 18px; font-weight: 800; text-decoration: none; }
.hw-logo img { display: block; }
.hw-top__nav { display: flex; align-items: center; gap: 14px; }
.hw-top__nav > a { color: var(--hw-text-primary); text-decoration: none; }

.hw-main { position: relative; z-index: 1; max-width: 1100px; margin: 0 auto; padding: 0 16px 72px; }

.hw-notice { margin: 16px 0; padding: 12px 16px; border: 1px dashed var(--hw-pumpkin); border-radius: 12px; color: var(--hw-pumpkin-bright); }

.hw-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  border: 1px solid var(--hw-pumpkin-border);
  border-radius: 999px;
  background: var(--hw-pumpkin-surface);
  color: var(--hw-pumpkin-bright);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.hw-pill--potion { border-color: var(--hw-potion-border); background: var(--hw-potion-surface); color: var(--hw-potion); text-transform: none; letter-spacing: 0; }

.hw-hero { padding: 40px 0 8px; text-align: center; }
.hw-hero h1 { margin: 16px 0 10px; font-size: clamp(30px, 5vw, 50px); font-weight: 900; line-height: 1.1; }
.hw-hero p { max-width: 680px; margin: 0 auto; color: var(--hw-text-secondary); }

.hw-card {
  border: 1px solid var(--hw-card-border);
  border-radius: 18px;
  background: var(--hw-card-bg);
  backdrop-filter: blur(16px);
}

/* Wheel: SVG sectors under Gemini's rim, pointer and hub. The rim's open centre is r=496/600. */
/* The backdrop glow is wider than the wheel; clip it sideways so phones get no horizontal scroll. */
.hw-stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: 40px; align-items: center; margin: 36px 0 24px; overflow-x: clip; }
.hw-wheel { position: relative; width: min(100%, 540px); aspect-ratio: 1; margin: 6% auto 0; }
.hw-wheel__backdrop { position: absolute; inset: -8%; width: 116%; height: 116%; pointer-events: none; }
.hw-wheel__disc {
  position: absolute;
  inset: 8.5%;
  width: 83%;
  height: 83%;
  border-radius: 50%;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.12, 0.8, 0.12, 1);
}
.hw-wheel__rim { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; filter: drop-shadow(0 6px 24px rgba(0, 0, 0, 0.45)); }
.hw-wheel__pointer { position: absolute; top: -10%; left: 40%; z-index: 3; width: 20%; pointer-events: none; }
.hw-wheel__hub {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: 24%;
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  background: none;
  transform: translate(-50%, -50%);
  cursor: pointer;
}
.hw-wheel__hub img { position: absolute; inset: 0; width: 100%; height: 100%; transition: opacity 0.2s; }
.hw-wheel__hub-active { opacity: 0; }
.hw-wheel__hub:hover .hw-wheel__hub-active, .hw-wheel.is-spinning .hw-wheel__hub-active { opacity: 1; }
.hw-wheel__hub:active { transform: translate(-50%, -50%) scale(0.95); }

.hw-control { padding: 22px; text-align: center; }
.hw-control__label { margin: 0 0 16px; color: var(--hw-text-secondary); }
.hw-counter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  padding: 14px 16px;
  border: 1px solid var(--hw-potion-border);
  border-radius: 14px;
  background: rgba(6, 78, 59, 0.25);
  text-align: left;
  font-weight: 800;
}
.hw-counter small { display: block; color: var(--hw-text-muted); font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.hw-counter strong { color: var(--hw-potion); font-size: 34px; text-shadow: none; }
.hw-control__error { margin: 12px 0 0; color: var(--hw-status-rejected-text); }
.hw-sound { display: block; margin-top: 12px; color: var(--hw-text-muted); font-size: 13px; }

.hw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  border: 0;
  border-bottom: 3px solid var(--hw-pumpkin-deep);
  border-radius: 12px;
  background: var(--hw-grad-cta);
  color: #fff;
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
}
.hw-btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: var(--hw-glow-pumpkin); }
.hw-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.hw-btn--big { width: 100%; padding: 16px 20px; font-size: 18px; letter-spacing: 0.04em; text-transform: uppercase; }
.hw-btn--login { width: 100%; padding: 14px; border: 1px solid var(--hw-purple-border); border-bottom-width: 1px; background: var(--hw-purple-deep); }
.hw-btn--ghost { border: 1px solid var(--hw-card-border); background: transparent; }
.hw-btn--earn { border: 1px solid var(--hw-purple-border); border-bottom: 3px solid var(--hw-purple-deep); background: linear-gradient(135deg, #8659c8 0%, #6a3fa8 100%); }
.hw-btn[hidden] { display: none; }

.hw-promo { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 10px; }
.hw-promo input {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--hw-card-border);
  border-radius: 10px;
  background: var(--hw-bg-elevated);
  color: var(--hw-text-primary);
  font: inherit;
  text-transform: uppercase;
}
.hw-promo input::placeholder { text-transform: none; }
.hw-promo input:focus { outline: 2px solid var(--hw-pumpkin-border); }
.hw-promo .hw-btn { padding: 10px 14px; font-size: 14px; }
.hw-promo .hw-form__result { text-align: left; }

.hw-control__row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.hw-control__row .hw-btn--outline { margin-top: 0; padding: 10px 8px; font-size: 13px; }
.hw-count { display: inline-block; min-width: 20px; margin-left: 6px; padding: 1px 6px; border-radius: 999px; background: var(--hw-pumpkin-surface); color: var(--hw-pumpkin-bright); font-size: 11px; }

.hw-rewards { margin: 16px 0; padding: 0; list-style: none; }
.hw-rewards li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--hw-card-border); }
.hw-rewards li.hw-muted { display: block; border: 0; }
.hw-rewards li > img { flex-shrink: 0; }
.hw-rewards li > span { flex: 1; min-width: 0; }
.hw-rewards b { display: block; font-size: 14px; }
.hw-rewards small { display: block; color: var(--hw-text-muted); font-size: 12px; line-height: 1.4; }
.hw-rewards .hw-status { flex-direction: column; align-items: flex-end; gap: 0; border-radius: 10px; text-align: right; }
.hw-rewards .hw-status small { color: inherit; opacity: 0.7; font-size: 11px; font-weight: 600; }
.hw-link { display: inline-block; margin-top: 6px; color: var(--hw-pumpkin-bright); font-size: 13px; font-weight: 700; text-decoration: none; }
.hw-link:hover { text-decoration: underline; }
.hw-avatar-picker { margin: 14px 0 4px; padding: 14px; border: 1px solid var(--hw-purple-border); border-radius: 14px; background: var(--hw-purple-surface); }
.hw-avatar-picker > b { display: block; margin-bottom: 10px; font-size: 14px; }
.hw-avatar-options { display: flex; flex-wrap: wrap; gap: 10px; }
.hw-avatar-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 76px;
  padding: 6px 4px;
  border: 2px solid transparent;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.2);
  color: var(--hw-text-secondary);
  font: inherit;
  font-size: 11px;
  cursor: pointer;
}
.hw-avatar-option img { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; }
.hw-avatar-option i { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 12px; background: var(--hw-bg-elevated); color: var(--hw-text-muted); font-size: 20px; font-style: normal; }
.hw-avatar-option:hover { border-color: var(--hw-card-border); }
.hw-avatar-option.is-active { border-color: var(--hw-pumpkin); color: var(--hw-text-primary); }
.hw-avatar-label { display: block; margin: 12px 0 6px; color: var(--hw-text-muted); font-size: 12px; }
.hw-chip-options { display: flex; flex-wrap: wrap; gap: 8px; }
.hw-chip { padding: 6px 12px; border: 1px solid var(--hw-card-border); border-radius: 999px; background: rgba(0, 0, 0, 0.2); color: var(--hw-text-secondary); font: inherit; font-size: 13px; cursor: pointer; }
.hw-chip.is-active { border-color: var(--hw-pumpkin); color: var(--hw-pumpkin-bright); }
.hw-toggles { display: grid; gap: 8px; margin-top: 12px; }
.hw-toggle { display: flex; align-items: center; gap: 8px; color: var(--hw-text-secondary); font-size: 13px; cursor: pointer; }
.hw-toggle input { width: 16px; height: 16px; accent-color: var(--hw-pumpkin); }
.hw-avatar-note { display: block; min-height: 1.3em; margin-top: 8px; color: var(--hw-potion); font-size: 12px; }
.hw-cert { max-width: 900px; padding-top: 32px; text-align: center; }
.hw-cert h1 { margin: 0 0 18px; font-size: 28px; }
.hw-cert__figure { margin: 0 0 18px; }
.hw-cert__figure img { display: block; width: 100%; height: auto; border-radius: 16px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5); }
.hw-cert__figure figcaption { margin: 8px 0 0; }
.hw-cert__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.hw-cert__status { min-height: 1.4em; color: var(--hw-potion); font-size: 14px; }
.hw-modal__foot { margin: 14px 0 0; color: var(--hw-text-muted); font-size: 12px; }
#hwModalStatus { margin: 0 auto 6px; }
.hw-ways-box .hw-form { margin-top: 8px; margin-bottom: 14px; }

.hw-modal__box.hw-ways-box { width: min(100%, 520px); max-height: calc(100vh - 32px); overflow-y: auto; text-align: left; }
.hw-ways-box h2 { margin: 0 0 4px; }
.hw-ways-list { margin: 16px 0; padding: 0; list-style: none; }
.hw-ways-list li + li { margin-top: 8px; }
.hw-ways-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--hw-card-border);
  border-radius: 14px;
  background: var(--hw-card-bg);
  color: var(--hw-text-primary);
  text-decoration: none;
  transition: border-color 0.15s, background 0.15s;
}
.hw-ways-list a:hover, .hw-ways-list a:focus-visible { border-color: var(--hw-pumpkin-border); background: var(--hw-card-bg-hover); }
.hw-ways-list__icon { display: grid; place-items: center; flex-shrink: 0; width: 32px; height: 32px; font-size: 24px; }
.hw-ways-list__icon img { display: block; width: 32px; height: 32px; object-fit: contain; }
.hw-ways-list a > span:nth-child(2) { flex: 1; min-width: 0; }
.hw-ways-list b { display: block; font-size: 15px; }
.hw-ways-list small { display: block; color: var(--hw-text-muted); font-size: 12px; line-height: 1.4; }
.hw-ways-list .hw-tag { flex-shrink: 0; font-style: normal; }
.hw-btn--outline { width: 100%; margin-top: auto; padding: 8px 12px; border: 1px solid var(--hw-pumpkin-border); background: var(--hw-pumpkin-surface); color: var(--hw-pumpkin-bright); font-size: 13px; }

.hw-section { margin: 56px 0; }
.hw-section h2 { margin: 0 0 6px; font-size: 26px; font-weight: 900; }
.hw-muted { margin: 0 0 18px; color: var(--hw-text-muted); font-size: 14px; }
.hw-eyebrow { color: var(--hw-purple-bright); font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }

.hw-ways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.hw-way { display: flex; flex-direction: column; gap: 8px; padding: 16px; }
.hw-way b { display: flex; align-items: center; gap: 6px; }
.hw-way__icon { display: block; flex-shrink: 0; width: 24px; height: 24px; object-fit: contain; }
.hw-way > span:not(.hw-tag) { color: var(--hw-text-secondary); font-size: 13px; }
.hw-tag { align-self: flex-start; padding: 3px 10px; border: 1px solid var(--hw-potion-border); border-radius: 999px; background: var(--hw-potion-surface); color: var(--hw-potion); font-size: 12px; font-weight: 800; }

.hw-hunt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 26px;
  border-color: var(--hw-purple-border);
  background: linear-gradient(90deg, rgba(35, 17, 56, 0.35), var(--hw-card-bg));
}
/* Pumpkin data center mini-game hero card. */
.hw-game {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 26px 32px;
  border-color: var(--hw-pumpkin-border);
  background:
    url("/halloween/game/game-bg.png") right center / cover no-repeat,
    var(--hw-grad-banner);
  box-shadow: var(--hw-glow);
}
.hw-game::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: var(--hw-grad-magic);
  opacity: 0.85;
  pointer-events: none;
}
.hw-game::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 1px 0 var(--hw-gold-glow), inset 0 0 36px var(--hw-purple-surface);
  pointer-events: none;
}
.hw-game__art {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 148px;
  height: 148px;
  border: 1px solid var(--hw-pumpkin-border);
  border-radius: 22px;
  background:
    radial-gradient(circle at 50% 52%, var(--hw-purple-surface) 0%, var(--hw-pumpkin-surface) 58%, rgba(7, 9, 19, 0.55) 100%);
  box-shadow: var(--hw-glow-pumpkin), inset 0 0 20px var(--hw-purple-surface);
}
.hw-game__art img {
  position: relative;
  z-index: 1;
  display: block;
  width: 140px;
  height: 140px;
  object-fit: contain;
}
/* Blinking server rack LEDs & candle flames overlaid on game-art. */
.hw-game__lights,
.hw-game__steam {
  position: absolute;
  inset: 4px;
  pointer-events: none;
}
.hw-game__lights { z-index: 2; }
.hw-game__lights::before,
.hw-game__lights::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}
.hw-game__lights::before {
  top: 32.3px;
  left: 35.9px;
  width: 4px;
  height: 4px;
  background: var(--hw-potion);
  box-shadow:
    0 0 7px var(--hw-potion),
    13.1px 0 0 var(--hw-pumpkin-bright),
    65.6px 2.9px 0 var(--hw-potion),
    65.6px 2.9px 7px var(--hw-potion),
    3.3px 32.8px 0 var(--hw-potion),
    3.3px 32.8px 7px var(--hw-potion),
    60.9px 45.9px 0 var(--hw-potion),
    2.6px 66.3px 0 var(--hw-potion),
    2.6px 66.3px 6px var(--hw-potion),
    25.9px 66.3px 0 var(--hw-potion);
  animation: hw-rack-leds 2.4s steps(2, end) infinite;
}
.hw-game__lights::after {
  top: 6.6px;
  left: 31.8px;
  width: 5px;
  height: 5px;
  background: var(--hw-gold);
  box-shadow:
    0 0 10px var(--hw-gold),
    0 0 16px var(--hw-gold-glow),
    70px -2.2px 0 var(--hw-gold),
    70px -2.2px 10px var(--hw-gold),
    76.7px 1.5px 0 var(--hw-gold),
    10.2px 25.2px 0 var(--hw-gold),
    6.9px 51.4px 0 var(--hw-gold),
    6.9px 51.4px 7px var(--hw-gold),
    6.9px 64.5px 0 var(--hw-pumpkin-bright),
    64.5px 65.3px 0 var(--hw-purple-bright),
    64.5px 65.3px 8px var(--hw-purple),
    17.8px 91.5px 0 var(--hw-gold);
  animation: hw-rack-candles 1.9s ease-in-out infinite alternate;
}
/* Soft rising server steam / mist puffs. */
.hw-game__steam { z-index: 0; overflow: hidden; border-radius: 18px; }
.hw-game__steam::before,
.hw-game__steam::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  filter: blur(8px);
}
.hw-game__steam::before {
  bottom: 8px;
  left: 14%;
  width: 54px;
  height: 22px;
  background: var(--hw-purple-bright);
  opacity: 0.22;
  animation: hw-rack-steam 4.2s ease-in-out infinite;
}
.hw-game__steam::after {
  top: 12px;
  right: 12%;
  width: 48px;
  height: 18px;
  background: var(--hw-pumpkin-bright);
  opacity: 0.20;
  animation: hw-rack-steam 3.6s ease-in-out 1.4s infinite;
}
@keyframes hw-rack-leds {
  0%, 100% { opacity: 0.95; }
  50% { opacity: 0.28; }
}
@keyframes hw-rack-candles {
  0% { opacity: 0.45; filter: brightness(0.9); }
  100% { opacity: 1; filter: brightness(1.25); }
}
@keyframes hw-rack-steam {
  0% { opacity: 0.10; transform: translateY(6px) scale(0.9); }
  50% { opacity: 0.30; transform: translateY(-7px) scale(1.12); }
  100% { opacity: 0.08; transform: translateY(-14px) scale(0.96); }
}
.hw-game__body { position: relative; z-index: 1; flex: 1; min-width: 0; }
.hw-game .hw-eyebrow { display: inline-block; margin-bottom: 4px; color: var(--hw-gold); }
.hw-game h2 { margin: 0 0 8px; font-size: clamp(22px, 2.6vw, 26px); line-height: 1.15; }
.hw-game .hw-muted { max-width: 580px; margin-bottom: 12px; color: var(--hw-text-secondary); line-height: 1.45; }
.hw-game .hw-tag { display: inline-flex; align-items: center; gap: 6px; box-shadow: var(--hw-glow-potion); }
.hw-game__play {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  padding: 15px 30px;
  font-size: 16px;
  letter-spacing: 0.02em;
  box-shadow: var(--hw-glow-pumpkin);
}
.hw-game__play:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: var(--hw-glow), 0 0 22px var(--hw-gold-glow);
  filter: brightness(1.06);
}

.hw-hunt h2 { font-size: 22px; }
.hw-hunt .hw-muted { margin: 0; }
.hw-candies { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.hw-candy { display: grid; place-items: center; width: 64px; height: 64px; border: 1px solid var(--hw-card-border); border-radius: 14px; background: rgba(0, 0, 0, 0.25); }
.hw-candy img { opacity: 0.35; filter: grayscale(0.7); }
.hw-candy.is-found { border-color: var(--hw-potion-border); background: var(--hw-potion-surface); box-shadow: var(--hw-glow-potion); }
.hw-candy.is-found img { opacity: 1; filter: none; }

.hw-prizes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 16px; padding: 0; list-style: none; }
.hw-prizes li { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 18px 12px; text-align: center; }
.hw-prizes b { font-size: 14px; }
.hw-prizes small { color: var(--hw-pumpkin-bright); font-size: 12px; font-weight: 700; }

.hw-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.hw-panel { padding: 22px; }
.hw-panel h2 { font-size: 20px; margin-bottom: 14px; }
.hw-list { margin: 0; padding: 0; list-style: none; }
.hw-list li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--hw-card-border); }
.hw-list li > span { flex: 1; min-width: 0; }
.hw-list b { display: block; font-size: 14px; }
.hw-list small { display: block; color: var(--hw-text-muted); font-size: 12px; }
.hw-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  padding: 4px 10px;
  border: 1px solid var(--hw-card-border);
  border-radius: 999px;
  color: var(--hw-text-muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
}
.hw-status--pending { border-color: var(--hw-status-pending-border); background: var(--hw-status-pending-bg); color: var(--hw-status-pending-text); }
.hw-status--approved { border-color: var(--hw-status-approved-border); background: var(--hw-status-approved-bg); color: var(--hw-status-approved-text); }
.hw-status--rejected { border-color: var(--hw-status-rejected-border); background: var(--hw-status-rejected-bg); color: var(--hw-status-rejected-text); }
.hw-history { margin-top: 14px; color: var(--hw-text-muted); font-size: 13px; }

.hw-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.hw-form label { display: flex; flex-direction: column; gap: 6px; color: var(--hw-text-muted); font-size: 13px; }
.hw-form__wide { grid-column: 1 / -1; }
.hw-form input, .hw-form select {
  padding: 10px 12px;
  border: 1px solid var(--hw-card-border);
  border-radius: 10px;
  background: var(--hw-bg-elevated);
  color: var(--hw-text-primary);
  font: inherit;
}
.hw-form input:focus, .hw-form select:focus { outline: 2px solid var(--hw-pumpkin-border); }
.hw-form .hw-btn { grid-column: 1 / -1; }
.hw-form__result { grid-column: 1 / -1; margin: 0; font-size: 14px; }
.hw-form__result.is-ok { color: var(--hw-potion); }
.hw-form__result.is-error { color: var(--hw-status-rejected-text); }

.hw-modal { position: fixed; inset: 0; z-index: 50; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(5, 2, 10, 0.78); backdrop-filter: blur(8px); }
.hw-modal[hidden] { display: none; }
.hw-modal__box { width: min(100%, 440px); padding: 28px; border: 1px solid var(--hw-pumpkin-border); border-radius: 24px; background: var(--hw-bg-elevated); text-align: center; box-shadow: var(--hw-glow); }
.hw-modal__art { position: relative; display: grid; place-items: center; height: 200px; margin-bottom: 12px; }
.hw-modal__art > * { position: absolute; }
.hw-modal__icon { width: 140px; height: 140px; }
.hw-modal__burst { top: 50%; left: 50%; margin: -128px 0 0 -128px; }
.hw-modal__burst.hw-anim-zombie-eat + .hw-modal__icon { display: none; }
.hw-modal__box h2 { margin: 12px 0 8px; }
.hw-modal__box p { color: var(--hw-text-secondary); }
.hw-modal__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* Sprite sheets (halloween/anim/anim.md). */
.hw-sprite { display: inline-block; background-repeat: no-repeat; background-position: 0 0; }
.hw-anim-bat { width: 128px; height: 128px; background-image: url("/halloween/anim/anim-bat-fly.png"); animation: hw-play-10-128 0.833s steps(10) infinite; }
.hw-anim-win-burst { width: 256px; height: 256px; background-image: url("/halloween/anim/anim-win-burst.png"); animation: hw-play-14-256 0.583s steps(14) 1 forwards; }
.hw-anim-zombie-eat { width: 256px; height: 256px; background-image: url("/halloween/anim/anim-zombie-eat.png"); animation: hw-play-10-256 0.833s steps(10) 1 forwards; }
@keyframes hw-play-10-128 { to { background-position: -1280px 0; } }
@keyframes hw-play-10-256 { to { background-position: -2560px 0; } }
@keyframes hw-play-14-256 { to { background-position: -3584px 0; } }

@media (max-width: 1000px) {
  .hw-ways { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hw-prizes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .hw-stage, .hw-split { grid-template-columns: 1fr; }
  .hw-stage { gap: 24px; }
  .hw-wheel { margin-top: 12%; }
  .hw-hunt, .hw-game { flex-direction: column; align-items: flex-start; }
  .hw-game {
    gap: 18px;
    padding: 20px;
    background:
      radial-gradient(280px 180px at 85% 15%, var(--hw-purple-surface), transparent 70%),
      var(--hw-grad-banner);
  }
  .hw-game__art { width: 120px; height: 120px; }
  .hw-game__art img { width: 112px; height: 112px; }
  .hw-game__lights { display: none; }
  .hw-game__play { width: 100%; }
  .hw-prizes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hw-web { width: 120px; }
  .hw-bat { display: none; }
  .hw-top__nav .hw-pill { display: none; }
}
@media (max-width: 420px) {
  .hw-ways, .hw-form { grid-template-columns: 1fr; }
  .hw-list li { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .hw-wheel__disc { transition-timing-function: ease-out; }
  .hw-anim-bat,
  .hw-game__lights::before,
  .hw-game__lights::after,
  .hw-game__steam::before,
  .hw-game__steam::after { animation: none !important; }
}
