html,
body {
  height: 100%;
}

body {
  background-image: url("../images/watch-img.jpg"); /* ok as a subtle global bg */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  font-family: "Roboto Condensed", system-ui, -apple-system, BlinkMacSystemFont,
    sans-serif;
  overflow-x: hidden;
  color: var(--Text-Color);
}

/* ========================= */
/* MAIN HORIZONTAL LAYOUT    */
/* ========================= */

main {
  height: 100vh;

  padding: 0;
}

.scroll-hint {
  position: fixed;
  bottom: 50%;
  right: 40px;

  font-family: "Dublin-Thin", sans-serif;
  font-size: 3rem;
  color: var(--Text-Color);
  opacity: 0.7;

  pointer-events: none; /* <-- does NOT interfere with scrolling */
  z-index: -1; /* above everything else */

  animation: scrollPulse 2s ease-in-out infinite;
}

/* simple pulsing animation */
@keyframes scrollPulse {
  0% {
    opacity: 0.4;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.4;
  }
}

.horizontal-wrapper {
  height: 100vh;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  transform: translateX(100vw);
}

/* panel base */
.panel {
  height: 100vh;
  flex: 0 0 25vw; /* albums */
  display: flex;
  flex-direction: column;
  background-color: #1e1e26;
}
.panel:hover {
  background-color: black;
  transition: all 0.5s ease-in-out;
}
/* intro is wider */
.intro-panel {
  flex: 0 0 50vw;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #050509;
}

/* INTRO CONTENT */
.intro-inner {
  max-width: 520px;
  padding: 6rem 5vw;
}

.intro-inner h1 {
  font-family: "Dublin-Bold", system-ui, sans-serif;
  font-size: 3.5rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}

.intro-inner p {
  font-size: 1.1rem;
  line-height: 1.7;
  opacity: 0.9;
  font-family: sans-serif;
}

/* ========================= */
/* ALBUM PANELS              */
/* ========================= */

.album-panel {
  position: relative;
  display: flex;
  flex-direction: column;
}

/* top half text */
.album-top {
  height: 50%;
  padding: 4rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 0;
  transition: opacity 1.5s ease-out;
}

.album-top.fade-in {
  opacity: 1;
}

.album-top h2 {
  font-family: "sans-serif", system-ui, sans-serif;
  font-size: 2rem;

  margin-bottom: 0.8rem;
}

.album-top p {
  font-size: 1rem;
  opacity: 0.85;
  font-family: sans-serif;
}

/* bottom half image */
.album-bottom {
  position: relative;
  height: 50%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 1.5s ease-out;
}

.album-bottom.fade-in {
  opacity: 1;
}

/* .album-1 .album-bottom {
}
.album-2 .album-bottom {
}
.album-3 .album-bottom {
}
.album-4 .album-bottom {
} */

.album-bottom-link {
  position: absolute;
  inset: 0; /* top:0; right:0; bottom:0; left:0 */
  display: block;
}

/* side-menu keyframe */
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* =========================================================
   TABLETS – BOTH ORIENTATIONS (iPads)
   769px–1024px width
   Full-height intro bg, vertical scroll,
   videos stacked: text left / video right
