/**
 * DX Studio — layout/css/studio-home.css
 * 홈 화면 (page/home.php) · 이퀄라이저 스테이지 · 곡 카드 · 트랙 목록
 * 곡 요소는 data-dxsp-v 로 현재 곡 표시 (.dxsp-current / .dxsp-playing — 플레이어가 붙임)
 */
.dxs-home { display: flex; flex-direction: column; gap: 34px; }
.dxs-muted { color: var(--text-muted); font-size: 12.5px; }
.dxs-btn-lg { height: 46px; padding: 0 20px; border-radius: 13px; font-size: 14px; }

/* ── 스테이지 (홈 첫 화면) — 화면 가득 이퀄라이저 ───────────────
 * 홈에서는 #dx-main 의 폭 제한·여백을 풀어 무대 전체를 씀 (:has — 화면 전환에도 자동 적용)
 * 본문 섹션은 .dxs-home-body 가 다시 폭을 잡음
 */
.dxs-page #dx-main:has(.dxs-stagehero) { max-width: none !important; padding: 0 !important; }
.dxs-home:has(.dxs-stagehero) { gap: 0; }
.dxs-home-body { display: flex; flex-direction: column; gap: 34px; width: 100%; max-width: 1180px; margin: 0 auto; padding: 34px 28px 12px; box-sizing: border-box; }

.dxs-stagehero {
  position: relative;
  display: flex; align-items: flex-end;
  min-height: clamp(460px, 74vh, 780px);
  overflow: hidden;
  isolation: isolate;
  color: #f4f3fb;
  background:
    radial-gradient(900px 520px at 18% 12%, color-mix(in srgb, var(--p) 34%, transparent), transparent 65%),
    radial-gradient(800px 520px at 88% 30%, color-mix(in srgb, var(--dxs-acc2) 20%, transparent), transparent 62%),
    linear-gradient(180deg, #0a0912 0%, #07060c 100%);
}
/* 가는 격자 — 스튜디오 모니터 느낌 */
.dxs-stagehero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 60%, #000 30%, transparent 75%);
          mask-image: radial-gradient(ellipse at 50% 60%, #000 30%, transparent 75%);
}
/* 글자 쪽을 살짝 어둡게 — 막대 위에서도 읽히도록 */
.dxs-stagehero::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(7,6,12,.82) 0%, rgba(7,6,12,.45) 45%, rgba(7,6,12,0) 75%),
              linear-gradient(0deg, rgba(7,6,12,.9) 0%, rgba(7,6,12,0) 40%);
}
.dxs-eq-canvas { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; display: block; }
.dxs-stagehero-in { position: relative; z-index: 1; max-width: 1180px; width: 100%; margin: 0 auto; padding: 0 28px 56px; box-sizing: border-box; }
.dxs-stagehero .dxs-kicker { color: rgba(244,243,251,.72); }
.dxs-stage-t {
  margin: 18px 0 14px; max-width: 14ch;
  font: 800 clamp(34px, 6vw, 76px)/1.02 var(--dxs-disp); letter-spacing: -.01em;
  color: #fff; word-break: keep-all;
  text-shadow: 0 10px 40px rgba(0,0,0,.45);
}
.dxs-stage-d { margin: 0; max-width: 46ch; font-size: 16px; line-height: 1.75; color: rgba(244,243,251,.72); word-break: keep-all; }
.dxs-stagehero .dxs-hero-stats dt { color: rgba(244,243,251,.6); }
.dxs-stagehero .dxs-hero-stats dd { color: #fff; }
.dxs-btn-glass { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); color: #fff; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.dxs-btn-glass:hover { border-color: rgba(255,255,255,.4); }
.dxs-hero-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.dxs-hero-stats { display: flex; gap: 28px; margin: 28px 0 0; padding: 0; }
.dxs-hero-stats div { display: flex; flex-direction: column-reverse; gap: 4px; }
.dxs-hero-stats dt { font-size: 12px; color: var(--text-muted); }
.dxs-hero-stats dd { margin: 0; font: 700 24px/1 var(--dxs-disp); color: var(--text-main); font-variant-numeric: tabular-nums; }
.dxs-kicker { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: 700 10.5px/1 var(--dxs-disp); letter-spacing: .24em; text-transform: uppercase; color: var(--text-muted); }
.dxs-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--dxs-acc2); box-shadow: 0 0 0 4px color-mix(in srgb, var(--dxs-acc2) 22%, transparent); }
html.dxs-playing .dxs-dot { animation: dxs-live 1.4s ease-in-out infinite; }
@keyframes dxs-live { 50% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--dxs-acc2) 8%, transparent); } }

