/*
 AIOS MUSIC PLATFORM V1
 PHASE 1 PART 1 — UNIVERSAL ALBUM LIBRARY
 Additive presentation layer only.
*/

.album-library-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:end;
  margin:0 0 24px;
  padding:18px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(255,255,255,.035);
}

.album-library-toolbar__stats{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.album-library-stat{
  min-width:118px;
  padding:11px 14px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px;
  background:rgba(0,0,0,.16);
}

.album-library-stat strong,
.album-library-stat span{
  display:block;
}

.album-library-stat strong{
  font-size:1.08rem;
  line-height:1.1;
}

.album-library-stat span{
  margin-top:4px;
  opacity:.68;
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.album-library-toolbar__controls{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
}

.album-library-sort{
  min-height:44px;
  padding:0 38px 0 14px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:#0b1019;
  color:inherit;
  font:inherit;
}

.album-library-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin:28px 0 8px;
}

.album-library-page-btn{
  min-width:42px;
  min-height:42px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:11px;
  background:rgba(255,255,255,.04);
  color:inherit;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}

.album-library-page-btn:hover,
.album-library-page-btn:focus-visible{
  border-color:rgba(255,255,255,.32);
  background:rgba(255,255,255,.09);
}

.album-library-page-btn[aria-current="page"]{
  background:#fff;
  color:#080b11;
  border-color:#fff;
}

.album-library-page-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

.album-library-page-status{
  width:100%;
  margin-top:6px;
  text-align:center;
  opacity:.65;
  font-size:.82rem;
}

.album-grid > [data-aios-library-hidden="true"]{
  display:none !important;
}

/*
 Keep the existing card design.
 Part 1 governs the library grid only.
*/
#albumGrid.album-grid{
  align-items:stretch;
}

@media (min-width:1200px){
  #albumGrid.album-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}

@media (min-width:760px) and (max-width:1199px){
  #albumGrid.album-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media (max-width:759px){
  .album-library-toolbar{
    grid-template-columns:1fr;
    gap:14px;
    padding:14px;
  }

  .album-library-toolbar__controls{
    justify-content:stretch;
  }

  .album-library-sort{
    width:100%;
  }

  #albumGrid.album-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .album-library-stat{
    flex:1 1 120px;
  }
}

@media (max-width:420px){
  #albumGrid.album-grid{
    gap:12px;
  }

  .album-library-page-btn{
    min-width:40px;
    min-height:40px;
  }
}

/* ==========================================================
   AIOS MUSIC PLATFORM V1 — PHASE 1 PART 2
   COLLECTIONS & CATEGORIES
   ========================================================== */

.album-library-control{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.album-library-control > span{
  font-size:.72rem;
  opacity:.7;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
}

.album-library-select{
  min-width:180px;
  min-height:44px;
  padding:0 38px 0 14px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:#0b1019;
  color:inherit;
  font:inherit;
}

.album-library-select:focus-visible{
  outline:2px solid currentColor;
  outline-offset:2px;
}

@media (max-width:759px){
  .album-library-toolbar__controls{
    display:grid;
    grid-template-columns:1fr;
  }

  .album-library-select{
    width:100%;
    min-width:0;
  }
}

/* ==========================================================
   AIOS FEATURED ALBUM ENGINE — PHASE 1 PART 3
   ========================================================== */

.featured{
  position:relative;
  overflow:hidden;
}

.featured::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(
      90deg,
      rgba(5,8,14,.96) 0%,
      rgba(5,8,14,.82) 42%,
      rgba(5,8,14,.34) 72%,
      rgba(5,8,14,.56) 100%
    ),
    var(--aios-featured-art);
  background-size:cover;
  background-position:center;
  pointer-events:none;
}

.featured > *{
  position:relative;
  z-index:1;
}

/* ==========================================================
   AIOS UNIVERSAL SEARCH — PHASE 1 PART 4
   ========================================================== */

.aios-search-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 4px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
  margin-bottom:8px;
}

.aios-search-summary strong{
  font-size:.92rem;
}

.aios-search-summary span{
  font-size:.78rem;
  opacity:.62;
}

.aios-search-result{
  width:100%;
  display:grid;
  grid-template-columns:68px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:13px 10px;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.07);
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}

