/* ------------------------- Style ® Code by Dennis -------------------------------------------------- */
*{-webkit-tap-highlight-color:transparent;}
/* ------------------------- Page Transition -------------------------------------------------- */

.loading-container {
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   overflow: hidden;
   z-index: 500;
   pointer-events: none;
}

.loading-container .loading-screen {
   position: relative;
   width: 100%;
   height: 100%;
   background: var(--color-dark);
   display: flex;
   justify-content: center;
   align-items: center;
   pointer-events: all;
}

.floating-elements > svg {
   position: absolute;
   width: calc(var(--title-size) * 0.4);
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
}

.floating-elements {
   z-index: 600;
}

.floating-elements > svg circle {
   stroke: var(--color-light);
   opacity: 0;
}

/* ------------------------- Cookie Jar -------------------------------------------------- */

.cookie-jar {
   pointer-events: all;
   position: absolute;
   bottom: var(--row-gap);
   right: var(--container-padding);
   background: var(--color-white);
   padding: var(--row-gap) var(--col-gap);
   display: flex;
   flex-direction: column;
   gap: 1em;
   max-width: 20em;
   border-radius: var(--border-radius);
}

.cookie-jar .row .col {
   gap: 0.75em;
}

.cookie-jar .row .col .col-row-btn {
   padding-top: 0.25em;
}


/* ------------------------- Navigation -------------------------------------------------- */

.main-nav-bar {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   padding: var(--row-gap) var(--container-padding);
   pointer-events: all;
}

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

.ul-socials {
   display: flex;
   flex-direction: row;
   gap: 0.45em;
   justify-content: flex-end;
}

.main-nav-bar .sound-icon {
   width: 1.4em;
   height: 1.4em;
   position: absolute;
   left: 50%;
   transform: translateX(-50%);
}

.main-nav-bar .sound-icon .icon-click > * {
   cursor: pointer;
   position: absolute;
   width: 100%;
   display: flex;
   align-items: center;
   justify-content: center;
}

.main-nav-bar .sound-icon svg {
   width: 60%;
}

.main-nav-bar .sound-icon svg path {
   fill: var(--color-light);
}

[data-audio-ambient-status="not-started"] .main-nav-bar .sound-icon {
   display: none;
}

[data-audio-ambient-status="not-active"] .main-nav-bar .sound-icon .sound-on {
   display: none;
}

[data-audio-ambient-status="active"] .main-nav-bar .sound-icon .sound-off {
   display: none;
}


/* ------------------------- Section - Footer -------------------------------------------------- */

.footer {
   padding: 0;
   z-index: 2;
}

.bottom-bar {
   padding: var(--row-gap) var(--col-gap);
   display: flex;
   align-items: center;
   justify-content: space-between;
}

@media screen and (min-width: 541px) {

   .bottom-bar > .col {
      width: 15em;
   }
}

.bottom-bar .col-credits {
   display: flex;
   flex-direction: row;
   justify-content: center;
   align-items: center;
   gap: 0.2em;
}

.bottom-bar .col-prev {
   display: flex;
   flex-direction: row;
   justify-content: space-between;
   align-items: center;
   gap: calc(var(--col-gap) * 2); 
}

.bottom-bar .col-prev i {
   transform: scaleX(-1);
}

.bottom-bar .col-next {
   display: flex;
   flex-direction: row;
   justify-content: space-between;
   align-items: center;
   gap: calc(var(--col-gap) * 2); 
}

.bottom-bar i {
   width: 0.75em;
   flex-shrink: 0;
}

@media screen and (max-width: 540px) {
   .bottom-bar .col-photo {
      display: none;
   }

   .bottom-bar .col-prev,
   .bottom-bar .col-next {
      width: 45%;
      min-width: unset;
      gap: 0;
   }
   
}

.header-visuals,
.header-visuals .header-visuals-inner {
   pointer-events: none;
   user-select: none;
   /* transform: translateZ(0) rotate(0.001deg);
   isolation: isolate;
   will-change: transform; */
}

/* ------------------------- Section - Home Header -------------------------------------------------- */

/* .section-home-header video {
   filter: blur(3em) contrast(1.5) brightness(0.3) saturate(0.6) hue-rotate(-10deg);
   transform: scale(1.4);
   opacity: 1;
} */

.section-home-header .bottom-bar .col-credits {
   justify-content: flex-end;
}

.section-home-header .bottom-bar .col-credits.col-photo {
   justify-content: center;
   text-align: center;
}

.section-home-header video {
   filter: blur(2.25em) contrast(1.25) brightness(1.1) saturate(0.1) hue-rotate(-10deg);
   transform: scale(1.4);
   mix-blend-mode: multiply;
   pointer-events: none;
   user-select: none;
}