========================================================= */
@media (max-width: 1024px) and (orientation: portrait) {
  body {
    overflow-x: hidden;
    background-attachment: scroll; /* fixed bg = jank on iPad */
  }

  /* Turn off fixed horizontal layout */
  main {
    position: static;
    height: auto;
    padding: 0;
  }

  .scroll-hint {
    display: none;
  }

  .horizontal-wrapper {
    display: flex;
    flex-direction: column;
    height: auto;
    transform: none !important;
  }

  /* ---------- INTRO PANEL: full-height bg with text on top ---------- */
  .intro-panel {
    width: 100%;
    min-height: 100vh; /* hero can stay full height */
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: url("../images/video-mobile.jpg");
    background-size: cover;
    background-position: center 35%;
  }

  .intro-inner {
    max-width: 700px;
    padding: 4rem 6vw;
    text-align: center;
  }

  .intro-inner h1 {
    font-size: 3rem;
    letter-spacing: 0.14em;
    margin-bottom: 34rem;
  }

  .intro-inner p {
    font-size: 1.3rem;
    line-height: 1.7;
  }

  /* ---------- VIDEO PANELS: row [text | video], natural height ---------- */

  .panel {
    width: 100%;
    flex: none;
    height: auto;
  }

  .album-panel {
    display: flex;
    flex-direction: row; /* text left, video right */
    align-items: center; /* center both halves vertically */
    padding: 3rem 1.5rem;
    border-bottom: 1px solid rgb(220, 210, 210);
    min-height: auto; /* override old vh values */
  }

  .album-panel:last-child {
    border-bottom: none;
  }

  /* text side (left) */
  .album-top {
    width: 40%;
    height: auto;
    min-height: auto; /* override the old 80vh */
    padding-right: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
    opacity: 1;
    transform: none;
  }

  .album-top h2 {
    font-size: 2rem;
    margin-bottom: 0.8rem;
  }

  .album-top p {
    font-size: 1.05rem;
    max-width: 520px;
    opacity: 0.9;
  }

  /* video side (right) */
  .album-bottom {
    width: 60%;
    height: auto; /* let iframe define the height */
    margin: 0; /* no weird offset */
    display: flex;
    justify-content: center; /* center horizontally */
    align-items: center; /* center vertically in this half */
    background: none;
    opacity: 1;
  }

  .album-bottom iframe {
    width: 100%;
    max-width: 480px;
    aspect-ratio: 16 / 9; /* keep proper video shape */
    height: auto;
    max-height: 100%;
  }

  /* Remove hover-only effects on touch devices */
  .panel:hover {
    background-color: #1e1e26;
  }

  .album-bottom:hover {
    filter: none;
  }
}

/* =========================================================
   LARGE TABLETS – LANDSCAPE (iPad Pro)
   1025px–1366px width
   Same behavior as tablet layout
========================================================= */
@media (min-width: 1025px) and (max-width: 1366px) and (orientation: landscape) {
  body {
    overflow-x: hidden;
    background-attachment: scroll;
  }

  main {
    position: static;
    height: auto;
    padding: 0;
  }

  .scroll-hint {
    display: none;
  }

  .horizontal-wrapper {
    display: flex;
    flex-direction: column;
    height: auto;
    transform: none !important;
  }

  .intro-panel {
    width: 100%;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: url("../images/video-mobile.jpg");
    background-size: cover;
    background-position: center 35%;
  }

  .intro-inner {
    max-width: 700px;
    padding: 4rem 6vw;
    text-align: center;
  }

  .intro-inner h1 {
    font-size: 3rem;
    letter-spacing: 0.14em;
    margin-bottom: 34rem;
  }

  .intro-inner p {
    font-size: 1.3rem;
    line-height: 1.7;
  }

  .panel {
    width: 100%;
    flex: none;
    height: auto;
  }

  .album-panel {
    display: flex;
    flex-direction: row;
    min-height: 80vh;
    border-bottom: 1px solid rgb(220, 210, 210);
  }

  .album-panel:last-child {
    border-bottom: none;
  }

  .album-top {
    width: 40%;
    height: auto;
    min-height: 80vh;
    padding: 3rem 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
    opacity: 1;
    transform: none;
  }

  .album-top h2 {
    font-size: 2rem;
    margin-bottom: 0.8rem;
  }

  .album-top p {
    font-size: 1.05rem;
    max-width: 520px;
    opacity: 0.9;
  }

  .album-bottom {
    width: 60%;
    height: 80vh;
    margin: 1.5rem 1.5rem 1.5rem 0;
    background: none;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 1;
  }

  .album-bottom iframe {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
  }

  .panel:hover {
    background-color: #1e1e26;
  }

  .album-bottom:hover {
    filter: none;
  }
}

