.navbar {
  display: flex;
  align-items: center;
  /* Add other styles as needed */
}

/*  Main Css  */
.responsive-body {
  margin: 0 auto;
  padding: 1rem;
  width: 100%;
  max-width: 1200px;
  box-sizing: border-box;
}

body {
  font-family: "Bebas Neue", "Montserrat";
  margin: 1rem;
  padding: 1rem;
  background-color: #000000;
  color: #ffffff;
  background: url('../img/website backdrop.png') no-repeat;
  transition: background-position 1s ease-in-out;
  background-size: 200%;
  background-position: 0% 0;
}

h1 {
  font-family: "Bebas Neue";
  font-size: calc(.5rem + 1vw);
  outline: none;
}

h2 {
  font-family: "Bebas Neue";
  font-size: calc(.5rem + 0.7vw);
  outline: none;
}

h3 {
  font-family: "Bebas Neue";
  font-size: calc(.5rem + 0.6vw);
  outline: none;
}

p {
  font-family: "Montserrat";
  font-size: calc(.5rem + 0.5vw);
  outline: none;
}

#BGVideo {
  position: fixed;
  right: 0;
  bottom: 0;
  min-width: 100%;
  min-height: 100%;
  z-index: -10;
  animation: fadeInAnimation ease-in-out 1s;
}

.content {
  position: fixed;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  color: #f1f1f1;
  width: 100%;
  padding: 20px;
}

/* Place the navbar at the bottom of the page, and make it stick */
.navbar {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 8vh;
  background-color: #00000096;
  border-radius: 2rem;
  width: 80%;
  border: 1px solid #747474;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  padding: 1vh 1vw;
  z-index: 1000;
}

  /* Style the links inside the navigation bar */
  .navbar a {
    float: left;
    display: block;
    color: #fd7f20;
    text-align: center;
    padding: 1vh 1vw;
    text-decoration: none;
    font-size: 2vw;
    margin: 0.5vh 1vw;
    border-radius: 2rem;
    width: 9vw;
    transition: background-color 0.5s linear;
    height: 100%;
    align-content: center;
    bottom: 0.75vw;
  }

    /* Change the color of links on hover */
    .navbar a:hover {
      background-color: #fd7f20;
      color: black;
      cursor: pointer;
      border-radius: 2rem;
      transition: background-color 1s linear;
    }

.nav-btn {
  background-color: #000000d4;
  border: none;
  cursor: pointer;
  padding: 0 10px;
  position: absolute;
  top: 0%;
  bottom: 0%;
  color: #fd7f20;
  font-size: calc(.5rem + 4vw);
  pointer-events: auto;
}

  .nav-btn:hover {
    background-color: #fd7f20;
    color: #000000;
    transition: background-color 1s linear, color 1s linear;
  }

.nav-btns {
  display: flex;
  position: absolute;
  top: 20vw;
  left: 0%;
  bottom: 0%;
  right: 0%;
  width: 100%;
  height: 6vw;
  pointer-events: none;
}

.navlink {
  color: #fd7f20;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 3rem;
  text-decoration: none;
  right: 1%;
  position: inherit;
  max-width: 100%;
  top: 54%;
  font-size: 1.5rem;
}

.menu-item {
  position: relative;
  transition: transform 0.5s ease;
}

  .menu-item.active {
    background-color: #74747442;
    color: #fd7f2000;
    transition: transform 0.5s ease;
  }

.menu-img {
  height: 9vw;
  position: absolute;
  bottom: 0;
  left: 2vw;
  transform: translateY(140%);
  transition: transform 1s ease-in-out;
}

  .menu-img:hover {
    opacity: 0.25;
    transition: 0.2s ease-in-out;
  }

.active-img {
  transform: translateY(0);
}

.inactive-img {
  transform: translateY(140%);
}

.mainlogo {
  opacity: 0.0;
  position: absolute;
  top: 2%;
  left: 35%;
  animation: fadeInOut 30s ease-in-out;
  animation-iteration-count: 1;
  animation-direction: normal;
  width: 30%;
  height: 83%;
  justify-content: center;
  display: flex;
}

.logoimg {
  width: 100%;
  height: 100%;
}

#blazor-error-ui {
  background: lightyellow;
  bottom: 0;
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
  display: none;
  left: 0;
  padding: 0.6rem 1.25rem 0.7rem 1.25rem;
  position: fixed;
  width: 100%;
  z-index: 1000;
  color: black;
}

  #blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
  }

.blazor-error-boundary {
  background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
  padding: 1rem 1rem 1rem 3.7rem;
  color: white;
}

  .blazor-error-boundary::after {
    content: "An error has occurred.";
  }

/*  Containers  */
.container-merch {
  width: 100%;
  height: 100%;
  display: flex;
  position: absolute;
  top: 0%;
  left: 0%;
  max-width: 100%;
}

.socials-container {
  width: 79%;
  height: 65%;
  display: flex;
  position: absolute;
  top: 10%;
  left: 10%;
  border-radius: 2rem;
  background-color: #000000b2;
  padding: 1rem;
  border: 1px solid #747474;
}

.container-about {
  max-width: 100%;
  height: 100%;
  display: flex;
}

.container-irl {
  left: 50%;
  top: 44%;
  bottom: 20%;
  width: 39%;
  height: fit-content;
  display: flex;
  position: absolute;
  border-radius: 2rem;
  background-color: #000000b2;
  border: 1px solid #747474;
  padding: 0.5vw;
}

.top-container {
  display: flex;
  justify-content: space-between;
  width: 100%;
  z-index: 5;
  position: absolute;
  top: 1vw;
  height: fit-content;
  bottom: 0;
  left: 0%;
  right: 0%;
}

