/* ===== mobile hamburger menu (full-screen overlay) — shared, site-wide ===== */
.navHam{ display:none; -webkit-appearance:none; appearance:none; border:0; background:transparent; width:44px; height:40px; flex-direction:column; justify-content:center; align-items:flex-end; gap:6px; cursor:pointer; padding:0; }
.navHam span{ display:block; height:1.6px; width:26px; background:var(--ink); transition:transform .42s cubic-bezier(.2,.7,.2,1), opacity .25s ease, width .42s cubic-bezier(.2,.7,.2,1); }
.navHam span:nth-child(2){ width:20px; }
.navHam.x span{ width:26px; }
.navHam.x span:nth-child(1){ transform:translateY(7.6px) rotate(45deg); }
.navHam.x span:nth-child(2){ opacity:0; }
.navHam.x span:nth-child(3){ transform:translateY(-7.6px) rotate(-45deg); }
.navMenu{ position:fixed; inset:0; z-index:40; background:rgba(240,234,225,.6); -webkit-backdrop-filter:blur(30px) saturate(1.4); backdrop-filter:blur(30px) saturate(1.4); display:flex; flex-direction:column; padding:104px clamp(24px,7vw,40px) 60px; overflow-y:auto; opacity:0; visibility:hidden; transition:opacity .5s ease, visibility .5s; }
/* fallback for browsers without backdrop-filter: keep the panel readable */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .navMenu{ background:rgba(240,234,225,.94); }
}
.navMenu.open{ opacity:1; visibility:visible; }
.navMenu::before{ content:""; position:absolute; top:-12%; right:-32%; width:90%; height:60%; border-radius:50% 50% 0 0 / 60% 60% 0 0; background:radial-gradient(60% 70% at 60% 30%, rgba(232,165,118,.42), transparent 72%); pointer-events:none; }
.navMenu-eye{ font-family:"JetBrains Mono",monospace; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); margin:0 0 26px; }
.navMenu-links{ display:flex; flex-direction:column; gap:2px; align-items:flex-start; }
.navMenu-links a{ font-family:"Instrument Serif",serif; font-size:clamp(34px,11vw,46px); line-height:1.16; color:var(--ink); text-decoration:none; transition:color .25s ease; }
.navMenu-links a:hover, .navMenu-links a.active{ color:var(--accent); }
.navMenu-links a.navbtn{ margin-top:26px; font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:var(--accent); padding:15px 26px; border-radius:999px; line-height:1; }
.navMenu-links a.navbtn:hover{ color:#fff; }
.navMenu.open .navMenu-links a{ animation:navRise .55s cubic-bezier(.2,.7,.2,1) both; }
.navMenu.open .navMenu-links a:nth-child(1){ animation-delay:.05s; }
.navMenu.open .navMenu-links a:nth-child(2){ animation-delay:.10s; }
.navMenu.open .navMenu-links a:nth-child(3){ animation-delay:.15s; }
.navMenu.open .navMenu-links a:nth-child(4){ animation-delay:.20s; }
.navMenu.open .navMenu-links a:nth-child(5){ animation-delay:.25s; }
.navMenu.open .navMenu-links a:nth-child(6){ animation-delay:.30s; }
.navMenu.open .navMenu-links a:nth-child(7){ animation-delay:.35s; }
@keyframes navRise{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
body.navOpen{ overflow:hidden; }
@media (max-width:760px){
  .nav.hamReady .links{ display:none; }
  .nav.hamReady .navHam{ display:inline-flex; }
}
@media (prefers-reduced-motion:reduce){
  .navMenu{ transition:opacity .001s linear; }
  .navMenu.open .navMenu-links a{ animation:none; }
  .navHam span{ transition:none; }
}

/* footer legal link (privacy) */
.foot-legal{ font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:rgba(233,224,211,.45); text-decoration:none; transition:color .25s ease; }
.foot-legal:hover{ color:rgba(233,224,211,.85); }

/* visible keyboard focus (accessibility) */
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:3px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible{ outline-offset:4px; }

/* grain texture overlay (shared) */
.grain{ position:relative; }
.grain::after{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.4; mix-blend-mode:multiply; z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E"); }
