/* ════════════════════════════════════════════════════════════════════
   ELI RIDGWAY — eliridgway.com · shared design system (styles.css)
   Stark · all-sans (Helvetica) · Nunito Sans display · monochrome.
   No serif. No colour. Hierarchy from size, weight, case, and air.
   Square corners everywhere (except the phone bezel).
   Merged + de-duplicated from the two design-reference <style> blocks.
   ════════════════════════════════════════════════════════════════════ */

:root{
  /* oklch with ~hex fallbacks */
  --canvas:  oklch(94% 0.002 255);   /* #ebebec */
  --paper:   oklch(99.2% 0.001 255); /* #fdfdfe */
  --paper-2: oklch(96% 0.0018 255);  /* #f3f3f4 */
  --paper-3: oklch(91% 0.003 255);   /* #e4e4e6 */
  --ink:     oklch(16% 0.004 268);   /* #1c1d22 */
  --ink-2:   oklch(40% 0.004 268);   /* #5b5c61 */
  --ink-3:   oklch(60% 0.003 268);   /* #8e8f93 */
  --line:    oklch(88% 0.003 262);   /* #dadbde */
  --line-2:  oklch(78% 0.004 262);   /* #bdbec2 */
  --black:   oklch(13% 0.004 268);   /* #15161a */

  --maxw: 1480px;
  --gut: clamp(20px, 5vw, 88px);

  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --display: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* hex fallbacks for engines without oklch */
@supports not (color: oklch(0% 0 0)){
  :root{
    --canvas:#ebebec; --paper:#fdfdfe; --paper-2:#f3f3f4; --paper-3:#e4e4e6;
    --ink:#1c1d22; --ink-2:#5b5c61; --ink-3:#8e8f93;
    --line:#dadbde; --line-2:#bdbec2; --black:#15161a;
  }
}

/* Display typeface — applied to headings/titles only */
.home-hero .h-pos, .hf-amy, .hf-card .hf-ttl,
.home-archive h2, .ha-row .t,
.arch-hero h1, .arch-year .yn, .arch-empty .ee-t,
.amy-hero h1, .amy-info h3, .amy-cta h2,
.ex-head h1, .ex-head .ex-statement, .show-card .sc-ttl, .work .w-ttl,
.about h1, .advisory h1, .adv-project .ap-ttl,
.contact h2, .contact .c-mail,
.m-hero .h-pos, .m-arch .m-h, .m-arch .m-year .yn, .m-card .sc-ttl{
  font-family: var(--display);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--canvas); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
::selection{ background:var(--ink); color:var(--paper); }

/* ── label primitive (uppercase, tracked Helvetica — replaces all mono) ── */
.lab{ font-size:10.5px; font-weight:500; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-3); }
.lab-ink{ color:var(--ink); }

/* ── titles: sans italic stands in for the old serif ── */
.ital{ font-style:italic; font-weight:400; }

/* ───────────────────────── PLACEHOLDER (flat, stark) ───────────────────────── */
.ph{ position:relative; background:var(--paper-2); border:1px solid var(--line); overflow:hidden; }
.ph .ph-mark{ position:absolute; top:14px; left:15px; font-size:9.5px; font-weight:500; letter-spacing:0.2em; text-transform:uppercase; color:var(--ink-3); }
.ph .ph-cap{ position:absolute; left:15px; right:15px; bottom:13px; display:flex; justify-content:space-between; align-items:flex-end; gap:12px; }
.ph .ph-tag{ font-size:9.5px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-2); }
.ph .ph-dim{ font-size:9.5px; font-weight:500; letter-spacing:0.08em; color:var(--ink-3); text-align:right; }
.ph.dark{ background:oklch(22% 0.004 268); border-color:rgba(255,255,255,0.1); }
.ph.dark .ph-mark{ color:rgba(255,255,255,0.45); }
.ph.dark .ph-tag{ color:rgba(255,255,255,0.7); }
.ph.dark .ph-dim{ color:rgba(255,255,255,0.4); }

/* ───────────────────────── LINKS ───────────────────────── */
.lk{ display:inline-flex; align-items:center; gap:9px; font-size:11px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink); padding-bottom:3px; border-bottom:1px solid var(--ink); transition:gap .25s, opacity .25s; }
.lk:hover{ gap:14px; opacity:.55; }
.lk.muted{ color:var(--ink-3); border-color:var(--line-2); }
.lk.muted:hover{ color:var(--ink); border-color:var(--ink); opacity:1; }
.lk.inv{ color:#fff; border-color:rgba(255,255,255,0.6); }
.lk.inv:hover{ opacity:.65; }

/* ───────────────────────── PRIMARY NAV (.snav) ───────────────────────── */
.snav{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px var(--gut); border-bottom:1px solid var(--line); flex-wrap:wrap; }
.snav .brand{ display:flex; align-items:baseline; gap:13px; }
.snav .brand .wm{ font-family:var(--display); font-size:14px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; white-space:nowrap; }
.snav .brand .div{ width:1px; height:12px; background:var(--ink-3); align-self:center; }
.snav .brand .role{ font-size:9.5px; font-weight:500; letter-spacing:0.2em; text-transform:uppercase; color:var(--ink-3); white-space:nowrap; }
.snav nav{ display:flex; gap:30px; flex-wrap:wrap; }
.snav nav a{ font-size:11px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-2); padding:4px 0; position:relative; }
.snav nav a::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--ink); transition:width .35s cubic-bezier(.2,.6,.2,1); }
.snav nav a:hover::after, .snav nav a.active::after{ width:100%; }
.snav nav a.active{ color:var(--ink); }
.snav .ncta{ font-size:10px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-3); }
.snav .ncta:hover{ color:var(--ink); }
.snav-burger{ display:none; flex-direction:column; justify-content:center; gap:5px; width:34px; height:30px; padding:0; margin:-4px 0; background:none; border:0; cursor:pointer; }
.snav-burger span{ display:block; height:2px; width:24px; margin-left:auto; background:var(--ink); border-radius:2px; transition:transform .3s cubic-bezier(.2,.6,.2,1), opacity .2s; }

/* ───────────────────────── SECONDARY AMY SECTION BAR (.amy-bar) ───────────────────────── */
.amy-bar{ background:var(--paper-2); border-bottom:1px solid var(--line); padding:13px var(--gut) 0; }
.amy-bar .inner{ max-width:var(--maxw); margin:0 auto; display:flex; flex-direction:column; gap:11px; }
.amy-crumb{ display:flex; align-items:center; gap:9px; font-size:10px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-3); flex-wrap:wrap; }
.amy-crumb .sep{ opacity:.45; }
.amy-crumb .cur{ color:var(--ink); }
.amy-subnav{ display:flex; gap:26px; flex-wrap:wrap; }
.amy-subnav a{ font-size:11.5px; font-weight:500; letter-spacing:0.04em; color:var(--ink-2); padding:8px 0 12px; position:relative; }
.amy-subnav a::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--ink); transition:width .3s cubic-bezier(.2,.6,.2,1); }
.amy-subnav a:hover::after, .amy-subnav a.active::after{ width:100%; }
.amy-subnav a.active{ color:var(--ink); font-weight:600; }

