:root {
  --ink: #0a0a09;
  --paper: #f1eee8;
  --copper: #d59a57;
  --muted: #a7a39b;
  --line: rgba(241, 238, 232, 0.22);
  --serif: "Italiana", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
section, footer { scroll-margin-top: 5rem; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.55;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 100; background: var(--paper); color: var(--ink); padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 5rem;
  padding: 0 4vw;
  border-bottom: 1px solid transparent;
  transition: background .3s ease, border-color .3s ease;
}
.site-header.scrolled { background: rgba(10,10,9,.92); backdrop-filter: blur(16px); border-color: var(--line); }
.brand { display: flex; align-items: center; gap: .85rem; font-weight: 500; letter-spacing: .18em; font-size: .82rem; }
.brand-mark { display: block; width: 2.8rem; height: 2.8rem; overflow: hidden; flex: 0 0 auto; border: 2px solid #fff; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px rgba(255,255,255,.28), 0 .35rem 1rem rgba(0,0,0,.28); }
.brand-mark img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.site-nav { display: flex; align-items: center; gap: clamp(.8rem, 1.4vw, 1.6rem); font-size: .84rem; }
.site-nav a { transition: color .2s ease; }
.site-nav a:hover, .site-nav a:focus-visible, .more-menu summary:hover, .more-menu summary:focus-visible { color: var(--copper); }
.nav-cta { padding: .6rem 1rem; border: 1px solid rgba(255,255,255,.45); }
.more-menu { position: relative; }
.more-menu summary { list-style: none; cursor: pointer; transition: color .2s ease; }
.more-menu summary::-webkit-details-marker { display: none; }
.more-menu summary::after { content: "＋"; margin-left: .35rem; color: var(--copper); font-size: .78rem; }
.more-menu[open] summary::after { content: "−"; }
.more-menu summary:hover, .more-menu summary:focus-visible { color: var(--copper); }
.more-panel {
  position: absolute;
  top: calc(100% + 1.25rem);
  left: 50%;
  min-width: 13rem;
  padding: .75rem;
  transform: translateX(-50%);
  background: rgba(10,10,9,.97);
  border: 1px solid var(--line);
  box-shadow: 0 1.2rem 3rem rgba(0,0,0,.35);
  backdrop-filter: blur(16px);
}
.more-panel a { display: block; padding: .7rem .8rem; white-space: nowrap; }
.language-switcher { display: flex; align-items: center; gap: .15rem; padding-left: .3rem; border-left: 1px solid var(--line); }
.language-switcher button { padding: .35rem; color: rgba(255,255,255,.55); background: transparent; border: 0; cursor: pointer; font-size: .7rem; letter-spacing: .08em; }
.language-switcher button:hover, .language-switcher button:focus-visible, .language-switcher button[aria-pressed="true"] { color: var(--copper); }
.menu-button { display: none; background: transparent; color: white; border: 0; padding: .75rem; }
.menu-button span:not(.sr-only) { display: block; width: 1.5rem; height: 1px; margin: .38rem 0; background: currentColor; }

.hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 48% center; animation: reveal 1.3s ease both; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,6,6,.88) 0%, rgba(6,6,6,.5) 42%, rgba(6,6,6,.06) 78%), linear-gradient(0deg, rgba(6,6,6,.58), transparent 45%); }
.hero-content { position: relative; z-index: 2; width: min(48rem, 88vw); margin: 0 0 8vh 7vw; }
.eyebrow, .section-number { margin: 0 0 1.5rem; color: var(--copper); text-transform: uppercase; letter-spacing: .18em; font-size: .76rem; font-weight: 500; }
.hero h1, h2 { font-family: var(--serif); font-weight: 400; line-height: .92; letter-spacing: -.03em; }
.hero h1 { margin: 0; font-size: clamp(4rem, 9.5vw, 9.5rem); }
.hero-copy { max-width: 34rem; margin: 2rem 0; font-size: clamp(1rem, 1.5vw, 1.2rem); color: rgba(255,255,255,.78); }
.text-link { display: inline-flex; align-items: center; gap: .8rem; padding-bottom: .35rem; border-bottom: 1px solid currentColor; font-size: .92rem; letter-spacing: .06em; }
.immersive-entry { color: inherit; background: transparent; border: 0; border-bottom: 1px solid currentColor; cursor: pointer; }
.text-link span { color: var(--copper); transition: transform .2s ease; }
.text-link:hover span { transform: translate(.18rem, .18rem); }
.hero-index { position: absolute; z-index: 2; right: 4vw; bottom: 3rem; margin: 0; writing-mode: vertical-rl; font-size: .7rem; letter-spacing: .2em; color: rgba(255,255,255,.6); }

.section-pad { padding: clamp(5rem, 10vw, 10rem) 7vw; }
.manifesto {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: 100svh;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(5, 6, 5, .56) 0%, rgba(5, 6, 5, .34) 52%, rgba(5, 6, 5, .2) 100%),
    url('./assets/vision-gallery.jpeg') center 48% / cover no-repeat;
}
.manifesto::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.16));
  pointer-events: none;
}
.manifesto-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: end; }
.manifesto h2, .works h2, .artist h2, .space h2, .collector h2, .artist-invitation h2 { margin: 0; font-size: clamp(3.5rem, 7vw, 7rem); }
.manifesto h2, .manifesto-copy { text-shadow: 0 .2rem 1.25rem rgba(0,0,0,.72); }
.manifesto-copy { max-width: 35rem; font-size: clamp(1.1rem, 1.6vw, 1.35rem); }
.manifesto-copy p:last-child { color: rgba(255,255,255,.76); }

