@font-face {
  font-family: "Monument Grotesk";
  src: url("./fonts/ABCMonumentGrotesk-Regular-Trial.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Monument Grotesk";
  src: url("./fonts/ABCMonumentGrotesk-Bold-Trial.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "EB Garamond";
  src: url("./fonts/EBGaramond-VariableFont_wght.ttf") format("truetype-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --bg: #ffffff;
  --paper: #fdfdfb;
  --ink: #111111;
  --muted: rgba(17, 17, 17, 0.62);
  --display: "Monument Grotesk", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  --body: "Courier New", Courier, monospace;
  --safe-margin: 20px;
  --safe-margin-bottom: 60px;
  /* About: space reserved for “DE / EN” so × can sit beside it without shifting .globalFixedNav */
  --about-lang-inline-width: 5.5rem;
  --about-close-lang-gap: 0.75rem;
  --detail-panel-top: 164px;
  /* Shared with .colPinkTop: green column kicker uses the same top offset */
  --home-nav-below-strip: 104px;
  /* Catalogue grid: keep in sync with FADE_OUT_MS in app.js */
  --artwork-fade-ms: 400ms;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: inherit;
  text-decoration: none;
}

/* Katalog-Typografie */
.heading {
  font-family: "Monument Grotesk", "Helvetica Neue", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: #111;
}

.body-text {
  font-family: "Courier New", Courier, monospace;
  font-size: 11px;
  line-height: 1.85;
  color: #555;
}

.label {
  font-family: "Courier New", Courier, monospace;
  font-size: 9px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #888;
}

.globalFixedNav {
  position: fixed;
  top: var(--safe-margin);
  right: var(--safe-margin);
  z-index: 100;
  display: flex;
  gap: 16px;
  align-items: center;
}

.globalFixedNav a {
  text-decoration: none;
}

.globalFixedNav a:hover {
  opacity: 0.5;
}

.langSwitch {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Courier New", Courier, monospace;
  font-size: 13.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.langSwitchBtn {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: inherit;
  font: inherit;
  opacity: 0.45;
}

.langSwitchBtn.is-active {
  opacity: 1;
  font-weight: 600;
}

.langSwitchSep {
  opacity: 0.35;
  user-select: none;
}

.globalAboutLink {
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #111;
}

/* ——— About — optional left nav (same as catalogue), wide bio + photo ——— */
.aboutBody {
  margin: 0;
  box-sizing: border-box;
  background: #ffffff;
  color: #111;
}

.homeShell.homeShell--about {
  overflow: hidden;
}

.aboutHomeBody {
  display: grid;
  grid-template-columns: var(--home-pink-w) minmax(0, 1fr);
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
}

.aboutHomeNav {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-height: 0;
  min-width: 0;
}

.aboutHomeNav > .colPinkListCell {
  flex: 1 1 auto;
  min-height: 0;
}

.aboutMain {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  max-width: none;
}

.aboutMain--withNav {
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  min-height: 0;
  min-width: 0;
}

/* About: same .globalFixedNav as index; × fixed to its left (no wrapper — keeps lang pixel-aligned) */
.aboutBody .aboutCloseWrap {
  position: fixed;
  top: var(--safe-margin);
  right: calc(var(--safe-margin) + var(--about-lang-inline-width) + var(--about-close-lang-gap));
  z-index: 200;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  pointer-events: none;
}

.aboutCloseWrap .detailClose,
.aboutCloseWrap .detailCloseHint {
  pointer-events: auto;
}

.aboutSplit {
  --about-kicker-font: 12px;
  --about-kicker-gap: 14px;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(240px, 32vw);
  grid-template-rows: auto auto auto;
  align-items: start;
  justify-items: stretch;
  column-gap: clamp(32px, 4.5vw, 72px);
  row-gap: var(--about-kicker-gap);
  min-height: 0;
  max-width: none;
  width: 100%;
  margin: 0;
  box-sizing: border-box;
  /* Top aligns with catalogue “All Works” band (.colPinkTop uses same token) */
  padding: var(--home-nav-below-strip) clamp(24px, 4vw, 56px) clamp(48px, 6vw, 80px)
    clamp(12px, 2vw, 28px);
}

.aboutSplit__kicker {
  grid-column: 1;
  grid-row: 1;
}

.aboutSplit__leftBlock {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
}

.aboutSplit__prose {
  min-width: 0;
}

.aboutSplit__figure {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
}

/* Full-bleed strip: left edge with type column, right edge with portrait column */
.aboutSplit__wide618 {
  grid-column: 1 / -1;
  grid-row: 3;
  width: 100%;
  min-width: 0;
  margin-top: clamp(28px, 5vw, 56px);
  box-sizing: border-box;
}

.aboutSplit__wide618Img {
  display: block;
  width: 100%;
  height: min(100vh, max(520px, 88vh));
  object-fit: cover;
  object-position: center;
}

.aboutKicker {
  margin: 0;
  padding: 0;
  font-family: "EB Garamond", "Times New Roman", Times, serif;
  font-size: var(--about-kicker-font);
  font-weight: 400;
  font-style: italic;
  line-height: 1.35;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #111;
}

.aboutProse.body-text {
  max-width: none;
  width: 100%;
  font-size: clamp(14px, 1.15vw + 12px, 17px);
  line-height: 1.72;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.aboutProse.body-text p {
  margin: 0 0 1.25em;
}

.aboutProse.body-text p:last-child {
  margin-bottom: 0;
}

.aboutBioFooter {
  margin-top: clamp(2rem, 4.5vw, 3.25rem);
  padding-top: clamp(1.25rem, 3vw, 2rem);
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  text-align: left;
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: clamp(12px, 0.9vw + 10px, 14px);
  line-height: 1.75;
  color: #555;
}

.aboutBioFooter__item {
  margin: 0 0 0.85em;
}

.aboutBioFooter__item:last-child {
  margin-bottom: 0;
}

.aboutBioFooter__vita {
  margin: 0 0 1em;
}

.aboutBioFooter__vitaLabel {
  margin: 0 0 0.35em;
  font-weight: 400;
}

.aboutBioFooter__vitaLine {
  margin: 0;
  line-height: inherit;
}

.aboutBioFooter__link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.aboutBioFooter__link:hover {
  opacity: 0.5;
}

.aboutFigure {
  margin: 0;
  padding: 0;
  background: #fff;
  position: relative;
  align-self: start;
  width: 100%;
  height: min(72vh, calc(100vh - 200px));
  max-height: min(72vh, calc(100vh - 200px));
  border: 1px solid #111;
  box-sizing: border-box;
  overflow: hidden;
}

.aboutPhotoImg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 22%;
}

@media (max-width: 900px) {
  .aboutHomeBody {
    grid-template-columns: 1fr;
  }

  .aboutHomeNav .colPinkTop {
    padding-top: clamp(12px, 3vw, 24px);
  }

  .aboutSplit {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto;
    min-height: 0;
    column-gap: 0;
    row-gap: var(--about-kicker-gap);
    align-items: start;
    max-width: none;
    padding: clamp(12px, 3vw, 24px) var(--safe-margin) calc(var(--safe-margin-bottom) + 16px);
  }

  .aboutSplit__kicker {
    grid-column: 1;
    grid-row: 1;
  }

  .aboutSplit__figure {
    grid-column: 1;
    grid-row: 2;
    justify-self: center;
  }

  .aboutSplit__leftBlock {
    grid-column: 1;
    grid-row: 3;
  }

  .aboutSplit__wide618 {
    grid-column: 1;
    grid-row: 4;
    margin-top: clamp(20px, 4vw, 40px);
  }

  .aboutFigure {
    height: min(48vh, 440px);
    max-height: min(48vh, 440px);
    width: 100%;
    max-width: min(380px, 100%);
    margin-left: auto;
    margin-right: auto;
  }

  .aboutPhotoImg {
    object-position: 50% 25%;
  }

  .aboutKicker {
    text-align: left;
  }
}

@media (max-width: 640px) {
  body.aboutBody .aboutSplit {
    padding-top: max(0px, calc(clamp(12px, 3vw, 24px) - 20px));
  }

  .aboutFigure {
    height: min(42vh, 400px);
    max-height: min(42vh, 400px);
  }

  .aboutSplit__wide618Img {
    height: min(85vh, 560px);
  }

  .aboutProse.body-text {
    font-size: 14px;
    letter-spacing: 0.045em;
  }
}

/* ——— Splash gate (once per tab session) ——— */
html.site-entered .splashGate {
  display: none !important;
}

.splashGate {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  transition: opacity 0.55s ease, visibility 0.55s ease;
  /* Parallax: nur am Fensterrand abschneiden, keine inneren Clip-Rechtecke */
  overflow: hidden;
}

/* Zwischen Betrachter und Zentralschicht — auto so hits reach floats (none broke drag in some cases) */
.splashGate__parallaxField {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: auto;
}

.splashGate__float {
  position: absolute;
  margin: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  will-change: transform;
  transform-origin: center center;
  animation: splashFloatIn 0.42s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  animation-delay: calc(0.02s + var(--float-i) * 0.06s);
  /* Draggable peripherals (field is pointer-events: none; floats opt in) */
  pointer-events: auto;
  touch-action: none;
  cursor: grab;
  user-select: none;
  -webkit-user-drag: none;
}

.splashGate__float-inner {
  display: block;
  width: max-content;
  max-width: none;
  overflow: visible;
  position: relative;
}

.splashGate__float img {
  display: block;
  opacity: 1;
  filter: none;
  max-width: none;
  height: auto;
  vertical-align: middle;
  pointer-events: none;
  -webkit-user-drag: none;
}

@keyframes splashFloatIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .splashGate__float {
    animation: splashFloatIn 0.22s ease forwards;
    animation-delay: calc(0.02s + var(--float-i) * 0.04s);
  }
}

.splashGate--leaving {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.splashGate__stage--hero {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  max-width: 100%;
}

.splashGate__img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(2200px, calc(100vw - 48px));
  max-height: min(1400px, calc(100vh - 200px));
  object-fit: contain;
}

.splashGate__enterOverlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.splashGate__enterOverlay .splashGate__enterWrap,
.splashGate__enterOverlay .splashGate__enter {
  pointer-events: auto;
}

/* Logical 220×60 control, scaled to ¼ via transform for crisp type */
.splashGate__enterWrap {
  display: flex;
  align-items: center;
  justify-content: center;
  transform: scale(0.25);
  transform-origin: center center;
}

.splashGate__enter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 220px;
  height: 60px;
  margin: 0;
  padding: 0 10px;
  border: none;
  border-radius: 9999px;
  background: #ee0000;
  color: #ffffff;
  font-family: "EB Garamond", "Times New Roman", Times, serif;
  /* ~max cap height for 60px pill: tight line-height + large optical size */
  font-size: 44px;
  font-weight: 600;
  line-height: 0.85;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-sizing: border-box;
  transition: opacity 0.2s ease;
}

.splashGate__enterWrap:has(.splashGate__enter:hover):not(:has(.splashGate__enter:disabled)) {
  animation: splash-enter-shake 0.28s ease-in-out infinite;
}

@keyframes splash-enter-shake {
  0%,
  100% {
    transform: scale(0.25) rotate(0deg);
  }
  12% {
    transform: scale(0.25) translate(13px, -10px) rotate(-3.5deg);
  }
  28% {
    transform: scale(0.25) translate(-14px, 11px) rotate(3.25deg);
  }
  44% {
    transform: scale(0.25) translate(12px, 12px) rotate(-3deg);
  }
  60% {
    transform: scale(0.25) translate(-13px, -11px) rotate(3.5deg);
  }
  76% {
    transform: scale(0.25) translate(10px, 8px) rotate(-2.5deg);
  }
}

.splashGate__enter:hover {
  opacity: 0.95;
}

.splashGate__enter:disabled {
  opacity: 0.5;
  cursor: wait;
}

.splashGate__enterWrap:has(.splashGate__enter:disabled) {
  animation: none;
}

.entry-reveal-pending {
  opacity: 0;
  transform: translateY(10px);
  filter: blur(6px);
  transition: none;
}

.entry-reveal-done {
  opacity: 1;
  transform: none;
  filter: none;
  transition:
    opacity 0.42s ease,
    transform 0.48s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.38s ease;
}

/* ——— Homepage Drei-Spalten ——— */
.homeShell {
  --home-text-primary: #111111;
  --home-text-secondary: #555555;
  --home-pink-w: 180px;
  --home-green-w: 200px;
  --home-strip-h: 52px;
  --home-collection-heading-line: calc(15px * 1.35);
  --home-section-label-line: calc(9px * 1.35);
  --home-collection-stack-gap: 50px;
  /* Grüne Spalte: „COLLECTION“ auf einer Zeile mit „Current“ (All-Works-Zeile + gleicher Abstand wie Phase-Liste) */
  --home-green-align-current: calc(
    var(--home-collection-heading-line) + var(--home-collection-stack-gap) + 16px
  );

  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
  background: #ffffff;
  color: var(--home-text-primary);
  transition: opacity 0.3s ease;
}

.homeTopStrip {
  display: flex;
  flex-direction: row;
  flex: 0 0 var(--home-strip-h);
  height: var(--home-strip-h);
  min-height: var(--home-strip-h);
  align-items: stretch;
}

.homeBodyRow {
  display: grid;
  grid-template-columns: var(--home-pink-w) 0 minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  column-gap: 0;
  row-gap: 0;
  background: #ffffff;
  transition: grid-template-columns 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.homeShell.has-selection .homeBodyRow {
  grid-template-columns: var(--home-pink-w) var(--home-green-w) minmax(0, 1fr);
}

.homeShell .homeTopStrip > * {
  box-shadow: none !important;
  outline: none;
}

.homeShell .homeBodyRow > * {
  border: 0 !important;
  box-shadow: none !important;
  outline: none;
}

.homeShell .homeBodyRow > main {
  background: #ffffff;
}

.homePairRow {
  display: grid;
  grid-column: 1 / 3;
  min-width: 0;
  grid-template-columns: var(--home-pink-w) 0;
}

.homeShell.has-selection .homePairRow {
  grid-template-columns: var(--home-pink-w) var(--home-green-w);
}

@supports (grid-template-columns: subgrid) {
  .homePairRow,
  .homeShell.has-selection .homePairRow {
    grid-template-columns: subgrid;
  }
}

/* Pink top + pink list + green column share one grid: “COLLECTION” aligns with “Current” (row 1). */
.homePairRow--catalogMain {
  grid-row: 1;
  align-items: stretch;
  grid-template-rows: auto minmax(0, 1fr);
}

.homePairRow--catalogMain .colPinkTop {
  grid-column: 1;
  grid-row: 1;
}

.homePairRow--catalogMain .colPinkListCell {
  grid-column: 1;
  grid-row: 2;
  align-self: stretch;
}

.homePairRow--catalogMain .colGreen {
  grid-column: 2;
  grid-row: 1 / -1;
  align-self: stretch;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.homePairRow--bottom {
  grid-row: 2;
  align-items: stretch;
  min-height: 0;
}

.colPinkTop,
.colPinkListCell,
.colPinkFootCell,
.colGreenBottomSpacer {
  background: #ffffff;
  min-width: 0;
}

.colPinkTop {
  padding: var(--home-nav-below-strip) 42px 0 0;
}

.colPinkListCell {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-height: 0;
  padding: 0 42px 0 0;
}

/* Phase-Bereich unten: nur Biography-Link (Current / 2024 sitzen in .colPinkTop) */
.pinkPhaseNav {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
}

.colPinkListCell .collectionList {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.colPinkListCell .collectionList .pinkBioNavLink {
  margin-top: 80px;
  margin-bottom: 56px;
  position: relative;
  z-index: 1;
  display: block;
}

.colPinkFootCell {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 0;
  padding: 0 42px 0 0;
}

.colGreenBottomSpacer {
  min-height: 0;
}

.topStripPink {
  flex: 0 0 var(--home-pink-w);
  width: var(--home-pink-w);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 0 14px 0 0;
}

.homeLogoMark {
  display: block;
  margin: 0;
  line-height: 0;
  text-decoration: none;
}

/* Mobile-only duplicate logo in .colPinkTop — must beat .homeLogoMark { display: block } */
.homeLogoMark.homeLogoMark--mobileNavRow {
  display: none;
}

/* Wrapper: invisible on desktop so All Works + phases stack like before */
.colPinkTopNavRow {
  display: contents;
}

.homeLogoImg {
  display: block;
  height: 47px;
  width: auto;
  max-width: min(202px, 100%);
  object-fit: contain;
}

.homeLogoMark:hover {
  opacity: 0.5;
}

.homeTopStrip .greenslot {
  flex: 0 0 0;
  width: 0;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
  transition: flex-basis 0.45s cubic-bezier(0.4, 0, 0.2, 1), width 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.homeShell.has-selection .homeTopStrip .greenslot {
  flex: 0 0 var(--home-green-w);
  width: var(--home-green-w);
}

.homeBodyRow .greenslot.colGreen {
  min-width: 0;
  overflow: hidden;
  background: #ffffff;
}

.topStripBlue {
  flex: 1 1 auto;
  min-width: 0;
}


.collection-all-wrap {
  flex: 0 0 auto;
}

.section-label {
  font-family: "Courier New", Courier, monospace;
  font-size: 9px;
  line-height: 1.35;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #888;
  margin: 0;
}

.colPinkTop .collectionList--phaseTop {
  margin: calc(var(--home-collection-stack-gap) + 16px) 0 0;
  gap: 10px;
}

.collectionList {
  display: flex;
  flex-direction: column;
  gap: 26px;
  margin: 0;
  padding: 0;
}

.collectionItem {
  cursor: pointer;
  user-select: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  text-align: left;
}

.collectionItem.heading {
  font-family: "Monument Grotesk", "Helvetica Neue", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: #111;
}

/* Pink column: same face for All Works, phases, Biography (buttons + link) */
.homeShell .colPinkTop .collection-all-wrap > .collectionItem.heading,
.homeShell .colPinkTop .collectionList--phaseTop > .collectionItem.heading,
.homeShell .colPinkListCell .collectionList > .collectionItem.heading {
  font-family: "Monument Grotesk", "Helvetica Neue", sans-serif;
  font-size: 15px;
  font-weight: 400;
  font-style: normal;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: #111;
}

.collectionItem:hover {
  opacity: 0.5;
}

.collectionItem.is-active {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.collection-more-wrap {
  position: relative;
  display: block;
}

.collection-more-btn {
  font-family: "Courier New", Courier, monospace;
  font-size: 15px;
  font-weight: 400;
  color: #888;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  line-height: 1.35;
  letter-spacing: 0.05em;
  text-align: left;
}

.collection-more-btn:hover {
  color: #111;
}

.collection-overflow-list {
  position: absolute;
  left: 0;
  top: 100%;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  padding: 8px 0;
  z-index: 200;
  min-width: 160px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.collection-btn--overflow {
  display: block;
  width: 100%;
  text-align: left;
  padding: 6px 16px;
  font-family: "Courier New", Courier, monospace;
  font-size: 12px;
  color: #111;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
}

a.collection-btn--overflow {
  color: #111;
}

.collection-btn--overflow:hover {
  background: #f5f5f5;
}

.pinkFooter {
  margin-top: 0;
  padding-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.pinkFooterLink {
  text-decoration: none;
}

.pinkFooterLink:hover {
  opacity: 0.5;
}

.newsletter-wrap {
  margin-top: 16px;
}

.newsletter-wrap--kit {
  background: transparent;
  padding: 0;
  margin-top: 16px;
  max-width: 100%;
}

/* Kit: schmale Spalte, Rest siehe inline <style> am Formular */
.newsletter-wrap--kit .formkit-form[data-uid="37b9f7fa34"] {
  max-width: 100% !important;
  margin: 0 !important;
}

.newsletter-heading {
  margin: 0 0 8px;
}

/* Writings-Drawer: kein Footer-Kasten (Button / Instagram / Newsletter) über dem Drawer */
html.writings-lightbox-open .pinkFooter {
  display: none !important;
}

.colGreenInner {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  flex: 1;
  min-height: 0;
  padding: 0 28px 24px 42px;
  opacity: 0;
  transition: opacity 0.15s ease;
  transition-delay: 0s;
}

.homeShell.has-selection .colGreenInner {
  opacity: 1;
  transition-duration: 0.3s;
  transition-delay: 0.22s;
  padding: calc(var(--home-nav-below-strip) + var(--home-green-align-current)) 28px 24px 42px;
  box-sizing: border-box;
}

.collectionKicker {
  margin: 0 0 8px;
  line-height: 1.35;
  letter-spacing: 0.06em;
}

.collectionTitle {
  margin: 0;
  min-height: calc(15px * 1.35 * 2);
  display: flex;
  align-items: flex-start;
}

.collectionDesc {
  margin: 0;
  margin-top: 22px;
  font-style: italic;
  max-width: 192px;
}

.colBlue {
  grid-column: 3;
  grid-row: 1 / -1;
  min-width: max(280px, calc(70vw - var(--home-pink-w) - 2 * var(--safe-margin)));
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  background: #ffffff;
}

.homeShell.has-selection .colBlue {
  min-width: max(280px, calc(70vw - var(--home-pink-w) - var(--home-green-w) - 2 * var(--safe-margin)));
}

.blueInner {
  padding: 72px 72px 72px 86px;
}

.blueRows.art-grid {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}

.artwork-unit {
  position: absolute;
  top: 0;
  left: 0;
  box-sizing: border-box;
  overflow: visible;
  cursor: pointer;
  opacity: 0;
  transform: translateY(0);
  transition: opacity var(--artwork-fade-ms) ease-in-out;
  text-align: left;
}

.artwork-unit.is-visible {
  opacity: 1;
}

.artwork-unit.is-leaving {
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--artwork-fade-ms) ease-in-out;
}

.artwork-unit .artwork-img,
.artwork-unit img.artwork-img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: center top;
  pointer-events: none;
}

.art-title {
  margin: 12px 0 0;
  padding: 0;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.35;
  overflow-wrap: break-word;
  max-width: 100%;
}

.art-year {
  margin: 3px 0 0;
  padding: 0;
  font-family: "Courier New", Courier, monospace;
  font-size: 10px;
  font-weight: 400;
  color: #888888;
  line-height: 1.35;
}

.writingsOpenBtn {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  max-width: 100%;
  margin: -20px 0 14px;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  font-family: "Courier New", Courier, monospace;
  font-size: 11px;
  line-height: 1.85;
  color: #555;
  text-align: left;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  user-select: none;
  -webkit-user-select: none;
}

.writingsOpenBtn * {
  user-select: none;
  -webkit-user-select: none;
}

.writingsOpenBtn:hover {
  opacity: 0.5;
}

.writingsOpenBtn:focus {
  outline: none;
}

.writingsOpenBtn:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.writingsOpenBtn__label {
  display: inline-block;
  min-width: 0;
}

.writingsOpenBtn__typetrack {
  display: inline-flex;
  align-items: baseline;
  min-height: calc(11px * 1.85);
}

.writingsOpenBtn__typechars {
  display: inline;
}

.writingsOpenBtn__caret {
  display: inline-block;
  width: 2px;
  height: 0.82em;
  margin-left: 2px;
  background: currentColor;
  opacity: 1;
  vertical-align: -0.14em;
  flex-shrink: 0;
  border-radius: 0.5px;
}

.writingsOpenBtn__caret--blink {
  animation: writingsCaretBlink 1.05s step-end infinite;
}

.writingsOpenBtn__caret--off {
  opacity: 0;
}

@keyframes writingsCaretBlink {
  0%,
  45% {
    opacity: 1;
  }
  50%,
  95% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.writingsOpenBtn__glyph {
  display: inline-block;
  opacity: 0;
  transform: translate(var(--tw-dx, 0), var(--tw-dy, 0));
  transition:
    opacity 0.1s ease-out,
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}

.writingsOpenBtn__glyph--in {
  opacity: 1;
  transform: translate(0, 0);
}

@media (prefers-reduced-motion: reduce) {
  .writingsOpenBtn__caret--blink {
    animation: none;
  }

  .writingsOpenBtn__glyph {
    transition: none;
    opacity: 1;
    transform: none;
  }
}

.writingsOpenBtn[hidden] {
  display: none;
}

/* Recent writings — Breite wie Pink + Grün (bis knapp rechts neben Kollektionstitel), unter Logo-Streifen */
.writingsLightbox {
  --wlb-strip-h: 52px;
  --wlb-pink-w: 180px;
  --wlb-green-w: 200px;
  position: fixed;
  left: var(--safe-margin);
  right: 0;
  top: calc(var(--safe-margin) + var(--wlb-strip-h));
  bottom: 0;
  z-index: 55;
  background: rgba(0, 0, 0, 0.04);
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.32s ease, visibility 0.32s ease;
}

.writingsLightbox.is-open {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}

.writingsLightboxInner {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: min(
    calc(var(--wlb-pink-w) + var(--wlb-green-w) + clamp(16px, 2.5vw, 32px)),
    calc(100vw - var(--safe-margin) - 24px)
  );
  max-width: calc(100vw - var(--safe-margin) - 24px);
  box-sizing: border-box;
  background: #f5f5f5;
  border-right: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 10px 0 36px rgba(0, 0, 0, 0.07);
  transform: translateX(-100%);
  transition: transform 0.46s cubic-bezier(0.32, 0.72, 0, 1);
  will-change: transform;
  pointer-events: none;
}

.writingsLightbox.is-open .writingsLightboxInner {
  transform: translateX(0);
  pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
  .writingsLightboxInner {
    transition-duration: 0.01ms;
  }

  .writingsLightbox {
    transition-duration: 0.01ms;
  }
}

.writingsLightbox .writingsLightboxCloseWrap {
  position: absolute;
  top: 10px;
  right: 8px;
  left: auto;
  z-index: 2;
  pointer-events: none;
}

.writingsLightbox .writingsLightboxCloseWrap .detailClose,
.writingsLightbox .writingsLightboxCloseWrap .detailCloseHint {
  pointer-events: auto;
}

.writingsLightbox .writingsLightboxCloseWrap .detailClose {
  font-size: 20px;
  padding: 2px 4px;
}

/* Second dismiss control after scrolling the list (esp. mobile). */
.writingsLightboxBottomCloseWrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  pointer-events: auto;
}

.writingsLightboxBottomClose {
  font-size: 22px;
  padding: 4px 8px;
  line-height: 1;
}

.writingsLightboxBottomCloseHint {
  font-family: "Courier New", Courier, monospace;
  font-size: 9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.45;
}

.writingsLightboxScroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 48px 22px 36px 18px;
  width: 100%;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}

.writingsLightboxLabel {
  margin: 0 0 18px;
  padding-right: 36px;
  font-size: 10px;
  letter-spacing: 0.1em;
}

.writingsLightbox .homeWritingsGrid {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.writingsLightbox .writing-card {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  gap: 0;
}

/* Schmale Spalte: Bild über Text */
.writingsLightbox .writing-card:has(.writing-imgViewport) {
  grid-template-columns: 1fr;
}

/* Newsletter-Screenshot: oben ausrichten (Footer/Unsubscribe weg), leicht zoomen (Seitenränder weg) */
.writingsLightbox .writing-imgViewport {
  overflow: hidden;
  width: 100%;
  max-width: min(220px, 100%);
  aspect-ratio: 4 / 2.25;
  margin-bottom: 14px;
  background: #f0ede8;
}

.writingsLightbox .writing-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transform: scale(1.12);
  transform-origin: top center;
}

.writingsLightbox .writing-body {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}

.writingsLightbox .writing-date {
  font-family: "Courier New", monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #888;
  margin: 0 0 8px;
}

.writingsLightbox .writing-title {
  font-family: "Monument Grotesk", "Helvetica Neue", sans-serif;
  font-size: 17px;
  font-weight: 400;
  color: #111;
  line-height: 1.45;
  margin: 0 0 12px;
}

.writingsLightbox .writing-preview {
  font-family: "Courier New", monospace;
  font-size: 12px;
  line-height: 1.8;
  color: #555;
  margin: 0 0 14px;
}

.writingsLightbox .writing-link {
  font-family: "Courier New", monospace;
  font-size: 10px;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: #111;
  text-decoration: none;
  border-bottom: 1px solid #111;
  padding-bottom: 1px;
  align-self: flex-start;
}

.writingsLightbox .writing-link:hover {
  opacity: 0.5;
}

.writingsLightbox button.writing-read-btn {
  font-family: "Courier New", monospace;
  font-size: 10px;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: #111;
  text-decoration: none;
  border: none;
  border-bottom: 1px solid #111;
  padding: 0 0 1px;
  background: transparent;
  cursor: pointer;
  text-align: left;
  align-self: flex-start;
}

.writingsLightbox button.writing-read-btn:hover:not(:disabled) {
  opacity: 0.5;
}

.writingsLightbox button.writing-read-btn:disabled {
  opacity: 0.35;
  cursor: default;
}

/* Kit-Artikel — zentriert, ckarchive im iframe (Original-Layout) */
.articleLightbox {
  position: fixed;
  inset: 0;
  z-index: 88;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.35s ease,
    visibility 0.35s ease;
}

.articleLightbox.is-open {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}

.articleLightboxBackdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(2px);
}

.articleLightboxPanel {
  --article-iframe-crop-top: 84px;
  --article-iframe-fade-height: 128px;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(720px, calc(100vw - 32px));
  max-height: min(88vh, calc(100vh - 48px));
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.16);
  overflow: hidden;
}

.articleLightboxChrome {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px 12px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.articleLightboxTitle {
  margin: 0;
  font-size: 14px;
  line-height: 1.35;
  padding-right: 8px;
  flex: 1 1 auto;
  min-width: 0;
}

.articleLightbox .articleLightboxCloseWrap {
  position: relative;
  top: auto;
  right: auto;
  flex: 0 0 auto;
  pointer-events: none;
}

.articleLightbox .articleLightboxCloseWrap .detailClose,
.articleLightbox .articleLightboxCloseWrap .detailCloseHint {
  pointer-events: auto;
}

.articleLightboxFrameWrap {
  flex: 1 1 auto;
  position: relative;
  width: 100%;
  height: min(56vh, 520px);
  min-height: min(280px, 38vh);
  background: #fafafa;
}

.articleLightboxFrameShell {
  position: relative;
  width: 100%;
  height: 100%;
}

.articleLightboxIframeCrop {
  overflow: hidden;
  width: 100%;
  height: 100%;
}

.articleLightboxIframe {
  display: block;
  width: 100%;
  height: calc(100% + var(--article-iframe-crop-top));
  margin-top: calc(-1 * var(--article-iframe-crop-top));
  border: 0;
  background: #fff;
}

.articleLightboxIframeFade {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--article-iframe-fade-height);
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.88) 52%, #ffffff 100%);
}

.articleLightboxEndCTA {
  flex: 0 0 auto;
  padding: 14px 18px 18px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  background: #ffffff;
}

.articleLightboxEndCtaTop {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.articleLightboxEndCtaCopy {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-family: "Courier New", Courier, monospace;
  font-size: 9px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #111;
}

.articleLightbox .articleLightboxEndCloseWrap {
  position: relative;
  top: auto;
  right: auto;
  flex: 0 0 auto;
  pointer-events: none;
}

.articleLightbox .articleLightboxEndCloseWrap .detailClose,
.articleLightbox .articleLightboxEndCloseWrap .detailCloseHint {
  pointer-events: auto;
}

.articleLightboxEndCTA .newsletter-heading {
  margin: 0 0 8px;
}

.articleLightboxEndCTA .newsletter-wrap--kit {
  margin-top: 0;
  max-width: 100%;
}

/* Nur Logo-Leiste bleibt klar; Rest der Seite zurückgenommen */
html.article-lightbox-open .globalFixedNav,
html.article-lightbox-open .homeShell > .homeBodyRow,
html.article-lightbox-open .writingsLightbox,
html.article-lightbox-open .portfolio-fab-wrap,
html.article-lightbox-open .pinkFooter,
html.article-lightbox-open .detailPage.is-open {
  opacity: 0.12;
  pointer-events: none;
  transition: opacity 0.35s ease;
}

html.article-lightbox-open .homeTopStrip {
  opacity: 1;
  pointer-events: auto;
  position: relative;
  z-index: 92;
}

@media (prefers-reduced-motion: reduce) {
  .articleLightbox {
    transition-duration: 0.01ms;
  }

  html.article-lightbox-open .globalFixedNav,
  html.article-lightbox-open .homeShell > .homeBodyRow,
  html.article-lightbox-open .writingsLightbox,
  html.article-lightbox-open .portfolio-fab-wrap,
  html.article-lightbox-open .pinkFooter,
  html.article-lightbox-open .detailPage.is-open {
    transition-duration: 0.01ms;
  }
}

body.homeBody {
  padding: var(--safe-margin) var(--safe-margin) var(--safe-margin-bottom);
  box-sizing: border-box;
  overflow: hidden;
  height: 100vh;
  max-height: 100vh;
}

.homeBody {
  overflow: hidden;
  height: 100%;
}

html.detail-open,
html.detail-open body.homeBody,
html.writings-lightbox-open,
html.writings-lightbox-open body.homeBody,
html.article-lightbox-open,
html.article-lightbox-open body.homeBody {
  overflow: hidden;
  height: 100vh;
  max-height: 100vh;
}

/* Detail Vollseite — overlay only; site + logo stay visible above */
.detailPage {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: transparent;
  overflow: visible;
  opacity: 1;
  visibility: visible;
  pointer-events: none;
}

.detailPage.is-open {
  /* Backdrop fängt Klicks außerhalb der grauen Fläche (z. B. oben); Innenfläche bleibt .detailPageInner */
  pointer-events: auto;
}

.detailPageInner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: var(--detail-panel-top);
  display: flex;
  flex-direction: row;
  min-height: 0;
  width: auto;
  height: auto;
  background: #f5f5f5;
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.08);
  transform: translateY(100%);
  transition: transform 0.48s cubic-bezier(0.32, 0.72, 0, 1);
  will-change: transform;
  z-index: 51;
  pointer-events: none;
}

.detailPage.is-open .detailPageInner {
  transform: translateY(0);
  pointer-events: auto;
}

.detailPageLeft {
  flex: 0 0 55%;
  width: 55%;
  min-width: 0;
  height: 100%;
  min-height: 0;
  background: #f5f5f5;
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.detailImgViewport {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.detailImgCarousel {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.detailPageLeft .detailImg {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  transform-origin: center center;
  will-change: transform;
  user-select: none;
  -webkit-user-drag: none;
  transition: opacity 0.15s ease;
}

.detailImgNav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(0, 0, 0, 0.1);
  font-size: 20px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  border-radius: 0;
  font-family: "Courier New", monospace;
  color: #111;
  transition: opacity 0.2s;
}

.detailImgNav:hover {
  opacity: 0.7;
}

.detailImgNav--prev {
  left: 8px;
}

.detailImgNav--next {
  right: 8px;
}

.detailImgNav[hidden] {
  display: none !important;
}

.detailImgDots {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  z-index: 10;
  pointer-events: auto;
}

.detailImgDot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.25);
  cursor: pointer;
  transition: background 0.2s;
}

.detailImgDot.active {
  background: #111;
}

.detailImgViewport.is-zoomable .detailImg {
  cursor: zoom-in;
}

.detailImgViewport.is-zoomed .detailImg {
  cursor: move;
}

.detailImgCaption {
  position: absolute;
  bottom: 16px;
  left: 16px;
  right: 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  pointer-events: none;
  z-index: 55;
}

.detailImgCaptionTitle {
  font-family: var(--display);
  font-size: 13px;
  font-weight: 400;
  color: #111;
  line-height: 1.25;
}

.detailImgCaptionYear,
.detailImgCaptionDims {
  font-family: var(--body);
  font-size: 10px;
  color: #888;
  line-height: 1.3;
}

.detailZoomBar {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 3px 7px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 999px;
  font-family: var(--body);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease 0.12s;
}

/* Gezoomt: Leiste bleibt sichtbar (Teil der Bedienung), bis wieder 1× */
.detailImgViewport.is-zoomed .detailZoomBar {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.2s ease 0s;
}

/*
 * 1×: Leiste nur bei Hover über das Werk (oder Fokus) — Hinweis, dass Zoom möglich ist.
 */
.detailImgViewport.is-zoomable:not(.is-zoomed):has(
    .detailImg:hover,
    .detailZoomBar:hover,
    .detailZoomBar:focus-within
  )
  .detailZoomBar {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.18s ease 0s;
}

.detailZoomBtn {
  width: 20px;
  height: 20px;
  padding: 0;
  border-radius: 50%;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.15s ease, background 0.15s ease;
}

.detailZoomBtn--out {
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #f3f3f3;
  color: #666666;
}

.detailZoomBtn--in {
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: #4a4a4a;
  color: #fafafa;
}

.detailZoomBtn:hover:not(:disabled) {
  opacity: 0.88;
}

.detailZoomBtn:disabled {
  opacity: 0.35;
  cursor: default;
}

.detailZoomHint {
  font-size: 5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #b0b0b0;
}

.detailPageRight {
  flex: 0 0 45%;
  width: 45%;
  min-width: 0;
  height: 100%;
  min-height: 0;
  position: relative;
  padding: 48px 40px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  background: #f5f5f5;
}

.detailCloseWrap {
  position: absolute;
  top: 20px;
  right: 28px;
  left: auto;
  z-index: 130;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  pointer-events: none;
}

.detailCloseWrap .detailClose,
.detailCloseWrap .detailCloseHint {
  pointer-events: auto;
}

.detailClose {
  position: static;
  padding: 4px 8px;
  margin: 0;
  border: none;
  background: transparent;
  font-family: var(--body);
  font-size: 24px;
  line-height: 1;
  font-weight: 400;
  color: #111111;
  cursor: pointer;
}

.detailClose:hover {
  opacity: 0.5;
}

.detailCloseHint {
  font-size: 8px;
  color: #aaa;
  letter-spacing: 0.06em;
  font-family: var(--body);
  text-transform: uppercase;
}

.detailRightScroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-top: 12px;
  -webkit-overflow-scrolling: touch;
}

.detailPagerBar {
  display: none !important;
}

.detailArtistLabel {
  margin: 0 0 6px;
}

.detailWorkTitle {
  margin: 0 0 4px;
  font-family: "Monument Grotesk", "Helvetica Neue", sans-serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.25;
  color: #111;
}

.detailYear,
.detailMedium,
.detailDims {
  margin: 0;
  font-family: var(--body);
  font-size: 10px;
  color: #555555;
  line-height: 1.4;
}

.detailMedium {
  margin-top: 12px;
}

.detailPrice {
  margin: 16px 0 0;
  font-family: var(--body);
  font-size: 11px;
  color: #111111;
}

.detailRule {
  height: 0;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  margin: 28px 0;
}

.detailWerkBlock .detailWerkLabel {
  margin: 0 0 10px;
}

.detailWerkText {
  margin: 0;
  font-family: var(--body);
  font-size: 11px;
  line-height: 1.75;
  color: #555;
}

.detailProvenanceLabel {
  margin: 0 0 6px;
  font-family: var(--body);
  font-size: 8px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #555;
}

.detailProvenanceText {
  margin: 0;
  font-family: var(--body);
  font-size: 9px;
  line-height: 1.8;
  color: #555;
}

@media (max-width: 900px) {
  :root {
    --safe-margin: 20px;
    --safe-margin-bottom: 60px;
    --detail-panel-top: 120px;
  }

  .detailPageInner {
    flex-direction: column;
  }

  .detailPageLeft {
    flex: 0 0 auto;
    width: 100%;
    height: 42vh;
    min-height: 200px;
  }

  .detailPageRight {
    flex: 1 1 auto;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: 58vh;
  }

  /* Oben am Bild: gleiche Infos wie #detailTitle / Jahr / Maße rechts — auf Narrow nur rechts */
  .detailImgCaption {
    display: none !important;
  }

  .detailCloseWrap {
    right: 20px;
    top: 16px;
  }

  .globalFixedNav {
    top: var(--safe-margin);
    right: var(--safe-margin);
  }
}

/* -------------------------------------------------------------------------- */
/* Tablet + mobile homepage (desktop >900px unchanged). New rules below only. */
/* -------------------------------------------------------------------------- */

@media (min-width: 641px) and (max-width: 900px) {
  body.homeBody {
    overflow-y: auto;
    height: auto;
    max-height: none;
    padding: 12px;
  }

  .homeShell {
    height: auto;
    max-height: none;
    overflow: visible;
  }

  .homeBodyRow {
    display: flex;
    flex-direction: column;
    grid-template-columns: none !important;
  }

  .homePairRow,
  .homePairRow--catalogMain,
  .homePairRow--bottom {
    display: contents;
  }

  .colPinkTop,
  .colPinkListCell,
  .colPinkFootCell {
    width: 220px;
    flex-shrink: 0;
  }

  /* Masonry → flow layout so two-column artwork CSS can apply */
  .blueRows.art-grid {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px 28px;
    height: auto !important;
    min-height: 0 !important;
  }

  .homeShell .artwork-unit {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: calc(50% - 14px) !important;
    box-sizing: border-box;
  }

  .art-row {
    flex-wrap: wrap;
  }

  .artwork-unit img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain;
  }

  /* Full-bleed scrim (no strip of page visible at left). */
  .writingsLightbox {
    left: 0;
    right: 0;
    top: calc(12px + var(--wlb-strip-h, 52px));
  }

  /* Same drawer width as pre–full-bleed mobile: dimmed scrim stays visible on the right. */
  .writingsLightboxInner {
    width: min(calc(100vw - 32px), 420px);
    max-width: none;
  }

  .writingsLightboxScroll {
    padding-left: max(var(--safe-margin), env(safe-area-inset-left, 0px));
    padding-right: max(var(--safe-margin), env(safe-area-inset-right, 0px));
  }

  /* Match desktop writings chrome (narrow panel): × + ESC, not generic detail overlay offsets. */
  .writingsLightbox .writingsLightboxCloseWrap {
    top: 10px;
    right: 8px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
  }

  .writingsLightbox .writingsLightboxCloseWrap .detailClose {
    font-size: 24px;
    line-height: 1;
    padding: 4px 8px;
  }

  .writingsLightbox .writingsLightboxCloseWrap .detailCloseHint {
    font-size: 8px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #aaa;
    font-family: var(--body);
  }
}

