:root{
  --bg:#0B0C0E; --surface:#141518; --surface-2:#1C1E22;
  --hairline:rgba(255,255,255,0.10);
  --text:#E9EAEC; --text-soft:#C4C6CB; --text-muted:#9A9CA1; --text-faint:#5E6166;
  --accent:#004294; --accent-text:#3B7BDC; --accent-wash:rgba(0,66,148,0.20);
  /* Type — switcher overrides these live */
  --wordmark:"Spectral",Georgia,serif;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Space Grotesk",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;
  --t-caption:.8125rem; --t-body:1.0625rem; --t-lg:1.25rem; --t-h2:1.45rem;
  --t-h1:clamp(1.7rem,1.3rem + 1.2vw,2.1rem);
  --lh-tight:1.12; --lh-body:1.6; --measure:66ch;
  --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.25rem; --s-6:1.5rem; --s-8:2rem; --s-10:2.5rem;
  --s-12:3rem; --s-16:4rem; --s-24:6rem; --margin:clamp(1.25rem,5vw,5rem);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

*{box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth;scroll-padding-top:92px}
:root[data-theme="light"]{
  --bg:#FFFFFF; --surface:#F4F4F2; --surface-2:#EBEBE8;
  --hairline:rgba(0,0,0,0.13);
  --text:#17181B; --text-soft:#33353A; --text-muted:#5A5D63; --text-faint:#83868C;
  --accent:#004294; --accent-text:#0B4FA8; --accent-wash:rgba(0,66,148,0.10);
}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:var(--sans);font-size:var(--t-body);line-height:var(--lh-body);
  font-optical-sizing:auto;font-synthesis:none;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--accent-wash)}
a{color:var(--accent-text);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;text-decoration-color:rgba(121,162,255,.5)}
a:hover{text-decoration-color:var(--accent-text)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
img{display:block;max-width:100%}
.wrap{max-width:1320px;margin-inline:auto;padding-inline:var(--margin)}

/* Masthead */
.masthead{position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 80%,transparent);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline)}
.nav-underline{position:absolute;bottom:-1px;left:0;width:0;height:2px;background:var(--accent);transition:left .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:2}
.masthead .wrap{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-3) var(--s-6);padding-block:var(--s-4) var(--s-2)}
.wordmark{order:1;font-family:var(--wordmark);font-weight:600;font-size:1.55rem;letter-spacing:.01em;color:var(--text);line-height:1;cursor:pointer;text-decoration-line: none;transition:color .22s ease}
.wordmark:hover,.wordmark:focus-visible{color:var(--accent-text)}
.nav{order:2;margin-left:auto;display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.25rem)}
.nav__link{font-size:.95rem;font-weight:500;color:var(--text-muted);text-decoration:none;
  padding:0 .34em;transition:color .2s}
.nav__link:hover{color:var(--text)}
.nav__link[aria-current="page"]{color:var(--text)}
.nav__icons{order:3;display:flex;gap:var(--s-2);align-items:center;align-self:center;transform:translateY(-1px)}
.nav__icons a{color:var(--text-muted);line-height:0;padding:0 .4rem;transition:color .2s ease}
.nav__icons a:hover{color:var(--accent-text)}
.nav__icons a svg{width:20px;height:20px;display:block}
.nav__icons a[aria-label="Instagram"] svg{width:24px;height:24px}
.theme-switch{display:inline-flex;align-items:center;margin-left:.1rem;background:none;border:0;padding:.2rem .25rem;cursor:pointer;color:var(--text-muted)}
.theme-switch__track{position:relative;width:30px;height:16px;border:1px solid var(--text-faint);border-radius:999px;flex:none;transition:border-color .2s ease}
.theme-switch:hover .theme-switch__track{border-color:var(--text-muted)}
.theme-switch__knob{position:absolute;top:50%;left:2px;width:13px;height:13px;border-radius:50%;background:var(--text);transform:translateY(-50%);display:flex;align-items:center;justify-content:center;transition:left .22s ease,background .2s ease}
.theme-switch[aria-checked="true"] .theme-switch__knob{left:13px}
.theme-switch__knob svg{width:8px;height:8px;color:var(--bg)}
.ts-sun{display:none}
.theme-switch[aria-checked="true"] .ts-moon{display:none}
.theme-switch[aria-checked="true"] .ts-sun{display:block}

