/* Preserve the reference site's typography, palette and layout. */
header nav > .group:focus-within > div {
  visibility: visible; opacity: 1; transform: translateY(0);
}
a:focus-visible, button:focus-visible { outline: 2px solid #a0762b; outline-offset: 4px; }
[hidden] { display: none !important; }
.mobile-navigation { max-height: calc(100dvh - 4rem); overflow-y: auto; border-top: 1px solid #2c24161a; background: #f5efe1f2; padding: .5rem 1rem 1.5rem; backdrop-filter: blur(12px); }
.mobile-navigation .mobile-row { display: flex; align-items: center; justify-content: space-between; }
.mobile-navigation .mobile-row > a { flex: 1; padding: .75rem; font-weight: 500; }
.mobile-navigation button { padding: .75rem; border-radius: .375rem; cursor: pointer; }
.mobile-navigation button svg { width: 18px; height: 18px; transition: transform .2s; }
.mobile-navigation button[aria-expanded=true] svg { transform: rotate(180deg); }
.mobile-navigation .mobile-children { margin-left: .75rem; padding-left: .75rem; border-left: 1px solid #2c24161a; }
.mobile-navigation .mobile-children a { display: block; padding: .625rem .75rem; font-size: .875rem; }
.mobile-navigation a:hover { color: #a0762b; }
footer { scroll-margin-top: 4rem; }
.letter-portrait { max-width: 100%; }
.photo-lightbox { position: fixed; inset: 0; margin: auto; width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; padding: 4rem 4.5rem; background: #080808f5; color: white; overflow: hidden; }
.photo-lightbox::backdrop { background: #000e; }
.photo-lightbox .lightbox-image { width: 100%; height: 100%; object-fit: contain; }
.photo-lightbox button { position: absolute; display: grid; place-items: center; min-height: 44px; min-width: 44px; cursor: pointer; border-radius: 50%; background: #ffffff1a; color: white; font-size: 1.75rem; }
.photo-lightbox .lightbox-close { right: 1rem; top: 1rem; }
.photo-lightbox .lightbox-prev { left: 1rem; top: calc(50% - 22px); }
.photo-lightbox .lightbox-next { right: 1rem; top: calc(50% - 22px); }
.photo-lightbox .lightbox-count { position: absolute; bottom: 1rem; left: 0; right: 0; text-align: center; font-size: .875rem; }
@media (min-width: 1024px) { .mobile-navigation { display: none !important; } }
@media (max-width: 639px) {
  main > section.min-h-screen h1 { font-size: clamp(2.1rem, 8.5vw, 3.75rem); }
  .photo-lightbox { padding: 4rem .75rem; }
  .photo-lightbox .lightbox-prev, .photo-lightbox .lightbox-next { top: auto; bottom: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal-hidden { opacity: 1; transform: none; }
}
