#top {
  background-image: url(../imgs/sr.png);
  background-repeat: no-repeat;
}

#top::after {
  background-color: var(--dr);
  opacity: 0.9;
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 70%;
  z-index: -3;
}

.top-nav-banner {
  display: flex;
  justify-content: space-around;
  align-items: center;
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 500;
  transition: ease-in-out 0.3s;
  padding: var(--s-16);
  background-color: var(--db);
  height: var(--s-150);
}

.nav-logo {
  display: block;
  padding: 0;
  background-color: transparent;
}

.nav-logo img {
  width: var(--s-95);
  display: inline-block;
  background-color: transparent;
}

.new-moon {
  max-width: 520px;
}

.new-moon img {
  transition: filter 0.3s ease-in-out;
}

.new-moon:hover img {
  filter: drop-shadow(0 0 20px whitesmoke);
}

.navbar-toggler {
  position: absolute;
  right: var(--s-20);
  top: var(--s-23);
  outline: none;
  border: var(--s-1) solid transparent;
  cursor: pointer;
  display: none;
}

.navbar-toggler span {
  color: var(--white);
  font-size: var(--s-32);
  font-weight: 100;
  cursor: pointer;
  pointer-events: none;
  background-color: transparent;
}

.main-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  top: 0;
}

.main-nav ul {
  display: flex;
  gap: var(--s-20);
  align-items: center;
  margin: 0 35px 0 0;
  padding: 0;
}

.main-nav ul li a {
  color: whitesmoke;
  font-size: clamp(var(--s-14), 8vw, var(--s-22));
}

.main-nav ul li a:hover {
  color: var(--cream);
  text-shadow: 0 0 34px white;
  transition: 0.3s;
}

.nz-link {
  position: relative;
  display: block;
  width: 180px;
  height: 60px;
}

.nz-container {
  width: 180px;
  height: 60px;
}

.nz-center {
  width: 180px;
  height: 60px;
  position: relative;
}

.nz-btn {
  width: 180px;
  height: 60px;
  cursor: pointer;
  background: transparent;
  border: 1px solid #91c9ff;
  /* border: 1px solid var(--y); */
  outline: none;
  transition: 1s ease-in-out;
}

svg {
  position: absolute;
  left: 0;
  top: 0;
  fill: none;
  stroke: #fff;
  stroke-dasharray: 150 480;
  stroke-dashoffset: 150;
  transition: 1s ease-in-out;
}

.nz-btn:hover {
  transition: 1s ease-in-out;
  /* background: #91c9ff; */
  background-color: var(--y);
}

.nz-btn:hover svg {
  stroke-dashoffset: -480;
}

.nz-btn span {
  color: white;
  font-size: 17px;
  font-weight: 400;
  font-family: "Roboto", "sans-serif";
}

.top-nav-banner nav ul {
  display: flex;
  align-items: center;
  justify-content: space-around;
}

.home-banner-section {
  background-image: linear-gradient(
    rgb(30, 28, 38),
    rgb(33, 38, 81),
    rgb(43, 49, 92),
    rgb(89, 93, 134),
    rgb(150, 194, 210),
    rgb(219, 191, 93) 60%,
    rgb(197, 114, 52),
    rgb(180, 67, 44),
    rgb(100, 38, 28)
  );
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 55% 20%;
  position: relative;
  z-index: 1;
}

.home-banner-section::before {
  background-image: url(../imgs/sr.png);
  opacity: 0.2;
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.home-sec,
.about-sec {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  text-align: center;
  margin: 50px;
  line-height: 24px;
  margin-top: 150px;
}

#moonfest-v {
  font-size: 900px;
  margin: 10px 0;
  -webkit-text-stroke: 1.2px #000;
  text-shadow: -3px -3px 0 #000, 3px -3px 0 #000, -3px 3px 0 #000,
    3px 3px 0 #000;
  color: var(--cream);
  letter-spacing: -4.2px;
  margin-top: var(--s-48);
  font-size: var(--s-90);
}

.home-img-cnt {
  position: relative;
  width: 100%;
  max-width: 500px;
  margin: 25px 0 30px 0;
}

.hero-img {
  max-width: 500px;
  border-radius: 50px;
  /* box-shadow: 20px var(--db), 20px var(--dr), 20px var(--y); */
  box-shadow: 0 20px 50px var(--db);
  width: 100%;
  height: auto;
}

.glow-on-hover {
  width: 220px;
  height: 50px;
  border: none;
  outline: none;
  color: var(--or-2);
  background-color: var(--brown);
  cursor: pointer;
  position: relative;
  z-index: 0;
  border-radius: 10px;
}

.glow-on-hover:before {
  content: "";
  background: linear-gradient(
    225deg,
    #64261c,
    #96c2d2,
    #212651,
    #2b315c,
    #595d86,
    #96c2d2,
    #dbbf5d,
    #c57234,
    #b4432c,
    #64261c
      /* #ff0000,
    #ff7300,
    #fffb00,
    #48ff00,
    #00ffd5,
    #002bff,
    #7a00ff,
    #ff00c8,
    #ff0000 */
  );
  position: absolute;
  top: -2px;
  left: -2px;
  background-size: 400%;
  z-index: -1;
  filter: blur(5px);
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  animation: glowing 20s ease-in-out infinite;
  opacity: 0;
  transition: opacity 0.6s ease-in-out;
  border-radius: 10px;
}

.glow-on-hover:hover {
  color: var(--brown);
}

.glow-on-hover:active {
  color: var(--black);
}

.glow-on-hover:active:after {
  background: transparent;
}

