/* Ellie movement and anchor alignment — November 2026.
   Same treatment on both pages, while preserving the approved page palettes. */
:root{
  --ellie-motion-ease:cubic-bezier(.22,.61,.36,1);
  --ellie-category-nav-height:64px;
}

/* Native anchor fallback when JavaScript is unavailable. */
html.menu-document{
  scroll-padding-top:calc(var(--ellie-category-nav-height) + 12px)!important;
}
html.menu-document body.menu-page .menu-category{
  scroll-margin-top:calc(var(--ellie-category-nav-height) + 12px)!important;
}
html:not(.menu-document) #about,
html:not(.menu-document) #visit,
html:not(.menu-document) #menu,
html:not(.menu-document) #instagram,
html:not(.menu-document) #contact{
  scroll-margin-top:20px!important;
}

/* Keep the category filter a solid, anchored surface when scrolling. */
html.menu-document body.menu-page .menu-category-nav{
  position:sticky!important;
  top:0!important;
  z-index:80!important;
  background:#f3efe5!important;
  background-color:#f3efe5!important;
  box-shadow:none!important;
}
html.menu-document body.menu-page .menu-category h2{
  margin-top:0!important;
}

/* Fluid, concise interaction for the full-screen navigation. */
html body .site-overlay:not([hidden]){
  /* Opaque throughout: no ghosted lettering over the page on exit. */
  opacity:1;
  transform:none;
  clip-path:inset(0 0 100% 0);
  transition:clip-path .31s var(--ellie-motion-ease);
  pointer-events:none;
  will-change:clip-path;
}
html body .site-overlay.is-visible:not([hidden]){
  opacity:1;
  transform:none;
  clip-path:inset(0 0 0 0);
  pointer-events:auto;
}
html body .site-overlay .overlay-links a{
  transition:color .24s var(--ellie-motion-ease),
             transform .24s var(--ellie-motion-ease)!important;
}

/* Shorter, softer arrivals from one page to another. */
body::after{
  transition:opacity .30s var(--ellie-motion-ease)!important;
}

/* Section copy moves only a few pixels; the hero logo retains its own
   distinct centered vertical fade. */
