.zb-halloween .zb-halloween-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-sizing: border-box;
    height: 28px;
    padding: 2px 10px;
    margin-block: 0;
    background: linear-gradient(100deg, #2b1234, #642b70, #2b1234);
    color: #fff;
    text-align: center;
    pointer-events: none;
}
.zb-halloween .zb-halloween-banner__text { font-size: 11px; line-height: 1.2; letter-spacing: .07em; }
.zb-halloween .zb-halloween-banner__text strong { color: #ffb264; font-weight: 700; }
.zb-halloween .zb-halloween-pumpkin { flex-shrink: 0; width: 20px; height: 20px; }

.zb-halloween .zb-halloween-menuitem { position: relative; }
.zb-halloween .zb-halloween-menu-spider {
    position: absolute;
    top: -13px;
    left: calc(50% - 10px);
    width: 20px;
    height: 20px;
    background: url('/assets/img/halloween-spider-20261013.svg') center / contain no-repeat;
    pointer-events: none;
    z-index: 1;
}
.zb-halloween .desktop-nav .zb-halloween-menu-spider { top: 8px; }
.zb-halloween .category-item > .zb-halloween-menu-spider { top: -8px; }
.zb-halloween .m-subcat-parent > .zb-halloween-menu-spider,
.zb-halloween .mobile-category-card > .zb-halloween-menu-spider { top: 0; }
.zb-halloween .category-child-item > .zb-halloween-menu-spider,
.zb-halloween .m-subcat-child > .zb-halloween-menu-spider { top: -3px; left: 2px; width: 14px; height: 14px; }
.zb-halloween .bnav-item > .zb-halloween-menu-spider { top: 0; left: calc(50% - 20px); width: 16px; height: 16px; filter: brightness(1.7); }

.zb-halloween .zb-halloween-photo { position: relative; }
.zb-halloween .zb-halloween-photo::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 48px;
    height: 48px;
    background: url('/assets/img/halloween-web-20261013.svg') center / contain no-repeat;
    transform: rotate(-90deg);
    opacity: .42;
    pointer-events: none;
    z-index: 2;
}
.zb-halloween .zb-halloween-photo--left::after { right: auto; left: 0; transform: rotate(180deg); }
.zb-halloween .gallery-thumb::after, .zb-halloween .m-gallery-thumb::after { width: 20px; height: 20px; }
.zb-halloween .zb-halloween-photo > .badge,
.zb-halloween .zb-halloween-photo > .product-card__discount { z-index: 3; }

.zb-halloween .zb-halloween-stage {
    position: relative;
    isolation: isolate;
    box-sizing: border-box;
    width: 100%;
    height: 180px;
    margin-top: 24px;
    overflow: hidden;
    border-top: 1px solid #6a3976;
    border-bottom: 1px solid #6a3976;
    background: radial-gradient(ellipse at 50% 110%, #693673, transparent 65%), #24132d;
}
.zb-halloween .zb-halloween-stage::after {
    content: '';
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 8px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #b083ba, transparent);
    pointer-events: none;
}
.zb-halloween .zb-halloween-stage + .site-footer { margin-top: 0; }
.zb-halloween .zb-halloween-pause {
    position: absolute;
    top: 6px;
    right: 10px;
    z-index: 2;
    min-height: 28px;
    border: 1px solid #795787;
    border-radius: 16px;
    padding: 4px 12px;
    background: #2d1936;
    color: #f3e6f6;
    font: inherit;
    font-size: 11px;
    line-height: 1.3;
    cursor: pointer;
}
.zb-halloween .zb-halloween-pause:focus-visible { outline: 2px solid #ffb264; outline-offset: 2px; }
.zb-halloween .zb-skeleton-rail { position: absolute; inset: 36px 72px 8px 12px; pointer-events: none; }
.zb-halloween .zb-skeleton-traveler { width: 100%; height: 100%; animation: zb-skeleton-travel 16s ease-in-out infinite alternate; }
.zb-halloween .zb-skeleton-figure { display: block; width: 94px; height: 136px; animation: zb-skeleton-bounce .7s ease-in-out infinite alternate; }
.zb-halloween .zb-skeleton-arm, .zb-halloween .zb-skeleton-leg { transform-origin: 0 0; animation: zb-skeleton-swing .7s ease-in-out infinite alternate; }
.zb-halloween .zb-skeleton-arm--right, .zb-halloween .zb-skeleton-leg--left { animation-direction: alternate-reverse; }
.zb-halloween .zb-skeleton-traveler,
.zb-halloween .zb-skeleton-figure,
.zb-halloween .zb-skeleton-arm,
.zb-halloween .zb-skeleton-leg { animation-play-state: paused; }
.zb-halloween .zb-halloween-stage.is-in-view:not(.is-paused):not(.is-tab-hidden) .zb-skeleton-traveler,
.zb-halloween .zb-halloween-stage.is-in-view:not(.is-paused):not(.is-tab-hidden) .zb-skeleton-figure,
.zb-halloween .zb-halloween-stage.is-in-view:not(.is-paused):not(.is-tab-hidden) .zb-skeleton-arm,
.zb-halloween .zb-halloween-stage.is-in-view:not(.is-paused):not(.is-tab-hidden) .zb-skeleton-leg { animation-play-state: running; }
@keyframes zb-skeleton-travel { from { transform: translateX(0); } to { transform: translateX(calc(100% - 94px)); } }
@keyframes zb-skeleton-bounce { from { transform: translateY(0); } to { transform: translateY(-4px); } }
@keyframes zb-skeleton-swing { from { transform: rotate(-13deg); } to { transform: rotate(13deg); } }
@media (max-width: 600px) {
    .zb-halloween .zb-halloween-banner { height: 26px; }
    .zb-halloween .zb-halloween-banner__text { font-size: 10px; letter-spacing: .03em; }
    .zb-halloween .zb-halloween-photo::after { width: 36px; height: 36px; }
    .zb-halloween .m-gallery-thumb::after { width: 18px; height: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .zb-halloween .zb-skeleton-traveler,
    .zb-halloween .zb-skeleton-figure,
    .zb-halloween .zb-skeleton-arm,
    .zb-halloween .zb-skeleton-leg { animation: none; }
    .zb-halloween .zb-halloween-pause { display: none; }
}
@media print {
    .zb-halloween .zb-halloween-banner,
    .zb-halloween .zb-halloween-menu-spider,
    .zb-halloween .zb-halloween-photo::after,
    .zb-halloween .zb-halloween-stage { display: none; }
}
