/* v5o: resurrection + GM roulette */
.rs-fx{position:fixed;left:0;top:0;width:0;height:0;z-index:60;pointer-events:none;--r:24px}
.rs-fx.out{opacity:0;transition:opacity .6s}
.rs-pillar{position:absolute;left:calc(var(--r)*-1.25);width:calc(var(--r)*2.5);bottom:calc(var(--r)*-.4);height:120vh;transform-origin:50% 100%;
  background:linear-gradient(to top,rgba(255,236,170,.95),rgba(255,214,110,.75) 20%,rgba(255,226,140,.35) 60%,rgba(255,240,200,0));
  -webkit-mask:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);mask:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);
  filter:blur(1px);mix-blend-mode:screen;animation:rsPil 2.9s ease-out forwards}
.rs-pillar::after{content:"";position:absolute;left:38%;right:38%;top:0;bottom:0;background:linear-gradient(to top,#fff,rgba(255,255,255,.6) 40%,transparent)}
@keyframes rsPil{0%{transform:scaleX(.05);opacity:0}12%{transform:scaleX(1.15);opacity:1}70%{transform:scaleX(1);opacity:.9}100%{transform:scaleX(.6);opacity:0}}
.rs-glow{position:absolute;left:calc(var(--r)*-2.2);top:calc(var(--r)*-2.2);width:calc(var(--r)*4.4);height:calc(var(--r)*4.4);border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,230,.95),rgba(255,210,100,.55) 35%,rgba(255,200,80,0) 70%);mix-blend-mode:screen;animation:rsGlow 2.9s ease-out forwards}
@keyframes rsGlow{0%{transform:scale(.2);opacity:0}15%{transform:scale(1.1);opacity:1}60%{opacity:.8}100%{transform:scale(1.4);opacity:0}}
.rs-ring{position:absolute;left:calc(var(--r)*-1);top:calc(var(--r)*-1);width:calc(var(--r)*2);height:calc(var(--r)*2);border-radius:50%;border:4px solid #ffe08a;box-shadow:0 0 18px #ffd060,inset 0 0 12px #fff3c0;animation:rsRing 1.3s .25s ease-out forwards;opacity:0}
.rs-ring.b{animation-delay:.6s;border-width:2px}
@keyframes rsRing{0%{transform:scale(.5);opacity:1}100%{transform:scale(4.2);opacity:0}}
.rs-spk,.rs-fth{position:absolute;left:var(--dx);top:0;opacity:0;animation:rsUp 1.8s ease-out forwards}
.rs-spk{width:6px;height:6px;margin:-3px;border-radius:50%;background:#fff6c8;box-shadow:0 0 8px 3px #ffcf55}
.rs-fth{width:14px;height:28px;margin:-14px -7px}.rs-fth svg{width:100%;height:100%;transform:rotate(var(--rt));filter:drop-shadow(0 0 4px #ffd970)}
.rs-fth{animation-name:rsFth}
@keyframes rsUp{0%{transform:translateY(calc(var(--r)*.6)) scale(.4);opacity:0}15%{opacity:1}100%{transform:translateY(calc(var(--r)*-5)) scale(1);opacity:0}}
@keyframes rsFth{0%{transform:translate(0,calc(var(--r)*.4)) rotate(0);opacity:0}15%{opacity:1}50%{transform:translate(12px,calc(var(--r)*-2.2)) rotate(25deg)}100%{transform:translate(-10px,calc(var(--r)*-4.6)) rotate(-20deg);opacity:0}}
.rs-txt{position:absolute;left:0;top:calc(var(--r)*-1.6 - 54px);transform:translateX(-50%);text-align:center;white-space:nowrap;animation:rsTxt 2.9s ease-out forwards;opacity:0}
.rs-txt b{display:block;font:800 28px/1.1 Georgia,'Times New Roman',serif;color:#fff4c4;letter-spacing:.02em;text-shadow:0 0 8px #ffc640,0 0 22px #ffb020,0 2px 0 #7a4b00}
.rs-txt span{display:inline-block;margin-top:3px;padding:2px 10px;border-radius:999px;background:rgba(40,24,0,.6);color:#ffe9a8;font:600 14px/1.4 system-ui,sans-serif;max-width:60vw;overflow:hidden;text-overflow:ellipsis}
@keyframes rsTxt{0%{opacity:0;transform:translate(-50%,14px) scale(.8)}18%{opacity:1;transform:translate(-50%,0) scale(1.06)}28%{transform:translate(-50%,0) scale(1)}82%{opacity:1}100%{opacity:0;transform:translate(-50%,-14px)}}
.rs-fx.lo .rs-pillar{animation-duration:1.6s;filter:none;mix-blend-mode:normal}.rs-fx.lo .rs-glow{display:none}.rs-fx.lo .rs-txt{animation-duration:1.6s}.rs-fx.lo .rs-ring{animation-delay:.1s}
#death.rs-rise{animation:rsRise 1.2s ease-in forwards;pointer-events:none}
@keyframes rsRise{0%{filter:none;opacity:1}50%{filter:brightness(2.4) sepia(.6) saturate(2);opacity:.9}100%{filter:brightness(4);opacity:0}}
.rs-self{position:fixed;inset:0;z-index:9800;pointer-events:none;display:grid;place-items:center}
.rs-self .rs-sl{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(255,250,220,.95),rgba(255,214,120,.55) 40%,rgba(255,200,90,0) 75%);animation:rsSl 2.8s ease-out forwards}
@keyframes rsSl{0%{opacity:0}20%{opacity:1}100%{opacity:.15}}
.rs-sm{position:relative;text-align:center;padding:16px 26px;border-radius:16px;background:rgba(30,18,0,.55);backdrop-filter:blur(3px);animation:rsTxt 2.8s ease-out forwards;transform:translateX(-50%);left:0;opacity:0}
.rs-sm{animation-name:rsSm}@keyframes rsSm{0%{opacity:0;transform:scale(.85)}20%{opacity:1;transform:scale(1.04)}30%{transform:scale(1)}85%{opacity:1}100%{opacity:0}}
.rs-sm b{display:block;font:800 30px/1.2 Georgia,serif;color:#fff4c4;text-shadow:0 0 12px #ffc640}.rs-sm span{display:block;margin-top:6px;color:#ffe9b8;font:500 15px/1.4 system-ui,sans-serif}
.rs-self.out{opacity:0;transition:opacity .8s}.rs-self.lo .rs-sl{animation-duration:1.6s}
@media (prefers-reduced-motion:reduce){.rs-spk,.rs-fth{display:none}.rs-pillar,.rs-glow{animation-duration:1.6s}}
/* roulette dialog */
.rl-dlg{position:fixed;inset:0;z-index:9500;display:grid;place-items:center;background:rgba(0,0,0,.5);padding:12px}
.rl-card{width:min(520px,100%);max-height:calc(100dvh - 24px);overflow:auto;background:var(--panel,#1c1a22);color:var(--text,#eee);border:1px solid var(--line,rgba(255,255,255,.12));border-radius:16px;padding:16px;box-shadow:0 20px 60px rgba(0,0,0,.5);box-sizing:border-box}
.rl-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px}.rl-hd h3{margin:0;flex:1;font-size:19px}.rl-hd>.svic{width:24px;height:24px;color:var(--gold,#e8b04a)}
.rl-l{display:block;font-size:13px;opacity:.9;margin:8px 0}.rl-l input,.rl-l textarea{display:block;width:100%;box-sizing:border-box;margin-top:4px;font:inherit;font-size:15px;padding:8px 10px;border-radius:10px;border:1px solid var(--line,rgba(255,255,255,.18));background:var(--bg2,rgba(0,0,0,.25));color:inherit;resize:vertical}
.rl-pre{display:flex;flex-wrap:wrap;gap:6px}.rl-my{display:inline-flex}.rl-my .btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.rl-del{border-top-left-radius:0;border-bottom-left-radius:0;padding:0 6px}
.rl-n{font-size:12px;opacity:.75}.rl-n.bad{color:#ff8080;opacity:1}
.rl-vis{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0}.rl-vis label{display:flex;align-items:center;gap:6px;cursor:pointer}.rl-vis input{width:16px;height:16px;margin:0}.rl-vis .svic{width:16px;height:16px}
.rl-ft{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.rl-go{font-size:16px;padding:0 20px}
/* roulette wheel overlay */
.rl-ov{position:fixed;inset:0;z-index:9400;display:grid;place-items:center;background:radial-gradient(circle,rgba(0,0,0,.35),rgba(0,0,0,.7));animation:rlIn .25s ease-out}
.rl-ov.out{opacity:0;transition:opacity .3s}@keyframes rlIn{from{opacity:0}}
.rl-box{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:96vw}
.rl-top{text-align:center;color:#fff}.rl-top h3{margin:2px 0;font-size:22px;text-shadow:0 2px 8px #000;max-width:90vw;overflow-wrap:anywhere}.rl-by{font-size:12px;opacity:.8;display:inline-flex;gap:4px;align-items:center}.rl-by .svic{width:14px;height:14px}
.rl-pv{display:inline-flex;gap:5px;align-items:center;font-size:12px;padding:2px 10px;border-radius:999px;background:rgba(120,80,200,.6);color:#fff}.rl-pv .svic{width:14px;height:14px}
.rl-wheel{position:relative;width:min(80vw,60vh,460px);aspect-ratio:1;filter:drop-shadow(0 10px 30px rgba(0,0,0,.6))}
.rl-wheel canvas{display:block;width:100%;height:100%}
.rl-ptr{position:absolute;left:50%;top:-6px;width:0;height:0;margin-left:-15px;border-left:15px solid transparent;border-right:15px solid transparent;border-top:32px solid var(--gold,#e8b04a);filter:drop-shadow(0 3px 3px rgba(0,0,0,.6));transform-origin:50% 0}
.rl-ptr.kick{animation:rlKick .12s ease-out}@keyframes rlKick{40%{transform:rotate(-14deg)}}
.rl-hub{position:absolute;left:50%;top:50%;width:16%;height:16%;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff5d0,var(--gold,#e8b04a) 60%,#7a5410);box-shadow:0 0 0 4px rgba(0,0,0,.25),0 4px 12px rgba(0,0,0,.5);color:#4a3000}
.rl-hub .svic{width:55%;height:55%}
.rl-res{min-height:62px;text-align:center;color:#fff}.rl-res small{display:block;opacity:.75;font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.rl-res b{display:inline-block;font:800 30px/1.2 Georgia,serif;color:#fff4c4;text-shadow:0 0 14px var(--gold,#e8b04a);animation:rlPop .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes rlPop{from{transform:scale(.3);opacity:0}}
.rl-ov.won .rl-wheel{animation:rlWon 1s ease-out}@keyframes rlWon{30%{filter:drop-shadow(0 0 40px var(--gold,#e8b04a))}}
.rl-ov.lo,.rl-ov.lo *{animation:none!important}
.btn .svic-wheel{width:17px;height:17px}
@media (max-width:600px){.rl-top h3{font-size:18px}.rl-res b{font-size:24px}.rl-card{padding:12px}}
/* toolbar fit: roulette is icon-only on narrower desktops */
@media (max-width:1599px){.roulb .rlbl{display:none}.roulb{padding-left:8px;padding-right:8px}}
@media (min-width:1000px) and (max-width:1365px){.tbar{gap:6px}.tbar>.seg>button{padding-left:10px;padding-right:10px}.tbar>.roulb{padding-left:6px;padding-right:6px}}
/* v5o3: lock / adjust button for attached items (floats next to the selection) */
.att-lkb{position:fixed;z-index:60;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px 0 8px;border-radius:13px;border:1px solid var(--gold2,#f0c060);background:rgba(18,14,28,.92);color:#ffe7a8;font:700 12px/1 system-ui,sans-serif;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.45);white-space:nowrap}
.att-lkb:hover{background:rgba(48,36,20,.95)}
.att-lkb.on{color:#c8f0ff;border-color:#7fb8d8;background:rgba(14,26,36,.92)}
.att-lkb[hidden]{display:none}
.att-lkb svg{flex:none}
@media (pointer:coarse){.att-lkb{height:34px;border-radius:17px;font-size:13px;padding:0 12px}}