@media (max-width: 640px) {
  /* Allow page to scroll vertically */
  body.homeBody {
    overflow-y: auto;
    overflow-x: hidden;
    height: auto;
    max-height: none;
    padding: 0;
  }

  .homeBody {
    overflow-y: auto;
    height: auto;
  }

  /* Shell stacks vertically, no fixed height */
  .homeShell {
    height: auto;
    max-height: none;
    overflow: visible;
  }

  /* Catalogue + About: logo in sticky pink row with nav (no separate strip) */
  body.homeBody .homeTopStrip {
    display: none !important;
  }

  .homeTopStrip {
    border-bottom: none;
  }

  .topStripGreen,
  .topStripBlue {
    display: none;
  }

  .topStripPink {
    width: 100%;
    display: flex;
    align-items: center;
  }

  /* Logo slightly smaller on mobile */
  .homeLogoImg {
    width: 120px;
    height: auto;
  }

  .splashGate__float img {
    max-width: 80px !important;
    max-height: 80px !important;
  }

  .splashGate__float {
    transform-origin: center center;
  }

  /* Global nav stays top-right — already fixed, just adjust spacing */
  .globalFixedNav {
    top: 14px;
    right: 20px;
    gap: 12px;
  }

  .aboutBody .aboutCloseWrap {
    top: 14px;
    right: calc(20px + var(--about-lang-inline-width) + var(--about-close-lang-gap));
  }

  /* ——— HOMEPAGE BODY ROW ——— */

  /* Switch from grid to flex column */
  .homeBodyRow {
    display: flex;
    flex-direction: column;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .homeShell.has-selection .homeBodyRow {
    grid-template-columns: none !important;
  }

  /* ——— PINK COLUMN — horizontal scrollable collection selector ——— */

  .homePairRow {
    display: contents; /* let children flow naturally */
  }

  .homePairRow--catalogMain,
  .homePairRow--bottom {
    display: contents;
  }

  /* Catalogue + About: Logo oben links — ohne Desktop-Strip ist --home-nav-below-strip hier falsch */
  body.homeBody .colPinkTop {
    order: 1;
    position: sticky;
    top: 0;
    z-index: 90;
    box-sizing: border-box;
    width: 100%;
    padding: max(10px, calc(env(safe-area-inset-top, 0px) + 6px)) var(--safe-margin) 10px;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    overflow: visible;
  }

  body.homeBody .colPinkTop .homeLogoMark.homeLogoMark--mobileNavRow {
    display: flex;
    align-items: center;
    align-self: flex-start;
    flex: 0 0 auto;
    line-height: 0;
    margin: 0;
    padding: 0;
  }

  body.homeBody .colPinkTopNavRow {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 20px;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-top: 20px;
    padding: 4px 0 8px;
    box-sizing: border-box;
  }

  body.homeBody .colPinkTopNavRow::-webkit-scrollbar {
    display: none;
  }

  body.homeBody .colPinkTopNavRow #collectionAllWrap,
  body.homeBody .colPinkTopNavRow #aboutCollectionAllWrap {
    margin-bottom: 0;
    flex: 0 0 auto;
  }

  body.homeBody .colPinkTopNavRow .collectionList--phaseTop {
    display: flex;
    flex-direction: row;
    flex: 0 0 auto;
    gap: 20px;
    padding: 0;
    margin: 0;
    overflow: visible;
    border-bottom: none !important;
    white-space: nowrap;
  }

  #collectionAllWrap {
    margin-bottom: 0;
  }

  .colPinkTop .collectionList--phaseTop {
    gap: 12px;
  }

  .colPinkListCell {
    order: 2;
    padding: 0 20px 56px;
    width: 100%;
  }

  .pinkPhaseNav {
    min-height: 0;
    flex: 0 0 auto;
  }

  .colPinkListCell .collectionList .pinkBioNavLink {
    margin-top: 80px;
    margin-bottom: 0;
    transform: none;
  }

  /* Biography nav link: ~10px higher than phase row (80px base above) */
  body.homeBody:not(.aboutBody) .biographyLink,
  body.homeBody:not(.aboutBody) .colPinkListCell .collectionList .pinkBioNavLink[href*="about"] {
    margin-top: calc(80px - 10px);
    display: block;
  }

  /* Collection buttons: horizontal scrollable row — no divider */
  .homeShell .collectionList {
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    gap: 20px;
    padding: 8px 0 12px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-bottom: none !important;
    white-space: nowrap;
  }

  .collectionList::-webkit-scrollbar {
    display: none;
  }

  /* Each collection button in horizontal list */
  .collectionList .collection-btn,
  .collectionList button,
  .collectionList .collectionItem {
    flex-shrink: 0;
    white-space: nowrap;
    font-size: 13px;
  }

  .homeShell .colPinkTop .collection-all-wrap > .collectionItem.heading,
  .homeShell .colPinkTop .collectionList--phaseTop > .collectionItem.heading,
  .homeShell .colPinkListCell .collectionList > .collectionItem.heading {
    font-size: 15px;
  }

  /* ——— GREEN COLUMN — collection info, full width block ——— */

  .colGreen {
    order: 3;
    width: 100% !important;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.4s ease;
    padding: 0 20px;
    border-bottom: none;
  }

  /* When a collection is selected */
  .homeShell.has-selection .colGreen {
    max-height: 300px;
    padding: 16px 20px;
    border-bottom: none !important;
    margin-top: 0 !important;
  }

  .homeShell.has-selection .colGreenInner {
    padding: 0;
  }

  .colGreenBottomSpacer {
    display: none;
  }

  /* ——— PINK FOOTER ——— */

  body.homeBody:not(.aboutBody) .colPinkFootCell {
    order: 5;
    width: 100%;
    padding: 32px 20px 40px;
    border-top: none !important;
  }

  /* ——— BLUE ZONE / ARTWORK GRID ——— */

  .colBlue {
    order: 4;
    width: 100%;
    height: auto;
    overflow: visible;
    min-height: 0;
  }

  .blueInner {
    padding: 20px 16px;
  }

  /* Masonry → stacked column (inline positions overridden) */
  .blueRows.art-grid {
    display: flex;
    flex-direction: column;
    gap: 32px;
    height: auto !important;
    min-height: 0 !important;
  }

  /* Each row becomes a single column of artworks */
  .art-row {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
    margin-bottom: 0 !important;
  }

  /* Each artwork unit: full width */
  .homeShell .artwork-unit {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
  }

  .artwork-unit img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain;
  }

  /* Full-width scrim; panel width like before so the right edge shows the dimmed backdrop. */
  .writingsLightbox {
    left: 0;
    right: 0;
    top: 56px;
  }

  .writingsLightboxInner {
    width: min(calc(100vw - 32px), 420px);
    max-width: none;
    box-sizing: border-box;
  }

  .writingsLightboxScroll {
    padding-top: 44px;
    padding-bottom: 36px;
    padding-left: max(var(--safe-margin), env(safe-area-inset-left, 0px));
    padding-right: max(var(--safe-margin), env(safe-area-inset-right, 0px));
  }

  .writingsLightboxLabel {
    padding-right: 40px;
    text-align: left;
  }

  /* Same top close as desktop writings / detail: large × + ESC label. */
  .writingsLightbox .writingsLightboxCloseWrap {
    top: 10px;
    right: 8px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
  }

  .writingsLightbox .writingsLightboxCloseWrap .detailClose {
    font-size: 24px;
    line-height: 1;
    padding: 4px 8px;
  }

  .writingsLightbox .writingsLightboxCloseWrap .detailCloseHint {
    font-size: 8px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #aaa;
    font-family: var(--body);
  }

  .writingsLightboxBottomCloseWrap {
    align-items: flex-start;
  }

  .writingsLightbox .homeWritingsGrid {
    gap: 32px;
  }

  .writingsLightbox .writing-imgViewport {
    max-width: min(240px, 86vw);
  }

  .articleLightbox {
    padding: 12px;
    align-items: flex-start;
    padding-top: max(12px, env(safe-area-inset-top, 0px));
  }

  .articleLightboxPanel {
    --article-iframe-crop-top: 72px;
    --article-iframe-fade-height: 112px;
    width: calc(100vw - 24px);
    max-height: min(92vh, calc(100dvh - 24px));
  }

  .articleLightboxFrameWrap {
    height: min(48vh, 420px);
    min-height: 220px;
  }

}
