/* ═══════════════ universal aperture menu (menu.js) ═══════════════ */
.ap-menu { position: fixed; top: clamp(11px, 1.6vw, 17px); right: clamp(14px, 4vw, 38px); z-index: 65; }
/* the trigger — the aperture mark */
.ap-menu-btn { -webkit-appearance:none; appearance:none; background: rgba(12,14,22,.34); border: 1px solid rgba(255,255,255,.10);
  width: 44px; height: 44px; border-radius: 50%; padding: 6px; cursor: pointer; display: grid; place-items: center;
  backdrop-filter: blur(14px) saturate(1.1); -webkit-backdrop-filter: blur(14px) saturate(1.1);
  box-shadow: 0 6px 22px rgba(0,0,0,.32); transition: border-color .3s, background .3s, box-shadow .3s, transform .3s; }
.ap-menu-btn:hover { border-color: rgba(255,208,137,.55); background: rgba(20,18,12,.46); box-shadow: 0 8px 26px rgba(0,0,0,.4), 0 0 22px rgba(255,208,137,.16); }
.ap-menu-btn:focus-visible { outline: 2px solid var(--light); outline-offset: 3px; }
.ap-menu.open .ap-menu-btn { border-color: rgba(255,208,137,.7); background: rgba(20,18,12,.55); }
/* the iris */
.ap-ic { width: 100%; height: 100%; display: block; overflow: visible; }
.ap-ic-blades { transform-origin: 220px 220px; animation: apm-revolve 46s linear infinite; }
@keyframes apm-revolve { to { transform: rotate(360deg); } }
.ap-ic-blade { fill: rgba(255,208,137,.16); stroke: rgba(255,208,137,.82); stroke-width: 5; stroke-linejoin: round;
  transform: rotate(12deg); transition: transform .55s cubic-bezier(.2,.85,.2,1), fill .4s, stroke .4s; }
.ap-menu-btn:hover .ap-ic-blade { transform: rotate(21deg); fill: rgba(255,208,137,.24); stroke: rgba(255,208,137,.95); }
.ap-menu.open .ap-ic-blade { transform: rotate(3deg); fill: rgba(255,208,137,.28); stroke: var(--light-hi); }
.ap-ic-pupil { opacity: .8; animation: apm-pulse 4.4s ease-in-out infinite; }
@keyframes apm-pulse { 0%,100%{opacity:.55} 50%{opacity:.95} }
.ap-menu-btn:hover .ap-ic-pupil, .ap-menu.open .ap-ic-pupil { opacity: 1; }
/* the dropdown */
.ap-menu-drop { position: absolute; top: calc(100% + 11px); right: 0; width: 280px; transform-origin: top right;
  background: linear-gradient(180deg, rgba(20,22,32,.86), rgba(10,12,19,.92));
  backdrop-filter: blur(34px) saturate(1.25); -webkit-backdrop-filter: blur(34px) saturate(1.25);
  border: 1px solid rgba(255,255,255,.12); border-radius: 18px; padding: 9px; overflow: hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);
  opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-9px) scale(.97);
  transition: opacity .22s ease, transform .26s cubic-bezier(.2,.85,.2,1), visibility .22s; }
.ap-menu.open .ap-menu-drop { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.ap-menu-cap { font-family: var(--mono); font-size: 9px; letter-spacing: .22em; text-transform: uppercase; color: var(--ink-faint);
  padding: 7px 12px 9px; }
.ap-menu-item { display: block; text-decoration: none; padding: 10px 13px; border-radius: 12px; position: relative;
  transition: background .18s; }
.ap-menu-item:hover, .ap-menu-item:focus-visible { background: rgba(255,255,255,.06); outline: none; }
.ap-mi-t { display: block; font-family: var(--serif); font-size: 16px; color: var(--ink); line-height: 1.2; }
.ap-mi-s { display: block; font-family: var(--mono); font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-faint); margin-top: 3px; }
.ap-menu-item.is-here { background: rgba(255,208,137,.07); }
.ap-menu-item.is-here::before { content: ""; position: absolute; left: 3px; top: 50%; transform: translateY(-50%);
  width: 3px; height: 22px; border-radius: 3px; background: var(--light); box-shadow: 0 0 10px rgba(255,208,137,.6); }
.ap-menu-item.is-here .ap-mi-t { color: var(--light); }
.ap-menu-foot { font-family: var(--mono); font-size: 8.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-ghost);
  display: flex; align-items: center; gap: 6px; padding: 11px 12px 6px; margin-top: 5px; border-top: 1px solid rgba(255,255,255,.06); }
.ap-menu-foot-mk { color: var(--light); opacity: .6; }
@media (max-width: 600px) { .ap-menu-drop { width: min(78vw, 280px); } .ap-menu-btn { width: 44px; height: 44px; } }
@media (prefers-reduced-motion: reduce) { .ap-ic-blades, .ap-ic-pupil { animation: none; } }

/* Standalone pages use the same menu without importing the full site layout. */
.ap-menu {
  --light: #ffd089;
  --light-hi: #ffe0b3;
  --ink-faint: #aebcc6;
  --ink-ghost: #aebcc6;
}
.ap-menu-btn, .ap-menu-drop {
  background: rgba(7, 15, 25, .95);
  border-color: rgba(184, 216, 227, .35);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
}
.ap-menu-drop {
  max-width: calc(100vw - 48px);
  max-height: calc(100vh - 110px - env(safe-area-inset-bottom));
  max-height: calc(100dvh - 110px - env(safe-area-inset-bottom));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.ap-menu-item { scroll-margin-block: 8px; }
@media print { .ap-menu { display: none; } }
