
:root {
  color-scheme: dark;
  font-family: system-ui, Segoe UI, sans-serif;
  background: #0e1719;
  color: #f6f0e5;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding-bottom: 210px;
  background: linear-gradient(#101b1d, #0a1012);
}

button, input {
  font: inherit;
}

button {
  cursor: pointer;
}

button:focus-visible,
a:focus-visible,
input:focus-visible {
  outline: 2px solid #e6b875;
  outline-offset: 3px;
}

.shell {
  max-width: 1080px;
  margin: auto;
}

/* Header */
header {
  height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px;
  background: #0b1416;
  border-bottom: 1px solid #3a3024;
}

.brand {
  display: flex;
  gap: 12px;
  align-items: center;
  letter-spacing: 2px;
}

.brand small {
  display: block;
  font-size: 13px;
  letter-spacing: 4px;
}

.brand strong {
  font-family: Georgia, serif;
  font-size: 16px;
}

.mountain {
  font-size: 36px;
  color: #e6b875;
}

.textbutton {
  border: 0;
  background: none;
  color: #e6b875;
  font-size: 25px;
}

/* Hero Banner */
.hero {
  background: #0b1416;
  min-height: 0;
}

.hero-banner {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
}

.hero-inner {
  padding: 35px 28px;
  max-width: 540px;
}

.eyebrow {
  letter-spacing: 3px;
  font-size: 11px;
  color: #e6b875;
}

.hero h1 {
  font: normal 32px/1.2 Georgia, serif;
  margin: 12px 0;
}

.hero p {
  color: #eee3d5;
}

.gold {
  background: #dfb477;
  color: #172020;
  border: 0;
  border-radius: 8px;
  padding: 11px 19px;
  font-weight: 700;
}

.hero-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 25px;
  background: linear-gradient(100deg, #1b2625, #10191b);
  border-bottom: 1px solid #5e4930;
}

.hero-actions p {
  margin: 0;
  color: #e9d7bb;
  font: 18px Georgia, serif;
}

/* Main Library */
main {
  padding: 25px;
}

.sectionhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sectionhead h2 {
  font: normal 27px Georgia, serif;
}

.sectionhead span,
.footnote {
  color: #9aa8a9;
  font-size: 13px;
}

.tabs {
  display: flex;
  gap: 22px;
  border-bottom: 1px solid #2d3a3d;
  margin-bottom: 15px;
}

.tabs button {
  background: none;
  border: 0;
  color: #aab3b4;
  padding: 12px 4px;
}

.tabs .selected {
  color: #f0c489;
  border-bottom: 2px solid #f0c489;
}

/* Category Filters */
.category-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0 0 16px;
}

.category-filter {
  border: 1px solid #5b594e;
  border-radius: 999px;
  background: #18272a;
  color: #e6dfd2;
  padding: 9px 13px;
  font-size: 13px;
  line-height: 1.25;
  min-height: 40px;
}

.category-filter:hover {
  border-color: #dfb477;
}

.category-filter.selected {
  background: #dfb477;
  border-color: #dfb477;
  color: #172020;
  font-weight: 700;
}

/* Search */
#search {
  width: 100%;
  padding: 13px;
  border: 1px solid #314043;
  border-radius: 8px;
  background: #19282c;
  color: white;
  margin-bottom: 12px;
}

/* Song Tracks */
.track {
  display: flex;
  gap: 13px;
  align-items: center;
  padding: 13px 8px;
  border-bottom: 1px solid #293739;
  cursor: pointer;
}

.track:hover,
.track.active {
  background: #1c2b2e;
}

.track img {
  width: 110px;
  height: 66px;
  object-fit: cover;
  border-radius: 6px;
}

.track .info {
  flex: 1;
  min-width: 0;
}

.track strong,
.track small {
  display: block;
}

.track strong {
  font-size: 16px;
}

.track small {
  color: #a7b2b4;
  margin-top: 5px;
}

.track .info small {
  line-height: 1.5;
}

.track button {
  border: 0;
  background: none;
  color: #e5b77a;
  font-size: 24px;
}

.empty-tracks {
  padding: 20px 8px;
  color: #b7c0c0;
}