.content-container {
  height: 100%;
  max-width: 100%;
  display: flex;
  position: absolute;
  top: 0%;
  bottom: 0%;
  left: 0%;
  right: 0%;
  width: 100%;
  overflow: hidden;
}

.footer-container {
  height: auto;
  display: flex;
  position: absolute;
  width: 100%;
  align-content: center;
  justify-content: center;
}

.container-watch {
  width: 58%;
  height: 61%;
  display: flex;
  position: absolute;
  top: 13%;
  left: 31%;
  border-radius: 2rem;
  background-color: #000000b2;
  border: 1px solid #747474;
}

.container-schedule {
  width: 18%;
  height: 61%;
  display: flex;
  position: absolute;
  top: 13%;
  left: 11%;
  border-radius: 2rem;
  background-color: #000000b2;
  border: 1px solid #747474;
}

.container-error {
  width: 80%;
  height: 70%;
  display: flex;
  position: inherit;
  top: 10%;
  left: 10%;
  background-color: #0000008a;
  border: solid 1px #747474;
  border-radius: 2rem;
  padding: 10px;
}

/*  Pages Specific  */
.merchtext {
  width: 40%;
  height: fit-content;
  display: flex;
  position: absolute;
  top: 48%;
  left: 10%;
  border-radius: 2rem;
  background-color: #000000b2;
  padding: 1rem;
  border: 1px solid #747474;
}

.social-icons {
  display: flex;
  left: 5%;
  position: absolute;
  right: 0%;
  max-width: 100%;
}

.social-icon {
  color: white;
  background: black;
  border-radius: 50%;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2vw;
  height: 2vw;
  text-decoration: none;
  font-size: calc(.4rem + 1vw);
  border: 2px solid #747474;
  transition: color 0.5s linear;
}

  .social-icon:hover {
    color: #fd7f20;
    background: black;
    transition: color 0.5s linear;
  }

.socialtitle {
  position: absolute;
  top: 15%;
  left: 0%;
  color: #fd7f20;
  display: flex;
  width: 18%;
}

  .socialtitle h3 {
    top: calc(.5rem + 0.5vw);
    position: absolute;
    left: 30%;
  }

.watchJack {
  display: flex;
  justify-content: end;
  opacity: 1;
  align-items: center;
  position: absolute;
  right: 5%;
  max-width: 100%;
  width: 100%;
  height: 100%;
  top: 1vw;
}

.aboutwatch {
  position: absolute;
  top: 90%;
  left: 55%;
  max-width: 100%;
  width: 30%;
  min-height: 2.3vw;
  background-color: #000;
  border-radius: 3rem;
  border: 1px solid #747474;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  text-decoration: none;
  color: #fd7f20;
  font-size: calc(.5rem + 1vw);
  transition: all 1s linear;
  cursor: pointer;
}

  .aboutwatch:hover {
    background-color: #fd7f20;
    border: 1px solid #ffa500;
    color: #000000 !important;
    transition: border 1s linear;
  }


  .aboutwatch i {
    font-size: calc(.5rem + 1.2vw);
    transition: color 1s linear;
  }

  .aboutwatch:hover i {
    color: #000000;
  }

  .aboutwatch span {
    transition: color 1s linear;
  }

  .aboutwatch:hover span {
    color: #000000;
  }

.irltitle {
  height: 16%;
  width: 39%;
  position: absolute;
  display: flex;
  top: 25%;
  bottom: 0%;
  left: 50%;
  background-color: #000000b2;
  border-radius: 2rem;
  border: 1px solid #747474;
  padding: 0.5vw;
}

.irlimg {
  height: 100%;
  width: 100%;
  display: flex;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
}

.aboutus {
  width: 40%;
  height: fit-content;
  display: flex;
  position: absolute;
  top: 45%;
  left: 10%;
  border-radius: 2rem;
  background-color: #000000b2;
  padding: 1rem;
  border: 1px solid #747474;
}

.aboutimg {
  height: 100%;
  max-width: 100%;
  display: flex;
  position: absolute;
  top: 0%;
  left: 50%;
  right: 0%;
}



  .aboutwatch:hover {
    border: 1px solid #ffa500;
    transition: border 1s linear;
    color: #ffa500 !important;
  }

.jjocosename {
  width: 35%;
  height: 27%;
  display: flex;
  position: fixed;
  bottom: 0%;
  top: 14%;
  left: 13%;
  right: 0%;
  animation: slideInScale 3s ease-in-out;
  animation-iteration-count: 1;
  animation-direction: normal;
}

/*  Twitch Classes  */
.twitch-content-container {
  display: flex;
  position: inherit;
  top: 0%;
  left: 0%;
  z-index: 5;
  margin: 1vw;
  border-radius: 1rem;
}

.twitch-schedule {
  width: 91%;
  height: 94%;
  position: inherit;
  display: flex;
  top: 3%;
  left: 5%;
  border-radius: 1rem;
}

.twitchembed {
  width: 56%;
  height: 57%;
  display: inherit;
  position: fixed;
}

.schedule {
  max-width: 100%;
  width: 100%;
}

.schedulecard {
  display: flex;
  position: relative;
  top: 4%;
  max-width: 100%;
  width: 100%;
  height: 96%;
}

