:root{color-scheme:dark;font-family:Inter,"Segoe UI",Arial,sans-serif;--violet:#ad6bff;--ice:#8cddff}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:transparent;color:#f8f4ff}#root{position:absolute;inset:0;display:flex;padding:clamp(14px,3vw,48px);pointer-events:none}
body:not(.transparent){background:rgba(6,5,13,.18)}
body[data-kind=alerts] #root{align-items:flex-end;justify-content:flex-start}
body[data-position^=top] #root{align-items:flex-start}body[data-position^=bottom] #root{align-items:flex-end}body[data-position=center] #root{align-items:center;justify-content:center}
body[data-position$=center] #root{justify-content:center}body[data-position$=right] #root{justify-content:flex-end}
.gift{--factor:1;--type:1;position:relative;width:min(520px,calc(100vw - 28px));min-height:116px;display:flex;align-items:center;gap:clamp(10px,2vw,18px);padding:18px 20px;border:1px solid rgba(184,119,255,.62);border-radius:24px;background:linear-gradient(112deg,rgba(12,11,31,.96),rgba(35,19,58,.94) 62%,rgba(17,30,58,.93));box-shadow:0 18px 48px rgba(0,0,0,.5),0 0 36px rgba(128,70,255,.36),inset 0 1px rgba(255,255,255,.15);backdrop-filter:blur(16px);overflow:hidden;transform:scale(var(--factor));transform-origin:left bottom;animation:floatIn .44s cubic-bezier(.18,.86,.22,1) both}
.gift:before{content:"";position:absolute;left:-15%;top:-120%;width:75%;height:260%;background:linear-gradient(90deg,transparent,rgba(179,145,255,.07),transparent);transform:rotate(24deg)}
.gift:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(147,219,255,.1);pointer-events:none}
.gift[data-animation=slide]{animation-name:slideIn}.gift[data-animation=fade]{animation-name:fadeIn}.gift.out{animation:floatOut .36s ease-in both}.gift[data-animation=slide].out{animation-name:slideOut}.gift[data-animation=fade].out{animation-name:fadeOut}
.avatar{position:relative;z-index:1;flex:none;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:23px;font-weight:850;color:white;background:linear-gradient(135deg,#432479,#8746cc 58%,#457ea8);border:2px solid rgba(218,174,255,.8);box-shadow:0 0 0 4px rgba(122,72,185,.21)}
.giftText{position:relative;z-index:1;min-width:0;flex:1}.eyebrow{color:#bb9cf8;letter-spacing:.23em;font-size:10px;font-weight:800;margin-bottom:5px}.user{font-size:calc(25px * var(--type));font-weight:850;line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 8px rgba(0,0,0,.35)}.description{font-size:calc(17px * var(--type));line-height:1.3;margin-top:3px;color:#ddd5e9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.description strong{color:#e5bbff}.quantity{color:#a4e6ff;font-weight:900;margin-left:4px}.art{z-index:1;flex:none;width:64px;height:64px;border-radius:17px;background:radial-gradient(circle at 30% 20%,#7f53cd,#312254 58%,#132036);border:1px solid rgba(194,149,255,.62);display:grid;place-items:center;box-shadow:inset 0 0 20px rgba(174,104,255,.35),0 6px 18px #0006}.art svg{width:38px;height:38px;filter:drop-shadow(0 2px 8px #b06bff)}
.goalList{align-self:flex-end;width:min(430px,calc(100vw - 28px));display:grid;gap:9px}.goal{padding:14px 17px;border:1px solid rgba(155,116,228,.58);border-radius:17px;background:linear-gradient(115deg,rgba(13,12,29,.91),rgba(33,22,55,.89));box-shadow:0 12px 30px #0007,0 0 25px #7f4df52a;backdrop-filter:blur(12px)}.goalTop{display:flex;justify-content:space-between;gap:16px;align-items:baseline;font-size:14px;font-weight:800}.goalValue{font-size:12px;color:#d6c5ee;white-space:nowrap}.track{height:9px;background:rgba(194,179,227,.16);border-radius:99px;margin-top:11px;overflow:hidden}.fill{height:100%;width:0;background:linear-gradient(90deg,#6946e7,#bb73ff 63%,#8bdcff);border-radius:inherit;box-shadow:0 0 15px rgba(173,113,255,.7);transition:width .7s cubic-bezier(.2,.8,.2,1)}.goal.flash{animation:goalFlash .7s ease}.goal.complete{animation:goalComplete 1.2s ease;border-color:rgba(194,135,255,.95);box-shadow:0 0 28px rgba(161,104,255,.3)}.goal.completed .goalValue{color:#decaff}.goalState{margin-top:7px;font-size:10px;letter-spacing:.18em;color:#cba5ff;font-weight:800}
.chatList{align-self:flex-end;display:flex;flex-direction:column;gap:8px;width:min(470px,calc(100vw - 28px))}.chat{display:flex;gap:9px;align-items:baseline;padding:10px 14px;border-radius:13px;background:linear-gradient(100deg,rgba(19,15,35,.86),rgba(28,21,47,.74));border-left:3px solid #ac6dff;box-shadow:0 7px 22px #0005;backdrop-filter:blur(8px);font-size:15px;line-height:1.35;overflow-wrap:anywhere;animation:chatIn .28s ease both}.chatName{color:#d8aaff;font-weight:800;flex:none}.chatText{color:#f7f2fc}.chat.out{animation:fadeOut .25s ease both}
@keyframes floatIn{from{opacity:0;transform:translateY(35px) scale(calc(var(--factor)*.94))}to{opacity:1;transform:translateY(0) scale(var(--factor))}}@keyframes floatOut{to{opacity:0;transform:translateY(-17px) scale(calc(var(--factor)*.97))}}@keyframes slideIn{from{opacity:0;transform:translateX(-50px) scale(var(--factor))}to{opacity:1;transform:translateX(0) scale(var(--factor))}}@keyframes slideOut{to{opacity:0;transform:translateX(42px) scale(var(--factor))}}@keyframes fadeIn{from{opacity:0;transform:scale(calc(var(--factor)*.96))}to{opacity:1;transform:scale(var(--factor))}}@keyframes fadeOut{to{opacity:0}}@keyframes chatIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes goalFlash{50%{box-shadow:0 0 38px rgba(176,112,255,.65)}}@keyframes goalComplete{0%{transform:scale(1);filter:brightness(1)}35%{transform:scale(1.025);filter:brightness(1.45)}100%{transform:scale(1);filter:brightness(1)}}
@media(max-width:600px){#root{padding:14px}.gift{padding:14px;gap:10px;min-height:96px}.avatar{width:43px;height:43px;font-size:17px}.art{width:46px;height:46px}.art svg{width:29px;height:29px}.user{font-size:calc(20px * var(--type))}.description{font-size:calc(14px * var(--type))}.eyebrow{font-size:8px}.chat{font-size:13px}}
@media(prefers-reduced-motion:reduce){.gift,.gift.out,.chat,.chat.out,.goal{animation-duration:.01ms}.fill{transition-duration:.01ms}}
/* Alpha 5 original gift visuals: tier treatment stays inside the Alpha 4 card and queue. */
.art img{width:84%;height:84%;object-fit:contain;filter:drop-shadow(0 3px 10px #ae77ff88)}
.gift[data-tier=Featured]{border-color:rgba(118,202,255,.75);box-shadow:0 18px 48px #0008,0 0 28px #52abf054,inset 0 1px #ffffff2d}
.gift[data-tier=Featured] .eyebrow{color:#9ad9ff}
.gift[data-tier=Premium]{border-color:rgba(177,124,255,.88);background:linear-gradient(112deg,rgba(16,12,41,.97),rgba(44,23,80,.96) 62%,rgba(25,33,77,.94));box-shadow:0 18px 52px #0009,0 0 40px #8f5dff8a,inset 0 1px #ffffff35}
.gift[data-tier=Premium] .eyebrow{color:#d3b1ff}
.gift[data-tier=Showstopper]{border-color:rgba(255,184,100,.92);background:linear-gradient(112deg,rgba(29,17,26,.97),rgba(62,34,38,.96) 64%,rgba(42,30,42,.94));box-shadow:0 18px 56px #000a,0 0 42px #f39b4f99,inset 0 1px #ffffff4a}
.gift[data-tier=Showstopper] .eyebrow,.gift[data-tier=Showstopper] .description strong{color:#ffd195}
.gift[data-tier=Showstopper] .art{border-color:#ffc28b;background:radial-gradient(circle at 30% 20%,#805338,#3a2435 65%,#19233a)}
.gift[data-style=luminous] .art{box-shadow:inset 0 0 20px #ae68ff59,0 0 26px #ae68ff99}
.gift[data-style=grand] .art{width:78px;height:78px;box-shadow:inset 0 0 24px #ffc99650,0 0 28px #ffbd7777}
@media(max-width:600px){.gift[data-style=grand] .art{width:50px;height:50px}}
/* Alpha 6: transparent artwork stays separate from the tier card. Slightly larger for vertical sources. */
.gift{width:min(560px,calc(100vw - 28px));min-height:126px}
.gift .art{width:76px;height:76px;background:radial-gradient(circle at center,rgba(118,83,199,.22),transparent 72%);border:0;border-radius:0;box-shadow:none}
.gift .art img{width:100%;height:100%;filter:drop-shadow(0 4px 12px #9365dfaa)}
.gift[data-tier=Common]{width:min(475px,calc(100vw - 28px));min-height:112px}
.gift[data-tier=Common] .art{width:66px;height:66px}
.gift[data-tier=Premium] .art{width:88px;height:88px}
.gift[data-tier=Showstopper] .art{width:96px;height:96px;background:radial-gradient(circle at center,rgba(255,159,72,.2),transparent 72%);border:0}
.gift .user{font-size:calc(27px * var(--type))}.gift .description{font-size:calc(18px * var(--type))}
.chatList .chat:not(:last-child){opacity:.72;transform:translateY(-3px)}.chatList .chat:first-child:not(:last-child){opacity:.52}
@media(max-width:600px){.gift{padding:15px;min-height:108px}.gift .art{width:66px;height:66px}.gift[data-tier=Common] .art{width:57px;height:57px}.gift[data-tier=Showstopper] .art{width:76px;height:76px}.gift .user{font-size:calc(22px * var(--type))}.gift .description{font-size:calc(15px * var(--type))}}
/* Alpha 7 chat bubbles fit their content while wrapping naturally on vertical scenes. */
.chatList{align-items:flex-start;width:min(100%,calc(100vw - 28px))}.chat{width:fit-content;min-width:96px;max-width:min(68vw,470px);display:inline-flex;flex-wrap:wrap;align-items:baseline}.chatText{min-width:0;white-space:normal;overflow-wrap:anywhere}
@media(max-width:600px){.chat{max-width:68vw;padding:9px 12px}}
/* Alpha 8 viewer reward scenes. Values and wheel slices are rendered from live configuration. */
body[data-kind=rewards] #root,body[data-kind=wheel] #root{align-items:center;justify-content:center}
.rewardNotices{display:grid;gap:12px;width:min(620px,92vw);justify-items:center}.rewardNotice{display:flex;gap:16px;align-items:center;width:fit-content;max-width:100%;min-width:min(300px,86vw);padding:16px 23px;border-radius:21px;border:1px solid #b68fffaa;background:linear-gradient(110deg,#100d22ed,#24163ee8 68%,#1c213ce3);box-shadow:0 16px 48px #0009,0 0 30px #8853d155;backdrop-filter:blur(14px);animation:rewardEnter .34s cubic-bezier(.2,.8,.2,1)}.rewardNotice[data-status=completed],.rewardNotice[data-status=listed]{border-color:#dfbc75aa;box-shadow:0 16px 48px #0009,0 0 30px #bd914d66}.rewardNotice[data-status=failed],.rewardNotice[data-status=refunded],.rewardNotice[data-status=insufficient]{border-color:#f195aaaa}.rewardMark{display:grid;place-items:center;flex:none;width:50px;height:50px;border-radius:14px;background:linear-gradient(135deg,#7041c1,#c7a0ef);color:#fff2d3;font-size:30px;text-shadow:0 0 10px #ffe5a3}.rewardNotice div{display:grid;gap:3px;min-width:0}.rewardNotice small{color:#d8b577;font-size:10px;letter-spacing:.19em;font-weight:800}.rewardNotice strong{font-size:clamp(17px,3vw,25px);line-height:1.15;overflow-wrap:anywhere}.rewardNotice div span{color:#d6c8e9;font-size:14px}.safeScare{display:grid;place-items:center;gap:8px;text-align:center;padding:28px 38px;border-radius:24px;border:1px solid #d5a7ff;background:linear-gradient(135deg,#130d26ee,#49216feb);box-shadow:0 0 55px #a74bf599;animation:safeScare .48s ease-out}.safeScareIcon{font-size:60px;color:#f6dd9b;text-shadow:0 0 22px #ffbf5f}.safeScare strong{font-size:clamp(28px,8vw,64px)}.safeScare span{color:#e6d8ff}
.wheelStage{display:grid;justify-items:center;gap:12px;max-width:96vw;text-align:center}.wheelHeader{display:grid;gap:5px;padding:10px 20px;border:1px solid #be9afc66;border-radius:16px;background:#151126d9;box-shadow:0 0 24px #704dbd55}.wheelHeader small{letter-spacing:.17em;color:#d9b97d;font-size:10px;font-weight:800}.wheelHeader strong{font-size:clamp(19px,4vw,32px)}.wheelShell{position:relative;width:min(68vh,80vw,560px);height:min(68vh,80vw,560px);min-width:220px;min-height:220px;border-radius:50%;padding:8px;background:linear-gradient(135deg,#e3ba73,#7851b9,#f5d598);box-shadow:0 0 0 4px #140d2b,0 0 40px #ad79ed88,0 20px 60px #000a}.wheelDisk{position:relative;width:100%;height:100%;border-radius:50%;background:var(--wheel-gradient);border:5px solid #1b1234;box-shadow:inset 0 0 40px #180d4e88}.wheelDisk.spinning{transition:transform var(--wheel-duration) cubic-bezier(.12,.74,.15,1);transform:rotate(var(--wheel-target))}.wheelPointer{position:absolute;z-index:3;left:50%;top:-13px;transform:translateX(-50%);width:0;height:0;border-left:19px solid transparent;border-right:19px solid transparent;border-top:42px solid #ffe3a0;filter:drop-shadow(0 3px 5px #130d23)}.wheelHub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:18%;height:18%;border-radius:50%;background:radial-gradient(circle at 30% 25%,#e8c78a,#8054ba 65%,#2e1752);border:3px solid #f4d39b;box-shadow:0 0 20px #fff2;color:white;font-size:clamp(23px,4vw,42px)}.wheelLabel{position:absolute;left:50%;top:50%;width:24%;min-width:48px;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(-1 * min(25vh,28vw,190px))) rotate(calc(-1 * var(--angle)));font-size:clamp(8px,1.45vw,14px);font-weight:850;line-height:1.15;text-shadow:0 2px 5px #130923;text-align:center;overflow-wrap:anywhere}.wheelFoot{background:#120d24c9;border:1px solid #b18dd755;border-radius:99px;padding:6px 15px;color:#e1d5f5;font-size:12px}.wheelCard{padding:24px;border-radius:18px;background:#170f29e8;border:1px solid #c296ed88}
@keyframes rewardEnter{from{opacity:0;transform:translateY(25px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes safeScare{0%{opacity:0;transform:scale(.92)}35%{opacity:1;transform:scale(1.045)}100%{transform:scale(1)}}
@media(max-width:600px){.wheelShell{width:min(78vw,48vh);height:min(78vw,48vh)}.wheelLabel{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(-1 * min(30vw,18vh))) rotate(calc(-1 * var(--angle)));font-size:clamp(7px,1.9vw,11px)}.rewardNotice{padding:13px 17px}.rewardMark{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.rewardNotice,.safeScare{animation:none}.wheelDisk.spinning{transition-duration:.1ms}}
/* Alpha 8.1 live SVG wheel: no idle scene, raster labels or viewer-facing app branding. */
body[data-kind=wheel]{background:transparent!important}
.wheelStage{position:relative;display:grid;justify-items:center;gap:clamp(12px,2vh,22px);width:min(94vw,760px);animation:rewardEnter .35s ease-out both}
.wheelStage[data-size=small]{--wheel-size:min(65vw,48vh,390px)}
.wheelStage[data-size=medium]{--wheel-size:min(88vw,70vh,610px)}
.wheelStage[data-size=large]{--wheel-size:min(92vw,78vh,700px)}
.wheelStage .wheelHeader{max-width:min(90vw,700px);padding:12px 24px;background:linear-gradient(110deg,#140e27eb,#27133ce8);border-color:#cba3f5a8;backdrop-filter:blur(12px)}
.wheelStage .wheelHeader strong{font-size:clamp(23px,4.5vw,40px);line-height:1.15;overflow-wrap:anywhere;text-shadow:0 2px 12px #080412}
.wheelStage[data-state=winner] .wheelHeader{border-color:#efd08b;box-shadow:0 0 32px #d4a9606e}
.wheelStage .wheelShell{width:var(--wheel-size);height:var(--wheel-size);min-width:0;min-height:0;max-width:100%;aspect-ratio:1;padding:7px;background:linear-gradient(135deg,#eac488,#824abc,#f3da9d);box-shadow:0 0 0 4px #160d2e,0 0 32px #a65fe485,0 18px 48px #0009}
.wheelStage .wheelDisk{display:block;width:100%;height:100%;border:0;border-radius:50%;background:none;box-shadow:none;transform-origin:50% 50%;will-change:transform;text-rendering:geometricPrecision}
.wheelStage .wheelDisk.spinning{transition:transform var(--wheel-duration,4500ms) cubic-bezier(.16,.74,.14,1);transform:rotate(var(--wheel-target,2160deg))}
.wheelSvgText{fill:#fffdfc;stroke:#1d0d2c;stroke-width:3px;stroke-linejoin:round;paint-order:stroke;filter:drop-shadow(0 2px 2px #090413);font-family:Inter,"Segoe UI",Arial,sans-serif;font-weight:900;letter-spacing:.2px}
.wheelSvgIcon{fill:#ffde95;stroke:#321945;stroke-width:1.5px;paint-order:stroke;filter:drop-shadow(0 1px 3px #160a29)}
.wheelCenterText{fill:#fff2cf;font-size:64px;font-weight:900;filter:drop-shadow(0 0 12px #e4a4ff)}
.wheelStage .wheelPointer{top:-17px;border-left-width:18px;border-right-width:18px;border-top-width:43px;filter:drop-shadow(0 0 7px #efaaff)}
.wheelStage[data-position=top-left],.wheelStage[data-position=top-center],.wheelStage[data-position=top-right]{position:absolute;top:2vh}
.wheelStage[data-position=bottom-left],.wheelStage[data-position=bottom-center],.wheelStage[data-position=bottom-right]{position:absolute;bottom:2vh}
.wheelStage[data-position=top-left],.wheelStage[data-position=bottom-left]{left:2vw}
.wheelStage[data-position=top-center],.wheelStage[data-position=bottom-center]{left:50%;translate:-50% 0}
.wheelStage[data-position=top-right],.wheelStage[data-position=bottom-right]{right:2vw}
@media(max-width:600px){.wheelStage{gap:10px}.wheelStage .wheelHeader{padding:9px 14px}.wheelStage .wheelHeader strong{font-size:clamp(21px,5vw,30px)}.wheelStage .wheelShell{padding:5px}}

/* Alpha 9 creator-neutral interactive game overlay. */
body[data-kind=games] #root{align-items:center;justify-content:center}
.gameOverlay{width:min(760px,92vw);display:grid;gap:14px;padding:20px;border:1px solid rgba(202,163,245,.58);border-radius:24px;background:linear-gradient(135deg,rgba(14,10,28,.93),rgba(37,22,58,.91));box-shadow:0 18px 60px rgba(0,0,0,.58),0 0 38px rgba(132,83,199,.24);backdrop-filter:blur(14px)}
.gameOverlayHead{display:flex;gap:14px;align-items:flex-end;justify-content:space-between}.gameOverlayHead>div{display:grid;gap:3px}.gameOverlayHead small{font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:#d9bc7e;font-weight:850}.gameOverlayHead strong{font-size:clamp(22px,4vw,38px);line-height:1.05}.gameClock{text-align:right;font-size:clamp(20px,4vw,34px);font-weight:900;font-variant-numeric:tabular-nums}.gameTarget{font-size:11px;opacity:.7;text-align:right}.gameRanks{display:grid;gap:10px}.gameRank{display:grid;gap:6px;padding:9px 11px;border-radius:12px;background:rgba(255,255,255,.045)}.gameRankLine{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center}.gameRankLine span{opacity:.56;font-size:11px}.gameRankLine b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gameRankLine strong{font-variant-numeric:tabular-nums}.gameRankBar{height:7px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.07)}.gameRankBar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#825ac8,#d7b471)}.gameWinner{display:grid;justify-items:center;gap:4px;text-align:center;padding:17px;border-radius:16px;border:1px solid rgba(232,199,132,.52);background:rgba(181,132,65,.10)}.gameWinner small{font-size:10px;letter-spacing:.2em;color:#dfbd79;font-weight:900}.gameWinner strong{font-size:clamp(28px,6vw,50px)}.gameWinner span{opacity:.82}.gameWaiting{text-align:center;padding:18px;opacity:.64}
@media(max-width:600px){.gameOverlay{width:min(92vw,520px);padding:14px;border-radius:18px}.gameOverlayHead strong{font-size:clamp(21px,6vw,30px)}.gameRank{padding:8px}.gameRankLine{grid-template-columns:27px minmax(0,1fr) auto}}
/* Alpha 9 game overlay runtime classes (overlay-client.js). */
.gameStage{width:min(760px,92vw);display:grid;gap:14px;padding:20px;border:1px solid rgba(202,163,245,.58);border-radius:24px;background:linear-gradient(135deg,rgba(14,10,28,.93),rgba(37,22,58,.91));box-shadow:0 18px 60px rgba(0,0,0,.58),0 0 38px rgba(132,83,199,.24);backdrop-filter:blur(14px)}
.gameHead{display:flex;gap:14px;align-items:flex-end;justify-content:space-between}.gameHead>div{display:grid;gap:3px}.gameHead small{font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:#d9bc7e;font-weight:850}.gameHead strong{font-size:clamp(22px,4vw,38px);line-height:1.05}.gameTimer{text-align:right;font-size:clamp(20px,4vw,34px);font-weight:900;font-variant-numeric:tabular-nums}.gameTarget{font-size:11px;opacity:.72;text-align:right}.gameBoard{display:grid;gap:10px}.gameRow{display:grid;gap:6px;padding:9px 11px;border-radius:12px;background:rgba(255,255,255,.045)}.gameRowTop{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center}.gameRowTop .gameRank{opacity:.56;font-size:11px}.gameRowTop strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gameRowTop b{font-variant-numeric:tabular-nums}.gameTrack{height:7px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.07)}.gameTrack i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#825ac8,#d7b471)}
@media(max-width:600px){.gameStage{width:min(92vw,520px);padding:14px;border-radius:18px}.gameHead strong{font-size:clamp(21px,6vw,30px)}.gameRow{padding:8px}.gameRowTop{grid-template-columns:27px minmax(0,1fr) auto}}

/* Alpha 9.2 shared viewer-overlay appearance engine. Values are supplied by overlay-client.js. */
html,body{font-family:var(--sd-font,Inter,"Segoe UI",Arial,sans-serif);color:var(--sd-text,#f8f4ff)}
body,body.transparent,body[data-kind=wheel]{background:var(--sd-bg,transparent)!important}
#root{color:var(--sd-text,#f8f4ff)}
/* Let the shared placement control position all overlay families. Wheel config can still set its own stage position. */
.goalList,.chatList,.rewardNotices,.gameStage,.gameOverlay{align-self:auto}
body[data-position^=top] #root{align-items:flex-start!important}body[data-position^=bottom] #root{align-items:flex-end!important}body[data-position=center] #root{align-items:center!important;justify-content:center!important}
body[data-position$=left] #root{justify-content:flex-start!important}body[data-position$=center] #root{justify-content:center!important}body[data-position$=right] #root{justify-content:flex-end!important}

.gift,.goal,.chat,.rewardNotice,.safeScare,.wheelHeader,.wheelCard,.gameStage,.gameOverlay,.gameWinner{
  color:var(--sd-text,#f8f4ff)!important;background:var(--sd-panel,rgba(23,17,38,.88))!important;
  border-color:var(--sd-border,#b877ff)!important;border-width:var(--sd-border-width,1px)!important;border-style:solid!important;
  border-radius:var(--sd-radius,20px)!important;box-shadow:0 16px 46px var(--sd-shadow,rgba(0,0,0,.52)),0 0 34px var(--sd-glow,rgba(173,107,255,.36))!important;
  backdrop-filter:blur(var(--sd-blur,14px))!important
}
.gift:after{border-radius:var(--sd-radius,20px)!important}.gift .eyebrow,.chatName,.goalState,.rewardNotice small,.gameHead small,.gameOverlayHead small,.gameWinner small{color:var(--sd-accent,#ad6bff)!important}
.description,.goalValue,.chatText,.rewardNotice div span,.safeScare span,.gameTarget,.gameWaiting{color:var(--sd-muted,#ddd5e9)!important}
.quantity,.description strong{color:color-mix(in srgb,var(--sd-accent,#ad6bff) 58%,white)!important}
.track,.gameTrack,.gameRankBar{background:color-mix(in srgb,var(--sd-panel-solid,#171126) 82%,white 18%)!important}
.fill,.gameTrack i,.gameRankBar i{background:linear-gradient(90deg,var(--sd-accent,#ad6bff),color-mix(in srgb,var(--sd-accent,#ad6bff) 45%,white))!important;box-shadow:0 0 15px var(--sd-glow,rgba(173,107,255,.36))!important}
.gameRow,.gameRank{background:color-mix(in srgb,var(--sd-panel,rgba(23,17,38,.88)) 84%,white 16%)!important;border-radius:var(--sd-radius-small,12px)!important}
.rewardMark{background:linear-gradient(135deg,var(--sd-accent,#ad6bff),color-mix(in srgb,var(--sd-accent,#ad6bff) 50%,white))!important;border-radius:var(--sd-radius-mark,14px)!important}
.safeScareIcon,.wheelCenterText,.wheelSvgIcon{color:color-mix(in srgb,var(--sd-accent,#ad6bff) 45%,#ffe4a0)!important;fill:color-mix(in srgb,var(--sd-accent,#ad6bff) 45%,#ffe4a0)!important}

.wheelStage .wheelHeader{background:var(--sd-panel,rgba(23,17,38,.88))!important;border-color:var(--sd-border,#b877ff)!important;backdrop-filter:blur(var(--sd-blur,14px))!important}
.wheelStage .wheelShell{background:linear-gradient(135deg,color-mix(in srgb,var(--sd-accent,#ad6bff) 65%,#f1d19a),var(--sd-accent,#ad6bff),color-mix(in srgb,var(--sd-accent,#ad6bff) 28%,#fff0bd))!important;box-shadow:0 0 0 4px var(--sd-panel-solid,#171126),0 0 36px var(--sd-glow,rgba(173,107,255,.36)),0 20px 60px var(--sd-shadow,rgba(0,0,0,.52))!important}
.wheelSvgText{fill:var(--sd-text,#fffdfc)!important;stroke:var(--sd-panel-solid,#171126)!important;font-family:var(--sd-font,Inter,"Segoe UI",Arial,sans-serif)!important}
.wheelStage[data-state=winner] .wheelHeader{border-color:color-mix(in srgb,var(--sd-accent,#ad6bff) 55%,#f4d08a)!important;box-shadow:0 0 32px var(--sd-glow,rgba(173,107,255,.36))!important}
.wheelStage .wheelPointer{border-top-color:color-mix(in srgb,var(--sd-accent,#ad6bff) 35%,#ffe3a0)!important;filter:drop-shadow(0 0 7px var(--sd-glow,rgba(173,107,255,.36)))!important}

/* Typography scale keeps live text sharp instead of raster-scaling it. */
.gift .user{font-size:var(--sd-gift-user-size,25px)!important}.gift .description{font-size:var(--sd-gift-desc-size,17px)!important}.chat{font-size:var(--sd-chat-size,15px)!important}
.goalTop{font-size:var(--sd-goal-title-size,14px)!important}.goalValue{font-size:var(--sd-goal-value-size,12px)!important}.rewardNotice strong{font-size:clamp(var(--sd-reward-min,17px),3vw,var(--sd-reward-max,25px))!important}
.gameHead strong,.gameOverlayHead strong{font-size:clamp(var(--sd-game-min,22px),4vw,var(--sd-game-max,38px))!important}.gameTimer,.gameClock{font-size:clamp(var(--sd-game-timer-min,20px),4vw,var(--sd-game-timer-max,34px))!important}
.wheelStage .wheelHeader strong{font-size:clamp(var(--sd-wheel-min,23px),4.5vw,var(--sd-wheel-max,40px))!important}

/* Shared animation speed. The SVG wheel also adjusts its JS duration. */
.gift{animation-duration:calc(.44s * var(--sd-animation-factor,1))!important}.gift.out{animation-duration:calc(.36s * var(--sd-animation-factor,1))!important}.chat{animation-duration:calc(.28s * var(--sd-animation-factor,1))!important}.chat.out{animation-duration:calc(.25s * var(--sd-animation-factor,1))!important}
.rewardNotice{animation-duration:calc(.34s * var(--sd-animation-factor,1))!important}.safeScare{animation-duration:calc(.48s * var(--sd-animation-factor,1))!important}.wheelStage{animation-duration:calc(.35s * var(--sd-animation-factor,1))!important}.fill{transition-duration:calc(.7s * var(--sd-animation-factor,1))!important}

/* Alpha 10 community game visuals: Coin Jar, Like Fountain, Gift Cannon / Firework. */
.communityGame{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:24px;align-items:center;min-height:190px;padding:8px 4px}.communityStats{display:grid;gap:7px;align-content:center}.communityStats strong{font-size:clamp(28px,6vw,54px);font-variant-numeric:tabular-nums;line-height:1}.communityStats>span{color:var(--sd-muted,#ddd5e9);font-size:14px}.gameLastViewer{margin-top:7px;font-size:12px;opacity:.76}.coinJar{position:relative;width:150px;height:176px;margin:auto;border:4px solid color-mix(in srgb,var(--sd-accent,#ad6bff) 60%,white);border-top-width:10px;border-radius:28px 28px 42px 42px;overflow:hidden;background:color-mix(in srgb,var(--sd-panel-solid,#171126) 72%,transparent);box-shadow:inset 0 0 26px rgba(255,255,255,.07),0 0 26px var(--sd-glow,rgba(173,107,255,.36))}.coinJar:before{content:"";position:absolute;left:25px;right:25px;top:-10px;height:16px;border-radius:99px;background:color-mix(in srgb,var(--sd-accent,#ad6bff) 55%,#f6d57e);z-index:4}.coinJarFill{position:absolute;left:0;right:0;bottom:0;min-height:2px;background:linear-gradient(180deg,color-mix(in srgb,var(--sd-accent,#ad6bff) 35%,#ffe493),color-mix(in srgb,var(--sd-accent,#ad6bff) 70%,#bb7b2c));transition:height calc(.6s * var(--sd-animation-factor,1)) cubic-bezier(.2,.8,.2,1);box-shadow:0 -8px 22px var(--sd-glow,rgba(173,107,255,.36))}.coinJarCoins{position:absolute;inset:24px 15px 12px;z-index:3}.coinJarCoins i{position:absolute;width:25px;height:25px;border-radius:50%;border:2px solid #ffe7a0;background:linear-gradient(135deg,#fff0a9,#d79a35);box-shadow:0 2px 7px #0007;animation:coinFloat calc(2.8s * var(--sd-animation-factor,1)) ease-in-out infinite}.coinJarCoins i:nth-child(1){left:8%;bottom:5%;animation-delay:-.4s}.coinJarCoins i:nth-child(2){left:38%;bottom:13%;animation-delay:-1.2s}.coinJarCoins i:nth-child(3){right:6%;bottom:4%;animation-delay:-2s}.coinJarCoins i:nth-child(4){left:18%;bottom:35%;animation-delay:-1.6s}.coinJarCoins i:nth-child(5){right:20%;bottom:42%;animation-delay:-.8s}.coinJarCoins i:nth-child(6){left:47%;bottom:62%;animation-delay:-2.4s}@keyframes coinFloat{50%{transform:translateY(-7px) rotate(12deg)}}
.fountainBowl{position:relative;width:170px;height:176px;margin:auto;overflow:visible}.fountainBowl:before{content:"";position:absolute;left:8px;right:8px;bottom:0;height:58px;border:4px solid color-mix(in srgb,var(--sd-accent,#ad6bff) 60%,white);border-radius:18px 18px 70px 70px;background:color-mix(in srgb,var(--sd-panel-solid,#171126) 72%,transparent);z-index:2}.fountainFill{position:absolute;left:13px;right:13px;bottom:5px;max-height:48px;border-radius:14px 14px 62px 62px;background:linear-gradient(180deg,color-mix(in srgb,var(--sd-accent,#ad6bff) 45%,#a8ecff),var(--sd-accent,#ad6bff));transition:height calc(.6s * var(--sd-animation-factor,1)) ease;z-index:3;box-shadow:0 0 26px var(--sd-glow,rgba(173,107,255,.36))}.fountainJet{position:absolute;left:50%;bottom:48px;width:10px;height:124px;transform:translateX(-50%);background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--sd-accent,#ad6bff) 40%,#b6efff));border-radius:99px;filter:drop-shadow(0 0 9px var(--sd-glow,rgba(173,107,255,.36)));animation:fountainPulse calc(1.2s * var(--sd-animation-factor,1)) ease-in-out infinite}.fountainJet i{position:absolute;width:12px;height:12px;border-radius:50%;background:color-mix(in srgb,var(--sd-accent,#ad6bff) 45%,#dff8ff);box-shadow:0 0 12px var(--sd-glow,rgba(173,107,255,.36));animation:fountainDrop calc(1.6s * var(--sd-animation-factor,1)) ease-in infinite}.fountainJet i:nth-child(1){left:-28px;top:22px}.fountainJet i:nth-child(2){right:-30px;top:35px;animation-delay:-.55s}.fountainJet i:nth-child(3){left:12px;top:4px;animation-delay:-1.05s}@keyframes fountainPulse{50%{transform:translateX(-50%) scaleY(.9);opacity:.82}}@keyframes fountainDrop{0%{transform:translateY(-6px);opacity:0}35%{opacity:1}100%{transform:translateY(94px);opacity:0}}
.giftCannonGame .communityStats{justify-self:start}.cannonRig{position:relative;width:190px;height:160px;margin:auto}.cannonBarrel{position:absolute;left:52px;top:48px;width:118px;height:46px;border-radius:18px 30px 30px 18px;background:linear-gradient(180deg,color-mix(in srgb,var(--sd-accent,#ad6bff) 55%,#ffffff),color-mix(in srgb,var(--sd-accent,#ad6bff) 72%,#191126));border:2px solid color-mix(in srgb,var(--sd-accent,#ad6bff) 55%,white);transform:rotate(-18deg);transform-origin:15% 50%;box-shadow:0 0 25px var(--sd-glow,rgba(173,107,255,.36))}.cannonBarrel:after{content:"";position:absolute;right:-12px;top:6px;width:20px;height:34px;border-radius:8px;background:color-mix(in srgb,var(--sd-accent,#ad6bff) 36%,#ffe4a0)}.cannonWheel{position:absolute;left:48px;bottom:20px;width:72px;height:72px;border-radius:50%;border:9px solid color-mix(in srgb,var(--sd-accent,#ad6bff) 48%,#e7c477);box-shadow:inset 0 0 0 5px var(--sd-panel-solid,#171126),0 0 20px var(--sd-glow,rgba(173,107,255,.36))}.gameBurst{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;pointer-events:none;z-index:50;animation:burstFade calc(.7s * var(--sd-animation-factor,1)) ease both}.gameBurst .burstCore{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;font-size:58px;color:#fff7bd;background:radial-gradient(circle,#fff7c7 0 14%,color-mix(in srgb,var(--sd-accent,#ad6bff) 35%,#ffb64d) 15% 38%,transparent 68%);filter:drop-shadow(0 0 30px var(--sd-glow,rgba(173,107,255,.56)));animation:burstCore calc(.55s * var(--sd-animation-factor,1)) cubic-bezier(.16,.84,.32,1) both}.gameBurst strong{font-size:clamp(26px,6vw,48px);text-shadow:0 3px 18px #000;margin-top:-3px}.gameBurst span{margin-top:5px;font-size:clamp(15px,3vw,24px);color:var(--sd-muted,#ddd5e9);text-shadow:0 2px 12px #000}.burstParticles{position:absolute;width:250px;height:250px}.burstParticles i{position:absolute;left:50%;top:50%;width:12px;height:12px;border-radius:50%;background:color-mix(in srgb,var(--sd-accent,#ad6bff) 45%,#ffe49b);box-shadow:0 0 15px currentColor;animation:particleBurst calc(.8s * var(--sd-animation-factor,1)) ease-out both}.burstParticles i:nth-child(1){--x:110px;--y:0}.burstParticles i:nth-child(2){--x:78px;--y:78px}.burstParticles i:nth-child(3){--x:0;--y:110px}.burstParticles i:nth-child(4){--x:-78px;--y:78px}.burstParticles i:nth-child(5){--x:-110px;--y:0}.burstParticles i:nth-child(6){--x:-78px;--y:-78px}.burstParticles i:nth-child(7){--x:0;--y:-110px}.burstParticles i:nth-child(8){--x:78px;--y:-78px}.gameBurst[data-style=cannon] .burstParticles i:nth-child(n+5){display:none}.gameBurst[data-style=firework] .burstCore{background:radial-gradient(circle,#fff 0 10%,var(--sd-accent,#ad6bff) 11% 24%,transparent 58%)}@keyframes particleBurst{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}20%{opacity:1}100%{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(.65);opacity:0}}@keyframes burstCore{0%{transform:scale(.12);opacity:0}45%{transform:scale(1.18);opacity:1}100%{transform:scale(1);opacity:.98}}@keyframes burstFade{0%{opacity:0}15%{opacity:1}78%{opacity:1}100%{opacity:0}}
@media(max-width:600px){.communityGame{grid-template-columns:1fr;gap:9px;min-height:0;text-align:center}.communityStats{justify-items:center}.coinJar{width:112px;height:126px}.fountainBowl{width:126px;height:126px}.fountainBowl:before{height:44px}.fountainFill{max-height:34px}.fountainJet{height:88px;bottom:38px}.cannonRig{width:145px;height:115px}.cannonBarrel{left:38px;top:32px;width:92px;height:36px}.cannonWheel{left:34px;bottom:10px;width:56px;height:56px}.gameBurst .burstCore{width:84px;height:84px;font-size:42px}}
@media(prefers-reduced-motion:reduce){.coinJarCoins i,.fountainJet,.fountainJet i,.gameBurst,.gameBurst .burstCore,.burstParticles i{animation-duration:.01ms!important}}
/* Alpha 11 Survival, Mystery Box, Jackpot and game milestone/end-screen visuals. */
.survivalGame .survivalClock{position:relative;width:158px;height:158px;margin:auto;display:grid;place-items:center;border-radius:50%;border:4px solid color-mix(in srgb,var(--sd-accent,#ad6bff) 58%,white);background:radial-gradient(circle,color-mix(in srgb,var(--sd-panel-solid,#171126) 76%,transparent),color-mix(in srgb,var(--sd-panel-solid,#171126) 96%,black));box-shadow:inset 0 0 28px rgba(255,255,255,.05),0 0 30px var(--sd-glow,rgba(173,107,255,.36))}.survivalClock:before,.survivalClock:after{content:"";position:absolute;left:50%;width:62px;height:42px;transform:translateX(-50%);border-left:3px solid color-mix(in srgb,var(--sd-accent,#ad6bff) 55%,#f4d18a);border-right:3px solid color-mix(in srgb,var(--sd-accent,#ad6bff) 55%,#f4d18a)}.survivalClock:before{top:24px;border-top:5px solid #e7c778;border-radius:12px 12px 40px 40px}.survivalClock:after{bottom:24px;border-bottom:5px solid #e7c778;border-radius:40px 40px 12px 12px}.survivalClock i{position:absolute;left:50%;top:50%;width:8px;height:48px;transform:translate(-50%,-50%);background:linear-gradient(#f6dd9a,var(--sd-accent,#ad6bff));clip-path:polygon(0 0,100% 0,65% 48%,100% 100%,0 100%,35% 48%);filter:drop-shadow(0 0 8px var(--sd-glow,rgba(173,107,255,.5)));animation:survivalPulse calc(1.4s * var(--sd-animation-factor,1)) ease-in-out infinite}.survivalClock b{z-index:3;font-size:24px;text-shadow:0 3px 12px #000;background:rgba(0,0,0,.35);padding:4px 8px;border-radius:999px}@keyframes survivalPulse{50%{opacity:.48;transform:translate(-50%,-50%) scaleY(.86)}}
.mysteryBoxGame .mysteryBox{position:relative;width:155px;height:138px;margin:auto;display:grid;place-items:center;border:3px solid color-mix(in srgb,var(--sd-accent,#ad6bff) 58%,#f4d18a);border-radius:18px 18px 28px 28px;background:linear-gradient(145deg,color-mix(in srgb,var(--sd-accent,#ad6bff) 35%,#2a183d),var(--sd-panel-solid,#171126));box-shadow:0 0 34px var(--sd-glow,rgba(173,107,255,.36));overflow:hidden}.mysteryBox .mysteryLid{position:absolute;left:-7px;right:-7px;top:17px;height:24px;border-radius:10px;background:linear-gradient(90deg,#d3a95f,color-mix(in srgb,var(--sd-accent,#ad6bff) 55%,#f3d48c));box-shadow:0 5px 12px #0006;z-index:3}.mysteryBox .mysteryGlow{position:absolute;left:0;right:0;bottom:0;height:var(--box-progress,0%);background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--sd-accent,#ad6bff) 70%,#f9d879));opacity:.56;transition:height calc(.6s * var(--sd-animation-factor,1)) ease}.mysteryBox b{z-index:4;font-size:58px;color:#fff5ca;text-shadow:0 0 20px var(--sd-glow,rgba(173,107,255,.7))}
.jackpotGame{display:grid;gap:12px}.jackpotPot{display:grid;justify-items:center;gap:2px;padding:22px 18px;border-radius:20px;border:2px solid color-mix(in srgb,var(--sd-accent,#ad6bff) 52%,#f0cf82);background:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--sd-accent,#ad6bff) 30%,transparent),var(--sd-panel,rgba(23,17,38,.88)));box-shadow:0 0 32px var(--sd-glow,rgba(173,107,255,.36))}.jackpotPot span{font-size:10px;letter-spacing:.18em;color:#e0c078;font-weight:900}.jackpotPot strong{font-size:clamp(38px,8vw,68px);line-height:1}.jackpotPot small{color:var(--sd-muted,#ddd5e9)}.jackpotPot i{display:block;width:min(360px,80%);height:8px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.08);margin-top:9px}.jackpotPot em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--sd-accent,#ad6bff),#e2bd6d);box-shadow:0 0 14px var(--sd-glow,rgba(173,107,255,.36))}.jackpotLeader{text-align:center;font-size:13px;color:var(--sd-muted,#ddd5e9)}
.gameCelebration{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;pointer-events:none;z-index:70;padding:20px;background:radial-gradient(circle,rgba(17,10,30,.78),rgba(7,5,13,.18) 62%,transparent 80%);animation:gameCelebrationIn calc(.65s * var(--sd-animation-factor,1)) ease both}.gameCelebration small{font-size:11px;letter-spacing:.2em;color:#ebca82;font-weight:900}.gameCelebration strong{font-size:clamp(32px,8vw,70px);line-height:1.02;margin:5px 0;text-shadow:0 3px 24px #000,0 0 24px var(--sd-glow,rgba(173,107,255,.5))}.gameCelebration span{font-size:clamp(15px,3vw,24px);color:var(--sd-muted,#ddd5e9);text-shadow:0 2px 12px #000}.mysteryResult strong{max-width:80vw}.jackpotResult strong{color:#fff0b7}.timeAdded strong{color:#d6ffbc}.milestoneBurst strong{font-size:64px;color:#fff0b7}@keyframes gameCelebrationIn{0%{opacity:0;transform:scale(.7)}45%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
.gameWinner.mysteryWinner,.gameWinner.jackpotWinner{background:linear-gradient(135deg,color-mix(in srgb,var(--sd-accent,#ad6bff) 24%,transparent),rgba(181,132,65,.16));border-color:color-mix(in srgb,var(--sd-accent,#ad6bff) 45%,#f0cf82)}
@media(max-width:600px){.survivalGame .survivalClock{width:118px;height:118px}.survivalClock:before,.survivalClock:after{width:48px;height:32px}.survivalClock b{font-size:18px}.mysteryBoxGame .mysteryBox{width:118px;height:104px}.mysteryBox b{font-size:44px}.jackpotPot{padding:15px 12px}.gameCelebration{padding:12px}}
@media(prefers-reduced-motion:reduce){.survivalClock i,.gameCelebration{animation-duration:.01ms!important}}
