/* Simple Impressive Preloader & Smooth Scrolling (MU Plugin) */

/* Smooth Scrolling Base Styles */

/* Safari-specific optimizations */
@supports (-webkit-appearance: none) {
  /* Safari detected - optimize for performance */
  html {
    scroll-behavior: smooth;
    overflow-x: hidden;
  }

  body {
    overflow-x: hidden;
  }

  /* Fix double scrollbar issue */
  html, body {
    width: 100%;
    max-width: 100vw;
  }

  /* Reduce GPU load on Safari - but avoid applying to all elements */
  .scroll-optimized {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  /* Optimize SVG rendering on Safari */
  svg {
    shape-rendering: optimizeSpeed;
  }
}

/* Lenis Smooth Scrolling Base Styles (Chrome/Firefox) */
html.lenis {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

/* Performance optimizations for all browsers */
.scroll-optimized {
  will-change: transform;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* Fix unwanted space and scrollbar issues */
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
}

/* Ensure no elements cause horizontal overflow */
* {
  box-sizing: border-box;
}

/* Fix any elements that might be causing overflow */
.container, .row, .col, [class*="col-"] {
  max-width: 100%;
}

/* Prevent images and media from overflowing */
img, video, iframe, svg {
  max-width: 100%;
  height: auto;
}

/* Container */
.hf-preloader {
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  display: flex; align-items: center; justify-content: center;
  z-index: 999999;
  background: #ffffff; /* solid background for reliability */
  transition: opacity .9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity;
}
.hf-preloader.hidden, .hf-preloader.is-fading { opacity: 0; pointer-events: none; visibility: visible !important; }

/* Cityscape container */
.hf-preloader-cityscape { display: flex; flex-direction: column; align-items: center; justify-content: center; top:-100px }

/* SVG size */
.hf-preloader-cityscape svg { width: 350px; height: 120px; display: block; clip-path: inset(100% 0 0 0); animation: ndp-preloader-reveal 2.5s linear forwards; }
@keyframes ndp-preloader-reveal { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0% 0 0 0); } }

/* Text */
.hf-preloader-text {
  margin-top: 10px; /* desktop gap */
  font-size: 1.2rem; font-weight: 700; text-align: center;
  background: linear-gradient(90deg, var(--hf-primary, #006aff) 0%, var(--hf-secondary, #fea33a) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  letter-spacing: 0.5em; animation: ndp-preloader-text 2.5s ease-out forwards;
}
@keyframes ndp-preloader-text { from { letter-spacing: 0.5em; opacity: 0.7; } to { letter-spacing: 0.05em; opacity: 1; } }

/* Responsive */
@media (max-width: 768px) { .hf-preloader-cityscape svg{ width:280px;height:96px;} .hf-preloader-text{ font-size:1rem; margin-top:5px; letter-spacing:0.4em; } }
@media (max-width: 480px) { .hf-preloader-cityscape svg{ width:250px;height:86px;} .hf-preloader-text{ font-size:0.9rem; margin-top:5px; letter-spacing:0.3em; } }

/* Body state */
body.hf-preloader-active { overflow: hidden; height: 100vh; }



/* width */
::-webkit-scrollbar {
  width: 8px;
}

/* Track */
::-webkit-scrollbar-track {
  background: #f1f1f100; 
}
 
/* Handle */
::-webkit-scrollbar-thumb {
  background: #0080ffb9; 
  border-radius: 50px;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
  background: #ff7b00; 
    border-radius: 50px;

}