.aios-search-result:hover,
.aios-search-result:focus-visible{
  background:rgba(255,255,255,.055);
}

.aios-search-result__type{
  font-size:.68rem;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.08em;
  opacity:.55;
  font-weight:800;
}

.aios-search-result__body{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.aios-search-result__body strong,
.aios-search-result__body small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.aios-search-result__body strong{
  font-size:.92rem;
}

.aios-search-result__body small{
  opacity:.62;
  font-size:.78rem;
}

.aios-search-result__open{
  font-size:.75rem;
  font-weight:800;
  opacity:.75;
}

.aios-search-empty{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:28px 12px;
  text-align:center;
}

.aios-search-empty span{
  opacity:.62;
  font-size:.84rem;
}

@media (max-width:560px){
  .aios-search-summary{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }

  .aios-search-result{
    grid-template-columns:54px minmax(0,1fr);
  }

  .aios-search-result__open{
    display:none;
  }
}


/* ==========================================================
   AIOS GENRE NAVIGATION — PHASE 1 PART 5
   ========================================================== */

.aios-genre-navigation{
  margin:0 0 20px;
  padding:18px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(255,255,255,.025);
}

.aios-genre-navigation__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.aios-genre-navigation__head h3{
  margin:3px 0 0;
}

.aios-genre-navigation__head small{
  opacity:.58;
}

.aios-genre-navigation__chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.aios-genre-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:39px;
  padding:7px 12px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  background:rgba(255,255,255,.04);
  color:inherit;
  font:inherit;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
}

.aios-genre-chip:hover,
.aios-genre-chip:focus-visible{
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.30);
}

.aios-genre-chip span{
  opacity:.55;
  font-size:.72rem;
}


/* ==========================================================
   AIOS RECENTLY ADDED — PHASE 1 PART 6
   ========================================================== */

.aios-recently-added{
  margin:30px 0;
  padding:0 0 10px;
}

.aios-recently-added__head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
}

.aios-recently-added__head h2{
  margin:3px 0 0;
}

.aios-recently-added__head > span{
  font-size:.8rem;
  opacity:.58;
}

.aios-recently-added__grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
}

.aios-recent-card{
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:0;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(255,255,255,.025);
  color:inherit;
  overflow:hidden;
  text-align:left;
  cursor:pointer;
}

.aios-recent-card:hover,
.aios-recent-card:focus-visible{
  border-color:rgba(255,255,255,.30);
  transform:translateY(-2px);
}

.aios-recent-card__art{
  display:block;
  aspect-ratio:16/10;
  background:rgba(255,255,255,.035);
  overflow:hidden;
}

.aios-recent-card__art img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}

.aios-recent-card__body{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:12px;
}

.aios-recent-card__body strong,
.aios-recent-card__body small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.aios-recent-card__body strong{
  font-size:.88rem;
}

.aios-recent-card__body small{
  opacity:.6;
  font-size:.74rem;
}

@media (max-width:1100px){
  .aios-recently-added__grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media (max-width:760px){
  .aios-recently-added__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* ==========================================================
   AIOS CONTINUE LISTENING — PHASE 1 PART 7
   ========================================================== */

.aios-continue-listening{
  margin:30px 0;
}

.aios-continue-listening__head{
  margin-bottom:16px;
}

.aios-continue-listening__head h2{
  margin:3px 0 0;
}

.aios-continue-listening__rail-shell{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  align-items:center;
  gap:10px;
  min-width:0;
}

.aios-continue-listening__grid{
  display:flex;
  gap:14px;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scroll-behavior:smooth;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
  padding:2px 0 8px;
}

.aios-continue-listening__pointer{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  padding:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.045);
  color:inherit;
  font:inherit;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
}

.aios-continue-listening__pointer:hover,
.aios-continue-listening__pointer:focus-visible{
  border-color:rgba(255,255,255,.35);
  background:rgba(255,255,255,.08);
}

.aios-continue-card{
  display:grid;
  grid-template-columns:135px minmax(0,1fr);
  flex:0 0 clamp(340px,38vw,520px);
  min-width:0;
  padding:0;
  scroll-snap-align:start;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(255,255,255,.025);
  color:inherit;
  text-align:left;
  cursor:pointer;
}

.aios-continue-card:hover,
.aios-continue-card:focus-visible{
  border-color:rgba(255,255,255,.30);
  transform:translateY(-2px);
}

.aios-continue-card__art{
  position:relative;
  min-height:110px;
  background:rgba(255,255,255,.035);
  overflow:hidden;
}

.aios-continue-card__art img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.aios-continue-card__progress{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:4px;
  background:rgba(255,255,255,.18);
}

.aios-continue-card__progress span{
  display:block;
  height:100%;
  background:currentColor;
}

.aios-continue-card__body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  min-width:0;
  padding:14px;
}

