a-scene {
  display: block;
  position: relative;
  height: 100%;
  width: 100%;
}

a-assets, a-scene audio, a-scene img, a-scene video {
  display: none;
}


@font-face {
  font-family: 'Astonpoliz';
  src: url('Bauhaus/Astonpoliz.ttf') format('truetype');
}



.footer .about-btn {
  z-index: 11;
  right: 0;
  top: 0;
  color: #000000;
  padding-bottom: 2px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  position: absolute;
  display: block;
  margin: 20px;
  font-family: "Roboto", sans-serif;
  font-size: 1.5vmin;
  text-decoration: none;
}

.footer .about-btnn {
  z-index: 11;
  left: 0;
  top: 0;
  color: #ffffff;
  padding-bottom: 2px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  position: absolute;
  display: block;
  margin: 20px;
  font-family: "Roboto", sans-serif;
  font-size: 3vmin;
  text-decoration: none;
}

@media screen and (max-width: 620px) {
  .footer .about-btn {
    margin: 5px;
    color: #ffffff;
    font-size: 3vmin;
    left: 0;
    top: 0;
    position: relative;
  }
  .footer .about-btnn {
    margin: 5px;
    color: #ffffff;
    font-size: 4vmin;
    left: 0;
    top: 0;
    position: relative;
  }
}

.footer .about-btnn1 {
  z-index: 11;
  left: 0.4vmin;
  top: 4vmin;
  color: #ffffff;
  padding-bottom: 2px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  position: absolute;
  display: block;
  margin: 20px;
  font-family: "Roboto";
  font-size: 1.5vmin;
  text-decoration: none; }

  @media screen and (max-width: 620px) {
    .footer .about-btnn1 {
      margin: 5px;
      color: #CADDF3;
      font-size: 3vmin;
      left: 0;
      top: 0;
      position: relative; } }
  @media screen and (max-height: 620px) {
    .footer .about-btnn1 {
      margin: 5px;
      color: #CADDF3;
      font-size: 3vmin;
      left: 0;
      top: 0;
      position: relative; } }

.footer .about-btnn2 {
        z-index: 11;
        left: 0.4vmin;
        top: 6.5vmin;
        color: #CADDF3;
        padding-bottom: 2px;
        text-transform: uppercase;
        letter-spacing: 0.2em;
        position: absolute;
        display: block;
        margin: 20px;
        font-family: "Roboto";
        font-size: 1.5vmin;
        text-decoration: none; }
        @media screen and (max-width: 620px) {
          .footer .about-btnn2 {
            font-size: 15px; } }
        @media screen and (max-height: 620px) {
          .footer .about-btnn2 {
            font-size: 15px; } }


@media screen and (max-width: 620px) {
  .footer .terms {
    margin: 0 0 20px 0;
    text-align: left;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }

  .footer .credits {
    text-align: justify !important;
  }

  .footer .credits:after {
    content: '';
    display: inline-block;
    width: 100%;
    margin: 0 20px 30px 20px;
  }

  .footer .credits li {
    display: inline-block;
    margin: 0 0 0 0 !important;
  }
}

.footer .credits {
  z-index: 11;
  position: absolute;
  width: calc(40% - 40px);
  min-width: 1vmin;
  left: 0;
  bottom: 0;
  padding: 0;
  text-align: left;
  margin: 0 1vmin 0.8vmin 1vmin;
}

.footer .credits li {
  display: inline-block;
  margin: 0 0.5vmin 0 0.5vmin;
}

.footer .credits li:nth-of-type(1) img {
  width: 8.5vmin;
  height: 8.5vmin;
  border-radius: 5px;
  opacity: 1;
  box-shadow: 1px 1px 5px rgba(0, 0, 0, 1);
}

.footer .credits li:nth-of-type(2) img {
  width: 12.75vmin;
  height: 8.5vmin;
}

@media screen and (max-width: 460px) {
  .footer .credits li:nth-of-type(1) img {
    height: 22vmin;
    width: 22vmin;
    position: absolute;
    left: 10px;
    bottom: 10px;
    
  }
  .footer .credits li:nth-of-type(2) img {
    height: 0vmin;
    width: 0vmin;
    position: absolute;
    left: 21vmin; /* Adjusted this value */
    bottom: 10px;
  }
}


.footer .credits li:nth-of-type(3) img {
  width: 8.5vmin;
  height: 8.5vmin;
}

@media screen and (max-width: 460px) {
  .footer .credits li:nth-of-type(3) img {
    width: 8.5vmin;
  }
}


  
.loading-text {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #ffffff;
  font-size: 2vmin;
  opacity: 100%;
  font-weight: 300;
  letter-spacing: 0.1em;
  font-family: "Roboto", sans-serif;
   text-transform: uppercase;
}
  