/* ───────────────────────── SHARED FULL-BLEED IMAGE HERO (.bleed-hero) ───────────────────────── */
.bleed-hero{ position:relative; min-height:clamp(420px,64vh,680px); display:flex; align-items:flex-end; overflow:hidden; background:var(--paper-3); }
.bleed-hero .hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.bleed-hero .hero-ph{ position:absolute; inset:0; }
.bleed-hero .hero-ph .ph{ width:100%; height:100%; border:0; }
.bleed-hero .scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(8,10,14,0.78) 0%, rgba(8,10,14,0.5) 26%, rgba(8,10,14,0.2) 50%, rgba(8,10,14,0.03) 72%, rgba(8,10,14,0) 90%); }
.bleed-hero .hero-inner{ position:relative; z-index:2; width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gut) clamp(38px,5vw,64px); }
.bleed-hero .h-eyebrow{ color:rgba(255,255,255,0.72); margin-bottom:16px; }
.bleed-hero .h-line{ font-family:var(--display); max-width:40ch; font-size:clamp(1.4rem,2.4vw,2.3rem); font-weight:300; line-height:1.24; letter-spacing:-0.01em; color:#fff; text-wrap:balance; text-shadow:0 1px 24px rgba(8,10,14,0.7); }
.bleed-hero .h-line b{ font-weight:600; }
.bleed-hero .h-actions{ margin-top:28px; display:flex; gap:26px; flex-wrap:wrap; }
.bleed-hero .h-actions .lk{ color:#fff; border-color:#fff; }
.bleed-hero .h-actions .lk:hover{ opacity:.62; }
.bleed-hero .h-actions .lk.muted{ color:rgba(255,255,255,0.7); border-color:rgba(255,255,255,0.45); }

/* ───────────────────────── 01 · HOME ───────────────────────── */
.home-hero{ position:relative; min-height:clamp(480px,80vh,880px); display:flex; align-items:flex-end; overflow:hidden; background:var(--paper-3); }
.home-hero .hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 64%; }
.home-hero .hero-scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(8,10,14,0.58) 0%, rgba(8,10,14,0.36) 14%, rgba(8,10,14,0.15) 30%, rgba(8,10,14,0.03) 48%, rgba(8,10,14,0) 64%); }
.home-hero .inner{ position:relative; z-index:2; width:100%; max-width:calc(var(--maxw) + var(--gut) * 2); margin:0 auto; padding:0 var(--gut) clamp(40px,5.5vw,72px); }
.home-hero .h-pos{ max-width:56ch; font-size:clamp(1.3rem,2.05vw,2rem); font-weight:300; line-height:1.3; letter-spacing:-0.012em; color:#fff; text-wrap:balance; text-shadow:0 1px 24px rgba(8,10,14,0.6); }

.home-feature{ padding:clamp(48px,6vw,88px) var(--gut); border-top:1px solid var(--line); }
.home-feature .inner{ max-width:var(--maxw); margin:0 auto; }
.home-feature .hf-head{ display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding-bottom:26px; border-bottom:1px solid var(--line); }
.home-feature .hf-h{ display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; }
.home-feature .hf-amy{ font-size:clamp(1.5rem,2.4vw,2.1rem); font-weight:400; letter-spacing:-0.025em; }
.home-feature .hf-rc{ font-size:11px; font-weight:500; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-3); }
.home-feature .hf-grid{ margin-top:clamp(28px,3vw,46px); display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,36px); }
.hf-card .ph{ aspect-ratio:4/5; }
.hf-card .ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.hf-card:hover .ph{ opacity:.92; }
.hf-card .hf-ttl{ margin-top:16px; font-size:1.15rem; font-weight:400; letter-spacing:-0.01em; line-height:1.15; }
.hf-card .hf-sub{ margin-top:7px; }
.home-feature .hf-foot{ margin-top:clamp(36px,4vw,56px); display:flex; justify-content:flex-end; }

.home-archive{ padding:clamp(56px,7vw,104px) var(--gut); border-top:1px solid var(--line); }
.home-archive .inner{ max-width:var(--maxw); margin:0 auto; }
.home-archive .ha-grid{ display:grid; grid-template-columns:1fr 1.45fr; gap:clamp(28px,5vw,88px); align-items:start; }
.home-archive h2{ font-size:clamp(1.9rem,3.6vw,3.2rem); font-weight:400; line-height:1.04; letter-spacing:-0.03em; }
.home-archive .ha-body{ margin-top:24px; font-size:15px; font-weight:300; line-height:1.7; color:var(--ink-2); max-width:42ch; }
.home-archive .ha-stats{ margin-top:38px; display:flex; gap:48px; flex-wrap:wrap; }
.home-archive .ha-stat .n{ font-size:clamp(2rem,3vw,2.8rem); font-weight:300; letter-spacing:-0.03em; line-height:1; }
.home-archive .ha-stat .l{ margin-top:12px; }
.home-archive .ha-more{ margin-top:36px; }
.home-archive .ha-list{ border-top:1px solid var(--ink); }
.ha-row{ display:grid; grid-template-columns:62px 1fr auto; gap:22px; align-items:baseline; padding:22px 4px; border-bottom:1px solid var(--line); transition:padding-left .35s; }
.ha-row:hover{ padding-left:18px; }
.ha-row .y{ font-size:11px; font-weight:500; letter-spacing:0.1em; color:var(--ink-3); }
.ha-row .t{ font-size:clamp(1.1rem,1.5vw,1.4rem); font-weight:400; letter-spacing:-0.015em; }
.ha-row .tp{ font-size:9.5px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-3); }

/* ───────────────────────── 02 · AMY ELLINGSON (commissions overview / list) ───────────────────────── */
.amy-hero{ padding:clamp(56px,7vw,108px) var(--gut) clamp(36px,4vw,60px); border-bottom:1px solid var(--line); }
.amy-hero .inner{ max-width:var(--maxw); margin:0 auto; }
.amy-hero .crumb{ display:flex; gap:10px; }
.amy-hero .crumb a:hover{ color:var(--ink); }
.amy-hero .ah-grid{ margin-top:42px; display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(28px,5vw,80px); align-items:end; }
.amy-hero h1{ font-size:clamp(2.6rem,7vw,6rem); font-weight:400; line-height:0.94; letter-spacing:-0.045em; }
.amy-hero .ah-sub{ margin-top:26px; }
.amy-hero .ah-state{ font-size:clamp(1.1rem,1.5vw,1.4rem); font-weight:300; line-height:1.5; color:var(--ink-2); max-width:42ch; }
.amy-hero .ah-cta{ margin-top:32px; display:flex; gap:28px; flex-wrap:wrap; }

.amy-list{ padding:clamp(40px,5vw,76px) var(--gut) clamp(56px,7vw,104px); }
.amy-list .inner{ max-width:var(--maxw); margin:0 auto; }
.amy-proj{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,80px); align-items:center; padding:clamp(40px,5vw,76px) 0; border-bottom:1px solid var(--line); }
.amy-proj:first-child{ padding-top:8px; }
.amy-proj.rev .amy-art{ order:2; }
.amy-art{ aspect-ratio:4/3; }
.amy-art.tall{ aspect-ratio:4/5; }
.amy-info .idx{ display:block; }
.amy-info h3{ margin-top:18px; font-size:clamp(1.7rem,3vw,2.6rem); font-weight:400; line-height:1.05; letter-spacing:-0.03em; }
.amy-info .specs{ margin-top:26px; display:grid; grid-template-columns:auto 1fr; gap:9px 26px; max-width:44ch; }
.amy-info .specs dt{ font-size:9.5px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-3); padding-top:4px; }
.amy-info .specs dd{ font-size:14px; font-weight:300; color:var(--ink-2); line-height:1.5; }
.amy-info .amy-inq{ margin-top:28px; }