@media screen and (max-width: 1024px) {
   .section-home-header video {
      display: none;
   }
}
   
.section-home-header .image-overlay {
   filter: brightness(1.25);
}

.section-home-header .overlay-color {
   background-color: var(--color-light);
   mix-blend-mode: overlay;
   opacity: 0.15;
}

.section-home-header .overlay-color-multiply {
   background-color: var(--color-light);
   mix-blend-mode: multiply;
   opacity: 0.25;
}

@media screen and (max-width: 1024px) {
   .section-home-header .overlay-color {
      opacity: 0.5;
      background-color: var(--color-dark);
   }
}

.section-home-header .row {
   flex-direction: column;
   justify-content: flex-end;
   gap: 12.5vh;
}

.section-home-header .row .col {
   width: 100%;
}

.section-home-header .col-enter {
   display: none;
   align-items: center;
   justify-content: center;
   height: 100%;
   height: 25vh;
   pointer-events: none;
}

@media screen and (max-width: 1024px) {
   .section-home-header .col-enter {
      display: flex;
   }
}

@media (hover: none) { 
   .section-home-header .col-enter {
      display: flex;
   }
}

.section-home-header .col-enter .look-a-like-button {
   position: relative;
   padding: 1em;
}

.section-home-header .col-enter .look-a-like-button  .styling-element {
   width: 0.5em;
   height: 0.5em;
}

.section-home-header .row .col-row {
   display: flex;
   align-items: center;
}

.section-home-header .row .col-row.col-row-first {
   justify-content: flex-end;
}

.section-home-header .row .col-row.col-row-third {
   justify-content: space-between;
}

.section-home-header .row .col-row.col-row-third .star {
   width: calc(var(--title-size) * 0.5);
   overflow: hidden;
}

.section-home-header .row .col-row.col-row-third .star svg {
   width: 100%;
}

.section-home-header .row .col-row.col-row-third .star svg path {
   fill: var(--color-light);
}

.section-home-header .row .col-row.col-row-third .globe {
   width: calc(var(--title-size) * 0.9);
   overflow: hidden;
   margin-left: 35%;
}

.section-home-header .row .col-row.col-row-third .globe .single-char {
   padding: 0.15em;
}

.section-home-header .row .col-row.col-row-third .globe svg {
   width: 100%;
}

.section-home-header .row .col-row.col-row-third .globe svg * {
   stroke: var(--color-light);
   stroke-width: 0.4px;
}

@media screen and (max-width: 720px) {

   .section-home-header .row .col-row.col-row-third .star {
      width: calc(15vw * 0.5);
   }

   .section-home-header .row .col-row.col-row-third .globe {
      width: calc(15vw * 0.9);
      margin-left: unset;
   }
}

/* ------------------------- Section - Parallax Header -------------------------------------------------- */

.section-parallax-header {
   position: relative;
}

.section-parallax-header .header-visuals {
   height: 120%;
   pointer-events: none;
   user-select: none;
}

.parallax-single-breathtaking .section-parallax-header .header-visuals{
   height: 130%;
}

.header-visuals {
   background-color: var(--color-dark);
}

.header-visuals picture img,
.parallax-layers,
.parallax-layers > * {
   transform: translateZ(0);
   will-change: transform;
}

.section-parallax-header .header-visuals-inner {
   overflow: hidden;
   display: flex;
   align-items: center;
   justify-content: center;
}
.section-parallax-header .header-visuals::before {
   content: "";
   position: absolute;
   bottom: -1px;
   left: 0;
   width: 100%;
   height: 2px;
   background-color: var(--color-dark);
   z-index: 10;
}

.section-parallax-header .header-visuals .overlay-fade {
   width: 100%;
   height: 60%;
   position: absolute;
   bottom: 0;
   left: 0;
   background: linear-gradient(to top, rgba(var(--color-dark-rgb), 1) 0%, rgba(var(--color-dark-rgb), 0.738) 19%, rgba(var(--color-dark-rgb), 0.541) 34%, rgba(var(--color-dark-rgb), 0.382) 47%, rgba(var(--color-dark-rgb), 0.278) 56.5%, rgba(var(--color-dark-rgb), 0.194) 65%, rgba(var(--color-dark-rgb), 0.126) 73%, rgba(var(--color-dark-rgb), 0.075) 80.2%, rgba(var(--color-dark-rgb), 0.042) 86.1%, rgba(var(--color-dark-rgb), 0.021) 91%, rgba(var(--color-dark-rgb), 0.008) 95.2%, rgba(var(--color-dark-rgb), 0.002) 98.2%, transparent 100%);
}

.parallax-single-breathtaking .section-parallax-header .header-visuals .overlay-fade {
   height: 75%;
}