@media screen and (max-width: 460px) {
  .loading-text {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #74a5ff;
  font-size: 5vmin;
  opacity: 100%;
  font-weight: 300;
  letter-spacing: 0.1em;
  font-family: "Roboto", sans-serif;
   text-transform: uppercase;
}
}


.dot {
  display: inline-block;
  animation: blink 1.4s infinite both;
}

.dot:nth-child(1) { animation-delay: 0s; }
.dot:nth-child(2) { animation-delay: 0.2s; }
.dot:nth-child(3) { animation-delay: 0.4s; }

@keyframes blink {
  0%, 100% { opacity: 0; }
  50% { opacity: 1; }
}

.loading-img {
  position: absolute;
  bottom: 30%;
  width: 200px; /* Set a specific width */
  height: auto; /* Maintain aspect ratio */
  border-radius: 10px;
  opacity: 0.7;
}

.loading-title {
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #000000;
  opacity: 100%;
  font-size: 4.5vmin;
  font-weight: 300;
  font-family: "Roboto", sans-serif;
  letter-spacing: 0.1em;
}

.loading-credits{
  position: absolute;
  bottom: 2.5%;
  font-size: 1.25vmin;
  font-weight: 300;
  font-family: "Roboto", sans-serif;
  color: #000000;
}


@media screen and (max-width: 460px) {
  .loading-text {
    top: 35%;
    font-size: 6.5vmin;
    white-space: nowrap; /* Prevents text wrapping */
    overflow: hidden;
    text-overflow: ellipsis; /* Adds ellipsis for overflowed text */
  }

  .loading-credits{
    position: absolute;
    bottom: 2.5%;
    font-size: 3.25vmin;
    font-weight: 300;
    font-family: 'Roboto', sans-serif; /* Use the custom font */
    color: #000000;
  }

  .loading-title  {
    position: absolute;
    top: 2%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #000000;
    opacity: 100%;
    font-size: 6vmin; /* Adjusted font size */
    font-weight: 300;
    font-family: 'Roboto', sans-serif; /* Use the custom font */
    white-space: nowrap; /* Prevents text wrapping */
    overflow: hidden;
    text-overflow: ellipsis; /* Adds ellipsis for overflowed text */
  }
}

#mobile-popup {
  display: none; /* Default to hidden */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(2px);
  z-index: 100; /* To ensure it's above everything else */
  justify-content: center;
  align-items: center;
  font-family: 'Roboto', sans-serif;
 
}

#popup-content-title {
  background-color: #ffffff9d;
   backdrop-filter: blur(2px);
  padding: 10px;
  color: #000000;
  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.148);
  border-radius: 5px;
  max-width: 90%;
  text-align: justify;
  margin-top: 1px;
  font-size: 4vmin;
}

#popup-content {
  background-color: #ffffff9d;
   backdrop-filter: blur(2px);
  padding: 10px;
  color: #000000;
  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.148);
  border-radius: 5px;
  max-width: 90%;
  text-align: justify;
  margin-top: 1px;
  font-size: 4vmin;
}

#popup-content img {
  max-width: 100%; /* Ensures the image is not wider than the popup */
  height: auto; /* Keeps the image aspect ratio intact */
  border-radius: 10px; /* Adds rounded corners to the image */
  padding: 0px;
}


#popup-content-preview-info {
  color: #000000;
  text-align: justify;
  font-size: 4vmin;
}

button#close-popup-mobile {
  background: rgb(72, 139, 255);
  color: #54ff88;
  margin-top: 1px;
  font-family: 'Roboto', sans-serif;
  text-align: center;
  justify-content: center;
  font-size: 5vmin;
  border-radius: 30px;
  border: none; /* Add this line to remove the border */
  cursor: pointer; /* Optional: Changes cursor to pointer on hover for better UX */
}

#info-world-container {
  display: flex;
  flex-direction: column; /* Stack the child elements vertically */
  align-items: flex-start; /* Align children to the start of the container */
  position: fixed;
  top: 15px; /* Adjust as needed for spacing from the top edge */
  left: 15px; /* Adjust as needed for spacing from the left edge */
  z-index: 1000; /* Ensure it's above other elements */
}

