/* Shared drawer only: no body, hero, page-content or desktop-header restyling. */
.xe-menu, .xe-menu-toggle {
  --xe-serif: Georgia, 'Times New Roman', 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  --xe-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Yu Gothic', sans-serif;
  --xe-accent: #8cb9ce;
  box-sizing: border-box;
}
.xe-menu *, .xe-menu *::before, .xe-menu *::after { box-sizing: border-box; }
.xe-menu :focus-visible, .xe-menu-toggle:focus-visible { outline: 2px solid #477890; outline-offset: 5px; }
.xe-menu-toggle { flex: 0 0 44px; width: 44px; height: 44px; padding: 12px; display: flex; flex-direction: column; justify-content: center; gap: 4px; border: 0; border-radius: 0; background: transparent; color: inherit; cursor: pointer; }
.xe-menu-toggle[hidden], .xe-theme-menu > [hidden] { display: none !important; }
.xe-menu-toggle span { display: block; width: 18px; height: 1px; background: currentColor; }
.xe-theme-menu { flex: 0 0 auto; display: flex; align-items: center; gap: 0; }
.xe-menu { width: min(400px, 90vw); max-width: 100vw; height: 100%; height: 100dvh; max-height: 100dvh; margin: 0 0 0 auto; padding: 0; border: 0; background: #101f27; color: #f4f5f1; overflow-y: auto; font: 16px/1.6 var(--xe-serif); letter-spacing: .015em; -webkit-font-smoothing: antialiased; }
.xe-menu[open] { animation: xe-menu-in .9s cubic-bezier(.2,.75,.2,1) both; }
.xe-menu::backdrop { background: rgba(5,14,18,.48); backdrop-filter: blur(3px); }
.xe-menu-inner { display: flex; min-height: 100%; flex-direction: column; padding: 46px 42px 28px; }
.xe-menu .xe-logo { margin: 0; font: 700 26px/1 var(--xe-serif); letter-spacing: .1em; white-space: nowrap; }
.xe-menu .xe-logo a, .xe-menu .xe-logo a:hover { color: inherit; text-decoration: none; }
.xe-menu nav { margin: 86px 0 50px; }
.xe-menu .xe-nav-list { display: flex; align-items: flex-start; flex-direction: column; gap: 20px; list-style: none; padding: 0; margin: 0; }
.xe-menu .xe-nav-list li { padding: 0; margin: 0; }
.xe-menu .xe-nav-list a { display: block; padding: 8px 0; color: inherit; font: 400 27px/1.3 var(--xe-serif); letter-spacing: .04em; text-decoration: none; opacity: 1; transition: transform .35s cubic-bezier(.2,.7,.2,1), opacity .25s ease, color .25s ease; }
.xe-menu .xe-nav-list a[aria-current="page"] { color: var(--xe-accent); border-left: 1px solid currentColor; padding-left: 14px; margin-left: -15px; text-decoration: none; }
.xe-menu .xe-nav-list a:hover, .xe-menu .xe-nav-list a:focus-visible { color: #cbd3df; opacity: 1; transform: translateX(14px); text-decoration: none; }
.xe-menu .xe-menu-close { margin-top: auto; display: flex; align-items: center; gap: 22px; width: fit-content; padding: 12px 15px; background: #071116; border: 0; border-radius: 0; color: #f4f5f1; font: 11px/1.5 var(--xe-sans); letter-spacing: .1em; cursor: pointer; }
.xe-menu-close span { font-size: 32px; line-height: 1; font-weight: 200; }
.xe-menu-open { overflow: hidden; }
@keyframes xe-menu-in { from { opacity: 0; transform: translateX(35px); } to { opacity: 1; transform: translateX(0); } }
@keyframes xe-menu-mobile-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 639px) {
  .xe-menu[open] { animation: xe-menu-mobile-in .85s cubic-bezier(.2,.75,.2,1) both; }
  .xe-menu .xe-logo { font-size: 24px; }
  .xe-menu-inner { padding: 34px 30px 25px; }
  .xe-menu nav { margin-top: 64px; }
  .xe-menu .xe-nav-list { gap: 15px; }
  .xe-menu .xe-nav-list a { font-size: 25px; }
}
@media (prefers-reduced-motion: reduce) {
  .xe-menu, .xe-menu * { transition: none !important; animation: none !important; }
  .xe-menu .xe-nav-list a:hover, .xe-menu .xe-nav-list a:focus-visible { transform: none; }
}
