.k-main{transition:opacity 300ms var(--ease-in-out)}
.k-main.is-leaving{opacity:0}
.k-sec{padding-inline:var(--margin);max-width:var(--max-width);margin-inline:auto}
.k-gap{margin-top:var(--section-gap)}
.k-bgap{margin-top:var(--block-gap)}
.k-hero{position:relative;padding:clamp(32px,6vw,96px) var(--margin) 0;min-height:calc(100svh - var(--header-h));display:grid;grid-template-columns:repeat(var(--grid-cols),minmax(0,1fr));column-gap:var(--gutter);align-content:start}
.k-hero__sig{grid-column:1/-1;grid-row:1;position:relative;z-index:2;pointer-events:none}
.k-hero__img{grid-column:8/span 4;grid-row:1/span 2;margin-top:clamp(60px,9vw,170px);position:relative;z-index:1}
.k-hero__aside{grid-column:1/span 4;grid-row:2;align-self:end;display:flex;flex-direction:column;gap:20px;padding-bottom:var(--space-7);margin-top:var(--space-8)}
.k-hero__lead{font-family:var(--font-serif);font-weight:300;font-size:var(--fs-lead);line-height:1.3;max-width:24ch;text-wrap:pretty}
@media (max-width:1023px){.k-hero__img{grid-column:4/span 5}.k-hero__aside{grid-column:1/span 4}}
@media (max-width:639px){.k-hero{min-height:0}.k-hero__img{grid-column:2/span 3;grid-row:2;margin-top:var(--space-6)}.k-hero__aside{grid-row:3;grid-column:1/-1;margin-top:var(--space-7)}}
.k-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;padding-bottom:var(--space-5);border-bottom:var(--rule-strong)}
.k-pagehead{padding-top:clamp(40px,7vw,120px)}
.k-pagehead .mp-heading{margin-left:-0.04em}
.k-count{font:var(--type-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-secondary)}
.k-toggle{display:flex;gap:20px}
.k-toggle button{font:var(--type-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-secondary);min-height:44px;border-bottom:1px solid transparent}
.k-toggle button[aria-pressed="true"]{color:var(--text);border-bottom-color:var(--text)}
.k-stack{display:flex;flex-direction:column;gap:var(--section-gap)}
.k-dark{padding-block:var(--section-gap)}
.k-two{display:grid;grid-template-columns:repeat(var(--grid-cols),minmax(0,1fr));column-gap:var(--gutter);row-gap:var(--space-7)}
.k-two__a{grid-column:1/span 4}.k-two__b{grid-column:6/span 7}
@media (max-width:1023px){.k-two__a{grid-column:1/-1}.k-two__b{grid-column:1/-1}}
.k-statement{padding-left:calc(100% / 12 * 2)}
@media (max-width:639px){.k-statement{padding-left:0}}
.k-note{font-size:var(--fs-small);color:var(--text-secondary);border-top:var(--rule);padding-top:12px;max-width:var(--measure-prose)}
.k-contact__mail{font-family:var(--font-serif);font-weight:300;font-size:clamp(34px,6.2vw,104px);line-height:1;letter-spacing:-0.02em;word-break:break-word}
.k-article-body{display:grid;grid-template-columns:repeat(var(--grid-cols),minmax(0,1fr));column-gap:var(--gutter)}
.k-article-body > .mp-prose{grid-column:3/span 7}
.k-article-body > aside{grid-column:10/span 3;align-self:start;position:sticky;top:calc(var(--header-h) + 24px)}
@media (max-width:1023px){.k-article-body > .mp-prose{grid-column:1/-1}.k-article-body > aside{display:none}}
.k-filter{display:flex;gap:20px;flex-wrap:wrap}
.k-filter button{font:var(--type-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-secondary);min-height:44px;display:inline-flex;gap:8px;align-items:center}
.k-filter button[aria-pressed="true"]{color:var(--text)}
.k-filter button .mp-disc{opacity:0}.k-filter button[aria-pressed="true"] .mp-disc{opacity:1}
.k-bioint{display:grid;grid-template-columns:repeat(var(--grid-cols),minmax(0,1fr));column-gap:var(--gutter);row-gap:var(--space-7);margin-top:var(--block-gap);align-items:start}
.k-bioint__img{grid-column:1/span 4}
.k-bioint__txt{grid-column:6/span 6;display:flex;flex-direction:column;gap:var(--space-6)}
.k-bioint__lead{font-family:var(--font-serif);font-weight:400;font-size:clamp(24px,2.4vw,36px);line-height:1.22;letter-spacing:-0.012em;text-wrap:pretty;max-width:30ch}
@media (max-width:899px){.k-bioint__img{grid-column:1/span 7}.k-bioint__txt{grid-column:1/-1}}
.k-bio{display:grid;grid-template-columns:repeat(var(--grid-cols),minmax(0,1fr));column-gap:var(--gutter);padding-top:var(--space-6)}
.k-bio__toc{grid-column:1/span 3;position:sticky;top:calc(var(--header-h) + 24px);align-self:start;display:flex;flex-direction:column}
.k-bio__tocitem{display:block;padding:6px 0;font-size:var(--fs-small);line-height:1.4;color:var(--text-secondary);transition:color var(--dur-fast)}
.k-bio__tocitem:hover{color:var(--interactive-hover)}
.k-bio__body{grid-column:5/span 6;display:flex;flex-direction:column;gap:var(--space-9)}
.k-bio__chapter{display:flex;flex-direction:column;gap:var(--space-4);scroll-margin-top:96px}
.k-bio__h{font-family:var(--font-serif);font-weight:400;font-size:clamp(24px,2.2vw,32px);line-height:1.15;letter-spacing:-0.01em}
@media (max-width:1023px){.k-bio__toc{display:none}.k-bio__body{grid-column:1/-1}}
.k-head + * > .mp-row:first-child,.k-head + * > .mp-article:first-child,.k-head + .mp-archive > .mp-archive__group:first-child{border-top:0}