#info-world{
  display: inline-block; /* Allows the element to be only as wide as its content */
  background-color: #ffffffc0;
  padding: 5px 10px;
  border-radius: 5px;
  margin-top: 5px; /* Space between the elements */
  margin-bottom: 5px; /* Space between the elements */
  font-size: 2.5vmin;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.3s ease;
  letter-spacing: 0.2em;
  font-family: 'roboto', sans-serif;
  font-weight: 300;
  color: #000000;
  box-shadow: 5px 5px 5px rgba(0, 0, 0,0.11);
    backdrop-filter: blur(2px); /* Apply a blur filter to the background */
  
  position: relative; /* For absolute positioning of the after pseudo-element */
}

@media screen and (max-width: 768px) {
  #info-world {
    font-size: 3vmin;
    padding: 5px 5px;
  }
}

#switch-camera-btn {
  display: inline-block; /* Allows the element to be only as wide as its content */
  background-color: #ffffff93;
  padding: 5px 10px;
  border-radius: 200px;
  margin-top: 5px; /* Space between the elements */
  margin-bottom: 5px; /* Space between the elements */
  font-size: 2vmin; /* Smaller font size than #info-world */
  text-decoration: none;
  cursor: pointer;
  transition: color 0.3s ease;
  letter-spacing: 0.2em;
  font-family: 'roboto', sans-serif;
  font-weight: 200;
  color: #000000;
  box-shadow: 5px 5px 5px rgba(0, 0, 0,0.11);
  position: relative; /* For absolute positioning of the after pseudo-element */
}

@media screen and (max-width: 768px) {
  #switch-camera-btn {
    display: none !important; /* Utilisez !important pour s'assurer que cela prend le dessus sur d'autres règles */
  }
}



#info-world::after {
  content: '';
  position: absolute;
  bottom: -5px; /* Adjust if necessary to position the underline correctly */
  left: 50%; /* Start from the middle */
  transform: translateX(-50%); /* Center the underline */
  height: 2px;
  border-radius: 100px; /* Makes edges rounded */
  background-color: #000000;
  transition: width 0.3s ease-in-out, left 0.3s ease-in-out;
  width: 0%; /* Start with no width */
}

 #switch-camera-btn::after {
  content: '';
  position: absolute;
  bottom: -5px; /* Adjust if necessary to position the underline correctly */
  left: 50%; /* Start from the middle */

  height: 2px;
  border-radius: 100px; /* Makes edges rounded */
  background-color: #000000;
  transition: width 0.3s ease-in-out, right 0.3s ease-in-out;
  width: 0%; /* Start with no width */
}

#info-world:hover::after{
  width: 40%; /* Extend to half width of the text on hover */
  left: 25%; /* Shift to the left by 25% of the element's width to center the underline */
}

#switch-camera-btn:hover::after {
  width: 40%; /* Extend to half width of the text on hover */
  right: 25%; /* Shift to the left by 25% of the element's width to center the underline */
}


.info-popup {
  display: none; /* Initially hidden, display using JavaScript or additional classes */
  align-items: center; /* Center vertically */
  justify-content: center; /* Center horizontally */
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;

  background-size: 150% 150%;
  animation: GradientAnimation 30s ease infinite, fadeInBackground 0.3s ease-in-out forwards;
  backdrop-filter: blur(2px); /* Apply a blur filter to the background */
  z-index: 2000; /* Ensure it is above everything else */
  font-family: 'Roboto', sans-serif; /* Use the custom font */
}

@media screen and (max-width: 768px) {
  .info-popup {
    font-size: 3vmin;
    padding: 5px 5px;
  }
}