.aios-continue-card__body strong,
.aios-continue-card__body small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.aios-continue-card__body small{
  opacity:.62;
  font-size:.75rem;
}

@media (max-width:1000px){
  .aios-continue-card{
    flex-basis:min(72vw,460px);
  }
}

@media (max-width:650px){
  .aios-continue-listening__rail-shell{
    display:block;
  }

  .aios-continue-listening__pointer{
    display:none;
  }

  .aios-continue-listening__grid{
    gap:12px;
    padding-bottom:8px;
    scroll-snap-type:x mandatory;
  }

  .aios-continue-card{
    grid-template-columns:110px minmax(0,1fr);
    flex-basis:min(88vw,360px);
  }
}


/* ==========================================================================
   AIOS MUSIC — LIGHTWEIGHT NETFLIX FLOW
   Five reusable cards only.
   ========================================================================== */

.aios-netflix-row{
  width:100%;
  margin:0 0 28px;
}

.aios-netflix-row__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:14px;
  margin-bottom:14px;
}

.aios-netflix-row__head h2{
  margin:3px 0 0;
}

.aios-netflix-row__head > span{
  font-size:.78rem;
  opacity:.58;
}

.aios-netflix-row__viewport{
  position:relative;
  width:100%;
}

.aios-netflix-row__slots{
  display:grid;
  grid-template-columns:
    repeat(5,minmax(0,1fr));

  gap:14px;
}

.aios-netflix-card{
  min-width:0;

  display:flex;
  flex-direction:column;

  padding:0;

  border:
    1px solid rgba(255,255,255,.10);

  border-radius:16px;

  background:
    rgba(255,255,255,.025);

  color:inherit;

  overflow:hidden;
  text-align:left;
  cursor:pointer;
}

.aios-netflix-card:hover,
.aios-netflix-card:focus-visible{
  transform:translateY(-2px);
  border-color:
    rgba(255,255,255,.28);
}

.aios-netflix-card__art{
  display:block;

  width:100%;
  aspect-ratio:16 / 10;

  overflow:hidden;

  background:
    rgba(255,255,255,.035);
}

.aios-netflix-card__art img{
  display:block;
  width:100%;
  height:100%;

  object-fit:cover;
  object-position:center;
}

.aios-netflix-card__body{
  min-width:0;

  display:flex;
  flex-direction:column;

  gap:4px;

  padding:11px 12px 12px;
}

.aios-netflix-card__body strong,
.aios-netflix-card__body small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.aios-netflix-card__body strong{
  font-size:.88rem;
}

.aios-netflix-card__body small{
  font-size:.73rem;
  opacity:.60;
}

/* POINTER REVEALS CONTROLS */

.aios-netflix-nav{
  position:absolute;
  top:0;
  bottom:0;

  z-index:10;

  width:48px;

  border:0;

  background:
    rgba(5,8,14,.82);

  color:#fff;

  font-size:2rem;

  cursor:pointer;

  opacity:0;
  pointer-events:none;

  transition:
    opacity .15s ease,
    background .15s ease;
}

.aios-netflix-nav--prev{
  left:0;
}

.aios-netflix-nav--next{
  right:0;
}

.aios-netflix-row__viewport:hover
.aios-netflix-nav,
.aios-netflix-row__viewport:focus-within
.aios-netflix-nav{
  opacity:1;
  pointer-events:auto;
}

.aios-netflix-nav:hover{
  background:
    rgba(5,8,14,.97);
}

/* TABLET */

@media (max-width:1199px){

  .aios-netflix-row__slots{
    grid-template-columns:
      repeat(4,minmax(0,1fr));
  }

  .aios-netflix-card:nth-child(5){
    display:none;
  }
}

/* MOBILE */

