.vv{--bg1:#4c1d95;--bg2:#0f0a2a;--accent:#fcd34d}
.vv-note{color:var(--mute);font-size:14px}
.vv-door-wrap{position:relative;display:flex;flex-direction:column;align-items:center;margin:4px 0}
.vv-door{width:min(52vw,200px);height:min(52vw,200px);filter:drop-shadow(0 10px 16px rgba(0,0,0,.6))}
.vv-door .bolt{transition:transform .5s cubic-bezier(.4,1.6,.5,1)}
.vv-door .dial{transition:transform .7s cubic-bezier(.3,1.3,.5,1)}
.vv-door.open .door-face{transform:scale(.1,1) translateX(0);transform-origin:-100px 0;transition:transform 1s .3s}
.vv-door .gold{opacity:0;transition:opacity .6s .6s}.vv-door.open .gold{opacity:1}
.vv-count{margin-top:-6px;font-weight:700;color:var(--mute);font-size:14px}
.vv-word{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:12px 0}
.vv-t{width:clamp(30px,10vw,46px);height:clamp(42px,12vw,58px);display:flex;align-items:center;justify-content:center;border-radius:10px;font:900 clamp(22px,7.5vw,32px) Georgia,serif;text-transform:uppercase;background:linear-gradient(160deg,#fcd34d,#d97706);color:#2e1065;box-shadow:0 4px 0 #92400e,0 6px 10px rgba(0,0,0,.4)}
.vv-t.slot{background:rgba(255,255,255,.07);color:var(--accent);box-shadow:inset 0 0 0 2px rgba(252,211,77,.55);animation:vvpulse 1.6s ease-in-out infinite}
.vv-t.hintd{background:linear-gradient(160deg,#a7f3d0,#34d399);box-shadow:0 4px 0 #047857}
.vv-t.ok{animation:vvok .45s backwards}
@keyframes vvpulse{50%{box-shadow:inset 0 0 0 2px rgba(252,211,77,1),0 0 14px rgba(252,211,77,.5)}}
@keyframes vvok{from{transform:translateY(-14px) rotate(-8deg);opacity:0}}
.vv-word.shake{animation:vvshake .3s}
@keyframes vvshake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.vv-form{display:flex;gap:8px;max-width:420px;margin:8px auto}
.vv-form input{flex:1;min-width:0;font:inherit;font-size:20px;letter-spacing:2px;text-transform:lowercase;padding:10px 12px;border-radius:12px;border:1px solid var(--card-br);background:rgba(0,0,0,.35);color:#fff;min-height:48px}
.vv-msg{text-align:center;color:var(--mute);min-height:24px}
.vv .kit-row{justify-content:center}
.vv-big{font-size:34px;font-weight:900;color:var(--accent);margin:4px 0}
.vv-res{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
.vv-res span{padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.12);font-size:13px;font-weight:700;text-transform:uppercase}
.vv-res span.m{background:rgba(248,113,113,.2);color:#fecaca}
