/* Second iteration (2026-10): home wall, lines of inquiry, work index, social practice, CV folds.
   Uses the tokens of site.css only: no new fonts or colours. */

/* ---- Shared ---- */
.studio-wrap{width:min(100% - (var(--gutter) * 2),var(--max));margin-inline:auto}
.studio-section{padding-block:var(--section-space)}
.studio-section + .studio-section{padding-top:0}
.studio-eyebrow{font-size:var(--text-eyebrow);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-faint);margin:0 0 .6rem}
.studio-title{font-family:var(--font-display),Newsreader,serif;font-weight:400;font-size:var(--text-h1);line-height:var(--leading-tight);letter-spacing:var(--track-display);margin:0}
.studio-h2{font-family:var(--font-display),Newsreader,serif;font-weight:400;font-size:var(--text-h2);line-height:var(--leading-tight);margin:0}
.studio-lede{font-size:var(--text-lede);line-height:var(--leading-body);color:var(--ink-soft);max-width:var(--measure-prose);margin:.9rem 0 0}
.studio-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.75rem}
.studio-link{font-size:var(--text-meta);letter-spacing:var(--track-meta);color:var(--accent-deep);text-decoration:none;background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat;padding-bottom:2px}
.studio-link:hover{background-size:0 1px;background-position:right bottom;transition:background-size .5s var(--ease)}

/* Brushstrokes: eight strokes painted in her manner, modelled on her painting This Is my Moment
   (images/ink-1…8.png, scripts/paint-her-strokes.py). CSS colours them through a mask; site.js picks stroke, colour, size, direction and tilt. */
.ink-rule{display:block;width:var(--bw,12rem);max-width:75%;aspect-ratio:var(--ar,8);margin:1.1rem 0 0;background-color:var(--bc,var(--ink));-webkit-mask:var(--bm,url(/images/ink-1.png)) center/100% 100% no-repeat;mask:var(--bm,url(/images/ink-1.png)) center/100% 100% no-repeat;transform:var(--bt,none);transform-origin:50% 50%}
.ink-rule--wide{width:100%;opacity:.55}

/* Catalogue number, as in a catalogue raisonné */
.catno{font-family:var(--font-body),"IBM Plex Sans",sans-serif;font-size:var(--text-eyebrow);letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--ink-faint)}

/* Line chips */
.line-chips{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;padding:0;margin:1rem 0 0}
.line-chips a{display:inline-block;font-size:var(--text-caption);letter-spacing:var(--track-meta);text-decoration:none;color:var(--ink-soft);border:1px solid var(--line-strong);padding:.3rem .6rem;transition:border-color .3s var(--ease),color .3s var(--ease)}
.line-chips a:hover{color:var(--accent-deep);border-color:var(--accent)}

/* ---- Home: intro + wall ---- */
.home-intro{padding-top:clamp(2.5rem,7vw,5.5rem);padding-bottom:clamp(1.5rem,4vw,2.5rem);display:grid;gap:1.25rem}
@media (min-width:900px){.home-intro{grid-template-columns:7fr 5fr;align-items:end;gap:3rem}}
.home-intro__title{font-family:var(--font-display),Newsreader,serif;font-weight:400;font-size:var(--text-display);line-height:var(--leading-display);letter-spacing:var(--track-display);margin:0;max-width:14ch}
.home-intro__text{font-size:var(--text-lede);line-height:var(--leading-body);color:var(--ink-soft);margin:0;max-width:32rem}
.home-intro__place{display:block;margin-top:.75rem;font-size:var(--text-meta);letter-spacing:var(--track-meta);color:var(--ink-faint)}

