/* Native behavior and accessibility additions. The original design is reference.css. */
[hidden] { display: none !important; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 110; padding: 12px 20px; border-radius: 8px; background: #fff; color: #090807; }
.skip-link:focus { top: 12px; }
.mobile-menu[data-state="open"] { animation: overlay-enter 280ms both; }
.mobile-menu[data-state="open"] > div { animation: menu-enter 280ms cubic-bezier(.22,1,.36,1) both; }
.mobile-menu nav a { border-color: transparent; background: white; color: rgb(9 8 7 / .7); }
.mobile-menu nav a[aria-current="page"], .mobile-menu nav a:hover { border-color: rgb(9 8 7 / .08); background: #f6f1eb; color: #090807; }
[data-reveal].reveal-pending { opacity: 0; transform: translateY(18px); }
[data-reveal="gallery"].reveal-pending { transform: translateY(16px); }
[data-reveal] { transition: opacity 550ms cubic-bezier(.22,1,.36,1), transform 550ms cubic-bezier(.22,1,.36,1); }
[data-reveal="gallery"] { transition-duration: 280ms; }
[data-coverflow-stage] { touch-action: pan-y; user-select: none; }
.lightbox[data-state="open"] { animation: overlay-enter 240ms both; }
.lightbox[data-state="open"] > div { animation: lightbox-enter 240ms both; }
.lightbox[data-state="closing"], .mobile-menu[data-state="closing"] { animation: overlay-leave 200ms both; pointer-events: none; }
.lightbox img { user-select: none; }
.form-feedback { margin-top: 20px; padding: 12px 16px; border-radius: 8px; font-size: 14px; font-weight: 700; line-height: 1.5; }
.form-feedback.success { background: rgb(52 211 153 / .14); color: #d1fae5; }
.form-feedback.error { background: rgb(248 113 113 / .14); color: #fee2e2; }
.footer-bottom { display: grid; grid-template-columns: 1fr; align-items: center; justify-items: center; gap: .25rem; text-align: center; }
.footer-credit { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: .55rem; text-decoration: none; }
.footer-credit img { width: auto; height: 1.75rem; flex: none; }
.footer-credit strong { color: #f6f1eb; font-weight: 800; }
.footer-credit:focus-visible { border-radius: 4px; outline: 2px solid #f6f1eb; outline-offset: 4px; }
@keyframes overlay-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes menu-enter { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes overlay-leave { from { opacity: 1; } to { opacity: 0; } }
@keyframes lightbox-enter { from { opacity: 0; transform: translateY(20px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-reveal], .signature-coverflow-card, .mobile-menu, .mobile-menu > div, .lightbox, .lightbox > div { transition: none !important; animation: none !important; }
  [data-reveal].reveal-pending { opacity: 1; transform: none; }
}
@media (min-width: 640px) {
  .footer-bottom { grid-template-columns: 1fr auto 1fr; gap: 1rem; }
  .footer-bottom > :first-child { justify-self: start; text-align: left; }
  .footer-bottom > [data-footer-city] { justify-self: center; }
  .footer-credit { justify-self: end; }
}
@media (min-width: 1280px) {
  .footer-credit { justify-self: center; }
}