.event {
  height: 12%;
  border-radius: 2rem;
  border: 1px solid #747474;
  padding: 1rem;
  margin: 0.5vw;
  display: flex !important;
  position: relative;
  overflow: hidden !important;
  max-width: 100%;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.eventTitle {
  font-size: 0.8vw;
  top: -14%;
  left: 8%;
  display: flex;
  position: absolute;
}

.gameimg {
  height: 70%;
  width: 20%;
  display: flex;
  position: absolute;
  top: 25%;
  left: 74%;
  border-radius: 0.2vw;
}

.eventStart {
  font-size: 0.6vw;
  display: flex;
  position: absolute;
  top: 10%;
  left: 2%;
}

.eventEnd {
  font-size: 0.6vw;
  display: flex;
  position: absolute;
  top: 27%;
  left: 2%;
}

.eventCategory {
  font-size: 0.6vw;
  display: flex;
  position: absolute;
  top: 47%;
  left: 2%;
}

/* Button Classes */
.shopnow {
  position: absolute;
  top: 90%;
  bottom: 0%;
  left: 20%;
  right: 0%;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #000000e3;
  border-radius: 3rem;
  border: 1px solid #747474;
  width: 58%;
  height: calc(.5rem + 2vw);
  margin: 1rem;
  color: #fd7f20;
  font-size: calc(.5rem + 1vw);
  text-align: center;
  transition: background-color 1s linear;
  cursor: pointer;
  outline: 3px solid #000000;
}

  .shopnow:hover {
    background-color: #fd7f20;
    border: 1px solid #747474;
    color: #000000e3;
    transition: background-color 1s linear;
  }

/*  Forms  */
.validation-errors {
  position: absolute;
  opacity: 0;
  display: flex;
  top: 2%;
  color: crimson;
  z-index: 1;
  left: 29%;
  font-size: 1rem;
  animation: fadeIn 10s;
  animation-direction: reverse;
}

.input-group {
  position: absolute;
  display: flex;
  align-items: center;
  height: fit-content;
  width: 70%;
  left: 25%;
  top: 85%;
  flex-direction: column;
  align-items: flex-start;
}

.email-input {
  flex-grow: 1;
  height: calc(.5rem + 2vw);
  display: block;
  width: 28.4vw;
  border: 1px solid #747474;
  border-radius: 1rem 3rem 3rem 1rem;
  color: black;
  background-color: #ffffff;
  font-size: calc(.5rem + 0.8vw);
  outline: 3px solid #000000;
  text-indent: 0.5rem;
  transition: background-color 1s linear;
}

  .email-input:focus {
    outline: 3px solid #000000;
    background-color: #000000e3;
    color: #fd7f20;
    transition: background-color 1s linear;
    border: 1px solid #ffa500;
  }

.submit-btn {
  margin-left: 20.2vw;
  border-radius: 0px 3rem 3rem 0px;
  border: 1px solid rgb(116, 116, 116);
  background-color: rgba(0, 0, 0, 0.89);
  color: rgb(253, 127, 32);
  height: calc(0.5rem + 2vw);
  width: 8.4vw;
  font-size: calc(0.5rem + 1vw);
  cursor: pointer;
  top: 4%;
  position: absolute;
  z-index: 4;
}

  .submit-btn:hover {
    background-color: #fd7f20;
    color: #000000e3;
    transition: background-color 1s linear;
  }

/* Merch consent row: keep it simple to avoid disturbing absolute .input-group */
.consent {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: 1rem 0px 0px;
  font-size: calc(0.5rem + 0.5vw);
  top: 116%;
  position: absolute;
  left: 40%;
  z-index: -1;
  width: 20vw;
  background-color: rgba(0, 0, 0, 0.698);
  border: 1px solid rgb(116, 116, 116);
  border-radius: 3rem;
}

  /* Consent fade states (does not change existing layout rules) */
  .consent.consent--hidden {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    pointer-events: none;
    transition: opacity 1s ease, max-height 1s ease-in-out;
  }

  .consent.consent--visible {
    opacity: 1;
    max-height: 4rem;
    pointer-events: auto;
    transition: opacity 1s ease, max-height 1s ease-in-out;
  }

.status-message {
  margin-top: 0.75rem;
  font-size: 1rem;
}

  .status-message.success {
    color: #28a745;
  }

  .status-message.warning {
    color: #ff9800;
  }

  .status-message.error {
    color: #dc3545;
  }

/* Validation dialog overlay (non-intrusive, no layout shift) */
.validation-dialog-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 4000;
}

.validation-dialog {
  background: #000000e6;
  color: #fff;
  border: 1px solid #747474;
  border-radius: 1rem;
  min-width: 320px;
  max-width: 90vw;
  padding: 0.75rem 1rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

  /* Dialog variants */
  .validation-dialog.success .validation-dialog-header h3 {
    color: #28a745;
  }

  .validation-dialog.warning .validation-dialog-header h3 {
    color: #ff9800;
  }

  .validation-dialog.error .validation-dialog-header h3 {
    color: #dc3545;
  }

  .validation-dialog.info .validation-dialog-header h3 {
    color: #fd7f20;
  }

.submit-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.email-input:disabled {
  background-color: #f2f2f2;
  cursor: not-allowed;
}

/* Loading state for the submit button */
.submit-btn.is-loading {
  pointer-events: none;
  cursor: progress;
}

/* Wave/pulse text animation inside the button */
.submit-btn .wave {
  display: inline-block;
  white-space: nowrap;
}

  .submit-btn .wave span {
    display: inline-block;
    transform-origin: center bottom;
    animation: textWave 1.2s ease-in-out infinite;
    animation-delay: calc(var(--i) * 0.08s);
  }

@keyframes textWave {
  0%, 100% {
    transform: translateY(0) scale(1);
  }

  50% {
    transform: translateY(-10%) scale(1.15);
  }
}

.validation-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

  .validation-dialog-header h3 {
    margin: 0;
    font-size: 1.15rem;
    color: #fd7f20;
  }

.validation-close-btn {
  background: transparent;
  border: 1px solid #747474;
  color: #fd7f20;
  border-radius: 0.5rem;
  font-size: 1.25rem;
  width: 2rem;
  height: 2rem;
  line-height: 1rem;
  cursor: pointer;
}

  .validation-close-btn:hover {
    background: #fd7f20;
    color: #000;
    transition: background-color 0.3s linear, color 0.3s linear;
  }

.validation-dialog-body {
  max-height: 50vh;
  overflow: auto;
}

  .validation-dialog-body ul {
    margin: 0;
    padding-left: 1.25rem;
  }

  .validation-dialog-body li {
    margin: 0.25rem 0;
  }

.loading-center {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 40vh;
  width: 100%;
}

.loading-spinner-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100px;
  width: 100%;
}