@keyframes GradientAnimation {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes fadeInBackground {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}


.info-title {
  font-size: 3vmin; /* Slightly larger than normal text */
  margin-bottom: 10px; /* Spacing below the title */
  margin-top: 5px; /* Spacing below the title */
  text-align: left;
  font-weight: 300; /* Bold text */
  
}

@media (max-width: 768px) {
  .info-title {
    font-size: 6vmin;
    font-weight: 200;
  }
}

.info-popup p {
  font-size: 1.5vmin;
  margin-top: 5px; /* Reduced top margin */
  margin-bottom: 10px; /* Reduced bottom margin */
  color: #000000; /* Lighter text color */
  font-weight: 300; /* Bold text */
 
}

@media (max-width: 768px) {
  .info-popup p{
    font-size: 4vmin;
  }
}

.info-block .visit-maps {
  font-size: 16px; /* Taille de police pour PC */
}

@media screen and (max-width: 768px) {
  .info-block .visit-maps {
    font-size: 14px; /* Taille de police ajustée pour mobile */
  }
}



.visit-maps {
  font-size: 16px !important; /* pour PC */
}

@media screen and (max-width: 768px) {
  .visit-maps {
    font-size: 14px !important; /* pour mobile */
  }
}


.info-popup img {
  display: block; /* Makes the image a block element */
  margin: 0 auto; /* Centers the image */
  max-width: 100%; /* Ensures the image is not larger than its container */
  height: auto; /* Maintains the aspect ratio of the image */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Shadow for depth */
  border-radius: 10px;
}

.image-container {
  position: relative;
  display: inline-block;
}

.image-container:hover .zoom-icon {
  visibility: visible;
}

.zoom-icon {
  position: absolute;
  top: 10px;
  right: 10px;
  visibility: hidden;
}

.image-container img:hover {
  transform: scale(1.05);
  transition: transform 0.5s ease;
}


/* WebKit scrollbar styles */
.info-block::-webkit-scrollbar {
  width: 12px; /* Width of the vertical scrollbar */
  border-radius: 6px; /* Rounded corners of the scrollbar thumb */
}

.info-block::-webkit-scrollbar-track {
  background: #f1f1f122; /* Color of the scrollbar track */
  border-radius: 6px; /* Rounded corners of the scrollbar thumb */
}

.info-block::-webkit-scrollbar-thumb {
  background-color: #72809d79; /* Color of the scrollbar thumb */
  border-radius: 6px; /* Rounded corners of the scrollbar thumb */
  border: 1px solid #f1f1f154; /* Creates padding around the scrollbar thumb */
}

/* Firefox scrollbar styles */
.info-block {
  scrollbar-width: thin; /* "auto" or "thin" */
  scrollbar-color: #a7a7a7 #f1f1f100; /* thumb and track color */
}

.info-block {
  padding: 20px;
  margin: auto;
  border-radius: 10px; /* Or as needed */
  background-color: #ffffff; /* Color of the scrollbar thumb */
  text-align: justify;
  /* Center the block in the viewport */
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 20%; /* Responsive width */
  width: 50%;
  max-height: 80%; /* Maximum height */
  max-width: 80%; /* Maximum height */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Shadow for depth */
  font-weight: 300; /* Lighter font weight */
  overflow-y: auto; /* Scroll if content is too long */
}

.info-block a {
  color: rgb(150, 150, 150);
  font-size: 1.25vmin;
  font-weight: 300;
}

a:visited {
  color: rgb(8, 0, 255); /* Color for visited links */
  font-size: 1.25vmin;
  font-weight: 300;
}

@media (max-width: 768px) {
  .info-block{
    font-size: 1.25vmin;
    width: 95%; /* Responsive width */
    overflow-y: auto; /* Scroll if content is too long */
    max-height: 85%; /* Maximum height */
  }
}


/* Smaller Title Style */
.info-small-title {
  font-size: 2vmin; /* Smaller than the main title */
  font-weight: 300;
  margin-top: 10px;
  margin-bottom: 10px;
  text-align: center;
  
}

@media (max-width: 768px) {
  .info-small-title {
    font-size: 5vmin;
    text-align: right;
    font-weight: 200;
  }
}

.info-small-title-second {
  font-size: 2vmin; /* Smaller than the main title */
  font-weight: 400;
  margin-top: 10px;
  margin-bottom: 10px;
  text-align: left;

}

@media (max-width: 768px) {
  .info-small-title-second {
    font-size: 5vmin;
    text-align: left;
    font-weight: 400;
  }
}

/* Additional Text Style */
.additional-text {
  color: #000000; /* Different color for this text */
  margin-top: 5px;
  margin-bottom: 5px;
  text-align: left;
}

@media (max-width: 768px) {
  .additional-text {
    font-size: 5vmin;
    text-align: justify;
    font-weight: 200;
  }
}

.close-popup {
  float: right;
  font-size: 1.5vmin;
  font-weight: bold;
  border: none;
  background: none;
  cursor: pointer;
  top: 0px;
  right: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Shadow for depth */
  border-radius: 100px;
}

@media (max-width: 768px) {
  .close-popup{
    font-size: 5vmin;
    text-align: justify;
    font-weight: 200;
    font-size: 5vmin;
  }
}

.close-popup:hover {
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); 

}

.info-icons {
  display: flex;
  justify-content: center; /* Center the icons horizontally */
  align-items: center; /* Center the icons vertically */
  padding: 10px 0; /* Add some padding at the top and bottom */
  gap: 40px; /* Adds space between flex items; adjust as needed */


}

/* Style for each icon */
.info-icon {
  width: 50px; /* Set the icon size as needed */
  height: auto; /* Maintain aspect ratio */
  transition: opacity 0.3s ease; /* Smooth transition for hover effect */
  opacity: 0.5;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Shadow for depth */
}