@media (max-width:760px){

  .aios-netflix-row__slots{
    grid-template-columns:
      repeat(2,minmax(0,1fr));

    gap:11px;
  }

  .aios-netflix-card:nth-child(n+3){
    display:none;
  }

  .aios-netflix-nav{
    opacity:.72;
    pointer-events:auto;
    width:38px;
  }
}


/* ==========================================================================
   AIOS MEDIA HOVER ROW STANDARD V1
   Permanent reusable media-row authority.
   ========================================================================== */

.aios-media-hover-row{
  width:100%;
  max-width:none;
  margin:0 0 28px;
}

.aios-media-hover-row__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}

.aios-media-hover-row__head h2{
  margin:3px 0 0;
}

.aios-media-hover-row__head > span{
  font-size:.78rem;
  opacity:.58;
}

/* VIEWPORT */

.aios-media-hover-row__viewport{
  position:relative;
  width:100%;
  overflow:hidden;
}

/* FIVE RECYCLED SLOTS */

.aios-media-hover-row__track{
  display:grid;

  grid-template-columns:
    repeat(
      5,
      minmax(0,1fr)
    );

  gap:14px;

  width:100%;
}

/* CARD */

.aios-media-hover-card{
  min-width:0;

  display:flex;
  flex-direction:column;

  margin:0;
  padding:0;

  border:
    1px solid rgba(255,255,255,.10);

  border-radius:16px;

  background:
    rgba(255,255,255,.025);

  color:inherit;

  overflow:hidden;

  text-align:left;
  cursor:pointer;

  transition:
    transform .16s ease,
    border-color .16s ease,
    background .16s ease;
}

.aios-media-hover-card:hover,
.aios-media-hover-card:focus-visible{
  transform:translateY(-2px);

  border-color:
    rgba(255,255,255,.28);

  background:
    rgba(255,255,255,.045);
}

/* ARTWORK */

.aios-media-hover-card__art{
  width:100%;

  display:block;

  aspect-ratio:
    16 / 10;

  overflow:hidden;

  background:
    rgba(255,255,255,.035);
}

.aios-media-hover-card__art img{
  width:100%;
  height:100%;

  display:block;

  object-fit:cover;
  object-position:center;
}

/* META */

.aios-media-hover-card__body{
  min-width:0;

  display:flex;
  flex-direction:column;

  gap:4px;

  padding:
    11px 12px 12px;
}

.aios-media-hover-card__body strong,
.aios-media-hover-card__body small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.aios-media-hover-card__body strong{
  font-size:.88rem;
}

.aios-media-hover-card__body small{
  font-size:.73rem;
  opacity:.60;
}

/* POINTER EDGE ZONES */

.aios-media-hover-row__edge{
  position:absolute;

  top:0;
  bottom:0;

  z-index:10;

  width:72px;

  display:flex;
  align-items:center;
  justify-content:center;

  color:#fff;

  font-size:2rem;

  opacity:0;

  pointer-events:none;

  transition:
    opacity .15s ease;
}

.aios-media-hover-row__edge--left{
  left:0;

  background:
    linear-gradient(
      90deg,
      rgba(4,7,12,.90),
      rgba(4,7,12,0)
    );
}

.aios-media-hover-row__edge--right{
  right:0;

  background:
    linear-gradient(
      270deg,
      rgba(4,7,12,.90),
      rgba(4,7,12,0)
    );
}

.aios-media-hover-row__viewport:hover
.aios-media-hover-row__edge{
  opacity:.78;
}

/* TABLET */

@media (max-width:1199px){

  .aios-media-hover-row__track{
    grid-template-columns:
      repeat(
        4,
        minmax(0,1fr)
      );
  }

  .aios-media-hover-card:nth-child(5){
    display:none;
  }
}

/* MOBILE */

@media (max-width:760px){

  .aios-media-hover-row{
    margin-bottom:22px;
  }

  .aios-media-hover-row__track{
    grid-template-columns:
      repeat(
        2,
        minmax(0,1fr)
      );

    gap:11px;
  }

  .aios-media-hover-card:nth-child(n+3){
    display:none;
  }

  /*
   * Touch uses swipe.
   * Edge arrows are unnecessary.
   */
  .aios-media-hover-row__edge{
    display:none;
  }
}

/* SMALL PHONE */