.k-h1{font-family:var(--font-serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-0.035em;line-height:.9}

/* works — image tiles, info on hover / first tap */
.k-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:clamp(32px,4vw,72px);align-items:start}
.k-tile__a{position:relative;display:block;overflow:hidden;aspect-ratio:4/5;background:var(--placeholder);color:var(--text)}
.k-tile__a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1200ms var(--ease-out),filter var(--dur-base) var(--ease-out)}
.k-tile__info{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:clamp(16px,1.6vw,24px);background:color-mix(in oklab,var(--bg) 62%,transparent);opacity:0;transition:opacity var(--dur-base) var(--ease-out)}
.k-tile__t{font-family:var(--font-serif);font-weight:300;font-style:italic;font-size:clamp(26px,2.4vw,40px);line-height:1;letter-spacing:-0.02em;transform:translateY(8px);transition:transform var(--dur-base) var(--ease-out)}
.k-tile__m{font:var(--type-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-secondary)}
.k-tile__a:hover img,.k-tile__a:focus-visible img,.k-tile.is-open img{transform:scale(1.03);filter:grayscale(.4)}
.k-tile__a:hover .k-tile__info,.k-tile__a:focus-visible .k-tile__info,.k-tile.is-open .k-tile__info{opacity:1}
.k-tile__a:hover .k-tile__t,.k-tile__a:focus-visible .k-tile__t,.k-tile.is-open .k-tile__t{transform:none}
.k-tile:nth-child(8n+1){grid-column:1/span 4}.k-tile:nth-child(8n+1) .k-tile__a{aspect-ratio:4/5}
.k-tile:nth-child(8n+2){grid-column:6/span 3;margin-top:18%}.k-tile:nth-child(8n+2) .k-tile__a{aspect-ratio:3/4}
.k-tile:nth-child(8n+3){grid-column:10/span 3;margin-top:6%}.k-tile:nth-child(8n+3) .k-tile__a{aspect-ratio:1/1}
.k-tile:nth-child(8n+4){grid-column:2/span 3}.k-tile:nth-child(8n+4) .k-tile__a{aspect-ratio:2/3}
.k-tile:nth-child(8n+5){grid-column:6/span 5;margin-top:10%}.k-tile:nth-child(8n+5) .k-tile__a{aspect-ratio:4/3}
.k-tile:nth-child(8n+6){grid-column:1/span 3;margin-top:4%}.k-tile:nth-child(8n+6) .k-tile__a{aspect-ratio:1/1}
.k-tile:nth-child(8n+7){grid-column:5/span 4}.k-tile:nth-child(8n+7) .k-tile__a{aspect-ratio:4/5}
.k-tile:nth-child(8n+8){grid-column:10/span 3;margin-top:22%}.k-tile:nth-child(8n+8) .k-tile__a{aspect-ratio:3/4}
@media (max-width:899px){.k-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}.k-tile:nth-child(n){grid-column:span 3;margin-top:0}.k-tile:nth-child(3n+1){grid-column:1/span 4}.k-tile:nth-child(3n+2){grid-column:5/span 2;margin-top:30%}.k-tile:nth-child(3n){grid-column:2/span 3}}
@media (max-width:479px){.k-tiles{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:24px}.k-tile:nth-child(n){grid-column:span 1;margin-top:0}.k-tile:nth-child(2n){margin-top:28%}.k-tile:nth-child(3n+1){grid-column:1/-1}.k-tile:nth-child(3n+1) .k-tile__a{aspect-ratio:4/3}}
.k-tile__t{font-size:clamp(20px,1.8vw,32px)}
@media (prefers-reduced-motion: reduce){.k-tile__a img,.k-tile__t{transition:none}}

