/* ==========================================================================
   DRS — Halloween theme (loaded only while halloween_active(); see app/config/app.php).
   Orange + purple palette, pumpkin cursor, moon, bats, spider, cobweb and cursor embers.
   body.hw-off = the visitor turned the effects off (palette stays, the rest goes).
   ========================================================================== */

body.halloween {
    --primary: #F97316;
    --secondary: #8B5CF6;
    --accent: var(--primary);
    --shadow-glow: 0 0 0 1px rgba(249,115,22,0.35), 0 8px 30px rgba(249,115,22,0.15);
    --shadow-glow-lg: 0 0 0 1px rgba(249,115,22,0.3), 0 16px 48px rgba(249,115,22,0.25);
}
body.halloween ::selection { background: rgba(249,115,22,0.45); color: #fff; }

/* Sky tint + full moon (fixed layer, same slot as the default tint in layout.css) */
body.halloween::after {
    background:
        radial-gradient(circle at 90% 26%, rgba(255,241,214,0.95) 0 34px, rgba(253,186,116,0.35) 36px, rgba(249,115,22,0.10) 90px, transparent 170px),
        radial-gradient(90% 60% at 50% -5%, rgba(249,115,22,0.20), transparent 60%),
        radial-gradient(60% 50% at 100% 100%, rgba(139,92,246,0.16), transparent 70%),
        linear-gradient(180deg, rgba(8,9,13,0.22) 0%, rgba(8,9,13,0.42) 45%, rgba(8,9,13,0.7) 100%);
}
body.halloween .text-gradient {
    background-image: linear-gradient(100deg, #FDBA74 0%, var(--primary) 45%, #C084FC 100%);
}
body.halloween .marquee-bar { background: linear-gradient(90deg, #C2410C, var(--primary) 45%, #7C3AED); }

/* ---------- Pumpkin cursor (lit pumpkin over clickable things) ---------- */
body.halloween:not(.hw-off) {
    cursor: url("../images/halloween/pumpkin.svg") 8 8, auto;
}
body.halloween:not(.hw-off) :is(a[href], button:not(:disabled), [role="button"], label[for], summary, select, .btn:not([disabled]), .shot-thumb, .tab-btn) {
    cursor: url("../images/halloween/pumpkin-lit.svg") 8 8, pointer;
}
body.halloween:not(.hw-off) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), textarea, [contenteditable="true"]) {
    cursor: text;
}

/* ---------- Bats ---------- */
.hw-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.hw-sky { position: fixed; inset: 0; z-index: 35; pointer-events: none; overflow: hidden; }
.hw-bat {
    position: absolute; left: 0; top: 0;
    width: 64px; height: 32px;
    fill: #0B0B10;
    filter: drop-shadow(0 0 6px rgba(249,115,22,0.35));
    opacity: 0;
}
.hw-wing { transform-box: fill-box; animation: hw-flap .22s ease-in-out infinite alternate; }
.hw-wing-l { transform-origin: right center; }
.hw-wing-r { transform-origin: left center; }
@keyframes hw-flap { from { transform: scaleY(1); } to { transform: scaleY(-0.35); } }

.hw-bat-1 { width: 54px; animation: hw-fly-1 22s linear 2s infinite; }
.hw-bat-2 { width: 38px; height: 20px; animation: hw-fly-2 30s linear 9s infinite; }
.hw-bat-3 { width: 46px; height: 24px; animation: hw-fly-3 26s linear 16s infinite; }
@keyframes hw-fly-1 {
    0%   { transform: translate(-80px, 30vh) rotate(-6deg); opacity: 1; }
    25%  { transform: translate(25vw, 18vh) rotate(4deg); }
    50%  { transform: translate(50vw, 26vh) rotate(-5deg); }
    75%  { transform: translate(78vw, 12vh) rotate(6deg); }
    99%  { transform: translate(calc(100vw + 80px), 20vh) rotate(-4deg); opacity: 1; }
    100% { transform: translate(calc(100vw + 80px), 20vh); opacity: 0; }
}
@keyframes hw-fly-2 {
    0%   { transform: translate(calc(100vw + 60px), 58vh) scaleX(-1); opacity: 1; }
    30%  { transform: translate(66vw, 44vh) scaleX(-1) rotate(5deg); }
    60%  { transform: translate(34vw, 52vh) scaleX(-1) rotate(-5deg); }
    99%  { transform: translate(-60px, 38vh) scaleX(-1); opacity: 1; }
    100% { transform: translate(-60px, 38vh) scaleX(-1); opacity: 0; }
}
@keyframes hw-fly-3 {
    0%   { transform: translate(-60px, 72vh) rotate(-10deg); opacity: 1; }
    35%  { transform: translate(30vw, 60vh) rotate(6deg); }
    65%  { transform: translate(62vw, 70vh) rotate(-6deg); }
    99%  { transform: translate(calc(100vw + 60px), 52vh); opacity: 1; }
    100% { transform: translate(calc(100vw + 60px), 52vh); opacity: 0; }
}

/* ---------- Cobweb + spider (top of the page, scroll away with it) ---------- */
body.halloween > main { position: relative; }
.hw-top { position: absolute; top: 0; left: 0; right: 0; height: 0; z-index: 30; pointer-events: none; }
.hw-web { position: absolute; top: 0; left: 0; width: 120px; height: 120px; color: rgba(226,232,240,0.28); }
.hw-spider {
    position: absolute; top: 0; right: 9%;
    display: flex; flex-direction: column; align-items: center;
    padding: 0; border: 0; background: none;
    pointer-events: auto;
    transform-origin: top center;
    animation: hw-swing 5s ease-in-out infinite alternate;
}
.hw-thread { display: block; width: 1px; height: 120px; background: linear-gradient(rgba(226,232,240,0.15), rgba(226,232,240,0.55)); transition: height .6s cubic-bezier(.5,-0.4,.5,1.4); }
.hw-spider-body { width: 34px; height: 34px; margin-top: -4px; }
.hw-spider.is-up .hw-thread { height: 8px; transition-duration: .35s; }
@keyframes hw-swing { from { transform: rotate(-4deg); } to { transform: rotate(4deg); } }

/* ---------- Cursor embers and click burst (spawned by halloween.js) ---------- */
.hw-ember {
    position: fixed; z-index: 1100; pointer-events: none;
    width: 6px; height: 6px; border-radius: 50%;
    background: radial-gradient(circle, #FDE68A, #F97316 60%, transparent 70%);
    animation: hw-ember .9s ease-out forwards;
}
@keyframes hw-ember {
    from { transform: translate(-50%, -50%) scale(1); opacity: .95; }
    to   { transform: translate(calc(-50% + var(--dx)), calc(-50% + 26px)) scale(.2); opacity: 0; }
}
.hw-pop {
    position: fixed; z-index: 1100; pointer-events: none;
    font-size: 20px; line-height: 1;
    animation: hw-pop .85s cubic-bezier(.2,.7,.3,1) forwards;
}
@keyframes hw-pop {
    from { transform: translate(-50%, -50%) scale(.4) rotate(0); opacity: 1; }
    to   { transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1) rotate(var(--rot)); opacity: 0; }
}

/* ---------- On/off button ---------- */
.hw-toggle {
    position: fixed; left: 16px; bottom: 16px; z-index: 84;
    width: 44px; height: 44px; border-radius: 50%;
    display: grid; place-items: center;
    font-size: 22px; line-height: 1;
    border: 1px solid rgba(249,115,22,0.45);
    background: rgba(18,20,28,0.92);
    box-shadow: 0 0 18px rgba(249,115,22,0.35);
    transition: transform .2s var(--ease-out), opacity .2s, box-shadow .2s;
}
.hw-toggle:hover { transform: scale(1.08) rotate(-8deg); box-shadow: 0 0 26px rgba(249,115,22,0.6); }
.hw-toggle:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
body.hw-off .hw-toggle { opacity: .45; filter: grayscale(1); box-shadow: none; }

body.hw-off .hw-sky, body.hw-off .hw-top { display: none; }

@media (max-width: 860px) {
    .hw-web { width: 80px; height: 80px; }
    .hw-thread { height: 80px; }
    .hw-spider { right: 18px; }
    .hw-bat-3 { display: none; }
    .hw-toggle { width: 38px; height: 38px; font-size: 19px; left: 10px; bottom: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .hw-sky { display: none; }
    .hw-spider, .hw-wing { animation: none; }
    .hw-toggle:hover { transform: none; }
}

@media print {
    .hw-sky, .hw-top, .hw-toggle { display: none; }
}

/* ==========================================================================
   Mês do Halloween — extra: nevoeiro, fantasmas, relâmpagos, cartões, chapéu de bruxa,
   morcegos a sair da lua, faixa da campanha e caça às abóboras.
   ========================================================================== */

/* ---------- Fog over the whole site: a fixed layer at the bottom of the window (added by halloween.js) ---------- */
.hw-fog { position: fixed; left: 0; right: 0; bottom: 0; height: 48vh; z-index: 32; pointer-events: none; overflow: hidden;
    -webkit-mask-image: linear-gradient(to top, #000 35%, transparent); mask-image: linear-gradient(to top, #000 35%, transparent); }
.hw-fog span {
    position: absolute; bottom: -10%; left: -50%; width: 200%; height: 100%;
    background:
        radial-gradient(ellipse 18% 38% at 12% 70%, rgba(203,213,225,.16), transparent 70%),
        radial-gradient(ellipse 22% 42% at 34% 80%, rgba(203,213,225,.12), transparent 70%),
        radial-gradient(ellipse 20% 36% at 58% 72%, rgba(196,181,253,.12), transparent 70%),
        radial-gradient(ellipse 24% 44% at 82% 82%, rgba(203,213,225,.14), transparent 70%);
    filter: blur(6px);
    animation: hw-fog-drift 38s linear infinite;
}
.hw-fog span:nth-child(2) { bottom: -22%; opacity: .8; animation-duration: 56s; animation-direction: reverse; }
.hw-fog span:nth-child(3) { bottom: 18%; height: 70%; opacity: .45; animation-duration: 80s; }
@keyframes hw-fog-drift { from { transform: translateX(0); } to { transform: translateX(25%); } }

/* ---------- Ghosts in the hero (flee from the mouse: halloween.js sets --fx / --fy) ---------- */
.hw-ghosts { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.hw-ghost {
    position: absolute; width: 58px; height: 72px;
    filter: drop-shadow(0 0 14px rgba(241,245,255,.35));
    transform: translate(var(--fx, 0px), var(--fy, 0px));
    transition: transform .9s cubic-bezier(.2,.8,.2,1), opacity .6s;
    opacity: .85;
}
.hw-ghost use { animation: hw-ghost-float 4.5s ease-in-out infinite alternate; transform-box: fill-box; }
.hw-ghost-1 { left: 6%; top: 18%; }
.hw-ghost-2 { right: 4%; bottom: 14%; width: 42px; height: 52px; opacity: .7; }
.hw-ghost-2 use { animation-duration: 5.6s; animation-delay: -2s; }
.hw-ghost.is-scared { opacity: .25; }
@keyframes hw-ghost-float { from { transform: translateY(0) rotate(-4deg); } to { transform: translateY(-14px) rotate(4deg); } }

/* ---------- Lightning behind the moon ---------- */
.hw-flash { position: fixed; inset: 0; z-index: 34; pointer-events: none; opacity: 0; background: radial-gradient(circle at 90% 22%, rgba(237,233,254,.55), rgba(196,181,253,.12) 40%, transparent 70%); }
.hw-bolt { position: fixed; right: 7.5%; top: 4vh; width: 34px; height: 104px; z-index: 34; pointer-events: none; opacity: 0; fill: #EDE9FE; filter: drop-shadow(0 0 10px #C4B5FD) drop-shadow(0 0 22px rgba(139,92,246,.8)); }
body.hw-lightning .hw-flash { animation: hw-flash .9s ease-out; }
body.hw-lightning .hw-bolt { animation: hw-bolt .9s ease-out; }
@keyframes hw-flash { 0% { opacity: 0; } 8% { opacity: 1; } 16% { opacity: .15; } 24% { opacity: .8; } 100% { opacity: 0; } }
@keyframes hw-bolt { 0% { opacity: 0; } 6% { opacity: 1; } 14% { opacity: .2; } 22% { opacity: 1; } 60% { opacity: .4; } 100% { opacity: 0; } }

/* ---------- Product cards: glow, cobweb corner, pumpkin peeking ---------- */
body.halloween:not(.hw-off) .product-card:hover { box-shadow: 0 0 0 1px rgba(249,115,22,.45), 0 16px 44px rgba(249,115,22,.22); }
.hw-card-web {
    position: absolute; top: 0; left: 0; width: 46px; height: 46px; z-index: 1; pointer-events: none; opacity: .55;
    background:
        linear-gradient(135deg, transparent 49%, rgba(226,232,240,.5) 50%, transparent 51%),
        radial-gradient(circle at 0 0, transparent 14px, rgba(226,232,240,.45) 15px, transparent 16px),
        radial-gradient(circle at 0 0, transparent 26px, rgba(226,232,240,.35) 27px, transparent 28px),
        radial-gradient(circle at 0 0, transparent 38px, rgba(226,232,240,.25) 39px, transparent 40px);
}
.hw-card-pumpkin {
    position: absolute; left: 12px; bottom: -30px; width: 34px; height: 34px; z-index: 1; pointer-events: none;
    background: url("../images/halloween/pumpkin-lit.svg") center / contain no-repeat;
    filter: drop-shadow(0 0 8px rgba(249,115,22,.6));
    transition: transform .45s cubic-bezier(.3,1.6,.5,1);
}
.product-card:hover .hw-card-pumpkin { transform: translateY(-34px) rotate(-8deg); }
body.hw-off .hw-card-web, body.hw-off .hw-card-pumpkin { display: none; }

/* ---------- Witch hat on the logo ---------- */
body.halloween:not(.hw-off) .site-header .brand { position: relative; }
body.halloween:not(.hw-off) .site-header .brand::after {
    content: ""; position: absolute; left: -14px; top: -17px; width: 40px; height: 30px;
    background: url("../images/halloween/witch-hat.svg") center / contain no-repeat;
    transform: rotate(-18deg); transform-origin: 70% 90%;
    pointer-events: none;
    transition: transform .4s cubic-bezier(.3,1.6,.5,1);
}
body.halloween:not(.hw-off) .site-header .brand:hover::after { transform: rotate(-30deg) translateY(-4px); }

/* ---------- Bat swarm leaving the moon (first page of the visit) ---------- */
.hw-swarm { position: fixed; inset: 0; z-index: 36; pointer-events: none; overflow: hidden; }
.hw-swarm svg {
    position: absolute; width: var(--w, 34px); height: calc(var(--w, 34px) / 2);
    fill: #0B0B10; filter: drop-shadow(0 0 5px rgba(249,115,22,.45));
    animation: hw-swarm var(--t, 3s) cubic-bezier(.35,.1,.6,1) var(--delay, 0s) forwards;
    opacity: 0;
}
@keyframes hw-swarm {
    0% { transform: translate(-50%, -50%) scale(.2); opacity: 0; }
    10% { opacity: 1; }
    100% { transform: translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) scale(1.1); opacity: 0; }
}

/* ---------- Campaign strip under the homepage hero ---------- */
.hw-campaign {
    position: relative; z-index: 1;
    border-top: 1px solid rgba(249,115,22,.35); border-bottom: 1px solid rgba(139,92,246,.35);
    background: linear-gradient(90deg, rgba(194,65,12,.28), rgba(15,12,24,.85) 45%, rgba(109,40,217,.25));
}
.hw-campaign-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px 28px; flex-wrap: wrap; padding-top: 16px; padding-bottom: 16px; }
.hw-campaign-text { display: flex; align-items: center; gap: 14px; }
.hw-campaign-text strong { display: block; font-size: 1.05rem; }
.hw-campaign-text span { color: var(--text-muted, #94a3b8); font-size: .9rem; }
.hw-campaign-icon { font-size: 2rem; animation: hw-bob 2.4s ease-in-out infinite alternate; }
@keyframes hw-bob { from { transform: translateY(0) rotate(-6deg); } to { transform: translateY(-5px) rotate(6deg); } }
.hw-countdown { display: flex; align-items: center; gap: 8px; }
.hw-countdown-label { color: var(--text-muted, #94a3b8); font-size: .85rem; margin-right: 4px; }
.hw-cd { display: flex; flex-direction: column; align-items: center; min-width: 52px; padding: 6px 8px; border-radius: 10px; background: rgba(8,9,13,.6); border: 1px solid rgba(249,115,22,.35); }
.hw-cd b { font-size: 1.25rem; line-height: 1.1; font-variant-numeric: tabular-nums; color: #FDBA74; }
.hw-cd small { font-size: .68rem; color: var(--text-muted, #94a3b8); text-transform: uppercase; letter-spacing: .06em; }
.hw-campaign-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hw-coupon { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 10px; border: 1px dashed rgba(249,115,22,.7); background: rgba(249,115,22,.1); color: #FED7AA; font-weight: 600; }
.hw-coupon code { font-size: .95rem; letter-spacing: .06em; color: #fff; }
.hw-coupon:hover { background: rgba(249,115,22,.2); }
.hw-hunt-hint { font-size: .85rem; color: #E9D5FF; }
.hw-section .section-head h2 { background-image: linear-gradient(100deg, #FDBA74, #F97316 45%, #C084FC); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hw-section-more { text-align: center; margin-top: 22px; }

/* ---------- Pumpkin hunt ---------- */
.hw-hunt-host { position: relative; }
.hw-hunt {
    position: absolute; z-index: 5; width: 30px; height: 30px; padding: 0; border: 0; background: none;
    opacity: .55; filter: drop-shadow(0 0 6px rgba(249,115,22,.5));
    transition: opacity .25s, transform .25s;
    animation: hw-hunt-wobble 3.2s ease-in-out infinite;
}
.hw-hunt svg { width: 100%; height: 100%; display: block; }
.hw-hunt:hover, .hw-hunt:focus-visible { opacity: 1; transform: scale(1.25); }
.hw-hunt.is-caught { animation: hw-hunt-caught .7s ease-in forwards; pointer-events: none; }
@keyframes hw-hunt-wobble { 0%, 86%, 100% { rotate: 0deg; } 90% { rotate: -14deg; } 95% { rotate: 12deg; } }
@keyframes hw-hunt-caught { 40% { transform: scale(1.8) rotate(-12deg); opacity: 1; } 100% { transform: scale(0) rotate(40deg); opacity: 0; } }
.hw-hunt:not(.is-placed) { visibility: hidden; }
.hw-hunt-s1 { right: 3%; bottom: 22px; }
.hw-hunt-s2 { right: 7%; bottom: 16px; }
.hw-hunt-s3 { left: 6%; bottom: 14px; }
.hw-hunt-s4 { right: -38px; top: 6px; }
.hw-hunt-s5 { right: 5%; bottom: 14px; }
.hw-hunt-host > .hw-hunt { z-index: 6; }
.hw-hunt-status {
    position: fixed; left: 68px; bottom: 20px; z-index: 84;
    display: flex; align-items: center; gap: 6px; padding: 6px 12px 6px 8px; border-radius: 999px;
    background: rgba(18,20,28,.92); border: 1px solid rgba(249,115,22,.45); color: #FED7AA; font-size: .85rem;
    box-shadow: 0 0 14px rgba(249,115,22,.25);
}
.hw-hunt-status[hidden] { display: none; }
.hw-hunt-status svg { width: 20px; height: 20px; }
.hw-hunt-status.is-bump { animation: hw-bump .5s ease-out; }
@keyframes hw-bump { 40% { transform: scale(1.18); } }
.hw-modal { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 16px; background: rgba(4,4,8,.72); }
.hw-modal[hidden] { display: none; }
.hw-modal-card {
    position: relative; width: min(440px, 100%); padding: 30px 26px 24px; border-radius: 18px; text-align: center;
    background: linear-gradient(160deg, #1B1426, #0E0F16); border: 1px solid rgba(249,115,22,.5);
    box-shadow: 0 0 60px rgba(249,115,22,.3);
    animation: hw-modal-in .45s cubic-bezier(.3,1.5,.5,1);
}
.hw-modal-card h2 { margin: 10px 0 8px; }
.hw-modal-card .offer-code { margin: 16px 0; }
.hw-modal-pumpkins { font-size: 1.8rem; letter-spacing: 4px; }
.hw-modal-x { position: absolute; top: 10px; right: 12px; border: 0; background: none; color: var(--text-muted, #94a3b8); font-size: 1.1rem; }
@keyframes hw-modal-in { from { transform: scale(.85); opacity: 0; } to { transform: scale(1); opacity: 1; } }

.hw-toast {
    position: fixed; left: 50%; bottom: 28px; z-index: 1150; transform: translateX(-50%);
    padding: 10px 18px; border-radius: 12px; font-weight: 600; color: #FED7AA;
    background: rgba(18,20,28,.96); border: 1px solid rgba(249,115,22,.55); box-shadow: 0 0 24px rgba(249,115,22,.3);
    animation: hw-toast-in .35s cubic-bezier(.3,1.5,.5,1);
    transition: opacity .5s, transform .5s;
}
.hw-toast.is-out { opacity: 0; transform: translate(-50%, 12px); }
@keyframes hw-toast-in { from { opacity: 0; transform: translate(-50%, 16px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* ---------- Cobwebs around the screen (corners of the window + one hanging at the side) ---------- */
.hw-screen-webs { position: fixed; inset: 0; z-index: 33; pointer-events: none; }
.hw-screen-web { position: absolute; width: 150px; height: 150px; color: rgba(226,232,240,.2); animation: hw-web-sway 7s ease-in-out infinite alternate; }
.hw-screen-web-tr { top: 64px; right: 0; transform: scaleX(-1); transform-origin: right top; animation-name: hw-web-sway-r; }
.hw-screen-web-bl { bottom: 0; left: 0; transform: scaleY(-1); transform-origin: left bottom; animation-name: hw-web-sway-bl; }
.hw-screen-web-br { bottom: 0; right: 0; transform: scale(-1, -1); transform-origin: right bottom; animation-name: hw-web-sway-br; width: 120px; height: 120px; }
.hw-screen-web-mid { top: 42%; left: 0; width: 90px; height: 90px; transform: rotate(-90deg) scaleX(-1); transform-origin: left top; color: rgba(226,232,240,.14); animation: none; }
@keyframes hw-web-sway-r { from { transform: scaleX(-1) skewY(0deg); } to { transform: scaleX(-1) skewY(2deg); } }
@keyframes hw-web-sway-bl { from { transform: scaleY(-1) skewX(0deg); } to { transform: scaleY(-1) skewX(2deg); } }
@keyframes hw-web-sway-br { from { transform: scale(-1, -1) skewX(0deg); } to { transform: scale(-1, -1) skewX(-2deg); } }
.hw-strand { position: absolute; top: 64px; width: 1px; background: linear-gradient(rgba(226,232,240,.35), rgba(226,232,240,0)); }
.hw-strand::after { content: ""; position: absolute; left: -3px; bottom: 0; width: 7px; height: 7px; border-radius: 50%; background: #15151D; box-shadow: 0 0 0 1px rgba(249,115,22,.35); }
.hw-strand-1 { left: 22%; height: 70px; animation: hw-strand 6s ease-in-out infinite alternate; }
.hw-strand-2 { left: 64%; height: 46px; animation: hw-strand 7.5s ease-in-out -3s infinite alternate; }
@keyframes hw-strand { from { transform: scaleY(1); } to { transform: scaleY(1.35); } }
body.hw-off .hw-screen-webs { display: none; }

body.hw-off .hw-fog, body.hw-off .hw-ghosts, body.hw-off .hw-flash, body.hw-off .hw-bolt, body.hw-off .hw-swarm { display: none; }

@media (max-width: 860px) {
    .hw-ghost-2 { display: none; }
    .hw-ghost-1 { width: 42px; height: 52px; top: 8%; }
    .hw-bolt { right: 4%; width: 24px; height: 74px; }
    .hw-campaign-inner { justify-content: center; text-align: center; }
    .hw-campaign-text { flex-direction: column; gap: 4px; }
    .hw-cd { min-width: 44px; padding: 5px 6px; }
    .hw-hunt-status { left: 56px; bottom: 12px; }
    .hw-hunt-s4 { right: 0; top: -30px; }
    .hw-screen-web { width: 90px; height: 90px; }
    .hw-screen-web-mid { display: none; }
    body.halloween:not(.hw-off) .site-header .brand::after { left: -10px; top: -13px; width: 32px; height: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .hw-fog span, .hw-ghost use, .hw-campaign-icon, .hw-hunt, .hw-screen-web, .hw-strand { animation: none; }
    .hw-flash, .hw-bolt, .hw-swarm { display: none; }
}

@media print {
    .hw-fog, .hw-ghosts, .hw-flash, .hw-bolt, .hw-swarm, .hw-hunt, .hw-hunt-status, .hw-modal { display: none; }
}