@media (max-width:360px){

  .aios-media-hover-row__track{
    grid-template-columns:1fr;
  }

  .aios-media-hover-card:nth-child(n+2){
    display:none;
  }
}


/* ==========================================================================
   AIOS MEDIA HOVER ROW — EDGE POINTER AUTHORITY
   ========================================================================== */

.aios-media-hover-row__edge{
  pointer-events:auto;
}

.aios-media-hover-row__edge--left{
  cursor:w-resize;
}

.aios-media-hover-row__edge--right{
  cursor:e-resize;
}

@media (pointer:coarse){

  .aios-media-hover-row__edge{
    display:none;
    pointer-events:none;
  }
}


/* ==========================================================================
   AIOS ALBUMS A-Z PAGE V1
   ========================================================================== */

.aios-albums-page{
  margin:0;
}

.aios-albums-page__main{
  width:min(1600px,100%);
  margin:0 auto;
  padding:
    28px clamp(16px,3vw,48px) 80px;
}

.aios-albums-page__hero{
  margin-bottom:22px;
}

.aios-albums-page__hero h1{
  margin:
    6px 0 10px;

  font-size:
    clamp(2rem,5vw,4rem);

  line-height:1;
}

.aios-albums-page__hero p{
  max-width:760px;
  margin:0 0 14px;
  opacity:.72;
}

.aios-albums-page__back{
  display:inline-block;
  margin-bottom:18px;
  color:inherit;
  text-decoration:none;
  opacity:.74;
}

.aios-albums-page__summary{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  font-size:.84rem;
  opacity:.65;
}

/* LETTER JUMP BAR */

.aios-albums-page__letters{
  position:sticky;
  top:0;
  z-index:50;

  display:flex;
  flex-wrap:wrap;
  gap:6px;

  padding:
    10px 0 12px;

  margin-bottom:22px;

  backdrop-filter:
    blur(16px);
}

.aios-albums-page__letter{
  min-width:34px;
  min-height:34px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  border:
    1px solid rgba(255,255,255,.12);

  border-radius:999px;

  background:
    rgba(255,255,255,.04);

  color:inherit;
  text-decoration:none;

  font-size:.77rem;
  font-weight:800;
}

.aios-albums-page__letter:hover,
.aios-albums-page__letter:focus-visible{
  background:
    rgba(255,255,255,.10);
}

/* LETTER ROWS */

.aios-albums-letter-row{
  scroll-margin-top:70px;
}

.aios-albums-letter-row
.aios-media-hover-row{
  margin-bottom:30px;
}

.aios-albums-letter-row
.aios-media-hover-row__head h2{
  font-size:
    clamp(1.45rem,2.4vw,2.1rem);
}

@media (max-width:760px){

  .aios-albums-page__main{
    padding:
      20px 14px 60px;
  }

  .aios-albums-page__letters{
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
  }

  .aios-albums-page__letters::-webkit-scrollbar{
    display:none;
  }

  .aios-albums-page__letter{
    flex:0 0 auto;
  }
}


/* ==========================================================================
   AIOS COLLECTIONS HOVER ROW V1
   Existing collection grid remains runtime authority but is visually replaced
   by the shared Media Hover Row.
   ========================================================================== */

.aios-collection-grid--source{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

#aiosCollectionsHoverMount{
  width:100%;
}


/* ==========================================================================
   AIOS COLLECTIONS HOVER ROW V1
   Existing collection grid remains runtime authority but is visually replaced
   by the shared Media Hover Row.
   ========================================================================== */

.aios-collection-grid--source{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

#aiosCollectionsHoverMount{
  width:100%;
}


/* ==========================================================================
   AIOS COLLECTIONS HOVER ROW V1
   Existing collection grid remains runtime authority but is visually replaced
   by the shared Media Hover Row.
   ========================================================================== */

.aios-collection-grid--source{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

#aiosCollectionsHoverMount{
  width:100%;
}


/* ==========================================================================
   AIOS ARTISTS PAGE V1
   ========================================================================== */

.aios-artists-page{
  margin:0;
}

.aios-artists-page__main{
  width:min(1600px,100%);
  margin:0 auto;
  padding:
    28px clamp(16px,3vw,48px) 80px;
}

.aios-artists-page__hero{
  margin-bottom:24px;
}