/* works — tight gaps */
.k-tiles{column-gap:4px;row-gap:4px;align-items:stretch}
.k-tile:nth-child(n){margin-top:0!important}
.k-tile .k-tile__a{height:100%}
@media (max-width:479px){.k-tiles{column-gap:4px;row-gap:4px}}
.k-tile:nth-child(8n+1){grid-column:1/span 4}.k-tile:nth-child(8n+2){grid-column:5/span 3}.k-tile:nth-child(8n+3){grid-column:8/span 5}
.k-tile:nth-child(8n+4){grid-column:1/span 3}.k-tile:nth-child(8n+5){grid-column:4/span 6}.k-tile:nth-child(8n+6){grid-column:10/span 3}
.k-tile:nth-child(8n+7){grid-column:1/span 7}.k-tile:nth-child(8n+8){grid-column:8/span 5}
.k-tile:nth-child(8n+7) .k-tile__a{aspect-ratio:16/9}
@media (max-width:899px){.k-tile:nth-child(n){grid-column:span 3}.k-tile:nth-child(3n+1){grid-column:1/span 4}.k-tile:nth-child(3n+2){grid-column:5/span 2}.k-tile:nth-child(3n){grid-column:1/-1}.k-tile:nth-child(3n) .k-tile__a{aspect-ratio:16/9}}
@media (max-width:479px){.k-tile:nth-child(n){grid-column:span 1}.k-tile:nth-child(3n+1){grid-column:1/-1}}

/* exhibitions — three equal tiles, details on hover / focus / tap */
.k-exh{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.k-exh__item{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--placeholder);outline:none}
.k-exh__item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1200ms var(--ease-out),filter var(--dur-base) var(--ease-out)}
.k-exh__info{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:clamp(16px,1.8vw,28px);background:color-mix(in oklab,var(--bg) 72%,transparent);color:var(--text);opacity:0;transition:opacity var(--dur-base) var(--ease-out)}
.k-exh__date,.k-exh__sub{font:var(--type-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-secondary)}
.k-exh__t{font-family:var(--font-sans);font-weight:400;text-transform:uppercase;font-size:clamp(22px,2.2vw,36px);line-height:.95;letter-spacing:-0.03em}
.k-exh__venue{font-family:var(--font-serif);font-style:italic;font-size:clamp(16px,1.3vw,20px);line-height:1.3;margin-top:6px}
.k-exh__note{font-size:var(--fs-small);line-height:1.4;color:var(--text-secondary)}
.k-exh__item:hover img,.k-exh__item:focus-visible img{transform:scale(1.03);filter:grayscale(.5)}
.k-exh__item:hover .k-exh__info,.k-exh__item:focus-visible .k-exh__info,.k-exh__item:focus-within .k-exh__info{opacity:1}
.k-exh__item:focus-visible{box-shadow:inset 0 0 0 2px var(--focus-ring)}
@media (hover:none){.k-exh__info{opacity:1;background:linear-gradient(to top,color-mix(in oklab,var(--bg) 88%,transparent) 0%,transparent 70%)}}
@media (max-width:899px){.k-exh{grid-template-columns:1fr 1fr}}
@media (max-width:539px){.k-exh{grid-template-columns:1fr}}