.loading-spinner {
  width: 48px;
  height: 48px;
  border: 6px solid #fd7f20;
  border-top: 6px solid #222;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

.loader {
  color: #fd7f20;
  font-size: 45px;
  text-indent: -9999em;
  overflow: hidden;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  position: relative;
  transform: translateZ(0);
  animation: spin 1.7s infinite ease, round 1.7s infinite ease;
}

@keyframes spin {
  0% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }

  5%, 95% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }

  10%, 59% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.087em -0.825em 0 -0.42em, -0.173em -0.812em 0 -0.44em, -0.256em -0.789em 0 -0.46em, -0.297em -0.775em 0 -0.477em;
  }

  20% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.338em -0.758em 0 -0.42em, -0.555em -0.617em 0 -0.44em, -0.671em -0.488em 0 -0.46em, -0.749em -0.34em 0 -0.477em;
  }

  38% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.377em -0.74em 0 -0.42em, -0.645em -0.522em 0 -0.44em, -0.775em -0.297em 0 -0.46em, -0.82em -0.09em 0 -0.477em;
  }

  100% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }
}

@keyframes round {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

/*  Carousel Classes  */
.carousel {
  overflow-x: clip;
  position: absolute;
  width: 35vw;
  height: 25vw;
  left: 55%;
  top: 20%;
  background-color: #00000078;
  border-radius: 3rem;
  border: 1px solid #747474;
}

.slide {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: contain;
  background-position: center;
  opacity: 0;
  animation: slideAnimation 5s infinite ease-in-out;
  transition: opacity 1s ease-in-out;
  background-repeat: no-repeat;
}

/* Active slide */
.active {
  opacity: 1;
  display: block;
}

/*  Socials Page CSS  */
.socials-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 20% 80%;
  grid-template-areas:
    "column2-header column3-header"
    "column2-content column3-content";
  gap: 0;
  height: 100%;
  width: 100%;
}

.column-content:nth-child(1),
.column-content:nth-child(2) {
  border-bottom: 2px solid #fd7f20;
}

.column-content:nth-child(1),
.column-content:nth-child(3) {
  border-right: 2px solid #fd7f20;
}

.column-content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: inherit;
}

.social-buttons {
  flex-basis: 20%;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  z-index: 5;
  position: relative;
  grid-area: socials;
  border-right: 2px solid #fd7f20;
}

.column-content:first-child {
  grid-area: column2-header;
}

.column-content:last-child {
  grid-area: column3-header;
}

.control-buttons {
  color: white;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4vw;
  height: 4vw;
  text-decoration: none;
  font-size: 2.3vw;
  transition: color 0.5s linear;
  margin: 1vw;
  cursor: pointer;
}

.control-button {
  margin: 0 5px;
  transition: background-color 0.3s ease;
}

  .control-button.paused {
    color: #fd7f20;
    background: black;
    transition: color 0.5s linear;
  }

.social-button {
  color: white;
  background: black;
  border-radius: 50%;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4vw;
  height: 4vw;
  text-decoration: none;
  font-size: 2.3vw;
  border: 2px solid rgb(116, 116, 116);
  transition: color 0.5s linear;
  margin: 1vw;
  cursor: pointer;
}

  .social-button:hover, .social-button.active {
    color: #fd7f20;
    background: black;
    transition: color 0.5s linear;
  }

.social-button-content {
  display: grid;
  position: absolute;
  top: 25%;
  max-height: 72%;
  max-width: 49%;
  width: 100%;
  height: 100%;
}

.social-titles {
  max-width: 100%;
  max-height: 100%;
  grid-template-columns: 1fr 2fr 2fr;
  grid-template-rows: auto auto;
}

.title-info {
  text-align: center;
  width: 100%;
}

  .title-info img {
    max-width: 100%;
    height: 25%;
  }

/*  Footer  */
.footer {
  width: 100%;
  height: 5%;
  display: flex;
  position: absolute;
  bottom: 1%;
  right: 0%;
  max-width: 100%;
}

/* YouTube Toggle Pill Styles - Simple 50/50 Split */
.youtube-toggle-pill {
  position: absolute;
  bottom: -1.25rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  background-color: #000000d1;
  border: 1px solid #747474;
  border-radius: 5rem;
  padding: 0;
  gap: 0;
  z-index: 10;
  width: fit-content;
  height: 3rem;
}

  .youtube-toggle-pill input[type="radio"] {
    display: none;
  }

  .youtube-toggle-pill .toggle-label {
    flex: 1;
    padding: 0.5rem 1.5rem;
    text-align: center;
    cursor: pointer;
    font-size: calc(0.5rem + 0.8vw);
    color: #ffffff;
    transition: all 0.3s ease;
    user-select: none;
    font-weight: 500;
    min-width: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background-color: transparent;
  }

  /* Active State - Inverted colors (orange background, black text) */
  .youtube-toggle-pill #shorts-toggle:checked ~ .shorts-label {
    background-color: #fd7f20;
    color: #000000;
    font-weight: 600;
    border-radius: 5rem 0 0 5rem;
  }

  .youtube-toggle-pill #long-toggle:checked ~ .long-label {
    background-color: #fd7f20;
    color: #000000;
    font-weight: 600;
    border-radius: 0 5rem 5rem 0;
  }

  /* Inactive State - Show divider when not selected */
  .youtube-toggle-pill .toggle-label {
    color: #ffffff;
    background-color: transparent;
  }

  .youtube-toggle-pill .shorts-label {
    border-right: 1px solid #747474;
  }

  /* Hover State */
  .youtube-toggle-pill .toggle-label:hover {
    color: #fd7f20;
    transition: all 0.3s ease;
  }

  .youtube-toggle-pill #shorts-toggle:checked ~ .shorts-label:hover,
  .youtube-toggle-pill #long-toggle:checked ~ .long-label:hover {
    background-color: #ffaa33;
    color: #000000;
  }