.aios-artists-page__hero h1{
  margin:
    6px 0 10px;

  font-size:
    clamp(2rem,5vw,4rem);

  line-height:1;
}

.aios-artists-page__hero p{
  max-width:760px;
  margin:0 0 14px;
  opacity:.72;
}

.aios-artists-page__back{
  display:inline-block;
  margin-bottom:18px;
  color:inherit;
  text-decoration:none;
  opacity:.74;
}

.aios-artists-page__summary{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  font-size:.84rem;
  opacity:.65;
}

.aios-artist-row
.aios-media-hover-row{
  margin-bottom:30px;
}

.aios-artist-row
.aios-media-hover-row__head h2{
  font-size:
    clamp(1.25rem,2vw,1.8rem);
}

@media (max-width:760px){

  .aios-artists-page__main{
    padding:
      20px 14px 60px;
  }
}


/* ==========================================================================
   AIOS MEDIA HOVER ROW — LAZY PLACEHOLDER AUTHORITY

   Empty lazy mounts must reserve space or all future rows collapse into
   the same IntersectionObserver viewport and activate simultaneously.
   ========================================================================== */

.aios-media-hover-lazy-pending{
  display:block;
  width:100%;
  min-height:285px;
  position:relative;
}

.aios-media-hover-lazy-pending::after{
  content:"";
  display:block;
  width:100%;
  height:1px;
}

@media (max-width:760px){

  .aios-media-hover-lazy-pending{
    min-height:245px;
  }
}


/* ==========================================================
   AIOS MUSIC — LEGACY HOME ALBUM LIBRARY RETIREMENT

   DOM remains available for compatibility with existing
   library engines. Public catalog authority now lives at
   /galore/escapes/radio/albums/
   ========================================================== */

#homeView > #albumLibrary {
  display: none !important;
}

/* ==========================================================
   AIOS MUSIC — STANDALONE LIBRARY TYPOGRAPHY AUTHORITY

   Albums and Artists intentionally remain lightweight and do
   not import the full Home typography stack.
   ========================================================== */

:root {
  --aios-library-font-display:
    Georgia,
    "Times New Roman",
    Times,
    serif;

  --aios-library-font-body:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    Helvetica,
    Arial,
    sans-serif;

  --aios-library-font-mono:
    "SFMono-Regular",
    Consolas,
    "Liberation Mono",
    Menlo,
    monospace;
}

html,
body {
  font-family:
    var(--aios-library-font-body);
}

button,
input,
select,
textarea {
  font: inherit;
}

h1,
h2,
h3,
.aios-library-title,
.aios-media-hover-row__head h2 {
  font-family:
    var(--aios-library-font-display);
}

.mono,
.aios-library-count,
.aios-library-letter,
[data-media-hover-range] {
  font-family:
    var(--aios-library-font-mono);
}

/* ==========================================================
   AIOS MUSIC — ARTISTS 10-SLOT WINDOW
   ========================================================== */

.aios-artists-page__window {
  width: 100%;
  min-width: 0;
}

.aios-artists-page__window
.aios-media-hover-row__track {
  grid-template-columns:
    repeat(5, minmax(0, 1fr));
}

.aios-artists-page__window
.aios-media-hover-card {
  min-width: 0;
}

