/* ==========================================================================
   Wish simulator — scoped under .tool-root[data-tool="wish-simulator"]
   Theme-token driven; per-game flourishes via .theme-<game>.
   ========================================================================== */
.tool-root[data-tool="wish-simulator"] {
  --r5c: var(--r5, #ffc35c);
  --r4c: var(--r4, #c58bff);
  --r3c: var(--r3, #6fb4ff);
}
.tool-root[data-tool="wish-simulator"] .ws { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1rem, 2.4vw, 1.4rem); }
.tool-root[data-tool="wish-simulator"] .ws > * { min-width: 0; }
.tool-root[data-tool="wish-simulator"] [data-tier="5"] { --rc: var(--r5c); }
.tool-root[data-tool="wish-simulator"] [data-tier="4"] { --rc: var(--r4c); }
.tool-root[data-tool="wish-simulator"] [data-tier="3"] { --rc: var(--r3c); }
.tool-root[data-tool="wish-simulator"] .ws-hint { color: var(--text-3); font-size: .8rem; margin: .45rem 0 0; line-height: 1.45; display: flex; gap: .4rem; align-items: flex-start; }
.tool-root[data-tool="wish-simulator"] .ws-hint .i { width: 15px; height: 15px; margin-top: .15rem; color: var(--accent); }
.tool-root[data-tool="wish-simulator"] .ws-empty { display: flex; align-items: center; gap: .6rem; color: var(--text-2); margin: 0; padding: 1.2rem; border: 1px dashed var(--border-strong); border-radius: var(--radius); }
.tool-root[data-tool="wish-simulator"] .ws-empty .i { color: var(--accent); width: 22px; height: 22px; }
.tool-root[data-tool="wish-simulator"] .ws-glyph { display: grid; place-items: center; width: 100%; height: 100%; color: var(--rc, var(--accent)); background: radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--rc, var(--accent)) 26%, transparent), transparent 70%); }
.tool-root[data-tool="wish-simulator"] .ws-glyph .i { width: 42%; height: 42%; }
.tool-root[data-tool="wish-simulator"] .ws-glyph img { width: 58%; height: 58%; object-fit: contain; opacity: .9; filter: drop-shadow(0 0 8px color-mix(in srgb, var(--rc, var(--accent)) 60%, transparent)); }