/* Animation keyframes */
@keyframes slideAnimation {
  0% {
    transform: translateX(-100%) scale(0);
  }

  20% {
    transform: translateX(0%) scale(1);
  }

  80% {
    transform: translateX(0%) scale(1);
  }

  100% {
    transform: translateX(100%) scale(0);
  }
}

/* Animation Classes */
.fade-in {
  animation: fadeInAnimation ease-in-out 1s;
  animation-fill-mode: forwards;
}

.fade-out {
  animation: fadeOutAnimation ease-in-out 1s;
  animation-fill-mode: forwards;
}

.fade-in-out {
  animation: fadeInOut ease-in-out 30s;
  animation-fill-mode: forwards;
}

@keyframes fadeInAnimation {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeOutAnimation {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

/*  Animations  */
@keyframes fadeInOut {
  0% {
    opacity: 0;
  }

  20% {
    opacity: 1;
  }

  60% {
    opacity: 1;
  }

  70% {
    opacity: 1;
  }

  80% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes spinning {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes slideIn {
  0% {
    transform: translateX(-200%);
  }

  75% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(0);
  }
}

@keyframes slideInScale {
  0% {
    transform: translateX(-200%) scale(0.2);
  }

  75% {
    transform: translateX(0) scale(1.2);
  }

  100% {
    transform: translateX(0) scale(1);
  }
}

@keyframes pulsate {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.5);
  }

  100% {
    transform: scale(1);
  }
}

/* Testing new socials cards carousel */
.container {
  width: 100%;
  max-width: 100%;
  max-height: 600px;
  height: 100%;
  transform-style: preserve-3d;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  position: relative;
}

.cards {
  position: relative;
  width: 100%;
  height: 100%;
}

.card {
  position: absolute;
  transition: transform .5s ease-in-out, opacity .5s ease-in-out;
  width: 60%;
  height: 100%;
  left: 20%;
  right: 20%;
  margin: auto;
  cursor: pointer;
  transform: scale(.8);
  opacity: .4;
  z-index: 0;
  border-radius: 1rem;
}

.nav-button {
  background-color: rgba(0, 0, 0, 0.83);
  border: solid 1px #fd7f20;
  cursor: pointer;
  position: absolute;
  top: 45%;
  color: #fd7f20;
  font-size: calc(.1rem + 2vw);
  pointer-events: auto;
  border-radius: 50%;
  width: 10%;
}

  .nav-button:hover {
    background-color: rgb(253, 127, 32);
    color: rgb(0, 0, 0);
    transition: color 1s linear;
  }

  .nav-button.left {
    left: 0;
    z-index: 3;
  }

  .nav-button.right {
    right: 0;
    z-index: 1;
  }

.nav-button-hidden {
  background-color: rgba(0, 0, 0, 0.00);
  border: hidden;
  cursor: pointer;
  position: absolute;
  top: 0%;
  width: 20%;
  height: 100%;
}

  .nav-button-hidden.left {
    left: 6%;
    z-index: 2;
    border-radius: 100% 0% 0% 10%;
  }

  .nav-button-hidden.right {
    right: 6%;
    z-index: 1;
    border-radius: 0% 100% 100% 0%;
  }

input[type="radio"] {
  display: none;
}

iframe {
  border-radius: 1rem;
}

/* Active card styles */
#item-1:checked ~ .cards .card:nth-of-type(1),
#item-2:checked ~ .cards .card:nth-of-type(2),
#item-3:checked ~ .cards .card:nth-of-type(3),
#item-4:checked ~ .cards .card:nth-of-type(4),
#item-5:checked ~ .cards .card:nth-of-type(5),
#item-6:checked ~ .cards .card:nth-of-type(1),
#item-7:checked ~ .cards .card:nth-of-type(2),
#item-8:checked ~ .cards .card:nth-of-type(3),
#item-9:checked ~ .cards .card:nth-of-type(4),
#item-10:checked ~ .cards .card:nth-of-type(5) {
  transform: translateX(0) scale(1);
  opacity: 1;
  z-index: 2;
}

/* Positioning for the cards immediately next to the active card */
#item-1:checked ~ .cards .card:nth-of-type(2),
#item-2:checked ~ .cards .card:nth-of-type(3),
#item-3:checked ~ .cards .card:nth-of-type(4),
#item-4:checked ~ .cards .card:nth-of-type(5),
#item-5:checked ~ .cards .card:nth-of-type(1),
#item-6:checked ~ .cards .card:nth-of-type(2),
#item-7:checked ~ .cards .card:nth-of-type(3),
#item-8:checked ~ .cards .card:nth-of-type(4),
#item-9:checked ~ .cards .card:nth-of-type(5),
#item-10:checked ~ .cards .card:nth-of-type(1) {
  transform: translateX(20%) scale(.8);
  opacity: .9;
  z-index: 1;
}

