/* Onda creativa: transizione del menu principale tra una sezione e l'altra. */
.zen-triangle-menu.is-leaving{
  animation:none !important;
  transform:translate3d(0,0,0) !important;
  pointer-events:none;
}

.zen-triangle-menu.is-leaving::after{animation:none !important;opacity:.95}

.zen-triangle-menu.is-leaving .menu-art,
.zen-triangle-menu.is-leaving svg{
  transform-origin:var(--zen-wave-menu-x,50%) var(--zen-wave-menu-y,50%);
  animation:zen-menu-dive .52s cubic-bezier(.2,.78,.18,1) both !important;
}

.zen-triangle-menu.is-leaving a{
  transition:opacity .24s ease,transform .34s cubic-bezier(.2,.82,.22,1),filter .28s ease,box-shadow .28s ease !important;
}

.zen-triangle-menu a{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

.zen-triangle-menu.is-leaving a:not(.is-selected){
  opacity:.18 !important;
  transform:scale(.82) !important;
  filter:saturate(.65) blur(.35px);
}

.zen-triangle-menu.is-leaving a.is-selected{
  z-index:3;
  opacity:1 !important;
  transform:scale(1.1) !important;
  background:radial-gradient(circle,rgba(255,255,255,.52),transparent 66%);
  box-shadow:0 0 0 2px rgba(255,255,255,.56),0 0 28px 8px var(--zen-wave-color,#eec432);
  filter:brightness(1.18) saturate(1.22);
}

.zen-menu-warp{
  position:fixed;
  z-index:9997;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  isolation:isolate;
  background:radial-gradient(circle at var(--zen-wave-x,50vw) var(--zen-wave-y,50vh),rgba(255,255,255,.5) 0%,var(--zen-wave-color,#eec432) 2%,rgba(255,255,255,.16) 11%,transparent 31%);
  animation:zen-wave-veil .56s ease-out both;
}

.zen-menu-warp::before,
.zen-menu-warp::after{
  content:"";
  position:absolute;
  left:var(--zen-wave-x,50vw);
  top:var(--zen-wave-y,50vh);
  border-radius:999px;
  transform:translate(-50%,-50%);
  z-index:0;
}

.zen-menu-warp::before{
  width:15vmax;
  height:15vmax;
  border:3px solid rgba(255,255,255,.93);
  box-shadow:0 0 0 1px var(--zen-wave-color,#eec432),0 0 28px 8px var(--zen-wave-color,#eec432);
  animation:zen-wave-ring .58s cubic-bezier(.12,.72,.18,1) both;
}

.zen-menu-warp::after{
  width:16vmax;
  height:16vmax;
  background:radial-gradient(circle,rgba(255,255,255,.92) 0%,var(--zen-wave-color,#eec432) 10%,rgba(255,255,255,.24) 25%,transparent 68%);
  mix-blend-mode:screen;
  animation:zen-wave-flash .5s ease-out both;
}

.zen-menu-note{
  position:absolute;
  left:var(--zen-note-x,50vw);
  top:var(--zen-note-y,50vh);
  z-index:2;
  color:#fff;
  font:700 clamp(25px,6vw,48px)/1 Georgia,serif;
  text-shadow:0 0 11px var(--zen-wave-color,#eec432),0 0 22px rgba(255,255,255,.7);
  transform:translate(-50%,-50%);
  animation:zen-note-burst .62s cubic-bezier(.16,.75,.22,1) both;
}

@keyframes zen-menu-dive{
  0%{opacity:1;transform:scale(1) rotate(0deg);filter:brightness(1)}
  58%{opacity:1;transform:scale(1.055) rotate(var(--zen-wave-tilt,.8deg));filter:brightness(1.18) saturate(1.18)}
  100%{opacity:0;transform:scale(1.28) rotate(var(--zen-wave-tilt,.8deg));filter:brightness(1.35) saturate(1.3) blur(1px)}
}

@keyframes zen-wave-ring{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.05)}
  16%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) scale(7.8)}
}

@keyframes zen-wave-flash{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.08)}
  20%{opacity:.9}
  100%{opacity:0;transform:translate(-50%,-50%) scale(6.6)}
}

@keyframes zen-wave-veil{
  0%{opacity:0}
  16%{opacity:1}
  100%{opacity:0}
}

@keyframes zen-note-burst{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(-14deg)}
  18%{opacity:1}
  100%{opacity:0;transform:translate(calc(-50% + var(--zen-note-dx)),calc(-50% + var(--zen-note-dy))) scale(1.24) rotate(16deg)}
}

@media(max-width:640px){
  .zen-triangle-menu.is-leaving .menu-art,
  .zen-triangle-menu.is-leaving svg{
    animation:zen-menu-dive-mobile 1.04s cubic-bezier(.16,.84,.2,1) both !important;
    filter:none !important;
  }
  .zen-triangle-menu.is-leaving a{
    transition:opacity .34s ease,transform .62s cubic-bezier(.16,.84,.2,1),background .35s ease,box-shadow .35s ease !important;
  }
  .zen-triangle-menu.is-leaving a:not(.is-selected){
    opacity:.38 !important;
    transform:scale(.94) !important;
    filter:none;
  }
  .zen-triangle-menu.is-leaving a.is-selected{
    transform:scale(1.045) !important;
    filter:none;
    box-shadow:0 0 0 1px rgba(255,255,255,.48),0 0 18px 3px var(--zen-wave-color,#eec432);
  }
  .zen-menu-warp,
  .zen-menu-warp::before,
  .zen-menu-warp::after,
  .zen-menu-note{will-change:transform,opacity}
  .zen-menu-warp.is-mobile{background:transparent;animation:none;contain:paint}
  .zen-menu-warp.is-mobile::before{
    width:clamp(170px,54vw,250px);
    height:clamp(170px,54vw,250px);
    border-width:2px;
    box-shadow:0 0 16px 2px var(--zen-wave-color,#eec432);
    animation:zen-wave-ring-mobile .88s cubic-bezier(.16,.84,.2,1) both;
  }
  .zen-menu-warp.is-mobile::after{
    width:clamp(150px,48vw,220px);
    height:clamp(150px,48vw,220px);
    mix-blend-mode:normal;
    animation:zen-wave-flash-mobile .7s ease-out both;
  }
  .zen-menu-warp.is-mobile .zen-menu-note{
    z-index:2;
    font-size:clamp(30px,8vw,44px);
    text-shadow:0 0 8px rgba(255,255,255,.95),0 0 22px var(--zen-wave-color,#eec432);
    -webkit-text-stroke:.35px rgba(255,255,255,.68);
    animation:zen-note-burst-mobile .8s cubic-bezier(.16,.75,.22,1) both;
  }
}

@keyframes zen-menu-dive-mobile{
  0%{opacity:1;transform:scale(1) rotate(0deg)}
  34%{opacity:1;transform:scale(1.025) rotate(var(--zen-wave-tilt,.6deg))}
  72%{opacity:.94;transform:scale(1.075) rotate(var(--zen-wave-tilt,.6deg))}
  100%{opacity:0;transform:scale(1.13) rotate(var(--zen-wave-tilt,.6deg))}
}

@keyframes zen-wave-veil-mobile{
  0%{opacity:0}
  14%{opacity:.94}
  62%{opacity:.48}
  100%{opacity:0}
}

@keyframes zen-wave-ring-mobile{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.08)}
  18%{opacity:.9}
  76%{opacity:.42}
  100%{opacity:0;transform:translate(-50%,-50%) scale(3.15)}
}

@keyframes zen-wave-flash-mobile{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}
  24%{opacity:.72}
  100%{opacity:0;transform:translate(-50%,-50%) scale(2.4)}
}

@keyframes zen-note-burst-mobile{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.42) rotate(-10deg)}
  22%{opacity:1}
  62%{opacity:.9}
  100%{opacity:0;transform:translate(calc(-50% + var(--zen-note-dx)),calc(-50% + var(--zen-note-dy))) scale(1.12) rotate(12deg)}
}

@media(prefers-reduced-motion:reduce){
  .zen-triangle-menu.is-leaving .menu-art,
  .zen-triangle-menu.is-leaving svg{animation:zen-menu-reduced-fade .24s ease-out both !important}
  .zen-menu-warp.is-reduced-motion{animation:zen-wave-reduced-veil .24s ease-out both !important}
  .zen-menu-warp.is-reduced-motion::before{animation:zen-wave-reduced-ring .24s ease-out both !important}
  .zen-menu-warp.is-reduced-motion::after{animation:zen-wave-reduced-flash .24s ease-out both !important}
  .zen-menu-warp.is-reduced-motion .zen-menu-note{display:none}
}

@keyframes zen-menu-reduced-fade{
  0%{opacity:1;filter:brightness(1)}
  100%{opacity:0;filter:brightness(1.28)}
}

@keyframes zen-wave-reduced-veil{
  0%{opacity:0}
  45%{opacity:.82}
  100%{opacity:0}
}

@keyframes zen-wave-reduced-ring{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.08)}
  50%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) scale(2.25)}
}

@keyframes zen-wave-reduced-flash{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.12)}
  48%{opacity:.86}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.75)}
}