.section-parallax-header .row {
   align-items: center;
   justify-content: center;
   position: relative;
}

.section-parallax-header .row .col {
   max-width: calc(var(--title-size) * 7);
}

.marquee-group .star {
   overflow: hidden;
   width: var(--title-size);
   height: 100%;
   position: relative;
   display: flex;
}

.marquee-group .star .overlay {
   display: flex;
   align-items: center;
   justify-content: center;
}

.marquee-group .star svg {
   width: 40%;
}

@media screen and (max-width: 720px) {

   .section-parallax-header .row .col {
      max-width: 85%;
   }

   .marquee-group .star {
      width: 15vw;
   }

   .section-parallax-header .marquee-styling {
      display: none;
   }
}

.marquee-group .star svg path {
   fill: var(--color-light);
}

.section-parallax-header .marquee-styling {
   position: absolute;
   top: -1em;
   left: -2em;
   bottom: -1em; 
   right: -2em;
   pointer-events: none;
   user-select: none;
}

@media (hover: none) {
   .section-parallax-header .prev-touchable, 
   .section-parallax-header .next-touchable {
      display: none;
   }
}

@media (hover: hover) {

   .section-parallax-header .prev-touchable {
      position: absolute;
      left: 0;
      top: calc(var(--row-gap) + 1em + var(--row-gap));
      bottom: calc(var(--row-gap) + 1em + var(--row-gap));
      width: min(9em, 30vw);
   }

   .section-parallax-header .prev-touchable .styling-element.right-top {
      opacity: 0;
      filter: blur(0.25em);
      transition: var(--animation-smooth);
   }

   .section-parallax-header .prev-touchable .styling-element.right-bottom {
      opacity: 0;
      filter: blur(0.25em);
      transition: var(--animation-smooth);
   }

   .section-parallax-header .prev-touchable:hover .styling-element {
      opacity: 1;
      filter: blur(0em);
   }

   .section-parallax-header .next-touchable {
      position: absolute;
      right: 0;
      top: calc(var(--row-gap) + 1em + var(--row-gap));
      bottom: calc(var(--row-gap) + 1em + var(--row-gap));
      width: min(9em, 30vw);
   }

   .section-parallax-header .next-touchable .styling-element.left-top {
      opacity: 0;
      filter: blur(0.25em);
      transition: var(--animation-smooth);
   }

   .section-parallax-header .next-touchable .styling-element.left-bottom {
      opacity: 0;
      filter: blur(0.25em);
      transition: var(--animation-smooth);
   }

   .section-parallax-header .next-touchable:hover .styling-element {
      opacity: 1;
      filter: blur(0em);
   }

   .section-parallax-header .glass-effect {
      position: absolute;
      top: 10px;
      right: 10px;
      bottom: 10px;
      left: 10px;
      background-color: rgba(var(--color-light-rgb), 0.025);
      backdrop-filter: blur(1em);
      transition: var(--animation-smooth);
      opacity: 0;
   }

   .section-parallax-header .glass-effect::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(var(--color-white-rgb), 0.05);
   }

   .section-parallax-header .next-touchable:hover .glass-effect,
   .section-parallax-header .prev-touchable:hover .glass-effect {
      opacity: 1;
      top: 2px;
      right: 2px;
      bottom: 2px;
      left: 2px;
   }

}

/* ------------------------- Section - Parallax Intro -------------------------------------------------- */

.section-parallax-intro {
   padding-top: calc(var(--title-size) * 2);
   padding-bottom: calc(var(--title-size) * 2);
}

.section-parallax-intro .row {
   --gap: 10vw;
   --columns: 2;
   align-items: center;
}

.section-parallax-intro figure {
   width: 100%;
   padding-top: 115%;
   overflow: hidden;
   position: relative;
}

.section-parallax-intro figure picture {
   height: 115%;
   top: -15%;
}

.section-parallax-intro figure h5.credits {
   position: absolute;
   right: 2em;
   bottom: 2em;
   color: var(--color-light);
   z-index: 2;
}

.section-parallax-intro figure .pol-card {
   width: 33%;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
}

.section-parallax-intro figure .pol-card h5 {
   position: absolute;
   bottom: 6.5%;
   text-align: center;
   color: var(--color-dark);
   width: 86%;
   left: 7%;
   overflow: hidden;
   white-space: nowrap;
}

.section-parallax-intro figure .pol-card h5 .italic {
   transform: translateY(-5%);
}

.section-parallax-intro figure .pol-card svg {
   width: 100%;
}

.section-parallax-intro figure .pol-card svg path {
   fill: var(--color-light);
}

