/* Storefront-only paper palette. The announcement remains in document flow. */
#mwsw-root {
    --mwsw-accent: #ad503e;
    --mwsw-bar-background: #f1e5d8;
    --mwsw-ink: #302b28;
    --mwsw-muted: #71665f;
    --mwsw-paper: #fffaf3;
    --mwsw-line: #dfcdbb;
    position: relative;
    z-index: 10;
    isolation: isolate;
    color: var(--mwsw-ink);
    font-family: inherit;
    font-size: 15px;
    line-height: 1.6;
    text-align: left;
}
#mwsw-root[hidden], #mwsw-root [hidden] { display: none !important; }
#mwsw-root *, #mwsw-root *::before, #mwsw-root *::after { box-sizing: border-box; }
#mwsw-root button, #mwsw-root input, #mwsw-root textarea { font: inherit; }
#mwsw-root button {
    min-height: 44px;
    margin: 0;
    border-radius: 5px;
    cursor: pointer;
    line-height: 1.3;
    text-transform: none;
    letter-spacing: normal;
    box-shadow: none;
    transition: background-color 160ms ease;
}
#mwsw-root button:disabled { cursor: default; opacity: .55; }
#mwsw-root button:focus-visible, #mwsw-root textarea:focus-visible, #mwsw-root a:focus-visible, #mwsw-root [tabindex]:focus-visible {
    outline: 3px solid var(--mwsw-accent);
    outline-offset: 3px;
}
#mwsw-root p, #mwsw-root h2, #mwsw-root h3 { margin: 0; color: inherit; }
#mwsw-root h2 { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(30px, 3.2vw, 44px); font-weight: 400; line-height: 1.13; letter-spacing: -.025em; overflow-wrap: anywhere; }
#mwsw-root h3 { font-family: inherit; font-size: 14px; font-weight: 650; line-height: 1.4; }
#mwsw-root .mwsw-bar { display: flex; align-items: center; justify-content: center; gap: 22px; min-height: 56px; padding: 9px 24px; background: var(--mwsw-bar-background); border-bottom: 1px solid rgb(48 43 40 / 9%); }
#mwsw-root .mwsw-bar-decoration { width: 21px; height: 21px; flex: 0 0 21px; background: var(--mwsw-accent); opacity: .65; border-radius: 48% 60% 45% 67%; transform: rotate(-20deg); }
#mwsw-root .mwsw-bar-text { font-size: 14px; }
#mwsw-root .mwsw-bar-open { min-height: 36px; padding: 7px 16px; border: 1px solid currentColor; background: transparent; color: var(--mwsw-ink); font-size: 13px; font-weight: 650; white-space: nowrap; }
#mwsw-root .mwsw-bar-open:hover { background: rgb(255 255 255 / 40%); }
#mwsw-root.mwsw-is-open { z-index: 99990; }
#mwsw-root .mwsw-overlay {
    position: fixed;
    inset: var(--mwsw-overlay-top, 0px) 0 auto;
    height: var(--mwsw-overlay-height, 100dvh);
    z-index: 99990;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    overflow: hidden;
    background: rgb(39 32 28 / 55%);
    backdrop-filter: blur(4px);
}
/* The shell never scrolls: close stays outside the only scrolling region. */
#mwsw-root .mwsw-dialog {
    position: relative;
    display: flex;
    width: min(1040px, 100%);
    max-height: 100%;
    min-height: 0;
    padding-top: 60px;
    overflow: hidden;
    border: 1px solid rgb(255 250 243 / 85%);
    border-radius: 14px;
    background: radial-gradient(ellipse at 8% 30%, rgb(222 156 135 / 17%), transparent 48%), radial-gradient(ellipse at 88% 95%, rgb(176 188 160 / 18%), transparent 50%), var(--mwsw-paper);
    color: var(--mwsw-ink);
    box-shadow: 0 24px 100px rgb(24 20 18 / 27%);
}
#mwsw-root .mwsw-scroll {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    grid-template-areas: 'wheel intro' 'wheel action' 'details details';
    grid-template-rows: auto 1fr auto;
    align-items: start;
    gap: 0 38px;
    width: 100%;
    min-height: 0;
    padding: 12px 42px 34px;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}
