
.gacha-mask{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.35);display:flex;align-items:flex-end;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.gacha-mask[hidden]{display:none}
.gacha-sheet{width:100%;max-width:520px;max-height:88vh;max-height:88dvh;overflow:auto;-webkit-overflow-scrolling:touch;background:#fffaf7;color:#2a2226;border-radius:22px 22px 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom));box-sizing:border-box}
html[data-theme="dark"] .gacha-sheet{background:#1e1c1f;color:#ece6ea}
.gacha-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.gacha-head b{font-size:17px}
.gacha-x{border:0;background:rgba(127,127,127,.15);color:inherit;width:30px;height:30px;border-radius:50%;font-size:14px}
.gacha-tabs,.gacha-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.gacha-tabs button,.gacha-chips button{border:1px solid rgba(127,127,127,.3);background:transparent;color:inherit;border-radius:999px;padding:5px 12px;font-size:13px}
.gacha-tabs button.on,.gacha-chips button.on{background:#e85d75;border-color:#e85d75;color:#fff}
.gacha-machine{width:190px;margin:4px auto 14px}
.gacha-dome{position:relative;width:190px;height:170px;border-radius:95px 95px 30px 30px;background:radial-gradient(circle at 32% 25%,rgba(255,255,255,.95),rgba(255,255,255,.35) 35%,rgba(210,225,255,.25));border:3px solid rgba(232,93,117,.35);overflow:hidden;box-sizing:border-box}
html[data-theme="dark"] .gacha-dome{background:radial-gradient(circle at 32% 25%,rgba(255,255,255,.25),rgba(255,255,255,.06) 40%,rgba(120,140,200,.1))}
.gacha-ball{position:absolute;width:34px;height:34px;border-radius:50%;overflow:hidden;box-shadow:inset -4px -5px 0 rgba(0,0,0,.12)}
.gacha-ball::after{content:'';position:absolute;left:0;right:0;top:50%;bottom:0;background:rgba(255,255,255,.75)}
.gacha-machine.spin .gacha-ball{animation:gachaJiggle .22s ease-in-out infinite alternate}
@keyframes gachaJiggle{from{transform:translate(-3px,2px) rotate(-14deg)}to{transform:translate(3px,-5px) rotate(16deg)}}
.gacha-base{position:relative;height:74px;margin-top:-4px;background:#e85d75;border-radius:12px 12px 22px 22px;display:flex;align-items:center;justify-content:space-around}
.gacha-knob{width:46px;height:46px;border-radius:50%;background:#fff;border:3px solid #c23f58;position:relative;padding:0;transition:transform .9s cubic-bezier(.3,.7,.3,1)}
.gacha-knob::after{content:'';position:absolute;left:50%;top:5px;bottom:5px;width:8px;margin-left:-4px;border-radius:4px;background:#c23f58}
.gacha-slot{width:44px;height:30px;border-radius:8px;background:#7a2236;box-shadow:inset 0 4px 6px rgba(0,0,0,.35)}
.gacha-go{display:block;margin:0 auto 12px;border:0;background:#e85d75;color:#fff;font-size:16px;font-weight:600;border-radius:999px;padding:10px 34px}
.gacha-go:disabled{opacity:.6}
.gacha-result{display:flex;flex-direction:column;gap:8px}
.gacha-cap{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:14px;background:rgba(232,93,117,.1);animation:gachaPop .45s cubic-bezier(.2,1.4,.4,1) both}
.gacha-cap i{font-style:normal;font-size:12px;opacity:.65;flex:none;padding-top:2px;min-width:2.5em}
.gacha-cap span{flex:1;font-size:15px;line-height:1.45}
.gacha-cap span b{color:#e85d75;font-weight:600}
.gacha-cap button{flex:none;border:0;background:transparent;color:inherit;opacity:.55;font-size:13px}
@keyframes gachaPop{from{opacity:0;transform:scale(.6) translateY(-20px)}to{opacity:1;transform:none}}
.gacha-send{margin-top:6px;border:0;border-radius:12px;padding:11px;background:#2a2226;color:#fff;font-size:15px}
html[data-theme="dark"] .gacha-send{background:#ece6ea;color:#1e1c1f}
.gacha-list{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px}
.gacha-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:rgba(127,127,127,.09);font-size:14px}
.gacha-item span{flex:1}
.gacha-item.secret span{opacity:.6}
.gacha-item button{border:0;background:transparent;color:inherit;opacity:.5;font-size:16px}
.gacha-add{display:flex;gap:8px;position:sticky;bottom:0;padding-top:6px;background:inherit}
.gacha-add textarea{flex:1;min-height:40px;border-radius:10px;border:1px solid rgba(127,127,127,.3);background:transparent;color:inherit;padding:8px 10px;font:inherit;font-size:16px;resize:none}
.gacha-add button{border:0;border-radius:10px;background:#e85d75;color:#fff;padding:0 16px;font-size:15px}
.gacha-tip{font-size:12px;opacity:.6;margin:0 0 6px}