.amy-cta{ border-top:1px solid var(--line); padding:clamp(48px,6vw,92px) var(--gut); }
.amy-cta .inner{ max-width:var(--maxw); margin:0 auto; display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; }
.amy-cta h2{ font-size:clamp(1.8rem,3.6vw,3rem); font-weight:400; line-height:1.08; letter-spacing:-0.03em; max-width:20ch; }
.amy-cta .actions{ display:flex; flex-direction:column; gap:18px; align-items:flex-start; }

/* ───────────────────────── 03 · ARCHIVE ───────────────────────── */
.arch-hero{ padding:clamp(56px,7vw,100px) var(--gut) clamp(28px,3vw,40px); }
.arch-hero .inner{ max-width:var(--maxw); margin:0 auto; }
.arch-hero h1{ font-size:clamp(2.4rem,6vw,5rem); font-weight:400; line-height:1; letter-spacing:-0.04em; }
.arch-hero .lede{ margin-top:24px; font-size:15px; font-weight:300; line-height:1.7; color:var(--ink-2); max-width:52ch; }
.arch-filters{ position:sticky; top:0; z-index:5; background:color-mix(in oklab,var(--paper) 92%,transparent); backdrop-filter:blur(12px); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:15px var(--gut); }
.arch-filters .inner{ max-width:var(--maxw); margin:0 auto; display:flex; gap:24px 44px; flex-wrap:wrap; align-items:center; }
.fgroup{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.fgroup .chips{ display:flex; gap:8px; flex-wrap:wrap; }
.chip{ font-size:10.5px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-2); padding:6px 12px; border:1px solid var(--line-2); transition:all .2s; white-space:nowrap; }
.chip:hover{ border-color:var(--ink); color:var(--ink); }
.chip.active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.arch-body{ padding:clamp(36px,4vw,60px) var(--gut) clamp(56px,7vw,104px); }
.arch-body .inner{ max-width:var(--maxw); margin:0 auto; }
.arch-year{ display:flex; align-items:baseline; gap:18px; padding:clamp(30px,4vw,56px) 0 24px; }
.arch-year:first-child{ padding-top:0; }
.arch-year .yn{ font-size:clamp(1.6rem,2.6vw,2.4rem); font-weight:300; letter-spacing:-0.03em; }
.arch-year .yc{ font-size:10px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-3); }
.arch-year .yrule{ flex:1; height:1px; background:var(--line); align-self:center; }
.arch-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,2vw,30px) clamp(16px,2vw,26px); }
.show-card{ display:flex; flex-direction:column; gap:13px; }
.show-card .ph{ aspect-ratio:4/3; }
.show-card .sc-ttl{ font-size:1.05rem; font-weight:400; line-height:1.2; letter-spacing:-0.01em; }
.show-card .sc-meta{ margin-top:6px; }
.arch-empty{ grid-column:1/-1; border:1px dashed var(--line-2); padding:clamp(22px,3vw,38px); display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.arch-empty .ee-t{ font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:300; font-style:italic; color:var(--ink-3); }

/* ───────────────────────── 04 · SINGLE EXHIBITION ───────────────────────── */
.ex-hero{ position:relative; height:clamp(420px,64vh,680px); overflow:hidden; }
.ex-hero .ph{ width:100%; height:100%; border:0; border-bottom:1px solid var(--line); }
.ex-head{ padding:clamp(44px,5vw,80px) var(--gut) clamp(28px,3vw,44px); border-bottom:1px solid var(--line); }
.ex-head .inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(28px,5vw,80px); align-items:start; }
.ex-head .crumb{ grid-column:1/-1; display:flex; gap:10px; margin-bottom:26px; }
.ex-head .crumb a:hover{ color:var(--ink); }
.ex-head h1{ font-size:clamp(2.2rem,4.6vw,4.2rem); font-weight:400; line-height:1; letter-spacing:-0.04em; }
.ex-head .ex-by{ margin-top:22px; font-size:13px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; }
.ex-head .ex-dates{ margin-top:9px; }
.ex-head .ex-statement{ font-size:clamp(1.1rem,1.5vw,1.35rem); font-weight:300; line-height:1.55; color:var(--ink-2); }
.ex-head .ex-statement p+p{ margin-top:1em; }

.ex-works{ padding:clamp(44px,5vw,80px) var(--gut) clamp(56px,7vw,104px); }
.ex-works .inner{ max-width:var(--maxw); margin:0 auto; }
.ex-works .ew-head{ display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:clamp(30px,3vw,46px); }
.ex-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(22px,3vw,46px) clamp(18px,2.4vw,34px); }
.work{ display:flex; flex-direction:column; gap:13px; }
.work .ph{ cursor:zoom-in; }
.work.w-portrait .ph{ aspect-ratio:4/5; }
.work.w-land .ph{ aspect-ratio:5/4; }
.work .w-ttl{ font-size:1.08rem; font-weight:400; line-height:1.18; letter-spacing:-0.01em; }
.work .w-meta{ margin-top:5px; }
.work .w-inq{ margin-top:8px; width:fit-content; font-size:9.5px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:2px; transition:opacity .2s; }
.work .w-inq:hover{ opacity:.55; }

/* ── No-crop works grid: artworks at TRUE aspect ratio — refined 2-column grid (no masonry) ── */
.ex-grid.natural{ display:grid !important; grid-template-columns:repeat(2,1fr); gap:clamp(54px,6vw,108px) clamp(36px,4.4vw,76px); align-items:start; }
.ex-grid.natural .work{ display:block; margin:0; break-inside:auto; }
.ex-grid.natural .work .ph{ aspect-ratio:auto !important; background:var(--paper-2); cursor:zoom-in; }
.ex-grid.natural .work .ph img{ position:static !important; inset:auto !important; width:100% !important; height:auto !important; object-fit:contain !important; display:block; }
.ex-grid.natural .work .w-ttl{ margin-top:clamp(20px,1.8vw,30px); }
.ex-grid.natural .work.span{ grid-column:1 / -1; }
.ex-grid.natural .work.span .ph{ text-align:center; background:transparent; border:0; }
.ex-grid.natural .work.span .ph img{ width:auto !important; max-width:100%; max-height:84vh; margin:0 auto; }
.ex-grid.natural .work.span .w-ttl{ text-align:center; }
.ex-grid.natural .work.span .w-meta{ text-align:center; }
@media (max-width:680px){ .ex-grid.natural{ grid-template-columns:1fr; gap:clamp(44px,10vw,60px); } }

/* ── Exhibition WORKS grid · Echo Arts "matted tile" treatment ──
   Each work sits in a uniform 4:5 light-grey tile; the image is centred,
   contained (never cropped) at ~80%, with a soft drop shadow. Scoped to
   exhibition pages only (commission/book grids keep the natural layout). */
