/* A quiet finishing layer for the public archive. No extra assets or media requests. */
:root {
  --experience-ease: cubic-bezier(.2, .7, .25, 1);
  --experience-line: rgba(224, 204, 165, .18);
}

body {
  background-color: #0b0f10;
  background-image: radial-gradient(ellipse at 100% 0, #8e754010, transparent 36rem),
    radial-gradient(ellipse at 0 42rem, #447a6a0a, transparent 40rem);
}

.site-header {
  background: linear-gradient(110deg, #111817ed, #0b1011f5);
  border-bottom-color: #e0cca51a;
}
.site-header--overlay {
  background: linear-gradient(180deg, #050b0dbd, #050b0d18);
  border-bottom-color: #f1e5ca20;
}
.brand { gap: 1px; }
.brand-name { color: #faf4e7; }
.brand-description { color: #cecfc0; }
.main-nav a::after {
  content: "";
  position: absolute;
  height: 2px;
  left: 0;
  right: 0;
  bottom: 3px;
  border-radius: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .24s var(--experience-ease);
}
.main-nav a[aria-current="page"]::after { left: 0; right: 0; transform: scaleX(.45); }
.main-nav a:focus-visible::after { transform: scaleX(1); }
.icon-button { border: 1px solid transparent; }

.button,
.icon-button,
.hero-arrow,
.hero-autoplay,
.album-filters a,
.album-layout button,
.card-enter {
  transition: color .2s ease, background-color .2s ease, border-color .2s ease,
    transform .24s var(--experience-ease), box-shadow .24s ease;
}
.button {
  border-radius: 6px;
  border-color: #e6d8bc38;
  background-color: #e0cca504;
  letter-spacing: .035em;
}
.button--gold {
  color: #1b2019;
  border-color: #ead0a1;
  background: linear-gradient(125deg, #e7c994, #d4ae70);
  box-shadow: inset 0 1px #fff4d84d, 0 5px 18px #0000001c;
}
.button .arrow,
.hero-directory-link span,
.contact-details__action {
  transition: transform .25s var(--experience-ease), color .2s ease;
}
.button:focus-visible,
.icon-button:focus-visible,
.album-filters a:focus-visible,
.album-layout button:focus-visible,
.hero-arrow:focus-visible {
  outline: 2px solid #ebcc95;
  outline-offset: 4px;
  box-shadow: 0 0 0 6px #d9b77d12;
}
.button:active,
.icon-button:active,
.hero-arrow:active,
.album-filters a:active,
.album-layout button:active {
  transform: translateY(1px) scale(.98);
}
.search-form input { transition: border-color .2s ease, background-color .2s ease; }
.search-form input:focus { border-bottom-color: var(--gold); }

.page-intro { position: relative; }
.page-intro::after {
  content: "";
  position: absolute;
  bottom: 15px;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, #d9b77d24, #d9b77d0b 60%, transparent);
}
.section-title,
.page-intro h1,
.album-heading h1 { text-wrap: balance; }
.hero-content .eyebrow { color: #ead4ac; }
.hero-title { text-shadow: 0 5px 35px #02090825; }
.hero-directory-link { border-bottom: 1px solid #e0cca526; }
.hero-position__rule { background: linear-gradient(90deg, #ead7b580, #ead7b515); }
.hero-shortcuts > button { transition: color .2s ease, border-color .2s ease; }
.hero-arrow { border-color: #e8d8b952; background-color: #0f19186b; }

.exhibition-card {
  border-radius: 10px;
  border-color: #d9c7a326;
  box-shadow: 0 12px 32px #0000001a;
  transition: border-color .3s ease, transform .35s var(--experience-ease), box-shadow .3s ease;
}
.exhibition-card > img,
.media-tile img {
  transition: transform .65s var(--experience-ease);
}
.exhibition-card:hover > img,
.media-tile button:hover img { filter: none; }
.exhibition-card:focus-within {
  border-color: #e0c38b9c;
  box-shadow: 0 0 0 3px #d9b77d12;
}
.exhibition-card__number { color: #f5e4c4d9; }
.exhibition-card__meta { color: #cbd0c3; }
.card-enter { background-color: #101b1938; border-color: #eee1c67a; }

.album-heading__rule {
  background: linear-gradient(90deg, #e6c58d 0 48px, #d8b77c35 48px, #d8b77c08 75%, transparent);
}
.album-count strong { color: #e7cd9f; font-variant-numeric: tabular-nums; }
.album-toolbar { padding-block: 24px 18px; }
.album-filters { gap: 3px; padding: 4px; border: 1px solid #e0cca514; border-radius: 9px; background: #151e1b70; }
.album-filters a { border-radius: 6px; padding-block: 8px; }
.album-filters .is-active {
  color: #f0d7ac;
  background: linear-gradient(135deg, #d9b77d25, #d9b77d0c);
  border-color: #d9b77d35;
  box-shadow: inset 0 1px #f5e2be0a;
}
.album-layout { border-radius: 8px; background-color: #101817; }
.album-layout button { border-radius: 5px; }
.album-layout [aria-pressed="true"] { background: #d2b77b1c; color: #ebd1a5; }
.album-guide { margin-bottom: 27px; }
.album-guide p { color: #bac3b6; }
.media-grid { gap: 30px 23px; }
.media-tile {
  padding: 8px 8px 12px;
  background: linear-gradient(145deg, #1c2623a6, #111a18ba);
  border: 1px solid #d8cbbd18;
  border-radius: 12px;
  transition: border-color .25s ease, transform .3s var(--experience-ease);
}
.media-tile:focus-within { border-color: #d9b77d66; }
.media-tile button {
  border-radius: 8px;
  border-color: #d8cbbd1f;
  box-shadow: 0 5px 18px #00000017;
  transition: transform .25s var(--experience-ease), border-color .2s ease, box-shadow .2s ease;
}
.media-tile button:focus-visible { outline-offset: 4px; border-color: #e9c993; }
.media-tile button:active { opacity: 1; transform: scale(.985); border-color: #e9c9938c; }
.media-expand { background-color: #0b1412ad; border-color: #ffffff80; }
.play-icon { border-color: #f0e8d6b3; background-color: #0c1818b3; }
.media-duration { background-color: #07100be6; border: 1px solid #fff1d515; }
.gallery-status { color: #9ca99b; }
.page-jump input { transition: border-color .2s ease, background-color .2s ease; }
.page-jump input:focus { background: #1b261f; border-color: #d9b77d; }
.album-end { border-top-color: #d9b77d23; }

.contact-card { border-color: #e0cca524; box-shadow: inset 0 1px #efdebd0a, 0 15px 38px #00000012; }
.contact-card__icon { background: #d9b77d09; }
.contact-card:focus-within { border-color: #d9b77d61; }
.contact-card__qr { box-shadow: 0 0 0 1px #ffffff40, 0 13px 24px #00000026; }
.contact-details__grid > a { transition: background-color .2s ease, color .2s ease; }
.contact-feedback { transition: opacity .2s ease; }
.site-footer { background: linear-gradient(180deg, transparent, #050b0b33); border-top-color: #d9b77d1f; }
.footer-links a { text-underline-offset: 6px; }
.footer-links a:focus-visible { color: var(--gold); }

@media (hover: hover) and (pointer: fine) {
  .main-nav a:hover::after { transform: scaleX(1); }
  .icon-button:hover { border-color: #d9b77d28; background: #d9b77d0c; }
  .button:hover { box-shadow: 0 5px 18px #00000020; transform: translateY(-2px); }
  .button--gold:hover { background: linear-gradient(125deg, #eed6ad, #dfbd87); box-shadow: inset 0 1px #fff4d84d, 0 7px 22px #00000028; }
  .button:hover .arrow { transform: translate(2px, -2px); }
  .hero-directory-link:hover span { transform: translateY(3px); }
  .exhibition-card:hover { border-color: #d9b77d70; transform: translateY(-4px); box-shadow: 0 18px 36px #00000033; }
  .media-tile:hover { border-color: #d9b77d50; transform: translateY(-3px); }
  .media-tile button:hover { border-color: #d9b77d70; box-shadow: 0 8px 20px #00000026; }
  .media-tile button:active { transform: scale(.985); }
  .album-filters a:hover:not(.is-active), .album-layout button:hover:not([aria-pressed="true"]) { background: #d9b77d0c; }
  .contact-details__grid > a:hover .contact-details__action { transform: translateX(3px); }
  .footer-links a:hover { text-decoration: underline; }
}

@media (hover: none) {
  .exhibition-card:hover > img, .media-tile button:hover img { transform: none; }
  .button:hover:not(:active), .hero-arrow:hover:not(:active) { transform: none; }
  .exhibition-card:active { border-color: #d9b77d94; transform: scale(.992); }
  .card-enter:hover, .exhibition-card:hover .card-enter { transform: none; }
  .media-expand { display: none; }
}

@media (max-width: 640px) {
  .page-intro::after { bottom: 12px; }
  .exhibition-card { border-radius: 8px; }
  .album-toolbar { padding-block: 18px 14px; gap: 10px; }
  .album-filters { padding: 3px; gap: 1px; border-radius: 8px; }
  .album-filters a { padding: 7px 15px; min-height: 40px; }
  .album-layout { padding: 3px; }
  .album-layout button { min-height: 38px; }
  .album-guide { margin-bottom: 21px; }
  .media-grid { gap: 25px 12px; }
  .media-tile { padding: 6px 6px 10px; border-radius: 10px; }
  .media-tile button { border-radius: 6px; }
}

@media (max-width: 370px) {
  .album-filters a { padding-inline: 11px; }
  .album-layout button { padding-inline: 8px; }
  .album-toolbar { gap: 8px; }
  .media-grid { column-gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .exhibition-card:hover, .media-tile:hover, .media-tile button:hover, .button:hover, .hero-arrow:hover,
  .exhibition-card:active, .media-tile button:active, .button:active, .icon-button:active,
  .hero-arrow:active, .album-filters a:active, .album-layout button:active { transform: none; }
  .exhibition-card:hover > img, .media-tile button:hover img, .card-enter:hover,
  .exhibition-card:hover .card-enter, .button:hover .arrow,
  .hero-directory-link:hover span, .contact-details__grid > a:hover .contact-details__action { transform: none; }
}