@media (max-width: 760px) {

  .aios-artists-page__window
  .aios-media-hover-row__track {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

/* ==========================================================
   AIOS MUSIC — ALBUMS 10-SLOT WINDOW
   ========================================================== */

.aios-albums-page__window {
  width: 100%;
  min-width: 0;
}

.aios-albums-page__window
.aios-media-hover-row__track {
  grid-template-columns:
    repeat(5, minmax(0, 1fr));
}

.aios-albums-page__window
.aios-media-hover-card {
  min-width: 0;
}

.aios-albums-page__letter {
  cursor: pointer;
}

.aios-albums-page__letter.is-active {
  background:
    rgba(255,255,255,.14);
}

@media (max-width:760px) {

  .aios-albums-page__window
  .aios-media-hover-row__track {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

/* ========================================================================== */

/* ========================================================================== */
/* AIOS MUSIC — CONTINUE LISTENING COMPACT SPACING AUTHORITY                 */
/* RAIL / POINTER / HISTORY BEHAVIOR UNCHANGED                                */
/* ========================================================================== */

.aios-continue-listening {
  margin-top: 16px !important;
  margin-bottom: 16px !important;
}

.aios-continue-listening__head {
  margin-bottom: 9px !important;
}

.aios-continue-listening__head h2 {
  margin-top: 2px !important;
}

.aios-continue-listening__grid {
  padding-top: 0 !important;
  padding-bottom: 5px !important;
}

@media (max-width: 650px) {

  .aios-continue-listening {
    margin-top: 12px !important;
    margin-bottom: 12px !important;
  }

  .aios-continue-listening__head {
    margin-bottom: 7px !important;
  }

  .aios-continue-listening__grid {
    padding-bottom: 4px !important;
  }
}

/* ========================================================================== */
/* AIOS MUSIC — FEATURED ALBUM SINGLE ARTWORK AUTHORITY                       */
/*                                                                            */
/* FeaturedAlbumEngine supplies --aios-featured-art.                          */
/* The legacy #featuredArt card remains in DOM but no longer owns visual      */
/* space. One selected album now owns the complete landscape presentation.     */
/* ========================================================================== */

#homeView .featured {
  position: relative !important;

  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;

  min-height: 380px !important;

  overflow: hidden !important;

  background-image:
    linear-gradient(
      90deg,
      rgba(3, 10, 22, .18) 0%,
      rgba(3, 10, 22, .28) 40%,
      rgba(3, 10, 22, .74) 100%
    ),
    var(--aios-featured-art) !important;

  background-size:
    cover,
    cover !important;

  background-position:
    center,
    center !important;

  background-repeat:
    no-repeat,
    no-repeat !important;
}

/*
 * Retain the old artwork node for compatibility,
 * but it no longer occupies the left 380px column.
 */
#homeView .featured > .featured__art {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;
  min-width: 0 !important;
  min-height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  overflow: hidden !important;

  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;

  opacity: 0 !important;
  pointer-events: none !important;
}

/*
 * Main Featured content overlays the selected landscape artwork.
 */
#homeView .featured > :not(.featured__art) {
  position: relative !important;
  z-index: 2 !important;

  width: min(560px, 48%) !important;

  margin-left: auto !important;

  align-self: center !important;

  padding:
    clamp(28px, 4vw, 56px) !important;

  border-radius: 18px 0 0 18px;

  background:
    linear-gradient(
      90deg,
      rgba(3, 10, 22, .18),
      rgba(3, 10, 22, .80)
    );
}

@media (max-width: 650px) {

  #homeView .featured {
    min-height: 320px !important;

    background-position:
      center,
      center !important;
  }

  #homeView .featured > :not(.featured__art) {
    width: 100% !important;

    margin: 0 !important;

    align-self: end !important;

    padding: 22px !important;

    border-radius: 0 !important;

    background:
      linear-gradient(
        0deg,
        rgba(3, 10, 22, .92),
        rgba(3, 10, 22, .30)
      );
  }
}

/* ========================================================================== */
/* AIOS MUSIC — FEATURED ALBUM SINGLE-ARTWORK AUTHORITY                       */
/*                                                                            */
/* FeaturedAlbumEngine owns --aios-featured-art.                              */
/* Desktop must display that selected artwork once — not beside stale art.    */
/* ========================================================================== */

@media (min-width: 651px) {

  #homeView .featured {
    position: relative !important;

    grid-template-columns:
      minmax(0, 1fr) !important;

    min-height: 360px !important;

    overflow: hidden !important;

    background-image:
      linear-gradient(
        90deg,
        rgba(3,10,25,.20) 0%,
        rgba(3,10,25,.34) 42%,
        rgba(3,10,25,.84) 100%
      ),
      var(--aios-featured-art) !important;

    background-size:
      cover !important;

    background-position:
      center !important;

    background-repeat:
      no-repeat !important;
  }

  /*
   * Legacy/static artwork pane is the duplicate owner.
   * Keep it in DOM, but remove it from desktop presentation.
   */
  #homeView .featured > .featured__art {
    position: absolute !important;

    width: 1px !important;
    height: 1px !important;

    min-width: 0 !important;
    min-height: 0 !important;

    overflow: hidden !important;

    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;

    opacity: 0 !important;
    pointer-events: none !important;
  }

  /*
   * Featured metadata/actions become an overlay on the
   * engine-selected landscape artwork.
   */
  #homeView .featured > :not(.featured__art) {
    position: relative !important;
    z-index: 2 !important;

    width:
      min(48%, 620px) !important;

    margin-left:
      auto !important;

    padding:
      clamp(1.5rem, 3vw, 3rem) !important;

    border-radius:
      18px !important;

    background:
      linear-gradient(
        135deg,
        rgba(4,12,28,.80),
        rgba(4,12,28,.48)
      ) !important;

    backdrop-filter:
      blur(3px);
  }
}