body[data-nav="exhibitions"] #exGrid{ grid-template-columns:repeat(3,1fr); column-gap:clamp(20px,2.5vw,40px); row-gap:clamp(42px,6vh,74px); align-items:stretch; }
body[data-nav="exhibitions"] #exGrid .work{ display:flex; flex-direction:column; gap:6px; }
body[data-nav="exhibitions"] #exGrid .work .ph{ aspect-ratio:4/5 !important; background:#fff; display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; margin-bottom:8px; }
body[data-nav="exhibitions"] #exGrid .work .ph img{ width:auto !important; height:auto !important; max-width:88% !important; max-height:88% !important; object-fit:contain !important; transition:transform .5s cubic-bezier(.2,.6,.2,1); }
body[data-nav="exhibitions"] #exGrid .work:hover .ph img{ transform:scale(1.03); }
body[data-nav="exhibitions"] #exGrid .work .w-ttl{ margin-top:6px; }
body[data-nav="exhibitions"] #exGrid .work.span{ grid-column:span 2; }
body[data-nav="exhibitions"] #exGrid .work.span .ph{ aspect-ratio:5/3 !important; background:#fff; border:0; }
body[data-nav="exhibitions"] #exGrid .work.span .ph img{ width:auto !important; height:auto !important; max-width:92% !important; max-height:88% !important; margin:0; }
body[data-nav="exhibitions"] #exGrid .work.span .w-ttl, body[data-nav="exhibitions"] #exGrid .work.span .w-meta{ text-align:left; }
@media (max-width:800px){ body[data-nav="exhibitions"] #exGrid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ body[data-nav="exhibitions"] #exGrid{ grid-template-columns:1fr; } }

/* ── Installation views ── */
.ex-install{ padding:0 var(--gut) clamp(56px,7vw,104px); }
.ex-install .inner{ max-width:var(--maxw); margin:0 auto; }
.ex-install .ew-head{ display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:clamp(26px,3vw,40px); }
.ex-install-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(18px,2.4vw,32px); }
.ex-install-grid img{ display:block; width:100%; height:auto; background:var(--paper-2); }
.ex-install-grid .full{ grid-column:1 / -1; }
@media (max-width:760px){ .ex-install-grid{ grid-template-columns:1fr; } }

/* ── Press — pull quotes ── */
.ex-press{ padding:clamp(40px,4vw,64px) var(--gut) clamp(56px,7vw,104px); border-top:1px solid var(--line); }
.ex-press .inner{ max-width:var(--maxw); margin:0 auto; }
.ex-press .ew-head{ display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:clamp(34px,3.6vw,52px); }
.pq{ margin:0; max-width:54ch; }
.pq + .pq{ margin-top:clamp(34px,4vw,58px); padding-top:clamp(34px,4vw,58px); border-top:1px solid var(--line); }
.pq blockquote{ margin:0; font-family:var(--display); font-weight:300; font-size:clamp(1.45rem,2.3vw,2.1rem); line-height:1.32; letter-spacing:-0.015em; color:var(--ink); text-wrap:pretty; }
.pq figcaption{ margin-top:20px; font-size:11.5px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-2); }

