html,
body {
  height: 100%;
}

body {
  background-image: url("../images/listening-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: 1.8rem;

  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-bottom:hover {
  filter: blur(2px);
  transition: all 0.6 ease-in-out;
}

.album-1 .album-bottom {
  background-image: url("../images/album-covers/Górecki.JPG");
  background-size: 103%;
}
.album-2 .album-bottom {
  background-image: url("../images/album-covers/Echo.WEBP");
}
.album-3 .album-bottom {
  background-image: url("../images/album-covers/windblows.PNG");
}
.album-4 .album-bottom {
  background-image: url("../images/album-covers/holdme.jpeg");
}
.album-5 .album-bottom {
  background-image: url("../images/album-covers/landof.JPG");
}
.album-6 .album-bottom {
  background-image: url("../images/album-covers/mother.JPG");
}
.album-7 .album-bottom {
  background-image: url("../images/album-covers/Europacentrale.png");
}
.album-8 .album-bottom {
  background-image: url("../images/album-covers/Kolędy.JPG");
}
.album-9 .album-bottom {
  background-image: url("../images/album-covers/dakad.jpg");
}
.album-10 .album-bottom {
  background-image: url("../images/album-covers/Aware.JPG");
}
.album-11 .album-bottom {
  background-image: url("../images/album-covers/snowwhite.jpeg");
}

.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 & PHONES – BASE VERTICAL LAYOUT
   (similar to home.css: stack panels, disable horizontal scroll)
   Up to 1024px width
========================================================= */
@media (max-width: 1024px) and (orientation: portrait) {
  body {
    overflow-x: hidden;
    background-attachment: scroll;
  }

  main {
    height: auto;
  }

  .horizontal-wrapper {
    display: flex;
    flex-direction: column;
    height: auto;
    transform: none !important;
  }
  .album-1 .album-bottom {
    background-size: contain;
  }

  .panel {
    width: 100%;
    height: auto;
    min-height: 60vh;
    flex: none;
    flex-direction: column;
  }

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

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

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

  .intro-inner p {
    font-size: 1.5rem;
    line-height: 1.6;
  }

  .album-panel {
    border-bottom: 1px solid rgb(220, 210, 210);
  }

  .album-top {
    height: auto;
    min-height: 13vh;
    padding: 2.5rem 1.5rem;
    text-align: center;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 1rem;
  }

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

  .album-top p {
    font-size: 1rem;
    max-width: 420px;
  }

  .album-bottom {
    height: 40vh;
    background-size: contain;
    background-position: center;
  }

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

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

  .scroll-hint {
    display: none;
  }

  .panel:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
  }
}

/* =========================================================
   LARGE TABLETS – LANDSCAPE (iPad Pro)
   1025px–1366px width
   Full-height intro bg, vertical scroll,
   albums stacked: text left / image right
========================================================= */
@media (min-width: 1025px) and (max-width: 1366px) and (orientation: landscape) {
  body {
    overflow-x: hidden;
    background-attachment: scroll;
  }

  /* turn off fixed "desktop" main & rail */
  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; /* full viewport height */
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: url("../images/music-mobile.jpg");
    background-size: cover;
    background-position: center 30%;
  }

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

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

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

  /* ---------- ALBUM PANELS: stacked, row: [text | image] ---------- */
  .panel {
    width: 100%;
    flex: none;
    height: auto;
  }

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

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

  /* text side (left) */
  .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: 2.3rem;
    margin-bottom: 0.8rem;
  }

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

  /* image side (right) */
  .album-bottom {
    width: 60%;
    height: 80vh;
    margin: 1.5rem 1.5rem 1.5rem 0;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
  }

  .album-1 .album-bottom {
    background-size: contain;
  }

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

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

/* =========================================================
   PHONES – PORTRAIT
   (like home.css: more compression, centered content)
   up to 768px width
========================================================= */
@media (max-width: 768px) and (orientation: portrait) {
  .intro-panel {
    height: 100vh;
    background-image: url("../images/music-mobile.jpg");
    background-size: cover;
    background-position: center;
  }

  .intro-inner {
    padding-bottom: 0;
  }

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

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

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

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

  .album-top {
    min-height: auto;
    padding: 2rem 1.25rem;
  }

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

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

  .album-bottom {
    height: 38vh;
    width: 100%;
    background-size: contain;
  }

  .album-1 .album-bottom {
    background-size: contain;
  }
}

/* =========================================================
   PHONES – LANDSCAPE
   (like home.css: row layout [image | text])
   up to 768px width
========================================================= */
@media (max-width: 768px) and (orientation: landscape) {
  body {
    overflow-x: hidden;
  }

  main {
    height: auto;
  }

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

  /* Intro as first full-screen block */
  .intro-panel {
    width: 100%;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: url("../images/music-mobile.jpg");
    background-size: cover;
    background-position: center 30%;
  }

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

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

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

  /* Each album panel is a row: [image | text] */
  .album-panel {
    width: 100%;
    min-height: 100vh;
    flex: none;
    display: flex;
    flex-direction: row;
    border-bottom: 1px solid rgb(220, 210, 210);
  }

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

  .album-1 .album-bottom {
    background-size: contain;
  }

  .album-bottom {
    width: 60%;
    height: 100vh;
    background-size: contain;
    background-position: center;
    margin-top: 1rem;
    margin-bottom: 1rem;
  }

  .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;
  }

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

/* =========================================================
   SMALL PHONES – PORTRAIT
   up to 480px width
========================================================= */
@media (max-width: 480px) and (orientation: portrait) {
  .intro-inner h1 {
    font-size: 2rem;
    letter-spacing: 0.1em;
    margin-bottom: 23rem;
  }

  .intro-inner p {
    font-size: 0.95rem;
    margin-top: 13rem;
  }

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

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

  .album-bottom {
    height: 36vh;
  }
}

/* =========================================================
   SMALL PHONES – LANDSCAPE
   up to 480px width
========================================================= */
@media (max-width: 480px) and (orientation: landscape) {
  .album-panel {
    min-height: 100vh;
  }

  .album-bottom {
    height: 100vh;
  }

  .album-top {
    padding: 1.5rem;
  }

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

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

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

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