/* Horizontal artist discovery and individual portfolios. */
.artist-showcase{overflow:hidden}
.artist-showcase__title{text-align:center;font-size:clamp(1.3rem,2.85vw,2.7rem);line-height:1.12;letter-spacing:-.045em;white-space:nowrap;position:relative;z-index:3}
.title-swap{font:inherit;position:relative;display:inline-block;width:1.02em;height:1.02em;margin:0 .04em;padding:0;vertical-align:-.11em;border:0;background:var(--text);color:var(--bg);cursor:pointer;overflow:visible}
.title-swap>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:none!important}
.title-swap__name{position:absolute;z-index:8;top:calc(100% + 10px);left:50%;transform:translateX(-50%);padding:.55rem .8rem;white-space:nowrap;font:500 .75rem/1.4 var(--body);letter-spacing:0;text-transform:none;background:var(--text);color:var(--bg);visibility:hidden;pointer-events:none}
.title-swap__name::before{content:'';position:absolute;top:-4px;left:calc(50% - 4px);width:8px;height:8px;background:inherit;transform:rotate(45deg)}
.title-swap:hover .title-swap__name,.title-swap:focus-visible .title-swap__name,.title-swap[data-open=true] .title-swap__name{visibility:visible}
.artist-showcase__controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2.75rem;margin-bottom:1rem}
.title-motion{display:flex;align-items:center;gap:.75rem;min-height:44px;border:0;background:transparent;padding:0;color:var(--muted);font-size:.625rem;text-decoration:underline;text-underline-offset:4px}
.artist-paging{display:flex;align-items:center;gap:.65rem}
.artist-position{font-size:.6875rem;font-variant-numeric:tabular-nums;color:var(--muted);margin-inline-end:.65rem;min-width:5rem;text-align:right}
.artist-prev,.artist-next{display:grid;place-items:center;width:44px;height:44px;padding:0;background:transparent;color:var(--text);border:1px solid var(--line)}
.artist-prev .icon{transform:rotate(180deg)}
.artist-prev:disabled,.artist-next:disabled{opacity:.3;cursor:default}
.artist-track{list-style:none;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 96px)/2);gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--line) transparent;margin:0;padding:0 0 1.5rem;outline-offset:4px}
.artist-slide{min-width:0;scroll-snap-align:start;scroll-snap-stop:normal}
.artist-preview{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:14px;height:100%}
.artist-preview__work{display:block;min-width:0;background:#c7c3bb;overflow:hidden;align-self:start}
.artist-preview__work>img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center;outline:1px solid #00000015;outline-offset:-1px}
.artist-preview__info{display:flex;flex-direction:column;min-width:0;align-items:flex-start;gap:.6rem;padding-bottom:0}
.artist-preview__portrait{width:100%;aspect-ratio:1.1;object-fit:cover;object-position:var(--portrait-position,50% 23%);filter:grayscale(1);outline:1px solid #00000015;outline-offset:-1px}
.artist-preview h3{font:500 .75rem/1.4 var(--body);letter-spacing:0;text-transform:uppercase}
.artist-preview__info>p{font-size:.6875rem;line-height:1.55;margin-top:auto;padding-top:1rem;color:var(--text);text-wrap:pretty}
.artist-preview__more{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:44px;width:100%;padding:.6rem .7rem;border:1px solid #77736b;font-size:.6875rem;line-height:1.4}
.artist-preview__more .icon{width:17px;height:17px}
.artist-page{padding-bottom:0}
.artist-profile{padding-top:2.5rem;padding-bottom:5rem}
.artist-back{font-size:.6875rem;margin-bottom:1.5rem;color:var(--muted)}
.artist-profile h1{font-size:clamp(2rem,4vw,4rem);line-height:1.12;letter-spacing:-.035em;margin-bottom:2.5rem}
.artist-profile__intro{display:grid;grid-template-columns:minmax(160px,240px) minmax(250px,340px) 1fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.artist-profile__photo>img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:var(--portrait-position,50% 23%);filter:grayscale(1);outline:1px solid #00000015;outline-offset:-1px}
.artist-instagram{margin-top:1rem;width:fit-content;min-height:44px;font-size:.75rem;background:var(--text);color:var(--bg);border-color:var(--text);gap:1.5rem}
.artist-profile__copy{display:flex;flex-direction:column;min-height:270px;gap:2.5rem;justify-content:space-between;padding-top:.15rem}
.artist-profile__copy p{font-size:.8125rem;color:var(--text);line-height:1.7;max-width:39ch;margin:0}
.artist-profile__copy a{text-decoration:underline;text-underline-offset:3px}
.artist-profile__paging{align-self:end;justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:1rem;font-size:.75rem}
.artist-profile__paging>span{font-variant-numeric:tabular-nums}
.artist-profile__paging .text-link{font-size:.6875rem;gap:.75rem}
.artist-gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(140px,16.5vw,230px);grid-auto-flow:dense;gap:12px;padding-bottom:1rem}
.artist-gallery__item{min-width:0;min-height:0;grid-column:span 1;grid-row:span 1;overflow:hidden}
.artist-gallery__item--0,.artist-gallery__item--3{grid-column:span 2;grid-row:span 2}
.artist-gallery__item--6,.artist-gallery__item--7{grid-column:span 3;grid-row:span 3}
.artist-gallery__item>a{position:relative;display:block;width:100%;height:100%;background:#c7c3bb}
.artist-gallery__item img{width:100%;height:100%;object-fit:cover;object-position:center;outline:1px solid #00000015;outline-offset:-1px}
.artist-gallery__contact{grid-column:1/-1;grid-row:span 2;background:var(--surface);padding:3rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1.5rem}
.artist-gallery__contact h2{font-size:clamp(1.5rem,3vw,2.5rem)}
.artist-gallery__contact p{max-width:45ch;font-size:.875rem}
.artist-page__end{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:3rem 4rem}
.artist-page__end .text-link{font-size:.75rem}
@media(hover:hover){.artist-preview__more:hover{background:var(--text);color:var(--bg)}.artist-prev:not(:disabled):hover,.artist-next:not(:disabled):hover{border-color:var(--text)}}
@media(max-width:1080px){.artist-track{grid-auto-columns:calc((100% - 72px)/2);gap:18px}.artist-preview{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px}.artist-preview__info>p{font-size:.625rem;padding-top:.6rem}.artist-preview h3{font-size:.6875rem}.artist-preview__more{font-size:.625rem;padding-inline:.5rem}.artist-profile__intro{grid-template-columns:200px minmax(220px,1fr);gap:2.5rem}.artist-profile__paging{grid-column:2;flex-direction:row;justify-content:space-between;justify-self:stretch;align-items:center}.artist-profile__copy{min-height:250px}.artist-profile{padding-bottom:3.5rem}}
@media(max-width:900px){.artist-track{grid-auto-columns:calc(100% - 52px);gap:20px}.artist-preview{grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:14px}.artist-preview__info>p{font-size:.75rem}.artist-preview h3{font-size:.875rem}.artist-preview__more{font-size:.75rem;padding-inline:.75rem}.artist-showcase__title{font-size:clamp(1.2rem,4.3vw,2rem)}.artist-profile__intro{grid-template-columns:170px 1fr;gap:2rem}.artist-profile__copy p{font-size:.75rem}.artist-profile__copy{min-height:210px;gap:1.5rem}.artist-gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:23vw}.artist-gallery__item--0,.artist-gallery__item--3{grid-column:span 2;grid-row:span 2}.artist-gallery__item--6,.artist-gallery__item--7{grid-column:span 2;grid-row:span 2}}
@media(max-width:520px){.artist-showcase__title{font-size:clamp(1.08rem,5.8vw,1.7rem)}.artist-showcase__controls{margin-top:1.75rem;margin-bottom:1rem}.title-motion{font-size:.5625rem;gap:.5rem}.artist-position{font-size:.625rem;min-width:3.5rem;margin-inline-end:.2rem}.artist-paging{gap:.5rem}.artist-track{grid-auto-columns:calc(100% - 34px);gap:14px;padding-bottom:1rem}.artist-preview{grid-template-columns:minmax(75px,.85fr) minmax(0,1.15fr);gap:.8rem 1rem;align-items:start}.artist-preview__work{grid-column:1/-1;grid-row:1}.artist-preview__work>img{aspect-ratio:1/1.12}.artist-preview__info{display:contents}.artist-preview__portrait{grid-column:1;grid-row:2/4;aspect-ratio:4/5;height:100%;object-fit:cover}.artist-preview h3{grid-column:2;grid-row:2;font-size:.6875rem;align-self:start}.artist-preview__info>p{grid-column:2;grid-row:3;font-size:.6875rem;line-height:1.55;padding:0;align-self:end;margin:0}.artist-preview__more{grid-column:1/-1;grid-row:4;margin-top:.1rem;font-size:.75rem;padding:.65rem .75rem}.artist-showcase{padding-block:3rem}.artist-profile{padding-top:1.5rem;padding-bottom:2.5rem}.artist-back{margin-bottom:1rem}.artist-profile h1{font-size:clamp(1.7rem,7vw,2.5rem);margin-bottom:1.75rem}.artist-profile__intro{grid-template-columns:110px minmax(0,1fr);gap:1.5rem}.artist-profile__copy{min-height:0;gap:1.5rem}.artist-profile__copy p{font-size:.6875rem;line-height:1.65}.artist-instagram{font-size:.625rem;padding:.6rem;gap:.5rem;width:100%}.artist-instagram .icon{width:15px;height:15px}.artist-profile__paging{grid-column:1/-1;margin-top:.5rem}.artist-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:42vw;gap:8px}.artist-gallery__item{grid-column:span 1;grid-row:span 1}.artist-gallery__item--0,.artist-gallery__item--3,.artist-gallery__item--6{grid-column:span 2;grid-row:span 2}.artist-gallery__item--7{grid-column:span 2;grid-row:span 2}.artist-gallery__contact{padding:1.5rem;grid-row:span 3}.artist-gallery__contact p{font-size:.75rem}.artist-page__end{align-items:flex-start;flex-direction:column;padding-block:2rem 3rem;gap:1.25rem}.title-swap__name{font-size:.6875rem}}
@media(prefers-reduced-motion:reduce){.artist-track{scroll-behavior:auto}}

.title-swap::after{content:"";position:absolute;inset:-5px}.title-swap[data-dismissed=true] .title-swap__name{visibility:hidden}

.title-swap__name{top:auto;bottom:calc(100% + 10px)}.title-swap__name::before{top:auto;bottom:-4px}

/* Match the reference's broad canvas and large editorial scale. */
.artist-showcase,.artist-page{--page-gutter:clamp(12px,1.6vw,32px)}
.artist-showcase>.container,.artist-page>.container{max-width:none}
.artist-showcase{padding-block:clamp(2.5rem,4vw,5rem)}
.artist-showcase__title{font-size:5.8vw;line-height:1.02;letter-spacing:-.045em}
.artist-showcase__controls{margin-top:2rem;margin-bottom:1rem}
.title-motion,.artist-position{font-size:.8125rem}
.artist-preview__work>img{aspect-ratio:8/9}
.artist-preview__portrait{aspect-ratio:5/4}
.artist-preview h3{font-size:1rem}
.artist-preview__info>p{font-size:.875rem;line-height:1.5}
.artist-preview__more{font-size:.875rem;min-height:50px;padding:.75rem}
.artist-preview__more .icon{width:21px;height:21px}
.artist-profile h1{font-size:clamp(2.25rem,4.8vw,6rem)}
.artist-profile__intro{grid-template-columns:minmax(180px,25%) minmax(260px,27%) 1fr;gap:clamp(2rem,6vw,6.25rem)}
.artist-profile__photo>img{aspect-ratio:5/4}
.artist-profile__copy p{font-size:1rem;line-height:1.65}
.artist-back,.artist-instagram,.artist-profile__paging,.artist-profile__paging .text-link,.artist-page__end .text-link{font-size:.875rem}
.artist-gallery{grid-auto-rows:18vw}
@media(max-width:1080px){.artist-preview h3{font-size:.875rem}.artist-preview__info>p,.artist-preview__more{font-size:.8125rem}.artist-profile__intro{grid-template-columns:minmax(180px,30%) minmax(0,1fr);gap:2.5rem}.artist-profile__copy p{font-size:.9375rem}}
@media(max-width:900px){.artist-showcase__title{font-size:5.7vw}.artist-preview h3{font-size:1rem}.artist-preview__info>p,.artist-preview__more{font-size:.9375rem}.artist-gallery{grid-auto-rows:25vw}.artist-profile__copy{min-height:0}}
@media(max-width:520px){.artist-showcase{padding-block:2rem}.artist-showcase__title{font-size:6.05vw}.artist-showcase__controls{margin-top:1.5rem;margin-bottom:.75rem}.title-motion,.artist-position{font-size:.6875rem}.artist-preview__work>img{aspect-ratio:1/1.08}.artist-preview__portrait{aspect-ratio:4/5}.artist-preview h3{font-size:.875rem}.artist-preview__info>p{font-size:.8125rem;line-height:1.5}.artist-preview__more{font-size:.875rem}.artist-profile h1{font-size:8.5vw}.artist-profile__intro{grid-template-columns:125px minmax(0,1fr);gap:1.25rem}.artist-profile__copy p{font-size:.8125rem;line-height:1.6}.artist-instagram{font-size:.6875rem}.artist-profile__paging,.artist-profile__paging .text-link{font-size:.75rem}.artist-gallery{grid-auto-rows:45vw}}
@media(max-width:360px){.artist-profile__intro{grid-template-columns:105px minmax(0,1fr);gap:1rem}.artist-preview__info>p{font-size:.75rem}}

.artist-preview__work{position:relative;aspect-ratio:8/9;align-self:stretch}.artist-preview__work>img{position:absolute;inset:0;height:100%}
@media(max-width:520px){.artist-preview__work{aspect-ratio:1/1.08}}

/* Mobile: bigger title with the swap tile locked to the cap height, and compact cards
   (work photo on top, portrait + name + style beside it, details button below). */
@media(max-width:900px){
.artist-showcase{padding-block:2.25rem 2rem}
.artist-showcase__title{font-size:6.7vw;line-height:1.14;letter-spacing:-.04em}
.title-swap__name{font-size:.75rem}
.artist-showcase__controls{margin-top:1.25rem;margin-bottom:.75rem}
.artist-track{grid-auto-columns:calc(100% - 44px);gap:12px;padding-bottom:1rem;scroll-padding-inline:0;-webkit-overflow-scrolling:touch}
.artist-preview{grid-template-columns:minmax(88px,34%) minmax(0,1fr);grid-template-rows:auto auto auto;gap:.75rem 1rem;align-items:stretch}
.artist-preview__work{grid-column:1/-1;grid-row:1;aspect-ratio:1/.92}
.artist-preview__info{display:contents}
.artist-preview__portrait{grid-column:1;grid-row:2;aspect-ratio:4/5;height:auto;width:100%;align-self:start}
.artist-preview h3{grid-column:2;grid-row:2;align-self:start;font-size:.875rem;line-height:1.3}
.artist-preview__info>p{grid-column:2;grid-row:2;align-self:end;margin:0;padding:0;font-size:.8125rem;line-height:1.5}
.artist-preview__more{grid-column:1/-1;grid-row:3;min-height:48px;font-size:.875rem}
}
@media(max-width:360px){.artist-track{grid-auto-columns:calc(100% - 32px)}.artist-preview__info>p{font-size:.75rem}}

/* The swap tile takes the exact box of the H it replaces: cap height, on the baseline. */
.title-swap{width:.93em;height:.7em;margin:0 .05em;vertical-align:0}
@media(max-width:620px){.title-motion,.artist-position,.artist-instagram{font-size:.75rem}}

/* Style and piercing pages: intro copy, artist cards, credited gallery, links to other styles. */
.style-page .artist-profile h1{margin-bottom:2rem}
.style-page__intro{max-width:62ch;display:flex;flex-direction:column;gap:1.1rem}
.style-page__intro p{font-size:1rem;line-height:1.7;color:var(--text);margin:0}
.style-page__intro .style-page__visit{font-size:.875rem;color:var(--muted);padding-top:1rem;border-top:1px solid var(--line)}
.style-page__visit a{text-decoration:underline;text-underline-offset:3px;color:var(--text)}
.style-artists{padding-bottom:3rem}
.style-artists h2,.style-more h2{font-family:var(--body);font-size:.875rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1rem}
.style-artists ul,.style-more ul{list-style:none;margin:0;padding:0}
.style-artists ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.style-artist{display:grid;grid-template-columns:72px 1fr 21px;gap:1rem;align-items:center;padding:.75rem;border:1px solid var(--line);min-height:96px}
.style-artist img{width:72px;height:72px;object-fit:cover;object-position:var(--portrait-position,50% 23%);filter:grayscale(1)}
.style-artist span{display:flex;flex-direction:column;gap:.2rem;font-size:.8125rem;line-height:1.45;color:var(--muted)}
.style-artist strong{font-size:.9375rem;color:var(--text);font-weight:500}
.artist-gallery__item{position:relative}
.artist-gallery__credit{position:absolute;left:.5rem;bottom:.5rem;z-index:1;padding:.3rem .55rem;background:var(--neutral-950);color:var(--neutral-50);font-size:.75rem;line-height:1.3}
.artist-gallery__credit a{text-decoration:underline;text-underline-offset:2px}
.style-more{padding-block:2.5rem 0}
.style-more ul{display:flex;flex-wrap:wrap;gap:.5rem 2rem}
.style-more .text-link{font-size:.875rem}
@media(hover:hover){.style-artist:hover{border-color:var(--text)}}
@media(max-width:620px){.style-page__intro p{font-size:.875rem}.style-page__intro .style-page__visit{font-size:.8125rem}.style-artists{padding-bottom:2rem}.style-artist{grid-template-columns:60px 1fr 18px;gap:.75rem}.style-artist img{width:60px;height:60px}.style-more{padding-top:2rem}.style-more ul{flex-direction:column;gap:0}}
@media(min-width:621px){.artist-gallery--few{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:30vw}.artist-gallery--few .artist-gallery__item{grid-column:span 1;grid-row:span 1}}