/* ───────────────────────── LIGHTBOX (.lb) — shared (exhibition + paintings) ───────────────────────── */
.lb{ position:fixed; inset:0; z-index:1000; background:rgba(13,15,20,0.96); display:none; align-items:center; justify-content:center; padding:6vh 6vw; cursor:zoom-out; }
.lb.open{ display:flex; }
.lb .lb-stage{ width:min(640px,80vw); cursor:default; }
.lb .lb-ph{ aspect-ratio:4/5; background:oklch(22% 0.004 268); border:1px solid rgba(255,255,255,0.14); display:flex; align-items:center; justify-content:center; }
.lb .lb-ph span{ font-size:10.5px; font-weight:500; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.45); }
.lb .lb-cap{ margin-top:18px; text-align:center; font-size:11px; font-weight:500; letter-spacing:0.08em; color:rgba(255,255,255,0.7); line-height:1.7; }
.lb .lb-close{ position:absolute; top:24px; right:28px; width:40px; height:40px; border:1px solid rgba(255,255,255,0.3); color:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; cursor:pointer; }
/* image lightbox: show the real artwork / install photo */
.lb .lb-stage.lb-wide{ width:auto; max-width:92vw; }
.lb .lb-ph.has-img{ aspect-ratio:auto; background:transparent; border:0; display:block; }
.lb .lb-ph.has-img > span{ display:none; }
.lb .lb-img{ display:block; max-width:92vw; max-height:82vh; width:auto; height:auto; margin:0 auto; }
.ex-install img, .ex-install-grid img{ cursor:zoom-in; }
/* paintings lightbox caption variant (title / sub / dim split row) */
.lb .lb-stage.lb-paint{ width:min(620px,82vw); }
.lb .lb-cap.lb-cap-split{ margin-top:18px; display:flex; text-align:left; justify-content:space-between; align-items:flex-end; gap:20px; }
.lb .lb-meta .t{ font-family:var(--display); font-size:1.3rem; font-weight:400; color:#fff; }
.lb .lb-meta .s{ margin-top:6px; font-size:11px; font-weight:500; letter-spacing:0.06em; color:rgba(255,255,255,0.6); }
.lb .lb-dim{ font-family:var(--display); font-size:1.6rem; font-weight:300; letter-spacing:-0.02em; color:#fff; white-space:nowrap; }

/* ───────────────────────── 05 · ABOUT + CONTACT ───────────────────────── */
.about{ padding:clamp(56px,7vw,108px) var(--gut) clamp(48px,6vw,84px); }
.about .inner{ max-width:var(--maxw); margin:0 auto; }
.about .a-grid{ display:grid; grid-template-columns:1fr 1.5fr; gap:clamp(28px,5vw,88px); align-items:start; }
.about .a-port{ aspect-ratio:4/5; }
.about h1{ margin-top:20px; font-size:clamp(1.9rem,4vw,3.4rem); font-weight:400; line-height:1.06; letter-spacing:-0.03em; max-width:16ch; }
.about .a-bio{ margin-top:30px; font-size:16px; font-weight:300; line-height:1.8; color:var(--ink-2); max-width:50ch; }
.about .a-bio p+p{ margin-top:1.2em; }

.contact{ background:var(--black); color:#fff; padding:clamp(56px,7vw,108px) var(--gut); }
.contact .inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(32px,5vw,80px); align-items:end; }
.contact .lab{ color:rgba(255,255,255,0.5); }
.contact h2{ margin-top:24px; font-size:clamp(2rem,4.4vw,3.8rem); font-weight:400; line-height:1.02; letter-spacing:-0.035em; max-width:15ch; }
.contact .c-mail{ display:inline-block; margin-top:32px; font-size:clamp(1.3rem,2.2vw,1.9rem); font-weight:300; letter-spacing:-0.01em; border-bottom:1px solid rgba(255,255,255,0.4); padding-bottom:6px; transition:border-color .25s; }
.contact .c-mail:hover{ border-color:#fff; }
.contact .c-meta{ font-size:12px; font-weight:300; color:rgba(255,255,255,0.6); line-height:2.1; }
.contact .c-meta b{ color:#fff; font-weight:500; }

/* ───────────────────────── FOOTER (.sfoot) ───────────────────────── */
.sfoot{ background:var(--black); color:rgba(255,255,255,0.45); border-top:1px solid rgba(255,255,255,0.12); padding:30px var(--gut); }
.sfoot .inner{ max-width:var(--maxw); margin:0 auto; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:10px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; }

/* ───────────────────────── ADVISORY ───────────────────────── */
.advisory{ padding:clamp(56px,7vw,108px) var(--gut) clamp(48px,6vw,84px); }
.advisory .inner{ max-width:var(--maxw); margin:0 auto; }
.advisory .ad-head{ display:grid; grid-template-columns:1fr 1.5fr; gap:clamp(28px,5vw,88px); align-items:start; }
.advisory h1{ font-size:clamp(1.9rem,4vw,3.4rem); font-weight:400; line-height:1.06; letter-spacing:-0.03em; max-width:18ch; }
.advisory .ad-body{ margin-top:30px; font-size:16px; font-weight:300; line-height:1.8; color:var(--ink-2); max-width:52ch; }
.advisory .ad-body p+p{ margin-top:1.2em; }
.advisory .ad-out{ margin-top:34px; }
.adv-project{ border-top:1px solid var(--line); margin-top:clamp(40px,5vw,72px); padding-top:clamp(36px,4vw,56px); display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(28px,5vw,72px); align-items:center; }
.adv-project .ph{ aspect-ratio:16/10; }
.adv-project .ap-ttl{ margin-top:6px; font-size:clamp(1.4rem,2.4vw,2rem); font-weight:400; letter-spacing:-0.025em; line-height:1.1; }
.adv-project .ap-body{ margin-top:18px; font-size:15px; font-weight:300; line-height:1.7; color:var(--ink-2); max-width:42ch; }

/* ───────────────────────── AMY · 1 — OVERVIEW (intro + commission grid) ───────────────────────── */
.amy-intro{ padding:clamp(48px,6vw,84px) var(--gut) clamp(28px,3vw,40px); }
.amy-intro .inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1fr 1.6fr; gap:clamp(24px,5vw,72px); align-items:baseline; }
.amy-intro p{ font-family:var(--display); font-size:clamp(1.2rem,1.7vw,1.55rem); font-weight:300; line-height:1.5; color:var(--ink-2); max-width:52ch; }
.amy-intro p b{ font-weight:600; color:var(--ink); }
.comm-wrap{ padding:clamp(20px,3vw,40px) var(--gut) clamp(56px,7vw,104px); }
.comm-wrap .inner{ max-width:var(--maxw); margin:0 auto; }
.comm-head{ display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding-bottom:22px; border-bottom:1px solid var(--ink); }
.comm-head h2{ font-family:var(--display); font-size:clamp(1.3rem,2vw,1.8rem); font-weight:500; letter-spacing:-0.01em; }
.comm-grid{ margin-top:clamp(28px,3vw,44px); display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.6vw,40px) clamp(18px,2.2vw,30px); }
.comm-card{ display:flex; flex-direction:column; gap:14px; }
.comm-card .ph{ aspect-ratio:4/3; transition:opacity .3s; }
.comm-card .ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.comm-card:hover .ph{ opacity:.92; }
.comm-card .cc-ttl{ font-family:var(--display); font-size:1.2rem; font-weight:500; line-height:1.18; letter-spacing:-0.01em; transition:opacity .2s; }
.comm-card:hover .cc-ttl{ opacity:.6; }
.comm-card .cc-ttl .ital{ font-weight:400; }
.comm-card .cc-meta{ margin-top:-6px; }

/* ───────────────────────── AMY · 2 — SINGLE PROJECT (case study) ───────────────────────── */
.proj-facts{ padding:clamp(36px,4vw,56px) var(--gut); border-bottom:1px solid var(--line); }
.proj-facts .inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(24px,5vw,72px); align-items:start; }
.proj-facts h1{ font-family:var(--display); font-size:clamp(2rem,4vw,3.3rem); font-weight:400; line-height:1.04; letter-spacing:-0.03em; }
.proj-facts .factline{ display:flex; flex-direction:column; gap:9px; padding-top:6px; }
.proj-facts .factline .f{ display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:baseline; padding-bottom:9px; border-bottom:1px solid var(--line); }
.proj-facts .factline .fk{ font-size:9.5px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-3); }
.proj-facts .factline .fv{ font-family:var(--display); font-size:14.5px; font-weight:400; color:var(--ink); line-height:1.3; }
.proj-narr{ padding:clamp(44px,5vw,80px) var(--gut); }
.proj-narr .inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1fr 2fr; gap:clamp(24px,5vw,80px); align-items:start; }
.proj-narr .side{ position:sticky; top:30px; }
.proj-narr .body{ font-family:var(--display); font-size:clamp(1.15rem,1.5vw,1.45rem); font-weight:300; line-height:1.6; color:var(--ink-2); max-width:60ch; }
.proj-narr .body p+p{ margin-top:1.1em; }
.proj-narr .body b{ font-weight:600; color:var(--ink); }
.proj-images{ padding:0 var(--gut) clamp(40px,5vw,72px); }
.proj-images .inner{ max-width:var(--maxw); margin:0 auto; }
.proj-images .pi-head{ padding-bottom:20px; border-bottom:1px solid var(--line); margin-bottom:clamp(20px,2.6vw,34px); }
.proj-images .pi-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(12px,1.6vw,20px); }
.proj-images .pi-grid .ph{ aspect-ratio:3/2; }
.pi-grid .c-wide{ grid-column:span 4; }
.pi-grid .c-tall{ grid-column:span 2; }
.pi-grid .c-half{ grid-column:span 3; }
.pi-grid .c-third{ grid-column:span 2; }
.proj-cta{ border-top:1px solid var(--line); padding:clamp(44px,5vw,80px) var(--gut); }
.proj-cta .inner{ max-width:var(--maxw); margin:0 auto; display:flex; justify-content:space-between; align-items:flex-end; gap:28px; flex-wrap:wrap; }
.proj-cta h2{ font-family:var(--display); font-size:clamp(1.7rem,3.2vw,2.7rem); font-weight:400; line-height:1.08; letter-spacing:-0.025em; }
.proj-partners{ border-top:1px solid var(--line); padding:clamp(40px,5vw,72px) var(--gut); }
.proj-partners .inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1fr 2fr; gap:clamp(24px,5vw,80px); align-items:start; }
.proj-partners .plist{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(24px,4vw,60px); border-top:1px solid var(--ink); }
.proj-partners .p{ display:flex; flex-direction:column; gap:7px; padding:18px 0; border-bottom:1px solid var(--line); }
.proj-partners .pv{ font-family:var(--display); font-size:clamp(1.05rem,1.4vw,1.3rem); font-weight:400; color:var(--ink); letter-spacing:-0.01em; }

