/* Menu A entry + A color-fill hover. Text stays still; only the accent mask changes. */
.menu.mm-surface { clip-path:inset(0 0 var(--mm-cut,0%) 0); }
.menu .mm-mask { display:block;clip-path:inset(-.1em -.1em -.16em);pointer-events:none; }
.menu .mm-label { display:inline-block;pointer-events:none; }
html.mm-ready .nav-toggle { transition:none; }
html.mm-ready .nav-toggle span { transition:transform 220ms cubic-bezier(.22,1,.36,1); }
html.mm-ready.nav-open:not(.menu-closing) .nav-toggle span { transition-duration:280ms; }
html.mm-ready.menu-closing .nav-toggle span:first-child,
html.mm-ready.menu-closing .nav-toggle span:last-child { transform:none; }
/* Permanent hover labels sit inside the independent, temporary entry mask. */
.menu-links .mh-mask { display:inline-grid;vertical-align:top;clip-path:inset(-.1em -.1em -.16em);pointer-events:none; }
.menu-links .mh-label { display:block;grid-area:1/1;pointer-events:none; }
.menu-contact .cta { position:relative; }
.menu-contact .cta::before { content:'';position:absolute;inset:0;background:var(--ink);opacity:0;pointer-events:none;transition:opacity 160ms cubic-bezier(.22,1,.36,1); }
.menu-contact .cta span { position:relative;z-index:1; }
.menu a:focus-visible,.nav-toggle:focus-visible { outline:2px solid currentColor;outline-offset:4px; }
.menu-contact .cta:focus-visible { outline-color:var(--ink); }
@media(hover:hover) and (pointer:fine) {
 .menu-contact .cta:hover::before { opacity:1;transition-duration:180ms; }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 /* One glyph layer: ink / accent / ink stripes pass left to right through it. */
 .menu.mh-ready .menu-links a:not([aria-current="location"]) .mh-source {
  color:transparent;background-image:linear-gradient(90deg,var(--ink) 0 33.333333%,var(--accent) 33.333333% 66.666667%,var(--ink) 66.666667% 100%);
  background-size:300% 100%;background-position:100% 0;background-repeat:repeat-x;
  -webkit-background-clip:text;background-clip:text;
 }
 .menu:not(.mh-ready) .menu-links a:not([aria-current="location"]):hover .mh-source { color:var(--accent); }
}
@media(max-width:900px),(pointer:coarse) {
 html.mm-ready .nav-toggle span { transition-duration:180ms; }
 html.mm-ready.nav-open:not(.menu-closing) .nav-toggle span { transition-duration:220ms; }
}
@media(prefers-reduced-motion:reduce) {
 .menu.mm-surface,.menu .mm-mask { clip-path:none; }
 html.mm-ready .nav-toggle span,.menu-contact .cta::before { transition:none!important; }
 .menu-links a:not([aria-current="location"]):hover .mh-source { color:var(--accent); }
}
