:root{color-scheme:dark;--activity-bg:#1b2126;--activity-surface:#232b30;--activity-line:#3b454a;--activity-ink:#f5f3eb;--activity-muted:#abb7b8;--activity-green:#125745;--activity-gold:#faa921;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;background:var(--activity-bg);color:var(--activity-ink)}
button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}[hidden]{display:none!important}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--activity-gold);outline-offset:4px}
.activity{max-width:1220px;margin:0 auto;padding:24px 32px 28px;min-height:100svh}
.activity-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:22px;border-bottom:1px solid var(--activity-line)}
.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:750;letter-spacing:-.4px}.brand-context{font-size:12px;color:var(--activity-muted);font-weight:500;letter-spacing:0;margin-left:3px}
.brand-wheel{width:24px;height:24px;flex:none;border-radius:50%;background:conic-gradient(#125745 0 90deg,#faa921 90deg 180deg,#dd2043 180deg 270deg,#f5ebd9 270deg);border:2px solid #f5ebd9}
.connection{display:flex;align-items:center;gap:7px;color:var(--activity-muted);font-size:12px;white-space:nowrap}.connection>span{width:6px;height:6px;background:#7b888b;border-radius:50%}[data-connection=connected] .connection>span{background:#65bb91}[data-connection=error] .connection>span{background:#faa921}
.notice{max-width:560px;margin:80px auto;text-align:center}.notice h1{font-size:30px;letter-spacing:-.9px;line-height:1.2}.notice p{color:var(--activity-muted);line-height:1.6;font-size:15px}
.activity-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,310px);gap:42px;margin-top:28px;align-items:start}
.wheel-panel{min-width:0;text-align:center;position:relative}.wheel-heading{min-height:96px}.eyebrow{margin:0;color:var(--activity-muted);text-transform:uppercase;letter-spacing:1.8px;font-size:10px;font-weight:700}.wheel-heading h1{font-size:clamp(25px,2.7vw,38px);letter-spacing:-1.2px;line-height:1.13;margin:8px 0 9px;overflow-wrap:anywhere}.wheel-meta{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:0;font-size:12px;color:var(--activity-muted)}.wheel-meta strong{color:var(--activity-ink);font-weight:600}
.wheel-stage{margin:20px auto 0;max-width:620px}.activity .hero__wheel .wheel-wrapper{--sc-wheel-size:min(100%,560px);width:min(100%,560px)!important;height:auto!important;aspect-ratio:1!important;max-width:none!important;margin:0 auto!important}
.activity .wheel-pointer{--sc-wheel-size-live:520px;top:-15px!important;width:34px!important;height:39px!important}.activity .wheel{cursor:pointer}.activity .wheel[aria-disabled=true]{cursor:default}.activity .wheel.is-spinning{will-change:transform}.empty-wheel-hint{position:absolute;left:16%;right:16%;top:28%;display:flex;flex-direction:column;gap:7px;pointer-events:none}.empty-wheel-hint>span{font-size:clamp(16px,2vw,24px);font-weight:700}.empty-wheel-hint small{font-size:12px;color:var(--activity-muted);line-height:1.5}
.wheel-actions{margin:22px auto 0;max-width:330px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:7px;min-height:44px;padding:11px 18px;font-size:13px;font-weight:650;line-height:1.25;transition:background .15s,color .15s}.button-spin{background:var(--activity-gold);color:#211a0e;min-height:48px;width:100%;font-size:15px}.button-spin:not(:disabled):hover{background:#ffba46}.button svg{width:19px;height:19px;fill:currentColor}.spin-hint{font-size:12px;color:var(--activity-muted);margin:9px 0 0;min-height:17px}.private-status{font-size:12px;color:#d7e4dc;min-height:18px;margin:12px 0 0;line-height:1.5}.engine-result{display:none}
.winner{padding:16px 0 2px}.winner .eyebrow{display:block;color:#e0c892}.winner strong{display:block;margin:5px 0;font-size:30px;font-weight:750;letter-spacing:-.8px;overflow-wrap:anywhere}.winner>span:last-child{display:block;font-size:12px;color:var(--activity-muted);overflow-wrap:anywhere}
.roster-panel{min-width:0;padding:20px 0 0 25px;border-left:1px solid var(--activity-line);margin-top:6px}.roster-heading{display:flex;align-items:center;gap:8px}.roster-heading h2{font-size:16px;letter-spacing:-.3px;margin:0}.roster-count{font-variant-numeric:tabular-nums;font-size:11px;min-width:23px;border:1px solid #546361;border-radius:20px;color:#c6d9cd;padding:3px 6px;text-align:center}.roster-description{font-size:12px;line-height:1.65;color:var(--activity-muted);margin:9px 0 16px;max-width:240px}.membership-actions{display:flex;gap:8px}.button-join{flex:1;background:#d7e8de;color:#173b2b}.button-join:not(:disabled):hover{background:#ecf5ee}.button-leave{background:transparent;border:1px solid #576365;color:var(--activity-ink);font-size:12px}.button-leave:not(:disabled):hover{background:#303b3f}.your-entry{display:flex;align-items:center;gap:7px;color:#a7d0b9;font-size:11px;margin-top:11px}.your-entry>span:first-child{font-size:13px}
.roster-search{display:flex;align-items:center;gap:8px;background:var(--activity-surface);border:1px solid #414d52;border-radius:6px;padding:0 10px;min-height:39px;margin-top:23px}.roster-search svg{width:15px;height:15px;stroke:#a6b5b8;stroke-width:1.5;fill:none;flex:none}.roster-search input{background:none;border:0;min-width:0;width:100%;color:var(--activity-ink);outline-offset:6px;font-size:12px;padding:10px 0}.roster-search input::placeholder{color:#a7b2b5}.roster-list{max-height:350px;min-height:150px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#53615e transparent;overscroll-behavior:contain;margin-top:10px;padding-right:6px}.roster-person{display:flex;align-items:center;gap:10px;min-height:43px;border-bottom:1px solid #ffffff07}.roster-avatar{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex:none;background:#31413b;color:#d0e7d9;border-radius:50%;font-size:10px;font-weight:650}.roster-person:nth-child(4n+2) .roster-avatar{background:#4c3f27;color:#f8d791}.roster-person:nth-child(4n+3) .roster-avatar{background:#4c303b;color:#ecc0cd}.roster-person:nth-child(4n) .roster-avatar{background:#45433a;color:#e9e2cf}.roster-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.roster-badge{margin-left:auto;font-size:9px;color:#9db6aa;padding-left:5px;flex:none}.roster-empty{font-size:12px;color:var(--activity-muted);margin:20px 0;min-height:130px}.roster-footer{border-top:1px solid var(--activity-line);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-top:12px;padding-top:13px;font-size:10px;color:var(--activity-muted)}.roster-footer a{color:#d0e1d8;text-decoration:none}.roster-footer a:hover{text-decoration:underline}
.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(min-width:1100px){.activity-grid{gap:65px}.roster-list{max-height:430px}.wheel-stage{max-width:560px}}
@media(max-width:819px){.activity{padding:18px 20px 25px}.activity-grid{grid-template-columns:minmax(0,1fr) minmax(220px,260px);gap:24px}.roster-panel{padding-left:18px}.wheel-heading h1{font-size:28px}.wheel-stage{margin-top:25px}.wheel-heading{min-height:85px}.roster-list{max-height:300px}.activity .wheel-pointer{top:-12px!important;width:28px!important;height:33px!important}}
@media(max-width:639px){.activity{padding:16px 18px 22px}.activity-header{padding-bottom:16px}.brand{font-size:16px;gap:8px}.brand-context{display:none}.activity-grid{display:flex;flex-direction:column;gap:25px;margin-top:23px}.wheel-panel,.roster-panel{width:100%}.wheel-heading{min-height:85px}.wheel-heading h1{font-size:29px;margin-top:8px}.wheel-stage{max-width:420px;margin-top:12px}.wheel-meta{font-size:11px}.wheel-actions{margin-top:18px;max-width:380px}.roster-panel{border-left:0;border-top:1px solid var(--activity-line);padding:23px 0 0;margin:0}.roster-description{max-width:none;margin-bottom:13px}.roster-list{max-height:310px;min-height:0}.roster-search{margin-top:17px}.roster-person{min-height:45px}.roster-name{font-size:13px}.roster-empty{min-height:45px}.private-status{margin-bottom:0}.winner{padding-top:13px}.winner strong{font-size:28px}.connection{font-size:11px}.notice{margin-top:65px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.activity .wheel{will-change:auto}}
