.rl-layout{display:grid;gap:14px}
@media (min-width:760px){.rl-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}.rl-stage{position:sticky;top:120px}}
.rl-wheel-wrap{position:relative;width:100%;max-width:440px;margin:14px auto 0;aspect-ratio:1}
#rl-canvas{display:block;width:100%;height:100%;border-radius:50%;box-shadow:0 0 0 6px var(--surface-2),0 10px 30px rgba(16,24,40,.18)}
.rl-pointer{position:absolute;left:50%;top:-14px;width:34px;height:44px;margin-left:-17px;z-index:2;transform-origin:50% 8px;filter:drop-shadow(0 3px 3px rgba(0,0,0,.25))}
.rl-pointer::before{content:"";position:absolute;inset:0;background:var(--text);clip-path:polygon(0 0,100% 0,100% 30%,50% 100%,0 30%);border-radius:6px}
.rl-pointer.flick{animation:rl-flick .14s ease-out}
@keyframes rl-flick{40%{transform:rotate(-16deg)}100%{transform:rotate(0)}}
.rl-hub{position:absolute;left:50%;top:50%;width:22%;height:22%;transform:translate(-50%,-50%);border-radius:50%;border:5px solid #fff;background:var(--text);color:var(--bg);font-weight:900;font-size:clamp(15px,4vw,20px);letter-spacing:.04em;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:transform .12s}
.rl-hub:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.06)}
.rl-hub:disabled{cursor:default;opacity:.9}
.rl-opts{justify-content:center;gap:8px 18px}
.rl-hist{margin-top:14px;display:grid;gap:6px}
.rl-hist .chip{cursor:default;font-size:13px;padding:4px 10px}
.rl-hist .chip:first-child{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);font-weight:700}
.rl-items{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:440px;overflow-y:auto}
.rl-items li{display:grid;grid-template-columns:36px minmax(0,1fr) 54px 46px 34px;gap:6px;align-items:center}
.rl-items .input{min-height:42px;padding:8px 10px}
.rl-w{text-align:center}
.rl-color{width:36px;height:36px;padding:0;border:0;border-radius:50%;overflow:hidden;cursor:pointer;background:none}
.rl-color::-webkit-color-swatch-wrapper{padding:0}
.rl-color::-webkit-color-swatch{border:2px solid var(--surface);border-radius:50%;box-shadow:0 0 0 1px var(--border)}
.rl-color::-moz-color-swatch{border:none;border-radius:50%}
.rl-pct{font-size:12px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.rl-del{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:18px;line-height:1;cursor:pointer}
.rl-del:hover{color:var(--bad);border-color:var(--bad)}
.rl-pop{position:fixed;inset:0;z-index:60;background:rgba(10,12,20,.55);display:grid;place-items:center;padding:16px;animation:rl-fade .2s}
.rl-pop-card{background:var(--surface);border-radius:20px;padding:26px 22px 20px;width:min(360px,100%);text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.35);animation:rl-pop .35s cubic-bezier(.2,1.4,.4,1)}
.rl-pop-emoji{font-size:46px;line-height:1}
.rl-pop-label{color:var(--muted);margin-top:6px;font-size:14px}
.rl-win{font-size:clamp(28px,8vw,40px);font-weight:900;letter-spacing:-.02em;margin-top:4px;line-height:1.2;color:var(--text);padding:8px 12px;border-radius:14px;background:color-mix(in srgb,var(--c,var(--brand)) 22%,transparent);word-break:break-all}
@keyframes rl-pop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes rl-fade{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.rl-pop,.rl-pop-card,.rl-pointer.flick{animation:none}}
