.roulette-intro{padding-bottom:38px}
.roulette-section{padding-bottom:24px}
.roulette-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:18px;align-items:stretch}
.roulette-board,.roulette-roster{min-width:0;border:1px solid var(--line);background:#fffef7}
.roulette-board{display:flex;flex-direction:column;align-items:center;padding:clamp(20px,3vw,34px);background:#17171b;color:#faf9f4}
.roulette-board-head,.roster-heading{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px}
.roulette-board-head h2,.roster-heading h2{margin:5px 0 0;font:700 clamp(1.5rem,3vw,2.2rem)/1 var(--display);letter-spacing:-.055em}
.roulette-eyebrow{margin:0;color:#ed1c2e;font:700 .72rem var(--display);letter-spacing:.14em;text-transform:uppercase}
.roulette-live-dot{width:10px;height:10px;border-radius:50%;background:#ed1c2e;box-shadow:0 0 0 5px rgba(237,28,46,.15)}
.roulette-stage{position:relative;display:grid;place-items:center;width:min(100%,460px);margin:34px auto 20px;aspect-ratio:1}
.roulette-disc-wrap{position:relative;width:88%;height:88%;border:8px solid #09090b;border-radius:50%;background:#101014;box-shadow:0 12px 32px rgba(0,0,0,.42),0 0 0 2px rgba(255,255,255,.15);overflow:hidden}
.roulette-disc{display:block;width:100%;height:100%;overflow:visible}
.roulette-slice{stroke:#17171b;stroke-width:1.5}
.roulette-slice-label{font-family:var(--display);font-weight:700;letter-spacing:.01em;paint-order:stroke;stroke:rgba(0,0,0,.3);stroke-width:2px;stroke-linejoin:round}
.roulette-hub{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:19%;aspect-ratio:1;transform:translate(-50%,-50%);border:5px solid #141418;border-radius:50%;background:#f7f6ef;box-shadow:0 2px 14px rgba(0,0,0,.4);pointer-events:none}
.roulette-hub img{width:75%;height:75%;object-fit:contain}
.roulette-pointer{position:absolute;z-index:2;top:0;left:50%;width:0;height:0;transform:translateX(-50%);border-right:17px solid transparent;border-bottom:0;border-left:17px solid transparent;border-top:32px solid #ed1c2e;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}
.roulette-result{display:flex;min-height:82px;width:min(100%,460px);flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 16px;border:1px solid rgba(255,255,255,.14);background:#101014;text-align:center}
.roulette-result-label{color:#aaa9b0;font:700 .65rem var(--display);letter-spacing:.14em}
.roulette-result strong{max-width:100%;overflow-wrap:anywhere;color:#fff;font:700 clamp(1.35rem,4vw,2rem)/1.1 var(--display)}
.roulette-result.is-winner{border-color:#ed1c2e;background:rgba(237,28,46,.12)}
.roulette-spin{display:flex;align-items:center;justify-content:center;gap:10px;width:min(100%,460px);min-height:54px;margin-top:14px;border:0;background:#ed1c2e;color:#fff;font:700 1rem var(--display);cursor:pointer;transition:background .16s,transform .16s,opacity .16s}
.roulette-spin:hover:not(:disabled){transform:translateY(-2px);background:#c91425}
.roulette-spin:disabled{cursor:not-allowed;opacity:.48}
.roulette-spin span{font-size:1.4rem;line-height:1}
.roulette-hint{min-height:1.3em;margin:9px 0 0;color:#c5c4c8;font-size:.8rem;text-align:center}
.roulette-roster{display:flex;flex-direction:column;padding:clamp(20px,3vw,30px)}
.roster-heading{align-items:flex-start;margin-bottom:18px}
.participant-count{display:grid;min-width:42px;height:42px;place-items:center;border-radius:50%;background:#ed1c2e;color:#fff;font:700 1rem var(--display)}
.add-participant{display:flex;gap:8px}
.add-participant input,.participant-name-input,.roulette-options select{min-width:0;min-height:45px;border:1px solid #d6d3ca;border-radius:2px;background:#fff;color:#17171b;font:500 .94rem var(--body);outline:none}
.add-participant input{flex:1;padding:0 12px}
.add-participant input:focus,.participant-name-input:focus,.roulette-options select:focus{border-color:#ed1c2e;box-shadow:0 0 0 3px rgba(237,28,46,.12)}
.add-participant button{width:48px;min-height:45px;border:0;background:#17171b;color:#fff;font-size:1.5rem;cursor:pointer}
.add-participant button:hover{background:#ed1c2e}
.roster-note,.storage-note{margin:9px 0 0;color:#69686e;font-size:.79rem;line-height:1.45}
.participant-list{display:flex;max-height:340px;flex-direction:column;gap:7px;margin:16px 0 0;padding:0;overflow:auto;list-style:none}
.participant-item{display:grid;grid-template-columns:30px minmax(0,1fr) 38px;align-items:center;gap:8px}
.participant-index{color:#918f96;font:700 .75rem var(--display);text-align:center}
.participant-name-input{width:100%;padding:0 10px}
.participant-name-input:disabled{opacity:.72}
.participant-remove{display:grid;width:38px;height:38px;place-items:center;border:1px solid #ddd9d0;background:transparent;color:#615f65;font-size:1.15rem;cursor:pointer}
.participant-remove:disabled{cursor:not-allowed;opacity:.45}
.participant-remove:hover{border-color:#ed1c2e;background:#ed1c2e;color:white}
.roster-empty{display:grid;min-height:100px;place-content:center;justify-items:center;gap:4px;margin-top:15px;border:1px dashed #d6d3ca;color:#77757b;text-align:center}
.roster-empty[hidden]{display:none}
.roster-empty span{color:#ed1c2e;font-size:1.7rem;line-height:1}
.roster-empty p{margin:0;font-size:.84rem;line-height:1.4}
.roulette-options{display:grid;grid-template-columns:1fr minmax(125px,.8fr);align-items:center;gap:12px;margin-top:auto;padding-top:18px}
.roulette-options label{font:700 .85rem var(--display)}
.roulette-options select{width:100%;padding:0 10px;font-size:.85rem}
.clear-participants{align-self:flex-start;margin-top:12px;padding:7px 0;border:0;background:none;color:#69686e;font:600 .8rem var(--body);text-decoration:underline;text-decoration-color:#b9b6ae;text-underline-offset:3px;cursor:pointer}
.clear-participants:hover:not(:disabled){color:#ed1c2e}
.clear-participants:disabled{cursor:not-allowed;opacity:.45}
.roster-status{min-height:1.2em;margin:8px 0 0;color:#b70d20;font-size:.8rem}
.roulette-footnote{display:flex;align-items:baseline;gap:18px;padding:14px 0 54px;border-top:1px solid var(--line)}
.roulette-footnote span{flex:0 0 auto;color:#ed1c2e;font:700 .68rem var(--display);letter-spacing:.12em}
.roulette-footnote p{margin:0;color:#68676d;font-size:.83rem}
.visually-hidden{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:850px){.roulette-layout{grid-template-columns:1fr}.roulette-board{min-height:0}.roulette-stage{width:min(100%,410px)}.roulette-roster{min-height:320px}.roulette-options{margin-top:12px}}
@media(max-width:560px){.roulette-intro{padding-bottom:25px}.roulette-section{padding-bottom:18px}.roulette-board,.roulette-roster{padding:18px}.roulette-stage{width:min(100%,340px);margin:25px auto 15px}.roulette-disc-wrap{border-width:6px}.roulette-pointer{border-right-width:13px;border-left-width:13px;border-top-width:25px}.roulette-result{min-height:72px}.roulette-spin{min-height:50px}.roulette-options{grid-template-columns:1fr;gap:7px}.roulette-footnote{flex-direction:column;gap:6px;padding-bottom:38px}.participant-list{max-height:280px}}
@media(prefers-reduced-motion:reduce){.roulette-spin{transition:none}}
