/* Homepage composition and release discovery. Shared checkout/player logic is unchanged. */
.homepage { --muted: #aaa49d; }
.homepage .section { padding: 46px 0; }
.homepage .section h2 { font-size: clamp(2rem, 3.7vw, 3.5rem); line-height: 1.08; }
.homepage .section-heading { gap: 24px; margin-bottom: 24px; }
.homepage .section-heading p { max-width: 340px; font-size: .88rem; }
.homepage .eyebrow { font-size: .65rem; letter-spacing: .16em; }
.homepage .button { min-height: 44px; }
.homepage #top { scroll-margin-top: 65px; }
.homepage .preview-time { font-size: .7rem; color: #bcb6ae; }
.homepage :is(button, a):focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.homepage :is(#about, #contact, .release-detail) { scroll-margin-top: 100px; }
.homepage .brand-masthead.pm-art-hero {
  width: 100%; margin: 0; height: auto; min-height: 0;
  display: grid; grid-template-columns: 1.2fr .8fr; align-items: center;
  padding: 42px 0 48px; overflow: hidden; isolation: isolate;
  border-top: 0; border-bottom: 1px solid #242424; background: #030303;
}
.homepage .pm-art-hero::before { display: none; }
#pm-banner-art {
  grid-column: 1; grid-row: 1; display: block; width: 100%; height: auto;
  min-width: 0; mask-image: linear-gradient(90deg, transparent, #000 12%, #000 92%, transparent);
}
.pm-hero-content { grid-column: 2; grid-row: 1; position: relative; z-index: 1; padding: 24px 0; }
.pm-hero-content h2 { font-size: clamp(2.7rem, 4.6vw, 4.7rem); line-height: .98; letter-spacing: -.055em; margin: 22px 0; }
.pm-hero-content h2::after { content: ''; display: block; width: 48px; height: 3px; background: var(--red); margin-top: 24px; }
.pm-hero-copy { color: var(--muted); font-size: .92rem; line-height: 1.75; max-width: 370px; }
.pm-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.pm-hero-actions .button { gap: 22px; }
.hero-socials { display: flex; align-items: center; flex-wrap: wrap; column-gap: 16px; row-gap: 4px; margin-top: 18px; font: 600 .7rem/1.5 Consolas, monospace; }
.hero-socials-label { color: var(--red); font-size: .6rem; letter-spacing: .08em; }
.hero-socials a { display: inline-flex; align-items: center; min-height: 32px; color: #bcb6ae; text-decoration: none; }
.hero-socials a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.release-art-button { padding: 0; color: inherit; font: inherit; cursor: pointer; width: 100%; }
.homepage .release-art-button:focus-visible { outline: 2px solid #fff; outline-offset: -3px; }
.release-art-button:hover img { filter: brightness(1.12); }
.pm-hero-signal { position: absolute; bottom: 18px; right: 0; color: #86817b; font: .6rem Consolas, monospace; letter-spacing: .16em; text-transform: uppercase; }
.pm-hero-signal::before { content: '//'; color: var(--red); margin-right: 10px; }
.pm-hero-scroll, .pm-hero-strap { display: none; }
.homepage #releases {
  --releases-padding-top: 36px;
  padding-top: var(--releases-padding-top);
  /* Subtract the section padding and border so the heading lands 8px below the header. */
  scroll-margin-top: calc(var(--public-header-height, 54px) - var(--releases-padding-top) + 7px);
}
.release-section-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.homepage .section #latest-releases-heading { color: var(--red); font: 700 clamp(.85rem, 1.3vw, 1.1rem)/1.5 Consolas, monospace; letter-spacing: .12em; margin: 0; }
.release-section-header p { color: var(--muted); font-size: .85rem; line-height: 1.6; margin: 8px 0 0; }
.homepage .release-rail {
  display: flex; gap: 18px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-inline: 2px;
  scrollbar-width: thin; scrollbar-color: #5c2528 #080808;
  padding: 4px 2px 18px; position: relative; cursor: grab;
}
.release-rail.is-dragging { cursor: grabbing; user-select: none; }
.homepage .release-rail.is-dragging, .homepage .release-rail.is-settling { scroll-snap-type: none; }
.release-rail:focus-visible { outline: 1px solid #eee9e1; outline-offset: 6px; }
.homepage .release-card {
  flex: 0 0 calc((100% - 90px) / 3); min-width: 0; min-height: 0;
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
  gap: 14px; padding: 14px; align-content: start; scroll-snap-align: start;
  background: linear-gradient(140deg, #101010, #060606); border: 1px solid #2b2b2b;
}
.homepage .release-card::before { display: none; }
.homepage .release-card.is-current { border-color: #9d242a; box-shadow: inset 0 2px #df151d; }
.homepage .release-card .release-art { grid-column: 1 / -1; aspect-ratio: 1; align-self: start; border: 0; }
.homepage .release-card .release-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.homepage .release-card .release-copy { grid-column: 1 / -1; padding: 0; gap: 10px; min-width: 0; }
.homepage .release-card h3 { font-size: 1.22rem; line-height: 1.2; min-height: 2.4em; margin: 0; }
.homepage .release-tagline {
  min-height: 3.1em; line-height: 1.55; font-size: .84rem;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  overflow: hidden; margin: 0;
}
.release-card-preview { min-height: 66px; }
.homepage .release-card .release-preview { border: 0; padding: 6px 0; margin: 0; background: transparent; }
.homepage .release-details-button { width: 100%; justify-content: space-between; border-color: #832127; margin-top: 4px; }
.homepage .release-details-button:hover { border-color: var(--red); background: #19090a; }
.release-details { margin-top: 30px; }
.release-detail {
  display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr);
  gap: clamp(24px, 4vw, 54px); padding: clamp(20px, 3vw, 40px);
  border: 1px solid #303030; background: linear-gradient(130deg, #101010, #050505 65%);
}
.release-detail[hidden] { display: none; }
.release-detail > .release-art { align-self: start; border: 1px solid #292929; }
.release-detail-copy { min-width: 0; }
.release-detail h3 { font-size: clamp(1.9rem, 3vw, 3rem); line-height: 1.08; letter-spacing: -.035em; margin: 12px 0; }
.release-detail h3:focus { outline: none; }
.release-detail-tagline { color: var(--muted); font-size: .95rem; line-height: 1.6; margin: 0 0 24px; }
.release-detail .release-listening { border: 0; margin: 0; padding: 0; gap: 14px; }
.release-detail .release-listening-label, .release-detail .release-meta h4 { font: 700 .72rem/1.4 Consolas, monospace; text-transform: uppercase; letter-spacing: .1em; margin: 0; }
.release-detail .release-listening-label::after, .release-detail .release-meta h4::after { content: ''; display: block; width: 24px; height: 2px; background: var(--red); margin-top: 8px; }
.release-detail .release-listening-links { grid-template-columns: repeat(auto-fit, minmax(115px, 1fr)); }
.release-detail .release-listening-link { min-height: 44px; border-color: #363636; color: #eee9e1; text-decoration: none; }
.release-detail .release-listening-link:hover { background: #171717; border-color: #777; }
.release-detail .release-commercial { border-color: #303030; margin-top: 24px; padding-top: 24px; }
.release-detail .release-meta { align-items: start; padding: 0; gap: 16px; }
.release-detail .release-meta strong { font: 700 1.4rem/1.2 Arial, sans-serif; white-space: nowrap; }
.release-detail .release-commercial p { color: var(--muted); font-size: .82rem; line-height: 1.7; }
.release-detail .buy-button { margin: 10px 0; min-height: 52px; }
.release-detail .release-wider-licensing { font-size: .74rem; }
.release-detail .release-wider-licensing a { color: #ddd8d1; }
.homepage .licence-highlight { margin: 0 0 36px; padding: 22px; border-left-width: 1px; background: transparent; }
.homepage .licence-highlight h3 { font-size: 1.15rem; }
.homepage .licence-highlight-copy p { font-size: .78rem; }
.homepage .licence-highlight-human { font-size: .76rem; }
.homepage .release-preview .preview-waveform { gap: 1px; }
.homepage .release-preview .preview-waveform-bar { min-width: 0; max-width: none; background: repeating-linear-gradient(90deg, #85817c 0 2px, transparent 2px 3px); }
@media (min-width: 1250px) {
  .homepage .release-card { grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); }
  .homepage .release-card .release-art { grid-column: 1; grid-row: 1 / 4; }
  .homepage .release-card .release-copy { display: contents; }
  .homepage .release-card h3 { grid-column: 2; grid-row: 1; align-self: start; }
  .homepage .release-tagline { grid-column: 2; grid-row: 2; }
  .homepage .release-card-preview { grid-column: 2; grid-row: 3; }
  .homepage .release-details-button { grid-column: 1 / -1; }
}
@media (max-width: 960px) {
  .homepage #releases { --public-header-height: 69px; }
  .homepage .release-card { flex-basis: calc((100% - 72px) / 2); }
  .homepage .brand-masthead.pm-art-hero { grid-template-columns: 1fr 1fr; }
  .pm-hero-content h2 { font-size: clamp(2.3rem, 5vw, 3.5rem); }
  .pm-hero-content .eyebrow { font-size: .55rem; }
  .release-detail { grid-template-columns: minmax(0, .65fr) minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 650px) {
  .homepage .section { padding: 42px 0; }
  .homepage #releases { --public-header-height: 65px; --releases-padding-top: 42px; }
  .homepage .brand-masthead.pm-art-hero { display: flex; flex-direction: column; padding: 0 0 34px; }
  #pm-banner-art { width: 100%; height: auto; order: 0; mask-image: linear-gradient(#000 85%, transparent); }
  .pm-hero-content { order: 1; width: 100%; padding: 0 8px; margin-top: -12px; }
  .pm-hero-content h2 { font-size: 2.8rem; margin: 16px 0; }
  .pm-hero-content h2::after { margin-top: 18px; }
  .pm-hero-copy { font-size: .84rem; }
  .pm-hero-actions { margin-top: 20px; }
  .pm-hero-actions .button { flex: 1; gap: 8px; font-size: .65rem; padding: 12px 10px; }
  .pm-hero-signal { display: none; }
  .release-section-header { align-items: end; gap: 10px; }
  #latest-releases-heading span { display: block; }
  .release-section-header p { font-size: .78rem; }
  .hero-socials { column-gap: 13px; }
  .homepage .section-heading { gap: 8px; }
  .homepage .section-heading p { margin: 0; }
  .homepage .release-rail { gap: 8px; }
  .homepage .release-card { flex-basis: 90%; padding: 16px; }
  .homepage .release-card h3 { font-size: 1.3rem; }
  .release-detail { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 20px; }
  .release-detail > .release-art { display: none; }
  .homepage .licence-highlight { padding: 18px; }
  .homepage .release-preview .preview-waveform-bar:nth-child(even) { display: none; }
  .homepage .release-preview .preview-waveform { gap: 1.5px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
