/* The original W cursor and interaction language, shared by every wen page. */
body, a, button, [role="button"], summary, .project-card, .hero-cta,
.nav-links a, .social-link, .back-btn, .contact-email, .nav-back { cursor:auto!important; }
a,button,[role="button"],summary { cursor:pointer!important; }
#custom-cursor {
  display:none!important;
  width:38px;height:38px;position:fixed;top:0;left:0;
  pointer-events:none;z-index:99999;
  background:url('a18b6630e5f7b492.png') center/contain no-repeat;
  mix-blend-mode:multiply;opacity:.9;
  transform:translate(-50%,-50%);
  transition:transform .18s ease;
}
body.wen-pointer-active,body.wen-pointer-active * { cursor:none!important; }
body.wen-pointer-active #custom-cursor { display:block!important; }
#custom-cursor.hover { transform:translate(-50%,-50%) scale(1.5) rotate(-8deg); }
.hero-cta {
  transition:background .25s ease,color .25s ease,border-color .25s ease,
    transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease;
}
.text-link {
  border-bottom-color:transparent;
  background-image:linear-gradient(var(--terra),var(--terra));
  background-position:left bottom;background-size:100% 1px;background-repeat:no-repeat;
  transition:color .25s ease,background-size .35s ease,transform .3s ease;
}
@media (hover:hover) {
  .hero-cta:hover { transform:translateY(-3px);box-shadow:0 9px 22px rgba(43,36,32,.16); }
  .text-link:hover { transform:translateX(4px);background-size:45% 1px;border-bottom-color:transparent; }
}
.hero-cta:focus-visible { transform:translateY(-3px);box-shadow:0 9px 22px rgba(43,36,32,.16); }
.hero-cta:active { transform:translateY(0) scale(.98);box-shadow:0 2px 6px rgba(43,36,32,.12); }
.wen-motion-ready .wen-reveal {
  opacity:0;translate:0 18px;
  transition:opacity .7s ease,translate .7s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--wen-reveal-delay,0ms);
}
.wen-motion-ready .wen-reveal.wen-visible { opacity:1;translate:0 0; }
/* Offer cards echo the portfolio's gentle lift and enlargement. */
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .offers-grid .start-option,
  .wen-motion-ready .offers-grid .start-option.wen-reveal {
    position:relative;
    transform-origin:center top;
    transition:opacity .7s ease var(--wen-reveal-delay,0ms),
      translate .7s cubic-bezier(.22,1,.36,1) var(--wen-reveal-delay,0ms),
      transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s ease;
  }
  .offers-grid .start-option:hover,
  .offers-grid .start-option:has(:focus-visible) {
    transform:translateY(-6px) scale(1.02);
    box-shadow:6px 14px 36px rgba(43,36,32,.16);
    z-index:1;
  }
}
/* The browser crossfades complete documents; the navigation stays in place. */
@view-transition { navigation:auto; }
.wen-nav { view-transition-name:wen-navigation; }
#custom-cursor { view-transition-name:wen-cursor; }
::view-transition-group(root) { animation-duration:.34s; }
::view-transition-old(root) { animation:wen-page-out .24s ease both; }
::view-transition-new(root) { animation:wen-page-in .34s ease both; }
::view-transition-group(wen-navigation),::view-transition-group(wen-cursor) { animation:none; }
::view-transition-old(wen-navigation),::view-transition-old(wen-cursor) { display:none; }
::view-transition-new(wen-navigation),::view-transition-new(wen-cursor) { animation:none; }
@keyframes wen-page-out { to { opacity:0; } }
@keyframes wen-page-in { from { opacity:0; } to { opacity:1; } }
/* Progressive fallback for browsers without cross-document View Transitions. */
.wen-page-fallback body>main,.wen-page-fallback body>section,
.wen-page-fallback body>.proj-hero,.wen-page-fallback body>.board,
.wen-page-fallback body>footer,.wen-page-fallback body>.proj-footer {
  transition:opacity .22s ease;
}
.wen-page-fallback.wen-leaving body>main,.wen-page-fallback.wen-leaving body>section,
.wen-page-fallback.wen-leaving body>.proj-hero,.wen-page-fallback.wen-leaving body>.board,
.wen-page-fallback.wen-leaving body>footer,.wen-page-fallback.wen-leaving body>.proj-footer { opacity:0; }
.wen-page-fallback:not(.wen-leaving) body>main,
.wen-page-fallback:not(.wen-leaving) body>.proj-hero { animation:wen-page-in .34s ease both; }
/* Reduced motion keeps the brand cursor and visible hover feedback. */
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  #luz-global,.scroll-line,.habitar-title.typing::after { animation:none!important; }
  .wen-motion-ready .wen-reveal { translate:none;transition:opacity .12s ease;transition-delay:0ms; }
  .reveal { transform:none;transition:opacity .12s ease; }
  #custom-cursor,#custom-cursor.hover { transition:none;transform:translate(-50%,-50%); }
  .hero-cta:hover,.hero-cta:focus-visible,.hero-cta:active,.text-link:hover { transform:none; }
  ::view-transition-old(root),::view-transition-new(root) { animation-duration:.1s; }
}
