.banner-slot.has-welcome { overflow: visible; margin-top: 13px; }
.banner-slot .welcome-banner { position: relative; display: block; width: 100%; padding: 0; border: 0; border-radius: 0; background: none; overflow: visible; aspect-ratio: 1918 / 820; isolation: isolate; text-align: center; font-family: inherit; transition: filter 220ms ease; }
.welcome-banner-art { display: block; width: 100%; height: auto; pointer-events: none; }
.welcome-banner-copy { position: absolute; left: 8%; top: 22%; width: 46%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; pointer-events: none; }
.welcome-banner .welcome-eyebrow { color: #ffe4ab; font-size: clamp(8px, 2.25vw, 17px); font-weight: 700; letter-spacing: .06em; line-height: 1.1; }
.welcome-banner .welcome-percent { display: block; padding: 0 .16em; margin: -.06em 0; white-space: nowrap; color: #ffdd64; font-size: clamp(36px, 11.7vw, 89px); font-weight: 900; font-style: italic; letter-spacing: -.07em; line-height: 1.08; background: linear-gradient(#fff4a1 6%, #ffe45a 28%, #ffb12c 68%, #ff731d 91%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 1px 0 #ff711b) drop-shadow(0 0 5px #ff780b7a); }
.welcome-banner .welcome-subtitle { color: #ffe7b7; font-size: clamp(7px, 1.95vw, 15px); font-weight: 700; letter-spacing: .09em; line-height: 1.1; }
.welcome-banner .welcome-code { width: 95%; display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 3px; padding: 5px 8px; border: 1px solid #ff8a34b3; border-radius: clamp(9px, 3vw, 21px); background: #120b06d4; box-shadow: inset 0 1px 1px #ffd18821, 0 0 8px #ff792435; }
.welcome-banner .welcome-code > span { color: #ffe6a6; font-size: clamp(12px, 3.9vw, 30px); font-style: italic; font-weight: 800; letter-spacing: .025em; line-height: 1; }
.welcome-code svg { width: clamp(12px, 3.1vw, 23px); height: clamp(12px, 3.1vw, 23px); flex: none; fill: none; stroke: #dd923e; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.welcome-banner:active { filter: brightness(.94); }
.welcome-banner:focus-visible { outline: 2px solid #ffd96a; outline-offset: 4px; border-radius: 20px; }
.promo-copy-toast { position: fixed; z-index: 1700; top: calc(12px + env(safe-area-inset-top)); left: 50%; transform: translateX(-50%); width: min(420px, calc(100% - 24px)); display: flex; align-items: center; gap: 12px; padding: 16px 42px 16px 16px; border: 1px solid #dc923c; border-radius: 21px; background: radial-gradient(ellipse at top left, #a6531c44, transparent 65%), #20140e; box-shadow: 0 12px 36px #0009, inset 0 1px 1px #ffda9229, 0 0 18px #ff92191c; color: #fff4e2; }
.promo-toast-icon { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border: 1px solid #e18c333d; border-radius: 13px; color: #ffd570; background: #683315; }
.promo-toast-icon svg { width: 22px; height: 22px; fill: none; stroke: #ffe191; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
.promo-toast-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.promo-toast-text strong { font-size: 15px; line-height: 1.2; }
.promo-toast-text > span { font-size: 12px; line-height: 1.35; color: #d7b698; }
.promo-copy-toast button { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #ffffff08; color: #e8c8ac; font: 22px/1 Arial; }
@media (max-width: 359px) { .welcome-banner-copy { gap: 2px; top: 22%; } .welcome-banner .welcome-code { margin-top: 2px; padding: 4px 6px; gap: 7px; } .promo-toast-text strong { font-size: 14px; } .promo-toast-text > span { font-size: 11px; } }

.banner-slot.has-promo-carousel { margin-top: 13px; overflow: visible; }
.promo-carousel-viewport { position: relative; width: 100%; aspect-ratio: 2007 / 784; overflow: hidden; border-radius: clamp(14px, 3vw, 28px); isolation: isolate; }
.promo-carousel-slide { position: absolute; inset: 0; }
.promo-carousel-slide[hidden] { display: none !important; }
.banner-slot .promo-carousel-banner { display: block; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }
.promo-carousel-banner img { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; }
.banner-slot .promo-carousel-arrow { position: absolute; top: 50%; z-index: 2; display: grid; place-items: center; width: 28px; height: 36px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #ffe2ba; transform: translateY(-50%); transition: color 180ms ease; cursor: pointer; touch-action: manipulation; }
.promo-carousel-arrow.is-previous { left: 2%; }
.promo-carousel-arrow.is-next { right: 2%; }
.promo-carousel-arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.banner-slot .promo-carousel-arrow:active { color: #fff4da; }
.promo-carousel-dots { display: flex; align-items: center; justify-content: center; gap: 0; height: 14px; margin-top: -4px; padding: 0; }
.banner-slot .promo-carousel-dots button { display: grid; place-items: center; width: 18px; height: 14px; min-width: 18px; min-height: 14px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; box-shadow: none; transform: none; cursor: pointer; touch-action: manipulation; }
.promo-carousel-dots button span { width: 4px; height: 4px; border-radius: 50%; background: #6d443a; transition: background 250ms ease, box-shadow 250ms ease; }
.promo-carousel-dots button[aria-pressed="true"] span { background: #ffb448; box-shadow: 0 0 4px #ff8a3c55; }
.banner-slot .promo-carousel-arrow:focus-visible, .banner-slot .promo-carousel-dots button:focus-visible, .banner-slot button.promo-carousel-banner:focus-visible { outline: 2px solid #ffd96a; outline-offset: -2px; }
@media (hover: hover) { .banner-slot .promo-carousel-arrow:hover { color: #fff4da; } }
@media (prefers-reduced-motion: reduce) { .promo-carousel-arrow, .promo-carousel-dots button span { transition: none !important; } }
