:root{
  --bg:#0a0608;--card:#161015;--line:#3d2e36;
  --txt:#fff6f0;--mute:#c9a8b2;--pink:#ff2d55;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{background:var(--bg);color:var(--txt);font-family:Manrope,"Segoe UI",sans-serif;line-height:1.5}
img{display:block;max-width:100%}
a,button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
body{padding-bottom:calc(118px + env(safe-area-inset-bottom))}

.top{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));
  background:rgba(18,14,17,.94);border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none}
.brand img{width:36px;height:36px;border-radius:10px}
.brand b{font-size:20px;font-weight:800}
.age{font-size:11px;font-weight:800;padding:4px 8px;border-radius:999px;border:1px solid var(--line);color:var(--mute)}

.spotlight{position:relative;min-height:58vh;max-height:520px;overflow:hidden;background:#000}
.spot-stage{position:absolute;inset:0}
.spot-stage .frame{position:absolute;inset:0;opacity:0;transition:opacity .45s ease}
.spot-stage .frame.on{opacity:1}
.spot-stage img{width:100%;height:100%;object-fit:cover;object-position:center top}
.spot-scrim{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(18,14,17,.2) 0%,transparent 35%,rgba(18,14,17,.92) 92%);
}
.spot-copy{position:relative;z-index:2;padding:28px 16px 18px;margin-top:32vh}
.spot-copy h1{font-size:22px;font-weight:800;line-height:1.35;margin:8px 0 10px;max-width:14em}
.spot-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:#ead7dc;font-size:12px;margin-bottom:12px;font-weight:700}
.chip{padding:2px 7px;border:1px solid rgba(255,255,255,.2);border-radius:4px}
.live{background:var(--pink);color:#fff;font-size:10px;font-weight:800;padding:3px 7px;border-radius:4px;margin-right:6px}
.play{display:inline-flex;align-items:center;gap:8px;background:var(--pink);color:#fff;font-weight:800;padding:10px 16px;border-radius:999px}

.sec{padding:18px 0 4px}
.sec h2{font-size:18px;font-weight:800;padding:0 12px 10px}

.stars-wrap{
  overflow:hidden;padding:8px 0 16px;
  touch-action:pan-y;
}
.stars-rail{
  display:flex;gap:12px;will-change:transform;width:max-content;padding:0 12px;
}
.poster{
  position:relative;flex:0 0 calc(44vw - 4px);max-width:190px;min-width:138px;
  aspect-ratio:2/3;border-radius:12px;overflow:hidden;background:#000;
}
.poster img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.poster .dur{
  position:absolute;top:8px;left:8px;font-size:10px;font-weight:800;
  background:rgba(0,0,0,.7);padding:3px 6px;border-radius:4px;z-index:2;
}
.play-ico{
  position:absolute;inset:0;display:grid;place-items:center;
  pointer-events:none;background:rgba(10,6,8,.22);z-index:1;
}
.play-ico i{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(145deg,#ff6b84,#ff2d55);color:#fff;
  box-shadow:0 6px 16px rgba(0,0,0,.4);
  display:grid;place-items:center;
}
.play-ico i::after{
  content:"";width:0;height:0;
  border-style:solid;border-width:8px 0 8px 13px;
  border-color:transparent transparent transparent #fff;
  margin-left:3px;
}
.poster .play-ico i{width:40px;height:40px}

.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.card .thumb{position:relative;background:#000}
.card img{width:100%;aspect-ratio:2/3;object-fit:cover;background:#000}
.card p{font-size:12px;font-weight:700;line-height:1.4;padding:8px 9px 10px}

.dock{
  position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;
  display:flex;align-items:center;gap:12px;
  min-height:78px;padding:12px;
  background:linear-gradient(180deg,#2c1a20,#161015);
  border:1px solid rgba(255,45,85,.28);border-radius:22px;
  box-shadow:0 14px 36px rgba(0,0,0,.55);
  text-decoration:none;
}
.dock img{width:52px;height:52px;border-radius:14px;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.dock strong{display:block;font-size:17px;line-height:1.2}
.dock small{display:block;color:var(--mute);font-size:12px;margin-top:3px;text-decoration:none}
.dock .go{
  position:relative;overflow:hidden;
  margin-inline-start:auto;flex:none;
  display:inline-flex;align-items:center;justify-content:center;
  min-width:64px;height:56px;padding:0 20px;border-radius:999px;
  background:linear-gradient(145deg,#ff8aa0,#ff2d55 52%,#c4123a);
  color:#fff;font-weight:800;font-size:16px;letter-spacing:.03em;
  box-shadow:0 8px 18px rgba(255,45,85,.42);
  animation:breath 1.7s ease-in-out infinite;
}
.dock .go::after{
  content:"";position:absolute;inset:0;transform:translateX(-120%);
  background:linear-gradient(110deg,transparent,rgba(255,255,255,.38),transparent);
  animation:sheen 2.4s ease-in-out infinite;
}
@keyframes breath{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,45,85,.5),0 8px 18px rgba(255,45,85,.4)}
  50%{transform:scale(1.08);box-shadow:0 0 0 12px rgba(255,45,85,0),0 10px 22px rgba(255,45,85,.55)}
}
@keyframes sheen{0%{transform:translateX(-120%)}55%,100%{transform:translateX(120%)}}
@media(prefers-reduced-motion:reduce){
  .dock .go,.dock .go::after{animation:none}
}

.mask{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.72)}
.mask[hidden],.sheet[hidden]{display:none!important}
.sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:41;
  background:#241b1f;border-radius:20px 20px 0 0;
  padding:16px 18px calc(22px + env(safe-area-inset-bottom));text-align:center;
}
.sheet h3{font-size:20px;margin:8px 0 6px}
.sheet p{color:var(--mute);font-size:13px;margin-bottom:14px}
.sheet a{display:block;background:var(--pink);color:#fff;font-weight:800;padding:14px;border-radius:999px;text-decoration:none}