/* Klyro · Хэллоуин на экранах входа и регистрации (включается вместе с ивентом) */
body.hw-auth { --hw-or: #f97316; --hw-or2: #fb923c; --hw-pu: #7c3aed; }
body.hw-auth .authv2-hero {
  background:
    radial-gradient(60% 70% at 82% 18%, rgba(253, 230, 138, .22), transparent 60%),
    radial-gradient(120% 90% at 50% 110%, rgba(249, 115, 22, .42), transparent 65%),
    linear-gradient(180deg, #120a22 0%, #2a1240 70%, #3b1530 100%) !important;
}
html:not(.dark) body.hw-auth .authv2-hero {
  background:
    radial-gradient(60% 70% at 82% 18%, rgba(253, 230, 138, .28), transparent 60%),
    radial-gradient(120% 90% at 50% 110%, rgba(249, 115, 22, .45), transparent 65%),
    linear-gradient(180deg, #1c1030 0%, #3a1a55 70%, #5a2440 100%) !important;
}
body.hw-auth .authv2-lines {
  -webkit-mask-image: url("doodle.svg") !important; mask-image: url("doodle.svg") !important;
  -webkit-mask-size: 220px 220px !important; mask-size: 220px 220px !important;
  background: linear-gradient(160deg, #fdba74, #f97316 45%, #a78bfa) !important; background-size: 200% 200% !important;
  opacity: .42 !important;
}
/* луна с лёгким свечением */
body.hw-auth .authv2-hero::before {
  content: ""; position: absolute; z-index: 1; left: 8%; top: calc(58px + var(--safe-top, 0px)); width: 46px; height: 46px; border-radius: 50%;
  background: radial-gradient(circle at 38% 36%, #fffbeb, #fde68a 55%, #f59e0b 100%);
  box-shadow: 0 0 40px 10px rgba(253, 230, 138, .35); opacity: .95;
  -webkit-mask: radial-gradient(circle at 70% 30%, transparent 34%, #000 35%); mask: radial-gradient(circle at 70% 30%, transparent 34%, #000 35%);
}
body.hw-auth .authv2-hero::after { background: linear-gradient(transparent 55%, var(--klyro-surface)) !important; }
body.hw-auth .authv2-wm { color: #fff7ed !important; text-shadow: 0 0 26px rgba(249, 115, 22, .75), 0 6px 30px rgba(124, 58, 237, .5) !important; display: inline-flex; align-items: center; gap: 6px; }
body.hw-auth .authv2-wm::after {
  content: ""; width: 40px; height: 40px; flex: none; margin-top: 4px;
  background: url("art/pumpkin.svg") center / contain no-repeat;
  filter: drop-shadow(0 4px 12px rgba(249, 115, 22, .6)); animation: hw-auth-bob 3.4s ease-in-out infinite;
}
@keyframes hw-auth-bob { 50% { transform: translateY(-4px) rotate(-6deg); } }
/* летучие мыши над надписью */
body.hw-auth .authv2-hero .hw-auth-bats { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
body.hw-auth .hw-auth-bats i {
  position: absolute; width: 34px; height: 16px; background: url("art/bat-light.svg") center / contain no-repeat; opacity: .8;
  animation: hw-auth-fly 9s linear infinite;
}
body.hw-auth .hw-auth-bats i:nth-child(1) { top: 34%; left: -12%; }
body.hw-auth .hw-auth-bats i:nth-child(2) { top: 22%; left: -20%; width: 24px; animation-duration: 12s; animation-delay: -4s; opacity: .55; }
body.hw-auth .hw-auth-bats i:nth-child(3) { top: 52%; left: -16%; width: 20px; animation-duration: 14s; animation-delay: -9s; opacity: .45; }
@keyframes hw-auth-fly { 0% { transform: translate(0, 0); } 25% { transform: translate(35vw, -12px); } 50% { transform: translate(70vw, 6px); } 100% { transform: translate(130vw, -8px); } }
@media (prefers-reduced-motion: reduce) { body.hw-auth .hw-auth-bats, body.hw-auth .authv2-wm::after { animation: none; display: none; } }
/* лист с формой и кнопки — тыквенный акцент */
body.hw-auth .authv2-main { box-shadow: 0 -1px 0 rgba(249, 115, 22, .25), 0 -18px 40px rgba(124, 58, 237, .18); }
body.hw-auth .klyro-btn-primary, body.hw-auth .auth-submit {
  background: linear-gradient(180deg, var(--hw-or2), var(--hw-or)) !important; border-color: transparent !important; color: #fff !important;
  box-shadow: 0 10px 26px -8px rgba(249, 115, 22, .7) !important;
}
body.hw-auth .klyro-input:focus, body.hw-auth .authv2-field .klyro-input:focus { border-color: var(--hw-or) !important; box-shadow: 0 0 0 3px rgba(249, 115, 22, .22) !important; }
body.hw-auth .authv2-seg .on { box-shadow: 0 2px 10px rgba(249, 115, 22, .25); }
body.hw-auth .authv2-card a:not(.klyro-btn):not(.nav-btn), body.hw-auth .auth-foot a { color: var(--hw-or); }
body.hw-auth .authv2-seg a { color: var(--klyro-text-muted) !important; }
body.hw-auth .check input[type="checkbox"]:checked { accent-color: var(--hw-or); }
body.hw-auth .authv2-strength i.on, body.hw-auth [class*="strength"] .on { background: var(--hw-or) !important; }
/* остальные экраны без шапки-обоев (восстановление пароля, вход приложения) */
body.hw-auth:not(:has(.authv2-hero)) { background: radial-gradient(90% 60% at 50% 0%, rgba(249, 115, 22, .16), transparent 60%), var(--klyro-bg) !important; }
body.hw-auth [class*="steps"] .on, body.hw-auth [class*="progress"] .on, body.hw-auth .authv2-steps i.on, body.hw-auth .authv2-step.on { background: var(--hw-or) !important; }
body.hw-auth .authv2-steps span.on { background: linear-gradient(90deg, #fdba74, #f97316) !important; }