#item-1:checked ~ .cards .card:nth-of-type(5),
#item-2:checked ~ .cards .card:nth-of-type(1),
#item-3:checked ~ .cards .card:nth-of-type(2),
#item-4:checked ~ .cards .card:nth-of-type(3),
#item-5:checked ~ .cards .card:nth-of-type(4),
#item-6:checked ~ .cards .card:nth-of-type(5),
#item-7:checked ~ .cards .card:nth-of-type(1),
#item-8:checked ~ .cards .card:nth-of-type(2),
#item-9:checked ~ .cards .card:nth-of-type(3),
#item-10:checked ~ .cards .card:nth-of-type(4) {
  transform: translateX(-20%) scale(.8);
  opacity: .9;
  z-index: 1;
}

/* Positioning for the cards two positions away from the active card */
#item-1:checked ~ .cards .card:nth-of-type(3),
#item-2:checked ~ .cards .card:nth-of-type(4),
#item-3:checked ~ .cards .card:nth-of-type(5),
#item-4:checked ~ .cards .card:nth-of-type(1),
#item-5:checked ~ .cards .card:nth-of-type(2),
#item-6:checked ~ .cards .card:nth-of-type(3),
#item-7:checked ~ .cards .card:nth-of-type(4),
#item-8:checked ~ .cards .card:nth-of-type(5),
#item-9:checked ~ .cards .card:nth-of-type(1),
#item-10:checked ~ .cards .card:nth-of-type(2) {
  transform: translateX(40%) scale(.6);
  opacity: .8;
  z-index: 0;
}

#item-1:checked ~ .cards .card:nth-of-type(4),
#item-2:checked ~ .cards .card:nth-of-type(5),
#item-3:checked ~ .cards .card:nth-of-type(1),
#item-4:checked ~ .cards .card:nth-of-type(2),
#item-5:checked ~ .cards .card:nth-of-type(3),
#item-6:checked ~ .cards .card:nth-of-type(4),
#item-7:checked ~ .cards .card:nth-of-type(5),
#item-8:checked ~ .cards .card:nth-of-type(1),
#item-9:checked ~ .cards .card:nth-of-type(2),
#item-10:checked ~ .cards .card:nth-of-type(3) {
  transform: translateX(-40%) scale(.6);
  opacity: .8;
  z-index: 0;
}

/* Validation dialog overlay (non-intrusive, no layout shift) */
.validation-dialog-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 4000;
}

.validation-dialog {
  background: #000000e6;
  color: #fff;
  border: 1px solid #747474;
  border-radius: 1rem;
  min-width: 320px;
  max-width: 90vw;
  padding: 0.75rem 1rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.validation-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

  .validation-dialog-header h3 {
    margin: 0;
    font-size: 1.15rem;
    color: #fd7f20;
  }

.validation-close-btn {
  background: transparent;
  border: 1px solid #747474;
  color: #fd7f20;
  border-radius: 0.5rem;
  font-size: 1.25rem;
  width: 2rem;
  height: 2rem;
  line-height: 1rem;
  cursor: pointer;
}

  .validation-close-btn:hover {
    background: #fd7f20;
    color: #000;
    transition: background-color 0.3s linear, color 0.3s linear;
  }

.validation-dialog-body {
  max-height: 50vh;
  overflow: auto;
}

  .validation-dialog-body ul {
    margin: 0;
    padding-left: 1.25rem;
  }

  .validation-dialog-body li {
    margin: 0.25rem 0;
  }

/* Responsive Media Queries - Mobile/Tablet Only */
@media (max-width: 768px) {
  .navbar {
    width: 95%;
    height: auto;
    min-height: 8vh;
  }

    .navbar a {
      width: auto;
      min-width: 5rem;
      font-size: max(14px, 2vw);
    }

  .socials-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto;
    grid-template-areas:
      "column2-header"
      "column2-content"
      "column3-header"
      "column3-content";
  }

  .container-watch {
    width: 90%;
    left: 5%;
  }

  .container-schedule {
    width: 90%;
    left: 5%;
    top: 75%;
  }
}

@media (max-width: 480px) {
  body {
    margin: 0.5rem;
    padding: 0.5rem;
  }

  .navbar {
    width: 98%;
  }

  .email-input {
    width: 80vw;
  }

  .submit-btn {
    margin-left: 0;
    width: 80vw;
    position: relative;
    margin-top: 0.5rem;
  }

  .consent {
    width: 80vw;
    left: 10%;
  }
}
/* ============================================
   MOBILE RESPONSIVE STYLES
   ============================================ */

/* Tablet landscape and below (1024px) */
@media (max-width: 1024px) {
  body {
    margin: 0.5rem;
    padding: 0.5rem;
  }

  /* Navigation adaptations */
  .navbar {
    width: 90%;
    padding: 0.5rem;
    flex-direction: row;
    flex-wrap: wrap;
  }

    .navbar a {
      font-size: min(3vw, 18px);
      width: auto;
      min-width: 80px;
      padding: 0.5rem 1rem;
    }

  .nav-btns {
    top: 15vh;
    height: 8vw;
  }

  .nav-btn {
    font-size: calc(1rem + 3vw);
  }

  /* Content containers */
  .socials-container {
    width: 90%;
    height: auto;
    top: 5%;
    left: 5%;
    padding: 1rem;
  }

  .container-watch {
    width: 85%;
    left: 7.5%;
    height: auto;
  }

  .container-schedule {
    width: 85%;
    left: 7.5%;
    top: auto;
    height: auto;
  }

  .merchtext,
  .aboutus {
    width: 85%;
    left: 7.5%;
    position: relative;
    margin: 2rem auto;
  }

  .carousel {
    width: 85%;
    height: 60vw;
    left: 7.5%;
    position: relative;
    top: 0;
    margin: 2rem auto;
  }
}

