dialog.mobile-navigation {
  position: fixed; inset: 0 0 auto auto; width: min(90vw, 380px); max-width: 100%;
  height: 100dvh; max-height: 100dvh; margin: 0; border: 0; padding: 24px;
  background: var(--background); color: var(--foreground); box-shadow: -10px 0 40px #0002;
}
dialog::backdrop { background: #07122699; }
.mobile-navigation-heading { display: flex; justify-content: space-between; align-items: center; font-family: Sora, sans-serif; font-size: 19px; }
.mobile-navigation-heading button { width: 44px; height: 44px; font-size: 32px; border-radius: 50%; }
.mobile-navigation nav { display: grid; gap: 8px; padding-top: 28px; }
.mobile-navigation nav a { display: block; border-radius: 12px; padding: 14px 16px; font-size: 18px; font-weight: 600; }
.mobile-navigation nav a:hover, .mobile-navigation nav a[aria-current] { background: var(--muted); color: var(--accent); }
dialog.photo-lightbox { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: 100vw; max-height: 100dvh; margin: 0; border: 0; padding: 60px 70px; background: #000e; color: #fff; }
dialog.photo-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.photo-lightbox figure { margin: 0; max-width: 100%; text-align: center; }
.photo-lightbox img { display: block; max-width: 100%; max-height: calc(100dvh - 160px); object-fit: contain; margin: auto; border-radius: 8px; }
.photo-lightbox figcaption { padding-top: 14px; font-size: 14px; }
.photo-lightbox button { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: #ffffff20; color: white; font-size: 36px; cursor: pointer; }
.photo-lightbox .lightbox-close { right: 16px; top: 16px; }
.photo-lightbox .lightbox-previous { left: 12px; top: calc(50% - 24px); }
.photo-lightbox .lightbox-next { right: 12px; top: calc(50% - 24px); }
button:focus-visible, a:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
html:has(dialog[open]) { overflow: hidden; }
@media (max-width: 640px) {
  dialog.photo-lightbox { padding: 70px 12px; }
  .photo-lightbox img { max-height: calc(100dvh - 200px); }
  .photo-lightbox .lightbox-previous, .photo-lightbox .lightbox-next { top: auto; bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
