/* Reset and Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

/* Font Declarations */
@font-face {
  font-family: 'HelveticaNeue';
  src: url('../fonts/HelveticaNeue.woff2') format('woff2'),
    url('../fonts/HelveticaNeue.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'HelveticaNeue';
  src: url('../fonts/HelveticaNeue-Medium.woff2') format('woff2'),
    url('../fonts/HelveticaNeue-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'HelveticaNeue';
  src: url('../fonts/HelveticaNeue-Bold.woff2') format('woff2'),
    url('../fonts/HelveticaNeue-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Custom slow spin animation */
@keyframes slow-spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.animate-slow-spin {
  animation: slow-spin 20s linear infinite;
}

/* Iframe mask styling */
.iframe-mask {
  mask-image: url('../images/mask1.webp');
  mask-size: cover;
  mask-repeat: no-repeat;
  mask-position: center;
}

.speaker-mask {
  mask-image: url('../images/speaker-mask.webp');
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}

.city-mask {
  mask-image: url('../images/city-mask.webp');
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}

.speaker-border {
  border: 8px solid transparent;
  border-image: url('../images/border-speaker.webp') 8 fill;
}

.sponsor-border {
  border: 8px solid transparent;
  border-image: url('../images/sponsor-border.webp') 8 fill;

  &:hover {
    border-image: url('../images/sponsor-border-hover.webp') 8 fill;
  }
}

.marquee {
  background-image: url("../images/laracon-gallary.webp");
  background-size: auto 100%;
  background-repeat: repeat;
  -webkit-animation: hero-left-marquee-new 60s linear infinite;
  -moz-animation: hero-left-marquee-new 60s linear infinite;
  animation: hero-left-marquee-new 60s linear infinite;
}

@-webkit-keyframes hero-left-marquee-new {
  0% {
    transform: translate3d(0, 0, 0);
  }

  100% {
    transform: translate3d(-4786px, 0, 0);
  }
}

@-moz-keyframes hero-left-marquee-new {
  0% {
    transform: translate3d(0, 0, 0);
  }

  100% {
    transform: translate3d(-4786px, 0, 0);
  }
}

@keyframes hero-left-marquee-new {
  0% {
    transform: translate3d(0, 0, 0);
  }

  100% {
    transform: translate3d(-4786px, 0, 0);
  }
}

/* City pin zoom effect */
.city-pin {
  transform-origin: center bottom;
  filter: drop-shadow(0 0 0 rgba(0, 0, 0, 0));
  transition: transform 0.3s ease, filter 0.3s ease, opacity 0.3s ease;
}

.city-pin.pin-zoomed {
  transform: scale(1.5);
  filter: drop-shadow(0 0 8px rgba(255, 153, 51, 0.8));
  z-index: 10;
}

.city-pin.pin-dimmed {
  opacity: 0.7;
}

/* City item dimmed effect */
.city-item {
  transition: opacity 0.3s ease;
}

.city-item.city-item-dimmed {
  opacity: 0.5;
}