:root {
  --paper: #f5f1e8;
  --paper-2: #ece5d8;
  --ink: #171513;
  --muted: #68625a;
  --line: rgba(23,21,19,.16);
  --accent: #8f2639;
  --accent-dark: #671827;
  --accent-soft: #e8c7cb;
  --night: #161414;
  --white: #fffdf8;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --max: 1520px;
  --gutter: clamp(18px, 4vw, 64px);
  --header: 76px;
  --radius: 2px;
  --shadow: 0 25px 70px rgba(23,21,19,.14);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); color: var(--ink); }
body { margin: 0; font-family: var(--sans); background: var(--paper); color: var(--ink); line-height: 1.55; -webkit-font-smoothing: antialiased; }
body.drawer-open, body.dialog-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .22em; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
::selection { background: var(--accent); color: var(--white); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 1000; transform: translateY(-160%); background: var(--ink); color: white; padding: 10px 14px; }
.skip-link:focus { transform: none; }
.container { width: min(100%, var(--max)); margin-inline: auto; padding-inline: var(--gutter); }
.container.narrow { max-width: 980px; }
.eyebrow { margin: 0 0 16px; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.display { font-family: var(--serif); font-size: clamp(3.1rem, 8vw, 8.3rem); line-height: .88; letter-spacing: -.045em; font-weight: 400; margin: 0; }
.display.medium { font-size: clamp(2.8rem, 6vw, 6.5rem); }
.title { font-family: var(--serif); font-size: clamp(2.3rem, 5vw, 5rem); line-height: .98; letter-spacing: -.035em; font-weight: 400; margin: 0; }
.subtitle { font-family: var(--serif); font-size: clamp(1.45rem, 2.6vw, 2.4rem); line-height: 1.2; font-weight: 400; margin: 0; }
.lead { max-width: 760px; font-family: var(--serif); font-size: clamp(1.3rem, 2.2vw, 2rem); line-height: 1.35; }
.copy { max-width: 680px; color: var(--muted); font-size: 1.02rem; }
.muted { color: var(--muted); }
.rule { border: 0; border-top: 1px solid var(--line); margin: 0; }
.section { padding-block: clamp(84px, 11vw, 170px); }
.section.tight { padding-block: clamp(58px, 8vw, 105px); }
.section.dark { background: var(--night); color: var(--white); }
.section.accent { background: var(--accent); color: var(--white); }
.section-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 30px; align-items: end; margin-bottom: clamp(42px, 6vw, 90px); }
.section-head .copy { margin: 0; }

/* Header */
.site-header { position: sticky; top: 0; z-index: 50; height: var(--header); background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: blur(18px); border-bottom: 1px solid transparent; transition: border-color .2s, background .2s; }
.site-header.scrolled { border-bottom-color: var(--line); }
.navbar { height: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(20px, 3vw, 50px); }
.brand { text-decoration: none; white-space: nowrap; display: flex; align-items: baseline; gap: 10px; }
.brand strong { font-family: var(--serif); font-size: clamp(1.15rem, 2vw, 1.45rem); font-weight: 500; }
.brand span { font-size: .63rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.main-nav { justify-self: center; display: flex; align-items: center; gap: clamp(14px, 2vw, 32px); }
.main-nav a { text-decoration: none; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; position: relative; padding-block: 10px; }
.main-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:5px; height:1px; background:currentColor; transition:right .25s; }
.main-nav a:hover::after, .main-nav a[aria-current="page"]::after { right:0; }
.nav-actions { display: flex; align-items: center; gap: 12px; }
.language { position: relative; }
.language summary { cursor: pointer; list-style: none; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; padding: 9px 13px; border: 1px solid var(--line); border-radius: var(--radius); display: inline-flex; align-items: center; gap: 7px; transition: border-color .2s, background .2s; }
.language summary:hover { border-color: var(--ink); }
.language[open] summary { border-color: var(--ink); background: var(--paper-2); }
.language summary::-webkit-details-marker { display:none; }
.language summary::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.language[open] summary::after { transform: rotate(225deg) translateY(1px); }
.language-menu { position: absolute; right: 0; top: calc(100% + 12px); background: var(--white); min-width: 150px; border: 1px solid var(--line); box-shadow: var(--shadow); padding: 8px; }
.language-menu a { display:block; padding:9px 11px; text-decoration:none; font-size:.84rem; }
.language-menu a:hover { background: var(--paper-2); }
.language-menu a[aria-current="page"] { font-weight: 600; }
.icon-button { border: 0; background: transparent; min-width: 44px; height: 44px; display: inline-grid; place-items: center; cursor: pointer; position: relative; }
.icon-button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.selection-count { position:absolute; top:1px; right:0; background:var(--accent); color:white; border-radius:99px; min-width:18px; height:18px; display:grid; place-items:center; font-size:.63rem; }
.menu-toggle { display:none; border:0; background:none; width:44px; height:44px; cursor:pointer; padding:10px; }
.menu-toggle span { display:block; height:1px; background:currentColor; margin:6px 0; }

