/* Performance layer: loaded last. Keeps the same look, costs the GPU/CPU less. */

/* 1. Header: blur on a fixed bar is re-painted on every scroll frame. Use a nearly solid background instead. */
#navbar,#navbar.scrolled{
  -webkit-backdrop-filter:none;backdrop-filter:none;
  background:rgba(255,255,255,.96);
}
.award-card,#projects .project-img-tag,#projects .project-img *,.mobile-menu{-webkit-backdrop-filter:none;backdrop-filter:none}
.mobile-menu{background:rgba(255,255,255,.99)}

/* 2. Animations pause when their section is off-screen (class set by js/perf.js) */
.perf-paused,.perf-paused *,.perf-paused *::before,.perf-paused *::after{animation-play-state:paused!important}

/* 3. Lite mode (older / low-power computers): drop decorative endless animations, keep the page content */
html.lite .hero-glow-a,html.lite .hero-glow-b,html.lite .hero-circuit,html.lite .stage-idle,
html.lite .stage-idle *,html.lite .iso-scene,html.lite .exp-strip *,html.lite .badge-icon,
html.lite .badge-icon::after,html.lite .seal-ring,html.lite .hp-ring,html.lite .hp-spark,
html.lite [class*="sweep"],html.lite .stat-num span:last-child{animation:none!important}
html.lite .reveal,html.lite .reveal-left,html.lite .reveal-right{transition-duration:.35s}

/* 4. Skip painting sections that are far below the screen until the visitor gets near them */
#services,#solutions,#projects,#why,.site-footer{content-visibility:auto;contain-intrinsic-size:auto 900px}

/* 5. Tell the browser which things will move so it prepares them once */
.reveal,.reveal-left,.reveal-right{will-change:opacity,transform}
.reveal.visible,.reveal-left.visible,.reveal-right.visible{will-change:auto}

/* 6. Pop-ups (award photo, certificate, product catalogue, project window): a blurred backdrop is re-blurred on every frame
   while the page behind moves. Use a plain darker colour instead - looks the same, costs nothing. */
.aw-overlay,.modal-overlay,.aw-dialog[open]::backdrop,.ab-dialog[open]::backdrop,.plc-dialog::backdrop,
.ab-zoom-btn,.ss-card,.project-img-tag{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.aw-overlay{background:rgba(6,22,49,.92)}
.modal-overlay{background:rgba(7,18,33,.88)}
.aw-dialog[open]::backdrop,.ab-dialog[open]::backdrop{background:rgba(6,22,49,.92)}
.plc-dialog::backdrop{background:rgba(6,22,49,.88)}
.aw-overlay .aw-dialog img,.ab-dialog img{will-change:transform,opacity}

/* 7. While any pop-up is open, freeze the animated page behind it (set by js/perf.js) */
html.popup-open #hero *,html.popup-open #about *,html.popup-open #projects *,
html.popup-open .exp-strip *,html.popup-open .hero-stats::after{animation-play-state:paused!important}

/* 8. Buttons / cards: animate only what changes (cheaper than "all") */
.btn-primary,.btn-secondary,.btn-download-profile,.service-card,.why-card,.solution-item,.contact-item{transition-property:transform,box-shadow,background-color,border-color,color,opacity}
