.osv-top100-page{
  padding:34px 0 72px;
}

.osv-top100-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:40px;
  align-items:end;
  padding:46px 50px;
  background:#fff;
  border:1px solid #e7e7e8;
  border-radius:24px;
  box-shadow:0 14px 42px rgba(0,0,0,.045);
}

.osv-top100-kicker,
.osv-top100-position{
  display:block;
  color:#e10600;
  font-size:10px;
  line-height:1;
  font-weight:950;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.osv-top100-hero h1{
  max-width:850px;
  margin:12px 0 16px;
  color:#111;
  font-size:58px;
  line-height:.98;
  font-weight:950;
  letter-spacing:-.05em;
}

.osv-top100-hero p{
  max-width:760px;
  margin:0;
  color:#575757;
  font-size:17px;
  line-height:1.7;
}

.osv-top100-number{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
}

.osv-top100-number strong{
  color:#111;
  font-size:92px;
  line-height:.75;
  font-weight:950;
  letter-spacing:-.07em;
}

.osv-top100-number span{
  margin-top:18px;
  color:#777;
  font-size:11px;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.osv-top100-controls{
  position:sticky;
  top:76px;
  z-index:20;
  display:grid;
  grid-template-columns:minmax(260px,1fr) repeat(3,170px) auto;
  gap:10px;
  align-items:center;
  margin-top:22px;
  margin-bottom:24px;
  padding:14px;
  background:rgba(255,255,255,.96);
  border:1px solid #e6e6e7;
  border-radius:17px;
  box-shadow:0 10px 30px rgba(0,0,0,.055);
  backdrop-filter:blur(12px);
}

.osv-top100-search{
  display:flex;
  align-items:center;
  min-height:46px;
  border:1px solid #dedee0;
  border-radius:11px;
  background:#fff;
}

.osv-top100-search span{
  display:grid;
  place-items:center;
  width:45px;
  color:#777;
}

.osv-top100-search svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
}

.osv-top100-search input,
.osv-top100-controls select{
  min-height:46px;
  border:1px solid #dedee0;
  border-radius:11px;
  background:#fff;
  color:#111;
  font:inherit;
  font-size:13px;
  font-weight:700;
}

.osv-top100-search input{
  width:100%;
  padding:0 14px 0 0;
  border:0;
  outline:0;
}

.osv-top100-controls select{
  padding:0 12px;
  cursor:pointer;
}

.osv-top100-search:focus-within,
.osv-top100-controls select:focus{
  border-color:#e10600;
  outline:3px solid rgba(225,6,0,.07);
}

.osv-top100-results{
  min-width:70px;
  color:#777;
  font-size:11px;
  font-weight:850;
  text-align:center;
}

.osv-top100-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin:0;
  padding:0;
  list-style:none;
}