/* Hover effect for icons */
.info-icon:hover {
  opacity: 1; /* Slightly dim the icon on hover */
}


.popup-intro-navigation {
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: none;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.187); /* Semi-transparent background */
  backdrop-filter: blur(5px);
}

@media screen and (max-width: 768px) {
  .popup-intro-navigation {
    display: none !important; /* Utilisez !important pour s'assurer que cela prend le dessus sur d'autres règles */
  }
}


.popup-content {
  position: relative;
  margin: auto;
  background: rgba(255, 255, 255, 0.1);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  padding: 20px;
  max-width: 600px; /* Adjust based on your content size */
  text-align: center;
  border-radius: 50px;
}

.ok-button {
  position: absolute;
  bottom: 20px; /* Distance from the bottom of the popup-content */
  left: 50%;
  transform: translateX(-50%); /* Centers the button */
  padding: 10px 20px;
  background-color: #69ffc3; /* Green background */
  color: #74a5ff;
  border: none;
  cursor: pointer;
  border-radius: 5px;
}

.lang-toggle{
  position: fixed;
  top: 14px;
  right: 14px;
  z-index: 9999;
  display: flex;
  gap: 6px;
  padding: 6px;
  border-radius: 999px;
  background: rgba(0,0,0,0.35);
  backdrop-filter: blur(8px);
}

.lang-toggle .lang-btn{
  border: 0;
  cursor: pointer;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.92);
  font: 600 12px/1 system-ui, -apple-system, Segoe UI, Roboto, Arial;
  letter-spacing: 0.12em;
}

/* FORCE the active state to be visible (overrides other CSS) */
.lang-toggle .lang-btn.is-active{
  background: rgba(255,255,255,0.92) !important;
  color: rgba(0,0,0,0.92) !important;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.15) inset;
}

/* pill container */
.lang-toggle{
  position: fixed;
  top: 14px;
  right: 14px;
  z-index: 9999;
  display: inline-flex;
  gap: 6px;
  padding: 6px;
  border-radius: 999px;
  background: rgba(0,0,0,0.35);
  backdrop-filter: blur(8px);
  pointer-events: auto;
}

/* buttons */
.lang-toggle .lang-btn{
  border: 0;
  cursor: pointer;
  padding: 8px 10px;
  border-radius: 999px;

  /* use background-color (more consistent than background) */
  background-color: rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.92);

  font: 600 12px/1 system-ui, -apple-system, Segoe UI, Roboto, Arial;
  letter-spacing: 0.12em;
}

/* active: supports BOTH class names + very strong selector */
html body .lang-toggle .lang-btn.active,
html body .lang-toggle .lang-btn.is-active{
  background-color: rgba(255,255,255,0.92) !important;
  color: rgba(0,0,0,0.92) !important;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.15) inset !important;
}

.loader-container{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background: rgb(95, 111, 255);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 1;
  transition: opacity 450ms ease;
}

.loader-container.is-hidden{
  opacity: 0;
  pointer-events: none;
}

.loader-brand{
  font-weight: 700;
  font-size: clamp(18px, 2.8vw, 34px); /* min, fluid, max */
  line-height: 1.1;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.92);
}


.loader-project{
  font-weight: 600;
  font-size: clamp(13px, 1.8vw, 30px);
  line-height: 1.3;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial;
  color: rgba(255,255,255,0.82);
  text-align: center;
  max-width: min(520px, 86vw);
}


.loading-text{
  font: 500 13px/1.2 system-ui, -apple-system, Segoe UI, Roboto, Arial;
  color: rgba(255,255,255,0.62);
  letter-spacing: 0.06em;
  text-transform: lowercase;
  top: 45%;
}

/* Gradient shimmer inside text */
.shimmer-text{
  /* The gradient that will move */
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.65) 0%,
    rgba(128,168,255,0.95) 35%,
    rgba(255,225,0,0.95) 55%,
    rgba(255,255,255,0.65) 100%
  );

  background-size: 260% 100%;
  background-position: 0% 50%;

  /* Put background INSIDE letters */
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;

  /* Safari needs this sometimes */
  -webkit-text-fill-color: transparent;

  /* Slow animation */
  animation: textShimmer 5.5s ease-in-out infinite;
}

@keyframes textShimmer{
  0%   { background-position: 0% 50%;   opacity: 0.85; }
  50%  { background-position: 100% 50%; opacity: 1; }
  100% { background-position: 0% 50%;   opacity: 0.85; }
}

/* Optional: reduce motion for accessibility */
@media (prefers-reduced-motion: reduce){
  .shimmer-text{ animation: none; }
}