.glow-on-hover:hover:before {
  opacity: 1;
}

.glow-on-hover:after {
  z-index: -1;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: var(--lb);
  background-color: transparent;
  left: 0;
  top: 0;
  border-radius: 10px;
}

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

.buy-tickets-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  font-weight: 500;
  font-size: 20px;
  letter-spacing: 0.06em;
  font-family: "Roboto";
}

.buy-tickets-btn:hover {
  background-color: transparent;
}

.home-img-cnt .buy-tickets-btn:hover {
  background-color: var(--lb);
}

.home-sec p {
  font-size: var(--s-24);
  margin-top: var(--s-13);
  margin-bottom: var(--s-10);
  color: var(--or-3);
  -webkit-text-stroke: 1px #000;
  text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000,
    1px 1px 0 #000;
}

.main {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -50px;
  position: relative;
  overflow: hidden;
}

.main::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../imgs/moonfest-blank\ .jpg);
  background-size: cover;
  background-position: center;
  z-index: -5;
  will-change: transform;
}

@supports (-webkit-touch-callout: none) {
  .your-element {
    /* Fallback to normal scrolling on iOS to prevent glitches */
    background-attachment: scroll;
  }
}

.line-up-container {
  width: 100%;
  max-width: 1150px;
  margin: var(--s-10) 0 var(--s-50) 0;
}

.line-up-container h2 {
  font-family: "Edmund", Arial, sans-serif;
  font-size: clamp(var(--s-40), 12vw, var(--s-58));
  text-align: center;
}

.lup h3 {
  font-size: clamp(var(--s-30), 12vw, var(--s-48));
  text-align: center;
  margin: var(--s-40) 0 var(--s-14) 0;
}

.lup table {
  font-size: clamp(var(--s-18), 8vw, var(--s-24));
  font-family: "Roboto", arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

.lup table th {
  text-align: center;
}

.lup table td {
  text-align: left;
}

td,
th {
  border: 1px solid #000000;
  padding: 12px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}

tr:nth-child(odd) {
  background-color: #dddddd8b;
}

.cat-link-section {
  width: 100%;
  /* padding: var(--s-100) 0; */
  margin-bottom: 80px;
}

.cat-photos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  justify-items: center;
  align-content: center;
  background-color: var(--db);
  padding: var(--s-50) 0;
}

.cat-modal {
  border: 1px solid #fff;
  padding: 3px;
}

.cat-modal:hover .person-text {
  color: var(--c-8);
}

.cat-cont {
  position: relative;
  width: var(--s-256);
  height: var(--s-256);
  object-fit: contain;
  overflow: hidden;
  margin: 12.5px 0;
}

.cat-cont::before {
  content: "";
  position: absolute;
  width: var(--s-200);
  height: var(--s-200);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: rgba(255, 255, 255, 0.58);
  border-radius: 50%;
  z-index: 1;
  transition: width 0.6s ease, height 0.6s ease;
}

.cat-cont:hover::before {
  width: 100%;
  height: 100%;
}

.cat-pic {
  width: var(--s-256);
  height: var(--s-256);
  object-fit: contian;
  display: block;
}

.cat-text {
  position: absolute;
  z-index: 2;
  margin: 0;
  color: black;
  font-size: var(--s-26);
  font-weight: 500;
  top: 120px;
  left: 62px;
  transition: color 0.3s ease;
}

#modal-home {
  left: 92px;
}

#modal-about {
  left: 103px;
}

#modal-tickets {
  left: 90px;
}

.footer {
  background-color: var(--db);
  color: var(--whiter);
  border-top: 1px solid #fff;
}

.contact-sec {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.concert-contact {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  flex-direction: column;
  color: var(--whiter);
  line-height: 32px;
}

.concert-contact h2 {
  color: var(--whiter);
  font-weight: 1300;
  font-size: 16.3px;
}

.concert-contact p {
  color: var(--whiter);
}

.copy {
  border-top: 1.2px solid var(--whiter);
  background-color: var(--db);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 5px 0;
}

.copy p {
  color: var(--whiter);
}

.to-top-button {
  position: fixed;
  color: var(--db);
  bottom: var(--s-25);
  right: var(--s-25);
  font-size: var(--s-48);
  z-index: 999;
  background-color: var(--whiter);
  border: 2px solid var(--db);
  border-radius: 50%;
  height: var(--s-50);
  cursor: pointer;
}

/* ABOUT PAGE START HERE */

.about-body {
  background-color: var(--db);
}

.about-img {
  max-width: 500px;
  box-shadow: 0 20px 50px var(--y);
  width: 100%;
  margin: 50px;
}

.about-desc {
  margin-bottom: 50px;
}

.about-desc h1 {
  color: #f5f5f5;
  text-align: center;
  margin: 15px 0 45px 0;
  font-size: clamp(var(--s-16), 12vw, var(--s-85));
}

/* SCROLL BEGINS */

.reveal {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 24px;
  font-size: clamp(1.8rem, 5vw, 3.2rem);
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
}

/* Each word is filled by a gradient whose width is driven by --p (0 to 1) */
.word {
  display: inline-block;
  margin-right: 0.25em;
  color: transparent;
  -webkit-text-fill-color: transparent;
  background-image: linear-gradient(var(--fill), var(--fill)),
    /* fill layer (on top) */ linear-gradient(var(--dim), var(--dim)); /* dim base layer */
  background-repeat: no-repeat;
  background-size: calc(var(--p, 1) * 100%) 100%, 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
}

@media (prefers-reduced-motion: reduce) {
  .word {
    --p: 1 !important;
  }
}
