/* A compact table of contents over the existing LP; no change to page geometry. */
html{scrollbar-gutter:stable}
html[data-page-menu-open]{overflow:hidden}
.page-menu-bar{display:flex;align-items:center;width:min(100%,724px);height:calc(82px + env(safe-area-inset-top));margin:0 auto;padding:env(safe-area-inset-top) 22px 0;background:#fff8fb;border-bottom:1px solid #f4e4eb}
.page-menu-bar a{display:flex;align-items:center;min-height:44px;color:#ad3769;font-size:clamp(22px,5.6vw,26px);font-weight:800;line-height:1.5;letter-spacing:.015em;white-space:nowrap}
.page-menu-toggle{
  position:fixed;z-index:60;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:58px;height:58px;padding:10px;border:1px solid #eed4de;border-radius:19px;
  background:#fffafbf5;color:#6e3650;box-shadow:0 5px 20px #84405c1c,inset 0 0 0 2px #fff;
  font:700 10px/1.2 MyPuriNoto,sans-serif;letter-spacing:.08em;cursor:pointer;touch-action:manipulation;
}
.page-menu-toggle[hidden]{display:none}
.page-menu-bars{display:grid;gap:4px;width:23px}
.page-menu-bars i{display:block;height:2px;border-radius:2px;background:currentColor}
.page-menu-bars i:nth-child(2){width:18px;justify-self:end}
.page-menu{
  position:fixed;inset:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) auto auto;
  width:min(380px,calc(100% - 24px));height:min(850px,calc(100svh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
  max-width:none;max-height:none;margin:0;padding:0;overflow:hidden;border:1px solid #ffffffa6;border-radius:28px;
  color:#38232f;background:linear-gradient(145deg,#fff9fc,#fffdfb 55%,#f0faf6);
  box-shadow:0 18px 70px #49303f26,inset 0 0 0 1px #ffffff4d;font:500 15px/1.6 MyPuriNoto,sans-serif;letter-spacing:0;
}
/* Only the surface is translucent; text and focus rings retain full opacity. */
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .page-menu{background:linear-gradient(145deg,#fff9fc6b,#fffdfb5c 55%,#f0faf666);-webkit-backdrop-filter:blur(14px) saturate(1.05);backdrop-filter:blur(14px) saturate(1.05)}
}
@supports(height:100dvh){.page-menu{height:min(850px,calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}}
.page-menu[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;animation:pageMenuEnter .32s cubic-bezier(.2,.7,.3,1) both}
.page-menu::backdrop{background:#59404c14;animation:pageMenuBackdrop .22s ease-out both}
.page-menu-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 12px;border-bottom:1px solid #ffffff66}
.page-menu-brand{color:#9f2b59;font-size:12px;line-height:1.4;font-weight:800;letter-spacing:.04em}
.page-menu #page-menu-title{margin:1px 0 0;font-size:24px;line-height:1.35;letter-spacing:.08em}
.page-menu-close{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;padding:0;border:1px solid #ffffffb3;border-radius:50%;background:#ffffff66;color:#6e3650;font:400 32px/1 sans-serif;cursor:pointer}
.page-menu-links{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px 18px 12px}
.page-menu-links a{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;border-radius:12px;font-size:15px;line-height:1.6;font-weight:700}
.page-menu-links a>span:last-child{margin-left:auto;color:#70435c;font-size:21px;line-height:1;font-weight:400}
.page-menu-links a[aria-current="location"]{background:#f9e6ee38;color:#742546}
.page-menu-links .page-menu-top{color:#275e50;font-size:13px}
.page-menu-group{margin:12px 12px 5px;color:#513642;font-size:12px;line-height:1.5;font-weight:500;letter-spacing:.05em}
.page-menu-links ul+ul{margin-top:12px}
.page-menu-links li+li{border-top:1px solid #efdee440}
.page-menu-number{color:#823153;font-size:12px;letter-spacing:.04em;min-width:20px}
.page-menu-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #ffffff80;background:#ffffff0f}
.page-menu-footer a{display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:12px 18px;border:1px solid #ffffffb3;border-radius:999px;background:#d9f3e978;color:#245c4d;font-size:15px;font-weight:800;line-height:1.5}
.page-menu-footer span{font-size:25px;line-height:1}
.page-menu-toggle:focus-visible,.page-menu-close:focus-visible,.page-menu a:focus-visible{outline:3px solid #347968;outline-offset:2px}
@media(hover:hover){.page-menu-toggle:hover{background:#fff}.page-menu-links a:hover{background:#f9e6ee99}.page-menu-footer a:hover{background:#c6eddfe0}}
@media(max-width:999px){.app-hero{scroll-margin-top:calc(82px + env(safe-area-inset-top))}}
@media(min-width:1000px){.page-menu-bar{display:none}.page-menu-toggle{top:22px;right:24px}.page-menu{top:20px;right:24px}}
@media(prefers-reduced-motion:reduce){.page-menu[open],.page-menu::backdrop{animation:none}}
@media(prefers-reduced-transparency:reduce){.page-menu{background:linear-gradient(145deg,#fff9fc,#fffdfb 55%,#f0faf6);-webkit-backdrop-filter:none;backdrop-filter:none}}
@media print{.page-menu-bar,.page-menu-toggle,.page-menu{display:none!important}}
@keyframes pageMenuEnter{from{opacity:0;transform:translate(8px,-8px)}to{opacity:1;transform:translate(0,0)}}
@keyframes pageMenuBackdrop{from{background:#59404c00}to{background:#59404c14}}