/* Promotional Banner */
.promo {
  margin-top: 27px;
  border: 1px solid #604d32;
  border-radius: 12px;
  padding: 22px;
  background: linear-gradient(120deg, #233331, #141c1e);
}

.promo small {
  color: #dfb477;
  letter-spacing: 3px;
}

.promo h3 {
  font: normal 26px Georgia, serif;
  margin: 8px 0;
}

.promo a {
  color: #edc68e;
}

/* Music Player */
.player {
  position: fixed;
  z-index: 3;
  bottom: 0;
  left: 0;
  right: 0;
  background: #101b1e;
  border-top: 1px solid #52605e;
  box-shadow: 0 -8px 40px #0009;
  display: flex;
  gap: 22px;
  padding: 15px max(18px, calc((100vw - 800px)/2));
  align-items: center;
}

.player > img {
  width: 120px;
  height: 120px;
  object-fit: cover;
  border-radius: 8px;
}

.now {
  flex: 1;
  min-width: 0;
}

.now > strong,
.now > small {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.now > small {
  font-size: 12px;
  color: #a6b0b0;
  margin-top: 3px;
}

.progress {
  margin-top: 10px;
}

.progress input {
  width: 100%;
  accent-color: #dfb477;
  height: 6px;
}

.times {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: #b7c0c0;
}

.controls,
.secondary {
  display: flex;
  align-items: center;
  justify-content: space-around;
}

.controls button,
.secondary button {
  border: 0;
  background: none;
  color: #f3f1e9;
  font-size: 22px;
  padding: 7px;
}

.controls .play {
  background: #e5b878;
  color: #142022;
  border-radius: 50%;
  height: 45px;
  width: 45px;
}

.controls .on {
  color: #e5b878;
}

.secondary button {
  font-size: 13px;
  color: #dfb477;
}

#watch:disabled {
  opacity: .45;
  cursor: not-allowed;
}

/* Video Modal */
.modal {
  position: fixed;
  z-index: 10;
  inset: 0;
  background: #000d;
  display: grid;
  place-items: center;
  padding: 15px;
}

.modal[hidden] {
  display: none;
}

.modalbody {
  position: relative;
  width: min(850px, 100%);
  background: #101b1e;
  border: 1px solid #5b5548;
  border-radius: 12px;
  padding: 22px;
}

.modalbody video {
  width: 100%;
  max-height: 65vh;
  background: #000;
}

.modalbody p {
  color: #bfc5c2;
}

.close {
  position: absolute;
  right: 12px;
  top: 12px;
  background: none;
  border: 0;
  color: white;
  font-size: 22px;
}

/* Mobile Layout */
@media (max-width: 560px) {
  header {
    padding: 10px 15px;
  }

  .brand strong {
    font-size: 12px;
  }

  .brand small {
    font-size: 10px;
  }

  .hero {
    background: #0b1416;
  }

  .hero-banner {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
  }

  .hero h1 {
    font-size: 27px;
  }

  .hero-actions {
    padding: 14px;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .hero-actions p {
    text-align: center;
    font-size: 16px;
  }

  .hero-actions .gold {
    width: 100%;
  }

  main {
    padding: 17px;
  }

  .track {
    min-height: 78px;
  }

  .track img {
    width: 90px;
    height: 58px;
  }

  .track button {
    min-width: 44px;
    min-height: 44px;
  }

  .category-filter {
    min-height: 44px;
    padding: 10px 12px;
  }

  .category-filters {
    gap: 8px;
  }

  #search {
    min-height: 46px;
  }

  /* Compact Mobile Player */
  .player {
    gap: 10px;
    padding: 8px 12px max(8px, env(safe-area-inset-bottom));
  }

  .player > img {
    width: 54px;
    height: 54px;
    border-radius: 6px;
  }

  .now > strong {
    font-size: 14px;
  }

  .now > small {
    font-size: 11px;
  }

  .progress {
    margin-top: 4px;
  }

  .controls button {
    font-size: 18px;
    padding: 3px;
    min-width: 42px;
    min-height: 42px;
  }

  .controls .play {
    min-width: 42px;
    min-height: 42px;
    width: 42px;
    height: 42px;
  }

  .secondary button {
    font-size: 11px;
    min-height: 32px;
    padding: 3px;
  }

  body {
    padding-bottom: 155px;
  }
}

/* Expandable mobile player; desktop unchanged */
.expand-player,.mini-play{display:none}
@media(max-width:560px){
 body{padding-bottom:92px}
 .sectionhead h2{margin:12px 0}
 .tabs{margin-top:4px}
 .player{min-height:76px;gap:10px;padding:9px 44px 9px 12px;padding-bottom:max(9px,env(safe-area-inset-bottom));align-items:center}
 .player>img{width:52px;height:52px;flex-shrink:0}
 .player .now{min-width:0}
 .player .now>strong{font-size:14px}
 .player .now>small{font-size:11px}
 .player .progress,.player .controls,.player .secondary{display:none}
 .player .mini-play{display:grid;place-items:center;order:3;flex-shrink:0;width:42px;height:42px;border:0;border-radius:50%;background:#e5b878;color:#142022;font-size:21px}
 .player .expand-player{display:grid;place-items:center;position:absolute;right:5px;top:50%;transform:translateY(-50%);width:38px;height:44px;border:0;background:none;color:#e5b878;font-size:29px}
 .player.expanded{align-items:flex-start;padding:15px 14px max(15px,env(safe-area-inset-bottom));gap:12px;flex-wrap:wrap}
 .player.expanded>img{width:72px;height:72px}
 .player.expanded .now{flex:1 1 calc(100% - 90px);padding-right:20px}
 .player.expanded .progress,.player.expanded .controls,.player.expanded .secondary{display:block}
 .player.expanded .controls,.player.expanded .secondary{display:flex}
 .player.expanded .progress{margin-top:14px}
 .player.expanded .mini-play{display:none}
 .player.expanded .expand-player{top:16px;right:8px;transform:none}
}

/* Swipeable single-row category filters on mobile */
@media (max-width:560px) {
 .category-filters {
  flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;
  gap:8px;padding:2px 2px 10px;margin-bottom:10px;
  scroll-snap-type:x proximity;overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;
 }
 .category-filter {flex:0 0 auto;white-space:nowrap;scroll-snap-align:start;min-height:40px;padding:8px 13px;}
}