/* Tablet portrait and mobile landscape (768px) */
@media (max-width: 768px) {
  body {
    background-size: 300%;
    background-position: center;
  }

  h1 {
    font-size: calc(1rem + 1.5vw);
  }

  h2 {
    font-size: calc(0.9rem + 1.2vw);
  }

  h3 {
    font-size: calc(0.8rem + 1vw);
  }

  p {
    font-size: calc(0.7rem + 0.8vw);
  }

  /* Make navbar stack better */
  .navbar {
    width: 95%;
    height: auto;
    min-height: 60px;
    bottom: 10px;
    padding: 0.75rem 0.5rem;
  }

    .navbar a {
      font-size: 14px;
      width: auto;
      min-width: 70px;
      padding: 0.5rem 0.75rem;
      margin: 0.25rem 0.5rem;
    }

  .menu-img {
    height: 12vw;
  }

  /* Navigation buttons */
  .nav-btns {
    top: 20vh;
    height: 10vw;
  }

  .nav-btn {
    font-size: calc(1.5rem + 2.5vw);
    padding: 0 8px;
  }

  /* Top social bar */
  .top-container {
    flex-direction: column;
    height: auto;
    gap: 1rem;
  }

  .social-icons {
    position: relative;
    left: 0;
    width: 100%;
    justify-content: center;
    margin-bottom: 0.5rem;
  }

  .social-icon {
    width: 40px;
    height: 40px;
    font-size: 20px;
    margin: 0 0.5rem;
  }

  .socialtitle {
    position: relative;
    width: 100%;
    text-align: center;
    left: 0;
    margin-bottom: 0.5rem;
  }

    .socialtitle h3 {
      position: relative;
      left: 0;
    }

  .watchJack {
    position: relative;
    right: 0;
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .navlink {
    font-size: 16px;
  }

  /* Content layout changes */
  .container-about,
  .content-container {
    position: relative;
  }

  .jjocosename {
    width: 70%;
    height: auto;
    left: 15%;
    position: relative;
  }

  .aboutus {
    width: 90%;
    left: 5%;
    top: 0;
    position: relative;
    margin: 2rem auto;
  }

  .aboutimg {
    position: relative;
    left: 0;
    width: 90%;
    margin: 2rem auto;
    display: block;
  }

  .aboutwatch {
    position: relative;
    top: 0;
    left: 0;
    width: 80%;
    margin: 2rem auto;
    min-height: 50px;
    font-size: calc(0.8rem + 1vw);
  }

    .aboutwatch i {
      font-size: calc(1rem + 1.5vw);
    }

  /* IRL page */
  .irltitle {
    width: 90%;
    height: auto;
    left: 5%;
    top: 5%;
    position: relative;
    margin: 2rem auto 1rem;
  }

  .container-irl {
    width: 90%;
    left: 5%;
    top: 0;
    position: relative;
    margin: 1rem auto;
  }

  .irlimg {
    position: relative;
    left: 0;
    width: 90%;
    margin: 2rem auto;
    display: block;
  }

  /* Merch page */
  .merchtext {
    width: 90%;
    left: 5%;
    top: 0;
    position: relative;
    margin: 2rem auto;
  }

  .carousel {
    width: 90%;
    height: 65vw;
    left: 5%;
    top: 0;
    position: relative;
    margin: 2rem auto;
  }

  .input-group {
    width: 90%;
    left: 5%;
    top: auto;
    position: relative;
    margin: 2rem auto;
    flex-direction: column;
    align-items: stretch;
  }

  .email-input {
    width: 100%;
    border-radius: 2rem;
    margin-bottom: 1rem;
  }

  .submit-btn {
    width: 100%;
    margin-left: 0;
    border-radius: 2rem;
    position: relative;
    top: 0;
  }

  .consent {
    width: 90%;
    left: 5%;
    top: auto;
    position: relative;
    margin: 1rem auto;
  }

  .shopnow {
    width: 80%;
    left: 10%;
    top: auto;
    position: relative;
    margin: 2rem auto;
    height: 50px;
    font-size: calc(0.8rem + 1vw);
  }

  /* Socials/Content page */
  .socials-container {
    width: 95%;
    left: 2.5%;
    height: auto;
    min-height: 60vh;
  }

  .socials-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    grid-template-areas:
      "column2-header"
      "column2-content"
      "column3-header"
      "column3-content";
  }

  .column-content {
    border-right: none;
    border-bottom: 2px solid #fd7f20;
    min-height: 300px;
  }

    .column-content:last-child {
      border-bottom: none;
    }

  .social-button-content {
    max-width: 100%;
    max-height: none;
    position: relative;
    top: 0;
  }

  /* Watch page */
  .container-watch {
    width: 95%;
    left: 2.5%;
    height: auto;
    top: 5%;
    position: relative;
    margin: 2rem auto;
  }

  .container-schedule {
    width: 95%;
    left: 2.5%;
    height: auto;
    top: 0;
    position: relative;
    margin: 2rem auto;
  }

  .twitch-schedule {
    width: 100%;
    height: auto;
  }

  .event {
    height: auto;
    min-height: 80px;
    padding: 0.75rem;
    white-space: normal;
  }

  .eventTitle {
    font-size: 14px;
    position: relative;
    top: 0;
    left: 0;
  }

  .eventStart,
  .eventEnd,
  .eventCategory {
    font-size: 12px;
    position: relative;
    top: 0;
    left: 0;
  }

  .gameimg {
    width: 60px;
    height: 60px;
    position: relative;
    top: 0;
    left: 0;
    margin: 0.5rem 0;
  }

  /* Footer */
  .footer {
    position: relative;
    bottom: 0;
    width: 100%;
    text-align: center;
    margin-top: 2rem;
  }

  .footer-container {
    position: relative;
    width: 100%;
  }

  /* 3D Carousel */
  .container {
    max-height: 500px;
  }

  .card {
    width: 80%;
    left: 10%;
  }

  .nav-button {
    width: 15%;
    font-size: calc(0.5rem + 2vw);
  }

  /* YouTube toggle */
  .youtube-toggle-pill {
    bottom: -2rem;
    width: auto;
    min-width: 250px;
  }

    .youtube-toggle-pill .toggle-label {
      font-size: 14px;
      padding: 0.5rem 1rem;
      min-width: 100px;
    }
}

