*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}
/* Apply smooth scrolling behavior */
html {
    scroll-behavior: smooth;
}
/* Custom Utility for wide letter-spacing */
.tracking-wider-lg { letter-spacing: 0.25em; }

.bodoni-moda {
    font-family: "Bodoni Moda", serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
  }

.lora {
    font-family: "Lora", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
  }

  .poppins {
    font-family: "Poppins", sans-serif;
    font-style: normal;
  }

  .poppins-thin {
    font-family: "Poppins", sans-serif;
    font-weight: 100;
    font-style: normal;
  }
  
  .poppins-extralight {
    font-family: "Poppins", sans-serif;
    font-weight: 200;
    font-style: normal;
  }
  
  .poppins-light {
    font-family: "Poppins", sans-serif;
    font-weight: 300;
    font-style: normal;
  }
  
  .poppins-regular {
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    font-style: normal;
  }
  
  .poppins-medium {
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    font-style: normal;
  }
  
  .poppins-semibold {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-style: normal;
  }
  
  .poppins-bold {
    font-family: "Poppins", sans-serif;
    font-weight: 700;
    font-style: normal;
  }
  
  .poppins-extrabold {
    font-family: "Poppins", sans-serif;
    font-weight: 800;
    font-style: normal;
  }
  
  .poppins-black {
    font-family: "Poppins", sans-serif;
    font-weight: 900;
    font-style: normal;
  }
  
  .poppins-thin-italic {
    font-family: "Poppins", sans-serif;
    font-weight: 100;
    font-style: italic;
  }
  
  .poppins-extralight-italic {
    font-family: "Poppins", sans-serif;
    font-weight: 200;
    font-style: italic;
  }
  
  .poppins-light-italic {
    font-family: "Poppins", sans-serif;
    font-weight: 300;
    font-style: italic;
  }
  
  .poppins-regular-italic {
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    font-style: italic;
  }
  
  .poppins-medium-italic {
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    font-style: italic;
  }
  
  .poppins-semibold-italic {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-style: italic;
  }
  
  .poppins-bold-italic {
    font-family: "Poppins", sans-serif;
    font-weight: 700;
    font-style: italic;
  }
  
  .poppins-extrabold-italic {
    font-family: "Poppins", sans-serif;
    font-weight: 800;
    font-style: italic;
  }
  
  .poppins-black-italic {
    font-family: "Poppins", sans-serif;
    font-weight: 900;
    font-style: italic;
  }
  




/* Fade + slide for text */
  .fade-left {
    opacity: 0;
    transform: translateX(-80px);
    transition: opacity 1s ease-out, transform 1s ease-out;
  }
  .fade-left.show {
    opacity: 1;
    transform: translateX(0);
  }

  .fade-right {
    opacity: 0;
    transform: translateX(80px);
    transition: opacity 1s ease-out, transform 1s ease-out;
  }
  .fade-right.show {
    opacity: 1;
    transform: translateX(0);
  }


  /* Stronger slide (for bigger text block) */
  .fade-left-strong {
    opacity: 0;
    transform: translateX(-140px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
  }
  .fade-left-strong.show {
    opacity: 1;
    transform: translateX(0);
  }
  .fade-right-strong {
    opacity: 0;
    transform: translateX(140px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
  }
  .fade-right-strong.show {
    opacity: 1;
    transform: translateX(0);
  }

    /* Pop-in effect */
  .pop-in {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 2s ease-out, transform 2s ease-out;
  }
  
  .pop-in.visible {
    opacity: 1;
    transform: scale(1);
  }
  



    /* Slide up effect */

  .slide-up {
    opacity: 0;
    transform: translateY(300px);
    transition: opacity var(--duration,1s) ease-out,
                transform var(--duration,1s) ease-out;
  }

  .slide-up.show {
    opacity: 1;
    transform: translateY(0);
  }


    /* Hero slide effect */
  .hero-slide {
    opacity: 0;
    transition: opacity 1s ease-in-out;
  }
  
  .hero-slide.active {
    opacity: 1;
  }
  