@media(prefers-reduced-motion:no-preference){
  .js-motion body .contra-home [data-reveal]:not(#contra-hero-title),
  .js-motion body.menu-page [data-reveal]{
    transition:opacity .65s var(--ellie-motion-ease),
               transform .65s var(--ellie-motion-ease)!important;
  }
  .js-motion body .contra-home [data-reveal]:not(#contra-hero-title):not(.is-visible){
    transform:translateY(15px)!important;
  }
  .js-motion body.menu-page .menu-category[data-reveal]{
    transform:none!important;
  }
  .js-motion body.menu-page .menu-category[data-reveal]:target{
    opacity:1!important;
  }
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important;}
  html body .site-overlay,
  html body .site-overlay .overlay-links a,
  body::after,
  [data-reveal]{
    transition:none!important;
    animation:none!important;
  }
  html body .site-overlay:not([hidden]){
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  html body .site-overlay.is-visible:not([hidden]){
    clip-path:inset(0 0 0 0)!important;
  }
}

/* Menu links and controls respond quietly and consistently. */
html body .site-overlay .overlay-links a{
  transform:none!important;
  transition:color .2s ease, opacity .2s ease!important;
}
html body .site-overlay .overlay-links a:hover,
html body .site-overlay .overlay-links a:focus-visible{
  transform:none!important;
  opacity:.72;
}
html body .site-overlay .overlay-close{
  transition:opacity .2s ease!important;
}
html body .site-overlay .overlay-close:hover{
  opacity:.68;
}
/* The menu contents are present as one complete page — only anchors scroll. */
html.menu-document body.menu-page .menu-category,
html.menu-document body.menu-page .menu-photo-content,
html.menu-document body.menu-page .menu-content{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
}

/* Polished button feedback without changing approved outlines or sizing. */
html body .nav-toggle,
html body .site-overlay .overlay-close {
  transition:opacity .2s ease!important;
  -webkit-tap-highlight-color:transparent;
}
html body .nav-toggle:hover,
html body .site-overlay .overlay-close:hover{
  opacity:.72;
}
html body .ellie-button,
html body .ellie-inquiry-toggle,
html body .ellie-form-submit{
  transition:background-color .22s var(--ellie-motion-ease),
             color .22s var(--ellie-motion-ease),
             border-color .22s var(--ellie-motion-ease)!important;
  -webkit-tap-highlight-color:transparent;
}
html.menu-document body.menu-page .menu-category-nav a{
  transition:color .2s var(--ellie-motion-ease),
             text-decoration-color .2s var(--ellie-motion-ease)!important;
}


/* Navigation stability — completely opaque backdrop while menu text gently
   appears. Never clip the overlay over a different page's lettering. */
html body .site-overlay:not([hidden]),
html body .site-overlay.is-visible:not([hidden]){
  opacity:1!important;
  transform:none!important;
  clip-path:none!important;
  transition:none!important;
  pointer-events:auto!important;
  will-change:auto!important;
}
html body .site-overlay:not([hidden]) .overlay-bar,
html body .site-overlay:not([hidden]) .overlay-links,
html body .site-overlay:not([hidden]) .overlay-bottom{
  opacity:0;
  transform:translate3d(0,6px,0);
  transition:opacity .18s var(--ellie-motion-ease),
             transform .2s var(--ellie-motion-ease)!important;
}
html body .site-overlay.is-visible:not([hidden]) .overlay-bar,
html body .site-overlay.is-visible:not([hidden]) .overlay-links,
html body .site-overlay.is-visible:not([hidden]) .overlay-bottom{
  opacity:1;
  transform:translate3d(0,0,0);
}
/* Light feedback on logo controls, without zooming or shifting the wordmark. */
html body .site-overlay .overlay-logo,
html body .wild-header a.brand,
html body footer.footer a.brand{
  transition:opacity .18s ease!important;
  -webkit-tap-highlight-color:transparent;
}
html body .site-overlay .overlay-logo:hover,
html body .site-overlay .overlay-logo:focus-visible,
html body .wild-header a.brand:hover,
html body footer.footer a.brand:hover{
  opacity:.8;
}
body::after{
  transition:opacity .15s var(--ellie-motion-ease)!important;
}
/* Never let the menu content reveal in stages. */
html.menu-document body.menu-page .menu-category,
html.menu-document body.menu-page .menu-category [data-reveal],
html.menu-document body.menu-page .menu-photo-content{
  opacity:1!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
}
@media(prefers-reduced-motion:reduce){
  html body .site-overlay .overlay-bar,
  html body .site-overlay .overlay-links,
  html body .site-overlay .overlay-bottom,
  html body .site-overlay .overlay-logo,
  html body .wild-header a.brand,
  body::after{
    transition:none!important;
    transform:none!important;
  }
}


/* Cross-page links from the overlay let the letterforms settle away first.
   Backdrop remains completely opaque, avoiding ghosting onto the new page. */
html body .site-overlay.is-navigating:not([hidden]) .overlay-bar,
html body .site-overlay.is-navigating:not([hidden]) .overlay-links,
html body .site-overlay.is-navigating:not([hidden]) .overlay-bottom{
  opacity:0!important;
  transform:translate3d(0,-4px,0)!important;
  transition:opacity .145s var(--ellie-motion-ease),
             transform .145s var(--ellie-motion-ease)!important;
  pointer-events:none!important;
}
@media(prefers-reduced-motion:reduce){
  html body .site-overlay.is-navigating:not([hidden]) .overlay-bar,
  html body .site-overlay.is-navigating:not([hidden]) .overlay-links,
  html body .site-overlay.is-navigating:not([hidden]) .overlay-bottom{
    transform:none!important;
    transition:none!important;
  }
}