/* Views */
.view{padding-block:var(--s-10) var(--s-24)}
.view[hidden]{display:none}
@keyframes fadeup{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.view:not([hidden]){animation:fadeup .45s ease both}

/* Stills */
.still{position:relative;width:100%;background-color:#0a0b0e;overflow:hidden}
.still::after{content:"";position:absolute;inset:0;background-image:var(--grain);
  background-size:140px;opacity:.05;mix-blend-mode:overlay;pointer-events:none}
.r169{aspect-ratio:16/9}.r32{aspect-ratio:3/2}.r43{aspect-ratio:4/3}

/* OLD GRADIENTS IN TEST -> DELETE
.s-ersatz{background:radial-gradient(120% 110% at 50% 50%,transparent 58%,var(--bg) 100%),radial-gradient(40% 30% at 28% 78%,rgba(190,150,225,.45),transparent 60%),radial-gradient(120% 75% at 50% 0%,rgba(150,90,200,.5),transparent 55%),radial-gradient(100% 70% at 50% 100%,rgba(44,80,200,.55),transparent 62%),linear-gradient(180deg,#2a1640,#241a52 32%,#16285e 62%,#0d1a44)}
.s-night{background:radial-gradient(120% 90% at 60% 42%,rgba(46,66,50,.5),transparent 62%),linear-gradient(180deg,#0c0f0d,#0a0d0c 50%,#070908)}
.s-bat{background:radial-gradient(48% 62% at 35% 55%,rgba(238,238,238,.85),rgba(120,120,120,.18) 46%,transparent 72%),linear-gradient(180deg,#0a0a0b,#050506)}
.s-messengers{background:radial-gradient(45% 62% at 78% 50%,rgba(232,62,122,.55),transparent 60%),radial-gradient(18% 26% at 30% 62%,rgba(60,182,222,.75),transparent 64%),linear-gradient(180deg,#150a16,#0c0710)}
.s-reservoirs{background:radial-gradient(16% 20% at 40% 78%,rgba(246,246,246,.7),transparent 60%),radial-gradient(14% 18% at 70% 60%,rgba(246,246,246,.55),transparent 60%),radial-gradient(9% 13% at 47% 86%,rgba(44,108,236,.9),transparent 60%),linear-gradient(180deg,#15171c,#0e1014 60%,#0a0b0e)}
.s-attune{background:radial-gradient(120% 90% at 50% 46%,rgba(58,78,52,.55),transparent 66%),linear-gradient(180deg,#101510,#0c100c 60%,#090c09)}
.s-unitary{background:radial-gradient(40% 46% at 45% 52%,rgba(22,24,32,.6),transparent 60%),linear-gradient(160deg,#b9bcc2,#a9adb6 55%,#9aa0aa)}
.s-hidden{background:radial-gradient(28% 80% at 18% 50%,rgba(222,226,236,.7),transparent 56%),linear-gradient(180deg,#0a0c10,#070809)}
.s-temple{background:radial-gradient(70% 70% at 55% 55%,rgba(150,150,150,.4),transparent 66%),linear-gradient(160deg,#2a2a2c,#161617 70%,#0e0e0f)}
.s-island{background:radial-gradient(70% 90% at 25% 35%,rgba(236,92,60,.8),transparent 56%),radial-gradient(80% 90% at 55% 70%,rgba(70,92,222,.8),transparent 62%),linear-gradient(160deg,#1a0d10,#0e0a18)}
.s-flora{background:radial-gradient(60% 80% at 70% 50%,rgba(220,150,60,.7),transparent 62%),radial-gradient(40% 60% at 72% 40%,rgba(120,150,40,.5),transparent 60%),linear-gradient(110deg,#c7c9cd 0%,#c7c9cd 34%,#241a08 34%)}*/

/* real images filling the still boxes */
.still img{display:block;width:100%;height:100%;object-fit:cover;transition:filter .4s ease}
.piece__media-link:hover .piece__still img{filter:brightness(1.08)}

.play{position:absolute;left:var(--s-4);bottom:var(--s-4);width:44px;height:44px;
  border:1px solid rgba(255,255,255,.6);border-radius:50%;display:grid;place-items:center;z-index:3;transition:border-color .2s,background .2s}
.play::before{content:"";width:0;height:0;margin-left:3px;border-left:11px solid rgba(255,255,255,.8);border-top:7px solid transparent;border-bottom:7px solid transparent}
.zoom{cursor:zoom-in}
.zoom:hover .play{border-color:#fff;background:rgba(0,0,0,.25)}

/* PhotoSwipe gallery items are now <a> (were .zoom <div>) */
a.still{ display:block; cursor:zoom-in; }

/* Keep the global img{max-width:100%} from squashing the zoom image */
.pswp img{ max-width:none; }

/* iOS Chrome ignores viewport-fit=cover for the fixed overlay; force true edges */
.pswp{
  position: fixed !important;
  top: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 100vw !important;
  width: 100svw !important;
  min-width: 100vw !important;
  height: 100svh !important;
  height: 100dvh !important;
}
.pswp__bg{ position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; }

/* Small caption overlaid on the bottom of the viewport.
   Fixed light colour because the backdrop is dark in both themes. */
.pswp__mcw-caption{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 5;
  text-align: center;
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .02em;
  line-height: 1.5;
  color: rgba(233,234,236,.92);
  background: linear-gradient(to top, rgba(0,0,0,.5), transparent);
  padding: 2.4em 1.2em 1.0em;
  pointer-events: none;
}
/* Home */
.note-banner{font-family:var(--mono);font-size:.72rem;color:var(--text-faint);border:1px solid var(--hairline);border-radius:2px;padding:.55rem .8rem;margin-bottom:var(--s-12);background:var(--surface);line-height:1.6}
.note-banner b{color:var(--accent-text);font-weight:500}
.hero{width:100%;aspect-ratio:16/6;display:block;border:0;padding:0;cursor:pointer;transition:opacity .2s ease}
.hero:hover{opacity:.9}
.caption{margin-top:var(--s-4);font-family:var(--mono);font-size:var(--t-caption);color:var(--text-muted);letter-spacing:.01em}
.caption em{color:var(--text);font-style:italic;font-family:var(--serif)}
.status{margin-top:var(--s-8)}
.status__group{margin-bottom:var(--s-8)}
.status__group:last-child{margin-bottom:0}
.status__h{font-family:var(--serif);font-weight:500;font-size:var(--t-lg);margin:0;padding-bottom:var(--s-3);border-bottom:1px solid var(--hairline);color:var(--text)}
.status__items{display:block}
.status__item{margin:0;padding:var(--s-4) 0;border-bottom:1px solid var(--hairline);color:var(--text-muted);font-size:.95rem;line-height:1.5}
.status__item strong{color:var(--text);font-weight:500}
.status__item em{font-family:var(--serif);font-style:italic;color:var(--text-soft)}

.hero.still{ cursor: pointer; }

/* Overview / shared section header */
.sectionhead{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,1.2rem + 1vw,1.85rem);line-height:var(--lh-tight);margin:0 0 var(--s-6);color:var(--text)}
.framing{font-family:var(--sans);font-size:1.15rem;line-height:1.5;color:var(--text-soft);max-width:62ch;margin:0 0 var(--s-12);font-weight:400}
.index{display:flex;flex-wrap:wrap;gap:.4rem var(--s-6);margin:0 0 var(--s-16);padding-bottom:var(--s-6);border-bottom:1px solid var(--hairline)}
.index a{font-family:var(--mono);font-size:.8rem;color:var(--text-muted);text-decoration:none;letter-spacing:.02em}
.index a:hover{color:var(--accent-text)}
.overview-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(248px,322px);gap:clamp(1.5rem,4vw,3.5rem);align-items:start;margin:var(--s-8) 0 var(--s-12);padding-bottom:var(--s-8);border-bottom:1px solid var(--hairline)}
.overview-head .index{margin:0;padding:0;border:0}
.overview-head .framing{margin:0;max-width:none;font-size:1rem}
@media(max-width:820px){.overview-head{grid-template-columns:1fr;gap:var(--s-6)}.overview-head .index{display:none}.overview-head .framing{order:-1}}
#index-preview{position:fixed;top:0;left:0;width:420px;max-width:36vw;z-index:50;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .3s ease,transform .3s ease;pointer-events:none;will-change:transform,opacity}
#index-preview.on{opacity:.85;transform:translateY(0) scale(1)}
#index-preview .still{width:100%;-webkit-mask-image:radial-gradient(120% 120% at 50% 50%,#000 55%,transparent 100%);mask-image:radial-gradient(120% 120% at 50% 50%,#000 55%,transparent 100%)}
@media(hover:none){#index-preview{display:none}}

/* Pieces: image left / info right */
.piece{display:grid;grid-template-columns:minmax(0,1fr) minmax(248px,322px);gap:clamp(1.5rem,4vw,3.5rem);align-items:start;margin-bottom:var(--s-16);scroll-margin-top:92px}
.piece__media-link{display:block;text-decoration:none}
.piece__still{transition:filter .4s ease}
.piece__media-link:hover .piece__still,.piece > .piece__still.zoom:hover,.shot > .piece__still.zoom:hover{filter:brightness(1.08)}
.piece__title-link{text-decoration:none;display:inline-block}
.piece__title{font-family:var(--serif);font-style:italic;font-weight:500;font-size:var(--t-h2);line-height:1.15;color:var(--text);margin:0;transition:color .2s}
.piece__title-link:hover .piece__title{color:var(--accent-text)}
.piece__meta{font-family:var(--mono);font-size:var(--t-caption);color:var(--text-muted);margin-top:var(--s-3);letter-spacing:.01em;line-height:1.55}
.piece__desc{margin-top:var(--s-4);color:var(--text-muted);font-size:.95rem}
.piece__meta .m-sep:first-child{ display:none; }

/* Work detail: image left / info right */
.back{font-family:var(--mono);font-size:.8rem;text-decoration:none;display:inline-block;margin-bottom:var(--s-6);color:var(--accent-text)}
.back:hover{color:var(--text)}
.work__title{font-family:var(--serif);font-style:italic;font-weight:500;font-size:var(--t-h1);line-height:var(--lh-tight);margin:0 0 var(--s-8);color:var(--text)}
.work{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:clamp(1.75rem,4vw,3.5rem);align-items:start}
.work__media{display:flex;flex-direction:column;gap:var(--s-6)}
.shot{margin:0;min-width:0}
.shot .still{width:100%}
.cap{font-family:var(--mono);font-size:.7rem;color:var(--text-faint);letter-spacing:.02em;line-height:1.55;margin-top:var(--s-2)}
.cap a{color:var(--text-muted);text-decoration:none;border-bottom:1px solid var(--hairline)}
.cap a:hover{color:var(--accent-text);border-bottom-color:var(--accent-text)}
.work__info{align-self:start}
.spec{margin:0;border-top:1px solid var(--hairline)}
.spec__row{display:grid;grid-template-columns:5.5rem 1fr;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--hairline);align-items:baseline}
.spec__k{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}
.spec__v{font-family:var(--mono);font-size:.8rem;color:var(--text-muted);line-height:1.5}
.spec__v.note{color:var(--accent-text)}
.work__desc{color:var(--text-muted);margin-top:var(--s-8)}
.work__desc p{margin:0 0 var(--s-4)}
.materials{font-family:var(--mono);font-size:.76rem;color:var(--text-faint);line-height:1.6;margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--hairline)}
.credits{margin-top:var(--s-10);padding-top:var(--s-6);border-top:1px solid var(--hairline)}
.thanks{margin-top:var(--s-8);padding-top:var(--s-6);border-top:1px solid var(--hairline)}
.thanks__list{font-family:var(--mono);font-size:.78rem;color:var(--text-muted);line-height:1.7;margin:0;max-width:var(--measure)}
.research{margin-top:var(--s-12)}
.research .block-h{margin-bottom:var(--s-8)}
.research__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);align-items:start}
@media(max-width:820px){.research__grid,.show-works{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.research__grid,.show-works{grid-template-columns:1fr}}
.credits__h{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin:0 0 var(--s-3)}
.credits dl{margin:0}
.cred-row{display:grid;grid-template-columns:7.5rem 1fr;gap:var(--s-3);padding:.32rem 0;align-items:baseline;line-height:1.5}
.cred-row dt{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);line-height:1.5}
.cred-row dd{margin:0;font-family:var(--mono);font-size:.76rem;color:var(--text-muted);line-height:1.5}
.credits__more[hidden]{display:none}
.credits__toggle{margin-top:var(--s-4);font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;color:var(--accent-text);background:none;border:0;cursor:pointer;padding:.2rem 0}
.credits__toggle:hover{text-decoration:underline;text-underline-offset:3px}

