:root {
  --navy: #132238;
  --navy-soft: #1d304c;
  --gold: #c79a50;
  --sage: #768577;
  --paper: #f7f2e8;
  --ink: #262a2d;
  --muted: #75736d;
  --line: rgba(19, 34, 56, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}
button, select { font: inherit; }
button { cursor: pointer; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 18px 5vw;
  color: white;
  background: rgba(19, 34, 56, .94);
  backdrop-filter: blur(12px);
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: inherit;
  text-decoration: none;
  font-weight: 700;
}
.brand span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold);
}
.topbar nav { display: flex; gap: 10px; flex-wrap: wrap; }
.topbar button,
.nav-link {
  border: 1px solid rgba(255,255,255,.2);
  background: transparent;
  color: white;
  padding: 9px 13px;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.topbar button:hover,
.nav-link:hover {
  border-color: rgba(224,189,125,.7);
  background: rgba(224,189,125,.12);
}
.topbar button.is-active,
.nav-link.is-active {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--navy);
  box-shadow: 0 0 0 3px rgba(199,154,80,.18);
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
  gap: 7vw;
  min-height: 640px;
  align-items: center;
  padding: 76px 5vw 92px;
  background:
    radial-gradient(circle at 78% 18%, rgba(199,154,80,.28), transparent 30%),
    linear-gradient(135deg, #102033, #263d4c 58%, #6e7d70);
  color: white;
}
.eyebrow {
  margin: 0 0 16px;
  color: #e0bd7d;
  text-transform: uppercase;
  letter-spacing: 2.4px;
  font-size: 12px;
  font-weight: 700;
}
h1 {
  margin: 0;
  max-width: 720px;
  font-family: Georgia, serif;
  font-size: clamp(48px, 7vw, 96px);
  line-height: .92;
  letter-spacing: -3px;
}
.hero-copy p:not(.eyebrow) {
  color: rgba(255,255,255,.72);
  line-height: 1.7;
  max-width: 560px;
}
.hero-actions { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 34px; }
.hero-actions button, .hero-actions a {
  border: 0;
  background: var(--gold);
  color: #162238;
  padding: 14px 18px;
  text-decoration: none;
  font-weight: 700;
}
.hero-actions a { background: rgba(255,255,255,.12); color: white; }
.hero-stack {
  position: relative;
  min-height: 540px;
}
.hero-stack img {
  position: absolute;
  width: 72%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .45s ease, transform .45s ease;
  box-shadow: 0 28px 70px rgba(0,0,0,.28);
}
.hero-stack img.is-loaded {
  opacity: 1;
  transform: none;
}
#hero-a { right: 0; top: 0; z-index: 3; }
#hero-b { left: 0; top: 24%; z-index: 2; }
#hero-c { right: 10%; bottom: 0; z-index: 1; }

.overview-hero {
  min-height: 560px;
}
.overview-visual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items: end;
}
.overview-visual div {
  position: relative;
  overflow: hidden;
  height: 250px;
  min-height: 250px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.04)),
    radial-gradient(circle at 70% 25%, rgba(199,154,80,.7), transparent 28%),
    linear-gradient(150deg, #17283f, #758473);
  box-shadow: 0 28px 70px rgba(0,0,0,.24);
}
.overview-visual img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transform: scale(1.08);
  transition: opacity .45s ease, transform .7s ease;
}
.overview-visual img.is-loaded {
  opacity: 1;
  transform: scale(1.04);
}
.overview-visual div:not(:first-child) img {
  transform: scale(1.025);
}
.overview-visual div:not(:first-child) img.is-loaded {
  transform: scale(1);
}
.overview-visual figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 46px 16px 16px;
  color: white;
  background: linear-gradient(transparent, rgba(8, 17, 28, .82));
  font-size: 12px;
}
.overview-visual figcaption strong {
  display: block;
  color: #e0bd7d;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.overview-visual div:first-child {
  grid-row: span 2;
  height: 460px;
  min-height: 460px;
}
.overview-visual div:nth-child(2) {
  transform: translateY(28px);
}
.overview-visual a {
  display: block;
  width: 100%;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.album-visual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items: end;
}
.album-visual div {
  position: relative;
  overflow: hidden;
  height: 250px;
  min-height: 250px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.04)),
    radial-gradient(circle at 70% 25%, rgba(199,154,80,.7), transparent 28%),
    linear-gradient(150deg, #17283f, #758473);
  box-shadow: 0 28px 70px rgba(0,0,0,.24);
}
.album-visual div:first-child {
  grid-row: span 2;
  height: 460px;
  min-height: 460px;
}
.album-visual div:nth-child(2) {
  transform: translateY(28px);
}
.album-visual img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transform: scale(1.08);
  transition: opacity .45s ease, transform .7s ease;
}
.album-visual #hero-a,
.album-visual #hero-b,
.album-visual #hero-c {
  inset: 0;
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
  width: 100%;
  z-index: auto;
}
.album-visual img.is-loaded {
  opacity: 1;
  transform: scale(1.04);
}
.album-visual div:not(:first-child) img {
  transform: scale(1.025);
}
.album-visual div:not(:first-child) img.is-loaded {
  transform: scale(1);
}
.overview-intro {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  margin: -46px 5vw 0;
  position: relative;
  z-index: 3;
  background: var(--line);
  box-shadow: 0 18px 60px rgba(31, 42, 45, .12);
}
.overview-intro article {
  background: white;
  padding: 28px;
}
.overview-intro span {
  display: block;
  font-family: Georgia, serif;
  font-size: 42px;
  color: var(--navy);
}
.overview-intro small {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 1.4px;
  font-size: 11px;
}
.gallery-overview-section {
  padding: 76px 5vw 96px;
}
.section-heading {
  max-width: 720px;
  margin-bottom: 34px;
}
.section-heading h2 {
  margin: 0;
  color: var(--navy);
  font-family: Georgia, serif;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1;
}
.section-heading p:not(.eyebrow) {
  color: var(--muted);
  line-height: 1.7;
}
.gallery-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}
.gallery-tile {
  display: grid;
  min-height: 460px;
  color: white;
  background: var(--navy);
  text-decoration: none;
  overflow: hidden;
  box-shadow: 0 24px 70px rgba(31, 42, 45, .16);
}
.gallery-tile img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.gallery-tile div {
  padding: 26px;
}
.gallery-tile small {
  color: #e0bd7d;
  text-transform: uppercase;
  letter-spacing: 1.3px;
  font-size: 11px;
}
.gallery-status {
  display: inline-block;
  margin-bottom: 14px;
  padding: 6px 9px;
  border: 1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.72);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.gallery-status[data-status="review"] {
  border-color: var(--gold);
  color: #e0bd7d;
}
.gallery-status[data-status="public"] {
  border-color: #b8d7ba;
  color: #d8f0d9;
}
.gallery-access {
  display: inline-block;
  width: fit-content;
  margin: 0 0 14px 7px;
  padding: 6px 9px;
  border: 1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.65);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.gallery-access[data-access="private"],