/* Buttons */
.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:12px 20px; border:1px solid var(--ink); background:transparent; color:var(--ink); text-decoration:none; cursor:pointer; letter-spacing:.045em; font-size:.78rem; text-transform:uppercase; transition:.2s ease; }
.button:hover { background:var(--ink); color:var(--white); }
.button.primary { background:var(--accent); border-color:var(--accent); color:white; }
.button.primary:hover { background:var(--accent-dark); border-color:var(--accent-dark); }
.button.light { border-color:rgba(255,255,255,.55); color:white; }
.button.light:hover { background:white; color:var(--ink); }
.button.ghost { border-color:transparent; padding-inline:0; min-height:auto; }
.button.ghost:hover { background:transparent; color:var(--accent); }
.button.small { min-height:40px; padding:8px 14px; font-size:.7rem; }
.actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.text-link { display:inline-flex; gap:8px; align-items:center; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:4px; }

/* Hero */
.home-hero { min-height: calc(100vh - var(--header)); display:grid; grid-template-columns: minmax(360px, .88fr) minmax(0, 1.4fr); border-bottom:1px solid var(--line); }
.hero-copy { padding: clamp(55px, 7vw, 110px) var(--gutter); display:flex; flex-direction:column; justify-content:space-between; gap:60px; }
.hero-copy .display { max-width:8ch; }
.hero-copy-bottom { display:grid; gap:26px; max-width:620px; }
.hero-copy-bottom p { margin:0; font-family:var(--serif); font-size:clamp(1.18rem, 1.7vw, 1.55rem); line-height:1.4; }
.hero-art { min-height:620px; position:relative; overflow:hidden; background:var(--paper-2); }
.hero-art picture, .hero-art img { width:100%; height:100%; }
.hero-art img { object-fit:cover; }
.hero-art::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(0,0,0,.38)); pointer-events:none; }
.hero-caption { position:absolute; left:clamp(20px,4vw,60px); right:clamp(20px,4vw,60px); bottom:32px; z-index:2; color:white; display:flex; justify-content:space-between; gap:20px; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }

/* Editorial strip */
.statement-strip { padding-block: clamp(70px, 10vw, 150px); }
.statement-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(50px,9vw,150px); }
.statement-grid blockquote { margin:0; font-family:var(--serif); font-size:clamp(2rem,4vw,4.6rem); line-height:1.02; letter-spacing:-.035em; }
.statement-grid .copy { align-self:end; }
.practice-photo { width:100%; max-width:1040px; margin:clamp(48px,7vw,90px) auto 0; aspect-ratio:984/403; overflow:hidden; background:var(--paper-2); }
.practice-photo picture, .practice-photo img { width:100%; height:100%; }
.practice-photo img { object-fit:cover; }