.media{ margin-top: var(--s-8); padding-top: var(--s-6); border-top: 1px solid var(--hairline); }
.media__list{ list-style: none; margin: 0; padding: 0; }
.media__item{ font-family: var(--mono); font-size: .78rem; line-height: 1.6; margin: 0 0 var(--s-3); max-width: var(--measure); }
.media__item:last-child{ margin-bottom: 0; }
.media__item a{ color: var(--accent-text); text-decoration: none; border-bottom: 1px solid var(--hairline); }
.media__item a:hover{ border-bottom-color: var(--accent-text); }

/* Work detail: float the back link into the top whitespace so the title sits at the overview height */
.view{position:relative}
.back{position:absolute;top:var(--s-3);left:0;margin:0}

/* Work detail: Video embed handling */
.work__video{position:relative;margin-bottom:var(--s-4)}
.work__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* Work detail: Lightbox handlig */
.lb-img{display:block;max-width:100%;max-height:86vh;width:auto;height:auto;margin:0 auto}

/* Materials lead (sculpture) — foregrounded */
.spec__v.strong{color:var(--text-soft)}
.exhib-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:clamp(1.75rem,4vw,3.5rem);align-items:start;margin-bottom:var(--s-6)}
.exhib-head__main{min-width:0}

/* Subjects (detail panel + overview cards) */
.subjects{margin:var(--s-6) 0 var(--s-6);max-width:var(--measure)}
.subjects__h{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);margin:0 0 var(--s-3)}
.subjects__list{font-family:var(--mono);font-size:.82rem;color:var(--text);line-height:1.7;margin:0}
.piece__subjects{font-family:var(--mono);font-size:.7rem;color:var(--text);letter-spacing:.01em;line-height:1.6;margin-top:var(--s-3)}
.piece__subjects span{color:var(--text-faint);text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;margin-right:.55rem}