.section-parallax-intro .col-row-title-2 {
   display: flex;
   justify-content: space-between;
   align-items: center;
   max-width: calc(var(--title-size) * 3.75);
}

.section-parallax-intro .row .star {
   width: calc(var(--title-size) * 0.25);
   overflow: hidden;
}

.section-parallax-intro .row .star svg {
   width: 100%;
}

.section-parallax-intro .row .star svg path {
   fill: var(--color-light);
}

.section-parallax-intro .row .globe {
   width: calc(var(--title-size) * 0.55);
   overflow: hidden;
   display: flex;
   align-items: center;
   justify-content: center;
}

.section-parallax-intro .row .globe svg {
   width: 90%;
}

.section-parallax-intro .row .globe svg * {
   stroke: var(--color-light);
   stroke-width: 0.5px;
}

.section-parallax-intro .col-row-title-2 .italic {
   font-size: 0.9em;
   transform: translateY(-5%);
}

.section-parallax-intro .col-row-text {
   padding: 4em 0 2em 0;
}

@media screen and (max-width: 840px) {
   .section-parallax-intro .row {
      --gap: var(--col-gap);
      --columns: 1;
      gap: 4em var(--gap);
      align-items: center;
      justify-content: center;
   }

   .section-parallax-intro .col {
      max-width: calc(var(--title-size) * 5.5);
   }
}

@media screen and (max-width: 540px) {
   .section-parallax-intro {
      padding-bottom: var(--title-size);
   }

   .section-parallax-intro figure h5.credits {
      right: 1em;
      bottom: 1em;
   }
}

@media screen and (max-width: 420px) {
   .section-parallax-intro figure .pol-card {
      width: 40%;
   }

   .section-parallax-intro figure .pol-card h5 {
      bottom: 7%;
   }
}

@media (max-width: 768px) {
  /* Force the outer header section to span the full viewport height */
  .section-parallax-header,
  .section-parallax-header.full-height {
    height: 100vh !important;
    min-height: 100vh !important;
    position: relative !important;
  }

  /* Flexbox handles the perfect vertical and horizontal centering inside the section */
  .section-parallax-header .header-visuals {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    background-color: #13090c !important;
    padding: 0 !important; /* Stripped your destructive padding hacks */
  }

  /* The square box frame, perfectly contained */
  .header-visuals-inner {
    position: relative !important;
    width: 340px !important;       
    height: 400px !important; /* Made it a perfect square based on your 100vw try */     
    overflow: hidden !important;
    border-radius: 8px;            
    background-color: #13090c !important;
  }

  /* Lock placeholder precisely to the centered box */
  .header-visuals-inner > .image-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1 !important;
  }

  .header-visuals-inner > .image-overlay img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  /* Secure the parallax context wrapper inside the box bounds */
  .parallax-layers {
    width: 100% !important;
    height: 100% !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 2 !important;
  }

  /* Clip the parallax images exactly to the 340x340 box dimensions */
  .parallax-layers img.overlay {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;  
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
  }

  /* Kill the gradient fade overlay */
  .header-visuals .overlay-fade {
    display: none !important;
  }

  /* Normalized the intro section so it follows naturally without terrible negative margins */
  .section-parallax-intro {
    margin-top: 0 !important;
    position: relative !important;
    z-index: 2 !important;
  }
}
/* ------------------------- Section - Contact -------------------------------------------------- */

.section-parallax-contact {
  padding: calc(var(--title-size) * 2) 0;
  border-top: 1px solid rgba(163, 200, 255, 0.15);
}

.contact-inner {
  display: flex;
  flex-direction: column;
  gap: 2em;
}

.contact-inner h2 {
  color: var(--color-light);
}

.contact-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}

.contact-links li {
  border-bottom: 1px solid rgba(163, 200, 255, 0.15);
}

.contact-links li:first-child {
  border-top: 1px solid rgba(163, 200, 255, 0.15);
}

.contact-links li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25em 0;
  text-decoration: none;
  transition: padding 0.3s ease;
}

.contact-links li a:hover {
  padding-left: 1em;
}

.contact-label {
  font-size: calc(var(--title-size) * 0.35);
  color: var(--color-light);
  letter-spacing: -0.02em;
  transition: opacity 0.3s ease;
}

.contact-links li a:hover .contact-label {
  opacity: 0.6;
}

.contact-arrow {
  font-size: calc(var(--title-size) * 0.3);
  color: var(--color-light);
  opacity: 0.4;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.contact-links li a:hover .contact-arrow {
  opacity: 1;
  transform: translateX(0.25em) translateY(-0.25em);
}

@media screen and (max-width: 768px) {
  .contact-label {
    font-size: 7vw;
  }

  .contact-arrow {
    font-size: 6vw;
  }
}
