/* Same fonts/colors as the original stylesheet.css, rebuilt responsive */
@font-face { font-family: 'TeXGyreAdventorRegular'; src: url('/fonts/texgyreadventor-regular-webfont.woff') format('woff'); font-display: swap; }
@font-face { font-family: 'TeXGyreAdventorItalic'; src: url('/fonts/texgyreadventor-italic-webfont.woff') format('woff'); font-display: swap; }
@font-face { font-family: 'TeXGyreAdventorBold'; src: url('/fonts/texgyreadventor-bold-webfont.woff') format('woff'); font-display: swap; }
@font-face { font-family: 'TeXGyreAdventorBoldItalic'; src: url('/fonts/texgyreadventor-bolditalic-webfont.woff') format('woff'); font-display: swap; }

*, *::before, *::after { box-sizing: border-box; }
html, body, h1, p, ul, li { margin: 0; padding: 0; }
body { background: #fff; color: #000; font-family: "trebuchet ms", arial, sans-serif; font-size: 14px; line-height: 1.4em; }
a { color: #00008b; text-decoration: none; }
a:hover { text-decoration: underline; }
img, video { max-width: 100%; height: auto; display: block; }
h1 { font-family: 'TeXGyreAdventorRegular', Arial, sans-serif; font-weight: 400; text-transform: uppercase; font-size: 24px; color: #ef3a33; letter-spacing: 0; text-align: center; margin: 0 0 12px; line-height: 1.2; }

#wrapper { max-width: 960px; margin: 0 auto; padding: 0 12px; }

/* Header */
.site-header { display: flex; align-items: center; flex-wrap: nowrap; gap: 0 14px; padding-bottom: 8px; }
#nav { flex: 1 1 auto; min-width: 0; }
#logo { display: block; width: 111px; height: 108px; background: url('/images/SOTA_logo.jpg') no-repeat; text-indent: -9999px; overflow: hidden; flex: none; }
#nav ul { list-style: none; display: flex; flex-wrap: wrap; }
#nav a { display: block; padding: 0 9px; color: #000; font: bold 14px 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; line-height: 2; }
#nav a:hover { color: #ed3c34; text-decoration: none; }
.nav-toggle { display: none; }

/* Rotating inventory grid (replaces the 5x3 static table) */
.inventory-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; max-width: 900px; margin: 30px auto 24px; }
.tile { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: #fff; }
.tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #fff; transition: opacity 1.2s ease; }
.tile img.back { opacity: 0; }
.tile.fading img.front { opacity: 0; }
.tile.fading img.back { opacity: 1; }
.tile.logo img { object-fit: contain; }
/* staggered entrance (removed by JS; skipped with reduced motion) */
.tile { transition: opacity .6s ease, transform .6s ease; }
.tile.enter { opacity: 0; transform: translateY(8px); }

/* Exhibits */
.exhibits { border-top: 1px solid #000; margin: 24px 0; padding: 14px 0; }
.sota-video { width: 100%; max-width: 1000px; margin: 0 auto 18px; background: #000; }
.gallery { padding: 6px; margin-bottom: 10px; }
.gallery h1 { padding: 6px 0; margin-bottom: 6px; }
.gallery img { width: 100%; }

/* Badges */
.badges { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 6px; margin: 24px 0; }
.badges img { width: auto; max-height: 160px; }

/* Footer */
#footer { border-top: 1px solid #000; margin: 14px 0; padding: 14px 0; text-align: center; }
#footer p { margin-bottom: 8px; }
.social { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 28px; }
.social li { background-size: cover; background-position: center; }
.social a { display: flex; justify-content: center; }

/* Tablet */
@media (max-width: 900px) {
  #nav a { padding: 0 7px; letter-spacing: 1px; }
}
/* Phone */
@media (max-width: 600px) {
  .site-header { justify-content: space-between; flex-wrap: wrap; }
  #nav { flex-basis: 100%; }
  #logo { width: 80px; height: 78px; background-size: contain; }
  .nav-toggle { display: block; background: none; border: 1px solid #000; padding: 6px 12px; font: bold 13px 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; cursor: pointer; }
  #nav { width: 100%; display: none; }
  #nav.open { display: block; }
  #nav ul { flex-direction: column; align-items: center; padding: 8px 0; border-top: 1px solid #000; }
  #nav a { line-height: 2.4; }
  .inventory-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 16px; }
  h1 { font-size: 20px; }
  .badges img { max-height: 110px; }
}
@media (prefers-reduced-motion: reduce) { .tile, .tile img { transition: none; } .tile.enter { opacity: 1; transform: none; } }

/* ===== Artist and piece pages: every image stands alone, whole, on plain white ===== */
.content-page { padding: 20px 0 10px; }
.content-page h1 { text-align: left; margin-bottom: 18px; }
.content-page h2 { font-family: 'TeXGyreAdventorRegular', Arial, sans-serif; font-weight: 400; font-size: 18px; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 12px; }
.content-page p { margin: 0 0 8px; }
.frame-free { display: block; background: #fff; }
.frame-free img, .artist-photo img, .art-photo img, .print-photo img { width: 100%; height: 100%; object-fit: contain; background: #fff; border: 0; box-shadow: none; }
.caption { display: block; margin-top: 8px; color: #000; text-align: center; }
.artist-grid, .piece-grid { display: grid; gap: 34px 28px; }
.artist-grid { grid-template-columns: repeat(4, 1fr); }
.piece-grid { grid-template-columns: repeat(4, 1fr); }
.artist-card, .piece-thumb { display: block; color: #000; }
.artist-card:hover, .piece-thumb:hover { text-decoration: none; }
.artist-card:hover .caption, .piece-thumb:hover .caption { color: #ed3c34; }
.frame-free.tall { aspect-ratio: 200 / 265; }
.piece-thumb .frame-free { aspect-ratio: 1 / 1; }
.artist-head { display: flex; gap: 40px; align-items: flex-start; }
.artist-photo { flex: 0 0 260px; }
.artist-photo img { height: auto; max-height: 360px; }
.artist-head.small .artist-photo { flex-basis: 200px; }
.artist-text { flex: 1; max-width: 600px; }
.brkline { clear: both; border-top: 1px solid #000; margin: 28px 0 22px; }
.piece-view { display: flex; gap: 50px; align-items: flex-start; }
.art-photo { flex: 0 1 560px; }
.art-photo img { height: auto; max-height: 640px; }
.art-info { flex: 1; min-width: 220px; }
.art-info .note { font-style: italic; }
.print-link { margin-top: 18px !important; }

/* print view */
.print-view { background: #fff; }
.print-sheet { max-width: 720px; margin: 0 auto; padding: 24px; text-align: center; }
.print-logo { margin: 0 auto 18px; }
.print-photo img { height: auto; max-height: 70vh; }
.print-info { margin-top: 18px; }
.print-info h2 { font-family: 'TeXGyreAdventorRegular', Arial, sans-serif; font-weight: 400; text-transform: uppercase; font-size: 20px; margin-bottom: 10px; }
.print-info p, .print-foot { margin: 0 0 6px; }
.print-foot { margin-top: 24px; font-size: 12px; color: #000; }
@media print {
  .no-print, .site-header, #footer, .print-link, .nav-toggle { display: none !important; }
  a { color: #000; }
  .print-photo img { max-height: 60vh; }
}

@media (max-width: 900px) { .artist-grid, .piece-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) {
  .artist-grid, .piece-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
  .artist-head, .piece-view { flex-direction: column; gap: 18px; }
  .artist-photo, .art-photo { flex: none; width: 100%; }
}

/* ===== Content pages (exhibits, installations, events, articles, about): images stand alone on white ===== */
.content-page h3 { font-family: 'TeXGyreAdventorRegular', Arial, sans-serif; font-weight: 400; font-size: 16px; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 8px; }
.prose { max-width: 680px; }
.muted, .exhibit-dates, .event-date { color: #555; }
.callout { font-style: italic; }
.crumb { margin-bottom: 18px !important; }
.exhibit-title { font-size: 20px !important; color: #ef3a33; }
.exhibit .prose { margin-bottom: 26px; }
.plain-stack { display: flex; flex-direction: column; align-items: center; gap: 56px; margin: 30px 0 10px; }
.plain-figure { margin: 0; text-align: center; }
.plain-figure img { width: auto; max-width: 100%; max-height: 80vh; margin: 0 auto; border: 0; box-shadow: none; background: #fff; }
.plain-figure figcaption { margin-top: 10px; color: #000; }
.plain-list { list-style: none; }
.plain-list li { margin-bottom: 8px; }
.plain-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; align-items: center; margin: 24px 0; }
.plain-cell { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: #fff; }
.plain-cell img { width: 100%; height: 100%; object-fit: contain; border: 0; box-shadow: none; }
.event-list { display: flex; flex-direction: column; gap: 40px; margin-bottom: 20px; }
.event { display: flex; gap: 40px; align-items: flex-start; }
.event-image { flex: 0 0 320px; }
.event-image img { width: 100%; height: auto; border: 0; }
.event-text { flex: 1; max-width: 560px; }
.cover-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 40px; align-items: center; justify-items: center; margin: 24px 0; }
.cover img { max-height: 280px; width: auto; border: 0; box-shadow: none; }
.cover-text { display: block; padding: 40px 10px; text-align: center; text-transform: uppercase; letter-spacing: 1px; }
.about-video { float: right; width: 400px; margin: 0 0 20px 36px; text-align: center; }
.video-wrap { position: relative; aspect-ratio: 16 / 9; }
.video-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.about h2 { margin-top: 22px !important; }
.about .brkline { clear: both; }
.text-button { display: inline-block; border: 1px solid #000; color: #000; padding: 4px 14px; text-transform: uppercase; letter-spacing: 2px; font: 13px 'TeXGyreAdventorRegular', Arial, sans-serif; }
.text-button:hover { color: #ed3c34; border-color: #ed3c34; text-decoration: none; }
@media (max-width: 900px) { .plain-grid, .cover-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) {
  .plain-grid { grid-template-columns: 1fr; gap: 28px; }
  .cover-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; }
  .cover img { max-height: 200px; }
  .plain-stack { gap: 36px; }
  .event { flex-direction: column; gap: 14px; }
  .event-image { flex: none; width: 100%; }
  .about-video { float: none; width: 100%; margin: 0 0 20px; }
}

.piece-cell .caption.artist-link { margin-top: 2px; font-size: .9em; color: #555; }
.piece-cell a.artist-link:hover { color: #ed3c34; text-decoration: none; }
.js-fade img.fade { opacity: 0; transition: opacity .5s ease; }
.js-fade img.fade.in { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .js-fade img.fade { transition: none; } }
/* Inventory view toggle */
.view-toggle { text-align: center; margin: 4px 0 18px; font: 12px 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; }
.view-toggle a { color: #000; padding: 2px 6px; }
.view-toggle a.on { color: #ed3c34; }
.view-toggle a:hover { color: #ed3c34; text-decoration: none; }
.view-toggle span { color: #bbb; }
/* Immersive view: textless, one piece at a time, centered on white */
body.immersive #wrapper { max-width: none; }
body.immersive .site-header { max-width: 960px; margin: 0 auto; }
body.immersive #footer { display: none; }
.imm-list { display: flex; flex-direction: column; align-items: center; gap: 12vh; padding: 4vh 0 12vh; }
.imm-item { max-width: 90vw; }
.imm-item a, .imm-item img { display: block; width: 100%; height: 100%; }
.imm-item img { max-width: none; }
.imm-more { height: 1px; }
.imm-noscript { text-align: center; }

/* ===== v13: breathing room, piece page spacing, Return link ===== */
#nav a { padding: 0 16px; }
.art-info h2 { margin-bottom: 22px; line-height: 1.3; }
.art-info p { margin: 0 0 12px; }
.back-link { margin-top: 28px !important; }
.back-link a, .print-link a { color: #000; font: 13px 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; }
.back-link a:hover, .print-link a:hover { color: #ed3c34; text-decoration: none; }
.content-page { padding: 32px 0 24px; }
.piece-view { gap: 64px; }
.brkline { margin: 44px 0 32px; }

/* ===== v13: fluid scale for large screens (laptop unchanged-ish, big monitors not squished) ===== */
@media (min-width: 601px) {
  #wrapper { max-width: 1760px; padding: 0 clamp(16px, 4vw, 96px); }
  .site-header { flex-wrap: nowrap; padding-top: clamp(8px, .8vw, 20px); padding-bottom: clamp(8px, .8vw, 20px); }
  #logo { width: clamp(96px, 6.5vw, 150px); height: clamp(93px, 6.3vw, 146px); background-size: contain; }
  #nav ul { flex-wrap: wrap; justify-content: flex-start; }
  #nav a { font-size: clamp(13px, .55vw + 6px, 20px); padding: 0 clamp(10px, 1.25vw, 30px); letter-spacing: clamp(1px, .12vw, 3px); }
  body { font-size: clamp(14px, .4vw + 9px, 19px); }
  h1, .content-page h1 { font-size: clamp(24px, 1vw + 12px, 38px); margin-bottom: clamp(18px, 1.4vw, 34px); }
  .content-page h2 { font-size: clamp(18px, .7vw + 9px, 28px); }
  .content-page { padding: clamp(24px, 2.2vw, 56px) 0 clamp(20px, 2vw, 48px); }
  .inventory-grid { max-width: min(1500px, 100%); gap: clamp(14px, 1.3vw, 30px); }
  .piece-grid, .artist-grid { grid-template-columns: repeat(auto-fill, minmax(clamp(170px, 14vw, 340px), 1fr)); gap: clamp(28px, 2.4vw, 56px) clamp(22px, 2vw, 48px); }
  .piece-view { gap: clamp(40px, 4vw, 110px); }
  .art-photo { flex: 0 1 clamp(520px, 52vw, 1150px); }
  .art-photo img { max-height: 82vh; }
  .art-info h2 { margin-bottom: clamp(20px, 1.6vw, 36px); }
  .art-info p { margin-bottom: clamp(10px, .8vw, 18px); }
  .artist-photo { flex-basis: clamp(240px, 18vw, 420px); }
  .artist-photo img { max-height: clamp(340px, 26vw, 600px); }
  .artist-text { max-width: clamp(600px, 45vw, 900px); }
  .view-toggle { font-size: clamp(12px, .35vw + 7px, 16px); }
  body.immersive .site-header { max-width: 1760px; }
}
@media (min-width: 601px) and (max-width: 900px) { #nav a { padding: 0 8px; letter-spacing: 1px; } .piece-view { gap: 32px; } }
/* Immersive: slim auto-hiding top bar */
.imm-bar { position: fixed; top: 0; left: 0; right: 0; z-index: 50; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px 18px; padding: 6px clamp(12px, 3vw, 48px); background: rgba(255,255,255,.985); border-bottom: 1px solid #ddd; transform: translateY(-110%); opacity: 0; visibility: hidden; transition: transform .3s ease, opacity .3s ease, visibility 0s linear .3s; }
.imm-bar.show { transform: none; opacity: 1; visibility: visible; transition: transform .3s ease, opacity .3s ease; }
.imm-bar-logo img { height: 34px; width: auto; display: block; }
.imm-bar ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; margin: 0; padding: 0; }
.imm-bar ul a { display: block; padding: 0 clamp(6px, .9vw, 16px); color: #000; font: bold clamp(11px, .4vw + 6px, 15px) 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; line-height: 2.2; }
.imm-bar ul a:hover, .imm-bar .view-toggle a:hover { color: #ed3c34; text-decoration: none; }
.imm-bar .view-toggle { margin: 0; font-size: 11px; }
@media (max-width: 600px) { .imm-bar { gap: 2px 8px; padding: 4px 8px; } .imm-bar ul a { letter-spacing: 1px; padding: 0 5px; font-size: 10px; line-height: 2; } .imm-bar-logo img { height: 26px; } }
@media (prefers-reduced-motion: reduce) { .imm-bar, .imm-bar.show { transition: none; transform: none; } }

/* ===== v15 print view: always one page (Letter and A4 safe area 7.27in x 10in) ===== */
.print-sheet { max-width: 7.27in; padding: 24px 0; }
.print-photo { display: flex; justify-content: center; }
.print-photo img { width: auto; max-width: 100%; height: auto; max-height: 62vh; object-fit: contain; }
.print-info { margin-top: 20px; }
.print-info h2 { margin-bottom: 14px; }
.print-info p { margin: 0 0 6px; }
.print-bio { margin-top: 12px !important; text-align: left; font-size: 12px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; }
.print-footer { margin-top: 26px; padding-top: 12px; border-top: 1px solid #000; display: flex; align-items: center; justify-content: center; gap: 14px; }
.print-footer .print-logo { width: 48px; height: auto; margin: 0; }
.print-footer .print-foot { margin: 0; text-align: left; font-size: 11px; line-height: 1.5; }
.print-actions { margin-top: 16px; }
@page { size: auto; margin: 0.5in; }
@media print {
  .imm-bar { display: none !important; }
  html, body { width: auto; height: auto; }
  .print-view .print-sheet { max-width: none; width: 100%; height: 9.8in; max-height: 9.8in; overflow: hidden; padding: 0; margin: 0; display: flex; flex-direction: column; page-break-inside: avoid; break-inside: avoid; page-break-after: avoid; }
  .print-view .print-photo { flex: 0 1 auto; min-height: 0; }
  .print-view .print-photo img { max-height: 6.1in; max-width: 7.2in; }
  .print-view .print-info { flex: 0 1 auto; min-height: 0; overflow: hidden; margin-top: 0.18in; font-size: 10.5pt; line-height: 1.35; break-inside: avoid; }
  .print-view .print-info h2 { font-size: 15pt; margin-bottom: 0.1in; }
  .print-view .print-info p { margin-bottom: 0.04in; }
  .print-view .print-bio { font-size: 9pt; -webkit-line-clamp: 7; }
  .print-view .print-footer { margin-top: auto; flex: none; padding-top: 0.1in; break-inside: avoid; }
  .print-view .print-footer .print-logo { width: 0.55in; }
  .print-view .print-foot { font-size: 8.5pt; }
}
.print-actions { margin: 22px 0 0; text-align: center; font: 13px 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #bbb; }
.print-actions a { color: #000; padding: 0 8px; }
.print-actions a:hover { color: #ed3c34; text-decoration: none; }
@media print { .print-actions { display: none !important; } }

/* v17 home rotation: uniform square tiles, CSS center crop (home page only; files untouched) */
.inventory-grid .tile:not(.logo) img { object-fit: cover; object-position: center; }

/* v19 Return to All Artists (same style as Return to Inventory) */
.artists-back-wrap { margin: 0 0 18px !important; }
.artists-back-wrap.bottom { margin: 40px 0 0 !important; }
@media print { .artists-back-wrap { display: none !important; } }

/* Homepage anniversary banner (v27: large, fade + shrink out) */
#anniv-wrap { position: fixed; inset: 0; z-index: 50; pointer-events: none; display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.85); opacity: 0; transition: opacity .8s ease; }
#anniv { width: min(90vw, calc(90vh * 682 / 767)); line-height: 0; box-shadow: 0 6px 32px rgba(0,0,0,.18);
  transform: scale(1); transform-origin: center; }
#anniv img { display: block; width: 100%; height: auto; }
#anniv-wrap.on { opacity: 1; }
#anniv-wrap.out { opacity: 0; transition: opacity 1.2s cubic-bezier(.55,0,.35,1); }
#anniv-wrap.out #anniv { transform: scale(.3); transition: transform 1.2s cubic-bezier(.65,0,.35,1); }
#anniv-wrap.rm, #anniv-wrap.rm #anniv { transition: opacity .8s ease !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) { #anniv-wrap.out #anniv { transform: none; transition: none; } }
@media print { #anniv-wrap { display: none !important; } }

/* v28: center logo tile card flip */
.tile.logo { perspective: 900px; overflow: visible; }
.tile.logo .flip { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform 1s cubic-bezier(.45,0,.25,1); }
.tile.logo .flip img { backface-visibility: hidden; -webkit-backface-visibility: hidden; transition: none; }
.tile.logo .f-anniv { transform: rotateY(180deg); background: #000; }
.tile.logo.flipped .flip { transform: rotateY(180deg); }
@media (prefers-reduced-motion: reduce) {
  .tile.logo .flip { transform: none !important; transition: none; }
  .tile.logo .f-anniv { transform: none; opacity: 0; transition: opacity 1s ease; }
  .tile.logo.flipped .f-anniv { opacity: 1; }
}

/* v30: Instagram latest post */
.instagram { text-align: center; margin: 48px auto 40px; padding: 0 16px; }
.instagram h2 { margin: 0 0 18px; font: bold 16px 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 3px; text-transform: uppercase; line-height: 1.6; }
.instagram h2 a { color: #000; }
.instagram h2 a:hover { color: #ed3c34; text-decoration: none; }
.instagram .ig-post { position: relative; display: inline-block; max-width: min(420px, 100%); line-height: 0; }
.instagram .ig-post img { width: 100%; height: auto; max-height: 560px; object-fit: contain; background: #fff; }
.instagram .ig-video::after { content: ''; position: absolute; top: 12px; right: 12px; width: 0; height: 0;
  border-style: solid; border-width: 9px 0 9px 15px; border-color: transparent transparent transparent rgba(255,255,255,.95); filter: drop-shadow(0 0 3px rgba(0,0,0,.5)); }
@media (max-width: 600px) { .instagram { margin: 36px auto 28px; } .instagram h2 { font-size: 14px; letter-spacing: 2px; } .instagram .ig-post { max-width: 86vw; } }
@media print { .instagram { display: none; } }
/* v30: iOS Safari flip hardening */
.tile.logo { -webkit-perspective: 900px; }
.tile.logo .flip { -webkit-transform-style: preserve-3d; -webkit-transition: -webkit-transform 1s cubic-bezier(.45,0,.25,1); }
.tile.logo .f-logo { -webkit-transform: rotateY(0deg) translateZ(1px); transform: rotateY(0deg) translateZ(1px); }
.tile.logo .f-anniv { -webkit-transform: rotateY(180deg) translateZ(1px); transform: rotateY(180deg) translateZ(1px); }
.tile.logo.flipped .flip { -webkit-transform: rotateY(180deg); }
@media (prefers-reduced-motion: reduce) { .tile.logo .f-logo, .tile.logo .f-anniv { -webkit-transform: none; transform: none; } }

/* v32: footer contact/hours */
.foot-info { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 40px; max-width: 980px; margin: 22px auto 30px; padding: 0 16px;
  text-align: center; font: 14px/1.9 'TeXGyreAdventorRegular', Arial, sans-serif; color: #000; text-wrap: balance; }
.foot-info h3 { margin: 0 0 12px; font: bold 13px/1.6 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 3px; text-transform: uppercase; color: #000; }
.foot-info h4 { margin: 0; font: bold 11px/1.8 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #777; }
.foot-info p { margin: 0 0 10px; text-wrap: balance; }
.foot-info .season { margin-bottom: 14px; }
.foot-info .foot-small { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; }
.foot-info a { color: #000; text-decoration: none; border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.foot-info a:hover { color: #ed3c34; border-bottom-color: #ed3c34; text-decoration: none; }
.foot-info .nw { white-space: nowrap; }
@media (max-width: 760px) { .foot-info { grid-template-columns: 1fr; gap: 26px; margin: 18px auto 24px; } }
.print-footer .print-foot { font-family: 'TeXGyreAdventorRegular', Arial, sans-serif; }

/* v33: two centered columns + full-width shipping line */
.foot-info { grid-template-columns: repeat(2, minmax(0, 320px)); justify-content: center; column-gap: 72px; }
.foot-info .foot-ship { grid-column: 1 / -1; margin: 8px 0 0; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: #555; }
@media (max-width: 760px) { .foot-info { grid-template-columns: 1fr; } .foot-info .foot-ship { margin-top: 0; } }

/* v34: social bar tooltips */
.social li { position: relative; }
.social a[data-tip]::after, .social a[data-tip]::before { position: absolute; left: 50%; pointer-events: none; opacity: 0;
  transform: translate(-50%, 4px); transition: opacity .25s ease, transform .25s ease; z-index: 5; }
.social a[data-tip]::after { content: attr(data-tip); bottom: calc(100% + 9px); width: max-content; max-width: calc(100% - 6px); box-sizing: border-box; white-space: nowrap;
  padding: 5px 9px; border-radius: 999px; background: #111; color: #fff; text-align: center;
  font: bold 10px/1.35 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 1.5px; text-transform: uppercase; }
.social a[data-tip]::before { content: ''; bottom: calc(100% + 3px); border: 6px solid transparent; border-bottom: 0; border-top-color: #111; }
.social a[data-tip]:hover::after, .social a[data-tip]:hover::before, .social a[data-tip]:focus-visible::after, .social a[data-tip]:focus-visible::before,
.social.tips-on a[data-tip]::after, .social.tips-on a[data-tip]::before { opacity: 1; transform: translate(-50%, 0); }
.social.tips-on li:nth-child(2) a::after, .social.tips-on li:nth-child(2) a::before { transition-delay: .08s; }
.social.tips-on li:nth-child(3) a::after, .social.tips-on li:nth-child(3) a::before { transition-delay: .16s; }
.social.tips-on li:nth-child(4) a::after, .social.tips-on li:nth-child(4) a::before { transition-delay: .24s; }
.social.tips-on li:nth-child(5) a::after, .social.tips-on li:nth-child(5) a::before { transition-delay: .32s; }
@media (max-width: 600px) { .social { margin-top: 48px; } .social a[data-tip]::after { max-width: calc(100% - 4px); font-size: 7.5px; line-height: 1.3; letter-spacing: .6px; padding: 4px 4px; border-radius: 8px; white-space: pre-line; } }
@media (prefers-reduced-motion: reduce) { .social a[data-tip]::after, .social a[data-tip]::before { transition: none !important; transform: translate(-50%, 0); } }
@media print { .social a[data-tip]::after, .social a[data-tip]::before { display: none !important; } }
@media (max-width: 360px) { .social a[data-tip]::after { font-size: 6.8px; letter-spacing: .3px; padding: 4px 2px; width: calc(100% - 4px); max-width: none; } }

/* v35: Instagram grid (mimics the upper inventory grid) */
.instagram .ig-grid { margin-top: 0; }
.instagram .ig-tile img { object-fit: cover; object-position: center; }
.instagram .ig-video::after { content: ''; position: absolute; top: 9px; right: 9px; width: 0; height: 0; z-index: 1;
  border-style: solid; border-width: 7px 0 7px 12px; border-color: transparent transparent transparent rgba(255,255,255,.95); filter: drop-shadow(0 0 3px rgba(0,0,0,.55)); }
.instagram .ig-tile:hover img { opacity: .88; }
/* desktop 5 columns: show only full rows (5 or 10) */
@media (min-width: 601px) { .ig-grid.ig-n6 .ig-tile:nth-child(n+6), .ig-grid.ig-n7 .ig-tile:nth-child(n+6), .ig-grid.ig-n8 .ig-tile:nth-child(n+6), .ig-grid.ig-n9 .ig-tile:nth-child(n+6),
  .ig-grid.ig-n11 .ig-tile:nth-child(n+11), .ig-grid.ig-n12 .ig-tile:nth-child(n+11) { display: none; } }
/* phone 3 columns: full rows only (3, 6, 9, 12) */
@media (max-width: 600px) { .ig-grid.ig-n4 .ig-tile:nth-child(n+4), .ig-grid.ig-n5 .ig-tile:nth-child(n+4), .ig-grid.ig-n7 .ig-tile:nth-child(n+7), .ig-grid.ig-n8 .ig-tile:nth-child(n+7),
  .ig-grid.ig-n10 .ig-tile:nth-child(n+10), .ig-grid.ig-n11 .ig-tile:nth-child(n+10) { display: none; } }

/* v38: header spans the grid width + a symmetric overhang; menu spread edge to edge */
@media (min-width: 601px) {
  :root { --hdr-over: clamp(10px, 1.2vw, 30px); }
  .site-header { width: calc(100% + 2 * var(--hdr-over)); margin-left: calc(-1 * var(--hdr-over)); margin-right: calc(-1 * var(--hdr-over)); box-sizing: border-box; gap: 0 clamp(18px, 2.2vw, 56px); }
  body#home .site-header { width: min(calc(100% + 2 * var(--hdr-over)), calc(1500px + 2 * var(--hdr-over))); margin-left: max(calc(-1 * var(--hdr-over)), calc((100% - 1500px) / 2 - var(--hdr-over))); margin-right: 0; }
  #nav ul { flex-wrap: nowrap; justify-content: space-between; }
  #nav li:first-child a { padding-left: 0; }
  #nav li:last-child a { padding-right: 0; }
  #nav a { padding-left: clamp(4px, .6vw, 14px); padding-right: clamp(4px, .6vw, 14px); }
}

/* v39: exhibits grid + lightbox */
.ex-words { margin: 0 0 22px; font: bold 12px/1.9 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #333; text-wrap: balance; }
.ex-words span { white-space: nowrap; } .ex-words .dot { color: #bbb; margin: 0 2px; }
.ex-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; margin: 0 0 8px; }
.ex-tile { position: relative; display: block; aspect-ratio: 1 / 1; background: #fff; cursor: zoom-in; }
.ex-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #fff; }
@media (min-width: 601px) { .ex-grid { grid-template-columns: repeat(auto-fill, minmax(clamp(170px, 14vw, 340px), 1fr)); gap: clamp(14px, 1.3vw, 30px); } }
@media (max-width: 600px) { .ex-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; } }
.exhibit + .brkline, .brkline { }
.lb { position: fixed; inset: 0; z-index: 100; background: rgba(255,255,255,.985); display: none; align-items: center; justify-content: center; }
.lb.open { display: flex; }
html.lb-lock { overflow: hidden; }
.lb-fig { margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 56px 64px 24px; box-sizing: border-box; }
.lb-fig img { max-width: 100%; max-height: calc(100% - 44px); width: auto; height: auto; object-fit: contain; opacity: 0; transition: opacity .3s ease; box-shadow: 0 2px 18px rgba(0,0,0,.08); }
.lb.ready .lb-fig img { opacity: 1; }
.lb figcaption { margin-top: 12px; display: flex; gap: 18px; align-items: baseline; flex-wrap: wrap; justify-content: center; font: bold 11px/1.6 'TeXGyreAdventorRegular', Arial, sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #555; text-align: center; }
.lb-link { color: #000; border-bottom: 1px solid #000; } .lb-link:hover { color: #ed3c34; border-color: #ed3c34; text-decoration: none; }
.lb-count { color: #999; }
.lb button { position: absolute; background: none; border: 0; cursor: pointer; color: #000; font-family: 'TeXGyreAdventorRegular', Arial, sans-serif; }
.lb button:hover { color: #ed3c34; }
.lb-close { top: 14px; right: 18px; font-weight: bold; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; padding: 8px; }
.lb-close span { font-size: 20px; vertical-align: -2px; margin-left: 4px; }
.lb-prev, .lb-next { top: 50%; transform: translateY(-50%); font-size: 54px; line-height: 1; padding: 10px 14px; }
.lb-prev { left: 6px; } .lb-next { right: 6px; }
@media (max-width: 600px) { .lb-fig { padding: 52px 8px 16px; } .lb-prev, .lb-next { top: auto; bottom: 8px; transform: none; font-size: 40px; } .lb figcaption { margin-bottom: 44px; } }
@media (prefers-reduced-motion: reduce) { .lb-fig img { transition: none; } }
@media print { .lb { display: none !important; } }

/* v40: per-exhibit fixed columns (config/exhibit-layout.json); short last row centered */
.ex-grid { --c: var(--cd, 5); --g: clamp(14px, 1.3vw, 30px); display: flex !important; flex-wrap: wrap; justify-content: center; gap: var(--g); }
.ex-grid .ex-tile { flex: 0 0 calc((100% - (var(--c) - 1) * var(--g)) / var(--c)); }
@media (max-width: 900px) { .ex-grid { --c: var(--ct, 3); --g: 12px; } }
@media (max-width: 600px) { .ex-grid { --c: var(--cp, 2); --g: 8px; } }