/* Exhibition: money-shot hero + read-more */
.gallery__hero{margin:0 0 var(--s-5)}
.readmore{margin-top:calc(-1 * var(--s-2));font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--accent-text);background:none;border:0;cursor:pointer;padding:.2rem 0;display:inline-block}
.readmore:hover{text-decoration:underline;text-underline-offset:3px}
.exhib__more[hidden]{display:none}
.subjects--wide{max-width:var(--measure)}

/* About sections */
.section-intro{color:var(--text-muted);max-width:var(--measure);margin:0 0 var(--s-8)}
.statement{max-width:62ch}
.statement__lead{font-family:var(--serif);font-size:clamp(1.3rem,1.1rem + 0.8vw,1.7rem);line-height:1.35;color:var(--text-soft);margin:0 0 var(--s-6)}
.statement p{margin:0 0 var(--s-5);color:var(--text-muted)}
.entry-list{display:flex;flex-direction:column}
.entry{display:grid;grid-template-columns:5rem 1fr;gap:var(--s-5);padding:var(--s-5) 0;border-top:1px solid var(--hairline)}
.entry__year{font-family:var(--mono);font-size:.72rem;color:var(--text-faint);letter-spacing:.04em;padding-top:.25rem}
.entry__title{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.1rem;color:var(--text);margin:0;line-height:1.25}
.entry__meta{font-family:var(--mono);font-size:.72rem;color:var(--text-muted);margin:var(--s-2) 0 0;letter-spacing:.01em}
.entry__note{color:var(--text-muted);font-size:.95rem;margin:var(--s-3) 0 0;max-width:var(--measure)}
.writing-list{list-style:none;margin:0;padding:0}
.writing-item{padding:var(--s-4) 0;border-top:1px solid var(--hairline)}
.writing-item__title{font-family:var(--serif);font-style:italic;color:var(--text-soft);font-size:1.05rem;display:block;line-height:1.3}
.writing-item__meta{font-family:var(--mono);font-size:.72rem;color:var(--text-muted);margin-top:var(--s-2);letter-spacing:.01em}
.cv__row .ti{ font-family: var(--serif); font-style: italic; }

