.wheel-page { min-height:100vh; }
.wheel-page [hidden] { display:none !important; }
.wheel-page ::selection { background:var(--v6-coral); color:var(--v6-text); }
.wheel-header { min-height:76px; padding:14px max(24px,calc((100vw - 1280px)/2)); display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--v6-line); }
.wheel-header .v6-logo { width:148px; }
.wheel-back { font-size:14px; color:var(--v6-muted); text-decoration:none; padding:12px 0; }
.wheel-back:hover { color:var(--v6-text); }
.wheel-preview { max-width:1280px; margin:20px auto 0; padding:0 24px; display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; font-size:12px; color:var(--v6-muted); }
.wheel-preview label { display:flex; align-items:center; gap:8px; margin-left:auto; }
.wheel-preview select,.wheel-preview button { background:var(--v6-surface); color:var(--v6-text); border:1px solid var(--v6-line); border-radius:8px; font:inherit; min-height:36px; padding:8px 10px; cursor:pointer; }
.wheel-preview button:disabled,.wheel-preview select:disabled { opacity:.5; cursor:wait; }
.wheel-main { width:calc(100% - 64px); max-width:1200px; margin:48px auto 64px; }
.wheel-intro { text-align:center; }
.wheel-intro h1 { font-size:clamp(38px,4.8vw,64px); line-height:1.06; font-weight:800; letter-spacing:-.035em; margin:0 0 16px; }
.wheel-intro p { color:var(--v6-muted); font-size:18px; line-height:1.5; margin:0; }
.wheel-intro br { display:none; }
.wheel-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); align-items:center; gap:56px; margin-top:32px; }
.wheel-stage { --radius:190px; --face-width:108px; position:relative; min-width:0; height:440px; perspective:900px; isolation:isolate; }
.wheel-mascot { position:absolute; width:360px; height:360px; object-fit:contain; left:50%; top:12px; margin-left:-180px; transform-origin:center; }
.wheel-shadow { position:absolute; width:55%; height:28px; left:22.5%; bottom:32px; border-radius:50%; background:#000; filter:blur(12px); }
.wheel-orbit { position:absolute; top:62%; left:50%; width:0; height:0; transform-style:preserve-3d; }
.wheel-offer { position:absolute; width:var(--face-width); height:74px; top:-37px; left:calc(var(--face-width)/-2); display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; border:1px solid #b94030; border-radius:12px; background:#24110f; color:#fff; backface-visibility:hidden; transform:rotateY(var(--angle)) translateZ(var(--radius)); }
.wheel-offer strong { font-size:24px; line-height:1.05; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.wheel-offer span { font-size:11px; color:#ffd8d0; }
.wheel-selector { position:absolute; left:calc(50% - 6px); top:calc(62% + 56px); width:12px; height:12px; border:solid var(--v6-coral); border-width:3px 0 0 3px; transform:rotate(45deg); }
.wheel-action { padding:12px 0; max-width:420px; }
.wheel-action h2 { font-size:28px; line-height:1.2; font-weight:750; letter-spacing:-.025em; margin:0 0 16px; }
.wheel-lead { font-size:18px; line-height:1.5; margin:0 0 16px; }
.wheel-condition { font-size:14px; line-height:1.55; color:var(--v6-muted); margin:0 0 28px; max-width:38ch; }
.wheel-spin { width:100%; min-height:56px; display:flex; align-items:center; justify-content:center; gap:16px; padding:15px 24px; background:var(--v6-coral); color:var(--v6-text); border:0; border-radius:10px; font-size:18px; font-weight:750; cursor:pointer; transition:transform 120ms var(--v6-ease),background-color 120ms ease; }
.wheel-spin svg { width:22px; height:22px; flex-shrink:0; }
.wheel-spin:disabled { background:var(--v6-surface-raised); color:var(--v6-muted); cursor:default; }
@media (hover:hover) and (pointer:fine) { .wheel-spin:enabled:hover { background:#df301a; } }
.wheel-spin:enabled:active { transform:translateY(1px); }
.wheel-action-note { text-align:center; font-size:12px; line-height:1.5; color:var(--v6-muted); margin:12px 0 0; }
.wheel-result { display:none; border-top:1px solid var(--v6-line); padding:24px 0; }
.wheel-result.is-visible { display:block; }
.wheel-result-label { display:block; color:var(--v6-muted); font-size:14px; margin-bottom:8px; }
.wheel-result strong { display:block; font-size:36px; letter-spacing:-.025em; line-height:1.1; }
.wheel-result p { color:var(--v6-muted); font-size:14px; line-height:1.5; margin:12px 0 0; }
.wheel-rules { border-top:1px solid var(--v6-line); margin-top:16px; padding-top:24px; }
.wheel-rules summary { cursor:pointer; font-size:16px; font-weight:600; min-height:44px; padding:12px 0; }
.wheel-rules>div { max-width:75ch; padding:4px 0 8px; color:var(--v6-muted); font-size:14px; line-height:1.6; }
@media(max-width:800px) {
 .wheel-main { width:calc(100% - 32px); margin-top:36px; }
 .wheel-layout { grid-template-columns:minmax(0,1fr); min-width:0; gap:0; margin-top:12px; }
 .wheel-stage { --radius:135px; --face-width:88px; height:318px; perspective:700px; max-width:430px; width:100%; justify-self:center; }
 .wheel-mascot { width:270px; height:270px; margin-left:-135px; top:0; }
 .wheel-orbit { top:63%; }
 .wheel-offer { height:62px; top:-31px; }
 .wheel-offer strong { font-size:21px; }
 .wheel-offer span { font-size:10px; }
 .wheel-selector { top:calc(63% + 45px); }
 .wheel-action { justify-self:center; width:100%; padding:8px 0 24px; }
 .wheel-action h2 { font-size:24px; }
 .wheel-condition { max-width:none; }
 .wheel-preview { padding:0 16px; gap:10px; }
 .wheel-preview>span { width:100%; }
 .wheel-preview label { margin-left:0; }
 .wheel-preview select { max-width:174px; }
 .wheel-header { min-height:64px; padding:8px 16px; }
 .wheel-header .v6-logo { width:128px; }
 .wheel-intro p { font-size:16px; }
 .wheel-intro br { display:block; }
 .wheel-rules { margin-top:4px; }
}
@media(max-width:359px) { .wheel-stage { --radius:112px; --face-width:76px; height:300px; } .wheel-offer strong { font-size:18px; } .wheel-preview label { flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { .wheel-spin { transition:none; } .wheel-spin:enabled:active { transform:none; } }
/* Polished original arc; the mascot remains still. */
.wheel-stage { --radius:230px; --face-width:120px; height:460px; }
.wheel-orbit { top:65%; }
.wheel-offer { height:132px; top:-66px; padding:16px; gap:8px; background:var(--v6-surface-raised); border-color:#66504a; }
.wheel-offer strong { font-size:24px; }
.wheel-offer span { font-size:12px; line-height:1.2; color:#f0d7cf; }
.wheel-offer-icon { display:block; flex-shrink:0; width:30px; height:30px; color:var(--v6-focus); margin-bottom:2px; }
.wheel-offer.is-selected { border:2px solid var(--v6-coral); padding:15px; background:#321a16; }
.wheel-offer.is-selected strong { color:#fff; }
.wheel-offer.is-selected::after { content:''; position:absolute; top:10px; right:10px; width:6px; height:6px; border-radius:50%; background:var(--v6-coral); }
.wheel-selector { width:14px; height:14px; left:calc(50% - 7px); top:calc(65% + 118px); }
@media(max-width:800px) {
 .wheel-stage { --radius:155px; --face-width:88px; height:360px; }
 .wheel-orbit { top:70%; }
 .wheel-offer { height:112px; top:-56px; padding:12px; gap:6px; }
 .wheel-offer.is-selected { padding:11px; }
 .wheel-offer-icon { width:26px; height:26px; margin-bottom:0; }
 .wheel-offer strong { font-size:18px; }
 .wheel-offer span { font-size:10px; }
 .wheel-selector { top:calc(70% + 86px); }
}
@media(max-width:359px) {
 .wheel-stage { --radius:132px; --face-width:78px; }
 .wheel-offer { padding:10px; }
 .wheel-offer.is-selected { padding:9px; }
 .wheel-offer strong { font-size:17px; }
}
/* Centered campaign composition; approved carousel behavior is unchanged. */
.wheel-main { max-width:960px; margin:24px auto 48px; }
.wheel-preview { display:block; max-width:1200px; margin:10px auto 0; padding:0 24px; }
.wheel-preview>summary { width:max-content; margin-left:auto; padding:10px 0; min-height:40px; cursor:pointer; font-size:12px; color:var(--v6-muted); }
.wheel-preview-controls { display:flex; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:12px 20px; padding:12px 0; }
.wheel-preview-controls label { margin-left:0; }
.wheel-preview-controls .wheel-action-note { width:100%; text-align:right; margin:0; }
.wheel-intro h1 { font-size:56px; line-height:1.08; max-width:900px; margin:0 auto 14px; }
.wheel-intro h1 span { color:var(--v6-focus); }
.wheel-intro p { max-width:640px; margin:0 auto; }
.wheel-layout { grid-template-columns:minmax(0,1fr); min-width:0; gap:0; margin-top:12px; }
.wheel-stage { width:100%; max-width:760px; height:430px; justify-self:center; }
.wheel-mascot { width:400px; height:400px; margin-left:-200px; top:0; }
.wheel-orbit { top:67%; }
.wheel-selector { top:calc(67% + 118px); }
.wheel-action { display:flex; flex-direction:column; align-items:center; justify-self:center; width:100%; min-width:0; max-width:540px; padding:8px 0 0; text-align:center; }
.wheel-spin { width:100%; max-width:360px; }
.wheel-condition { max-width:52ch; margin:14px auto 0; }
.wheel-result { width:100%; border:0; padding:12px 0 20px; }
.wheel-rules { max-width:760px; margin:36px auto 0; padding-top:12px; }
@media(max-width:800px) {
 .wheel-main { margin-top:18px; }
 .wheel-preview { padding:0 16px; }
 .wheel-preview-controls { justify-content:flex-start; gap:10px; }
 .wheel-preview-controls .wheel-action-note { text-align:left; }
 .wheel-intro h1 { max-width:420px; font-size:34px; line-height:1.1; margin-bottom:12px; }
 .wheel-intro p { font-size:16px; max-width:36ch; }
 .wheel-stage { max-width:430px; height:360px; }
 .wheel-mascot { width:270px; height:270px; margin-left:-135px; }
 .wheel-orbit { top:70%; }
 .wheel-selector { top:calc(70% + 86px); }
 .wheel-condition { max-width:38ch; font-size:13px; line-height:1.5; }
 .wheel-action { padding-top:12px; }
 .wheel-rules { margin-top:28px; }
}
/* Editorial terms and the landing's public poster mosaic. */
.wheel-page { position:relative; isolation:isolate; }
.wheel-header { position:relative; z-index:2; }
.wheel-main { position:relative; z-index:1; margin-top:44px; }
.wheel-gallery { position:absolute; z-index:0; top:216px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:18px 14px; width:min(300px,calc((100vw - 820px)/2)); pointer-events:none; opacity:.72; mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 84%,transparent); }
.wheel-gallery--left { left:-24px; transform:rotate(-5deg); }
.wheel-gallery--right { right:-24px; transform:rotate(5deg); }
.wheel-gallery img { display:block; width:100%; height:auto; aspect-ratio:3 / 4; object-fit:cover; border-radius:16px; filter:brightness(.85); }
.wheel-gallery img:nth-child(2) { margin-top:54px; transform:rotate(5deg); }
.wheel-gallery img:nth-child(3) { margin-top:-34px; transform:rotate(-3deg); }
.wheel-gallery img:nth-child(4) { transform:rotate(3deg); }
.wheel-gallery--right img:nth-child(2) { margin-top:82px; transform:rotate(-5deg); }
.wheel-gallery--right img:nth-child(3) { margin-top:-62px; transform:rotate(3deg); }
.wheel-rules>summary { display:flex; align-items:center; justify-content:space-between; gap:24px; list-style:none; padding:20px 0; font-size:16px; }
.wheel-rules>summary::-webkit-details-marker { display:none; }
.wheel-rules>summary svg { width:20px; height:20px; flex-shrink:0; color:var(--v6-muted); }
.wheel-rules[open]>summary svg { transform:rotate(180deg); }
.wheel-rules>.rules-content { display:grid; grid-template-columns:1fr 1fr; gap:28px 40px; max-width:none; padding:24px 0 0; border-top:1px solid var(--v6-line); color:var(--v6-text); }
.rules-content h2 { font-size:18px; line-height:1.3; letter-spacing:-.015em; font-weight:700; margin:0 0 16px; }
.rules-prizes { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0; list-style:none; }
.rules-prizes li { padding:8px 10px; background:var(--v6-surface-raised); border-radius:8px; font-size:13px; line-height:1.3; font-weight:600; font-variant-numeric:tabular-nums; }
.rules-steps { margin:0; padding-left:22px; color:var(--v6-muted); font-size:14px; line-height:1.5; }
.rules-steps li { padding-left:6px; margin-bottom:16px; }
.rules-steps li:last-child { margin-bottom:0; }
.rules-steps li::marker { color:var(--v6-focus); font-weight:700; }
.rules-deadline { grid-column:1 / -1; display:flex; gap:16px; align-items:flex-start; padding:20px 0; border-block:1px solid var(--v6-line); }
.rules-deadline>svg { width:30px; height:30px; flex-shrink:0; color:var(--v6-focus); }
.rules-deadline h2 { margin-bottom:6px; }
.rules-deadline p { margin:0; color:var(--v6-muted); font-size:14px; line-height:1.55; }
.rules-notes { grid-column:1 / -1; color:var(--v6-muted); font-size:13px; line-height:1.6; }
.rules-notes p { margin:0 0 10px; }
.rules-notes p:last-child { margin-bottom:0; }
@media(max-width:1100px) { .wheel-gallery { display:none; } }
@media(max-width:800px) {
 .wheel-main { margin-top:28px; }
 .wheel-rules>.rules-content { grid-template-columns:minmax(0,1fr); gap:24px; padding-top:20px; }
 .rules-content h2 { font-size:17px; margin-bottom:12px; }
 .rules-deadline h2 { margin-bottom:6px; }
 .rules-prizes li { font-size:12px; }
}
.wheel-decoration { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
/* The reward lives in a dialog; the main action keeps its original slot. */
.wheel-intro h1 { margin-bottom:0; }
.wheel-layout { margin-top:20px; }
.reward-dialog { position:fixed; inset:0; margin:auto; width:min(448px,calc(100vw - 32px)); max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); overflow:auto; overscroll-behavior:contain; padding:28px; border:1px solid var(--v6-line); border-radius:16px; background:var(--v6-surface); color:var(--v6-text); text-align:center; }
.reward-dialog::backdrop { background:rgba(4,4,10,.82); }
.reward-dialog[open] { animation:reward-enter 240ms cubic-bezier(.23,1,.32,1); }
.reward-dialog[open]::backdrop { animation:reward-backdrop-enter 180ms ease-out; }
@keyframes reward-enter { from { opacity:0; transform:translateY(8px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes reward-backdrop-enter { from { opacity:0; } to { opacity:1; } }
@media(prefers-reduced-motion:reduce) { .reward-dialog[open],.reward-dialog[open]::backdrop { animation:none; } }
.reward-dialog h2 { margin:0 36px 32px; font-size:20px; line-height:1.3; font-weight:700; }
.reward-close { position:absolute; top:12px; right:12px; display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid var(--v6-line); border-radius:10px; background:var(--v6-surface-raised); color:var(--v6-text); cursor:pointer; }
.reward-close svg { width:18px; height:18px; }
.reward-icon { display:flex; justify-content:center; margin:0 0 16px; }
.reward-icon .wheel-offer-icon { width:44px; height:44px; margin:0; }
.reward-dialog h3 { margin:0 0 32px; font-size:34px; line-height:1.12; font-weight:750; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.reward-dialog .wheel-condition { max-width:none; margin:0; font-size:15px; line-height:1.55; }
.reward-expiry { margin:16px 0 0; padding-top:16px; border-top:1px solid var(--v6-line); color:var(--v6-muted); font-size:13px; line-height:1.6; }
.reward-done { display:block; width:100%; min-height:48px; padding:12px 20px; margin-top:24px; border:0; border-radius:10px; background:var(--v6-coral); color:var(--v6-text); font:inherit; font-size:16px; font-weight:700; cursor:pointer; }
@media(max-width:359px) { .reward-dialog { padding:24px; } .reward-dialog h3 { font-size:30px; } }
.wheel-stage::before { content:''; position:absolute; inset:-28px -16px -20px; z-index:-1; pointer-events:none; background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--v6-coral) 28%,transparent) 0%,color-mix(in srgb,var(--v6-coral) 12%,transparent) 45%,transparent 73%); }
.entry-status { margin:0 0 16px; color:var(--v6-muted); font-size:15px; line-height:1.5; max-width:36ch; }
.wheel-page:not([data-entry="ready"]) .wheel-selector { visibility:hidden; }
.wheel-page:not([data-entry="ready"]) .wheel-offer strong { font-size:20px; }
.wheel-page:not([data-entry="ready"]) .rules-prizes { flex-direction:column; gap:12px; }
.wheel-page:not([data-entry="ready"]) .rules-prizes li { padding:0; background:none; font-size:14px; line-height:1.5; font-weight:400; color:var(--v6-muted); }
.wheel-page[data-entry="loading"] .wheel-spin>svg { display:none; }
.wheel-page[data-entry="loading"] .wheel-spin::before { content:''; width:18px; height:18px; flex-shrink:0; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:entry-loading 800ms linear infinite; }
@keyframes entry-loading { to { transform:rotate(360deg); } }
@media(max-width:800px) { .wheel-page:not([data-entry="ready"]) .wheel-offer strong { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { .wheel-page[data-entry="loading"] .wheel-spin::before { animation:none; } }
#campaign-home { text-decoration:none; }
.wheel-page[data-reward="expired"] .wheel-offer.is-selected,.wheel-page[data-reward="used"] .wheel-offer.is-selected { border-color:var(--v6-line); background:var(--v6-surface-raised); }
.wheel-page[data-reward="expired"] .wheel-offer.is-selected::after,.wheel-page[data-reward="used"] .wheel-offer.is-selected::after { display:none; }
.wheel-page[data-recovery] .entry-status { display:flex; flex-direction:column; justify-content:center; gap:4px; min-height:3.5em; width:100%; }
.wheel-page[data-recovery] .entry-status>span:first-child { color:var(--v6-text); }
.wheel-page[data-recovery] .entry-status>span:last-child { font-size:14px; }
.wheel-page[data-recovery="checking"] .wheel-selector,.wheel-page[data-recovery="error"] .wheel-selector { visibility:hidden; }
.wheel-page[data-recovery="checking"] .wheel-spin>svg { display:none; }
.wheel-page[data-recovery="checking"] .wheel-spin::before { content:''; width:18px; height:18px; flex-shrink:0; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:entry-loading 800ms linear infinite; }
@media(prefers-reduced-motion:reduce) { .wheel-page[data-recovery="checking"] .wheel-spin::before { animation:none; } }

.wheel-secondary { display:flex; justify-content:center; flex-wrap:wrap; gap:8px 16px; margin-top:12px; }
.wheel-secondary[hidden] { display:none; }
.wheel-secondary button { min-height:44px; padding:8px 12px; border:1px solid var(--v6-line); border-radius:10px; background:transparent; color:var(--v6-text); font:inherit; font-size:14px; cursor:pointer; }
.wheel-secondary button:disabled { opacity:.6; cursor:wait; }
.wheel-secondary button:focus-visible { outline:2px solid var(--v6-coral); outline-offset:3px; }
.reward-comparison { margin:0 0 16px; color:var(--v6-text); font-size:15px; line-height:1.55; }