#mwsw-root .mwsw-close { position: absolute; top: 10px; right: 14px; z-index: 3; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--mwsw-line); border-radius: 50%; background: var(--mwsw-paper); color: var(--mwsw-ink); font-size: 27px; font-weight: 400; }
#mwsw-root .mwsw-close:hover { background: #efe4d8; }
#mwsw-root .mwsw-intro { grid-area: intro; padding: 18px 0 22px; }
#mwsw-root .mwsw-eyebrow { display: block; width: 44px; height: 5px; margin-bottom: 19px; border-radius: 40% 60% 50% 40%; background: var(--mwsw-accent); }
#mwsw-root .mwsw-subtitle { margin-top: 16px; color: var(--mwsw-muted); font-size: 15px; }
#mwsw-root .mwsw-visual { grid-area: wheel; display: grid; place-items: center; min-width: 0; padding: 12px 0 22px; }
#mwsw-root .mwsw-wheel-stage {
    position: relative;
    width: min(100%, 448px);
    aspect-ratio: 1;
    container-type: inline-size;
    border: 10px solid var(--mwsw-paper);
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgb(104 79 60 / 20%), 0 14px 30px rgb(104 79 60 / 14%);
}
#mwsw-root .mwsw-wheel { position: absolute; inset: 0; overflow: hidden; border-radius: 50%; background: #eadccb; transform: rotate(0deg); }
#mwsw-root .mwsw-wheel::before { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: repeating-conic-gradient(from 0deg, rgb(255 250 243 / 65%) 0deg .45deg, transparent .45deg var(--mwsw-sector-size, 360deg)); }
#mwsw-root .mwsw-wheel-animating { transition: transform 3.8s cubic-bezier(.15,.66,.12,1); }
#mwsw-root .mwsw-pointer { position: absolute; top: -19px; left: 50%; z-index: 2; width: 28px; height: 35px; background: var(--mwsw-ink); clip-path: polygon(0 0, 100% 0, 50% 100%); transform: translateX(-50%); }
#mwsw-root .mwsw-wheel-hub { position: absolute; top: 50%; left: 50%; width: 16%; aspect-ratio: 1; border: 6px solid var(--mwsw-paper); border-radius: 50%; background: var(--mwsw-accent); box-shadow: 0 2px 8px rgb(48 43 40 / 14%); transform: translate(-50%, -50%); }
/* Each spoke spans the wheel, so percentage positions scale with its actual diameter.
   The text baseline runs inward from rim to hub, not tangentially around the rim. */