.gallery-access[data-access="link"],
.gallery-access[data-access="invite"] {
  border-color: var(--gold);
  color: #e0bd7d;
}
.gallery-tile h3 {
  margin: 12px 0;
  font-family: Georgia, serif;
  font-size: 34px;
  line-height: 1.05;
}
.gallery-tile p {
  color: rgba(255,255,255,.72);
  line-height: 1.6;
}
.gallery-tile span {
  color: rgba(255,255,255,.56);
  font-size: 13px;
}
.empty-state {
  padding: 34px;
  background: white;
}

.private-gate {
  min-height: 70vh;
  display: grid;
  place-content: center;
  gap: 16px;
  padding: 10vw;
  text-align: center;
}
.private-gate h1 {
  max-width: 760px;
  margin: 0;
  color: var(--navy);
  font-family: Georgia, serif;
  font-size: clamp(38px, 6vw, 78px);
  line-height: .95;
}
.private-gate p:not(.eyebrow) {
  max-width: 560px;
  margin: 0 auto;
  color: var(--muted);
  line-height: 1.7;
}
.private-gate a {
  width: fit-content;
  margin: 10px auto 0;
  padding: 13px 16px;
  border: 1px solid var(--line);
  color: var(--navy);
  text-decoration: none;
}

.summary {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  margin: -46px 5vw 0;
  position: relative;
  z-index: 3;
  background: var(--line);
  box-shadow: 0 18px 60px rgba(31, 42, 45, .12);
}
.summary article {
  background: white;
  padding: 28px;
}
.summary span {
  display: block;
  font-family: Georgia, serif;
  font-size: 42px;
  color: var(--navy);
}
.summary small {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 1.4px;
  font-size: 11px;
}
.release-panel {
  margin: 34px 5vw 0;
  padding: 32px;
  background: white;
  box-shadow: 0 18px 60px rgba(31, 42, 45, .1);
}
.release-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 24px;
}
.release-heading h2 {
  margin: 0;
  color: var(--navy);
  font-family: Georgia, serif;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1;
}
.release-heading p:not(.eyebrow),
.release-card p {
  color: var(--muted);
  line-height: 1.65;
}
.status-pill {
  flex-shrink: 0;
  padding: 10px 13px;
  border: 1px solid var(--line);
  color: var(--navy);
  background: #f1ece1;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.status-pill[data-status="review"] {
  border-color: var(--gold);
  background: rgba(199,154,80,.16);
}
.status-pill[data-status="public"] {
  border-color: var(--sage);
  background: rgba(118,133,119,.2);
}
.status-stack {
  display: grid;
  gap: 8px;
  justify-items: end;
}
.admin-status {
  border-color: #9f6b6b;
  color: #6f3434;
  background: rgba(159,107,107,.14);
}
.release-current {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 24px;
}
.release-current article {
  display: grid;
  gap: 5px;
  padding: 14px;
  border: 1px solid var(--line);
  background: #fbfaf6;
}
.release-current span {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.release-current strong {
  color: var(--navy);
}
.release-details {
  border: 1px solid var(--line);
  background: #fbfaf6;
}
.release-details > summary {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  padding: 18px 20px;
  color: var(--navy);
  cursor: pointer;
  list-style: none;
}
.release-details > summary::-webkit-details-marker {
  display: none;
}
.release-details > summary::after {
  content: "+";
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--navy);
  font-size: 20px;
}
.release-details[open] > summary::after {
  content: "-";
}
.release-details > summary span {
  font-weight: 700;
}
.release-details > summary small {
  color: var(--muted);
}
.review-details {
  border: 1px solid var(--line);
  background: #fbfaf6;
}
.review-details > summary {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 14px;
  color: var(--navy);
  cursor: pointer;
  list-style: none;
}
.review-details > summary::-webkit-details-marker {
  display: none;
}
.review-details > summary::after {
  content: "+";
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
}
.review-details[open] > summary::after {
  content: "-";
}
.review-details > summary span {
  font-weight: 700;
}
.review-details > summary small {
  color: var(--muted);
}
.review-details > :not(summary) {
  margin-left: 14px;
  margin-right: 14px;
}
.review-details > :last-child {
  margin-bottom: 14px;
}
.release-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  padding: 0 20px 20px;
}
.release-card {
  border: 1px solid var(--line);
  padding: 24px;
  background: white;
}
.release-card h3 {
  margin-top: 0;
  color: var(--navy);
}
.release-card label {
  display: block;
  margin: 13px 0;
  color: var(--ink);
}
.auto-check {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin: 0 0 20px;
  padding: 16px;
  background: #f7f2e8;
  border: 1px solid var(--line);
}
.auto-check p {
  margin: 6px 0 0;
}
.auto-check button {
  border: 1px solid var(--line);
  background: var(--navy);
  color: white;
  padding: 10px 12px;
}
.auto-check-list {
  list-style: none;
  display: grid;
  gap: 8px;
  margin: 0 0 18px;
  padding: 0;
}
.auto-check-list li {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border-left: 4px solid var(--line);
  background: #fbfaf6;
}
.auto-check-list li[data-status="ok"] {
  border-left-color: var(--sage);
}
.auto-check-list li[data-status="warning"] {
  border-left-color: var(--gold);
}
.auto-check-list li[data-status="needs-ai"] {
  border-left-color: #9f6b6b;
}
.auto-check-list span {
  color: var(--muted);
  font-size: 13px;
}
.download-policy {
  display: grid;
  gap: 10px;
  margin: 0 0 18px;
  padding: 16px;
  border: 1px solid rgba(199,154,80,.55);
  background: linear-gradient(135deg, rgba(199,154,80,.14), rgba(255,255,255,.92));
}
.download-policy > strong {
  margin: 0;
  color: var(--navy);
  font-weight: 700;
}
.policy-options {
  display: grid;
  gap: 8px;
}
.policy-options label {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.78);
  cursor: pointer;
}
.policy-options label.is-active {
  border-color: var(--gold);
  background: rgba(199,154,80,.18);
  box-shadow: inset 0 0 0 1px rgba(199,154,80,.25);
}
.download-policy p {
  margin: 0;
  font-size: 13px;
}
.release-actions,
.guest-form {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.release-actions button,
.guest-form button,
.guest-list button {
  border: 1px solid var(--line);
  background: var(--navy);
  color: white;
  padding: 10px 12px;
}
.release-actions button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.guest-form input,
.guest-list input {
  min-width: 220px;
  flex: 1;
  border: 1px solid var(--line);
  padding: 10px 12px;
}
.guest-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}
.guest-list article {
  display: grid;
  grid-template-columns: 130px minmax(160px, 1fr) auto auto;
  gap: 8px;
  align-items: center;
}
.release-note-inline {
  margin-bottom: 0;
  font-size: 13px;
}

