/* Публичные страницы: карточка артиста, трек, список.
   Живут в общей системе (ui.css), здесь только их собственная
   раскладка — крупная типографика и много воздуха. */

html{background:var(--ink)}
body.page{font-family:var(--mono);min-height:100vh;display:flex;flex-direction:column}

/* ── шапка и подвал ───────────────────────────────────── */
.page__bar{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:clamp(16px,2vw,26px) clamp(18px,3vw,42px);
  border-bottom:1px solid var(--line)
}
.page__mark{
  font-size:clamp(14px,1.4vw,17px);font-weight:800;letter-spacing:.42em;
  text-indent:.42em;border-bottom:0
}
.page__nav{display:flex;gap:20px;font-size:10px;letter-spacing:.2em;text-transform:uppercase}
.page__nav a{color:var(--dim);border-bottom:0}
.page__nav a:hover{color:var(--paper)}

.page__foot{
  margin-top:auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding:22px clamp(18px,3vw,42px);border-top:1px solid var(--line);
  font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)
}
.page__foot a{color:var(--dim)}

/* ── карточка ─────────────────────────────────────────── */
.card{
  width:100%;max-width:620px;margin:0 auto;
  padding:clamp(30px,5vw,60px) clamp(18px,3vw,26px) 60px;
  display:flex;flex-direction:column;gap:clamp(26px,4vw,42px)
}

.card__top{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}
.card__ava{
  width:clamp(88px,12vw,116px);height:clamp(88px,12vw,116px);
  border:1px solid var(--line);overflow:hidden;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center
}
.card__ava img{width:100%;height:100%;object-fit:cover}
.card__ava span{font-size:38px;font-weight:800;color:var(--dim)}

.card__name{
  font-size:clamp(34px,7vw,64px);font-weight:800;line-height:.95;
  letter-spacing:-.03em;text-transform:uppercase
}
.card__live{
  display:inline-flex;align-items:center;gap:9px;border-bottom:0;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--paper)
}
.card__bio{
  font-size:13px;line-height:1.75;color:var(--paper-dim);max-width:46ch
}
.card__tags{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}

/* ── ссылки: то, ради чего карточкой делятся ──────────── */
.card__links{display:flex;flex-direction:column;gap:9px}
.link{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:17px 20px;border:1px solid var(--line);border-bottom:1px solid var(--line);
  font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  transition:.16s var(--ease)
}
.link:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.link i{font-style:normal;opacity:.5}
.link:hover i{opacity:1}

/* ── цифры ────────────────────────────────────────────── */
.card__stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:1px;background:var(--line);border:1px solid var(--line)
}
.card__stats > div{background:var(--ink);padding:20px 18px;text-align:center}
.card__stats b{display:block;font-size:clamp(22px,3vw,30px);font-weight:800;line-height:1;letter-spacing:-.02em}
.card__stats span{display:block;margin-top:8px;font-size:9px;letter-spacing:.18em;color:var(--dim);text-transform:uppercase}

/* ── треки ────────────────────────────────────────────── */
.card__tracks .ui-h2{margin-top:0}
.row{
  display:grid;grid-template-columns:34px 1fr auto auto;gap:14px;align-items:center;
  padding:12px 0;border-bottom:1px solid var(--line-2)
}
.row__play{
  width:30px;height:30px;border:1px solid var(--line);background:transparent;
  color:var(--paper);cursor:pointer;font-size:9px;transition:.14s var(--ease)
}
.row__play:hover,.row__play.is-on{background:var(--paper);color:var(--ink)}
.row__name{font-size:12.5px;font-weight:700;text-transform:uppercase;border-bottom:0;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row__name:hover{border-bottom:1px solid var(--paper)}
.row__genre{font-size:10px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase}
.row__plays{font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums;min-width:28px;text-align:right}

/* ── призыв ───────────────────────────────────────────── */
.card__cta{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
.card__cta .ui-btn{padding:15px 34px;letter-spacing:.28em}
.card__cta .ui-dim{font-size:10px;letter-spacing:.14em;text-transform:uppercase;max-width:40ch}

@media (max-width:560px){
  .row{grid-template-columns:30px 1fr auto}
  .row__genre{display:none}
}

/* ── список артистов ──────────────────────────────────── */
.grid-a{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1px;
        background:var(--line);border:1px solid var(--line)}
.acard{
  background:var(--ink);padding:26px 20px;display:flex;flex-direction:column;
  align-items:center;gap:12px;text-align:center;border-bottom:0;transition:.16s var(--ease)
}
.acard:hover{background:var(--panel)}
.acard__ava{
  width:64px;height:64px;border:1px solid var(--line);display:flex;
  align-items:center;justify-content:center;font-size:22px;font-weight:800;
  color:var(--dim);overflow:hidden
}
.acard__ava img{width:100%;height:100%;object-fit:cover}
.acard b{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.acard i{font-style:normal;font-size:9.5px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase}

/* ── страница привета ─────────────────────────────────── */
.shout__text{
  margin:0;padding:18px 20px;border-left:2px solid var(--paper);
  font-size:clamp(15px,1.6vw,19px);line-height:1.6;letter-spacing:.01em
}
.shout__when{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.shout__when b{font-size:clamp(22px,3vw,34px);letter-spacing:-.01em}
.shout__when span,.shout__hint{
  font-size:11px;letter-spacing:.1em;color:var(--dim);line-height:1.7;margin:0
}
.shout__clip{width:100%;margin-top:4px}
.shout__acts{display:flex;gap:10px;flex-wrap:wrap}