/* ── 섹션 ────────────────────────────────────────── */
.dxs-sec-h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.dxs-sec-h h2 { margin: 0; font-size: 19px; font-weight: 800; letter-spacing: -.02em; color: var(--text-main); }
.dxs-panel { padding: 20px; border: 1px solid var(--dxs-line); border-radius: 20px; background: var(--bg-card); box-shadow: var(--dxs-shadow); }

/* 곡 카드 */
.dxs-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 18px; list-style: none; margin: 0; padding: 0; }
.dxs-card { display: flex; flex-direction: column; gap: 4px; width: 100%; padding: 0; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; }
.dxs-card-art { position: relative; display: block; aspect-ratio: 1; margin-bottom: 8px; border-radius: 16px; overflow: hidden; background: var(--border); box-shadow: 0 12px 24px -16px rgba(0, 0, 0, .5); }
.dxs-card-art img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.34); transition: transform .4s cubic-bezier(.2, .8, .2, 1); }
.dxs-card:hover .dxs-card-art img { transform: scale(1.42); }
.dxs-card-play {
  position: absolute; right: 10px; bottom: 10px;
  display: grid; place-items: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--p); color: #fff; font-size: 14px;
  box-shadow: 0 8px 20px -6px rgba(0, 0, 0, .5);
  opacity: 0; transform: translateY(6px);
  transition: opacity .2s, transform .2s;
}
.dxs-card-play .fa-pause { display: none; }
.dxs-card:hover .dxs-card-play, .dxs-card:focus-visible .dxs-card-play, .dxs-card.dxsp-current .dxs-card-play { opacity: 1; transform: none; }
.dxs-card.dxsp-playing .dxs-card-play .fa-play { display: none; }
.dxs-card.dxsp-playing .dxs-card-play .fa-pause { display: inline; }
.dxs-card.dxsp-current .dxs-card-t { color: var(--p); }
.dxs-card-t { font-size: 14px; font-weight: 700; line-height: 1.35; color: var(--text-main); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.dxs-card-a { font-size: 12.5px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* 트랙 목록 + 최신글 2단 */
.dxs-split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 20px; align-items: start; }
.dxs-tracks { list-style: none; margin: 0; padding: 0; }
.dxs-track {
  display: grid; grid-template-columns: 26px 40px minmax(0, 1fr) 18px 16px;
  align-items: center; gap: 12px;
  width: 100%; padding: 8px 10px; margin: 0 -10px;
  border: 0; border-radius: 12px; background: none; color: inherit; text-align: left; cursor: pointer;
  box-sizing: content-box;
}
.dxs-track:hover { background: var(--hover-row); }
.dxs-track-no { font: 600 11px/1 var(--dxs-disp); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.dxs-track img { width: 40px; height: 40px; border-radius: 9px; object-fit: cover; background: var(--border); }
.dxs-track-tx { display: flex; flex-direction: column; min-width: 0; }
.dxs-track-tx b, .dxs-track-tx small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dxs-track-tx b { font-size: 14px; font-weight: 700; color: var(--text-main); }
.dxs-track-tx small { font-size: 12px; color: var(--text-muted); }
.dxs-track-ico { font-size: 12px; color: var(--text-muted); opacity: 0; transition: opacity .15s; }
.dxs-track:hover .dxs-track-ico { opacity: 1; }
.dxs-track-eq { display: none; align-items: flex-end; gap: 2px; height: 12px; }
.dxs-track-eq i { width: 3px; border-radius: 1px; background: var(--dxs-acc2); animation: dxs-eq 1s ease-in-out infinite; }
.dxs-track-eq i:nth-child(2) { animation-delay: -.4s; } .dxs-track-eq i:nth-child(3) { animation-delay: -.7s; }
.dxs-track.dxsp-current .dxs-track-tx b { color: var(--p); }
.dxs-track.dxsp-playing .dxs-track-eq { display: flex; }
.dxs-track.dxsp-playing .dxs-track-ico { display: none; }

.dxs-latest { display: flex; flex-direction: column; gap: 16px; }
.dxs-latest-box { padding: 16px 18px; }
.dxs-latest-box > * { margin: 0 !important; }
.dxs-note { margin: 0; padding: 14px 16px; border: 1px dashed var(--border); border-radius: 14px; color: var(--text-muted); font-size: 13.5px; }

@media (max-width: 1100px) {
  .dxs-split { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .dxs-home, .dxs-home-body { gap: 26px; }
  .dxs-home-body { padding: 24px 14px 8px; }
  .dxs-stagehero { min-height: clamp(420px, 70vh, 620px); }
  .dxs-stagehero-in { padding: 0 18px 36px; }
  .dxs-stagehero::after { background: linear-gradient(0deg, rgba(7,6,12,.92) 0%, rgba(7,6,12,.35) 60%, rgba(7,6,12,.15) 100%); }
  .dxs-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .dxs-panel { padding: 16px; }
}