/* Exhibition detail */
.exhib__title{font-family:var(--serif);font-weight:500;font-size:var(--t-h1);line-height:var(--lh-tight);margin:0 0 var(--s-3);color:var(--text)}
.exhib__meta{font-family:var(--mono);font-size:.8rem;letter-spacing:.02em;color:var(--text-muted);margin:0 0 var(--s-8);line-height:1.6}
.exhib__lead{max-width:var(--measure);color:var(--text-soft)}
.exhib__lead p{margin:0 0 var(--s-4)}
.block-h{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin:var(--s-10) 0 var(--s-6);padding-bottom:var(--s-3);border-bottom:1px solid var(--hairline)}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}
.gallery .full{grid-column:1 / -1}
.show-works{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-8) var(--s-6)}
.arch-lead{font-family:var(--sans);font-size:1.08rem;line-height:1.55;color:var(--text-muted);max-width:60ch;margin:0 0 var(--s-8)}
.arch-filter{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);margin:0 0 var(--s-10);padding-bottom:var(--s-3);border-bottom:1px solid var(--hairline);position:relative}
.arch-tab{background:none;border:0;padding:0;cursor:pointer;font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;color:var(--text-muted);transition:color .2s ease}
.arch-tab:hover{color:var(--text)}
.arch-tab.on{color:var(--text)}
.arch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-8) var(--s-5)}
.arch-item{display:block;text-decoration:none;color:inherit}
.arch-item .still{transition:opacity .2s ease}
.arch-item:hover .still{opacity:.84}
.arch-item__cap{display:block;margin-top:var(--s-3)}
.arch-item__title{display:block;font-family:var(--serif);font-style:italic;font-size:1.02rem;line-height:1.25;color:var(--text-soft);transition:color .2s ease}
.arch-item:hover .arch-item__title{color:var(--text)}
.arch-item__meta{display:block;margin-top:.25rem;font-family:var(--mono);font-size:.72rem;color:var(--text-faint)}
.arch-item[hidden]{display:none}
.arch-empty{font-family:var(--mono);font-size:.8rem;color:var(--text-faint)}
@media(max-width:820px){.arch-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.arch-grid{grid-template-columns:1fr}}
.pager{display:flex;justify-content:space-between;gap:var(--s-6);margin-top:var(--s-16);padding-top:var(--s-6);border-top:1px solid var(--hairline)}
.pager__side{display:flex;flex-direction:column;gap:var(--s-2);max-width:48%;background:none;border:0;padding:0;cursor:pointer;text-align:left}
.pager__side--next{align-items:flex-end;text-align:right}
.pager__dir{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);transition:color .2s ease}
.pager__name{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--text-soft);transition:color .2s ease}
.pager__side:hover .pager__dir{color:var(--accent-text)}
.pager__side:hover .pager__name{color:var(--text)}
@media(max-width:520px){.pager{flex-direction:column;gap:var(--s-6)}.pager__side,.pager__side--next{max-width:none;align-items:flex-start;text-align:left}}
.wcard{display:block;text-decoration:none}
.wcard .still{transition:filter .4s ease}
.wcard:hover .still{filter:brightness(1.1)}
.wcard__title{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.12rem;line-height:1.2;color:var(--text);margin:var(--s-3) 0 0;transition:color .2s}
.wcard:hover .wcard__title{color:var(--accent-text)}
.wcard__meta{font-family:var(--mono);font-size:.7rem;color:var(--text-muted);margin-top:var(--s-2);line-height:1.5}