/* ───────────────────────── AMY · 3 — PAINTINGS ("What Resonates") ───────────────────────── */
.pt-hero{ padding:clamp(44px,5vw,80px) var(--gut) clamp(28px,3vw,40px); }
.pt-hero .inner{ max-width:var(--maxw); margin:0 auto; }
.pt-hero h1{ font-family:var(--display); font-size:clamp(2rem,4.4vw,3.6rem); font-weight:400; line-height:1.02; letter-spacing:-0.03em; max-width:14ch; }
.pt-hero p{ margin-top:24px; font-family:var(--display); font-size:clamp(1.15rem,1.6vw,1.45rem); font-weight:300; line-height:1.5; color:var(--ink-2); max-width:60ch; }
.pt-hero p b{ font-weight:600; color:var(--ink); }
.pt-filters{ position:sticky; top:0; z-index:6; background:color-mix(in oklab,var(--paper) 92%,transparent); backdrop-filter:blur(12px); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:15px var(--gut); }
.pt-filters .inner{ max-width:var(--maxw); margin:0 auto; display:flex; gap:20px 40px; flex-wrap:wrap; align-items:center; }
.pt-body{ padding:clamp(32px,4vw,56px) var(--gut) clamp(90px,10vw,140px); }
.pt-body .inner{ max-width:var(--maxw); margin:0 auto; }
.pt-count{ margin-bottom:clamp(22px,2.6vw,34px); }
.pt-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(26px,3vw,52px) clamp(20px,2.4vw,36px); }
.pwork{ display:flex; flex-direction:column; gap:15px; }
.pwork.hidden{ display:none; }
.pwork .pw-frame{ position:relative; }
.pwork .ph{ cursor:zoom-in; }
.pwork.r-tall .ph{ aspect-ratio:4/5; }
.pwork.r-square .ph{ aspect-ratio:1/1; }
.pwork.r-wide .ph{ aspect-ratio:7/5; }
.pwork.r-pano{ grid-column:1/-1; }
.pwork.r-pano .ph{ aspect-ratio:5/2; }
.pwork .heart{ position:absolute; top:12px; right:12px; width:40px; height:40px; border-radius:50%; background:color-mix(in oklab,var(--paper) 82%, transparent); backdrop-filter:blur(6px); border:1px solid var(--line-2); display:flex; align-items:center; justify-content:center; transition:all .2s; z-index:3; }
.pwork .heart:hover{ border-color:var(--ink); transform:scale(1.06); }
.pwork .heart svg{ width:18px; height:18px; }
.pwork .heart svg path{ fill:none; stroke:var(--ink); stroke-width:1.6; transition:fill .2s; }
.pwork .heart.on{ background:var(--ink); border-color:var(--ink); }
.pwork .heart.on svg path{ fill:#fff; stroke:#fff; }
.pwork .pw-cap{ display:flex; flex-direction:column; gap:8px; }
.pwork .pw-ttl{ font-family:var(--display); font-size:1.18rem; font-weight:500; line-height:1.15; letter-spacing:-0.01em; }
.pwork .pw-ttl .ital{ font-weight:400; }
.pwork .pw-sub{ font-size:11px; font-weight:500; letter-spacing:0.04em; color:var(--ink-3); }
.pwork .pw-dim{ font-family:var(--display); font-size:1.45rem; font-weight:300; letter-spacing:-0.02em; color:var(--ink); line-height:1; }
.pt-empty{ display:none; padding:60px 0; font-size:12px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-3); }

/* selection bar (.selbar) */
.selbar{ position:fixed; left:50%; bottom:24px; transform:translate(-50%,140%); z-index:500; display:flex; align-items:center; gap:22px; padding:14px 16px 14px 24px; background:var(--black); color:#fff; box-shadow:0 24px 60px -22px rgba(8,10,14,0.7); opacity:0; pointer-events:none; transition:transform .4s cubic-bezier(.2,.7,.2,1), opacity .35s; }
.selbar.show{ transform:translate(-50%,0); opacity:1; pointer-events:auto; }
.selbar .sb-n{ font-family:var(--display); font-size:14px; font-weight:500; letter-spacing:0.02em; white-space:nowrap; }
.selbar .sb-n b{ font-weight:700; }
.selbar .sb-clear{ font-size:10px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.55); white-space:nowrap; }
.selbar .sb-clear:hover{ color:#fff; }
.selbar .sb-send{ font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--black); background:#fff; padding:12px 18px; white-space:nowrap; transition:opacity .2s; }
.selbar .sb-send:hover{ opacity:.82; }

/* ───────────────────────── AMY · 4 — LIST PAGE (about / exhibitions / press) ───────────────────────── */
.list-hero{ padding:clamp(44px,5vw,80px) var(--gut) clamp(30px,3vw,44px); border-bottom:1px solid var(--line); }
.list-hero .inner{ max-width:var(--maxw); margin:0 auto; }
.list-hero h1{ font-family:var(--display); font-size:clamp(2rem,4.4vw,3.6rem); font-weight:400; line-height:1.04; letter-spacing:-0.03em; }
.list-about{ padding:clamp(36px,4vw,60px) var(--gut); }
.list-about .inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1fr 2fr; gap:clamp(24px,5vw,80px); align-items:start; }
.list-about .body{ font-family:var(--display); font-size:clamp(1.2rem,1.7vw,1.6rem); font-weight:300; line-height:1.55; color:var(--ink-2); max-width:56ch; }
.list-about .body p + p{ margin-top:1.2em; }
.list-about .body a{ color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:1px; }
.list-about .body a:hover{ opacity:.6; }
.list-sec{ padding:clamp(36px,4vw,56px) var(--gut); border-top:1px solid var(--line); }
.list-sec .inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1fr 2fr; gap:clamp(24px,5vw,80px); align-items:start; }
.list-sec .sec-label{ position:sticky; top:30px; }
.list-sec .sec-label .sub{ margin-top:14px; }
.lrow{ display:grid; grid-template-columns:1fr auto; gap:24px; align-items:baseline; padding:20px 2px; border-bottom:1px solid var(--line); }
.lrow:first-child{ border-top:1px solid var(--ink); }
.lrow .lr-t{ font-family:var(--display); font-size:clamp(1.15rem,1.6vw,1.5rem); font-weight:400; letter-spacing:-0.01em; line-height:1.2; }
.lrow .lr-t .ital{ font-style:italic; }
.lrow .lr-sub{ margin-top:6px; font-size:11px; font-weight:500; letter-spacing:0.06em; color:var(--ink-3); }
.lrow .lr-y{ font-family:var(--display); font-size:1.1rem; font-weight:300; color:var(--ink-3); white-space:nowrap; }
a.lrow{ color:inherit; text-decoration:none; cursor:pointer; }
a.lrow .lr-t{ transition:color .15s ease; }
a.lrow:hover .lr-t{ text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }
a.lrow:hover .lr-y{ color:var(--ink); }
.list-sec .pub{ display:grid; grid-template-columns:1fr auto; gap:24px 40px; align-items:center; padding:clamp(22px,3vw,36px); border:1px solid var(--line-2); }
.list-sec .pub .pub-k{ margin-bottom:12px; }
.list-sec .pub .pub-t{ font-family:var(--display); font-size:clamp(1.4rem,2.4vw,2rem); font-weight:400; font-style:italic; letter-spacing:-0.02em; line-height:1.1; }
.list-sec .pub .pub-s{ margin-top:10px; font-size:13px; font-weight:300; color:var(--ink-2); }
.list-sec .pub .ph{ width:150px; aspect-ratio:3/4; }
a.pub{ color:inherit; text-decoration:none; cursor:pointer; transition:border-color .15s ease; }
a.pub:hover{ border-color:var(--ink); }
a.pub:hover .pub-t{ text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }

