/* Artists: overview grid with filter, artist pages (two-column hero, bio, loop, works) */
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* ---------- filter bar (shared with catalog) ---------- */
.filters{display:grid;gap:14px;margin-bottom:40px;padding-bottom:22px;border-bottom:1px solid var(--line-2)}
.fgroup{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fgroup > .mono{min-width:64px;color:var(--text-dim)}
.fgroup button{min-height:44px;padding:8px 16px;background:none;border:2px solid var(--line-2);color:var(--text);font:600 15px var(--body);cursor:pointer}
.fgroup button:hover{border-color:var(--text)}
.fgroup button[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:var(--ink)}
.fcount{color:var(--text-dim);margin-top:4px;min-height:1.5em}

/* ---------- artist cards ---------- */
.agrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:44px 24px}
@media (max-width:520px){.agrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 14px}}
.ac a{display:grid;gap:6px;text-decoration:none;color:inherit}
.ac-img{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--ink-2);margin-bottom:8px}
.ac-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ac-w{opacity:0;transition:opacity .45s ease}
@media (hover:hover){.ac a:hover .ac-w{opacity:1}}
.ac a:focus-visible .ac-w{opacity:1}
.ac a:focus-visible{outline-offset:6px}
.ac-n{font-size:clamp(18px,1.7vw,22px);font-weight:700;line-height:1.2;overflow-wrap:break-word}
.ac a:hover .ac-n{text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:2px;text-underline-offset:.15em}
@media (prefers-reduced-motion:reduce){.ac-w{display:none}}

.pc-h{font-size:clamp(34px,5vw,72px)}
.pc-t{display:grid;gap:24px;align-content:end;max-width:52ch;color:var(--text-dim)}

/* ---------- artist hero: name left, portrait right, cropped work below ---------- */
.ah{padding-block:clamp(24px,3vw,48px) clamp(48px,6vw,88px)}
.ah .wrap{display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,calc((100vh - 330px) * .6667),440px);grid-template-areas:"text portrait" "text work";column-gap:clamp(32px,5vw,80px);row-gap:14px;align-items:end}
.ah-text{grid-area:text;display:grid;gap:22px;align-content:end;padding-bottom:8px}
.ah h1{font-size:clamp(34px,5.4vw,92px);overflow-wrap:break-word;hyphens:manual}
.ah-line{font-size:15px;color:var(--text)}
.ah-tags{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.theme-link{font-size:15px;font-weight:500;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:2px}
.theme-link::after{content:" →"}
.ah-portrait{grid-area:portrait;margin:0;aspect-ratio:2/3;overflow:hidden;background:var(--ink-2);width:100%}
.ah-portrait img{width:100%;height:100%;object-fit:cover}
.ah-work{grid-area:work;display:grid;gap:8px;padding:0;border:0;background:none;color:var(--text-dim);text-align:left;cursor:zoom-in;width:100%}
.ah-crop{display:block;overflow:hidden;aspect-ratio:3/1;background:var(--ink-2)}
.ah-crop img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform:scale(1.08)}
.ah-work:hover img{filter:brightness(1.08)}
@media (max-width:820px){
  .ah .wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"portrait" "text" "work";row-gap:24px}
  .ah-portrait{aspect-ratio:4/5;max-height:none;justify-self:stretch}
  .ah-crop{aspect-ratio:5/2}
}

/* ---------- bio ---------- */
.a-bio{display:grid;grid-template-columns:minmax(0,65ch) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.bio p{font-style:normal}
.bio p:first-child{font-size:clamp(19px,1.6vw,22px);line-height:1.5}
.a-facts{border-top:2px solid var(--text);padding-top:16px;display:grid;gap:12px;max-width:420px}
.a-facts h3{font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}
.a-facts ul{list-style:none;margin:0;padding:0;display:grid}
.a-facts li{display:grid;gap:2px;padding-block:10px;border-bottom:1px solid var(--line-2)}
.a-facts a{font-weight:700;text-underline-offset:.15em}
@media (max-width:900px){.a-bio{grid-template-columns:minmax(0,1fr)}}

/* ---------- loop ---------- */
.a-loop{padding-bottom:clamp(56px,7vw,104px)}
.a-loop .wrap{display:grid;gap:12px}
.a-loop-box{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--ink-2)}
.a-loop-box video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.a-loop-box .vplay{top:16px;right:16px}

/* ---------- works, film, contact, related ---------- */
.a-film{max-width:880px}
.a-contact .wrap{display:flex;flex-wrap:wrap;gap:24px 48px;align-items:center;justify-content:space-between}
.a-contact h2{font-size:clamp(24px,2.6vw,36px);font-weight:700}
.rel-head{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:end;justify-content:space-between;margin-bottom:40px}
.rel-head h2{font-size:clamp(32px,5vw,72px)}
.rel-foot{margin-top:40px}

/* very tall or wide works stay calm in the grid */

