/* Accessible navigation and guided browsing, with native dialog focus management. */
.mobile-drawer:not([open]) { display: none; }
.mobile-bottom-nav, .mobile-menu-trigger { display: none; }
.js .mobile-menu-trigger { cursor: pointer; }
.mobile-drawer {
  position: fixed; inset: 0 0 0 auto; margin: 0; padding: 0;
  width: min(430px, 100%); max-width: 100%; height: 100%; height: 100dvh;
  max-height: 100dvh; border: 0; background: #faf7f1; color: var(--ink);
  box-shadow: -20px 0 80px #14061e30; overflow-y: auto;
}
.mobile-drawer[open] { animation: drawer-enter .25s ease both; }
.mobile-drawer::backdrop { background: #1e082cb3; backdrop-filter: blur(5px); }
.drawer-shell { padding: 26px 28px max(32px, env(safe-area-inset-bottom)); }
.drawer-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 40px; }
.drawer-heading img { width: 154px; height: auto; }
.drawer-close { width: 46px; height: 46px; border: 1px solid #d6c8db; border-radius: 50%; background: white; color: var(--plum); font-size: 1.75rem; line-height: 1; cursor: pointer; }
.drawer-links { display: grid; }
.drawer-links a { display: flex; justify-content: space-between; align-items: center; min-height: 66px; border-bottom: 1px solid #dfd3e3; font-size: 1.35rem; font-weight: 600; letter-spacing: -.035em; }
.drawer-links a>span:last-child { font-size: 1.1rem; color: #8a6495; }
.drawer-links a[aria-current] { color: var(--purple); }
.drawer-member { margin-top: 36px; display: grid; gap: 14px; }
.drawer-member>p { font-size: .75rem; font-weight: 700; letter-spacing: .13em; margin: 0; }
.drawer-member .text-link { justify-self: start; }
.drawer-contact { margin-top: 30px; color: var(--muted); font-size: .875rem; line-height: 1.8; }
.drawer-contact a { overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 4px; }
body.menu-open { overflow: hidden; }
.menu-toggle svg, .mobile-bottom-nav svg, .search-input-wrap svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.collection-search { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 15px 30px; margin: 0 0 24px; }
.collection-search label { font-size: .875rem; font-weight: 600; margin: 0; }
.search-input-wrap { position: relative; width: min(390px, 100%); }
.search-input-wrap svg { position: absolute; top: 50%; left: 17px; transform: translateY(-50%); color: #876b91; pointer-events: none; }
.search-input-wrap input { padding: 14px 16px 14px 49px; margin: 0; border-radius: 30px; min-height: 50px; background: white; }
.collection-empty { padding: 48px 24px; border: 1px dashed #cbb9d2; border-radius: 18px; text-align: center; }
.collection-empty p { color: var(--muted); }
.story-with-art .story-grid { grid-template-columns: 1fr 1fr; gap: 64px; }
.story-visual { margin: 0; min-width: 0; }
.story-visual img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 24px; }
.story-visual figcaption { color: #bfa7c9; font-size: .75rem; margin-top: 12px; letter-spacing: .025em; }
.story-with-art .story-content h2 { margin-bottom: 26px; }
.story-with-art .story-content p:not(.eyebrow) { font-size: 1rem; }
.story-content .button { margin-top: 10px; }
@keyframes drawer-enter { from { transform: translateX(100%); } to { transform: translateX(0); } }
@media(max-width:1000px) {
  .nav-wrap { min-height: 82px; justify-content: space-between; flex-wrap: wrap; }
  .nav-wrap nav { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .js .nav-wrap #navigation { display: none; }
  .js .nav-wrap .menu-toggle { display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 14px; }
  .mobile-bottom-nav { display: grid; grid-template-columns: repeat(3,1fr); position: fixed; inset: auto 0 0; z-index: 40; padding: 7px 10px calc(7px + env(safe-area-inset-bottom)); border-top: 1px solid #d9cddd; background: #fffcf8f5; backdrop-filter: blur(16px); box-shadow: 0 -8px 32px #32103f08; }
  .js .mobile-bottom-nav { grid-template-columns: repeat(4,1fr); }
  .mobile-bottom-nav a, .js .mobile-bottom-nav button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-height: 54px; border: 0; border-radius: 12px; background: transparent; color: #725f7a; font-size: .75rem; line-height: 1.3; font-weight: 600; }
  .mobile-bottom-nav [aria-current], .mobile-bottom-nav [aria-expanded=true] { color: var(--purple); background: #ede3f1; }
  .mobile-bottom-nav svg { width: 21px; height: 21px; }
  body { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
  .back-to-top { bottom: calc(94px + env(safe-area-inset-bottom)); }
  html { scroll-padding-bottom: 100px; }
  .story-with-art .story-grid { gap: 36px; }
}
@media(max-width:800px) {
  .story-with-art .story-grid { grid-template-columns: 1fr; }
  .story-visual { max-width: 650px; }
  .story-visual img { aspect-ratio: 3/2; }
}
@media(max-width:580px) {
  .collection-search { display: block; }
  .collection-search label { display: block; margin-bottom: 10px; }
  .search-input-wrap { width: 100%; }
  .drawer-shell { padding-left: 23px; padding-right: 23px; }
  .story-visual img { aspect-ratio: 1/1; border-radius: 18px; }
  .story-with-art .story-content h2 { font-size: 2.75rem; }
}
@media(prefers-reduced-motion:reduce) { .mobile-drawer[open] { animation: none; } }