.wall{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.6rem,1.4vw,1.1rem);padding-bottom:var(--section-space)}
.wall__item{position:relative;margin:0;overflow:hidden;background:var(--media-matte)}
.wall__item a{display:block;height:100%;color:inherit;text-decoration:none}
.wall__item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s var(--ease)}
.wall__item:hover img{transform:scale(1.03)}
.wall__cap{position:absolute;left:0;right:0;bottom:0;padding:1.6rem .8rem .7rem;color:var(--on-dark);font-size:var(--text-caption);letter-spacing:var(--track-meta);background:linear-gradient(transparent,rgba(28,27,25,.72));opacity:0;transform:translateY(6px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.wall__cap b{display:block;font-family:var(--font-display),Newsreader,serif;font-weight:400;font-size:1.02rem;letter-spacing:0}
.wall__item:hover .wall__cap,.wall__item a:focus-visible .wall__cap{opacity:1;transform:none}
.wall__item:nth-child(1){grid-column:1/-1;aspect-ratio:16/10}
.wall__item:nth-child(n+2){aspect-ratio:4/5}
@media (hover:none){.wall__cap{opacity:1;transform:none}}
@media (min-width:900px){
  .wall{grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(5.5rem,8vw,7.5rem)}
  .wall__item{aspect-ratio:auto!important}
  .wall__item:nth-child(1){grid-column:1/8;grid-row:1/5}
  .wall__item:nth-child(2){grid-column:8/11;grid-row:1/3}
  .wall__item:nth-child(3){grid-column:11/13;grid-row:1/4}
  .wall__item:nth-child(4){grid-column:8/11;grid-row:3/5}
  .wall__item:nth-child(5){grid-column:11/13;grid-row:4/7}
  .wall__item:nth-child(6){grid-column:1/5;grid-row:5/8}
  .wall__item:nth-child(7){grid-column:5/11;grid-row:5/8}
  .wall__item:nth-child(n+8){display:none}
}

/* ---- Lines of inquiry tiles ---- */
.lines-grid{display:grid;gap:clamp(.75rem,1.6vw,1.25rem);grid-template-columns:repeat(2,1fr);list-style:none;padding:0;margin:0}
@media (min-width:900px){.lines-grid{grid-template-columns:repeat(3,1fr)}}
.line-tile a{display:block;color:inherit;text-decoration:none}
.line-tile__img{aspect-ratio:4/3;overflow:hidden;background:var(--media-matte)}
.line-tile__img img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.85);transition:transform 1.2s var(--ease),filter .6s var(--ease)}
.line-tile a:hover img{transform:scale(1.03);filter:none}
.line-tile__name{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-top:.7rem;font-family:var(--font-display),Newsreader,serif;font-size:var(--text-h3)}
.line-tile__count{font-family:var(--font-body),"IBM Plex Sans",sans-serif;font-size:var(--text-caption);color:var(--ink-faint)}
.line-tile .ink-rule{--bw:5rem;margin-top:.45rem;transition:width .6s var(--ease)}
.line-tile a:hover .ink-rule{width:calc(var(--bw) * 1.4)}

/* ---- Feature (current project) ---- */
.feature{display:grid;gap:1.5rem;align-items:center}
@media (min-width:900px){.feature{grid-template-columns:7fr 5fr;gap:3rem}}
.feature__img{display:block;overflow:hidden;background:var(--media-matte)}
.feature__img img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}
.feature__text p{margin:.8rem 0 0;color:var(--ink-soft);line-height:var(--leading-body);max-width:30rem}
.feature__text .studio-note{margin-top:1.4rem;padding-top:.9rem;border-top:1px solid var(--rule,rgba(0,0,0,.12));font-size:.9rem}.studio-note a{color:inherit;text-decoration:underline;text-underline-offset:.2em}

/* ---- Recent row ---- */
.recent-row{display:grid;gap:1.25rem;border-top:1px solid var(--line);padding-top:1.5rem}
@media (min-width:760px){.recent-row{grid-template-columns:repeat(3,1fr);gap:2rem}}
.recent-row p{margin:.35rem 0 .6rem;color:var(--ink-soft);font-size:.98rem;line-height:1.5}