.works { background: #11110f; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 5rem; }
.section-heading > p { color: var(--muted); }
.work-list { border-top: 1px solid var(--line); }
.work-item { display: grid; grid-template-columns: 4rem 1fr .8fr auto; gap: 2rem; align-items: center; padding: 2rem 0; border-bottom: 1px solid var(--line); transition: padding .25s ease, color .25s ease; }
.work-item:hover { padding-left: 1rem; color: var(--copper); }
.work-item h3, .work-item p { margin: 0; }
.work-item h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.7rem, 3vw, 3.2rem); }
.work-no { color: var(--muted); font-size: .75rem; }
.work-item p, .availability { color: var(--muted); font-size: .88rem; }
.availability { text-transform: uppercase; letter-spacing: .12em; }
.integrity-note { max-width: 34rem; margin: 2rem 0 0 auto; color: var(--muted); font-size: .86rem; }

.gallery-interior { background: #0d0d0b; }
.gallery-intro { display: grid; grid-template-columns: .6fr 1fr .7fr; gap: 4vw; align-items: end; border-bottom: 1px solid var(--line); }
.gallery-intro .section-number { align-self: start; }
.gallery-intro h2 { margin: 0; font-family: var(--serif); font-size: clamp(3.4rem, 6.5vw, 7rem); font-weight: 400; line-height: .92; letter-spacing: -.03em; }
.gallery-intro h2 em { color: var(--copper); font-weight: 400; }
.gallery-intro > p:last-child { max-width: 25rem; margin: 0; color: var(--muted); font-size: 1.08rem; }
.gallery-room { position: relative; min-height: min(88rem, 100svh); display: grid; place-items: center; overflow: hidden; padding: clamp(7rem, 11vw, 11rem) 7vw clamp(5rem, 8vw, 8rem); border-bottom: 1px solid rgba(255,255,255,.08); }
.gallery-room::before { content: ""; position: absolute; inset: 0; pointer-events: none; }
.gallery-room-dark { background: linear-gradient(120deg, #181715 0%, #2a2824 48%, #11110f 100%); }
.gallery-room-dark::before { background: linear-gradient(90deg, transparent 49.8%, rgba(255,255,255,.045) 50%, transparent 50.2%), linear-gradient(0deg, rgba(0,0,0,.38), transparent 38%); }
.gallery-room-stone { background: linear-gradient(115deg, #d7d2c8, #eeeae1 52%, #c5bfb3); color: var(--ink); }
.gallery-room-stone::before { background: linear-gradient(0deg, rgba(34,29,24,.14), transparent 34%), repeating-linear-gradient(90deg, transparent 0 28%, rgba(40,36,31,.035) 28% 28.1%); }
.gallery-room-copper { background: linear-gradient(125deg, #6c4e37, #a67d59 48%, #382a22); }
.gallery-room-copper::before { background: linear-gradient(0deg, rgba(0,0,0,.34), transparent 42%), radial-gradient(circle at 50% 25%, rgba(255,223,178,.18), transparent 38%); }
.wall-display { position: relative; z-index: 1; display: grid; justify-items: center; width: min(76rem, 88vw); margin: 0; }
.wall-display img { position: relative; z-index: 2; display: block; width: auto; height: auto; max-width: 100%; max-height: 66svh; object-fit: contain; box-shadow: 0 2.2rem 5rem rgba(0,0,0,.46), 0 0 0 1px rgba(255,255,255,.08); }
.wall-display-portrait img { max-width: min(38rem, 72vw); }
.wall-display-landscape img { max-width: min(12rem, 42vw); max-height: 10rem; }
.wall-display-tall img { max-width: min(32rem, 70vw); }
.art-light { position: absolute; z-index: 0; top: -18%; left: 50%; width: min(62rem, 90vw); height: 90%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(255,239,210,.25), transparent 65%); filter: blur(14px); }
.wall-display figcaption { display: grid; grid-template-columns: 2.2rem 1fr; gap: 1rem; width: min(40rem, 100%); margin-top: 2.4rem; padding-top: 1.25rem; border-top: 1px solid currentColor; color: rgba(255,255,255,.82); }
.gallery-room-stone .wall-display figcaption { color: rgba(10,10,9,.74); }
.wall-display figcaption strong { display: block; font-family: var(--serif); font-size: clamp(1.2rem, 2vw, 1.65rem); font-weight: 400; line-height: 1.2; }
.wall-display figcaption small { display: block; margin-top: .55rem; font-size: .76rem; line-height: 1.55; letter-spacing: .08em; text-transform: uppercase; opacity: .72; }
.wall-number { padding-top: .2rem; font-size: .7rem; letter-spacing: .12em; color: var(--copper); }

.artist { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 8vw; background: #8b4052; color: #fffaf5; }
.artist-orbit {
  position: relative;
  padding: clamp(.38rem, .7vw, .65rem);
  border: 1px solid #070707;
  outline: 1px solid #070707;
  outline-offset: .32rem;
  background: #090909;
  box-shadow: 0 1.2rem 3rem rgba(43,8,17,.38), inset 0 0 0 1px #000;
}
.artist-portraits {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, .78fr);
  align-items: center;
  gap: clamp(.35rem, 1vw, .75rem);
}
.artist-portraits img {
  display: block;
  width: 100%;
}
.artist-portraits img:first-child {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center;
  filter: saturate(.94) contrast(1.03);
}
.artist-portraits img:last-child {
  aspect-ratio: 3 / 4;
  object-fit: contain;
}
.artist-copy > p:not(.section-number) { max-width: 32rem; margin: 2rem 0; font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.artist .section-number { color: rgba(255,250,245,.72); }
.artist .text-link, .artist .text-link span { color: #fffaf5; }
.artist-socials { max-width: 34rem; margin-top: 2.25rem; }
.artist-socials-label { margin: 0 0 .9rem; color: rgba(255,250,245,.72); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }
.artist-social-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(255,250,245,.42); }
.artist-social-links a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 0; color: #fffaf5; border-bottom: 1px solid rgba(255,250,245,.28); font-size: .88rem; letter-spacing: .04em; }
.artist-social-links a:nth-child(odd) { padding-right: 1.1rem; }
.artist-social-links a:nth-child(even) { padding-left: 1.1rem; border-left: 1px solid rgba(255,250,245,.28); }
.artist-social-links a span { transition: transform .2s ease; }
.artist-social-links a:hover span { transform: translate(.18rem, -.18rem); }
.space { display: grid; grid-template-columns: 1.35fr .65fr; min-height: 44rem; background: var(--ink); }
.space-image-wrap { min-height: 34rem; overflow: hidden; }
.space-image-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: 40% center; filter: saturate(.82) contrast(1.05); }
.space-copy { display: flex; flex-direction: column; justify-content: center; padding: 6vw; }
.space h2 { font-size: clamp(3rem, 5vw, 5.5rem); }
.space-copy > p:last-child { margin-top: 2rem; color: var(--muted); }
.location { margin: 1.4rem 0 0; color: var(--copper); text-transform: uppercase; letter-spacing: .16em; font-size: .73rem; }

.more-world { background: #161613; }
.more-world h2 { margin: 0; font-family: var(--serif); font-size: clamp(3.5rem, 7vw, 7rem); font-weight: 400; line-height: .92; letter-spacing: -.03em; }
.media-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.media-card { min-height: 25rem; display: flex; flex-direction: column; padding: clamp(1.6rem, 3vw, 3rem); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.media-index { margin: 0 0 auto; color: var(--copper); font-size: .7rem; letter-spacing: .15em; }
.media-card h3 { margin: 4rem 0 1rem; font-family: var(--serif); font-size: clamp(2rem, 3.2vw, 3.5rem); font-weight: 400; line-height: 1; }
.media-card > p:not(.media-index) { color: var(--muted); }
.media-card a, .pending-link { align-self: flex-start; margin-top: 2rem; padding-bottom: .3rem; border-bottom: 1px solid currentColor; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; }
.media-card a { color: var(--copper); }
.pending-link { color: var(--muted); }
.media-card-film { grid-column: 1 / -1; min-height: auto; display: grid; grid-template-columns: minmax(15rem, .62fr) minmax(0, 1.38fr); gap: clamp(2rem, 5vw, 6rem); }
.media-card-film .media-index { margin-bottom: 8rem; }
.media-card-film h3 { margin-top: 0; }
.film-intro > p:last-child { max-width: 28rem; color: var(--muted); }
.film-gallery { display: grid; grid-template-columns: minmax(0, 1.45fr) repeat(2, minmax(11rem, .55fr)); align-items: start; gap: clamp(1.2rem, 2.5vw, 2.4rem); }
.film-item { margin: 0; min-width: 0; }
.film-item video { display: block; width: 100%; background: #080807; border: 1px solid rgba(255,255,255,.16); box-shadow: 0 1.5rem 3.5rem rgba(0,0,0,.28); }
.film-item-landscape video { aspect-ratio: 16 / 9; object-fit: cover; }
.film-item-portrait { max-width: 19rem; justify-self: center; }
.film-item-portrait video { aspect-ratio: 9 / 16; object-fit: cover; }
.film-item figcaption { padding-top: 1.1rem; }
.film-item figcaption span { color: var(--copper); font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }
.film-item h4 { margin: .45rem 0 .4rem; font-family: var(--serif); font-size: clamp(1.55rem, 2.2vw, 2.4rem); font-weight: 400; line-height: 1.05; }
.film-item figcaption p { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.55; }

.collector { background: var(--paper); color: var(--ink); }
.collector-grid { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 8vw; }
.collector h2 em { color: var(--copper); font-weight: 400; }
.collector-copy { max-width: 30rem; }
.collector-copy p { font-size: 1.18rem; }
.button { display: flex; justify-content: space-between; align-items: center; gap: 2rem; margin-top: 2rem; padding: 1rem 1.2rem; border: 1px solid var(--ink); text-transform: uppercase; letter-spacing: .12em; font-size: .76rem; transition: color .2s ease, background .2s ease; }
.button:hover { background: var(--ink); color: var(--paper); }

.artist-invitation { background: #8b4052; color: #fff; }
.artist-invitation .section-number { color: rgba(255,255,255,.68); }
.artist-invitation-grid { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 8vw; }
.artist-invitation h2 { font-family: var(--serif); font-weight: 400; line-height: .92; letter-spacing: -.03em; }
.artist-invitation h2 em { color: #e8c99e; font-weight: 400; }
.artist-invitation-copy { max-width: 31rem; }
.artist-invitation-copy p { margin-top: 0; font-size: 1.18rem; line-height: 1.7; color: rgba(255,255,255,.86); }
.button-light { border-color: rgba(255,255,255,.72); color: #fff; }
.button-light:hover { background: #fff; color: #6f2e3e; }

.site-footer { display: grid; grid-template-columns: 1fr 1fr auto; gap: 3rem; padding: 4rem 7vw; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; }
.site-footer p { margin: .2rem 0; }
.footer-brand { color: var(--paper); letter-spacing: .18em; }
.footer-privacy { margin-top: .4rem; padding: 0; color: var(--copper); background: transparent; border: 0; cursor: pointer; font-size: inherit; }
.footer-privacy:hover, .footer-privacy:focus-visible { text-decoration: underline; }

.cookie-banner {
  position: fixed;
  z-index: 90;
  right: 1.25rem;
  bottom: 1.25rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.5rem;
  width: min(52rem, calc(100vw - 2.5rem));
  padding: 1.4rem;
  color: var(--ink);
  background: rgba(241,238,232,.98);
  border: 1px solid rgba(10,10,9,.18);
  box-shadow: 0 1.5rem 4rem rgba(0,0,0,.45);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner h2 { margin: .15rem 0 .55rem; font-family: var(--serif); font-size: clamp(1.55rem, 2.4vw, 2.25rem); line-height: 1.05; }
.cookie-banner p { max-width: 42rem; margin: 0; }
.cookie-eyebrow { color: #8b5b2d; text-transform: uppercase; letter-spacing: .14em; font-size: .7rem; }
.cookie-actions { display: flex; min-width: 13rem; flex-direction: column; align-items: stretch; justify-content: center; gap: .55rem; }
.cookie-actions button { cursor: pointer; }
.cookie-accept { justify-content: center; }
.cookie-reject, .cookie-details, .privacy-reject { padding: .55rem .7rem; color: var(--ink); background: transparent; border: 0; }
.cookie-reject:hover, .cookie-reject:focus-visible, .cookie-details:hover, .cookie-details:focus-visible, .privacy-reject:hover, .privacy-reject:focus-visible { text-decoration: underline; }
.cookie-details { color: #71502f; font-size: .78rem; }

.privacy-dialog { width: min(42rem, calc(100vw - 2rem)); padding: clamp(2rem, 6vw, 4rem); color: var(--ink); background: var(--paper); border: 0; box-shadow: 0 2rem 6rem rgba(0,0,0,.68); }
.privacy-dialog::backdrop { background: rgba(0,0,0,.76); }
.privacy-dialog h2 { margin: .25rem 0 1.5rem; font-size: clamp(2.4rem, 6vw, 4.5rem); }
.privacy-dialog > p:not(.section-number) { color: #524d46; }
.privacy-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-top: 2rem; }
.privacy-actions .button { cursor: pointer; }

.immersive-exhibition { position: fixed; inset: 0; z-index: 100; overflow: hidden; background: #080807; color: white; opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility .5s ease; }
.immersive-exhibition.open { opacity: 1; visibility: visible; }
.exhibition-facade { position: absolute; inset: 0; z-index: 1; overflow: hidden; background: #16120f; transition: opacity 1s ease 2.7s; }
.exhibition-facade img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1); filter: saturate(.9) contrast(1.04); }
.facade-vignette { position: absolute; inset: 0; background: radial-gradient(circle at 39% 78%, transparent 0 8%, rgba(0,0,0,.08) 23%, rgba(0,0,0,.52) 100%), linear-gradient(180deg, rgba(0,0,0,.18), transparent 42%, rgba(0,0,0,.32)); }
.immersive-exhibition.entering .exhibition-facade img { animation: approach-entrance 3s cubic-bezier(.35,.02,.18,1) forwards; }
.immersive-exhibition.inside .exhibition-facade { opacity: 0; pointer-events: none; }
.industrial-doorway { position: absolute; z-index: 3; left: 50%; top: 50%; width: min(42rem, 72vw); height: min(36rem, 70vh); overflow: hidden; transform: translate(-50%,-44%) scale(.13); opacity: 0; perspective: 1200px; border: .75rem solid #252725; outline: 1px solid rgba(194,187,171,.45); background: #111413; transition: transform 1.05s cubic-bezier(.3,.02,.12,1), opacity .45s ease; box-shadow: 0 0 0 100vmax rgba(3,3,3,.52), 0 1.4rem 3.8rem rgba(0,0,0,.72), inset 0 0 0 .18rem #555750; }
.immersive-exhibition.doors-ready .industrial-doorway { transform: translate(-50%,-44%) scale(1); opacity: 1; }
.immersive-exhibition.inside .industrial-doorway { opacity: 0; pointer-events: none; transition-delay: .7s; }
.industrial-door { position: absolute; z-index: 2; top: 0; bottom: 0; width: 50.3%; overflow: hidden; background: linear-gradient(104deg, rgba(184,190,181,.18), transparent 23%, rgba(8,13,13,.22) 54%, rgba(137,139,130,.1)), linear-gradient(90deg, #252a28 0%, #111716 7%, #3d413d 9%, #181d1c 13%, #323633 49%, #161a19 83%, #42443f 94%, #171b1a 100%); border: 1px solid rgba(190,190,176,.3); box-shadow: inset 0 0 0 .22rem #151817, inset 0 0 0 .34rem rgba(108,110,104,.58), inset 0 0 3.2rem rgba(0,0,0,.82); transition: transform 1.3s cubic-bezier(.55,.02,.18,1); }
.industrial-door::before { content: ""; position: absolute; inset: 3.5% 7%; opacity: .72; border: .18rem solid #555954; box-shadow: inset 0 0 0 .22rem #171b1a, 0 0 0 .08rem rgba(195,189,174,.3); background: repeating-linear-gradient(90deg, transparent 0 23.7%, rgba(143,147,139,.34) 24%, rgba(33,37,35,.75) 24.8%, transparent 25.3%), repeating-linear-gradient(0deg, transparent 0 24%, rgba(137,139,132,.28) 24.3%, rgba(22,25,24,.72) 25%, transparent 25.5%), linear-gradient(120deg, rgba(157,164,157,.1), transparent 34%, rgba(0,0,0,.28)); }
.industrial-door::after { content: ""; position: absolute; inset: 4.2% 7.8%; pointer-events: none; background: linear-gradient(180deg, transparent, rgba(118,76,45,.13) 48%, transparent 66%), repeating-linear-gradient(90deg, transparent 0 18%, rgba(111,76,50,.1) 18.5%, transparent 19.2%); mix-blend-mode: screen; }
.industrial-door span { position: absolute; z-index: 3; top: 44%; width: .58rem; height: 5.2rem; border-radius: .12rem; background: linear-gradient(90deg, #4a4c48, #c4c2b7 42%, #5c5e58 100%); border: 1px solid #242724; box-shadow: 0 0 0 .12rem rgba(15,17,16,.78), 0 .45rem 1rem rgba(0,0,0,.62); }
.industrial-door-left { left: 0; transform-origin: left center; }
.industrial-door-right { right: 0; transform-origin: right center; }
.industrial-door-left span { right: 1.25rem; }
.industrial-door-right span { left: 1.25rem; }
.immersive-exhibition.doors-open .industrial-door-left { transform: perspective(900px) rotateY(-92deg); }
.immersive-exhibition.doors-open .industrial-door-right { transform: perspective(900px) rotateY(92deg); }
.doorway-light { position: absolute; inset: 0; z-index: 1; background: radial-gradient(circle at 50% 48%, rgba(255,250,230,.94), rgba(223,203,166,.56) 33%, rgba(28,25,20,.8) 80%), url('./assets/gallery-room.png') center / cover no-repeat; transform: scale(1.02); }
.exhibition-hall { position: absolute; inset: 0; z-index: 2; overflow: hidden; opacity: 0; visibility: hidden; transform: scale(1.08); transition: opacity 1.1s ease, transform 1.4s cubic-bezier(.25,.04,.12,1), visibility 1s ease; }
.immersive-exhibition.inside .exhibition-hall { opacity: 1; visibility: visible; transform: scale(1); }
.hall-backdrop { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,8,7,.12), rgba(8,8,7,.04) 55%, rgba(8,8,7,.58)), url('./assets/gallery-room.png') center / cover no-repeat; filter: saturate(.68) contrast(1.04); }
.hall-intro { position: absolute; z-index: 2; left: 7vw; top: 47%; width: min(22rem, 24vw); padding: clamp(1rem, 1.7vw, 1.55rem); transform: translateY(-48%) perspective(900px) rotateY(2deg); color: #fffaf1; background: linear-gradient(135deg, rgba(11,13,16,.96), rgba(11,13,16,.88)); border: .22rem solid #151514; border-left: 3px solid #d8a768; box-shadow: 0 .45rem 1rem rgba(0,0,0,.34), 0 1.2rem 2rem rgba(0,0,0,.18); opacity: 0; transition: opacity .8s ease .7s, transform .8s ease .7s; }
.immersive-exhibition.inside .hall-intro { opacity: 1; transform: translateY(-50%) perspective(900px) rotateY(2deg); }
.hall-intro .section-number { margin: 0 0 .65rem; color: #e4bb82; font-size: .68rem; letter-spacing: .1em; }
.hall-intro h2 { margin: 0; color: #fffaf1; font-family: var(--serif); font-size: clamp(2rem, 3.2vw, 3.8rem); font-weight: 400; line-height: .92; }
.hall-intro > p:last-child { max-width: 19rem; margin-top: .8rem; color: rgba(255,250,241,.92); font-size: clamp(.78rem, .95vw, .95rem); line-height: 1.5; }
.immersive-top { position: absolute; z-index: 8; inset: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 1.2rem 1.4rem; }
.immersive-top p { margin: 0; font-size: .75rem; text-transform: uppercase; letter-spacing: .17em; }
.room-switch { display: flex; align-items: center; gap: .7rem; margin-left: auto; margin-right: 1rem; padding: .42rem .7rem .42rem .42rem; color: #fffaf1; background: rgba(14,15,16,.78); border: 1px solid rgba(255,250,241,.5); cursor: pointer; font: inherit; font-size: .78rem; letter-spacing: .04em; text-align: left; }
.room-switch-window { display: block; flex: 0 0 3.7rem; height: 2.35rem; border: 2px solid rgba(255,250,241,.84); background: url('./assets/about-life-lounge-room.png') center 43% / cover no-repeat; box-shadow: inset 0 0 0 1px rgba(12,12,11,.35); }
.immersive-exhibition.gallery-lounge .room-switch-window { background-image: url('./assets/gallery-room.png'); }
.room-switch:hover,.room-switch:focus-visible { color: #17120d; background: #d8a768; outline: 2px solid #fffaf1; outline-offset: 2px; }
.lounge-room { position: absolute; z-index: 1; inset: 0; overflow: hidden; visibility: hidden; opacity: 0; transition: opacity .65s ease, visibility .65s ease; }
.lounge-room::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(12,12,11,.22), transparent 22%, transparent 67%, rgba(12,12,11,.26)); }
.lounge-background { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 50%; }
.immersive-exhibition.gallery-lounge .lounge-room { visibility: visible; opacity: 1; }
.immersive-exhibition.gallery-lounge .hall-backdrop { opacity: 0; }
.immersive-exhibition.gallery-lounge .hall-intro { display: none; }
.immersive-exhibition.gallery-lounge .room-switch { color: #17120d; background: rgba(250,247,239,.9); border-color: rgba(23,19,15,.32); }
.immersive-exhibition.gallery-lounge .exhibition-artwork { z-index: 4; left: 38%; top: 44%; right: auto; width: min(22vw, 32vh); transform: translate(-50%,-50%); }
.immersive-exhibition.gallery-lounge.inside .exhibition-artwork { transform: translate(-50%,-50%); }
.immersive-exhibition.gallery-lounge .exhibition-sequence { display: none; }
.immersive-exhibition.gallery-lounge .exhibition-image-button { border: .28rem solid #201b18; box-shadow: 0 0 .8rem rgba(255,222,165,.48), 0 0 2.3rem rgba(255,222,165,.2), 0 .45rem 1.2rem rgba(28,22,18,.4); }
.immersive-exhibition.gallery-lounge .exhibition-image-button img { width: 100%; height: auto; object-fit: contain; }
.exhibition-image-stage { position: relative; width: 100%; }
.artwork-info-button { position: absolute; z-index: 5; right: .62rem; bottom: .62rem; display: grid; place-items: center; width: 2rem; height: 2rem; padding: 0; color: #17120d; background: #e7b957; border: 1px solid rgba(29,23,15,.55); border-radius: 50%; box-shadow: 0 .25rem .7rem rgba(0,0,0,.28); cursor: pointer; font: inherit; font-size: 1.2rem; line-height: 1; transition: transform .2s ease, background .2s ease; }
.artwork-info-button:hover,.artwork-info-button:focus-visible { transform: scale(1.12); background: #f4cf75; outline: 2px solid #fffaf1; outline-offset: 2px; }
.immersive-exhibition.gallery-lounge .exhibition-artwork[data-orientation="landscape"] { left: 38%; width: min(27vw, 34vh); }
.immersive-exhibition.gallery-lounge .exhibition-artwork[data-orientation="landscape"] .exhibition-image-button { aspect-ratio: auto; }
.immersive-exhibition.gallery-lounge .exhibition-artwork[data-orientation="landscape"] .exhibition-image-button img { height: auto; object-fit: contain; }
.immersive-exhibition.gallery-lounge .exhibition-caption { display: table; margin: .65rem auto 0; padding: .35rem .55rem; color: #201b18; background: rgba(250,247,239,.86); box-shadow: 0 .25rem .75rem rgba(28,22,18,.16); }
.immersive-exhibition.gallery-lounge .exhibition-caption > div { grid-template-columns: 1.6rem 1fr; gap: .4rem; }
.immersive-exhibition.gallery-lounge .exhibition-caption span { padding-top: .25rem; }
.immersive-exhibition.gallery-lounge .exhibition-caption h3 { font-size: clamp(1.05rem, 1.7vw, 1.7rem); }
.immersive-exhibition.gallery-lounge .artwork-info-button,
.immersive-exhibition.gallery-lounge .exhibition-caption { display: none; }
.round-control { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; color: white; background: rgba(0,0,0,.36); border: 1px solid rgba(255,255,255,.62); border-radius: 50%; cursor: pointer; font-size: 1.35rem; }
.exhibition-artwork { position: absolute; z-index: 4; top: 47%; left: 64%; right: auto; width: min(23rem, 25vw); transform: translateY(-44%) scale(.98); opacity: 0; transition: opacity .75s ease .95s, transform .75s ease .95s; }
.immersive-exhibition.inside .exhibition-artwork { opacity: 1; transform: translateY(-50%) scale(1); }
.exhibition-sequence { display: table; max-width: 100%; margin: 0 0 .55rem; padding: .48rem .7rem; color: #fffaf1; background: rgba(14,15,16,.92); border-left: 2px solid #d8a768; box-shadow: 0 .35rem 1rem rgba(0,0,0,.22); text-transform: uppercase; letter-spacing: .12em; font-size: .7rem; line-height: 1.35; }
.exhibition-image-button { position: relative; display: block; width: 100%; height: auto; margin: 0 auto; padding: 0; overflow: hidden; background: #080807; border: .42rem solid #080807; box-shadow: 0 .75rem 1.8rem rgba(24,20,16,.34); cursor: pointer; transition: transform .28s ease, opacity .3s ease; }
.exhibition-image-button:hover,.exhibition-image-button:focus-visible { transform: scale(1.018); outline: 2px solid #d8a768; outline-offset: .45rem; }
.exhibition-image-button img { display: block; width: 100%; height: auto; background: #080807; }
.exhibition-artwork[data-orientation="landscape"] { left: 62%; right: auto; width: min(27rem, 29vw); }
.exhibition-artwork[data-orientation="landscape"] .exhibition-image-button { width: 100%; height: auto; aspect-ratio: 863 / 531; background: #080807; border-color: #080807; }
.exhibition-artwork[data-orientation="landscape"] .exhibition-image-button img { object-fit: cover; background: #080807; }
.exhibition-artwork.changing .exhibition-image-button { opacity: 0; transform: translateX(1.4rem) scale(.985); }
.exhibition-caption { margin-top: 1rem; color: #17130f; }
.exhibition-caption > div { display: grid; grid-template-columns: 2rem 1fr; gap: .75rem; align-items: start; }
.exhibition-caption span { padding-top: .35rem; color: #8b4052; font-size: .7rem; letter-spacing: .12em; }
.exhibition-caption h3 { margin: 0; font-family: var(--serif); font-size: clamp(1.55rem, 2.3vw, 2.45rem); font-weight: 400; line-height: 1.05; }
.exhibition-navigation { position: absolute; z-index: 7; left: 50%; bottom: 5.3rem; display: flex; align-items: center; gap: 1rem; transform: translateX(-50%); }
.exhibition-navigation > button { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; color: #17130f; background: rgba(246,242,234,.85); border: 1px solid rgba(23,19,15,.35); border-radius: 50%; cursor: pointer; font-size: 1.15rem; }
.exhibition-progress { display: flex; gap: .45rem; }
.exhibition-progress button { width: .48rem; height: .48rem; padding: 0; background: rgba(23,19,15,.3); border: 0; border-radius: 50%; cursor: pointer; }
.exhibition-progress button[aria-current="true"] { background: #8b4052; transform: scale(1.35); }
.immersive-controls { position: absolute; z-index: 8; left: 1.4rem; right: 1.4rem; bottom: 1.25rem; display: flex; align-items: center; gap: .85rem; }
.immersive-controls p { margin: 0 0 0 auto; color: rgba(23,19,15,.72); font-size: .76rem; }
.sound-control { padding: .7rem .9rem; color: #17130f; background: rgba(246,242,234,.82); border: 1px solid rgba(23,19,15,.38); cursor: pointer; }
.immersive-controls input { width: 7rem; accent-color: var(--copper); }
.artwork-dialog { width: min(58rem, 92vw); max-height: 92vh; padding: 0; color: var(--ink); background: var(--paper); border: 0; box-shadow: 0 2rem 6rem rgba(0,0,0,.7); }
.artwork-dialog::backdrop { background: rgba(0,0,0,.76); }
.artwork-dialog-grid { display: grid; grid-template-columns: 1.05fr .95fr; }
.artwork-dialog-image { display: grid; place-items: center; min-height: 33rem; padding: 2rem; background: #121210; }
.artwork-dialog-image img { width: 100%; height: 100%; max-height: 34rem; object-fit: contain; }
.artwork-dialog-copy { position: relative; display: flex; flex-direction: column; padding: clamp(2rem,5vw,4.5rem); }
.dialog-close { position: absolute; top: 1rem; right: 1rem; color: var(--ink); background: transparent; border: 0; cursor: pointer; font-size: 1.6rem; }
.artwork-dialog-copy h2 { margin: .5rem 0 2rem; font-size: clamp(2.4rem,4vw,4.5rem); }
.artwork-dialog-copy dl { margin: 0 0 2rem; border-top: 1px solid rgba(10,10,9,.2); }
.artwork-dialog-copy dl div { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid rgba(10,10,9,.15); }
.artwork-dialog-copy dt { color: #716c64; text-transform: uppercase; letter-spacing: .1em; font-size: .7rem; }
.artwork-dialog-copy dd { margin: 0; }
.artwork-collect { margin-top: auto; }

@keyframes reveal { from { transform: scale(1.04); opacity: .3; } to { transform: scale(1); opacity: 1; } }
@keyframes approach-entrance { 0% { transform: scale(1); object-position: center; } 55% { transform: scale(1.45); object-position: 44% 67%; } 100% { transform: scale(3.4); object-position: 39% 77%; filter: saturate(.72) brightness(.58); } }

@media (max-width: 800px) {
  .site-header { padding: 0 1.25rem; }
  .menu-button { display: block; }
  .site-nav { position: absolute; top: 5rem; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: .75rem 1.25rem 1.5rem; background: rgba(10,10,9,.97); border-bottom: 1px solid var(--line); }
  .site-nav.open { display: flex; }
  .site-nav a { padding: .85rem 0; }
  .more-menu summary { padding: .85rem 0; }
  .more-menu-panel { position: static; min-width: 0; padding: 0 0 .4rem 1rem; background: transparent; border: 0; backdrop-filter: none; }
  .more-menu-panel a { padding: .6rem 0; color: var(--muted); }
  .nav-cta { border: 0; }
  .more-menu { padding: .85rem 0; }
  .more-panel { position: static; min-width: 0; margin-top: .65rem; padding: .25rem 0 .25rem .8rem; transform: none; background: transparent; border: 0; box-shadow: none; }
  .more-panel a { padding: .55rem 0; color: var(--muted); }
  .language-switcher { margin-top: .5rem; padding: .75rem 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .language-switcher button { padding: .5rem .75rem .5rem 0; }
  .hero-content { margin: 0 1.4rem 10vh; width: auto; }
  .hero h1 { font-size: clamp(3.7rem, 18vw, 6rem); }
  .hero-image { object-position: 30% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(6,6,6,.9), rgba(6,6,6,.12) 75%); }
  .hero-index { display: none; }
  .section-pad { padding: 5.5rem 1.4rem; }
  .manifesto-grid, .artist, .collector-grid, .artist-invitation-grid { grid-template-columns: 1fr; }
  .manifesto-grid, .collector-grid, .artist-invitation-grid { gap: 3rem; }
  .manifesto {
    min-height: 100svh;
    justify-content: flex-end;
    background:
      linear-gradient(0deg, rgba(4,5,4,.72) 0%, rgba(4,5,4,.34) 58%, rgba(4,5,4,.08) 100%),
      url('./assets/vision-gallery.jpeg') center / cover no-repeat;
  }
  .section-heading { display: block; margin-bottom: 3rem; }
  .gallery-intro { grid-template-columns: 1fr; gap: 2rem; }
  .gallery-intro .section-number { margin-bottom: 0; }
  .gallery-room { min-height: 78svh; padding: 7rem 1.4rem 4rem; }
  .wall-display img { max-height: 58svh; }
  .wall-display-portrait img, .wall-display-landscape img, .wall-display-tall img { max-width: 86vw; }
  .wall-display figcaption { margin-top: 1.75rem; }
  .work-item { grid-template-columns: 2rem 1fr; gap: .5rem 1rem; }
  .work-item p, .availability { grid-column: 2; }
  .artist { gap: 3rem; }
  .artist-orbit { max-width: 26rem; }
  .artist-social-links { grid-template-columns: 1fr; }
  .artist-social-links a:nth-child(odd), .artist-social-links a:nth-child(even) { padding-left: 0; padding-right: 0; border-left: 0; }
  .space { grid-template-columns: 1fr; }
  .space-image-wrap { min-height: 26rem; }
  .space-copy { padding: 5rem 1.4rem; }
  .media-card-film { grid-template-columns: 1fr; }
  .media-card-film .media-index { margin-bottom: 3rem; }
  .film-gallery { grid-template-columns: 1fr; }
  .film-item-portrait { width: min(100%, 20rem); justify-self: start; }
  .media-grid { grid-template-columns: 1fr; }
  .media-card { min-height: 20rem; }
  .site-footer { grid-template-columns: 1fr; padding: 3rem 1.4rem; gap: 1.5rem; }
  .cookie-banner { right: .75rem; bottom: .75rem; grid-template-columns: 1fr; width: calc(100vw - 1.5rem); max-height: calc(100svh - 1.5rem); overflow: auto; padding: 1.15rem; }
  .cookie-actions { min-width: 0; }
  .industrial-doorway { width: 86vw; height: 64vh; transform: translate(-50%,-43%) scale(.13); }
  .immersive-exhibition.doors-ready .industrial-doorway { transform: translate(-50%,-43%) scale(1); }
  .hall-intro { display: none; }
  .exhibition-artwork { left: 50%; right: auto; top: 49%; width: min(65vw, 16rem); transform: translate(-50%,-44%); }
  .immersive-exhibition.inside .exhibition-artwork { transform: translate(-50%,-50%); }
  .exhibition-image-button { width: min(18.5rem, 72vw); height: auto; border-width: .48rem; }
  .artwork-info-button { right: .62rem; bottom: .62rem; }
  .exhibition-artwork[data-orientation="landscape"] { left: 50%; width: min(78vw, 20rem); }
  .exhibition-artwork[data-orientation="landscape"] .exhibition-image-button { width: 100%; height: auto; }
  .exhibition-caption h3 { font-size: clamp(1.45rem, 7vw, 2.1rem); }
  .exhibition-caption p { font-size: .66rem; line-height: 1.5; }
  .exhibition-navigation { bottom: 5.4rem; gap: .65rem; }
  .exhibition-navigation > button { width: 2.5rem; height: 2.5rem; }
  .exhibition-progress { gap: .35rem; }
  .exhibition-progress button { width: .42rem; height: .42rem; }
  .immersive-top p { max-width: 70vw; font-size: .62rem; }
  .lounge-background { object-position: 40% center; }
  .room-switch { position: absolute; top: 4.5rem; right: .75rem; left: auto; width: min(14.5rem, 41vw); gap: .45rem; margin: 0; padding: .35rem; font-size: .64rem; line-height: 1.3; }
  .room-switch-window { flex-basis: 2.8rem; height: 1.8rem; border-width: 1px; }
  .immersive-exhibition.gallery-lounge .exhibition-artwork { left: 36.5%; top: 51%; width: min(29vw, 15vh); transform: translate(-50%,-50%); }
  .immersive-exhibition.gallery-lounge .exhibition-image-button { width: 100%; }
  .immersive-exhibition.gallery-lounge .exhibition-artwork[data-orientation="landscape"] { left: 36.5%; top: 51%; width: min(40vw, 20vh); }
  .immersive-exhibition.gallery-lounge .exhibition-caption h3 { font-size: clamp(1rem, 4.6vw, 1.35rem); }
  .immersive-controls p { display: none; }
  .immersive-controls input { width: 5.5rem; }
  .artwork-dialog-grid { grid-template-columns: 1fr; }
  .artwork-dialog-image { min-height: 18rem; padding: 1rem; }
  .artwork-dialog-image img { max-height: 18rem; }
  .artwork-dialog-copy { min-height: 25rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