.controls {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
  padding: 72px 5vw 22px;
}
.controls label {
  display: block;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 12px;
}
.controls select, .controls button {
  width: 100%;
  border: 1px solid var(--line);
  background: white;
  color: var(--ink);
  padding: 13px 14px;
}

.timeline {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 10px 5vw 34px;
}
.timeline button {
  min-width: 210px;
  border: 1px solid var(--line);
  background: white;
  padding: 16px;
  text-align: left;
}
.timeline strong { display: block; color: var(--navy); }
.timeline span { color: var(--muted); font-size: 12px; }

.gallery {
  display: grid;
  --columns: 4;
  grid-template-columns: repeat(var(--columns), minmax(0, 1fr));
  grid-auto-flow: row;
  gap: 14px;
  padding: 0 5vw 76px;
}
.photo-card {
  position: relative;
  display: block;
  width: 100%;
  border: 0;
  padding: 0;
  overflow: hidden;
  background: #d8d2c7;
  text-align: left;
}
.photo-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(100deg, transparent 0%, rgba(255,255,255,.32) 45%, transparent 70%),
    linear-gradient(135deg, #d7d0c4, #eee8dd);
  background-size: 220% 100%, 100% 100%;
  animation: imageLoading 1.25s ease-in-out infinite;
}
.photo-card.is-loaded::before {
  opacity: 0;
  animation: none;
  pointer-events: none;
  transition: opacity .2s ease;
}
.photo-card img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  opacity: 0;
  transition: opacity .28s ease;
}
.photo-card.is-loaded img {
  opacity: 1;
}
.gallery.layout-classic .photo-card img { aspect-ratio: 3 / 2; }
.gallery.layout-magazine .photo-card {
  min-height: 170px;
}
.gallery.layout-magazine .photo-card img {
  aspect-ratio: auto;
}
.gallery.layout-magazine .photo-card:nth-child(12n + 1),
.gallery.layout-magazine .photo-card:nth-child(12n + 8) {
  grid-column: span 2;
  grid-row: span 2;
}
.gallery.layout-magazine .photo-card:nth-child(12n + 5),
.gallery.layout-magazine .photo-card:nth-child(12n + 11) {
  grid-column: span 2;
}
.gallery.layout-panorama .photo-card img {
  aspect-ratio: 16 / 7;
}
.photo-card footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 12px;
  padding: 42px 14px 14px;
  color: white;
  background: linear-gradient(transparent, rgba(9,18,29,.82));
  z-index: 2;
  opacity: 0;
  transition: opacity .18s ease;
}
.photo-card:hover footer { opacity: 1; }
.photo-card small { display: block; color: #e3bf7e; }
.photo-actions {
  display: flex;
  gap: 7px;
  flex-shrink: 0;
}
.favorite {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 50%;
  background: rgba(0,0,0,.16);
  color: white;
  font-size: 18px;
}
.photo-card.is-favorite .favorite:not(.owner-favorite) { background: var(--gold); color: var(--navy); }
.owner-favorite {
  font-size: 13px;
  font-weight: 800;
}
.photo-card.is-owner-favorite .owner-favorite {
  background: #fff;
  color: var(--navy);
  border-color: #fff;
}
.photo-card.is-owner-favorite::after {
  content: "Highlight";
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  padding: 6px 9px;
  color: var(--navy);
  background: var(--gold);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.download-note {
  margin: 0 5vw 88px;
  padding: 34px;
  background: white;
  border-left: 4px solid var(--gold);
}
.download-note h2 {
  margin-top: 0;
  color: var(--navy);
  font-family: Georgia, serif;
}
.download-note p { color: var(--muted); line-height: 1.7; }

.lightbox {
  width: min(1180px, 94vw);
  height: min(820px, 90vh);
  border: 0;
  padding: 0;
  background: #07101d;
  color: white;
}
.lightbox::backdrop { background: rgba(5,12,22,.84); }
.lightbox img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 52px 72px 78px;
}
.close, .lightbox .nav {
  position: absolute;
  z-index: 2;
  border: 0;
  background: rgba(255,255,255,.1);
  color: white;
}
.close { top: 14px; right: 14px; width: 38px; height: 38px; font-size: 26px; }
.lightbox .nav { top: 50%; width: 46px; height: 64px; font-size: 42px; }
.lightbox .prev { left: 14px; }
.lightbox .next { right: 14px; }
.lightbox footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 18px 24px;
  background: rgba(7,16,29,.82);
}
.lightbox footer span { display: block; color: rgba(255,255,255,.62); font-size: 12px; }
.lightbox footer button {
  border: 1px solid rgba(255,255,255,.28);
  background: transparent;
  color: white;
  padding: 10px 14px;
}