/* Mobile portrait (480px and below) */
@media (max-width: 480px) {
  body {
    margin: 0.25rem;
    padding: 0.25rem;
    background-size: 400%;
  }

  h1 {
    font-size: calc(1.2rem + 2vw);
  }

  h2 {
    font-size: calc(1rem + 1.5vw);
  }

  h3 {
    font-size: calc(0.9rem + 1.2vw);
  }

  p {
    font-size: calc(0.8rem + 1vw);
  }

  /* Navbar mobile optimized */
  .navbar {
    width: 98%;
    padding: 0.5rem 0.25rem;
    flex-direction: row;
  }

    .navbar a {
      font-size: max(12px, 3.5vw);
      padding: 0.4rem 0.6rem;
      min-width: 60px;
      margin: 0.2rem 0.3rem;
    }

  .menu-img {
    display: none; /* Hide kangaroo on very small screens */
  }

  .nav-btn {
    font-size: calc(2rem + 2vw);
  }

  /* Social icons */
  .social-icon {
    width: 36px;
    height: 36px;
    font-size: 18px;
  }

  .socialtitle h3 {
    font-size: calc(1rem + 1vw);
  }

  /* Touch-friendly buttons */
  .aboutwatch,
  .shopnow,
  .cart-btn {
    min-height: 44px; /* Apple/Google touch target minimum */
    padding: 0.75rem 1rem;
  }

  /* Stack all content */
  .merchtext,
  .aboutus,
  .container-irl {
    width: 95%;
    left: 2.5%;
  }

  .carousel {
    width: 95%;
    left: 2.5%;
    height: 70vw;
  }

  .input-group {
    width: 95%;
    left: 2.5%;
  }

  .email-input,
  .submit-btn {
    font-size: 16px; /* Prevents zoom on iOS */
  }

  .consent {
    width: 95%;
    left: 2.5%;
    font-size: 12px;
  }

  /* Validation dialog */
  .validation-dialog {
    max-width: 95vw;
    margin: 0.5rem;
  }

  /* 3D Carousel mobile */
  .card {
    width: 90%;
    left: 5%;
  }

  .nav-button {
    width: 20%;
  }

  iframe {
    max-width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
  }

  /* Hide complex backgrounds on very small screens */
  #BGVideo {
    display: none;
  }

  .mainlogo {
    width: 60%;
    left: 20%;
  }
}

/* Landscape orientation adjustments */
@media (max-height: 500px) and (orientation: landscape) {
  .navbar {
    position: fixed;
    bottom: 0;
    height: 50px;
  }

  .nav-btns {
    top: 50px;
  }

  .socials-container,
  .container-watch {
    height: auto;
    max-height: 80vh;
    overflow-y: auto;
  }
}

/* High DPI screens */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  /* Ensure crisp text */
  body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}

@media (max-width: 768px) {
  footer {
    position: relative;
    margin-top: 2rem;
  }

  .footer-container p {
    font-size: 12px;
  }
}

@media (max-width: 480px) {
  .footer-container p {
    font-size: 10px;
  }
}


.mobile-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: linear-gradient(135deg, #000000 0%, #1a1a1a 100%);
  background-image: url('/img/website backdrop.png');
  background-size: cover;
  background-position: center;
  z-index: 10000;
  overflow-y: auto;
}

.mobile-message {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2rem 1.5rem;
  min-height: 100vh;
  background: rgba(0, 0, 0, 0.85);
}

.mobile-logo {
  width: 60%;
  max-width: 250px;
  height: auto;
  margin-bottom: 2rem;
  animation: fadeInScale 1s ease-in-out;
}

.mobile-message h1 {
  font-family: "Bebas Neue", sans-serif;
  font-size: clamp(1.8rem, 8vw, 3rem);
  color: #fd7f20;
  margin: 1rem 0;
  line-height: 1.2;
}

.mobile-message p {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1rem, 4vw, 1.2rem);
  color: #ffffff;
  margin: 1rem 0;
  max-width: 400px;
  line-height: 1.6;
}

.mobile-subtitle {
  font-size: clamp(0.9rem, 3.5vw, 1rem) !important;
  color: #cccccc !important;
  margin-top: 2rem !important;
}

.mobile-social-links {
  display: flex;
  gap: 1rem;
  margin: 2rem 0 1rem;
  flex-wrap: wrap;
  justify-content: center;
}

.mobile-social-icon {
  color: #ffffff;
  background: #000000;
  border-radius: 50%;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  text-decoration: none;
  font-size: 28px;
  border: 2px solid #747474;
  transition: all 0.3s ease;
}

  .mobile-social-icon:hover,
  .mobile-social-icon:active {
    color: #fd7f20;
    border-color: #fd7f20;
    transform: scale(1.1);
    background: #1a1a1a;
  }

@keyframes fadeInScale {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* Very small screens */
@media (max-width: 360px) {
  .mobile-message {
    padding: 1.5rem 1rem;
  }

  .mobile-logo {
    width: 50%;
    max-width: 180px;
  }

  .mobile-social-icon {
    width: 50px;
    height: 50px;
    font-size: 24px;
  }
}

/* Ensure accessibility */
@media (prefers-reduced-motion: reduce) {
  .mobile-logo {
    animation: none;
  }

  .mobile-social-icon:hover,
  .mobile-social-icon:active {
    transform: none;
  }
}