/* Exhibition detail: Body italics render in the serif — Fraunces has a real italic, Space Grotesk doesn't */
.exhib__lead em, .exhib__lead i, .exhib__lead cite,
.exhib__more em, .exhib__more i, .exhib__more cite,
.work__desc em, .work__desc i, .work__desc cite,
.piece__desc em, .piece__desc i, .piece__desc cite,
.framing em, .framing i, .framing cite { font-family: var(--serif); font-style: italic; }

/* Works-in-exhibition grid: two columns on tablet and phone */
@media (max-width: 820px){ .show-works{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px){ .show-works{ grid-template-columns: repeat(2, 1fr); } }

/* Mobile: lift the installation views up under the title, like the work detail */
@media (max-width: 680px){
  .exhib-view{ display: flex; flex-direction: column; }
  .exhib-view .back{ order: 0; }
  .exhib-view .exhib__title{ order: 1; }
  .exhib-view .exhib-install{ order: 2; }
  .exhib-view .exhib-head{ order: 3; }
  .exhib-view .exhib-works{ order: 4; }
}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--s-6);background:rgba(6,7,9,.94);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:lbfade .25s ease both}
.lightbox[hidden]{display:none}
@keyframes lbfade{from{opacity:0}to{opacity:1}}
.lb-figure{margin:0;width:min(92vw,1400px)}
.lb-still{width:100%;aspect-ratio:16/9}
.lb-cap{margin-top:var(--s-3);text-align:center;font-family:var(--mono);font-size:.72rem;color:var(--text-muted);letter-spacing:.02em}
.lb-close{position:absolute;top:var(--s-2);right:var(--s-3);font-size:1.8rem;line-height:1;color:var(--text-muted);z-index:4;padding:var(--s-3);cursor:pointer}
.lb-close:hover{color:var(--text)}
.lb-nav{position:absolute;top:0;bottom:0;width:clamp(64px,13vw,130px);display:flex;align-items:center;line-height:1;color:#fff;font-size:clamp(1.9rem,4vw,2.6rem);background:none;border:0;cursor:pointer;user-select:none;opacity:.72;transition:opacity .2s ease}
.lb-prev{left:0;justify-content:flex-start;padding-left:clamp(.75rem,3vw,2rem);background:linear-gradient(90deg,rgba(0,0,0,.42),transparent)}
.lb-next{right:0;justify-content:flex-end;padding-right:clamp(.75rem,3vw,2rem);background:linear-gradient(270deg,rgba(0,0,0,.42),transparent)}
.lb-nav:hover,.lb-nav:focus-visible{opacity:1}

/* About */
.subtabs{display:flex;flex-wrap:wrap;gap:.4rem var(--s-6);margin:0 0 var(--s-12);padding-bottom:var(--s-3);border-bottom:1px solid var(--hairline);position:relative}
.subtab{font-family:var(--mono);font-size:.8rem;color:var(--text-muted);letter-spacing:.02em;transition:color .2s}
.subtab:hover{color:var(--text)}
.subtab.on{color:var(--text)}
.subtab-underline,.arch-underline{position:absolute;bottom:-1px;left:0;width:0;height:2px;background:var(--accent);transition:left .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:2}
.about-body{min-height:18rem}
.about-section[hidden]{display:none}
.prose p{color:var(--text-muted);margin:0 0 var(--s-4);max-width:66ch}
.prose strong{color:var(--text);font-weight:500}
.placeholder{font-family:var(--mono);font-size:.78rem;color:var(--text-faint);border:1px dashed var(--hairline);border-radius:2px;padding:.7rem .9rem;margin-top:var(--s-4)}
.cv__group{margin-bottom:var(--s-8)}
.cv__h{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin:0 0 var(--s-3)}
.cv__row{display:grid;grid-template-columns:7rem 1fr;gap:var(--s-4);padding:var(--s-2) 0;border-bottom:1px solid var(--hairline);align-items:baseline}
.cv__row > span:first-child{font-family:var(--mono);font-size:.76rem;color:var(--text-faint)}
.cv__row > span:last-child{color:var(--text-muted);font-size:.95rem}
.contact{font-family:var(--mono);font-size:.85rem;color:var(--text-muted);line-height:2}
.contact-label{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--s-3)}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(248px,322px);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.about-main{min-width:0}
.about-rail{min-width:0}
.about-head__bio{margin:0 0 var(--s-10)}
.about-head__bio .framing{margin:0 0 var(--s-4)}
.about-head__bio .readmore{margin-top:calc(-1 * var(--s-3))}
.contact .k{color:var(--text-faint)}
.contact a{color:var(--accent-text)}