.show {
  position: fixed;
  z-index: 100;
  inset: 0;
  background: #03070d;
  color: white;
}
.show-controls {
  position: absolute;
  top: 18px;
  left: 50%;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 8px;
  transform: translateX(-50%);
  padding: 10px;
  background: rgba(0,0,0,.46);
  backdrop-filter: blur(10px);
  opacity: 1;
  transition: opacity .35s ease, transform .35s ease;
}
.show.controls-hidden .show-controls {
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -12px);
}
.show-controls button,
.show-controls select {
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.1);
  color: white;
  padding: 8px 10px;
}
.show-controls select option {
  color: #111;
}
.show-controls label {
  display: flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,.72);
  font-size: 12px;
}
#show-mode {
  min-width: 84px;
  color: #e6c27f;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.show-stage {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.show-stage::after {
  content: "Bild wird geladen";
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 0;
  transform: translate(-50%, -50%);
  color: rgba(255,255,255,.42);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 12px;
  opacity: 0;
  transition: opacity .2s ease;
}
.show.image-loading .show-stage::after {
  opacity: 1;
}
.show-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  transform: none;
  z-index: 1;
  transition: none;
  will-change: opacity, transform;
}
.show-image.active {
  opacity: 1;
  z-index: 2;
}
.show.transition-none .show-image {
  animation: none;
}
.show.transition-fade .show-image.active { animation: showFade .75s ease both; }
.show.transition-slide .show-image.active { animation: showSlide .75s ease both; }
.show.transition-zoom .show-image.active { animation: showZoom .75s ease both; }

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

