/* V38 - optimizaciones transversales. Colocado después de las hojas de cada vista. */
/* Congelar animaciones CSS fuera del viewport permite conservar el movimiento al regresar. */
.perf-paused *, .perf-paused::before, .perf-paused::after,
.perf-paused *::before, .perf-paused *::after { animation-play-state:paused !important; }
/* Revelados mediante transform y opacity, sin animación de filter que obliga a pintar cada frame. */
.manifesto [data-reveal], [data-web-reveal] {filter:none !important;transition-property:opacity,transform !important;}
.manifesto [data-reveal].is-visible, [data-web-reveal].web-visible {filter:none !important;}
/* Evitar capas compositadas enormes permanentemente cuando no se animan. */
.clients-track {will-change:auto;}
.perf-active .clients-track {will-change:transform;}
.hero-scene {will-change:auto;}
.hero.perf-active .hero-scene {will-change:transform;}
/* Soporte estable para móviles con Safari y barras dinámicas. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
img,svg,video,canvas {max-width:100%;}
.tunnel-canvas {max-width:none;}
.tunnel-body {overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;}
html.is-tunnel-page, .tunnel-body {scroll-behavior:auto;}
.station-bio-scroll {overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;}
.nav-mobile.open {max-height:calc(100dvh - 81px);overflow-y:auto;-webkit-overflow-scrolling:touch;}
:where(button,a,input,select,textarea) {touch-action:manipulation;}
@media (hover:none), (pointer:coarse) {
  /* El alto costo de varios backdrops anidados se nota en Safari iOS y Android. */
  .site-header {backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);}
  .solution-card,.holo-surface,.tunnel-controls {backdrop-filter:none;-webkit-backdrop-filter:none;}
  .holo-conduits path {filter:none;}
  .manifesto-light,.contact-atmosphere,.clients-rail-glow {filter:none;opacity:.75;}
  .clients-marquee .client-logo.is-center {transform:translateY(-2px) scale(1.025);}
  .station-shell {filter:none;}
  .station-face {box-shadow:0 0 0 2px rgba(35,130,255,.18),0 0 34px rgba(19,124,255,.25),inset 0 0 24px rgba(35,91,255,.10);}
}
@media (max-width:700px) {
  .tunnel-view {min-height:390px;}
  .station-shell {height:min(650px,calc(100dvh - 165px));}
  .station-bio-scroll {overflow-x:hidden;}
  .web-preview-scan {animation-duration:9s;}
  .web-lab-shell,.web-service,.station-face {min-width:0;}
}
@media (max-width:400px) {
  .station-back {padding:14px 12px;}
  .station-back h2 {font-size:clamp(23px,6vw,28px);}
  .station-bio-scroll p {font-size:12.5px;}
}
@media (prefers-reduced-motion: reduce) {
  .web-preview-scan {animation:none !important;}
}
/* RAM reducida o modo ahorro: se mantienen colores y diseño, se abarata el trabajo gráfico. */
:root[data-perf="lite"] .site-header {backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(3,8,28,.97);}
:root[data-theme="light"][data-perf="lite"] .site-header {background:rgba(246,250,255,.98);}
:root[data-perf="lite"] .web-preview-scan {animation-duration:12s;box-shadow:0 0 15px rgba(60,144,255,.15);}
:root[data-perf="lite"] .holo-core-hotspot {animation:none;}
