/* Text-only, continuously moving promotion strip. Content remains accessible once to screen readers. */
.promo-ticker{height:var(--ticker-height,48px);display:flex;align-items:center;background:linear-gradient(180deg,#fa3038,#cf071d);color:#fff;position:relative;isolation:isolate;overflow:visible}
.promo-ticker-window{direction:ltr;min-width:0;flex:1;overflow:hidden;height:100%;display:flex;align-items:center;mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent)}
.promo-ticker-track{display:flex;width:max-content;direction:ltr;animation:promo-scroll var(--ticker-duration,20s) linear infinite;will-change:transform}
.promo-ticker-track>span{flex:none;min-width:100vw;padding-inline:48px;white-space:nowrap;text-align:center;font-size:var(--ticker-font,18px);font-weight:700;line-height:1.2;text-shadow:none}
html[dir=rtl] .promo-ticker-track{animation-direction:reverse}
@keyframes promo-scroll{to{transform:translateX(calc(-1 * var(--ticker-travel,100vw)))}}
.promotion-dialog{padding:0;border:1px solid #ffffff25;border-radius:18px;width:min(var(--promotion-width,600px),calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);background:#111;color:#fff;overflow:hidden;box-shadow:0 26px 100px #0008;margin:auto}
.promotion-dialog::backdrop{background:#000a;backdrop-filter:blur(5px)}
.promotion-dialog .promotion-picture{display:block;width:100%;height:auto;max-height:min(var(--promotion-height,760px),calc(100dvh - 34px));object-fit:contain}
.promotion-dialog .promotion-close{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #ffffffa1;border-radius:50%;background:#111d;color:#fff;box-shadow:0 2px 10px #0006;z-index:1}
.promotion-close svg{width:22px;height:22px;stroke-width:2}.promotion-close:hover{background:#111}.promotion-close:focus-visible{outline:3px solid #fff;outline-offset:-6px}
@media(prefers-reduced-motion:reduce){.promo-ticker-track{animation:none;will-change:auto;width:100%}.promo-ticker-track>span:first-child{min-width:0;width:100%;white-space:normal;overflow:auto;max-height:var(--ticker-height,48px);padding:6px 15px;font-size:min(var(--ticker-font,18px),20px)}.promo-ticker-track>span[aria-hidden]{display:none}}

/* Pulse only the frame glow, never the text/background; reduced-motion keeps a steady outline. */
.promo-ticker::after{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid #ff747d;box-shadow:0 0 9px 2px #ff1636b3,0 0 24px 5px #f608294d,inset 0 0 7px #ff7b8580;opacity:.35;animation:promo-neon 2.4s ease-in-out infinite;z-index:1}
@keyframes promo-neon{0%,100%{opacity:.3}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.promo-ticker::after{animation:none;opacity:.45}}
