/* SÓCRATES NOVA V19.14 — Motion premium + halo interactivo para mouse. */
:root{--nova-ease:cubic-bezier(.18,.82,.18,1);--nova-ink:#003865;--nova-cyan:#00a9e0;--nova-orange:#ed8b00}

@media(prefers-reduced-motion:no-preference){
  /* Animación al descubrir cada sección. Sin JS todo sigue siendo visible. */
  html.nova-motion-ready .nova-motion-item{
    transition-property:opacity,transform,clip-path,filter;
    transition-timing-function:var(--nova-ease);
    transition-duration:960ms;
    transition-delay:var(--nova-delay,0ms);
    will-change:auto;
  }
  html.nova-motion-ready .nova-motion-title:not(.nova-motion-seen){opacity:0;clip-path:inset(0 0 45% 0);transform:translateY(35px)}
  html.nova-motion-ready .nova-motion-title.nova-motion-seen{opacity:1;clip-path:inset(0 0 0 0);transform:none}
  html.nova-motion-ready .nova-motion-eyebrow:not(.nova-motion-seen){opacity:0;transform:translateX(-25px);filter:blur(3px)}
  html.nova-motion-ready .nova-motion-copy:not(.nova-motion-seen){opacity:0;transform:translateY(25px);filter:blur(4px)}
  html.nova-motion-ready .nova-motion-panel:not(.nova-motion-seen){opacity:0;transform:translateY(36px) scale(.972);filter:blur(3px)}
  html.nova-motion-ready .nova-motion-line:not(.nova-motion-seen){opacity:0;transform:translateX(-23px);clip-path:inset(0 58% 0 0)}
  html.nova-motion-ready .nova-motion-item.nova-motion-seen{opacity:1;transform:none;filter:none;clip-path:inset(0 0 0 0)}

  /* Microinteracciones en navegación y CTAs. */
  :is(.btn,.header-cta,.radar-start,.footer-social a,.primary-nav>a,.text-action,.footer-prelude .cta-orbit){
    transition:background-color .28s ease,color .28s ease,border-color .28s ease,
      box-shadow .38s var(--nova-ease),filter .28s ease,translate .35s var(--nova-ease);
  }
  :is(.btn,.header-cta,.radar-start,.footer-prelude .cta-orbit):hover{
    translate:0 -3px;
    filter:brightness(1.06);
    box-shadow:0 15px 35px rgba(0,32,61,.18);
  }
  :is(.btn,.header-cta,.radar-start,.text-action) .icon{
    transition:translate .32s var(--nova-ease),rotate .32s var(--nova-ease);
  }
  :is(.btn,.header-cta,.radar-start,.text-action):hover .icon:last-child{
    translate:4px -2px;
    rotate:-7deg;
  }
  .primary-nav>a:hover,.footer-social a:hover{filter:brightness(1.18)}
  :is(.service-card,.method-card,.support-card,.human-equation-card,.essence-pills span,.radar-step,.portfolio-card){
    transition:border-color .35s ease,box-shadow .42s var(--nova-ease),
      background-color .35s ease,translate .42s var(--nova-ease);
  }
  :is(.service-card,.method-card,.support-card,.human-equation-card,.essence-pills span):hover{
    translate:0 -5px;
    border-color:rgba(0,169,224,.64);
    box-shadow:0 19px 45px rgba(0,25,52,.18);
  }
  .service-icon,.method-icon{transition:filter .35s ease,rotate .4s var(--nova-ease)}
  .service-card:hover .service-icon,.method-card:hover .method-icon{filter:brightness(1.17);rotate:4deg}
  :is(.contact-form input,.contact-form textarea,.portfolio-search input):focus{
    box-shadow:0 0 0 4px rgba(0,169,224,.18);
  }
}

/* Reflejo localizado siguiendo el mouse; nunca desplaza las imágenes. */
@media(hover:hover) and (pointer:fine){
  :is(.service-card,.method-card,.support-card,.human-equation-card,.radar-step,.essence-pills span,.portfolio-card,.featured-project){
    position:relative;
    isolation:isolate;
  }
  :is(.service-card,.method-card,.support-card,.human-equation-card,.radar-step,.essence-pills span,.portfolio-card,.featured-project)::before{
    content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
    background:radial-gradient(240px circle at var(--nova-spot-x,50%) var(--nova-spot-y,50%),rgba(0,169,224,.15),transparent 75%);
    opacity:0;transition:opacity .3s ease;z-index:0;
  }
  :is(.service-card,.method-card,.support-card,.human-equation-card,.radar-step,.essence-pills span,.portfolio-card,.featured-project).nova-spot-on::before{opacity:1}
  /* Cursor decorativo que sigue al cursor del sistema. Nunca oculta el puntero real. */
  .nova-cursor-halo,.nova-cursor-dot,.nova-pointer-burst{position:fixed;left:0;top:0;pointer-events:none;user-select:none;border-radius:50%;z-index:160}
  .nova-cursor-halo{width:37px;height:37px;opacity:0;border:1.5px solid var(--nova-cyan);
    background:rgba(0,169,224,.075);box-shadow:0 0 19px rgba(0,169,224,.11);
    transition:width .28s ease,height .28s ease,opacity .22s ease,
      border-color .28s ease,background .28s ease,box-shadow .28s ease;
  }
  .nova-cursor-halo::after{content:"";position:absolute;width:5px;height:5px;top:-3px;left:50%;background:var(--nova-orange);border-radius:50%;box-shadow:0 0 9px var(--nova-orange);animation:nova-orbit 3.2s linear infinite;transform-origin:0 21px}
  @keyframes nova-orbit{to{rotate:360deg}}
  .nova-cursor-dot{width:5px;height:5px;background:var(--nova-orange);opacity:0;box-shadow:0 0 11px rgba(237,139,0,.4);transition:opacity .22s ease}
  html.nova-cursor-active .nova-cursor-halo,html.nova-cursor-active .nova-cursor-dot{opacity:1}
  html.nova-cursor-hover .nova-cursor-halo{width:59px;height:59px;border-color:var(--nova-orange);background:rgba(237,139,0,.12);box-shadow:0 0 0 6px rgba(237,139,0,.055)}
  html.nova-cursor-hover .nova-cursor-dot{background:var(--nova-cyan)}
  .nova-pointer-burst{width:18px;height:18px;border:2px solid var(--nova-orange);animation:nova-burst .62s ease-out both}
  @keyframes nova-burst{from{opacity:.8;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(-50%,-50%) scale(4)}}
}
@media(max-width:820px){
  html.nova-motion-ready .nova-motion-item{transition-duration:700ms}
}
@media(prefers-reduced-motion:reduce){
  html.nova-motion-ready .nova-motion-item,html.nova-motion-ready .nova-motion-item:not(.nova-motion-seen){
    opacity:1!important;filter:none!important;transform:none!important;clip-path:none!important;transition:none!important;
  }
  .nova-cursor-halo,.nova-cursor-dot,.nova-pointer-burst{display:none!important}
}
/* Ilustraciones solicitadas sin movimiento (también al pasar el mouse). */
.hero-people-image,.essence-art img,.promise-art img,
.home-hero .hero-stage-people img,.home-promise .promise-art img{
  animation:none!important;transition:none!important;transform:none!important;
}
