/**
 * Safari / WebKit compatibility helpers.
 * Visual-neutral: text adjust, touch scroll, safe-area, search input.
 * Load AFTER style.css / style.min.css.
 *
 * Phase 1 also mirrors critical Safari scroll-cost overrides here so homepage
 * (style.min.css) and inner pages (style.css) stay aligned after deploys.
 */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* Phase 1 — frosted nav: lighter blur (overrides style / style.min) */
nav {
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(8px) saturate(140%);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
  transition:
    top 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    background-color 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    padding 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

nav.scrolled {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(4px) saturate(120%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
}

@media (max-width: 900px) {
  nav {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(4px) saturate(120%);
    -webkit-backdrop-filter: blur(4px) saturate(120%);
  }

  nav.scrolled {
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
}

/* Phase 1 — pause off-screen marquees (class set by main.js) */
.sa-marquee-paused .portfolio-track.pf-ready,
.sa-marquee-paused .testi-track.testi-ready,
.sa-marquee-paused .task-track {
  animation-play-state: paused !important;
}

.sa-marquee-paused .portfolio-track,
.sa-marquee-paused .testi-track,
.sa-marquee-paused .task-track {
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  nav,
  nav.scrolled {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(255, 255, 255, 0.96);
  }

  .portfolio-track,
  .portfolio-track.pf-ready,
  .testi-track,
  .testi-track.testi-ready,
  .task-track,
  .task-track.v2 {
    animation: none !important;
    will-change: auto !important;
  }
}

input[type="search"] {
  -webkit-appearance: none;
  appearance: none;
}

/* Touch scroll momentum on overflow panels */
.nl-overlay,
.pf-lightbox,
.lead-popup-overlay,
.gos-install-overlay,
.dpop-overlay,
[data-scroll-panel],
.hiw-process__flow,
.quiz-card,
.hero-banner-form {
  -webkit-overflow-scrolling: touch;
}

/* Safe-area padding for fixed overlays on notched iPhones */
@supports (padding: max(0px)) {
  .nl-overlay,
  .pf-lightbox,
  .lead-popup-overlay,
  .gos-install-overlay,
  .dpop-overlay,
  #lead-popup-overlay {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
}

/* Scroll-lock helper class (set by SAScrollLock) — overflow only, never position:fixed */
html.sa-scroll-locked,
html.sa-scroll-locked body {
  overflow: hidden !important;
  overscroll-behavior: none;
}
