/* Episode guide visuals, shared by every page under /episodes/: the quick-links bar, maps with their monsters,
   the people you meet, card art, and the thumbnails on location cards. Square corners throughout. */
/* three pages give the content column no min-width, so wide grids would push it past the shell */
.ep-content{min-width:0}
/* item icons inside running text stay on the line */
.ep-section p img.item-icon{display:inline-block}
.vz-quick{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 26px;padding:10px;border:1px solid rgba(255,255,255,.08);background:rgba(10,14,26,.96)}
.vz-quick a{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:5px 11px;font-size:12px;font-weight:700;color:#cbd5e1;text-decoration:none;border:1px solid rgba(255,255,255,.08);background:rgba(30,38,60,.55);transition:border-color .2s,color .2s,background .2s}
.vz-quick a:hover{color:#fff;border-color:rgba(125,211,252,.45);background:rgba(56,189,248,.1)}
.vz-quick img{width:26px;height:26px;margin-left:-5px;object-fit:contain}
.vz-quick img.vz-face{object-fit:cover;object-position:50% 0;border:1px solid rgba(255,255,255,.1)}
.vz-quick img.vz-cardico{width:20px;height:26px;margin-left:-4px;object-fit:cover;border:1px solid rgba(255,255,255,.14)}
.vz-quick img.vz-mapico{object-fit:cover;border:1px solid rgba(255,255,255,.1)}

.vz-locs{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:14px 0 0}
.vz-loc{display:flex;gap:12px;min-width:0;padding:12px;border:1px solid rgba(255,255,255,.08);background:rgba(2,6,23,.4)}
.vz-map{flex-shrink:0;display:block;width:96px;height:96px;border:1px solid rgba(255,255,255,.1);background:#05070d;transition:border-color .2s}
a.vz-map:hover{border-color:rgba(125,211,252,.55)}
.vz-map img{display:block;width:94px;height:94px;object-fit:contain}
.vz-nomap{background:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(168,85,247,.14),#05070d 75%)}
.vz-loc-body{flex:1;min-width:0}
.vz-loc-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 10px}
.vz-loc-head b{font-size:14px;font-weight:800;color:#fff}
.vz-codes{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:11px;font-weight:600;color:rgba(148,163,184,.75)}
.vz-codes a{color:rgba(125,211,252,.75);text-decoration:none}
.vz-codes a:hover{color:#7dd3fc;text-decoration:underline}
.vz-count{margin-left:auto;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(148,163,184,.7)}
.vz-mobs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px}
.vz-mob{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;padding:6px 6px 8px;text-align:center;text-decoration:none;border:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(30,38,60,.55),rgba(12,16,28,.9));transition:border-color .2s}
a.vz-mob:hover{border-color:rgba(var(--el),.65)}
.vz-art{display:flex;align-items:flex-end;justify-content:center;width:100%;height:72px;margin:0 0 5px;background:radial-gradient(ellipse 55% 26% at 50% 90%,rgba(var(--el,148,163,184),.22),transparent 72%)}
.vz-art img{width:auto;height:auto;max-width:100%;max-height:72px;object-fit:contain}
.vz-mob b{max-width:100%;font-size:11.5px;font-weight:800;line-height:1.25;color:#fff;overflow-wrap:anywhere}
.vz-mob small{margin-top:3px;font-size:10.5px;line-height:1.35;color:rgba(148,163,184,.9)}
.vz-el{color:rgb(var(--el));font-weight:700;white-space:nowrap}
.vz-badge{position:absolute;top:5px;left:5px;padding:1px 5px;font-size:9px;font-style:normal;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fca5a5;background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.35)}
.vz-badge.mvp{color:#fbbf24;background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.42)}
.vz-more{display:inline-block;margin-top:8px;font-size:11px;font-weight:600;color:#7dd3fc;text-decoration:none}
a.vz-more:hover{text-decoration:underline}

.vz-npcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px;margin:12px 0 0}
.vz-npc{display:flex;gap:12px;min-width:0;padding:10px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(30,38,60,.55),rgba(12,16,28,.9))}
.vz-portrait{flex-shrink:0;display:flex;align-items:flex-end;justify-content:center;width:92px;height:128px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:radial-gradient(ellipse 85% 70% at 50% 35%,rgba(168,85,247,.2),rgba(10,14,26,.92) 75%)}
.vz-portrait img{display:block;width:92px;height:128px;object-fit:cover;object-position:50% 0}
.vz-portrait.wide img{object-fit:contain;object-position:50% 50%}
.vz-portrait.solo img{width:auto;height:auto;max-width:88px;max-height:118px;object-fit:contain;margin-bottom:6px}
.vz-portrait.none{display:none}
.vz-npc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.vz-npc-name{font-size:13.5px;font-weight:800;color:#fff}
.vz-npc-role{font-size:11.5px;line-height:1.5;color:rgba(203,213,225,.88)}
.ep-section p.vz-where{margin:auto 0 0;font-size:11.5px;line-height:1.7;color:rgba(148,163,184,.9)}
.vz-sprite{flex-shrink:0;align-self:flex-end;display:flex;align-items:flex-end;justify-content:center;width:54px;min-height:60px;text-decoration:none}
.vz-sprite img{width:auto;height:auto;max-width:54px;max-height:100px;filter:drop-shadow(0 0 6px rgba(168,85,247,.28))}

.vz-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px 10px;margin:12px 0 0}
.vz-card{display:flex;flex-direction:column;min-width:0;text-decoration:none}
.vz-card img{display:block;width:100%;height:auto;aspect-ratio:3/4;margin:0 0 6px;border:1px solid rgba(255,255,255,.14);background:#0b0f1a;transition:border-color .2s}
a.vz-card:hover img{border-color:rgba(125,211,252,.65)}
.vz-card b{font-size:11.5px;font-weight:800;line-height:1.3;color:#fff}
a.vz-card:hover b{color:#7dd3fc}
.vz-card small{margin-top:2px;font-size:10.5px;line-height:1.35;color:rgba(148,163,184,.85)}

.ep-loc.vz-has-thumb{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:12px;align-items:start;align-content:start}
.ep-loc.vz-has-thumb>:not(.vz-locthumb){grid-column:2}
.vz-locthumb{grid-column:1;grid-row:1/span 3;width:64px;height:64px;object-fit:contain;border:1px solid rgba(255,255,255,.1);background:#05070d}

.ep-card.vz-art-card{display:grid;grid-template-columns:60px minmax(0,1fr);column-gap:12px;align-items:start;align-content:start}
.ep-card.vz-art-card>:not(.vz-cardart){grid-column:2}
.vz-cardart{grid-column:1;grid-row:1/span 4;width:60px;height:80px;border:1px solid rgba(255,255,255,.14);background:#0b0f1a}

.ep-mob.vz-mobup{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none}
.ep-mob.vz-mobup .vz-art{height:84px}
.ep-mob.vz-mobup .vz-art img{max-height:84px}
.ep-mob.vz-mobup:hover{border-color:rgba(125,211,252,.45)}

@media(max-width:600px){
.vz-loc{flex-direction:column;gap:10px}
.vz-map{width:100%;height:120px}
.vz-map img{width:100%;height:118px}
.vz-count{margin-left:0}
.vz-mobs{grid-template-columns:repeat(auto-fill,minmax(86px,1fr))}
.vz-art{height:60px}
.vz-art img{max-height:60px}
.vz-mob b{font-size:11px}
.vz-cards{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
.vz-npcs{grid-template-columns:1fr}
}
@media(max-width:520px){
.vz-npc{position:relative}
.vz-sprite{position:absolute;left:62px;top:76px;width:46px;height:62px;min-height:0}
.vz-sprite img{max-width:46px;max-height:62px}
}