/* =========================================================
   PHONES ONLY — EXTRA COMPRESSION & READABILITY
========================================================= */
@media (max-width: 768px) and (orientation: portrait) {
  /* Intro tighter and calmer */
  .intro-panel {
    height: 100vh;
    background-image: url("../images/video-mobile.jpg");
  }

  .intro-inner {
    padding-top: 3.5rem;
    padding-bottom: 0;
  }

  .intro-inner h1 {
    font-size: 1.9rem;
    letter-spacing: 0.12em;
    margin-bottom: 4rem;
  }

  .intro-inner p {
    margin-top: 20rem;
    margin-bottom: 5rem;
    font-size: 1rem;
  }

  /* Videos feel like cards */
  .album-panel {
    min-height: 50vh;
    border-bottom: 1px solid rgb(220, 210, 210);

    flex-direction: column;
    justify-content: center;
    align-items: center; /* center children horizontally */
  }
  .album-panel:last-child {
    border-bottom: none;
  }

  /* TEXT BLOCK */
  .album-top {
    width: 100%;
    max-width: 420px;
    padding: 0 1.25rem;
    margin: 0 auto 1.5rem; /* center + space below text */

    /* These two lines create the look you liked: */
    text-align: center; /* Centers the text inside the elements */
    align-items: center; /* Centers the h2 and p elements in the column */
  }

  .album-top h2 {
    font-size: 1.7rem;
  }

  .album-top p {
    font-size: 0.9rem;
    margin-bottom: 15px;
  }

  /* VIDEO BLOCK */
  .album-bottom {
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .album-bottom iframe {
    width: 100%;
    max-width: 420px; /* same as text block */
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto; /* no left push */
    display: block;
  }
}

@media (max-width: 768px) and (orientation: landscape) {
  body {
    overflow-x: hidden;
    background-attachment: scroll; /* avoid jank with fixed bg */
  }

  main {
    height: auto;
  }

  /* Turn off horizontal rail and stack panels vertically */
  .horizontal-wrapper {
    display: flex;
    flex-direction: column;
    height: auto;
    transform: none !important;
  }

  /* All panels full-width, row layout inside video panels */
  .panel {
    width: 100%;
    min-height: 100vh;
    flex: none;
  }

  /* Intro becomes a full-screen hero */
  .intro-panel {
    height: 100vh;
    background-image: url("../images/video-mobile.jpg");
    background-position: center 35%;
    background-size: cover;
  }

  .intro-inner {
    max-width: 640px;
    padding: 3rem 3vw;
    text-align: center;
  }

  .intro-inner h1 {
    font-size: 2.1rem;
    letter-spacing: 0.14em;
    margin-bottom: 2rem;
  }

  .intro-inner p {
    font-size: 1rem;
    line-height: 1.5;
    margin-top: 1.5rem;
  }

  /* VIDEO PANELS: row layout [video | text] */
  .album-panel {
    display: flex;
    flex-direction: row;
    min-height: 100vh;
    border-bottom: 1px solid rgb(220, 210, 210);
  }

  .album-panel:last-child {
    border-bottom: none;
  }

  /* Video side */
  .album-bottom {
    width: 60%;
    height: 100vh;
    background: none; /* let the iframe be the star */
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .album-bottom iframe {
    width: 80%;
    height: 80%;
    max-width: 100%;
    max-height: 100%;
  }

  /* Text side */
  .album-top {
    width: 40%;
    height: 100vh;
    padding: 2rem;
    text-align: left;
    justify-content: center;
    align-items: flex-start;
  }

  .album-top h2 {
    font-size: 1.6rem;
    margin-bottom: 0.8rem;
  }

  .album-top p {
    font-size: 0.95rem;
  }

  /* No hover color flip on touch devices */
  .panel:hover {
    background-color: #1e1e26;
  }

  .album-bottom:hover {
    filter: none;
  }

  /* Hide scroll hint in landscape too */
  .scroll-hint {
    display: none;
  }
}

/* view transitions */
@view-transition {
  navigation: auto;
}

::view-transition-group(*) {
  animation-duration: 1s;
}