#mwsw-root .mwsw-sector-label { position: absolute; inset: 0; transform: rotate(var(--mwsw-label-angle)); pointer-events: none; }
#mwsw-root .mwsw-sector-label > span {
    position: absolute;
    left: 50%;
    top: 22%;
    display: grid;
    place-items: center;
    width: 34%;
    min-height: 12%;
    padding: 3px 5px;
    transform: translate(-50%, -50%) rotate(90deg);
    border-radius: 5px;
    background: rgb(255 250 243 / 72%);
    color: #302b28;
    font-size: 12px;
    font-size: clamp(10px, 3.3cqi, 15px);
    font-weight: 650;
    line-height: 1.2;
    text-align: center;
    overflow-wrap: anywhere;
}
#mwsw-root .mwsw-sector-label[data-long='true'] > span { font-size: clamp(9px, 2.8cqi, 13px); }
#mwsw-root .mwsw-wheel[data-compact='true'] .mwsw-sector-label > span { top: 14%; width: 9%; min-height: 6%; padding: 1px; font-size: clamp(9px, 3.1cqi, 13px); border-radius: 50%; }
#mwsw-root .mwsw-copy { grid-area: action; min-width: 0; }
#mwsw-root .mwsw-primary { width: 100%; padding: 16px 20px; border: 1px solid var(--mwsw-accent); background: var(--mwsw-accent); color: #fffaf3; font-size: 16px; font-weight: 650; }
#mwsw-root .mwsw-primary:hover:not(:disabled) { filter: brightness(.9); }
#mwsw-root .mwsw-status { margin-top: 12px; color: var(--mwsw-muted); font-size: 13px; overflow-wrap: anywhere; }
#mwsw-root .mwsw-status:empty { display: none; }
#mwsw-root .mwsw-details { grid-area: details; margin-top: 22px; padding-top: 23px; border-top: 1px solid var(--mwsw-line); }
#mwsw-root .mwsw-details-title { margin-bottom: 12px; }
#mwsw-root .mwsw-prize-list ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 20px; padding: 0; margin: 0; list-style: none; }
#mwsw-root .mwsw-prize-list li { display: flex; align-items: baseline; gap: 8px; min-width: 0; margin: 0; font-size: 13px; overflow-wrap: anywhere; }
#mwsw-root .mwsw-swatch { width: 10px; height: 10px; flex: 0 0 10px; border: 1px solid rgb(48 43 40 / 20%); border-radius: 50%; }
#mwsw-root .mwsw-prize-number { font-size: 12px; font-weight: 700; }
#mwsw-root .mwsw-terms { margin-top: 18px; color: var(--mwsw-muted); font-size: 12px; }
/* A recovered result is a receipt, never an invitation to spin or a false wheel. */
#mwsw-root[data-view='result'] .mwsw-scroll { display: block; max-width: 760px; margin: 0 auto; padding: 10px 46px 40px; }
#mwsw-root .mwsw-result-label { margin-top: 20px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(22px, 2.8vw, 30px); line-height: 1.3; overflow-wrap: anywhere; }
#mwsw-root .mwsw-result-description { margin-top: 8px; color: var(--mwsw-muted); font-size: 15px; }
#mwsw-root .mwsw-result-state { margin-top: 12px; color: var(--mwsw-accent); font-weight: 650; }
#mwsw-root .mwsw-result-state:empty { display: none; }
#mwsw-root .mwsw-coupon-label { display: block; margin: 25px 0 8px; font-size: 13px; font-weight: 650; }
#mwsw-root .mwsw-coupon-row { display: flex; align-items: stretch; gap: 10px; }
#mwsw-root .mwsw-coupon { display: block; width: 100%; min-width: 0; min-height: 64px; margin: 0; padding: 13px 14px; resize: none; overflow: hidden; border: 1px dashed #b7a18e; border-radius: 5px; background: #fffefb; color: var(--mwsw-ink); font-family: ui-monospace, Consolas, monospace; font-size: 16px; font-weight: 600; line-height: 1.5; letter-spacing: .025em; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-all; box-shadow: none; }
#mwsw-root .mwsw-copy-button { flex: 0 0 auto; padding: 12px 18px; border: 1px solid var(--mwsw-line); background: #eee1d4; color: var(--mwsw-ink); font-size: 13px; font-weight: 650; }
#mwsw-root .mwsw-copy-button:hover:not(:disabled) { background: #e4d3c1; }
#mwsw-root .mwsw-copy-help { margin-top: 8px; font-size: 12px; color: var(--mwsw-muted); }
#mwsw-root .mwsw-expiry { margin-top: 16px; color: var(--mwsw-muted); font-size: 13px; }
#mwsw-root .mwsw-claim { margin-top: 25px; padding: 20px; border: 1px solid var(--mwsw-line); border-radius: 5px; background: rgb(255 255 255 / 35%); }
#mwsw-root .mwsw-coupon-terms { margin-top: 10px; color: var(--mwsw-muted); font-size: 13px; line-height: 1.7; }
#mwsw-root .mwsw-claim-instructions { margin-top: 14px; white-space: pre-line; overflow-wrap: anywhere; font-size: 14px; }
#mwsw-root .mwsw-claim-link { display: inline-block; margin-top: 14px; padding: 6px 0; color: var(--mwsw-accent); text-decoration: underline; overflow-wrap: anywhere; }
#mwsw-root .mwsw-retry { margin-top: 13px; padding: 9px 16px; border: 1px solid var(--mwsw-line); background: transparent; color: var(--mwsw-ink); font-size: 13px; }
#mwsw-root .mwsw-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 720px) {
    #mwsw-root .mwsw-bar { gap: 10px; padding: 8px 12px; }
    #mwsw-root .mwsw-bar-decoration { display: none; }
    #mwsw-root .mwsw-bar-text { font-size: 12px; line-height: 1.4; }
    #mwsw-root .mwsw-bar-open { flex-shrink: 0; font-size: 11px; padding: 7px 10px; }
    #mwsw-root .mwsw-overlay { padding: 10px; }
    #mwsw-root .mwsw-dialog { width: min(540px, 100%); border-radius: 10px; padding-top: 58px; }
    #mwsw-root .mwsw-scroll { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'intro' 'wheel' 'action' 'details'; grid-template-rows: auto; gap: 0; padding: 0 22px 26px; }
    #mwsw-root .mwsw-intro { padding: 0 0 24px; }
    #mwsw-root .mwsw-eyebrow { margin-bottom: 14px; }
    #mwsw-root .mwsw-subtitle { margin-top: 12px; font-size: 14px; }
    #mwsw-root .mwsw-visual { padding: 5px 0 26px; }
    #mwsw-root .mwsw-wheel-stage { width: min(100%, 420px); border-width: 8px; }
    #mwsw-root .mwsw-prize-list ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
    #mwsw-root[data-view='result'] .mwsw-scroll { padding: 0 22px 28px; }
    #mwsw-root .mwsw-coupon-row { flex-direction: column; }
    #mwsw-root .mwsw-copy-button { align-self: stretch; min-height: 46px; }
    #mwsw-root .mwsw-claim { padding: 16px; }
}
@media (max-width: 360px) {
    #mwsw-root .mwsw-overlay { padding: 6px; }
    #mwsw-root .mwsw-scroll, #mwsw-root[data-view='result'] .mwsw-scroll { padding-left: 14px; padding-right: 14px; }
    #mwsw-root h2 { font-size: 29px; }
    #mwsw-root .mwsw-prize-list ul { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    #mwsw-root *, #mwsw-root *::before, #mwsw-root *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
    #mwsw-root .mwsw-wheel-stage, #mwsw-root .mwsw-dialog, #mwsw-root .mwsw-bar, #mwsw-root .mwsw-claim { border: 1px solid CanvasText; }
    #mwsw-root .mwsw-pointer { background: CanvasText; }
}