/* ========================================================================== */
/* AIOS MUSIC — FEATURED ALBUM MOBILE ART RESTORE AUTHORITY                   */
/*                                                                            */
/* Desktop uses FeaturedAlbumEngine background as sole artwork owner.          */
/* Mobile retains its native featured artwork pane and stacked layout.         */
/* ========================================================================== */

@media (max-width: 650px) {

  #homeView .featured {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;

    min-height: 0 !important;

    overflow: visible !important;
  }

  #homeView .featured > .featured__art {
    position: relative !important;

    display: block !important;

    width: 100% !important;
    height: auto !important;

    min-width: 0 !important;
    min-height: 190px !important;
    max-width: none !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;

    clip: auto !important;
    clip-path: none !important;

    opacity: 1 !important;
    visibility: visible !important;

    pointer-events: auto !important;
  }

  #homeView .featured > .featured__art img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    min-height: 190px !important;

    object-fit: contain !important;
    object-position: center !important;

    opacity: 1 !important;
    visibility: visible !important;
  }

  #homeView .featured > :not(.featured__art) {
    position: relative !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;

    clip: auto !important;
    clip-path: none !important;

    opacity: 1 !important;
    visibility: visible !important;
  }
}

/*
 * ================================================================
 * AIOS MUSIC — CATALOG PAGE LANDSCAPE BANNERS V1
 * ================================================================
 *
 * Albums and Artists own independent landscape presentation assets.
 * Existing catalog authorities below the hero remain unchanged.
 */

.aios-catalog-page-banner {
  width: 100%;
  margin: 0 0 1.35rem;
  overflow: hidden;
  border-radius: 18px;
}

.aios-catalog-page-banner img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

@media (max-width: 720px) {
  .aios-catalog-page-banner {
    margin-bottom: 1rem;
    border-radius: 12px;
  }
}

/* ==========================================================================
   AIOS MUSIC — CONTINUE LISTENING CARD POLISH
   Exact live authority:
   .aios-continue-card
   .aios-continue-card__art
   .aios-continue-card__body
   ========================================================================== */

.aios-continue-card {
  grid-template-columns:
    minmax(150px, 34%)
    minmax(0, 1fr) !important;

  height:auto !important;
  min-height:0 !important;
  max-height:none !important;

  align-items:stretch !important;
}

.aios-continue-card__art {
  min-height:0 !important;
  height:100% !important;

  aspect-ratio:16 / 9 !important;

  background:transparent !important;
}

.aios-continue-card__art img {
  width:100% !important;
  height:100% !important;

  object-fit:cover !important;
  object-position:center center !important;
}

.aios-continue-card__body {
  justify-content:center !important;

  gap:5px !important;

  padding:12px 14px !important;

  min-height:0 !important;
}

/* Album / collection name */
.aios-continue-card__body strong {
  font-size:1.05rem !important;
  line-height:1.12 !important;
}

/* Secondary metadata */
.aios-continue-card__body small {
  font-size:.78rem !important;
  line-height:1.2 !important;
  opacity:.62 !important;
}

/* Missing artist metadata should not compete with real content */
.aios-continue-card__body small[data-artist-unavailable],
.aios-continue-card__body small.is-unavailable {
  opacity:.38 !important;
  font-size:.7rem !important;
}

/* Mobile */
@media (max-width:650px) {

  .aios-continue-card {
    grid-template-columns:
      minmax(120px, 36%)
      minmax(0, 1fr) !important;

    flex-basis:min(88vw, 420px) !important;
  }

  .aios-continue-card__body {
    padding:10px 12px !important;
  }

  .aios-continue-card__body strong {
    font-size:1rem !important;
  }

  .aios-continue-card__body small {
    font-size:.74rem !important;
  }
}