@keyframes showSlide {
  from { opacity: 0; transform: translateX(70px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes showZoom {
  from { opacity: 0; transform: scale(1.08); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes imageLoading {
  from { background-position: 180% 0, 0 0; }
  to { background-position: -80% 0, 0 0; }
}
.show-close {
  width: 42px;
  height: 42px;
  border: 0;
  background: rgba(255,255,255,.12);
  color: white;
  font-size: 28px;
}
.show-meta {
  position: absolute;
  left: 28px;
  bottom: 24px;
  padding: 13px 16px;
  background: rgba(0,0,0,.42);
}
.show-meta span { display: block; color: rgba(255,255,255,.7); font-size: 12px; }

@media (max-width: 860px) {
  .topbar { align-items: flex-start; flex-direction: column; }
  .hero { grid-template-columns: 1fr; }
  .hero-stack { min-height: 360px; }
  .summary, .controls, .overview-intro, .release-grid { grid-template-columns: 1fr 1fr; }
  .release-heading { flex-direction: column; }
  .guest-list article { grid-template-columns: 1fr; }
  .overview-visual div:first-child { min-height: 280px; }
  .gallery { --columns: 2 !important; }
  .gallery.layout-magazine .photo-card { grid-column: auto !important; grid-row: auto !important; }
  .show-controls { left: 12px; right: 12px; transform: none; flex-wrap: wrap; }
  .show.controls-hidden .show-controls { transform: translateY(-12px); }
}

@media (max-width: 560px) {
  .summary, .controls, .overview-intro, .release-grid { grid-template-columns: 1fr; }
  h1 { font-size: 48px; }
}