.osv-top100-card{
  position:relative;
  display:grid;
  grid-template-columns:72px 180px minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  min-width:0;
  padding:16px;
  background:#fff;
  border:1px solid #e7e7e8;
  border-radius:18px;
  box-shadow:0 7px 22px rgba(0,0,0,.035);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.osv-top100-card:hover{
  transform:translateY(-4px);
  border-color:#d8d8da;
  box-shadow:0 17px 38px rgba(0,0,0,.085);
}

.osv-top100-card.is-podium{
  grid-column:1/-1;
  grid-template-columns:105px minmax(320px,42%) minmax(0,1fr) auto;
  padding:22px;
}

.osv-top100-rank{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.osv-top100-rank small{
  color:#999;
  font-size:8px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.osv-top100-rank strong{
  color:#111;
  font-size:42px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.055em;
}

.is-podium .osv-top100-rank strong{
  color:#e10600;
  font-size:68px;
}

.osv-top100-thumb{
  position:relative;
  display:block;
  overflow:hidden;
  aspect-ratio:16/9;
  background:#ececed;
  border-radius:13px;
}

.osv-top100-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}

.osv-top100-card:hover .osv-top100-thumb img{
  transform:scale(1.045);
}

.osv-top100-play{
  position:absolute;
  left:12px;
  bottom:12px;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding-left:2px;
  background:rgba(17,17,17,.88);
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  color:#fff;
  font-size:10px;
  opacity:0;
  transform:translateY(5px);
  transition:.2s ease;
}

.osv-top100-card:hover .osv-top100-play{
  opacity:1;
  transform:none;
}

.osv-top100-copy{
  min-width:0;
}

.osv-top100-copy h2{
  margin:7px 0 5px;
  font-size:20px;
  line-height:1.12;
  font-weight:950;
  letter-spacing:-.025em;
}

.is-podium .osv-top100-copy h2{
  font-size:30px;
}

.osv-top100-copy h2 a,
.osv-top100-artist{
  color:#111;
  text-decoration:none;
}

.osv-top100-artist{
  display:inline-block;
  color:#666;
  font-size:13px;
  font-weight:750;
}

.osv-top100-artist:hover,
.osv-top100-copy h2 a:hover{
  color:#e10600;
}

.osv-top100-meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:12px;
}

.osv-top100-meta span{
  padding:5px 8px;
  background:#f4f4f5;
  border:1px solid #ececee;
  border-radius:999px;
  color:#666;
  font-size:9px;
  line-height:1;
  font-weight:850;
}

.osv-top100-watch{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:42px;
  padding:0 15px;
  background:#e10600;
  border-radius:999px;
  color:#fff;
  font-size:11px;
  font-weight:900;
  text-decoration:none;
  white-space:nowrap;
}

.osv-top100-watch:hover{
  background:#bf0500;
}

.osv-top100-empty{
  padding:90px 20px;
  text-align:center;
}

.osv-top100-empty strong{
  display:block;
  color:#111;
  font-size:28px;
  font-weight:950;
}

.osv-top100-empty p{
  color:#777;
}

@media(max-width:1100px){
  .osv-top100-controls{
    grid-template-columns:1fr 1fr 1fr;
  }

  .osv-top100-search{
    grid-column:1/-1;
  }

  .osv-top100-grid{
    grid-template-columns:1fr;
  }

  .osv-top100-card.is-podium{
    grid-column:auto;
  }
}

@media(max-width:720px){
  .osv-top100-page{
    padding-top:20px;
  }

  .osv-top100-hero{
    grid-template-columns:1fr;
    padding:30px 24px;
  }

  .osv-top100-hero h1{
    font-size:42px;
  }

  .osv-top100-number{
    display:none;
  }

  .osv-top100-controls{
    position:relative;
    top:auto;
    grid-template-columns:1fr;
  }

  .osv-top100-search{
    grid-column:auto;
  }

  .osv-top100-card,
  .osv-top100-card.is-podium{
    grid-template-columns:56px minmax(0,1fr);
    gap:13px;
    padding:13px;
  }

  .osv-top100-thumb{
    grid-column:2;
  }

  .osv-top100-copy{
    grid-column:2;
  }

  .osv-top100-watch{
    grid-column:2;
    justify-self:start;
  }

  .osv-top100-rank{
    grid-row:1/4;
    align-self:start;
    padding-top:8px;
  }

  .osv-top100-rank strong,
  .is-podium .osv-top100-rank strong{
    font-size:38px;
  }

  .is-podium .osv-top100-copy h2{
    font-size:22px;
  }
}



/* OSV TOP100 NO SEARCH OR HOVER PLAY */

.osv-top100-controls{
  grid-template-columns:repeat(3,minmax(150px,190px)) auto !important;
  justify-content:start !important;
}

.osv-top100-play{
  display:none !important;
}

@media(max-width:1100px){
  .osv-top100-controls{
    grid-template-columns:repeat(3,minmax(0,1fr)) auto !important;
  }
}

@media(max-width:720px){
  .osv-top100-controls{
    grid-template-columns:1fr !important;
  }
}


/* ---------- Top 100 Hero Spacing ---------- */

.osv-top100-hero{
    margin-top:28px !important;
    margin-bottom:28px !important;
}




/* ===== OSV PAGE WIDTH FIX ===== */

html,body{
overflow-x:hidden;
}

.container,
.container-fluid,
main,
.page,
.page-wrapper,
.content,
.content-wrapper{

max-width:1600px;
margin:0 auto;
padding-left:32px;
padding-right:32px;
box-sizing:border-box;

}

@media(max-width:991px){

.container,
.container-fluid,
main,
.page,
.page-wrapper,
.content,
.content-wrapper{

padding-left:16px;
padding-right:16px;

}

}



/* ===== NOW PLAYING BLINK ===== */

@keyframes osvBlinkDot{
    0%,100%{
        opacity:1;
        transform:scale(1);
    }
    50%{
        opacity:.2;
        transform:scale(.75);
    }
}

.now-playing-dot,
.live-dot,
.playing-dot,
.now-playing .dot{
    animation:osvBlinkDot .9s infinite;
}