/* Artwork cards */
.art-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(22px,3vw,48px) clamp(14px,2vw,30px); }
.art-card { grid-column:span 4; min-width:0; position:relative; }
.art-card.wide { grid-column:span 8; }
.art-card.tall { grid-column:span 4; }
.art-card-media { position:relative; overflow:hidden; background:var(--paper-2); aspect-ratio:var(--card-ar, 1/1); }
.art-card[data-orientation="portrait"] .art-card-media { aspect-ratio:var(--card-ar, 4/5); }
.art-card[data-orientation="landscape"] .art-card-media { aspect-ratio:var(--card-ar, 5/4); }
.art-card-media picture, .art-card-media img { width:100%; height:100%; }
.art-card-media img { object-fit:cover; transition:transform .55s cubic-bezier(.2,.7,.2,1); }
.art-card:hover .art-card-media img { transform:scale(1.025); }
.art-card-link { display:block; text-decoration:none; }
.art-card-info { display:grid; grid-template-columns:1fr auto; gap:15px; align-items:start; padding-top:14px; }
.art-card-title { font-family:var(--serif); font-size:1.18rem; line-height:1.15; margin:0 0 5px; }
.art-card-meta { font-size:.72rem; color:var(--muted); letter-spacing:.055em; text-transform:uppercase; }
.favorite { width:44px; height:44px; border:0; background:transparent; display:grid; place-items:center; cursor:pointer; margin-top:-8px; }
.favorite svg { width:22px; height:22px; fill:transparent; stroke:currentColor; stroke-width:1.25; }
.favorite[aria-pressed="true"] svg { fill:var(--accent); stroke:var(--accent); }
.art-card-overlay { position:absolute; inset:auto 12px 12px auto; z-index:2; opacity:0; transform:translateY(6px); transition:.2s; }
.art-card:hover .art-card-overlay, .art-card:focus-within .art-card-overlay { opacity:1; transform:none; }

/* Series */
.series-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.series-card { display:grid; grid-template-columns:1fr 1fr; min-height:360px; border-bottom:1px solid var(--line); text-decoration:none; }
.series-card:nth-child(odd) { border-right:1px solid var(--line); }
.series-card-media { overflow:hidden; background:var(--paper-2); }
.series-card-media picture, .series-card-media img { width:100%; height:100%; }
.series-card-media img { object-fit:cover; transition:transform .45s; }
.series-card:hover img { transform:scale(1.025); }
.series-card-copy { padding:clamp(24px,4vw,55px); display:flex; flex-direction:column; justify-content:space-between; }
.series-card h3 { margin:0; font-family:var(--serif); font-weight:400; font-size:clamp(1.8rem,3vw,3.6rem); line-height:1; }
.series-card p { margin:0; font-size:.76rem; color:var(--muted); letter-spacing:.08em; text-transform:uppercase; }