/* Footer */
.foot{border-top:1px solid var(--hairline)}
.foot .wrap{padding-block:var(--s-5)}
.foot__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3) var(--s-6)}
.foot p{margin:0;font-family:var(--mono);font-size:.75rem;color:var(--text-faint);letter-spacing:.04em}
.to-top{display:inline-block;margin-bottom:var(--s-4);background:none;border:0;cursor:pointer;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);transition:color .2s ease}
.to-top:hover{color:var(--accent-text)}
.foot__tools{display:flex;gap:var(--s-5);align-items:center}
.foot__tools .to-top{margin-bottom:0}
@media(max-width:520px){.foot__bar{justify-content:center;gap:var(--s-4)}}

/* Responsive */
@media(max-width:820px){
  .work{grid-template-columns:1fr;gap:var(--s-8)}
  .work__info{position:static}
}
@media(max-width:760px){
  .piece{grid-template-columns:1fr;gap:var(--s-4)}
  .piece__desc{font-size:1rem}
  .about-grid{grid-template-columns:1fr;gap:var(--s-8)}
  .exhib-head{grid-template-columns:1fr;gap:var(--s-6)}
}
@media(max-width:900px){
  .nav{order:3;flex-basis:100%;margin-left:0;flex-wrap:wrap;gap:1rem 1.4rem}
  .nav__icons{order:2;margin-left:auto}
}
@media(max-width:680px){
  .gallery{grid-template-columns:1fr;gap:var(--s-4)}
  .view{padding-block:var(--s-6) var(--s-16)}
  .spec__row{padding:var(--s-2) 0}
/* Mobile: un-float the back link so it doesn't sit on the title */
  .back{ position: static; margin: 0 0 var(--s-4); }
  .exhib-view .exhib-head{ order: 3; margin-top: var(--s-8); }
}

@media(max-width:520px){
  .wordmark{font-size:1.3rem}
  .nav__link{font-size:.9rem}
  .framing{font-size:1.06rem}
  .cv__row{grid-template-columns:5rem 1fr;gap:var(--s-3)}
}
@media(max-width:600px){.lb-nav{font-size:1.9rem;width:clamp(48px,15vw,84px)}.lb-figure{width:94vw}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}html{scroll-behavior:auto}}