/* active chapter in TOC */
.k-bio__tocitem{position:relative;padding-left:16px;transition:color var(--dur-fast),padding var(--dur-base) var(--ease-out)}
.k-bio__tocitem::before{content:"";position:absolute;left:0;top:50%;width:6px;height:1px;background:currentColor;opacity:0;transition:opacity var(--dur-fast),width var(--dur-base) var(--ease-out)}
.k-bio__tocitem.is-active{color:var(--hx-red,var(--accent))}
.k-bio__tocitem.is-active::before{opacity:1;width:10px}

.k-bio__toc{top:max(calc(var(--header-h) + 24px),calc(50vh - 180px))}

.k-widx{margin-top:clamp(96px,12vw,200px)}

/* unified hover caption — works tiles match exhibitions, centred on the image */
.k-tile__info,.k-exh__info{justify-content:center;align-items:center;text-align:center}
.k-tile__t{font-family:var(--font-sans);font-style:normal;font-weight:400;text-transform:uppercase;font-size:clamp(20px,2vw,34px);line-height:.95;letter-spacing:-0.03em;transform:none}
.k-tile__m{font:var(--type-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-secondary);order:-1}
.k-tile__info{gap:8px;background:color-mix(in oklab,var(--bg) 72%,transparent)}
.k-exh__venue{margin-top:4px}
@media (hover:none){.k-exh__info{justify-content:flex-end}}

/* about intro — portrait spans exactly the height of the text column */
@media (min-width:900px){
.k-bioint{align-items:stretch}
.k-bioint__img{position:relative;min-height:420px}
.k-bioint__img > *{position:absolute!important;inset:0;height:100%;margin:0}
.k-bioint__img .mp-figure__frame{height:100%!important;aspect-ratio:auto!important;padding:0!important}
.k-bioint__img img{width:100%;height:100%;object-fit:cover}
.k-bioint__img figcaption{display:none}
}
/* chapters — larger */
.k-bio__tocitem{font-size:clamp(16px,1.15vw,19px);line-height:1.35;padding-block:8px}
.k-bio__toc .k-count{font-size:12px}

.k-pagehead > .k-head{border-bottom:0}

/* works hover = exhibitions hover */
.k-tile__info{gap:8px;padding:clamp(16px,1.8vw,28px);background:color-mix(in oklab,var(--bg) 72%,transparent);color:var(--text)}
.k-tile__info .k-exh__t{font-size:clamp(20px,2vw,34px)}
.k-tile__a:hover img,.k-tile__a:focus-visible img,.k-tile.is-open img{filter:grayscale(.5)}

.k-bio__h{transition:color var(--dur-base) var(--ease-out)}
.k-bio__h.is-active{color:var(--hx-red,var(--accent))}

/* publication covers */
.k-pubs{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.k-pubs .k-exh__item{aspect-ratio:3/4}
@media (max-width:767px){.k-pubs{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* works grid — uniform tiles */
.k-tiles{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-auto-flow:row!important;grid-auto-rows:auto!important;gap:4px!important}
.k-tiles > .k-tile{grid-column:auto!important;grid-row:auto!important;margin:0!important;transform:none!important}
.k-tiles .k-tile__a{aspect-ratio:4/5!important;height:auto!important}
@media (max-width:1023px){.k-tiles{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media (max-width:639px){.k-tiles{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