/* Gallery module */
.gallery-split { display:grid; grid-template-columns:1.15fr .85fr; min-height:700px; }
.gallery-photo { position:relative; overflow:hidden; background:#282525; }
.gallery-photo picture, .gallery-photo img { width:100%; height:100%; }
.gallery-photo img { object-fit:cover; }
.gallery-info { background:var(--accent); color:white; padding:clamp(50px,7vw,110px); display:flex; flex-direction:column; justify-content:space-between; gap:50px; }
.gallery-info .title { max-width:8ch; }
.open-status { display:flex; align-items:center; gap:9px; font-size:.76rem; letter-spacing:.09em; text-transform:uppercase; }
.open-status::before { content:""; width:8px; height:8px; border-radius:50%; background:#b7dc9f; box-shadow:0 0 0 5px rgba(183,220,159,.15); }
.open-status.closed::before { background:#f0b2b2; box-shadow:0 0 0 5px rgba(240,178,178,.15); }
.gallery-details { display:grid; gap:16px; }
.gallery-details p { margin:0; }

/* Page hero */
.page-hero { padding-block:clamp(90px,12vw,190px) clamp(65px,9vw,130px); border-bottom:1px solid var(--line); }
.page-hero-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(40px,8vw,130px); align-items:end; }
.page-hero .copy { margin:0; }
.breadcrumbs { margin:0 0 30px; display:flex; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
.breadcrumbs a { text-decoration:none; }

/* Catalog */
.catalog-shell { display:grid; grid-template-columns:280px minmax(0,1fr); gap:clamp(35px,6vw,90px); align-items:start; }
.filters { position:sticky; top:calc(var(--header) + 28px); display:grid; gap:26px; }
.filter-group { border-top:1px solid var(--line); padding-top:18px; }
.filter-label { display:block; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; margin-bottom:10px; }
.filter-control { width:100%; border:0; border-bottom:1px solid var(--line); background:transparent; padding:10px 2px; border-radius:0; }
.filter-options { display:grid; gap:8px; }
.filter-options label { display:flex; align-items:center; gap:9px; font-size:.86rem; cursor:pointer; }
.catalog-count { font-size:.76rem; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); margin-bottom:25px; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:45px 22px; }
.no-results { display:none; padding:70px 0; font-family:var(--serif); font-size:2rem; }

/* Work detail */
.work-layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr); min-height:calc(100vh - var(--header)); }
.work-image-stage { background:#ded8cd; display:grid; place-items:center; min-height:720px; padding:clamp(20px,5vw,75px); position:relative; }
.work-image-stage picture { max-width:100%; max-height:calc(100vh - var(--header) - 50px); }
.work-image-stage img { max-width:100%; max-height:calc(100vh - var(--header) - 50px); width:auto; height:auto; object-fit:contain; box-shadow:0 15px 60px rgba(0,0,0,.18); }
.work-info { padding:clamp(42px,5vw,85px); display:flex; flex-direction:column; gap:35px; border-left:1px solid var(--line); }
.work-info h1 { font-family:var(--serif); font-weight:400; font-size:clamp(2.5rem,5vw,5.3rem); line-height:.96; letter-spacing:-.04em; margin:0; }
.work-quote { font-family:var(--serif); font-style:italic; font-size:1.45rem; margin:0; }
.meta-list { margin:0; display:grid; grid-template-columns:1fr; }
.meta-list div { display:grid; grid-template-columns:120px 1fr; gap:16px; padding:13px 0; border-top:1px solid var(--line); }
.meta-list dt { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.meta-list dd { margin:0; font-size:.88rem; }
.work-actions { display:grid; gap:10px; }
.work-tools { display:flex; gap:8px; flex-wrap:wrap; }
.work-tools button { border:0; background:transparent; min-height:44px; padding:13px 0; margin-right:16px; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; border-bottom:1px solid currentColor; }
.provenance-note { padding:18px; background:var(--paper-2); font-size:.82rem; color:var(--muted); }

/* Room simulator */
.room-tool { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr); gap:clamp(28px,5vw,70px); }
.room-canvas { position:relative; min-height:540px; background:#d8d2c9; overflow:hidden; display:grid; place-items:center; border:1px solid var(--line); }
.room-canvas .room-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.room-canvas .room-art { position:absolute; left:50%; top:44%; width:28%; transform:translate(-50%,-50%); box-shadow:0 10px 25px rgba(0,0,0,.26); user-select:none; }
.room-placeholder { text-align:center; max-width:320px; color:var(--muted); padding:30px; z-index:0; }
.room-controls { display:grid; align-content:start; gap:23px; }
.room-controls label { display:grid; gap:7px; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; }
.room-controls input[type="range"] { width:100%; accent-color:var(--accent); }
.file-input { position:relative; overflow:hidden; }
.file-input input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.privacy-note { font-size:.76rem; color:var(--muted); }

/* Exhibition */
.exhibition-hero { min-height:72vh; position:relative; display:flex; align-items:flex-end; color:white; overflow:hidden; background:#222; }
.exhibition-hero picture, .exhibition-hero img { position:absolute; inset:0; width:100%; height:100%; }
.exhibition-hero img { object-fit:cover; }
.exhibition-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.72)); }
.exhibition-hero-content { position:relative; z-index:1; padding-block:80px; }
.exhibition-meta { display:flex; flex-wrap:wrap; gap:15px 30px; margin-top:28px; font-size:.75rem; letter-spacing:.09em; text-transform:uppercase; }
.photo-grid { columns:3 300px; column-gap:20px; }
.photo-grid button { border:0; padding:0; background:none; display:block; width:100%; margin:0 0 20px; cursor:zoom-in; break-inside:avoid; }
.photo-grid img { width:100%; height:auto; }
.timeline { border-top:1px solid var(--line); }
.timeline-row { display:grid; grid-template-columns:100px 1fr .7fr auto; gap:25px; padding:22px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.timeline-year { font-family:var(--serif); font-size:1.3rem; }
.timeline-title { font-weight:500; }
.timeline-place { color:var(--muted); }
.status-chip { font-size:.62rem; letter-spacing:.09em; text-transform:uppercase; border:1px solid var(--line); padding:5px 8px; white-space:nowrap; }
.status-chip.verified { border-color:#588452; color:#365e31; }
.status-chip.requested { border-color:#ac7c2d; color:#835d1d; }

/* Forms */
.form { display:grid; gap:18px; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
.field label { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.field input, .field textarea, .field select { width:100%; border:0; border-bottom:1px solid currentColor; background:transparent; border-radius:0; padding:12px 2px; color:inherit; }
.field textarea { min-height:120px; resize:vertical; }
.form-status { min-height:1.5em; font-size:.82rem; }
.dark .field input, .dark .field textarea, .dark .field select, .accent .field input, .accent .field textarea, .accent .field select { border-bottom-color:rgba(255,255,255,.45); }
.dark option, .accent option { color:var(--ink); }

/* Press and journal */
.press-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.press-card { padding:clamp(28px,5vw,60px); border-bottom:1px solid var(--line); text-decoration:none; min-height:260px; display:flex; flex-direction:column; justify-content:space-between; }
.press-card:nth-child(odd) { border-right:1px solid var(--line); }
.press-card h3 { font-family:var(--serif); font-weight:400; font-size:clamp(1.8rem,3vw,3.4rem); line-height:1.04; margin:0; }
.press-card p { margin:0; font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); }
.journal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.journal-card { text-decoration:none; }
.journal-card .media { aspect-ratio:4/3; overflow:hidden; background:var(--paper-2); margin-bottom:18px; }
.journal-card .media img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.journal-card:hover img { transform:scale(1.025); }
.journal-card h3 { font-family:var(--serif); font-size:1.8rem; line-height:1.08; font-weight:400; margin:8px 0; }
.article-body { font-family:var(--serif); font-size:1.22rem; line-height:1.7; }
.article-body h2 { font-size:2.4rem; line-height:1.1; font-weight:400; margin-top:2em; }
.article-body p { margin:0 0 1.3em; }
.article-body blockquote { font-size:2rem; line-height:1.25; margin:2em 0; padding-left:25px; border-left:2px solid var(--accent); }

/* Collect */
.collect-steps { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.collect-step { padding:clamp(28px,4vw,55px); border-bottom:1px solid var(--line); border-right:1px solid var(--line); }
.collect-step:last-child { border-right:0; }
.collect-step .number { font-family:var(--serif); font-size:3rem; color:var(--accent); }
.collect-step h3 { font-family:var(--serif); font-size:2rem; font-weight:400; line-height:1.05; }
.faq details { border-top:1px solid var(--line); padding:20px 0; }
.faq details:last-child { border-bottom:1px solid var(--line); }
.faq summary { cursor:pointer; font-family:var(--serif); font-size:1.25rem; list-style:none; display:flex; justify-content:space-between; gap:20px; }
.faq summary::after { content:"+"; }
.faq details[open] summary::after { content:"−"; }
.faq details p { max-width:720px; color:var(--muted); }

/* Selection drawer */
.drawer-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:90; opacity:0; pointer-events:none; transition:.25s; }
.selection-drawer { position:fixed; top:0; right:0; bottom:0; width:min(520px,100%); z-index:100; background:var(--paper); transform:translateX(101%); transition:transform .35s cubic-bezier(.2,.7,.2,1); display:flex; flex-direction:column; box-shadow:-20px 0 70px rgba(0,0,0,.16); }
.drawer-open .drawer-backdrop { opacity:1; pointer-events:auto; }
.drawer-open .selection-drawer { transform:none; }
.drawer-header { height:var(--header); border-bottom:1px solid var(--line); padding:0 22px; display:flex; align-items:center; justify-content:space-between; }
.drawer-header h2 { font-family:var(--serif); font-weight:400; font-size:1.4rem; }
.drawer-body { padding:22px; overflow:auto; flex:1; }
.selection-empty { color:var(--muted); }
.selection-item { display:grid; grid-template-columns:80px 1fr auto; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); align-items:center; }
.selection-item img { width:80px; height:80px; object-fit:cover; }
.selection-item h3 { margin:0; font-family:var(--serif); font-size:1.05rem; font-weight:400; }
.selection-item p { margin:4px 0 0; color:var(--muted); font-size:.72rem; }
.selection-item button { border:0; background:transparent; cursor:pointer; font-size:1.3rem; width:44px; height:44px; display:grid; place-items:center; margin:-10px -10px -10px 0; }
.drawer-footer { padding:22px; border-top:1px solid var(--line); display:grid; gap:10px; }

/* Lightbox */
.lightbox { width:100%; max-width:none; height:100%; max-height:none; margin:0; padding:0; border:0; background:rgba(18,16,15,.97); color:white; }
.lightbox::backdrop { background:rgba(18,16,15,.97); }
.lightbox-inner { height:100%; display:grid; grid-template-rows:auto 1fr auto; }
.lightbox-head { display:flex; justify-content:flex-end; padding:15px 20px; }
.lightbox-close { color:white; }
.lightbox-stage { min-height:0; display:grid; grid-template-columns:70px 1fr 70px; align-items:center; overflow:hidden; }
.lightbox-stage img { max-width:100%; max-height:calc(100vh - 150px); width:auto; height:auto; margin:auto; object-fit:contain; will-change:transform; }
.lightbox-nav { border:0; background:transparent; color:white; font-size:2rem; height:100%; cursor:pointer; }
.lightbox-caption { padding:18px var(--gutter) 24px; display:flex; justify-content:space-between; gap:20px; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; }

/* Footer */
.site-footer { background:var(--night); color:var(--white); padding-top:clamp(70px,10vw,130px); }
.footer-top { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(50px,10vw,160px); padding-bottom:80px; }
.footer-top h2 { font-family:var(--serif); font-weight:400; font-size:clamp(2.6rem,5vw,5.5rem); line-height:.95; margin:0 0 30px; }
.footer-links { display:grid; grid-template-columns:repeat(2,1fr); gap:35px; }
.footer-links h3 { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; margin:0 0 15px; }
.footer-links a { display:block; color:rgba(255,255,255,.75); text-decoration:none; padding:5px 0; }
.footer-links a:hover { color:white; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.18); padding:22px 0; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; color:rgba(255,255,255,.62); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; }

/* Utility */
.split { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(35px,7vw,110px); align-items:start; }
.image-panel { min-height:500px; background:var(--paper-2); overflow:hidden; }
.image-panel picture, .image-panel img { width:100%; height:100%; }
.image-panel img { object-fit:cover; }
.sticky { position:sticky; top:calc(var(--header) + 30px); }
.pill-list { display:flex; flex-wrap:wrap; gap:8px; }
.pill { border:1px solid var(--line); padding:6px 10px; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.notice { padding:20px; border:1px solid var(--line); background:var(--paper-2); font-size:.86rem; }
.reveal { opacity:0; transform:translateY(20px); transition:opacity .65s, transform .65s; }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1100px) {
  .main-nav { display:none; position:fixed; inset:var(--header) 0 auto; max-height:calc(100vh - var(--header)); overflow-y:auto; -webkit-overflow-scrolling:touch; background:var(--paper); border-bottom:1px solid var(--line); padding:30px var(--gutter); flex-direction:column; align-items:flex-start; z-index:49; }
  .main-nav.open { display:flex; }
  .menu-toggle { display:block; }
  .brand span { display:none; }
  .home-hero { grid-template-columns:1fr; }
  .hero-art { min-height:65vh; grid-row:1; }
  .hero-copy { grid-row:2; min-height:auto; }
  .statement-grid { grid-template-columns:1fr; }
  .gallery-split { grid-template-columns:1fr; }
  .gallery-photo { min-height:60vh; }
  .page-hero-grid { grid-template-columns:1fr; }
  .catalog-shell { grid-template-columns:1fr; }
  .filters { position:static; grid-template-columns:repeat(3,1fr); }
  .catalog-grid { grid-template-columns:repeat(2,1fr); }
  .work-layout { grid-template-columns:1fr; }
  .work-info { border-left:0; border-top:1px solid var(--line); }
  .room-tool { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; }
}
@media (max-width: 760px) {
  :root { --header:68px; }
  .nav-actions .language { display:none; }
  .section-head { grid-template-columns:1fr; align-items:start; }
  .display { font-size:clamp(3.1rem,17vw,5rem); }
  .art-grid { display:grid; grid-template-columns:1fr; }
  .art-card, .art-card.wide, .art-card.tall { grid-column:auto; }
  .series-grid { grid-template-columns:1fr; }
  .series-card { grid-template-columns:1fr; min-height:auto; }
  .series-card:nth-child(odd) { border-right:0; }
  .series-card-media { aspect-ratio:4/3; }
  .catalog-grid { grid-template-columns:1fr; }
  .filters { grid-template-columns:1fr; }
  .work-image-stage { min-height:65vh; }
  .work-info { padding-inline:var(--gutter); }
  .meta-list div { grid-template-columns:100px 1fr; }
  .timeline-row { grid-template-columns:70px 1fr; }
  .timeline-place, .status-chip { grid-column:2; }
  .press-grid { grid-template-columns:1fr; }
  .press-card:nth-child(odd) { border-right:0; }
  .journal-grid { grid-template-columns:1fr; }
  .collect-steps { grid-template-columns:1fr; }
  .collect-step { border-right:0; }
  .form-grid { grid-template-columns:1fr; }
  .footer-links { grid-template-columns:1fr; }
  .lightbox-stage { grid-template-columns:45px 1fr 45px; }
  .lightbox-caption { flex-direction:column; }
  .split { grid-template-columns:1fr; }
  .photo-grid { columns:1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
@media print {
  .site-header, .site-footer, .work-actions, .work-tools, .selection-drawer, .drawer-backdrop, .room-tool, .button, .favorite { display:none !important; }
  body { background:white; color:black; }
  .work-layout { display:block; }
  .work-image-stage { min-height:0; background:white; padding:20px; }
  .work-image-stage img { max-height:55vh; box-shadow:none; }
  .work-info { border:0; padding:20px; }
  a { text-decoration:none; }
}
.mobile-language { display:none; gap:14px; padding-top:16px; border-top:1px solid var(--line); width:100%; }
.mobile-language a { font-size:.72rem; }
@media (max-width:1100px){ .mobile-language{display:flex;} }

/* Floating WhatsApp contact (injected by site.js) */
.float-whatsapp{position:fixed;right:22px;bottom:22px;z-index:60;background:var(--ink);color:var(--white);border-radius:999px;padding:14px 20px;font-size:.76rem;letter-spacing:.04em;text-decoration:none;display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px rgba(0,0,0,.25);}
.float-whatsapp:hover{background:var(--accent);}
.float-whatsapp svg{width:16px;height:16px;flex:none;}
@media (max-width:760px){ .float-whatsapp span{display:none;} .float-whatsapp{padding:14px;} }


/* Complete archive and marketplace additions */
.archive-hero{padding:clamp(7rem,14vw,12rem) 0 clamp(3rem,7vw,6rem);background:var(--paper,#f5f1e8)}
.archive-hero .archive-kicker{max-width:62rem;margin-top:1.5rem;font-size:clamp(1.1rem,2vw,1.45rem);line-height:1.55;color:var(--muted)}
.archive-summary{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(16rem,.7fr);gap:clamp(2rem,6vw,7rem);align-items:start}
.archive-facts{border-top:1px solid var(--line);padding-top:1rem;display:grid;gap:.65rem}
.archive-facts p{margin:0;color:var(--muted)}
.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.2vw,2rem);align-items:start}
.archive-grid.dense{grid-template-columns:repeat(4,minmax(0,1fr))}
.archive-item{margin:0;min-width:0}
.archive-item a{display:block;background:#e9e4d9;overflow:hidden}
.archive-item img{display:block;width:100%;height:auto;max-height:78vh;object-fit:contain;transition:transform .45s ease}
.archive-item a:hover img{transform:scale(1.015)}
.archive-item figcaption{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0 1.25rem;font-size:.78rem;color:var(--muted);line-height:1.4}
.archive-note{border-left:3px solid var(--accent);padding:1rem 1.2rem;background:rgba(255,255,255,.45);color:var(--muted)}
.year-divider{grid-column:1/-1;padding-top:clamp(2rem,5vw,5rem);border-top:1px solid var(--line)}
.year-divider:first-child{padding-top:0;border-top:0}
.marketplace-section{padding:clamp(3rem,7vw,7rem) 0;border-top:1px solid var(--line)}
.marketplace-head{display:grid;grid-template-columns:1fr minmax(16rem,.55fr);gap:2rem;align-items:end;margin-bottom:2rem}
.market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
.market-card{background:rgba(255,255,255,.5);border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.market-card-media{aspect-ratio:1/1;background:#ede8de;display:flex;align-items:center;justify-content:center;overflow:hidden}
.market-card-media img{width:100%;height:100%;object-fit:contain;display:block}
.market-card-body{padding:1rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.market-card-body h3{font-family:var(--serif);font-size:1.25rem;margin:0}
.market-card-body p{margin:0;color:var(--muted);font-size:.82rem}
.market-card-body .button{margin-top:auto;align-self:flex-start}
.artist-index{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.5rem 0 0}
.artist-index a{border:1px solid var(--line);border-radius:99px;padding:.45rem .75rem;font-size:.75rem}
.timeline-complete{display:grid;gap:0}
.timeline-complete .timeline-row{display:grid;grid-template-columns:minmax(8rem,.3fr) minmax(0,1fr) auto;gap:1.5rem;align-items:start;padding:1.4rem 0;border-top:1px solid var(--line)}
.timeline-complete .timeline-row h3{margin:0;font-family:var(--serif);font-size:clamp(1.15rem,2vw,1.65rem)}
.timeline-complete .timeline-row p{margin:.35rem 0 0;color:var(--muted)}
.timeline-date{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.source-card{padding:1.2rem;border:1px solid var(--line);background:rgba(255,255,255,.45)}
.source-card h3{margin-top:0}
.source-card a{word-break:break-word}
.press-complete{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.press-entry{padding:1.4rem;border:1px solid var(--line);background:rgba(255,255,255,.45)}
.press-entry h3{font-family:var(--serif);font-size:1.45rem;margin:.35rem 0}
.press-entry p{color:var(--muted)}
.gallery-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem}
.gallery-module{padding:1.4rem;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08)}
.gallery-module h3{margin-top:0}
@media(max-width:980px){.archive-grid.dense{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-summary,.marketplace-head{grid-template-columns:1fr}.market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-module-grid{grid-template-columns:1fr}.timeline-complete .timeline-row{grid-template-columns:1fr auto}.timeline-date{grid-column:1/-1}}
@media(max-width:650px){.archive-grid,.archive-grid.dense,.market-grid,.press-complete{grid-template-columns:1fr 1fr}.timeline-complete .timeline-row{grid-template-columns:1fr}.timeline-complete .timeline-row>a{justify-self:start}.archive-item figcaption{display:block}.archive-item figcaption span{display:block}}
@media(max-width:430px){.archive-grid,.archive-grid.dense,.market-grid,.press-complete{grid-template-columns:1fr}}


/* Rich exhibition archive */
.event-hero{padding:clamp(7rem,13vw,11rem) 0 clamp(3rem,7vw,6rem);background:linear-gradient(135deg,var(--paper),#ebe4d7)}
.event-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(18rem,.55fr);gap:clamp(2rem,7vw,8rem);align-items:end}
.event-poster{max-width:34rem;justify-self:end;background:#fff;padding:.75rem;box-shadow:0 24px 70px rgba(35,28,20,.13)}
.event-poster img{display:block;width:100%;height:auto;max-height:72vh;object-fit:contain}
.event-copy{max-width:58rem}.event-copy .lead{font-size:clamp(1.15rem,2.2vw,1.55rem);line-height:1.55}
.artist-cloud{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.3rem}.artist-cloud span,.artist-cloud a{border:1px solid var(--line);border-radius:999px;padding:.48rem .78rem;font-size:.76rem;background:rgba(255,255,255,.48)}
.event-gallery{columns:3 17rem;column-gap:1rem}.event-gallery figure{break-inside:avoid;margin:0 0 1rem;background:#ece7dc;overflow:hidden}.event-gallery a{display:block}.event-gallery img{display:block;width:100%;height:auto;transition:transform .4s ease}.event-gallery a:hover img{transform:scale(1.012)}.event-gallery figcaption{padding:.65rem .8rem;font-size:.72rem;color:var(--muted)}
.event-source-grid{display:grid;grid-template-columns:1fr minmax(18rem,.45fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.archive-stat-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin-top:2rem}.archive-stat-strip div{padding:1rem;border-right:1px solid var(--line)}.archive-stat-strip div:last-child{border-right:0}.archive-stat-strip strong{display:block;font-family:var(--serif);font-size:1.7rem}.archive-stat-strip span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.artist-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.artist-directory-card{border:1px solid var(--line);padding:1.25rem;background:rgba(255,255,255,.45)}.artist-directory-card h2{font-family:var(--serif);margin:.2rem 0 .6rem;font-size:1.55rem}.artist-directory-card p{color:var(--muted)}
@media(max-width:900px){.event-hero-grid,.event-source-grid{grid-template-columns:1fr}.event-poster{justify-self:start}.archive-stat-strip{grid-template-columns:1fr 1fr}.archive-stat-strip div:nth-child(2){border-right:0}.archive-stat-strip div:nth-child(-n+2){border-bottom:1px solid var(--line)}.artist-directory{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.event-gallery{columns:1}.archive-stat-strip,.artist-directory{grid-template-columns:1fr}.archive-stat-strip div{border-right:0;border-bottom:1px solid var(--line)}.archive-stat-strip div:last-child{border-bottom:0}}