/* ---- Work index ---- */
.index-filters{display:grid;gap:.9rem;margin:0 0 2rem;padding:1rem 0;border-block:1px solid var(--line);position:sticky;top:var(--nav-h);z-index:5;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(6px)}
.index-filters__row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.index-filters__label{font-size:var(--text-eyebrow);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-faint);min-width:5.5rem}
.index-filters button{font:inherit;font-size:var(--text-caption);letter-spacing:var(--track-meta);color:var(--ink-soft);background:transparent;border:1px solid var(--line-strong);padding:.3rem .6rem;cursor:pointer}
.index-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}
.index-filters__status{font-size:var(--text-caption);color:var(--ink-faint)}
@media (max-width:759px){.index-filters{position:static}.index-filters__row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.2rem}.index-filters button{flex-shrink:0}}
.index-grid{columns:2 10rem;column-gap:clamp(.75rem,1.6vw,1.25rem);list-style:none;padding:0;margin:0}
@media (min-width:900px){.index-grid{columns:4 14rem}}
.index-card{break-inside:avoid;margin:0 0 clamp(1.1rem,2vw,1.6rem)}
.index-card[hidden]{display:none}
.index-card a{display:block;color:inherit;text-decoration:none}
.index-card img{display:block;width:100%;height:auto;background:var(--media-matte);transition:opacity .4s var(--ease)}
.index-card a:hover img{opacity:.88}
.index-card__title{display:block;font-family:var(--font-display),Newsreader,serif;font-size:1.02rem;line-height:1.3;margin-top:.55rem}
.index-card__meta{display:flex;justify-content:space-between;gap:.5rem;font-size:var(--text-caption);color:var(--ink-faint);margin-top:.2rem}
.index-card--text a{border-top:1px solid var(--line);padding-top:.6rem}
.index-empty{color:var(--ink-faint)}

/* ---- Theme page ---- */
.line-hero{display:grid;gap:1.5rem;padding-top:clamp(1.5rem,4vw,3rem)}
@media (min-width:900px){.line-hero{grid-template-columns:5fr 7fr;align-items:end;gap:3rem}}
.line-hero__img img{width:100%;display:block;aspect-ratio:3/2;object-fit:cover}
.line-hero__text p{font-size:var(--text-lede);line-height:var(--leading-prose);color:var(--ink-soft);margin:1rem 0 0}
.line-nav{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;list-style:none;padding:1rem 0 0;margin:2.5rem 0 0;border-top:1px solid var(--line)}
.line-nav a{font-size:var(--text-meta);color:var(--ink-soft);text-decoration:none}
.line-nav a[aria-current=page]{color:var(--accent-deep)}

/* ---- Project / record additions ---- */
.studio-catline{display:flex;gap:1rem;align-items:baseline;margin-bottom:.4rem}
.work-pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:var(--section-space);padding-top:1.25rem;border-top:1px solid var(--line)}
.work-pager a{color:inherit;text-decoration:none;display:block}
.work-pager span{display:block;font-size:var(--text-eyebrow);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-faint);margin-bottom:.3rem}
.work-pager b{font-family:var(--font-display),Newsreader,serif;font-weight:400;font-size:var(--text-h3)}
.work-pager a:hover b{color:var(--accent-deep)}
.work-pager__next{text-align:right}

/* ---- Social practice ---- */
.practice-grid{display:grid;gap:clamp(1.25rem,2.4vw,2rem);grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));list-style:none;padding:0;margin:0}
.practice-card a{display:block;color:inherit;text-decoration:none}
.practice-card__img{aspect-ratio:4/3;overflow:hidden;background:var(--media-matte)}
.practice-card__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
.practice-card a:hover img{transform:scale(1.03)}
.practice-card__year{display:block;margin-top:.7rem}
.practice-card__title{display:block;font-family:var(--font-display),Newsreader,serif;font-size:var(--text-h3);margin-top:.2rem}
.practice-card__text{display:block;font-size:.95rem;line-height:1.5;color:var(--ink-soft);margin-top:.3rem}
.practice-card__works{font-size:var(--text-caption);margin-top:.5rem;color:var(--ink-faint)}
.practice-card__works a{color:var(--accent-deep)}

/* ---- CV folds ---- */
.cv__fold{border-top:1px solid var(--line)}
.cv__fold > summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.1rem 0}
.cv__fold > summary::-webkit-details-marker{display:none}
.cv__fold > summary h2{margin:0}
.cv__fold > summary::after{content:"+";font-size:1.3rem;color:var(--accent-deep);line-height:1}
.cv__fold[open] > summary::after{content:"–"}
.cv__fold-count{font-size:var(--text-caption);color:var(--ink-faint);margin-left:auto}

@media (prefers-reduced-motion:reduce){.wall__item img,.line-tile__img img,.practice-card__img img{transition:none}}

