:root{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f2f3f5;--panel:#2b2d31;--muted:#949ba4;--accent:#5865f2;--danger:#da373c;--success:#248046;background:#1e1f22;font-family:system-ui,sans-serif}body{margin:0}button{font:inherit;cursor:pointer;border:0;border-radius:6px}button:disabled{opacity:.5;cursor:not-allowed}h2{margin:0 0 12px;font-size:16px}h3{margin:0 0 8px;font-size:14px}.muted{color:var(--muted);font-weight:400}.center{min-height:100vh;color:var(--muted);place-items:center;margin:0;display:grid}.layout{grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"stage side""bottom bottom";gap:16px;max-width:1000px;margin:0 auto;padding:16px;display:grid}.stage{grid-area:stage}.side{grid-area:side}.bottom{grid-area:bottom}@media (max-width:700px){.layout{grid-template-columns:1fr;grid-template-areas:"stage""side""bottom"}}.banner{text-align:center;color:#111214;z-index:10;background:#f0b232;padding:6px;position:fixed;top:0;left:0;right:0}.panel{background:var(--panel);border-radius:8px;padding:16px}.notice{border-left:4px solid var(--danger);background:#da373c26;border-radius:4px;margin:0 0 12px;padding:10px 12px;font-weight:600}.wheel{flex-direction:column;align-items:center;display:flex}.wheel-stage{aspect-ratio:1;width:min(380px,100%);position:relative}.wheel-canvas{width:100%;height:100%;display:block}.wheel-monkey{--pupil-x:0px;--pupil-y:0px;--spiral-rotation:0deg;z-index:2;pointer-events:none;width:140px;height:126px;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.monkey-head{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;transition:opacity .16s;display:block;position:absolute;inset:0}.monkey-head-normal,.monkey-eyes{opacity:1}.monkey-head-dizzy,.monkey-spiral-eye{opacity:0;transition:opacity .16s}.monkey-head-happy,.monkey-head-stand,.wheel-monkey.is-empty .monkey-head-normal,.wheel-monkey.is-empty .monkey-eyes{opacity:0}.wheel-monkey.is-empty .monkey-head-stand{opacity:1}.wheel-monkey.is-dizzy .monkey-head-normal,.wheel-monkey.is-dizzy .monkey-eyes{opacity:0}.wheel-monkey.is-dizzy .monkey-head-dizzy,.wheel-monkey.is-dizzy .monkey-spiral-eye{opacity:1}.wheel-monkey.is-winner .monkey-head-normal,.wheel-monkey.is-winner .monkey-head-dizzy,.wheel-monkey.is-winner .monkey-eyes,.wheel-monkey.is-winner .monkey-spiral-eye{opacity:0}.wheel-monkey.is-winner .monkey-head-happy{opacity:1;animation:.7s ease-in-out infinite happy-monkey-bob}.wheel-monkey.is-empty .monkey-head-happy{opacity:0;animation:none}.monkey-eyes{width:27%;height:auto;image-rendering:pixelated;transform:translate(calc(-50% + var(--pupil-x)), calc(-50% + var(--pupil-y)));transition:opacity .16s;position:absolute;top:51%;left:50%}.monkey-spiral-eye{width:8%;height:auto;image-rendering:pixelated;transform:translate(calc(-50% + var(--pupil-x)), calc(-50% + var(--pupil-y))) rotate(var(--spiral-rotation));position:absolute;top:51%}.spiral-eye-left{left:38%}.spiral-eye-right{left:60%}.celebration-cone-group{opacity:0;width:200px;position:absolute;top:60px;left:50%;transform:translate(-50%)}.celebration-cone,.celebration-confetti{width:100%;height:auto;image-rendering:pixelated;display:block;position:absolute;inset:0}.celebration-confetti{animation:.22s steps(2,end) infinite celebration-confetti-blink}.wheel-monkey.is-winner .celebration-cone-group{opacity:1;animation:.7s ease-in-out infinite celebration-cone-bob}.generated-confetti{z-index:3;pointer-events:none;position:absolute;inset:25% 20% 15%;overflow:visible}.generated-confetti-piece{opacity:0;border-radius:1px;width:6px;height:10px;animation:1.5s linear infinite generated-confetti-fall;position:absolute;top:0}.confetti-color-0{background:#f5c542}.confetti-color-1{background:#f05a70}.confetti-color-2{background:#4db6ac}.confetti-color-3{background:#8b72d9}.confetti-color-4{background:#f28c38}@keyframes happy-monkey-bob{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}@keyframes celebration-cone-bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-10px)}}@keyframes celebration-confetti-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes generated-confetti-fall{0%{opacity:0;transform:translateY(-16px)rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(190px)rotate(540deg)}}.wheel-result{min-height:1.4em;margin:8px 0 0;font-size:20px;font-weight:700}.controls{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-top:12px;display:flex}.controls p{margin:0}.formats,.actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.chip{background:var(--panel);color:inherit;padding:4px 12px}.chip.active{background:var(--accent)}.primary{background:var(--accent);color:#fff;padding:10px 24px;font-weight:600}.secondary{color:#fff;background:#4e5058;padding:10px 24px}.link{color:#00a8fc;background:0 0;margin-left:auto;padding:2px 6px;font-size:12px}.people{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.people li{align-items:center;gap:8px;display:flex}.people li.offline{opacity:.5}.people img,.team img{border-radius:50%}.name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{background:#4e5058;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.badge.admin{background:var(--accent)}.badge.ready{background:var(--success)}.teams{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.team{background:#1e1f22;border-radius:6px;padding:12px}.team ol{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.team li>img{vertical-align:middle;margin-right:6px}.team li.empty{color:var(--muted);font-style:italic}.toast{background:var(--danger);color:#fff;border-radius:6px;padding:10px 16px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.fatal{white-space:pre-wrap;word-break:break-word;color:#f2f3f5;background:var(--panel);border-radius:6px;max-width:90vw;padding:8px;font-size:12px}.dev-login{flex-direction:column;gap:12px;width:min(360px,90vw);display:flex}.dev-login p{margin:0}.dev-login input{font:inherit;color:inherit;background:#1e1f22;border:0;border-radius:6px;padding:10px}.modal-backdrop{z-index:20;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{flex-direction:column;align-items:center;gap:12px;width:min(440px,100%);max-height:100%;display:flex;overflow-y:auto}.modal .actions p{margin:0}.modal>*{flex-shrink:0}.modal .wheel{width:100%}