/* ---------- banner tabs ---------- */
.tool-root[data-tool="wish-simulator"] .ws-tabs { display: flex; gap: .6rem; overflow-x: auto; scrollbar-width: none; padding: .2rem .1rem .4rem; scroll-snap-type: x proximity; }
.tool-root[data-tool="wish-simulator"] .ws-tabs::-webkit-scrollbar { display: none; }
.tool-root[data-tool="wish-simulator"] .ws-tab {
  flex: 1 0 200px; display: flex; align-items: center; gap: .7rem; padding: .55rem .8rem .55rem .55rem; text-align: left;
  border-radius: var(--radius); background: var(--surface); border: 1px solid var(--border); color: var(--text-2);
  scroll-snap-align: start; transition: border-color .25s, background .25s, transform .25s var(--ease), box-shadow .25s;
}
.tool-root[data-tool="wish-simulator"] .ws-tab:hover { border-color: var(--border-strong); color: var(--text); transform: translateY(-2px); }
.tool-root[data-tool="wish-simulator"] .ws-tab.is-active { color: var(--text); border-color: color-mix(in srgb, var(--accent) 70%, transparent); background: linear-gradient(120deg, color-mix(in srgb, var(--accent) 18%, var(--surface-solid)), var(--surface)); box-shadow: 0 10px 30px -14px var(--glow), inset 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-tab-thumb { width: 46px; height: 46px; flex: none; border-radius: calc(var(--radius) - 4px); overflow: hidden; background: var(--surface-2); display: grid; place-items: center; }
.tool-root[data-tool="wish-simulator"] .ws-tab-thumb img { width: 100%; height: 100%; object-fit: cover; }
.tool-root[data-tool="wish-simulator"] .ws-tab-thumb > .i { color: var(--accent); }
.tool-root[data-tool="wish-simulator"] .ws-tab-thumb > .ws-glyph, .tool-root[data-tool="wish-simulator"] .ws-mini > .ws-glyph, .tool-root[data-tool="wish-simulator"] .ws-coll-art > .ws-glyph, .tool-root[data-tool="wish-simulator"] .ws-h-art > .ws-glyph { width: 100%; height: 100%; display: grid; }
.tool-root[data-tool="wish-simulator"] .ws-tab-thumb { display: block; }
.tool-root[data-tool="wish-simulator"] .ws-tab-thumb > .i { display: block; margin: 13px; }
.tool-root[data-tool="wish-simulator"] .ws-mini, .tool-root[data-tool="wish-simulator"] .ws-coll-art, .tool-root[data-tool="wish-simulator"] .ws-h-art { display: block; }
.tool-root[data-tool="wish-simulator"] .ws-tab-text { display: grid; min-width: 0; line-height: 1.25; }
.tool-root[data-tool="wish-simulator"] .ws-tab-text b { font-size: .95rem; }
.tool-root[data-tool="wish-simulator"] .ws-tab-text small { font-size: .74rem; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- top: banner + pity ---------- */
.tool-root[data-tool="wish-simulator"] .ws-top { display: grid; gap: clamp(1rem, 2.4vw, 1.4rem); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 980px) { .tool-root[data-tool="wish-simulator"] .ws-top { grid-template-columns: minmax(0, 1.9fr) minmax(300px, 1fr); } }

.tool-root[data-tool="wish-simulator"] .ws-bn {
  --el: var(--accent);
  position: relative; isolation: isolate; overflow: hidden; min-height: 360px; height: 100%;
  border-radius: var(--radius-lg); border: 1px solid color-mix(in srgb, var(--el) 35%, var(--border));
  background: var(--surface-solid); display: flex;
}
.tool-root[data-tool="wish-simulator"] .ws-bn-bg {
  position: absolute; inset: 0; z-index: -2;
  background:
    radial-gradient(70% 90% at 85% 30%, color-mix(in srgb, var(--el) 38%, transparent), transparent 70%),
    radial-gradient(60% 60% at 0% 100%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%),
    linear-gradient(135deg, color-mix(in srgb, var(--el) 14%, var(--bg-2)), var(--bg) 80%);
}
.tool-root[data-tool="wish-simulator"] .ws-bn-bg::after { content: ""; position: absolute; inset: 0; background: radial-gradient(rgba(255,255,255,.35) 1px, transparent 1.5px) 0 0 / 22px 22px; opacity: .12; mask-image: linear-gradient(90deg, transparent, #000 60%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%); }
.tool-root[data-tool="wish-simulator"] .ws-bn-art { position: absolute; z-index: -1; inset: 0 0 0 30%; display: grid; place-items: center; pointer-events: none; }
.tool-root[data-tool="wish-simulator"] .ws-bn-splash { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 18%; mask-image: linear-gradient(90deg, transparent 0%, #000 38%); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%); animation: ws-drift 18s ease-in-out infinite alternate; }
@keyframes ws-drift { from { transform: scale(1.04) translateX(0); } to { transform: scale(1.1) translateX(-2%); } }
.tool-root[data-tool="wish-simulator"] .ws-bn-medal {
  position: relative; width: clamp(150px, 26vw, 250px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; margin-left: 20%;
  background: radial-gradient(circle, color-mix(in srgb, var(--el) 35%, transparent), transparent 70%);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--el) 60%, transparent), 0 0 0 10px color-mix(in srgb, var(--el) 10%, transparent), 0 0 80px -10px var(--el);
  animation: ws-float 6s ease-in-out infinite;
}
.tool-root[data-tool="wish-simulator"] .ws-bn-medal > img { width: 100%; height: 100%; object-fit: cover; }
.tool-root[data-tool="wish-simulator"] .ws-bn[data-type="weapon"] .ws-bn-medal > img { object-fit: contain; padding: 12%; filter: drop-shadow(0 8px 20px rgba(0,0,0,.5)); }
.tool-root[data-tool="wish-simulator"] .ws-bn-medals { display: flex; gap: 1rem; margin-left: 12%; }
.tool-root[data-tool="wish-simulator"] .ws-bn-medals[data-n="2"] .ws-bn-medal { width: clamp(120px, 18vw, 190px); margin: 0; }
.tool-root[data-tool="wish-simulator"] .ws-bn-medals[data-n="2"] .ws-bn-medal:last-child { animation-delay: -3s; transform: translateY(18px); }
@keyframes ws-float { 50% { translate: 0 -10px; } }
.tool-root[data-tool="wish-simulator"] .ws-bn-collage { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; margin-left: 18%; transform: rotate(-6deg); }
.tool-root[data-tool="wish-simulator"] .ws-bn-collage span { width: clamp(52px, 8vw, 84px); aspect-ratio: 1; border-radius: var(--radius); overflow: hidden; background: var(--surface-2); box-shadow: 0 0 0 1px color-mix(in srgb, var(--r5c) 45%, transparent), 0 10px 30px -12px var(--r5c); opacity: .92; animation: ws-float 7s ease-in-out infinite; animation-delay: calc(var(--k) * -.8s); }
.tool-root[data-tool="wish-simulator"] .ws-bn-collage img { width: 100%; height: 100%; object-fit: cover; }
.tool-root[data-tool="wish-simulator"] .ws-bn-body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: .8rem; padding: clamp(1.2rem, 3vw, 2rem); max-width: 560px; }
.tool-root[data-tool="wish-simulator"] .ws-bn-body .kicker { margin: 0; }
.tool-root[data-tool="wish-simulator"] .ws-bn-title { font-size: clamp(1.15rem, 2.4vw, 1.6rem); text-shadow: 0 2px 16px rgba(0,0,0,.6); }
.tool-root[data-tool="wish-simulator"] .ws-bn-feat { display: grid; gap: .45rem; justify-items: start; }
.tool-root[data-tool="wish-simulator"] .ws-bn-boost { display: inline-flex; align-items: center; gap: .35rem; padding: .22rem .65rem; border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #1a1300; background: linear-gradient(100deg, #ffe59a, var(--r5c)); box-shadow: 0 0 20px -4px var(--r5c); }
.tool-root[data-tool="wish-simulator"] .ws-bn-boost .i { width: 14px; height: 14px; }
.tool-root[data-tool="wish-simulator"] .ws-bn-name { margin: 0; font-family: var(--font-display); font-weight: var(--display-weight); text-transform: var(--display-transform); letter-spacing: var(--display-spacing); font-size: clamp(2rem, 5.2vw, 3.4rem); line-height: 1.02; color: #fff; text-shadow: 0 4px 30px rgba(0,0,0,.6), 0 0 40px color-mix(in srgb, var(--el) 45%, transparent); overflow-wrap: anywhere; }
.tool-root[data-tool="wish-simulator"] .ws-bn[data-type="weapon"] .ws-bn-name, .tool-root[data-tool="wish-simulator"] .ws-bn[data-type="standard"] .ws-bn-name { font-size: clamp(1.5rem, 3.6vw, 2.3rem); }
.tool-root[data-tool="wish-simulator"] .ws-bn-name a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
.tool-root[data-tool="wish-simulator"] .ws-bn-sep { color: var(--text-3); }
.tool-root[data-tool="wish-simulator"] .ws-bn-sub { margin: 0; color: var(--text-2); font-weight: 600; text-shadow: 0 2px 10px rgba(0,0,0,.7); }
.tool-root[data-tool="wish-simulator"] .ws-bn-four { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; }
.tool-root[data-tool="wish-simulator"] .ws-bn-four-label { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--r4c); }
.tool-root[data-tool="wish-simulator"] .ws-bn-minis { display: flex; gap: .4rem; flex-wrap: wrap; }
.tool-root[data-tool="wish-simulator"] .ws-mini { width: 42px; height: 42px; border-radius: 10px; overflow: hidden; background: color-mix(in srgb, var(--rc) 22%, var(--surface-2)); box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--rc) 70%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-mini img { width: 100%; height: 100%; object-fit: cover; }
.tool-root[data-tool="wish-simulator"] .ws-bn-controls { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); margin-top: auto; padding: .8rem; border-radius: var(--radius); background: color-mix(in srgb, var(--bg) 62%, transparent); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid var(--border); }
.tool-root[data-tool="wish-simulator"] .ws-field { gap: .3rem; }
.tool-root[data-tool="wish-simulator"] .ws-field .field-label { font-size: .8rem; display: inline-flex; align-items: center; gap: .35rem; color: var(--text-2); }
.tool-root[data-tool="wish-simulator"] .ws-field .field-label .i { width: 15px; height: 15px; color: var(--accent); }
.tool-root[data-tool="wish-simulator"] .ws-field .select { width: 100%; }
@media (max-width: 640px) {
  .tool-root[data-tool="wish-simulator"] .ws-bn { min-height: 0; flex-direction: column; }
  .tool-root[data-tool="wish-simulator"] .ws-bn-art { position: relative; inset: auto; height: 200px; margin-bottom: -8px; }
  .tool-root[data-tool="wish-simulator"] .ws-bn-art:has(.ws-bn-splash) { height: 230px; margin-bottom: -80px; }
  .tool-root[data-tool="wish-simulator"] .ws-bn-splash { mask-image: linear-gradient(180deg, #000 55%, transparent); -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent); object-position: 50% 15%; }
  .tool-root[data-tool="wish-simulator"] .ws-bn-medal, .tool-root[data-tool="wish-simulator"] .ws-bn-medals, .tool-root[data-tool="wish-simulator"] .ws-bn-collage { margin-left: 0; }
  .tool-root[data-tool="wish-simulator"] .ws-bn-medal { width: 160px; }
  .tool-root[data-tool="wish-simulator"] .ws-bn-medals[data-n="2"] .ws-bn-medal { width: 120px; }
  .tool-root[data-tool="wish-simulator"] .ws-bn-collage span { width: 52px; }
}

/* ---------- pity panel ---------- */
.tool-root[data-tool="wish-simulator"] .ws-pity { display: flex; flex-direction: column; }
.tool-root[data-tool="wish-simulator"] .ws-pity > div { display: grid; gap: 1rem; }
.tool-root[data-tool="wish-simulator"] .ws-meter-head { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; font-size: .88rem; color: var(--text-2); margin-bottom: .45rem; }
.tool-root[data-tool="wish-simulator"] .ws-meter-head b { font-family: var(--font-mono); font-size: 1.05rem; color: var(--text); }
.tool-root[data-tool="wish-simulator"] .ws-meter-bar { position: relative; height: 12px; border-radius: 999px; background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px var(--border); overflow: visible; }
.tool-root[data-tool="wish-simulator"] .ws-meter-fill { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: linear-gradient(90deg, color-mix(in srgb, var(--r5c) 45%, var(--accent)), var(--r5c)); box-shadow: 0 0 14px -2px var(--r5c); transition: width .6s var(--ease); }
.tool-root[data-tool="wish-simulator"] .ws-meter.is-soft .ws-meter-fill { background: linear-gradient(90deg, var(--r5c), #fff3c4, var(--r5c)); background-size: 200% 100%; animation: ws-sheen 1.6s linear infinite; }
@keyframes ws-sheen { to { background-position: -200% 0; } }
.tool-root[data-tool="wish-simulator"] .ws-meter-soft { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--text); opacity: .55; border-radius: 2px; }
.tool-root[data-tool="wish-simulator"] .ws-meter-soft::after { content: ""; position: absolute; top: -5px; left: -3px; width: 8px; height: 8px; background: var(--r5c); transform: rotate(45deg); }
.tool-root[data-tool="wish-simulator"] .ws-segs { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; }
.tool-root[data-tool="wish-simulator"] .ws-segs i { height: 10px; border-radius: 3px; background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px var(--border); transition: background .3s; }
.tool-root[data-tool="wish-simulator"] .ws-segs i.is-soft { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--r4c) 50%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-segs i.is-on { background: var(--r4c); box-shadow: 0 0 8px -1px var(--r4c); }
.tool-root[data-tool="wish-simulator"] .ws-row { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; font-size: .88rem; }
.tool-root[data-tool="wish-simulator"] .ws-row-label { display: inline-flex; align-items: center; gap: .4rem; color: var(--text-2); }
.tool-root[data-tool="wish-simulator"] .ws-row-label .i { width: 16px; height: 16px; color: var(--accent); }
.tool-root[data-tool="wish-simulator"] .ws-state { display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .65rem; border-radius: 999px; font-size: .8rem; font-weight: 700; background: rgba(255,255,255,.06); border: 1px solid var(--border); }
.tool-root[data-tool="wish-simulator"] .ws-state .i { width: 14px; height: 14px; }
.tool-root[data-tool="wish-simulator"] .ws-state.is-good { color: var(--success); border-color: color-mix(in srgb, var(--success) 45%, transparent); background: color-mix(in srgb, var(--success) 12%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-state.is-coin { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-radiance { padding: .7rem; border-radius: var(--radius); background: linear-gradient(120deg, color-mix(in srgb, var(--r5c) 12%, transparent), transparent); border: 1px solid color-mix(in srgb, var(--r5c) 25%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-pips { display: inline-flex; gap: 6px; }
.tool-root[data-tool="wish-simulator"] .ws-pips i { width: 14px; height: 14px; transform: rotate(45deg); border-radius: 3px; border: 1.5px solid color-mix(in srgb, var(--r5c) 70%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-pips i.is-on { background: var(--r5c); box-shadow: 0 0 10px var(--r5c); }

/* ---------- actions ---------- */
.tool-root[data-tool="wish-simulator"] .ws-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.tool-root[data-tool="wish-simulator"] .ws-actions-opts { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; }
.tool-root[data-tool="wish-simulator"] .ws-actions-pull { display: flex; gap: .8rem; flex-wrap: wrap; margin-left: auto; }
.tool-root[data-tool="wish-simulator"] .ws-switch { display: inline-flex; align-items: center; gap: .55rem; cursor: pointer; font-size: .88rem; font-weight: 600; color: var(--text-2); padding: .3rem .4rem; }
.tool-root[data-tool="wish-simulator"] .ws-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tool-root[data-tool="wish-simulator"] .ws-switch-ui { width: 40px; height: 22px; border-radius: 999px; background: rgba(255,255,255,.12); position: relative; transition: background .25s; box-shadow: inset 0 0 0 1px var(--border-strong); }
.tool-root[data-tool="wish-simulator"] .ws-switch-ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--text-2); transition: transform .25s var(--ease), background .25s; }
.tool-root[data-tool="wish-simulator"] .ws-switch input:checked + .ws-switch-ui { background: color-mix(in srgb, var(--accent) 55%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-switch input:checked + .ws-switch-ui::after { transform: translateX(18px); background: #fff; }
.tool-root[data-tool="wish-simulator"] .ws-switch input:focus-visible + .ws-switch-ui { outline: 2px solid var(--accent); outline-offset: 3px; }
.tool-root[data-tool="wish-simulator"] .ws-pull {
  position: relative; isolation: isolate; overflow: hidden; min-width: 190px; min-height: 64px;
  display: grid; justify-items: center; align-content: center; gap: .1rem; padding: .55rem 1.6rem;
  border-radius: 999px; color: var(--accent-ink); font-weight: 800;
  background: linear-gradient(120deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--accent-2)));
  box-shadow: 0 12px 30px -12px var(--glow), inset 0 1px 0 rgba(255,255,255,.35);
  transition: transform .2s var(--ease), box-shadow .25s, filter .2s;
}
.tool-root[data-tool="wish-simulator"] .ws-pull::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, transparent 30%, rgba(255,255,255,.5) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s var(--ease); }
.tool-root[data-tool="wish-simulator"] .ws-pull:hover { transform: translateY(-2px); box-shadow: 0 16px 40px -10px var(--glow); }
.tool-root[data-tool="wish-simulator"] .ws-pull:hover::after { transform: translateX(120%); }
.tool-root[data-tool="wish-simulator"] .ws-pull:active { transform: scale(.98); }
.tool-root[data-tool="wish-simulator"] .ws-pull-label { font-size: 1.02rem; line-height: 1.15; }
.tool-root[data-tool="wish-simulator"] .ws-pull-cost { font-size: .78rem; font-weight: 700; opacity: .85; }
.tool-root[data-tool="wish-simulator"] .ws-pull small { font-size: .68rem; font-weight: 600; opacity: .65; }
@media (max-width: 640px) {
  .tool-root[data-tool="wish-simulator"] .ws-actions-pull { width: 100%; margin: 0; }
  .tool-root[data-tool="wish-simulator"] .ws-pull { flex: 1 1 0; min-width: 0; padding-inline: .8rem; }
}

/* ---------- cards ---------- */
.tool-root[data-tool="wish-simulator"] .ws-grid { display: grid; gap: .6rem; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tool-root[data-tool="wish-simulator"] .ws-grid[data-count="1"] { grid-template-columns: minmax(0, 170px); }
@media (min-width: 1000px) { .tool-root[data-tool="wish-simulator"] .ws-grid[data-count="10"] { grid-template-columns: repeat(10, minmax(0, 1fr)); } }
.tool-root[data-tool="wish-simulator"] .ws-card {
  position: relative; margin: 0; aspect-ratio: 3 / 4; overflow: hidden; isolation: isolate;
  border-radius: var(--radius); background: linear-gradient(180deg, color-mix(in srgb, var(--rc) 16%, #10121d), color-mix(in srgb, var(--rc) 58%, #151726));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--rc) 55%, transparent), 0 12px 30px -16px var(--rc);
}
.tool-root[data-tool="wish-simulator"] .ws-card[data-tier="5"] { box-shadow: 0 0 0 1.5px var(--rc), 0 0 26px -6px var(--rc), 0 12px 30px -12px var(--rc); }
.tool-root[data-tool="wish-simulator"] .ws-card-art { position: absolute; inset: 0; z-index: -1; }
.tool-root[data-tool="wish-simulator"] .ws-card-art > img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.tool-root[data-tool="wish-simulator"] .ws-card[data-kind="equip"] .ws-card-art > img, .tool-root[data-tool="wish-simulator"] .ws-card[data-kind="misc"] .ws-card-art > img { object-fit: contain; padding: 12% 12% 30%; filter: drop-shadow(0 6px 14px rgba(0,0,0,.55)); }
.tool-root[data-tool="wish-simulator"] .ws-card .ws-glyph { padding-bottom: 24%; }
.tool-root[data-tool="wish-simulator"] .ws-card[data-tier="5"]::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,.35) 50%, transparent 65%); background-size: 250% 100%; animation: ws-sheen 3.2s ease-in-out infinite; mix-blend-mode: overlay; }
.tool-root[data-tool="wish-simulator"] .ws-card figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.4rem .45rem .45rem; display: grid; gap: .15rem; justify-items: center; text-align: center; background: linear-gradient(180deg, transparent, rgba(0,0,0,.82) 55%); }
.tool-root[data-tool="wish-simulator"] .ws-card figcaption b { font-size: .74rem; line-height: 1.2; font-weight: 700; color: #fff; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.tool-root[data-tool="wish-simulator"] .ws-card .rarity i { width: 10px; height: 10px; }
.tool-root[data-tool="wish-simulator"] .ws-card .rank-badge { min-width: 20px; height: 18px; font-size: .7rem; }
.tool-root[data-tool="wish-simulator"] .ws-card-el { position: absolute; top: .35rem; left: .35rem; width: 20px; height: 20px; filter: drop-shadow(0 1px 3px rgba(0,0,0,.8)); z-index: 1; }
.tool-root[data-tool="wish-simulator"] .ws-card-tag { position: absolute; top: .35rem; right: .35rem; z-index: 1; padding: .1rem .4rem; border-radius: 6px; font-size: .64rem; font-weight: 800; letter-spacing: .04em; color: #fff; background: rgba(0,0,0,.6); border: 1px solid rgba(255,255,255,.2); }
.tool-root[data-tool="wish-simulator"] .ws-card-tag.is-new { color: #1a1300; background: linear-gradient(100deg, #fff1b8, var(--r5c)); border-color: transparent; }
/* 5★ outcome ribbon ("50/50 won · pity 74") */
.tool-root[data-tool="wish-simulator"] .ws-card-out {
  position: absolute; z-index: 1; left: 50%; bottom: 3.1rem; transform: translateX(-50%); max-width: calc(100% - .5rem);
  width: max-content; padding: .14rem .45rem; border-radius: 8px; font-size: .6rem; font-weight: 800; line-height: 1.25; text-align: center; text-wrap: balance;
  color: #fff; background: rgba(0,0,0,.62); border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.tool-root[data-tool="wish-simulator"] .ws-card-out.ws-out--w, .tool-root[data-tool="wish-simulator"] .ws-card-out.ws-out--g { color: #c9ffd9; border-color: color-mix(in srgb, var(--success) 70%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-card-out.ws-out--l { color: #ffd0d0; border-color: color-mix(in srgb, var(--danger) 70%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-card-out.ws-out--r, .tool-root[data-tool="wish-simulator"] .ws-card-out.ws-out--p { color: #1a1300; background: linear-gradient(100deg, #fff1b8, var(--r5c)); border-color: transparent; }
.tool-root[data-tool="wish-simulator"] .ws-card--big .ws-card-out { font-size: .8rem; bottom: 4.2rem; }
@media (max-width: 560px) {
  /* compact cards: 5 per row on phones — keep art, stars and short tags readable */
  .tool-root[data-tool="wish-simulator"] .ws-grid, .tool-root[data-tool="wish-simulator"] .ws-res-grid { gap: .35rem; }
  .tool-root[data-tool="wish-simulator"] .ws-card { aspect-ratio: 1 / 1.75; }
  .tool-root[data-tool="wish-simulator"] .ws-card--big { aspect-ratio: 3 / 4; }
  .tool-root[data-tool="wish-simulator"] .ws-card:not(.ws-card--big) figcaption { padding: 1rem .2rem .3rem; gap: .1rem; }
  .tool-root[data-tool="wish-simulator"] .ws-card:not(.ws-card--big) figcaption b { font-size: .56rem !important; overflow-wrap: normal; word-break: normal; hyphens: auto; -webkit-hyphens: auto; }
  .tool-root[data-tool="wish-simulator"] .ws-card:not(.ws-card--big)[data-tier="3"] figcaption b { display: none; }
  .tool-root[data-tool="wish-simulator"] .ws-card:not(.ws-card--big) .rarity i { width: 7px; height: 7px; }
  .tool-root[data-tool="wish-simulator"] .ws-card:not(.ws-card--big) .rank-badge { min-width: 16px; height: 15px; font-size: .6rem; }
  .tool-root[data-tool="wish-simulator"] .ws-card[data-kind="equip"]:not(.ws-card--big) .ws-card-art > img, .tool-root[data-tool="wish-simulator"] .ws-card[data-kind="misc"]:not(.ws-card--big) .ws-card-art > img { padding: 14% 8% 34%; }
  .tool-root[data-tool="wish-simulator"] .ws-card:not(.ws-card--big) .ws-card-tag { top: .2rem; right: .2rem; padding: .02rem .25rem; font-size: .5rem; letter-spacing: 0; border-radius: 4px; }
  .tool-root[data-tool="wish-simulator"] .ws-card:not(.ws-card--big) .ws-card-el { width: 14px; height: 14px; top: .2rem; left: .2rem; }
  .tool-root[data-tool="wish-simulator"] .ws-card:not(.ws-card--big) .ws-card-out { display: none; }
}
.tool-root[data-tool="wish-simulator"] .ws-grid.is-fresh .ws-card { animation: ws-pop .45s var(--ease-spring) backwards; animation-delay: calc(var(--i) * 45ms); }
@keyframes ws-pop { from { opacity: 0; transform: translateY(10px) scale(.94); } }

/* ---------- stats ---------- */
.tool-root[data-tool="wish-simulator"] .ws-duo { display: grid; gap: clamp(1rem, 2.4vw, 1.4rem); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 980px) { .tool-root[data-tool="wish-simulator"] .ws-duo { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.tool-root[data-tool="wish-simulator"] .ws-scope { margin: -.4rem 0 .8rem; color: var(--text-3); font-size: .82rem; }
.tool-root[data-tool="wish-simulator"] .ws-scope b { color: var(--text); }
.tool-root[data-tool="wish-simulator"] .ws-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(135px, 1fr)); gap: .6rem; margin: 0; }
.tool-root[data-tool="wish-simulator"] .ws-tile { padding: .7rem .8rem; border-radius: var(--radius); background: rgba(255,255,255,.04); border: 1px solid var(--border); display: grid; align-content: start; gap: .1rem; min-width: 0; }
.tool-root[data-tool="wish-simulator"] .ws-tile[data-tier] { border-color: color-mix(in srgb, var(--rc) 40%, transparent); background: linear-gradient(160deg, color-mix(in srgb, var(--rc) 12%, transparent), transparent); }
.tool-root[data-tool="wish-simulator"] .ws-tile dt { font-size: .74rem; color: var(--text-3); font-weight: 600; }
.tool-root[data-tool="wish-simulator"] .ws-tile dd { margin: 0; font-family: var(--font-mono); font-size: 1.3rem; font-weight: 700; color: var(--text); overflow-wrap: anywhere; }
.tool-root[data-tool="wish-simulator"] .ws-tile[data-tier] dd { color: var(--rc); }
.tool-root[data-tool="wish-simulator"] .ws-tile small { font-size: .72rem; color: var(--text-3); overflow-wrap: anywhere; }
.tool-root[data-tool="wish-simulator"] .ws-sub { display: flex; align-items: center; gap: .45rem; font-size: .95rem; margin: 1.2rem 0 .6rem; font-family: var(--font-body); text-transform: none; letter-spacing: 0; }
.tool-root[data-tool="wish-simulator"] .ws-sub .i { color: var(--r5c); width: 18px; height: 18px; }
.tool-root[data-tool="wish-simulator"] .ws-luck-head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.tool-root[data-tool="wish-simulator"] .ws-luck-head b { font-family: var(--font-display); font-size: 1.15rem; text-transform: var(--display-transform); letter-spacing: var(--display-spacing); }
.tool-root[data-tool="wish-simulator"] .ws-luck[data-luck="5"] .ws-luck-head b { color: var(--r5c); text-shadow: 0 0 18px color-mix(in srgb, var(--r5c) 60%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-luck[data-luck="4"] .ws-luck-head b { color: var(--success); }
.tool-root[data-tool="wish-simulator"] .ws-luck[data-luck="2"] .ws-luck-head b, .tool-root[data-tool="wish-simulator"] .ws-luck[data-luck="1"] .ws-luck-head b { color: var(--danger); }
.tool-root[data-tool="wish-simulator"] .ws-luck-stars { color: var(--r5c); letter-spacing: .1em; }
.tool-root[data-tool="wish-simulator"] .ws-luck-bar { position: relative; height: 10px; margin: .7rem 0 .3rem; border-radius: 999px; background: linear-gradient(90deg, var(--danger), #f5b74a 35%, #e6e6e6 50%, var(--success) 70%, var(--r5c)); opacity: .9; }
.tool-root[data-tool="wish-simulator"] .ws-luck-bar span { position: absolute; top: 50%; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--bg); box-shadow: 0 0 0 2px #fff, 0 0 14px rgba(255,255,255,.6); transform: translate(-50%, -50%); transition: left .6s var(--ease); }
.tool-root[data-tool="wish-simulator"] .ws-luck-scale { display: flex; justify-content: space-between; font-size: .7rem; color: var(--text-3); }
.tool-root[data-tool="wish-simulator"] .ws-total { margin: 1rem 0 0; padding-top: .8rem; border-top: 1px solid var(--border); font-size: .82rem; color: var(--text-2); }

/* ---------- collection ---------- */
.tool-root[data-tool="wish-simulator"] .ws-coll { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .5rem; max-height: 420px; overflow-y: auto; padding: .15rem; scrollbar-width: thin; }
.tool-root[data-tool="wish-simulator"] .ws-coll-item { display: flex; align-items: center; gap: .5rem; padding: .35rem .5rem .35rem .35rem; border-radius: var(--radius); background: linear-gradient(90deg, color-mix(in srgb, var(--rc) 18%, transparent), rgba(255,255,255,.03)); border: 1px solid color-mix(in srgb, var(--rc) 35%, transparent); min-width: 0; }
.tool-root[data-tool="wish-simulator"] .ws-coll-art { width: 36px; height: 36px; flex: none; border-radius: 8px; overflow: hidden; background: var(--surface-2); }
.tool-root[data-tool="wish-simulator"] .ws-coll-art img { width: 100%; height: 100%; object-fit: cover; }
.tool-root[data-tool="wish-simulator"] .ws-coll-name { flex: 1; min-width: 0; font-size: .8rem; font-weight: 600; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tool-root[data-tool="wish-simulator"] .ws-coll-n { font-family: var(--font-mono); font-size: .75rem; font-weight: 700; color: var(--rc); }

/* ---------- history ---------- */
.tool-root[data-tool="wish-simulator"] .ws-hist-filters { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .6rem; }
.tool-root[data-tool="wish-simulator"] .ws-hf-field { display: flex; align-items: center; gap: .4rem; position: relative; }
.tool-root[data-tool="wish-simulator"] .ws-hf-field .select { min-width: 180px; }
.tool-root[data-tool="wish-simulator"] .ws-hf-tiers { display: flex; gap: .3rem; }
.tool-root[data-tool="wish-simulator"] .ws-hf-q { flex: 1 1 200px; }
.tool-root[data-tool="wish-simulator"] .ws-hf-q .i { position: absolute; left: .7rem; color: var(--text-3); pointer-events: none; }
.tool-root[data-tool="wish-simulator"] .ws-hf-q .input { width: 100%; padding-left: 2.2rem; }
.tool-root[data-tool="wish-simulator"] .ws-table-wrap { overflow-x: auto; margin-top: .4rem; border-radius: var(--radius); border: 1px solid var(--border); }
.tool-root[data-tool="wish-simulator"] .ws-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.tool-root[data-tool="wish-simulator"] .ws-table th { text-align: left; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--text-3); font-weight: 700; padding: .6rem .7rem; background: rgba(255,255,255,.03); border-bottom: 1px solid var(--border); white-space: nowrap; }
.tool-root[data-tool="wish-simulator"] .ws-table td { padding: .45rem .7rem; border-bottom: 1px solid var(--border); vertical-align: middle; }
.tool-root[data-tool="wish-simulator"] .ws-table tbody tr:last-child td { border-bottom: 0; }
.tool-root[data-tool="wish-simulator"] .ws-table tr[data-tier="5"] { background: linear-gradient(90deg, color-mix(in srgb, var(--r5c) 14%, transparent), transparent 70%); }
.tool-root[data-tool="wish-simulator"] .ws-table tr[data-tier="4"] { background: linear-gradient(90deg, color-mix(in srgb, var(--r4c) 9%, transparent), transparent 60%); }
.tool-root[data-tool="wish-simulator"] .ws-table tr[data-tier="5"] .ws-h-item { color: var(--r5c); font-weight: 700; }
.tool-root[data-tool="wish-simulator"] .ws-table tr[data-tier="4"] .ws-h-item { color: color-mix(in srgb, var(--r4c) 80%, #fff); font-weight: 600; }
.tool-root[data-tool="wish-simulator"] .ws-table tr[data-tier="3"] { color: var(--text-2); }
.tool-root[data-tool="wish-simulator"] .ws-num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tool-root[data-tool="wish-simulator"] .ws-h-item { display: flex; align-items: center; gap: .5rem; min-width: 150px; }
.tool-root[data-tool="wish-simulator"] .ws-h-art { width: 28px; height: 28px; flex: none; border-radius: 7px; overflow: hidden; background: var(--surface-2); }
.tool-root[data-tool="wish-simulator"] .ws-h-art img { width: 100%; height: 100%; object-fit: cover; }
.tool-root[data-tool="wish-simulator"] .ws-col-time { white-space: nowrap; color: var(--text-3); }
.tool-root[data-tool="wish-simulator"] .ws-out { display: inline-block; padding: .12rem .5rem; border-radius: 6px; font-size: .72rem; font-weight: 700; white-space: nowrap; background: rgba(255,255,255,.06); }
.tool-root[data-tool="wish-simulator"] .ws-out--w, .tool-root[data-tool="wish-simulator"] .ws-out--f { color: var(--success); background: color-mix(in srgb, var(--success) 13%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-out--l { color: var(--danger); background: color-mix(in srgb, var(--danger) 13%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-out--g { color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 13%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-out--r, .tool-root[data-tool="wish-simulator"] .ws-out--p { color: #1a1300; background: linear-gradient(100deg, #fff1b8, var(--r5c)); }
.tool-root[data-tool="wish-simulator"] .ws-more { margin: .8rem auto 0; display: flex; }
@media (max-width: 640px) {
  .tool-root[data-tool="wish-simulator"] .ws-col-time, .tool-root[data-tool="wish-simulator"] .ws-col-banner, .tool-root[data-tool="wish-simulator"] .ws-col-rar { display: none; }
  .tool-root[data-tool="wish-simulator"] .ws-hf-field .select { min-width: 0; }
}

/* ---------- rules ---------- */
.tool-root[data-tool="wish-simulator"] .ws-rules summary { display: flex; align-items: center; gap: .6rem; cursor: pointer; list-style: none; font-family: var(--font-display); font-weight: var(--display-weight); text-transform: var(--display-transform); letter-spacing: var(--display-spacing); font-size: 1.05rem; }
.tool-root[data-tool="wish-simulator"] .ws-rules summary::-webkit-details-marker { display: none; }
.tool-root[data-tool="wish-simulator"] .ws-rules summary .i { color: var(--accent); width: 20px; height: 20px; }
.tool-root[data-tool="wish-simulator"] .ws-rules-chev { margin-left: auto; transition: transform .25s var(--ease); }
.tool-root[data-tool="wish-simulator"] .ws-rules[open] .ws-rules-chev { transform: rotate(180deg); }
.tool-root[data-tool="wish-simulator"] .ws-rules[open] summary { margin-bottom: 1rem; }
.tool-root[data-tool="wish-simulator"] .ws-rules-grid { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.tool-root[data-tool="wish-simulator"] .ws-rule { padding: 1rem; border-radius: var(--radius); background: rgba(255,255,255,.03); border: 1px solid var(--border); font-size: .86rem; color: var(--text-2); }
.tool-root[data-tool="wish-simulator"] .ws-rule.is-active { border-color: color-mix(in srgb, var(--accent) 55%, transparent); background: color-mix(in srgb, var(--accent) 7%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-rule h3 { font-family: var(--font-body); text-transform: none; letter-spacing: 0; font-size: .98rem; color: var(--text); margin-bottom: .6rem; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.tool-root[data-tool="wish-simulator"] .ws-rule ul { padding-left: 1.1rem; display: grid; gap: .35rem; margin-bottom: .7rem; }
.tool-root[data-tool="wish-simulator"] .ws-rule p { margin: 0; line-height: 1.55; }

/* ==========================================================================
   Stage (dialog in the top layer)
   ========================================================================== */
.tool-root[data-tool="wish-simulator"] .ws-stage {
  position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0;
  background: #04050c; color: var(--text); overflow: hidden; overscroll-behavior: contain;
}
.tool-root[data-tool="wish-simulator"] .ws-stage[open] { display: block; }
.tool-root[data-tool="wish-simulator"] .ws-stage::backdrop { background: rgba(0,0,0,.85); }
.tool-root[data-tool="wish-simulator"] .ws-stage[data-phase="results"] { overflow-y: auto; background: radial-gradient(90% 70% at 50% 0%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%), radial-gradient(60% 50% at 50% 110%, color-mix(in srgb, var(--accent-2) 14%, transparent), transparent 70%), var(--bg); }
.tool-root[data-tool="wish-simulator"] .ws-scene { position: absolute; inset: 0; overflow: hidden; }
.tool-root[data-tool="wish-simulator"] .ws-scene > * { position: absolute; inset: 0; }
.tool-root[data-tool="wish-simulator"] .ws-skip {
  position: absolute; z-index: 20; top: max(1rem, env(safe-area-inset-top)); right: 1rem;
  display: inline-flex; align-items: center; gap: .3rem; padding: .55rem 1rem; border-radius: 999px;
  font-weight: 700; font-size: .9rem; color: #fff; background: rgba(0,0,0,.45); border: 1px solid rgba(255,255,255,.28); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.tool-root[data-tool="wish-simulator"] .ws-skip:hover { background: rgba(0,0,0,.65); border-color: #fff; }
.tool-root[data-tool="wish-simulator"] .ws-skip .i { width: 16px; height: 16px; }

/* --- Genshin: meteor --- */
.tool-root[data-tool="wish-simulator"] .ws-gi { background: radial-gradient(120% 80% at 70% 0%, #26345f 0%, #111a33 45%, #070a16 100%); }
.tool-root[data-tool="wish-simulator"] .ws-gi-stars { position: absolute; inset: -10%; background:
    radial-gradient(1.5px 1.5px at 12% 18%, #fff, transparent), radial-gradient(1px 1px at 27% 62%, #fff, transparent),
    radial-gradient(1.2px 1.2px at 44% 30%, #dfe8ff, transparent), radial-gradient(1px 1px at 58% 78%, #fff, transparent),
    radial-gradient(1.6px 1.6px at 73% 22%, #fff5d6, transparent), radial-gradient(1px 1px at 86% 55%, #fff, transparent),
    radial-gradient(1.2px 1.2px at 92% 12%, #fff, transparent), radial-gradient(1px 1px at 5% 85%, #cfe0ff, transparent);
  background-size: 380px 380px; opacity: .85; animation: ws-twinkle 3s ease-in-out infinite alternate; }
.tool-root[data-tool="wish-simulator"] .ws-gi-stars--2 { background-size: 220px 260px; opacity: .45; animation-delay: -1.5s; transform: rotate(12deg); }
@keyframes ws-twinkle { to { opacity: .35; } }
.tool-root[data-tool="wish-simulator"] .ws-gi-lane { position: absolute; left: 50%; top: 42%; width: 0; height: 0; transform: rotate(146deg); }
.tool-root[data-tool="wish-simulator"] .ws-gi-meteor {
  position: absolute; right: 0; top: calc(-4px + var(--o, 0px)); width: 52vmax; height: 8px; border-radius: 8px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--mc) 55%, transparent) 55%, var(--mc) 88%, #fff);
  filter: drop-shadow(0 0 10px var(--mc)) drop-shadow(0 0 26px var(--mc));
  transform: translateX(-90vmax) scale(var(--s, 1)); transform-origin: right center; opacity: 0;
  animation: ws-gi-fall 1.9s cubic-bezier(.35, .05, .25, 1) forwards; animation-delay: var(--d, .15s);
}
.tool-root[data-tool="wish-simulator"] .ws-gi-meteor::after { content: ""; position: absolute; right: -14px; top: 50%; width: 30px; height: 30px; border-radius: 50%; transform: translateY(-50%); background: radial-gradient(circle, #fff 20%, var(--mc) 50%, transparent 72%); }
.tool-root[data-tool="wish-simulator"] .ws-gi-meteor--small { height: 4px; width: 34vmax; animation-duration: 1.7s; }
@keyframes ws-gi-fall {
  0% { opacity: 0; transform: translateX(-95vmax) scale(var(--s, 1)); }
  10% { opacity: 1; }
  78% { opacity: 1; transform: translateX(14vmax) scale(var(--s, 1)); }
  100% { opacity: 0; transform: translateX(26vmax) scale(var(--s, 1)); }
}
.tool-root[data-tool="wish-simulator"] .ws-gi-glow { position: absolute; inset: 0; background: radial-gradient(40% 40% at 40% 60%, var(--mc), transparent 70%); opacity: 0; animation: ws-fade-in-out 1.2s ease-out 1.25s forwards; mix-blend-mode: screen; }
.tool-root[data-tool="wish-simulator"] .ws-gi-flash { position: absolute; inset: 0; background: radial-gradient(circle at 42% 60%, #fff 0%, color-mix(in srgb, var(--mc) 70%, #fff) 35%, transparent 75%); opacity: 0; animation: ws-flash .7s ease-out 1.8s forwards; }
@keyframes ws-fade-in-out { 40% { opacity: .65; } 100% { opacity: 0; } }
@keyframes ws-flash { 0% { opacity: 0; transform: scale(.6); } 35% { opacity: 1; transform: scale(1.4); } 100% { opacity: 1; transform: scale(3); } }

/* --- HSR: warp tunnel + pass --- */
.tool-root[data-tool="wish-simulator"] .ws-hsr { background: #04050f; }
.tool-root[data-tool="wish-simulator"] .ws-hsr canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.tool-root[data-tool="wish-simulator"] .ws-hsr-pass { position: absolute; left: 50%; top: 50%; width: min(300px, 64vw); aspect-ratio: 1.6; transform: translate(-50%, -50%); perspective: 800px; }
.tool-root[data-tool="wish-simulator"] .ws-hsr-pass-in {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: .2rem; color: #fff;
  clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 18px 100%, 0 calc(100% - 18px));
  background: linear-gradient(135deg, rgba(255,255,255,.2), rgba(255,255,255,.04)), linear-gradient(135deg, color-mix(in srgb, var(--mc) 55%, #1b1740), #0b0a1e);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.3);
  animation: ws-hsr-pass 2.5s cubic-bezier(.5, 0, .2, 1) forwards;
}
.tool-root[data-tool="wish-simulator"] .ws-hsr-pass-in i { width: 46px; height: 46px; border-radius: 50%; border: 2px solid var(--mc); box-shadow: 0 0 18px var(--mc), inset 0 0 12px var(--mc); margin-bottom: .3rem; }
.tool-root[data-tool="wish-simulator"] .ws-hsr-pass-in b { font-family: var(--font-display); letter-spacing: .14em; text-transform: uppercase; font-size: 1.1rem; }
.tool-root[data-tool="wish-simulator"] .ws-hsr-pass-in small { font-size: .62rem; letter-spacing: .3em; opacity: .7; }
@keyframes ws-hsr-pass {
  0% { opacity: 0; transform: rotateY(-70deg) scale(.7); }
  22% { opacity: 1; transform: rotateY(0) scale(1); }
  62% { opacity: 1; transform: rotateY(12deg) scale(1.02); box-shadow: 0 0 0 transparent; }
  100% { opacity: 0; transform: rotateY(0) scale(.05); }
}
.tool-root[data-tool="wish-simulator"] .ws-hsr-flash { position: absolute; inset: 0; background: radial-gradient(circle, #fff 0%, var(--mc) 30%, transparent 70%); opacity: 0; animation: ws-flash .6s ease-out 2.25s forwards; }

/* --- ZZZ: CRT TV --- */
.tool-root[data-tool="wish-simulator"] .ws-zzz { display: grid; place-items: center; background: #0a0a0a radial-gradient(rgba(255,255,255,.06) 1px, transparent 1.4px) 0 0 / 7px 7px; }
.tool-root[data-tool="wish-simulator"] .ws-zzz-tv {
  position: relative; width: min(92vw, 820px); aspect-ratio: 16 / 9; overflow: hidden; border-radius: 28px / 22px;
  border: 10px solid #1d1d1d; box-shadow: 0 0 0 3px #000, 12px 12px 0 #000, 0 0 60px -10px var(--accent);
  background: #111; animation: ws-zzz-on .35s ease-out both;
}
.tool-root[data-tool="wish-simulator"] .ws-zzz-tv canvas { position: absolute; inset: 0; width: 100%; height: 100%; image-rendering: pixelated; filter: contrast(1.2) brightness(.9); }
.tool-root[data-tool="wish-simulator"] .ws-zzz-scan { position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(0,0,0,.35) 0 2px, transparent 2px 4px), radial-gradient(120% 90% at 50% 50%, transparent 55%, rgba(0,0,0,.75)); pointer-events: none; animation: ws-zzz-roll 1.2s linear infinite; }
@keyframes ws-zzz-roll { to { background-position: 0 40px, 0 0; } }
.tool-root[data-tool="wish-simulator"] .ws-zzz-bars { position: absolute; inset: 0; opacity: 0; background: linear-gradient(90deg, #c0c0c0 0 14.28%, #c0c000 0 28.57%, #00c0c0 0 42.85%, #00c000 0 57.14%, #c000c0 0 71.42%, #c00000 0 85.71%, #0000c0 0); }
.tool-root[data-tool="wish-simulator"] .ws-zzz-hud { position: absolute; inset: 0; padding: clamp(.8rem, 3vw, 1.6rem); display: flex; flex-direction: column; justify-content: space-between; font-family: var(--font-mono); color: #fff; text-shadow: 0 0 6px rgba(0,0,0,.9); }
.tool-root[data-tool="wish-simulator"] .ws-zzz-rec { color: #ff3b3b; font-weight: 700; animation: ws-blink 1s steps(2) infinite; }
.tool-root[data-tool="wish-simulator"] .ws-zzz-ch { position: absolute; top: clamp(.8rem, 3vw, 1.6rem); right: clamp(.8rem, 3vw, 1.6rem); font-weight: 700; color: var(--accent); }
.tool-root[data-tool="wish-simulator"] .ws-zzz-label { margin: 0; align-self: center; font-family: var(--font-display); font-size: clamp(1.3rem, 4.5vw, 2.6rem); text-transform: uppercase; letter-spacing: .04em; font-style: italic; padding: .1rem .8rem; background: #0c0c0c; color: var(--accent); transform: skewX(-8deg); box-shadow: 5px 5px 0 #000; }
.tool-root[data-tool="wish-simulator"] .ws-zzz-meter { height: 10px; background: rgba(0,0,0,.6); border: 2px solid #000; }
.tool-root[data-tool="wish-simulator"] .ws-zzz-meter i { display: block; height: 100%; width: 0; background: repeating-linear-gradient(-45deg, var(--accent) 0 8px, #0c0c0c 8px 16px); animation: ws-zzz-fill 1.4s cubic-bezier(.6, 0, .3, 1) forwards; }
@keyframes ws-zzz-fill { to { width: 100%; } }
@keyframes ws-blink { 50% { opacity: 0; } }
.tool-root[data-tool="wish-simulator"] .ws-zzz-stamp { position: absolute; inset: 0; display: grid; place-items: center; opacity: 0; pointer-events: none; }
.tool-root[data-tool="wish-simulator"] .ws-zzz-stamp span {
  font-family: var(--font-display); font-style: italic; font-size: clamp(7rem, 30vw, 16rem); line-height: 1; color: var(--mc);
  -webkit-text-stroke: 4px #000; text-shadow: 10px 10px 0 #000, -4px 0 0 rgba(255, 0, 90, .8), 4px 0 0 rgba(0, 220, 255, .8);
}
.tool-root[data-tool="wish-simulator"] .ws-zzz.is-locked .ws-zzz-bars { animation: ws-zzz-bars .45s steps(3) forwards; }
.tool-root[data-tool="wish-simulator"] .ws-zzz.is-locked .ws-zzz-stamp { animation: ws-zzz-stamp .5s cubic-bezier(.2, 1.6, .4, 1) .25s forwards; }
.tool-root[data-tool="wish-simulator"] .ws-zzz-label { transition: transform .35s cubic-bezier(.2, 1.4, .4, 1); }
/* once locked, the label drops to the lower third so the rank stamp owns the centre */
.tool-root[data-tool="wish-simulator"] .ws-zzz.is-locked .ws-zzz-label { color: #0c0c0c; background: var(--mc); transform: translateY(clamp(4.2rem, 13vw, 8.5rem)) skewX(-8deg); position: relative; z-index: 2; }
.tool-root[data-tool="wish-simulator"] .ws-zzz.is-locked .ws-zzz-tv { box-shadow: 0 0 0 3px #000, 12px 12px 0 #000, 0 0 90px -5px var(--mc); }
@keyframes ws-zzz-bars { 0% { opacity: .9; } 60% { opacity: .5; } 100% { opacity: 0; } }
@keyframes ws-zzz-stamp { 0% { opacity: 0; transform: scale(2.4) rotate(-12deg); } 60% { opacity: 1; transform: scale(.92) rotate(-6deg); } 100% { opacity: 1; transform: scale(1) rotate(-8deg); } }
.tool-root[data-tool="wish-simulator"] .ws-zzz.is-off .ws-zzz-tv { animation: ws-zzz-off .5s cubic-bezier(.7, 0, .9, .4) forwards; }
@keyframes ws-zzz-on { from { transform: scale(1, .01); filter: brightness(4); } 60% { transform: scale(1, 1.03); } to { transform: none; filter: none; } }
@keyframes ws-zzz-off { 0% { transform: none; filter: brightness(1); } 55% { transform: scale(1, .012); filter: brightness(5); } 100% { transform: scale(0, .012); filter: brightness(8); } }

/* --- HI3: supply drop --- */
.tool-root[data-tool="wish-simulator"] .ws-hi3 { background: radial-gradient(80% 60% at 50% 110%, color-mix(in srgb, var(--accent) 40%, transparent), transparent 70%), linear-gradient(180deg, #1a0a1c, #09060c 70%); }
.tool-root[data-tool="wish-simulator"] .ws-hi3-hex { position: absolute; inset: 0; opacity: .35; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='98' viewBox='0 0 56 98'%3E%3Cpath d='M28 66L0 50V16L28 0l28 16v34L28 66zm0 32L0 82V66' fill='none' stroke='%23ff4f8b' stroke-opacity='.35' stroke-width='1'/%3E%3C/svg%3E"); mask-image: radial-gradient(60% 60% at 50% 70%, #000, transparent); -webkit-mask-image: radial-gradient(60% 60% at 50% 70%, #000, transparent); animation: ws-hi3-hex 2.7s linear forwards; }
@keyframes ws-hi3-hex { to { background-position: 0 98px; } }
.tool-root[data-tool="wish-simulator"] .ws-hi3-beam { position: absolute; left: 50%; top: 0; bottom: 30%; width: 140px; transform: translateX(-50%); background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent-2) 45%, transparent)); filter: blur(10px); opacity: 0; animation: ws-hi3-beam 1s ease-out forwards; }
@keyframes ws-hi3-beam { 20% { opacity: .9; } 100% { opacity: 0; } }
.tool-root[data-tool="wish-simulator"] .ws-hi3-cap { position: absolute; left: 50%; top: 62%; width: min(230px, 52vw); aspect-ratio: .82; transform: translate(-50%, -160vh); animation: ws-hi3-drop .95s cubic-bezier(.55, 0, .85, .4) .1s forwards, ws-hi3-shake .3s ease-out 1.05s; }
.tool-root[data-tool="wish-simulator"] .ws-hi3-half { position: absolute; top: 0; bottom: 0; width: 50%; background: linear-gradient(180deg, #3a2438, #1b0f1d); border: 2px solid color-mix(in srgb, var(--accent) 70%, transparent); box-shadow: inset 0 0 20px color-mix(in srgb, var(--accent) 35%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-hi3-half--l { left: 0; clip-path: polygon(100% 0, 50% 0, 0 25%, 0 75%, 50% 100%, 100% 100%); animation: ws-hi3-open-l .5s cubic-bezier(.5, 0, .2, 1) 1.9s forwards; }
.tool-root[data-tool="wish-simulator"] .ws-hi3-half--r { right: 0; clip-path: polygon(0 0, 50% 0, 100% 25%, 100% 75%, 50% 100%, 0 100%); animation: ws-hi3-open-r .5s cubic-bezier(.5, 0, .2, 1) 1.9s forwards; }
.tool-root[data-tool="wish-simulator"] .ws-hi3-core { position: absolute; left: 50%; top: 50%; width: 30%; aspect-ratio: 1; border-radius: 50%; transform: translate(-50%, -50%); background: radial-gradient(circle, #fff 10%, var(--mc) 45%, transparent 70%); opacity: .2; animation: ws-hi3-core .9s ease-in 1.1s forwards; z-index: 2; }
.tool-root[data-tool="wish-simulator"] .ws-hi3-cap::before { content: ""; position: absolute; left: 50%; bottom: 92%; width: 46%; height: 70vh; transform: translateX(-50%); background: linear-gradient(0deg, color-mix(in srgb, var(--accent-2) 75%, #fff), color-mix(in srgb, var(--accent) 40%, transparent) 30%, transparent); filter: blur(7px); opacity: 0; animation: ws-hi3-trail 1.1s ease-out .1s forwards; pointer-events: none; }
.tool-root[data-tool="wish-simulator"] .ws-hi3-half::after { content: ""; position: absolute; inset: 12% 18%; background: repeating-linear-gradient(180deg, color-mix(in srgb, var(--accent) 55%, transparent) 0 2px, transparent 2px 12px); opacity: .45; }
.tool-root[data-tool="wish-simulator"] .ws-hi3-half--l { box-shadow: inset -8px 0 18px -6px var(--mc), inset 0 0 20px color-mix(in srgb, var(--accent) 35%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-hi3-half--r { box-shadow: inset 8px 0 18px -6px var(--mc), inset 0 0 20px color-mix(in srgb, var(--accent) 35%, transparent); }
@keyframes ws-hi3-trail { 12% { opacity: .95; } 85% { opacity: .7; } 100% { opacity: 0; } }
@keyframes ws-hi3-drop { to { transform: translate(-50%, -50%); } }
@keyframes ws-hi3-shake { 30% { translate: 0 8px; } 60% { translate: 0 -3px; } }
@keyframes ws-hi3-core { to { opacity: 1; width: 70%; filter: drop-shadow(0 0 30px var(--mc)); } }
@keyframes ws-hi3-open-l { to { transform: translateX(-70%) rotate(-12deg); opacity: 0; } }
@keyframes ws-hi3-open-r { to { transform: translateX(70%) rotate(12deg); opacity: 0; } }
.tool-root[data-tool="wish-simulator"] .ws-hi3-ring { position: absolute; left: 50%; top: 62%; width: 120px; aspect-ratio: 1; border-radius: 50%; border: 3px solid var(--accent-2); transform: translate(-50%, -50%) scale(0); opacity: 0; animation: ws-hi3-ring .9s ease-out 1.05s forwards; }
.tool-root[data-tool="wish-simulator"] .ws-hi3-ring--2 { border-color: var(--mc); animation-delay: 1.9s; }
@keyframes ws-hi3-ring { 0% { opacity: 1; transform: translate(-50%, -50%) scale(.3); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(7); } }
.tool-root[data-tool="wish-simulator"] .ws-hi3-flash { position: absolute; inset: 0; background: radial-gradient(circle at 50% 62%, #fff 0%, var(--mc) 30%, transparent 70%); opacity: 0; animation: ws-flash .6s ease-out 2.15s forwards; }
.tool-root[data-tool="wish-simulator"] .ws-hi3-label { position: absolute; left: 0; right: 0; top: 14%; margin: 0; text-align: center; font-family: var(--font-display); text-transform: uppercase; letter-spacing: .3em; font-size: clamp(.8rem, 2.4vw, 1.1rem); color: var(--accent-2); text-shadow: 0 0 14px var(--accent-2); animation: ws-blink .5s steps(2) 3, ws-fade-out .4s ease 1.9s forwards; }
@keyframes ws-fade-out { to { opacity: 0; } }

/* --- spotlight (5★ reveal) --- */
.tool-root[data-tool="wish-simulator"] .ws-spot { position: absolute; inset: 0; z-index: 5; cursor: pointer; }
.tool-root[data-tool="wish-simulator"] .ws-spot-in { --el: var(--rc); position: absolute; inset: 0; overflow: hidden; display: grid; align-items: end; }
.tool-root[data-tool="wish-simulator"] .ws-spot-bg { position: absolute; inset: 0; background: radial-gradient(60% 70% at 65% 45%, color-mix(in srgb, var(--rc) 50%, transparent), transparent 70%), radial-gradient(50% 50% at 20% 90%, color-mix(in srgb, var(--el) 40%, transparent), transparent 70%), #07080f; animation: ws-spot-bg .8s ease-out both; }
.tool-root[data-tool="wish-simulator"] .ws-spot-bg::after { content: ""; position: absolute; left: 65%; top: 45%; width: 180vmax; height: 180vmax; transform: translate(-50%, -50%); background: repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--rc) 22%, transparent) 0 6deg, transparent 6deg 18deg); mask-image: radial-gradient(circle, #000 0, transparent 45%); -webkit-mask-image: radial-gradient(circle, #000 0, transparent 45%); animation: ws-spin 30s linear infinite; }
@keyframes ws-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes ws-spot-bg { from { opacity: 0; transform: scale(1.2); } }
.tool-root[data-tool="wish-simulator"] .ws-spot-art { position: absolute; inset: 0 0 0 20%; display: grid; place-items: center; animation: ws-spot-art .9s cubic-bezier(.2, .8, .2, 1) both; }
.tool-root[data-tool="wish-simulator"] .ws-spot-art.is-splash img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; mask-image: linear-gradient(90deg, transparent, #000 30%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%); }
.tool-root[data-tool="wish-simulator"] .ws-spot-art:not(.is-splash) > img, .tool-root[data-tool="wish-simulator"] .ws-spot-art > .ws-glyph { width: min(62vmin, 440px); height: min(62vmin, 440px); border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px color-mix(in srgb, var(--rc) 80%, transparent), 0 0 0 14px color-mix(in srgb, var(--rc) 14%, transparent), 0 0 120px -10px var(--rc); background: color-mix(in srgb, var(--rc) 20%, #0b0c16); }
@keyframes ws-spot-art { from { opacity: 0; transform: translateX(8%) scale(1.06); filter: brightness(3); } }
.tool-root[data-tool="wish-simulator"] .ws-spot-info { position: relative; z-index: 2; display: grid; gap: .5rem; justify-items: start; padding: clamp(1.2rem, 5vw, 3.5rem); padding-bottom: calc(clamp(1.2rem, 5vw, 3.5rem) + 2rem); background: linear-gradient(0deg, rgba(0,0,0,.75), transparent); }
.tool-root[data-tool="wish-simulator"] .ws-spot-el { display: inline-flex; align-items: center; gap: .4rem; padding: .25rem .8rem .25rem .3rem; border-radius: 999px; background: rgba(0,0,0,.45); border: 1px solid color-mix(in srgb, var(--el) 60%, transparent); color: color-mix(in srgb, var(--el) 60%, #fff); font-weight: 700; font-size: .85rem; animation: ws-rise .6s var(--ease) .25s both; }
.tool-root[data-tool="wish-simulator"] .ws-spot-el img { width: 24px; height: 24px; }
.tool-root[data-tool="wish-simulator"] .ws-spot-name { font-size: clamp(2.4rem, 8vw, 5.4rem); line-height: 1; color: #fff; text-shadow: 0 6px 40px rgba(0,0,0,.7), 0 0 50px color-mix(in srgb, var(--rc) 50%, transparent); max-width: 16ch; overflow-wrap: anywhere; animation: ws-rise .7s var(--ease) .35s both; }
.tool-root[data-tool="wish-simulator"] .ws-spot-sub { margin: 0; color: var(--text-2); font-weight: 600; animation: ws-rise .6s var(--ease) .45s both; }
.tool-root[data-tool="wish-simulator"] .ws-spot-rar { display: flex; align-items: center; gap: .6rem; animation: ws-rise .6s var(--ease) .55s both; }
.tool-root[data-tool="wish-simulator"] .ws-spot-rar .rarity i { width: 22px; height: 22px; }
.tool-root[data-tool="wish-simulator"] .ws-spot-rar .rank-badge { min-width: 44px; height: 38px; font-size: 1.4rem; }
.tool-root[data-tool="wish-simulator"] .ws-spot-rar .ws-card-tag { position: static; font-size: .8rem; padding: .2rem .6rem; }
.tool-root[data-tool="wish-simulator"] .ws-spot-out { margin: 0; display: inline-flex; padding: .3rem .8rem; border-radius: 999px; font-weight: 800; font-size: .85rem; letter-spacing: .02em; color: #fff; background: rgba(0,0,0,.5); border: 1px solid rgba(255,255,255,.25); animation: ws-rise .6s var(--ease) .65s both; }
.tool-root[data-tool="wish-simulator"] .ws-spot-out.ws-out--w, .tool-root[data-tool="wish-simulator"] .ws-spot-out.ws-out--g { color: #c9ffd9; border-color: color-mix(in srgb, var(--success) 70%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-spot-out.ws-out--l { color: #ffd0d0; border-color: color-mix(in srgb, var(--danger) 70%, transparent); }
.tool-root[data-tool="wish-simulator"] .ws-spot-out.ws-out--r, .tool-root[data-tool="wish-simulator"] .ws-spot-out.ws-out--p { color: #1a1300; background: linear-gradient(100deg, #fff1b8, var(--r5c)); border-color: transparent; box-shadow: 0 0 24px -4px var(--r5c); }
.tool-root[data-tool="wish-simulator"] .ws-spot-tap { position: absolute; z-index: 3; left: 0; right: 0; bottom: max(.8rem, env(safe-area-inset-bottom)); margin: 0; text-align: center; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); animation: ws-blink 1.6s ease-in-out infinite; }
@keyframes ws-rise { from { opacity: 0; transform: translateY(18px); } }
@media (max-width: 640px) {
  .tool-root[data-tool="wish-simulator"] .ws-spot-art { inset: 0 0 25% 0; }
  .tool-root[data-tool="wish-simulator"] .ws-spot-art.is-splash img { mask-image: linear-gradient(180deg, #000 60%, transparent); -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent); }
}

/* --- results --- */
.tool-root[data-tool="wish-simulator"] .ws-results { min-height: 100%; display: flex; flex-direction: column; }
.tool-root[data-tool="wish-simulator"] .ws-res { flex: 1; min-height: 100%; display: flex; flex-direction: column; justify-content: center; gap: clamp(1.2rem, 4vh, 2.4rem); padding: clamp(3.5rem, 8vh, 5rem) clamp(1rem, 4vw, 3rem) clamp(1.5rem, 5vh, 3rem); }
.tool-root[data-tool="wish-simulator"] .ws-res-grid { display: grid; gap: clamp(.4rem, 1.2vw, .9rem); grid-template-columns: repeat(5, minmax(0, 1fr)); width: min(100%, 1280px); margin-inline: auto; }
.tool-root[data-tool="wish-simulator"] .ws-res[data-count="1"] .ws-res-grid { grid-template-columns: minmax(0, min(320px, 72vw)); justify-content: center; }
@media (min-width: 1000px) {
  .tool-root[data-tool="wish-simulator"] .ws-res[data-count="10"] .ws-res-grid { grid-template-columns: repeat(10, minmax(0, 1fr)); }
  .tool-root[data-tool="wish-simulator"] .ws-res[data-count="10"] .ws-card { aspect-ratio: 1 / 2.3; }
  .tool-root[data-tool="wish-simulator"] .ws-res[data-count="10"] .ws-card-art > img { object-position: 50% 25%; }
}
.tool-root[data-tool="wish-simulator"] .ws-res .ws-card figcaption b { font-size: clamp(.68rem, 1.1vw, .86rem); }
.tool-root[data-tool="wish-simulator"] .ws-card--big figcaption b { font-size: 1.1rem !important; }
.tool-root[data-tool="wish-simulator"] .ws-card--big .rarity i { width: 16px; height: 16px; }
.tool-root[data-tool="wish-simulator"] .ws-res-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem; }
.tool-root[data-tool="wish-simulator"] .ws-res.is-animated .ws-card { animation: ws-card-in .6s cubic-bezier(.2, .9, .3, 1.2) backwards; animation-delay: calc(.1s + var(--i) * 90ms); }
.tool-root[data-tool="wish-simulator"] .ws-res.is-animated .ws-card[data-tier="5"] .ws-card-art::after { content: ""; position: absolute; inset: -20%; z-index: 1; pointer-events: none; background: radial-gradient(circle, #fff 0%, var(--rc) 25%, transparent 55%); opacity: 0; animation: ws-burst .8s ease-out backwards; animation-delay: calc(.35s + var(--i) * 90ms); }
.tool-root[data-tool="wish-simulator"] .ws-res.is-animated .ws-res-actions { animation: ws-rise .5s var(--ease) 1s backwards; }
@keyframes ws-card-in { from { opacity: 0; transform: translateY(24px) rotateY(80deg) scale(.9); filter: brightness(3); } }
@keyframes ws-burst { 0% { opacity: .9; transform: scale(.3); } 100% { opacity: 0; transform: scale(1.2); } }

/* ==========================================================================
   Per-game identity
   ========================================================================== */
/* Genshin — parchment cream, celestial gold ornaments */
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-tab.is-active { border-radius: 10px 10px 22px 10px; }
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-bn { border-radius: 14px 14px 44px 14px; border-color: rgba(227, 199, 142, .35); }
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-bn::after { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(227, 199, 142, .28); border-radius: 10px 10px 38px 10px; pointer-events: none; }
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-bn-name { background: linear-gradient(180deg, #fffaf0 30%, #e3c78e); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 4px 20px rgba(0,0,0,.6)); text-shadow: none; }
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-pull { color: #3b4254; background: linear-gradient(180deg, #f3ecdf, #e2d6bf); box-shadow: 0 0 0 2px rgba(0,0,0,.35), 0 0 0 3.5px rgba(227,199,142,.6), 0 14px 30px -12px var(--glow); }
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-pull-cost::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: .3rem; vertical-align: -1px; border-radius: 50%; background: radial-gradient(circle, #f6c341 36%, #6a4dcf 40%, #3b4254 62%, transparent 64%); }
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-card { border-radius: 8px 8px 22px 8px; }
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-card figcaption b { font-family: var(--font-display); }
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-res .ws-card::after { content: ""; position: absolute; inset: 4px; border: 1px solid color-mix(in srgb, var(--rc) 60%, transparent); border-radius: 6px 6px 18px 6px; pointer-events: none; z-index: 1; }
.theme-genshin .tool-root[data-tool="wish-simulator"] .ws-stage[data-phase="results"] { background: radial-gradient(80% 60% at 50% 0%, #2a3b6a 0%, transparent 70%), radial-gradient(120% 90% at 50% 120%, #3a2c55, transparent 60%), #0d1222; }

/* HSR — chamfered glass, gold/violet trim */
.theme-hsr .tool-root[data-tool="wish-simulator"] .ws-tab, .theme-hsr .tool-root[data-tool="wish-simulator"] .ws-bn, .theme-hsr .tool-root[data-tool="wish-simulator"] .ws-card, .theme-hsr .tool-root[data-tool="wish-simulator"] .ws-tile, .theme-hsr .tool-root[data-tool="wish-simulator"] .ws-rule, .theme-hsr .tool-root[data-tool="wish-simulator"] .ws-bn-controls {
  border-radius: 3px; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}
.theme-hsr .tool-root[data-tool="wish-simulator"] .ws-bn::after { content: ""; position: absolute; top: 0; left: 0; width: 38%; height: 3px; background: linear-gradient(90deg, var(--accent-2), transparent); }
.theme-hsr .tool-root[data-tool="wish-simulator"] .ws-pull { border-radius: 3px; clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px); color: #16110a; background: linear-gradient(100deg, #f3d18a, #e9b96a); text-transform: uppercase; letter-spacing: .06em; }
.theme-hsr .tool-root[data-tool="wish-simulator"] .ws-pull--one { background: linear-gradient(100deg, #d9d0ff, #b7a8ff); color: #0c0b1e; }
.theme-hsr .tool-root[data-tool="wish-simulator"] .ws-bn-name { font-size: clamp(2.2rem, 5.6vw, 3.8rem); }
.theme-hsr .tool-root[data-tool="wish-simulator"] .ws-meter-bar, .theme-hsr .tool-root[data-tool="wish-simulator"] .ws-meter-fill { border-radius: 0; }
.theme-hsr .tool-root[data-tool="wish-simulator"] .ws-card figcaption b { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .04em; font-size: .8rem; }
.theme-hsr .tool-root[data-tool="wish-simulator"] .ws-stage[data-phase="results"] { background: radial-gradient(60% 50% at 80% 10%, rgba(120, 90, 255, .3), transparent 70%), radial-gradient(70% 60% at 20% 110%, rgba(60, 40, 170, .35), transparent 70%), #07080f; }

/* ZZZ — brutalist street: thick borders, offset shadows, tape, italics */
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-tab { border: 2px solid #2e2e2e; box-shadow: 4px 4px 0 #000; background: #171717; border-radius: 8px; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-tab.is-active { border-color: var(--accent); box-shadow: 5px 5px 0 var(--accent-2); background: #1d1d1d; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-tab-text b { font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-style: italic; letter-spacing: .03em; font-size: 1.05rem; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-bn { border: 2px solid #2e2e2e; box-shadow: 8px 8px 0 #000; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-bn-bg::after { background: radial-gradient(rgba(255,255,255,.5) 1.2px, transparent 1.6px) 0 0 / 8px 8px; opacity: .15; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-bn::after { content: ""; position: absolute; left: -40px; right: -40px; bottom: 18px; height: 14px; transform: rotate(-3deg); background: repeating-linear-gradient(-45deg, var(--accent) 0 14px, #0c0c0c 14px 28px); opacity: .85; z-index: 0; pointer-events: none; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-bn-name { font-style: italic; font-size: clamp(2.4rem, 7vw, 4.6rem); -webkit-text-stroke: 1px rgba(0,0,0,.5); }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-bn-boost { color: #0c0c0c; background: var(--accent); border-radius: 3px; transform: skewX(-8deg); box-shadow: 3px 3px 0 #000; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-pull { border-radius: 10px; border: 2px solid #000; color: #0c0c0c; background: var(--accent); box-shadow: 5px 5px 0 #000; font-family: var(--font-display); font-weight: 400; text-transform: uppercase; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-pull--one { background: #f4f4f0; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-pull:hover { box-shadow: 7px 7px 0 var(--accent-2); }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-pull-label { font-size: 1.25rem; font-style: italic; letter-spacing: .03em; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-pull-cost { font-family: var(--font-mono); font-size: .72rem; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-card { border-radius: 10px; border: 2px solid #000; box-shadow: 4px 4px 0 #000, 0 0 0 1px color-mix(in srgb, var(--rc) 70%, transparent) inset; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-card figcaption b { font-family: var(--font-display); font-weight: 400; text-transform: uppercase; font-style: italic; font-size: .82rem; letter-spacing: .02em; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-card .rank-badge { transform: skewX(-8deg); }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-tile { border: 2px solid #2a2a2a; box-shadow: 3px 3px 0 #000; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-meter-bar { border-radius: 2px; height: 14px; border: 2px solid #000; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-meter-fill { border-radius: 0; background: repeating-linear-gradient(-45deg, var(--r5c) 0 8px, color-mix(in srgb, var(--r5c) 70%, #000) 8px 16px); }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-stage[data-phase="results"] { background: radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.4px) 0 0 / 6px 6px, radial-gradient(50% 40% at 90% 0%, rgba(212, 255, 61, .14), transparent 70%), #0c0c0c; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-spot-name { font-style: italic; -webkit-text-stroke: 2px #000; }
.theme-zzz .tool-root[data-tool="wish-simulator"] .ws-spot-bg::after { background: radial-gradient(rgba(255,255,255,.35) 1.4px, transparent 1.8px) 0 0 / 10px 10px; animation: none; transform: translate(-50%, -50%); }

/* HI3 — crimson Honkai energy, holo-cyan HUD, angled cuts */
.theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-tab, .theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-bn, .theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-card, .theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-bn-controls {
  clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px);
}
.theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-bn::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--accent), var(--accent-2)); }
.theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-bn-name { font-size: clamp(1.7rem, 4.4vw, 3rem); text-shadow: 0 0 40px rgba(255,79,139,.5); }
.theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-pull { border-radius: 4px; clip-path: polygon(12px 0, 100% 0, calc(100% - 12px) 100%, 0 100%); color: #fff; background: linear-gradient(100deg, #ff4f8b, #ff7a59); text-transform: uppercase; letter-spacing: .08em; }
.theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-pull--one { background: linear-gradient(100deg, #2bbbd8, #6fe7ff); color: #04121a; }
.theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-card::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--rc); z-index: 2; box-shadow: 0 0 10px var(--rc); }
.theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-card figcaption b { font-family: var(--font-display); text-transform: uppercase; font-size: .66rem; letter-spacing: .03em; }
.theme-hi3 .tool-root[data-tool="wish-simulator"] .ws-stage[data-phase="results"] { background: radial-gradient(50% 45% at 90% 5%, rgba(255, 79, 139, .3), transparent 70%), radial-gradient(40% 40% at 5% 20%, rgba(111, 231, 255, .14), transparent 70%), #0b0710; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .tool-root[data-tool="wish-simulator"] *, .tool-root[data-tool="wish-simulator"] *::before, .tool-root[data-tool="wish-simulator"] *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: .001ms !important; }
  .tool-root[data-tool="wish-simulator"] .ws-bn-splash, .tool-root[data-tool="wish-simulator"] .ws-bn-medal, .tool-root[data-tool="wish-simulator"] .ws-bn-collage span { animation: none !important; }
}