/* ---- Zoom (figures outside galleries) ---- */
.zoomable{cursor:zoom-in}
.zoomable:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.zoom-dialog{position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;border:0;padding:0;background:transparent;max-width:min(94vw,80rem);max-height:94vh;overflow:visible}
.zoom-dialog::backdrop{background:rgba(20,19,18,.94)}
.zoom-dialog img{display:block;max-width:min(94vw,80rem);max-height:84vh;width:auto;height:auto;margin:0 auto;cursor:zoom-out}
.zoom-dialog__cap{color:var(--on-dark-soft);font-size:var(--text-caption);text-align:center;margin:.8rem 0 0}
.zoom-dialog__close{position:fixed;top:1rem;right:1rem;border:1px solid color-mix(in srgb,var(--on-dark) 35%,transparent);background:transparent;color:var(--on-dark);padding:.45rem .75rem;cursor:pointer}

/* ---- Biography: images beside the timeline, never across it ---- */
.biography__figure{margin:.4rem 0 0;max-width:22rem!important;overflow:hidden}
.biography__figure img{aspect-ratio:4/3;object-fit:cover;transition:transform .8s var(--ease)}
.biography__figure img:hover{transform:scale(1.02)}
@media (min-width:900px){
  .biography__img-aside .biography__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,17rem);grid-template-areas:"title image" "location image" "text image" "link image";column-gap:2.25rem;row-gap:.45rem;align-items:start;max-width:none}
  .biography__img-aside .biography__title{grid-area:title}
  .biography__img-aside .biography__location{grid-area:location}
  .biography__img-aside .biography__text{grid-area:text}
  .biography__img-aside .biography__project-link{grid-area:link}
  .biography__img-aside .biography__figure{grid-area:image;margin-top:.2rem;max-width:none!important}
}

/* ---- Project pages: statement beside the facts, paragraphs that breathe ---- */
.project-page-view__statement p + p{margin-top:1em}
.project-page-view__statement p:first-child{font-family:var(--font-display),Newsreader,serif;font-size:clamp(1.2rem,1.7vw,1.38rem);line-height:1.5;color:var(--ink)}
@media (min-width:1000px){
  .project-page-view__page{display:grid;grid-template-columns:minmax(0,1fr) 16rem;column-gap:clamp(2rem,4vw,4rem);grid-auto-flow:row dense}
  .project-page-view__page > *{grid-column:1/-1}
  .project-page-view__page > .project-page-view__meta{grid-column:2;grid-template-columns:1fr;align-self:start;margin:0 0 2.5rem;position:sticky;top:calc(var(--nav-h) + 1.5rem)}
  .project-page-view__page > .project-page-view__statement{grid-column:1;max-width:44rem}
}

/* ---- Galleries: masonry, every image whole, no holes ---- */
.artwork-gallery__grid[data-variant=editorial],.artwork-gallery__grid[data-variant=archive]{display:block;columns:2 9rem;column-gap:clamp(.75rem,1.8vw,1.25rem)}
@media (min-width:1000px){.artwork-gallery__grid[data-variant=editorial],.artwork-gallery__grid[data-variant=archive]{columns:3 16rem}}
.artwork-gallery__grid[data-variant] .artwork-gallery__figure{break-inside:avoid;margin:0 0 clamp(.75rem,1.8vw,1.25rem)}
.artwork-gallery__grid[data-variant] .artwork-gallery__trigger img{max-height:none;background:none}
.artwork-gallery__grid[data-variant=archive]:has(> .artwork-gallery__figure:only-child){columns:1;max-width:36rem}

/* ---- Signature (top right) and the ensō home mark in the nav ---- */
.site-header__brand-sig{transition:opacity .3s var(--ease)}
.site-header__brand:hover .site-header__brand-sig{opacity:.7}
.site-header__home{display:inline-flex;align-items:center;gap:.6rem}
.site-header__enso{display:inline-block;width:2rem;aspect-ratio:1;background-color:var(--ink);-webkit-mask:url(/images/enso.png) center/contain no-repeat;mask:url(/images/enso.png) center/contain no-repeat;transition:background-color .3s var(--ease),transform .5s var(--ease)}
.site-header__nav-open .site-header__enso{background-color:currentColor}
.site-header__home:hover .site-header__enso,.site-header__home.site-header__active .site-header__enso{background-color:var(--accent)}
.site-header__home:hover .site-header__enso{transform:scale(1.08)}
@media (min-width:960px){
  .site-header__home .site-header__home-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .site-header__home{padding-bottom:.25rem;margin-top:-.1rem}
  .site-header__home.site-header__active{border-bottom-color:transparent}
}
.site-footer__copy a{color:inherit;text-decoration:underline;text-underline-offset:.15em}
