/* Портреты, окно диалога визуальной новеллы и блок «Кто есть кто» */
.face{position:relative;overflow:hidden;border-radius:50%;flex:none}
.face-w{background:var(--face-w)}
.face-b{background:var(--face-b)}
.face-art{position:absolute;max-width:none;height:auto;display:block;pointer-events:none;user-select:none}

.vn{
  --face:84px;
  position:relative;margin-top:34px;
  display:grid;grid-template-columns:var(--face) minmax(0,1fr);gap:16px;align-items:center;
  background:var(--vn-bg);color:var(--vn-ink);
  border:3px solid var(--line);border-radius:16px 16px 16px 4px;
  padding:16px 34px 16px 14px;min-height:118px;cursor:pointer;
  box-shadow:7px 7px 0 var(--accent);
}
.vn[data-team="w"]{--plate:var(--plate-w)}
.vn[data-team="b"]{--plate:var(--plate-b)}
.vn-face{width:var(--face);height:var(--face);border:3px solid var(--vn-ink)}
.vn-name{
  position:absolute;top:-19px;left:calc(var(--face) + 26px);
  background:var(--plate);color:#FFFFFF;border:3px solid var(--line);border-radius:8px;
  padding:5px 14px;transform:skewX(-10deg);
}
.vn-name span{display:block;transform:skewX(10deg);font-family:var(--font-display);font-size:14px;line-height:1.3;white-space:nowrap}
.vn-text{margin:0;font-size:16px;line-height:1.6;font-weight:500;min-height:3.2em;padding-top:6px}
.vn-ja{margin:2px 0 0;font-size:13px;line-height:1.4;opacity:.72}
.vn-next{position:absolute;right:14px;bottom:12px;width:12px;height:10px;color:var(--accent);animation:nudge 1s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}

.cast{margin-top:30px;display:flex;flex-direction:column;gap:12px}
.cast h2{font-family:var(--font-display);font-weight:400;font-size:17px;margin:0}
.cast-grid{display:grid;grid-template-columns:repeat(6, minmax(0,1fr));gap:12px 10px}
.cast-item{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;min-width:0}
.cast-pics{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:120px;border:2px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:4px}
.cast-pics span{position:relative;aspect-ratio:3 / 4}
.cast-pics span:first-child{background:var(--sq-l)}
.cast-pics span:last-child{background:var(--sq-d)}
.cast-pics .art{position:absolute;left:4%;bottom:3%;width:92%;height:92%;max-width:none;object-fit:contain;object-position:50% 100%;display:block}
.cast-chess{font-weight:800;font-size:13.5px;line-height:1.2}
.cast-chess code{font-weight:700;font-size:11px;color:var(--accent)}
.cast-role{font-size:12px;line-height:1.3;color:var(--muted)}

@media (max-width: 520px){
  .cast-grid{grid-template-columns:repeat(3, minmax(0,1fr))}
  .vn{--face:62px;gap:12px;padding-right:28px}
  .vn-text{font-size:15px}
}