/* ───────────────────────── MOBILE SHOWCASE (responsive intent device) ───────────────────────── */
.mob-row{ display:flex; gap:clamp(28px,5vw,80px); flex-wrap:wrap; align-items:flex-start; padding:6px 2px 0; }
.mob-cap{ margin-bottom:18px; }
.phone{ width:340px; border:10px solid var(--black); border-radius:46px; background:var(--paper); overflow:hidden; box-shadow:0 30px 60px -34px rgba(20,24,33,0.5); position:relative; }
.phone .notch{ position:absolute; top:0; left:50%; transform:translateX(-50%); width:128px; height:26px; background:var(--black); border-radius:0 0 16px 16px; z-index:6; }
.phone .screen{ height:716px; overflow-y:auto; scrollbar-width:none; }
.phone .screen::-webkit-scrollbar{ display:none; }
.m-nav{ display:flex; align-items:center; justify-content:space-between; padding:32px 22px 16px; border-bottom:1px solid var(--line); }
.m-nav .wm{ font-family:var(--display); font-size:13px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; white-space:nowrap; }
.m-nav .burger{ display:flex; flex-direction:column; gap:4px; }
.m-nav .burger span{ width:20px; height:1.5px; background:var(--ink); display:block; }
.m-hero{ position:relative; min-height:430px; display:flex; align-items:flex-end; overflow:hidden; background:var(--paper-3); }
.m-hero .hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.m-hero .hero-scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(8,10,14,0.92) 0%, rgba(8,10,14,0.62) 30%, rgba(8,10,14,0.18) 54%, rgba(8,10,14,0) 78%); }
.m-hero .m-inner{ position:relative; z-index:2; padding:22px; }
.m-hero .h-pos{ font-size:1.3rem; font-weight:300; line-height:1.3; letter-spacing:-0.01em; color:#fff; text-shadow:0 1px 20px rgba(8,10,14,0.5); }
.m-arch{ padding:30px 22px 44px; }
.m-arch .m-h{ font-size:1.7rem; font-weight:400; letter-spacing:-0.03em; }
.m-arch .m-filters{ margin-top:20px; display:flex; gap:8px; flex-wrap:wrap; }
.m-arch .m-year{ margin-top:32px; display:flex; align-items:baseline; gap:12px; padding-bottom:15px; border-bottom:1px solid var(--line); }
.m-arch .m-year .yn{ font-size:1.4rem; font-weight:300; letter-spacing:-0.03em; }
.m-arch .m-year .yc{ font-size:9px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-3); }
.m-arch .m-cards{ margin-top:18px; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.m-card .ph{ aspect-ratio:4/3; }
.m-card .sc-ttl{ margin-top:10px; font-size:0.95rem; font-weight:400; line-height:1.18; }
.m-card .sc-meta{ margin-top:5px; }

/* ───────────────────────── RESPONSIVE ───────────────────────── */
@media (max-width:1080px){
  .arch-grid{ grid-template-columns:repeat(3,1fr); }
  .ex-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:1000px){
  .comm-grid{ grid-template-columns:repeat(2,1fr); }
  .pt-grid{ grid-template-columns:repeat(2,1fr); }
  .proj-images .pi-grid{ grid-template-columns:repeat(2,1fr); }
  .pi-grid .c-wide, .pi-grid .c-tall, .pi-grid .c-half, .pi-grid .c-third{ grid-column:span 1; }
}
@media (max-width:860px){
  .snav{ position:relative; }
  .snav-burger{ display:flex; }
  .snav.open .snav-burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .snav.open .snav-burger span:nth-child(2){ opacity:0; }
  .snav.open .snav-burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .snav nav{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; background:var(--paper); border-bottom:1px solid var(--line); padding:2px var(--gut) 14px; z-index:60; box-shadow:0 16px 28px rgba(8,10,14,0.07); }
  .snav.open nav{ display:flex; }
  .snav nav a{ padding:14px 2px; font-size:12px; color:var(--ink); border-bottom:1px solid var(--line); }
  .snav nav a:last-child{ border-bottom:0; }
  .snav nav a::after{ display:none; }
  /* mobile heroes: show the purpose-made 4:3 crops fully (no side-cropping) */
  .mob43{ min-height:0 !important; height:auto !important; aspect-ratio:4 / 3; }
  .home-feature .hf-head{ flex-direction:column; align-items:flex-start; gap:18px; }
  .home-feature .hf-grid{ grid-template-columns:1fr; }
  .hf-card .ph{ aspect-ratio:16/10; }
  .home-archive .ha-grid{ grid-template-columns:1fr; gap:40px; }
  .amy-hero .ah-grid{ grid-template-columns:1fr; gap:28px; }
  .amy-proj, .amy-proj.rev{ grid-template-columns:1fr; gap:26px; }
  .amy-proj.rev .amy-art{ order:0; }
  .arch-grid{ grid-template-columns:repeat(2,1fr); }
  .ex-head .inner{ grid-template-columns:1fr; gap:26px; }
  .ex-grid{ grid-template-columns:1fr 1fr; }
  .about .a-grid{ grid-template-columns:1fr; gap:32px; }
  .contact .inner{ grid-template-columns:1fr; gap:30px; align-items:start; }
  .advisory .ad-head{ grid-template-columns:1fr; gap:24px; }
  .adv-project{ grid-template-columns:1fr; gap:24px; }
}
@media (max-width:760px){
  .amy-intro .inner, .proj-facts .inner, .proj-narr .inner, .proj-partners .inner, .list-about .inner, .list-sec .inner{ grid-template-columns:1fr; gap:24px; }
  .proj-partners .plist{ grid-template-columns:1fr; }
  .proj-narr .side, .list-sec .sec-label{ position:static; }
  .comm-grid{ grid-template-columns:1fr 1fr; }
  .pt-grid{ grid-template-columns:1fr 1fr; gap:22px 16px; }
  .amy-subnav{ gap:18px; overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .amy-subnav::-webkit-scrollbar{ display:none; }
  .amy-subnav a{ white-space:nowrap; }
  .list-sec .pub{ grid-template-columns:1fr; }
  .list-sec .pub .ph{ width:120px; }
}
@media (max-width:560px){
  .arch-grid{ grid-template-columns:1fr 1fr; gap:18px 14px; }
  .ex-grid{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .comm-grid, .pt-grid{ grid-template-columns:1fr; }
  .selbar{ left:16px; right:16px; bottom:16px; transform:translateY(140%); width:auto; }
  .selbar.show{ transform:translateY(0); }
}

/* ════════════════════════════════════════════════════════════════════
   v2 ADDITIONS (2026-06-15) — no-crop paintings grid, real thumbnails,
   install hero images. Appended last so they win the cascade.
   ════════════════════════════════════════════════════════════════════ */

/* Amy Paintings — no-crop masonry (artworks at true aspect ratio) */
.pt-grid.natural{ display:block !important; column-count:3; column-gap:clamp(22px,2.6vw,42px); }
.pt-grid.natural .pwork{ break-inside:avoid; display:block; margin:0 0 clamp(30px,3.2vw,52px); }
.pt-grid.natural .pwork.hidden{ display:none; }
.pt-grid.natural .pwork.r-pano{ column-span:all; }
.pt-grid.natural .pwork .pw-frame{ position:relative; }
.pt-grid.natural .pwork .ph{ aspect-ratio:auto !important; cursor:zoom-in; }
.pt-grid.natural .pwork .ph img{ position:static !important; inset:auto !important; width:100% !important; height:auto !important; object-fit:contain !important; display:block; }
@media (max-width:1000px){ .pt-grid.natural{ column-count:2; } }
@media (max-width:560px){ .pt-grid.natural{ column-count:1; } }

/* Exhibition hero — real installation image (banner crop is fine for a room shot) */
.ex-hero .ph img, .ex-hero > img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Archive index — real thumbnail images (install shots; uniform card crop) */
.show-card .ph{ aspect-ratio:4/3; }
.show-card .ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.show-card:hover .ph img{ opacity:.92; }

/* Prev / next exhibition nav (bottom of each detail page) */
.ex-nav{ border-top:1px solid var(--line); }
.ex-nav .inner{ max-width:var(--maxw); margin:0 auto; padding:clamp(28px,3.5vw,54px) var(--gut); display:flex; justify-content:space-between; align-items:flex-start; gap:28px; }
.ex-nav a{ display:flex; flex-direction:column; gap:9px; max-width:48%; }
.ex-nav .ex-nav-next{ text-align:right; margin-left:auto; align-items:flex-end; }
.ex-nav .enl{ font-size:10px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-3); }
.ex-nav .ent{ font-family:var(--display); font-size:clamp(1.05rem,1.6vw,1.45rem); font-weight:400; letter-spacing:-0.015em; line-height:1.18; transition:opacity .2s; }
.ex-nav a:hover .ent{ opacity:.55; }
@media (max-width:560px){ .ex-nav .inner{ flex-direction:column; gap:22px; } .ex-nav .ex-nav-next{ text-align:left; align-items:flex-start; margin-left:0; } .ex-nav a{ max-width:100%; } }

/* Amy — Selected Bibliography list (press.html) */
.press-list{ padding:clamp(40px,4vw,64px) var(--gut) clamp(56px,7vw,104px); border-top:1px solid var(--line); }
.press-list .inner{ max-width:var(--maxw); margin:0 auto; }
.press-list .ew-head{ padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:clamp(20px,2.4vw,32px); }
.pl-item{ padding:clamp(16px,1.6vw,22px) 0; border-bottom:1px solid var(--line); }
.pl-ttl{ font-family:var(--display); font-size:clamp(1.05rem,1.4vw,1.3rem); font-weight:400; line-height:1.3; color:var(--ink); }
.pl-meta{ margin-top:6px; }

/* ── Amy Paintings — catalogue stream (one labelled area per work) ── */
.pt-stream{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gut) clamp(60px,9vw,120px); }
.pt-work{ border-top:1px solid var(--line); padding:clamp(56px,8vh,108px) 0; text-align:center; }
.pt-work:first-child{ border-top:0; padding-top:clamp(20px,3vw,40px); }
.pt-work .pw-ttl{ font-family:var(--display); font-style:italic; font-weight:400; font-size:clamp(1.5rem,2.8vw,2.5rem); line-height:1.08; letter-spacing:-0.015em; color:var(--ink); }
.pt-work .pw-meta{ margin-top:14px; }
.pt-work .pw-prov{ margin-top:8px; font-size:13px; font-weight:300; color:var(--ink-2); max-width:52ch; margin-left:auto; margin-right:auto; }
.pt-work .pw-primary{ margin-top:clamp(30px,3.6vw,52px); }
.pt-work .pw-primary img{ display:block; margin:0 auto; max-width:100%; max-height:clamp(440px,76vh,820px); width:auto; height:auto; }
.pt-work .pw-more{ margin-top:clamp(16px,2vw,28px); display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-start; gap:clamp(10px,1.3vw,20px); }
.pt-work .pw-more img{ display:block; height:clamp(150px,18vh,220px); width:auto; max-width:100%; }

/* ── PAPER!AWESOME! — dense salon grid (5–6 works per row) ───────────── */
.pa-sec{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gut); }
.pa-sec-head{ display:flex; align-items:baseline; justify-content:space-between; gap:18px; margin:clamp(40px,5vw,72px) 0 clamp(16px,2vw,26px); padding-bottom:12px; border-bottom:1px solid var(--ink); }
.pa-sec-head .pa-floor{ font-family:var(--display); font-size:clamp(1.2rem,2vw,1.7rem); font-weight:400; letter-spacing:-0.01em; }
.pa-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(14px,1.5vw,26px) clamp(8px,0.9vw,16px); }
.pa-cell{ margin:0; }
.pa-ph{ aspect-ratio:4/5; background:#fff; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; overflow:hidden; cursor:zoom-in; transition:transform .18s ease, box-shadow .18s ease; }
.pa-ph img{ max-width:90%; max-height:90%; width:auto; height:auto; object-fit:contain; display:block; }
.pa-cell:hover .pa-ph{ transform:scale(1.04); box-shadow:0 8px 26px rgba(0,0,0,.14); position:relative; z-index:3; }
.pa-ph.empty{ background:var(--paper-2); cursor:default; padding:12px; }
.pa-ph.empty span{ font-family:var(--display); font-style:italic; font-size:12px; color:var(--ink-3); text-align:center; line-height:1.32; }
.pa-cap{ margin-top:8px; font-size:11px; line-height:1.34; }
.pa-cap .pa-num{ color:var(--ink-3); font-weight:600; margin-right:4px; }
.pa-cap .pa-art{ font-weight:600; color:var(--ink); }
.pa-cap .pa-ttl{ display:block; color:var(--ink-3); font-style:italic; }
@media(max-width:1180px){ .pa-grid{ grid-template-columns:repeat(5,1fr); } }
@media(max-width:860px){ .pa-grid{ grid-template-columns:repeat(4,1fr); } }
@media(max-width:620px){ .pa-grid{ grid-template-columns:repeat(2,1fr); } }

/* ── HOT & COLD — featured zine section ──────────────────────────────── */
.zine{ background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.zine .inner{ max-width:var(--maxw); margin:0 auto; padding:clamp(48px,7vw,104px) var(--gut); }
.zine .zhead{ margin-bottom:clamp(24px,3vw,44px); }
.zine .zhead .lab{ color:var(--ink-3); }
.zine .zhead h2{ font-family:var(--display); font-weight:400; font-size:clamp(1.8rem,4vw,3.2rem); letter-spacing:-0.02em; line-height:1.04; margin:12px 0 0; }
.zine .zhead .zsub{ margin-top:10px; font-size:13px; font-weight:300; color:var(--ink-2); }
.zine-lead{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(28px,4vw,68px); align-items:start; }
.zine-lead .zl-img img{ width:100%; display:block; }
.zine-lead .zl-img figcaption{ margin-top:10px; }
.zine-lead .zl-text{ font-size:clamp(0.98rem,1.15vw,1.12rem); font-weight:300; line-height:1.62; color:var(--ink-2); }
.zine-lead .zl-text p{ margin:0 0 1.05em; }
.zine-lead .zl-text p .ital{ font-style:italic; }
.zine-gallery{ margin-top:clamp(28px,4vw,60px); display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:clamp(10px,1.4vw,22px); }
.zine-gallery figure{ margin:0; }
.zine-gallery img{ width:100%; display:block; cursor:zoom-in; transition:opacity .15s ease; }
.zine-gallery img:hover{ opacity:.9; }
@media(max-width:820px){ .zine-lead{ grid-template-columns:1fr; gap:clamp(20px,4vw,32px); } }
