:root {
  --ink: #0C1012;
  --paper: #F4F1E9;
  --dark-muted: #AEB9BC;
  --light-muted: #566166;
  --header-height: 108px;
  --side: 20px;
  --display: Fraunces, Georgia, serif;
  --sans: Manrope, sans-serif;
  --mono: 'IBM Plex Mono', monospace;
  font-family: var(--sans);
  color-scheme: dark;
  color: var(--paper);
  background: var(--ink);
}
* { box-sizing: border-box; }
html { scroll-padding-top: var(--header-height); }
body { margin: 0; min-width: 320px; font-size: 16px; line-height: 1.6; }
button, input { font: inherit; }
a { color: inherit; text-decoration: none; touch-action: manipulation; }
button { color: inherit; background: none; border: 0; cursor: pointer; touch-action: manipulation; }
button:disabled { opacity: .35; cursor: default; }
button, .text-link, .entrance-link { min-height: 44px; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent, #92DDE7); outline-offset: 6px; }
h1, h2, p, figure { margin: 0; }
img { display: block; width: 100%; height: auto; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -80px; left: 16px; padding: 12px 18px; background: var(--paper); color: var(--ink); z-index: 100; }
.skip-link:focus { top: 12px; }
[data-theme='dark'] { --background: var(--ink); --foreground: var(--paper); --muted: var(--dark-muted); --accent: #92DDE7; --rule: #647276; --quiet-rule: rgba(174,185,188,.24); color: var(--foreground); background: var(--background); color-scheme: dark; }
[data-theme='light'] { --background: var(--paper); --foreground: var(--ink); --muted: var(--light-muted); --accent: #176471; --rule: #798287; --quiet-rule: rgba(86,97,102,.26); color: var(--foreground); background: var(--background); color-scheme: light; }
.sequence { font: 400 11px/1.5 var(--mono); letter-spacing: .045em; }
.site-header { position: sticky; top: 0; z-index: 30; padding-top: env(safe-area-inset-top); background: var(--background); border-bottom: 1px solid var(--quiet-rule); }
.header-top, .chapter-navigation { padding-left: max(var(--side), env(safe-area-inset-left)); padding-right: max(var(--side), env(safe-area-inset-right)); max-width: 1552px; margin: auto; }
.header-top { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 8px; padding-bottom: 4px; min-height: 60px; }
.wordmark { font: 400 28px/1 var(--display); letter-spacing: .09em; min-height: 44px; display: flex; align-items: center; }
.desktop-navigation { display: none; }
.menu-button { display: none; align-items: center; gap: 16px; padding: 6px 0 6px 12px; font-size: 14px; }
.gallery-ready .menu-button { display: flex; }
.menu-button span { font-size: 18px; line-height: 1; }
.chapter-navigation { display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.chapter-navigation a { min-height: 44px; display: flex; align-items: center; gap: 9px; font-size: 13px; line-height: 1.4; }
.chapter-navigation .sequence { color: var(--muted); }
#next-chapter-link { color: var(--muted); font-size: 13px; text-align: right; }
.active-mark { width: 5px; height: 5px; background: var(--foreground); flex-shrink: 0; }
.no-script-navigation { display: flex; flex-wrap: wrap; gap: 6px 22px; padding: 12px var(--side); font-size: 14px; }
.no-script-navigation a { display: flex; min-height: 44px; align-items: center; }
.room { scroll-margin-top: 0; }
.section-inner { max-width: 1552px; padding-left: max(var(--side), env(safe-area-inset-left)); padding-right: max(var(--side), env(safe-area-inset-right)); margin: 0 auto; }
.hero-layout { padding-top: 40px; padding-bottom: 32px; }
.intro-author { color: var(--foreground); font-size: 15px; line-height: 1.6; }
.intro-author span { display: block; color: var(--muted); font-size: 13px; margin-top: 3px; }
.hero-copy h1 { font: 400 clamp(72px, 22.6vw, 88px)/1 var(--display); letter-spacing: -.055em; margin: 20px 0 12px; }
.hero-statement { font-size: 24px; line-height: 1.3; letter-spacing: -.025em; }
.hero-description { color: var(--muted); font-size: 15px; line-height: 1.8; margin-top: 20px; max-width: 40ch; }
.entrance-link { display: inline-flex; align-items: center; gap: 40px; font-size: 15px; line-height: 1.5; border-bottom: 1px solid var(--rule); padding: 8px 0; margin-top: 24px; }
.entrance-link span { font-size: 22px; }
.hero-image-room { position: relative; padding: 28px 0 24px; overflow: hidden; margin-top: 16px; }
#optical-stage { position: absolute; inset: 0; pointer-events: none; }
#hero-photo { position: relative; width: 72%; max-width: 420px; margin: 0 auto; z-index: 1; }
.hero-figure figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 12px; font-size: 12px; line-height: 1.55; }
.hero-figure figcaption .sequence { color: var(--muted); white-space: nowrap; }
.hero-footer { display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid var(--quiet-rule); padding-top: 20px; margin-top: 16px; font-size: 11px; color: var(--muted); }
.hero-footer span:last-child { text-align: right; }
.work-index { padding-top: 56px; padding-bottom: 24px; }
.section-kicker { color: var(--muted); font-size: 12px; line-height: 1.6; letter-spacing: .04em; margin-bottom: 20px; }
.section-kicker .sequence { color: var(--foreground); }
h2 { font: 400 48px/1.1 var(--display); letter-spacing: -.045em; }
.work-index h2 { font-size: 32px; }
.collection-index { display: flex; flex-wrap: wrap; gap: 0 24px; margin-top: 20px; padding-top: 12px; border-top: 1px solid var(--quiet-rule); }
.collection-index a { min-height: 44px; display: flex; align-items: center; gap: 8px; font-size: 15px; }
.collection-index a .sequence { color: var(--muted); }
.collection-index a > span:last-child { margin-left: 3px; font-size: 16px; }
.city-room .section-inner { padding-top: 48px; padding-bottom: 0; }
.chapter-heading { margin-bottom: 40px; }
.chapter-heading .section-kicker { margin-bottom: 16px; }
.chapter-description { margin-top: 24px; max-width: 55ch; }
.chapter-description > p { font-size: 16px; line-height: 1.75; color: var(--muted); }
.chapter-description .view-instruction { font-size: 12px; margin-top: 16px; }
.photo-group { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; margin-bottom: 80px; }
.gallery-figure { min-width: 0; }
.photo-link { display: block; }
.gallery-figure figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; font-size: 13px; line-height: 1.6; margin-top: 12px; }
.gallery-figure figcaption > span:first-child { min-width: 0; }
.figure-number { color: var(--muted); white-space: nowrap; flex-shrink: 0; }
.figure-number > span { padding-left: 4px; color: var(--foreground); }
.city-landscape { margin-bottom: 96px; }
.city-closing { margin-bottom: 0; }
.chapter-transition { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; min-height: 72px; border-top: 1px solid var(--quiet-rule); margin-top: 80px; padding: 24px 0; }
.chapter-transition > span:first-child { font-size: 12px; color: var(--muted); }
.chapter-transition > span:last-child { font-size: 17px; line-height: 1.5; }
.chapter-transition > span:last-child > span { padding-left: 18px; }
.portraits-room .section-inner { padding-top: 96px; }
.portrait-pair { margin-bottom: 0; }
.night-room .section-inner { padding-top: 96px; }
.night-heading { margin-bottom: 56px; }
.night-closing { margin-bottom: 0; }
.practice-layout { padding-top: 80px; padding-bottom: 72px; }
.practice-layout h2 { font-size: clamp(44px, 12vw, 56px); }
.practice-author { font-size: 17px; margin-top: 32px; }
.practice-copy { font-size: 16px; line-height: 1.85; color: var(--muted); max-width: 48ch; margin-top: 16px; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; font-size: 15px; border-bottom: 1px solid var(--rule); margin-top: 24px; }
.contact-room .section-inner { padding-top: 40px; padding-bottom: max(24px,env(safe-area-inset-bottom)); border-top: 1px solid var(--quiet-rule); }
.contact-heading h2 { font-size: 40px; }
.contact-links { margin-top: 32px; }
.contact-links a { display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 64px; padding: 16px 0; border-bottom: 1px solid var(--quiet-rule); font-size: 21px; line-height: 1.4; }
.site-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px 20px; margin-top: 72px; font-size: 13px; color: var(--muted); }
.site-footer a { min-height: 44px; display: flex; align-items: center; gap: 10px; }
.footer-wordmark { font: 400 26px/1 var(--display); letter-spacing: .08em; color: var(--foreground); }
dialog { color: var(--paper); background: var(--ink); border: 0; padding: 0; margin: 0; max-width: none; max-height: none; --accent: #92DDE7; color-scheme: dark; }
dialog::backdrop { background: rgba(0,0,0,.64); }
.navigation-dialog { left: auto; right: 0; width: min(100%, 480px); height: 100%; height: 100dvh; overflow: auto; overscroll-behavior: contain; padding: max(20px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) 24px; }
.menu-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-bottom: 32px; border-bottom: 1px solid #647276; }
.menu-heading h2 { font: 400 20px/1.5 var(--sans); letter-spacing: -.025em; }
.close-button { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px 0 8px 8px; font-size: 13px; white-space: nowrap; min-width: 72px; }
.close-button span { font-size: 28px; font-weight: 300; line-height: 1; }
.menu-links { display: grid; padding-top: 24px; }
.menu-links a { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 12px 0; font-size: 22px; line-height: 1.4; border-bottom: 1px solid rgba(174,185,188,.2); }
.menu-links a .sequence { color: var(--dark-muted); min-width: 19px; }
.menu-links a > span:last-child { margin-left: auto; font-size: 19px; }
.menu-links a[aria-current='location'] { font-weight: 650; }
.menu-links a[aria-current='location'] .sequence { color: var(--paper); text-decoration: underline; text-underline-offset: 5px; }
.menu-footer { color: var(--dark-muted); font-size: 12px; margin-top: 32px; }
.photo-dialog { inset: 0; width: 100%; height: 100%; height: 100dvh; overflow: hidden; overscroll-behavior: contain; }
.photo-dialog[open] { display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
.viewer-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; padding: max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 16px max(20px,env(safe-area-inset-left)); }
.viewer-series { color: var(--dark-muted); font-size: 12px; margin-bottom: 4px; }
.viewer-header h2 { font: 500 16px/1.5 var(--sans); letter-spacing: -.02em; max-width: 40ch; }
.viewer-artwork { display: flex; align-items: center; justify-content: center; min-height: 0; padding: 8px 12px; }
.viewer-artwork img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.viewer-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); }
.viewer-controls button { display: flex; align-items: center; gap: 12px; font-size: 13px; min-width: 90px; padding: 8px 0; }
#viewer-next { justify-content: flex-end; }
.viewer-controls button > span[aria-hidden] { font-size: 21px; }
.viewer-controls .sequence { color: var(--dark-muted); white-space: nowrap; }
@media (min-width: 700px) {
  :root { --side: 40px; }
  .hero-copy h1 { font-size: 112px; }
  .hero-layout { padding-top: 56px; }
  #hero-photo { width: 65%; }
  .hero-image-room { margin-top: 32px; padding: 48px 0; }
  .work-index { display: grid; grid-template-columns: 1fr 1.2fr; gap: 40px; align-items: center; padding-top: 72px; padding-bottom: 40px; }
  .collection-index { margin-top: 0; gap: 0 28px; }
  .chapter-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 56px; }
  h2 { font-size: 64px; }
  .chapter-description { margin-top: 0; }
  .chapter-description > p { font-size: 17px; }
  .photo-group { gap: 32px; margin-bottom: 104px; }
  .city-opening { grid-template-columns: 1.15fr 1fr; align-items: start; }
  .city-opening .city-second { padding-top: 96px; }
  .city-landscape { width: 90%; margin-left: auto; margin-bottom: 128px; }
  .city-afternoon { grid-template-columns: 1fr 1.2fr; align-items: end; }
  .city-closing { width: 86%; margin-left: auto; margin-bottom: 0; }
  .portrait-opening { width: 65%; margin-left: auto; margin-right: auto; }
  .portrait-pair { grid-template-columns: 1fr 1fr; margin-bottom: 0; }
  .night-opening { width: 70%; margin-left: auto; margin-right: auto; }
  .night-interval { width: 80%; }
  .night-closing { width: 92%; margin-left: auto; margin-bottom: 0; }
  .practice-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; padding-top: 112px; padding-bottom: 104px; }
  .practice-layout h2 { font-size: 64px; }
  .contact-heading h2 { font-size: 56px; }
  .contact-links { width: 70%; margin-left: auto; }
}
@media (min-width: 1000px) {
  :root { --side: 56px; --header-height: 112px; }
  .header-top { min-height: 68px; padding-top: 12px; padding-bottom: 8px; }
  .wordmark { font-size: 32px; }
  .desktop-navigation { display: flex; align-items: center; gap: 36px; margin-left: auto; }
  .desktop-navigation a { min-height: 44px; display: flex; align-items: center; font-size: 13px; position: relative; }
  .desktop-navigation a[aria-current='location'] { text-decoration: underline; text-underline-offset: 6px; }
  .menu-button { font-size: 13px; margin-left: 16px; }
  .chapter-navigation a, #next-chapter-link { font-size: 13px; }
  .hero-layout { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 0 24px; padding-top: 48px; padding-bottom: 40px; }
  .hero-copy { grid-column: 1 / 6; padding-top: 48px; align-self: start; }
  .intro-author { font-size: 17px; }
  .intro-author span { margin-top: 5px; font-size: 13px; }
  .hero-copy h1 { font-size: clamp(100px,10.4vw,156px); margin-top: 40px; margin-bottom: 24px; }
  .hero-statement { font-size: 32px; }
  .hero-description { font-size: 16px; margin-top: 24px; }
  .entrance-link { margin-top: 40px; font-size: 16px; }
  .hero-image-room { grid-column: 7 / 13; margin: 0; padding: 64px 44px; }
  #hero-photo { width: 100%; max-width: 420px; }
  .hero-figure figcaption { font-size: 13px; margin-top: 16px; }
  .hero-footer { grid-column: 1 / -1; margin-top: 24px; font-size: 12px; padding-top: 24px; }
  .work-index { grid-template-columns: repeat(12,minmax(0,1fr)); gap: 24px; padding-top: 96px; padding-bottom: 56px; }
  .work-index > div { grid-column: 1 / 6; }
  .work-index h2 { font-size: 40px; }
  .collection-index { grid-column: 7 / 13; justify-content: space-between; gap: 20px; }
  .collection-index a { font-size: 17px; }
  .city-room .section-inner { padding-top: 64px; }
  .chapter-heading { margin-bottom: 72px; }
  h2 { font-size: 88px; }
  .chapter-description { padding-right: 8.5%; }
  .chapter-description > p { font-size: 18px; }
  .chapter-description .view-instruction { font-size: 13px; margin-top: 20px; }
  .photo-group { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 24px; margin-bottom: 144px; }
  .gallery-figure figcaption { font-size: 14px; margin-top: 16px; }
  .city-opening .city-first { grid-column: 1 / 6; }
  .city-opening .city-second { grid-column: 8 / 12; padding-top: 144px; }
  .city-landscape { width: 100%; margin-bottom: 160px; }
  .city-landscape .gallery-figure { grid-column: 3 / 13; }
  .city-afternoon .gallery-figure:first-child { grid-column: 2 / 7; }
  .city-afternoon .gallery-figure:last-child { grid-column: 8 / 13; }
  .city-closing { width: 100%; margin-bottom: 0; }
  .city-closing .gallery-figure { grid-column: 4 / 13; }
  .chapter-transition { margin-top: 112px; padding: 32px 0; }
  .chapter-transition > span:first-child { font-size: 13px; }
  .chapter-transition > span:last-child { font-size: 20px; }
  .portraits-room .section-inner, .night-room .section-inner { padding-top: 128px; }
  .portrait-opening { width: 100%; }
  .portrait-opening .gallery-figure { grid-column: 4 / 10; }
  .portrait-pair { grid-template-columns: repeat(12,minmax(0,1fr)); margin-bottom: 0; }
  .portrait-pair .gallery-figure:first-child { grid-column: 2 / 7; }
  .portrait-pair .gallery-figure:last-child { grid-column: 8 / 13; }
  .night-heading { margin-bottom: 88px; }
  .night-opening { width: 100%; }
  .night-opening .gallery-figure { grid-column: 4 / 10; }
  .night-interval { width: 100%; }
  .night-interval .gallery-figure { grid-column: 1 / 8; }
  .night-closing { width: 100%; margin-bottom: 0; }
  .night-closing .gallery-figure { grid-column: 3 / 13; }
  .practice-layout { grid-template-columns: repeat(12,minmax(0,1fr)); gap: 24px; padding-top: 144px; padding-bottom: 144px; }
  .practice-layout > .section-kicker { grid-column: 1 / 5; padding-top: 8px; }
  .practice-layout > div { grid-column: 6 / 12; }
  .practice-layout h2 { font-size: 80px; }
  .practice-copy { font-size: 17px; margin-top: 24px; }
  .practice-author { font-size: 20px; }
  .contact-room .section-inner { padding-top: 72px; padding-bottom: 32px; }
  .contact-heading h2 { font-size: 72px; }
  .contact-links { width: 58%; margin-top: 48px; }
  .contact-links a { font-size: 32px; min-height: 92px; }
  .site-footer { margin-top: 104px; font-size: 13px; }
  .navigation-dialog { padding: 32px 40px; }
  .viewer-header { padding: 24px 40px; }
  .viewer-header h2 { font-size: 18px; }
  .viewer-artwork { padding: 8px 40px; }
  .viewer-controls { padding: 20px 40px 24px; }
  .viewer-controls button { font-size: 14px; }
}
@media (max-width: 350px) {
  :root { --side: 16px; }
  .chapter-navigation { gap: 10px; }
  .chapter-navigation a, #next-chapter-link { font-size: 13px; }
  .hero-copy h1 { font-size: 72px; }
  .hero-description { font-size: 14px; }
  .hero-figure figcaption { flex-wrap: wrap; gap: 4px 12px; }
  .hero-figure figcaption > span:first-child { width: 100%; }
  .collection-index { gap: 0 16px; }
  .collection-index a { font-size: 14px; gap: 6px; }
  .gallery-figure figcaption { gap: 12px; font-size: 13px; }
  .figure-number { font-size: 11px; }
  .viewer-header { gap: 12px; padding-left: 16px; padding-right: 16px; }
  .viewer-header h2 { font-size: 14px; }
  .viewer-controls { gap: 8px; padding-left: 16px; padding-right: 16px; }
  .viewer-controls button { min-width: 80px; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* NYC commissions: the person and the inquiry lead; the gallery keeps its rhythm. */
[data-theme='light'] { --accent: #895235; }
[data-theme='dark'] { --accent: #E8BA78; }
.header-top { gap: 18px; }
.header-inquiry { display: flex; align-items: center; gap: 9px; min-height: 44px; margin-left: auto; color: var(--accent); font-size: 13px; white-space: nowrap; }
.menu-button { gap: 10px; font-size: 13px; }
.hero-layout { padding-top: 32px; }
.hero-copy .intro-author { font-size: 15px; color: var(--muted); }
.hero-copy h1 { font-size: 64px; line-height: 1.03; letter-spacing: -.045em; margin: 16px 0 20px; }
.name-period { color: var(--accent); }
.hero-statement { font-size: 19px; line-height: 1.55; letter-spacing: -.015em; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin-top: 24px; }
.hero-actions a { min-height: 48px; display: inline-flex; justify-content: space-between; align-items: center; gap: 22px; font-size: 14px; }
.commission-link { padding: 11px 16px; background: var(--foreground); color: var(--background); }
.commission-link span { font-size: 19px; }
.hero-actions .entrance-link { padding: 8px 0; margin-top: 0; }
.hero-actions .entrance-link span { font-size: 19px; }
.hero-image-room { margin-top: 12px; padding-top: 24px; }
.hero-image-room:has(.hero-landscape) { padding: 28px 18px; }
#hero-photo:has(.hero-landscape) { width: 100%; max-width: none; }
.hero-footer { font-size: 11px; }
.hero-footer > span:first-child { max-width: 24ch; }
.hero-figure figcaption { font-size: 13px; }
.events-room .section-inner { padding-top: 64px; }
.event-opening { margin-bottom: 72px; }
.event-pair:last-child { margin-bottom: 0; }
.event-inquiry-link { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-top: 48px; min-height: 44px; font-size: 14px; }
.event-inquiry-link > span { text-decoration: underline; text-underline-offset: 5px; }
.practice-layout h2 { font-size: 44px; line-height: 1.13; }
.practice-context { font-size: 12px; color: var(--muted); border-top: 1px solid var(--quiet-rule); padding-top: 20px; margin-top: 32px; }
.practice-context span { display: block; margin-top: 3px; font-size: 12px; }
.commission-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: 48px; padding-top: 72px; padding-bottom: 80px; }
.commission-copy h2 { font-size: 48px; }
.commission-copy > p:not(.section-kicker) { max-width: 42ch; color: var(--muted); font-size: 16px; line-height: 1.8; margin-top: 24px; }
.inquiry-channel a { color: var(--foreground); display: inline-flex; align-items: center; gap: 14px; min-height: 44px; font-size: 17px; }
.inquiry-composer { border-top: 1px solid var(--rule); padding-top: 24px; }
.composer-intro { font-size: 17px; margin-bottom: 24px; }
.inquiry-fields { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; margin-bottom: 20px; }
.inquiry-composer label { display: block; font-size: 14px; color: var(--foreground); margin-bottom: 20px; }
.inquiry-fields label { margin-bottom: 0; }
.inquiry-composer label > span { color: var(--muted); font-size: 12px; padding-left: 7px; }
.inquiry-composer input, .inquiry-composer textarea { width: 100%; min-width: 0; display: block; background: transparent; color: var(--foreground); font: 400 16px/1.65 var(--sans); border: 1px solid var(--rule); border-radius: 0; padding: 12px; margin-top: 8px; }
.inquiry-composer input { min-height: 52px; }
.inquiry-composer textarea { resize: vertical; min-height: 110px; }
.inquiry-composer input::placeholder, .inquiry-composer textarea::placeholder { color: var(--muted); opacity: 1; }
.inquiry-composer input:focus-visible, .inquiry-composer textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.message-label { margin-top: 28px; }
.message-label textarea { font-size: 16px; line-height: 1.8; }
.inquiry-actions { display: grid; grid-template-columns: minmax(0,1fr); gap: 14px; }
.inquiry-actions button, .inquiry-actions a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; font-size: 15px; padding: 12px 16px; border: 1px solid var(--rule); }
.inquiry-actions button { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.inquiry-feedback { font-size: 13px; color: var(--muted); line-height: 1.75; margin-top: 20px; max-width: 55ch; }
html:not(.gallery-ready) #copy-inquiry, html:not(.gallery-ready) .inquiry-fields, html:not(.gallery-ready) #inquiry-form > label:not(.message-label) { display: none; }
.contact-heading h2 { font-size: 38px; line-height: 1.2; }
.contact-links a { font-size: 18px; }
.menu-links a { font-size: 20px; min-height: 60px; }
@media (min-width: 700px) {
  .hero-copy h1 { font-size: 88px; }
  .hero-statement { font-size: 24px; }
  .hero-actions a { font-size: 15px; }
  .hero-image-room:has(.hero-landscape) { padding: 40px 32px; }
  .event-opening { width: 90%; margin-left: auto; }
  .event-pair { grid-template-columns: 1fr 1fr; align-items: start; }
  .practice-layout h2 { font-size: 58px; }
  .inquiry-fields { grid-template-columns: 1fr 1.4fr; }
  .inquiry-actions { grid-template-columns: 1fr 1fr; }
  .contact-heading h2 { font-size: 52px; }
  .contact-links a { font-size: 22px; }
}
@media (min-width: 1000px) {
  .desktop-navigation { margin-left: auto; gap: 32px; }
  .header-inquiry { margin-left: 20px; font-size: 14px; }
  .hero-layout { padding-top: 48px; }
  .hero-copy { padding-top: 24px; }
  .hero-copy .intro-author { font-size: 17px; }
  .hero-copy h1 { font-size: clamp(88px,8.2vw,120px); margin: 24px 0; }
  .hero-statement { font-size: 26px; line-height: 1.6; }
  .hero-actions { margin-top: 32px; gap: 24px; }
  .hero-actions a { font-size: 15px; }
  .hero-image-room { margin: 0; padding-top: 32px; padding-bottom: 32px; }
  .hero-image-room:has(.hero-landscape) { align-self: center; padding: 48px 24px; }
  .events-room .section-inner { padding-top: 80px; }
  .event-opening { width: 100%; margin-bottom: 112px; }
  .event-opening .gallery-figure { grid-column: 2 / 12; }
  .event-pair { grid-template-columns: repeat(12,minmax(0,1fr)); }
  .event-pair .gallery-figure:first-child { grid-column: 1 / 7; }
  .event-pair .gallery-figure:last-child { grid-column: 8 / 13; }
  .event-inquiry-link { font-size: 17px; margin-top: 64px; }
  .collection-index { flex-wrap: wrap; justify-content: flex-start; gap: 8px 24px; }
  .practice-layout h2 { font-size: 68px; }
  .commission-layout { grid-template-columns: repeat(12,minmax(0,1fr)); gap: 24px; padding-top: 112px; padding-bottom: 120px; align-items: start; }
  .commission-copy { grid-column: 1 / 6; }
  .commission-copy h2 { font-size: 72px; }
  .commission-copy > p:not(.section-kicker) { font-size: 17px; }
  .inquiry-composer { grid-column: 7 / 13; padding-top: 24px; }
  .contact-heading h2 { font-size: 64px; }
  .contact-links a { font-size: 28px; }
}
@media (max-width: 350px) {
  .header-top { gap: 12px; }
  .header-inquiry { font-size: 13px; gap: 7px; }
  .menu-button { gap: 8px; }
  .hero-copy h1 { font-size: 58px; }
  .hero-copy .intro-author { font-size: 14px; }
  .hero-actions { gap: 12px 18px; }
  .hero-actions a { font-size: 13px; gap: 14px; }
  .commission-link { padding: 11px 13px; }
  .commission-copy h2 { font-size: 42px; }
  .practice-layout h2 { font-size: 39px; }
  .contact-heading h2 { font-size: 34px; }
  .contact-links a { font-size: 16px; }
}

/* A bounded color study; artwork geometry remains the original frame. */
.color-study-room { --study-reserved-height: 260px; --study-width: min(100%,calc((100svh - var(--header-height) - var(--study-reserved-height) - env(safe-area-inset-bottom, 0px)) * .66640625)); min-height: 210svh; position: relative; padding: 24px 0 88px; }
.color-study-sticky { position: sticky; top: calc(var(--header-height) + 12px); display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; align-content: start; }
.color-study-heading .section-kicker { margin-bottom: 6px; font-size: 11px; }
.color-study-heading h2 { font-size: clamp(22px,6.8vw,28px); line-height: 1.12; }
.color-study-heading h2 br { display: none; }
.color-study-heading > p:last-child { margin-top: 6px; font-size: 13px; color: var(--muted); line-height: 1.5; }
.color-study-artwork { min-width: 0; }
#color-study-stage { position: relative; width: var(--study-width); aspect-ratio: 853 / 1280; margin: 0 auto; }
#color-study-image { display: block; width: 100%; height: auto; }
.color-study-artwork figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; width: var(--study-width); margin: 10px auto 0; font-size: 12px; line-height: 1.5; }
#color-study-current { color: var(--muted); white-space: nowrap; }
#color-study-controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
#color-study-controls button { min-height: 44px; padding: 9px 12px; border: 1px solid var(--rule); font: 500 13px/1.4 var(--sans); text-align: left; display: flex; justify-content: space-between; align-items: center; gap: 6px; }
#color-study-controls button[aria-pressed='true'] { border-color: var(--foreground); background: var(--foreground); color: var(--background); }
#color-study-controls button[aria-pressed='true']::after { content: '✓'; font-size: 13px; }
#color-study-controls button:disabled { color: var(--muted); opacity: .7; }
.color-study-note { display: none; color: var(--muted); font-size: 11px; line-height: 1.5; margin-top: 8px; }
#color-study-controls[hidden] + .color-study-note { display: block; }
.color-study-ending { position: absolute; bottom: 16px; left: 0; right: 0; }
.color-study-next { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 13px; margin-top: 2px; }
@media (min-width: 700px) {
  .color-study-room { --study-reserved-height: 176px; }
  .color-study-sticky { grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); column-gap: 40px; row-gap: 24px; top: calc(var(--header-height) + 32px); }
  .color-study-heading { grid-column: 1; grid-row: 1; align-self: end; }
  .color-study-heading h2 { font-size: 44px; }
  .color-study-heading h2 br { display: initial; }
  .color-study-heading > p:last-child { margin-top: 16px; font-size: 15px; max-width: 26ch; }
  .color-study-artwork { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .color-study-options { grid-column: 1; grid-row: 2; align-self: start; }
  .color-study-note { font-size: 12px; margin-top: 16px; }
  .color-study-next { margin-top: 16px; font-size: 14px; }
}
@media (min-width: 1000px) {
  .color-study-sticky { grid-template-columns: repeat(12,minmax(0,1fr)); column-gap: 24px; }
  .color-study-heading, .color-study-options { grid-column: 2 / 6; }
  .color-study-artwork { grid-column: 7 / 12; }
  .color-study-heading h2 { font-size: 52px; }
  .color-study-artwork figcaption { font-size: 13px; }
  #color-study-controls button { font-size: 14px; min-height: 48px; }
}
@media (max-width: 350px) {
  .color-study-heading h2 { font-size: 22px; }
  .color-study-heading > p:last-child { font-size: 13px; }
}
@media (max-height: 650px) {
  .color-study-room { --study-width: min(100%,320px); min-height: 0; padding: 56px 0; }
  .color-study-sticky { position: static; }
  .color-study-ending { position: static; margin-top: 24px; }
}
