/* ==== MMODude fx v7.9.229 (generated by _tools/gen/vendorfx.py; edit there) ==== */

/* --- fade-in on scroll (classes only ever added by /js/reveal.js) --- */
.rv{ opacity:0; transform:translateY(14px); }
.rv.rv-in{ opacity:1; transform:none; transition:opacity .55s ease, transform .55s cubic-bezier(.2,.7,.2,1) !important; }

/* --- rarity glow --- */
.vendor-list .vendor-entry[class*="tier-"]{ position:relative; transition:border-color .2s ease, box-shadow .25s ease; }
.vendor-list .vendor-entry.tier-legendary{ border-color:rgba(255,128,0,.38); box-shadow:0 0 18px rgba(255,128,0,.09), inset 0 0 22px rgba(255,128,0,.035); }
.vendor-list .vendor-entry.tier-epic{ border-color:rgba(182,92,242,.32); box-shadow:0 0 16px rgba(182,92,242,.08); }
.vendor-list .vendor-entry.tier-rare{ border-color:rgba(59,140,255,.28); box-shadow:0 0 14px rgba(59,140,255,.07); }
.vendor-list .vendor-entry.top{ border-color:var(--amber); }
.vendor-list .vendor-entry.top.tier-legendary{ box-shadow:0 0 0 1px rgba(245,166,35,.2), 0 0 22px rgba(255,128,0,.14), inset 0 0 22px rgba(255,128,0,.04); }
.vendor-list .vendor-entry.tier-legendary:hover, .vendor-list .vendor-entry.tier-legendary:active, .vendor-list .vendor-entry.tier-legendary.vt-open{ border-color:#ff8000; box-shadow:0 0 0 1px rgba(255,128,0,.35), 0 0 28px rgba(255,128,0,.22), inset 0 0 26px rgba(255,128,0,.06); }
.vendor-list .vendor-entry.tier-epic:hover, .vendor-list .vendor-entry.tier-epic:active, .vendor-list .vendor-entry.tier-epic.vt-open{ border-color:#b65cf2; box-shadow:0 0 0 1px rgba(182,92,242,.3), 0 0 24px rgba(182,92,242,.2); }
.vendor-list .vendor-entry.tier-rare:hover, .vendor-list .vendor-entry.tier-rare:active, .vendor-list .vendor-entry.tier-rare.vt-open{ border-color:#3b8cff; box-shadow:0 0 0 1px rgba(59,140,255,.28), 0 0 22px rgba(59,140,255,.18); }
.vendor-list .vendor-entry.tier-common:hover, .vendor-list .vendor-entry.tier-common:active{ border-color:#5a5f6b; box-shadow:0 0 16px rgba(232,232,232,.06); }
/* Legendary shimmer: a soft light sweep, clipped to the card by its own radius (no overflow needed) */
.vendor-list .vendor-entry.tier-legendary::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(105deg, transparent 38%, rgba(255,170,70,.075) 48%, rgba(255,210,140,.11) 50%, rgba(255,170,70,.075) 52%, transparent 62%);
  background-size:300% 100%; background-repeat:no-repeat; animation:fx-shimmer 7s ease-in-out infinite; }
.vendor-list .vendor-entry.tier-legendary > *:not(.vt-tip){ position:relative; z-index:1; }
@keyframes fx-shimmer{ 0%,55%{ background-position:120% 0; } 100%{ background-position:-20% 0; } }

/* --- item tooltip --- */
.vendor-entry .vname.vt-trigger{ cursor:pointer; text-decoration:underline dotted rgba(255,255,255,.28); text-underline-offset:4px; text-decoration-thickness:1px; -webkit-tap-highlight-color:transparent; }
.vendor-entry .vname.vt-trigger::after{
  content:"i"; display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; margin-left:6px;
  border-radius:50%; border:1px solid currentColor; font:700 10px/1 'Inter',sans-serif; vertical-align:2px; opacity:.6; text-decoration:none; text-shadow:none; }
.vendor-entry .vname.vt-trigger:focus-visible{ outline:2px solid var(--amber); outline-offset:3px; border-radius:3px; }
.vendor-entry.vt-open{ z-index:20; }
.vt-tip{
  position:absolute; z-index:30; width:300px; max-width:calc(100% - 16px); padding:12px 14px 12px; border-radius:6px;
  background:linear-gradient(180deg,#0c1324 0%,#080c17 100%); border:1px solid var(--tc,#7a7f8c);
  box-shadow:0 0 0 1px rgba(0,0,0,.6), 0 14px 40px rgba(0,0,0,.65);
  box-shadow:0 0 0 1px rgba(0,0,0,.6), 0 14px 40px rgba(0,0,0,.65), 0 0 18px color-mix(in srgb, var(--tc,#888) 25%, transparent);
  font:13px/1.45 'Inter',sans-serif; color:#f2f2f2; text-transform:none; text-align:left; animation:vt-in .16s ease-out; }
@keyframes vt-in{ from{ opacity:0; transform:translateY(-4px); } to{ opacity:1; transform:none; } }
.vt-tip .vt-name{ font:700 16px/1.25 'Oswald',sans-serif; color:var(--tc); letter-spacing:.01em; }
.vt-tip .vt-tier{ font-size:12px; color:var(--tc); opacity:.85; margin:1px 0 6px; }
.vt-tip .vt-score{ color:#fff; margin:0 0 4px; }
.vt-tip .vt-score b{ font-family:'JetBrains Mono',monospace; }
.vt-tip .vt-stats{ list-style:none; margin:0 0 6px; padding:0; }
.vt-tip .vt-stats li{ margin:0; padding:0; color:#fff; }
.vt-tip .vt-stats li::before{ display:none; }
.vt-tip .vt-v{ font-family:'JetBrains Mono',monospace; }
.vt-tip .vt-warn{ color:#ff5d5d; margin:2px 0 6px; }
.vt-tip .vt-equip{ color:#1eff00; margin:6px 0 4px; }
.vt-tip .vt-flavor{ color:#ffd100; font-style:italic; margin:0 0 6px; }
.vt-tip .vt-link{ display:inline-block; margin-top:4px; font:600 12.5px/1 'Inter',sans-serif; color:var(--amber); text-decoration:none; }
.vt-tip .vt-link:hover{ text-decoration:underline; }

@media (prefers-reduced-motion: reduce){
  .vendor-list .vendor-entry.tier-legendary::after{ animation:none; display:none; }
  .vt-tip{ animation:none; }
}
/* ==== end fx ==== */
