:root {
  --bg: #0A0A1A;
  --surface: #12122A;
  --surface2: #1A1A35;
  --border: rgba(139,92,246,0.15);
  --primary: #8B5CF6;
  --primary-glow: rgba(139,92,246,0.3);
  --accent: #06D6A0;
  --red: #EF4444;
  --text: #F1F5F9;
  --text2: #94A3B8;
  --text3: #64748B;
  --radius: 16px;
  --radius-sm: 10px;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { overflow:auto; height:100%; }
body {
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg); color:var(--text); min-height:100%;
  -webkit-tap-highlight-color:transparent;
  overscroll-behavior:none;
  overflow-y:scroll;
}
::selection { background:var(--primary); color:#fff; }
input,button,textarea { font-family:inherit; }
a { color:var(--primary); text-decoration:none; }

::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--surface2); border-radius:3px; }

/* ─── NAV ─── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(10,10,26,0.92); backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  will-change:transform;
  transform:translateZ(0);
}
.nav-inner {
  max-width:1100px; margin:0 auto; padding:10px 20px;
  display:flex; justify-content:space-between; align-items:center;
}
.nav-brand { display:flex; align-items:center; gap:10px; text-decoration:none; }
.nav-brand img { width:32px; height:32px; }
.nav-brand span { font-size:1.2rem; font-weight:800; color:var(--primary); }

/* Nav icon tabs */
.nav-tabs { display:flex; gap:2px; background:var(--surface); border-radius:12px; padding:3px; }
.nav-tab {
  display:flex; align-items:center; gap:7px; padding:9px 18px;
  border-radius:10px; font-size:0.82rem; font-weight:600;
  color:var(--text3); text-decoration:none; transition:all .2s;
  border:none; background:none; cursor:pointer; white-space:nowrap;
}
.nav-tab:hover { color:var(--text); background:rgba(255,255,255,0.04); }
.nav-tab.active { color:#fff; background:var(--primary); }
.nav-tab svg { width:18px; height:18px; flex-shrink:0; }

/* Hamburger & mobile menu */
.hamburger {
  display:none; background:none; border:none; color:var(--text);
  font-size:1.5rem; cursor:pointer; padding:6px; line-height:1;
}
.mobile-menu {
  display:none; position:absolute; top:100%; left:0; right:0;
  background:rgba(10,10,26,0.98); border-bottom:1px solid var(--border);
  padding:12px 16px; flex-direction:column; gap:4px;
}
.mobile-menu.open { display:flex; }
.mobile-menu .nav-tab { width:100%; justify-content:flex-start; padding:12px 16px; border-radius:10px; }

/* ─── PAGE ─── */
.page { max-width:1100px; margin:0 auto; padding:80px 20px 0; }
section { padding:40px 0; }
.section-label {
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 14px; border-radius:20px; font-size:0.75rem; font-weight:700;
  background:rgba(139,92,246,0.12); color:var(--primary); margin-bottom:14px;
  text-transform:uppercase; letter-spacing:0.5px;
}
.section-title { font-size:2rem; font-weight:800; line-height:1.2; margin-bottom:8px; }
.section-sub { color:var(--text2); font-size:1rem; line-height:1.6; max-width:600px; }

/* ─── BUTTONS ─── */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 28px; border-radius:var(--radius-sm); font-size:0.95rem;
  font-weight:700; border:none; cursor:pointer; transition:all .2s;
}
.btn-primary { background:var(--primary); color:#fff; box-shadow:0 4px 20px var(--primary-glow); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 30px var(--primary-glow); }
.btn-outline { background:transparent; color:var(--primary); border:2px solid var(--primary); }
.btn-outline:hover { background:rgba(139,92,246,0.1); }
.btn-green { background:var(--accent); color:#0A0A1A; }
.btn-green:hover { opacity:0.9; transform:translateY(-2px); }
.btn-red { background:var(--red); color:#fff; }
.btn:disabled { opacity:0.5; cursor:not-allowed; transform:none !important; }

/* ─── CROSS-LINKS (references to other pages) ─── */
.cross-links {
  display:flex; gap:12px; flex-wrap:wrap; margin-top:32px;
  padding:20px; background:var(--surface); border-radius:var(--radius);
  border:1px solid var(--border);
}
.cross-link {
  display:flex; align-items:center; gap:10px; padding:12px 20px;
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-sm);
  color:var(--text); text-decoration:none; transition:all .25s; flex:1; min-width:220px;
}
.cross-link:hover { border-color:var(--primary); transform:translateY(-2px); box-shadow:0 8px 25px rgba(0,0,0,0.3); }
.cross-link svg { width:28px; height:28px; color:var(--primary); flex-shrink:0; }
.cross-link-info { flex:1; }
.cross-link-title { font-weight:700; font-size:0.9rem; margin-bottom:2px; }
.cross-link-desc { font-size:0.75rem; color:var(--text3); }

/* ─── DOWNLOAD BOX ─── */
.dl-box {
  background:var(--surface); border-radius:var(--radius); padding:28px;
  border:1px solid var(--border);
}
.dl-input-row { display:flex; gap:10px; margin-bottom:16px; }
.dl-input {
  flex:1; padding:14px 18px; background:var(--bg); border:2px solid var(--border);
  border-radius:var(--radius-sm); color:var(--text); font-size:0.95rem; outline:none;
  transition:border-color .2s;
}
.dl-input:focus { border-color:var(--primary); }
.dl-input::placeholder { color:var(--text3); }
.dl-status {
  padding:12px 16px; border-radius:var(--radius-sm); font-size:0.9rem;
  display:none; margin-top:12px; text-align:center;
}
.dl-status.loading { display:block; background:rgba(139,92,246,0.1); color:var(--primary); }
.dl-status.error { display:block; background:rgba(239,68,68,0.1); color:var(--red); }
.dl-status.success { display:block; background:rgba(6,214,160,0.1); color:var(--accent); }

/* ─── RESULT CARD ─── */
.result { display:none; margin-top:20px; animation:fadeUp .3s ease; }
.result.visible { display:block; }
.result-info { display:flex; gap:16px; margin-bottom:16px; }
.result-thumb {
  width:180px; height:100px; border-radius:var(--radius-sm);
  object-fit:cover; background:var(--surface2); flex-shrink:0;
}
.result-meta { flex:1; }
.result-title { font-size:1.05rem; font-weight:700; margin-bottom:4px; line-height:1.4; }
.result-author { color:var(--text2); font-size:0.85rem; }
.result-actions { display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.result-formats { display:grid; gap:8px; margin-top:16px; }
.fmt-item {
  display:flex; justify-content:space-between; align-items:center;
  padding:12px 16px; background:var(--bg); border-radius:var(--radius-sm);
  border:1px solid var(--border);
}
.fmt-left { display:flex; align-items:center; gap:12px; }
.fmt-badge {
  padding:6px 10px; border-radius:8px; font-size:0.7rem; font-weight:700;
  background:rgba(139,92,246,0.15); color:var(--primary);
}
.fmt-detail h4 { font-size:0.9rem; margin-bottom:2px; }
.fmt-detail span { font-size:0.78rem; color:var(--text3); }
.fmt-dl-btn {
  padding:8px 16px; border:none; border-radius:8px; font-size:0.8rem; font-weight:600;
  background:rgba(139,92,246,0.15); color:var(--primary); cursor:pointer; transition:all .2s;
}
.fmt-dl-btn:hover { background:var(--primary); color:#fff; }

/* ─── GENRE PLAYER ─── */
.genre-player {
  display:none; background:var(--surface); border-radius:var(--radius);
  overflow:hidden; border:1px solid var(--border); margin-bottom:24px;
  animation:fadeUp .3s ease;
}
.genre-player.active { display:block; }
.genre-player-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 18px; border-bottom:1px solid var(--border);
}
.genre-player-info { display:flex; flex-direction:column; gap:2px; }
.genre-player-title { font-size:1rem; font-weight:700; }
.genre-player-sub { font-size:0.8rem; color:var(--text3); }
.genre-player-frame { width:100%; aspect-ratio:16/9; background:#000; }
.genre-player-frame iframe { width:100%; height:100%; border:none; }
.genre-player-note {
  padding:10px 18px; font-size:0.75rem; color:var(--text3);
  border-top:1px solid var(--border);
}
.genre-player-note a { color:var(--primary); }

/* ─── TRACKLIST ─── */
.gp-tracklist { border-top:1px solid var(--border); }
.gp-tracklist-header {
  display:flex; align-items:center; gap:10px; padding:10px 18px;
  border-bottom:1px solid var(--border); background:var(--surface);
}
.gp-tracklist-label { font-size:0.85rem; font-weight:700; }
.gp-tracklist-count { font-size:0.75rem; color:var(--text3); }
.gp-awake-btn {
  margin-left:auto; padding:6px 12px; border:1px solid var(--border);
  border-radius:8px; background:var(--bg); color:var(--text2);
  font-size:0.72rem; font-weight:600; cursor:pointer; transition:all .2s;
}
.gp-awake-btn:hover { border-color:var(--primary); color:var(--primary); }
.gp-awake-btn.active { background:var(--accent); color:#0A0A1A; border-color:var(--accent); }
.gp-tracklist-list { max-height:320px; overflow-y:auto; scrollbar-width:thin; }
.gp-track {
  display:flex; align-items:center; gap:12px; padding:10px 18px;
  cursor:pointer; transition:background .15s; border-bottom:1px solid rgba(255,255,255,0.04);
}
.gp-track:hover { background:rgba(139,92,246,0.08); }
.gp-track.playing { background:rgba(139,92,246,0.15); }
.gp-track-num { width:24px; text-align:center; font-size:0.75rem; color:var(--text3); flex-shrink:0; }
.gp-track.playing .gp-track-num { color:var(--primary); font-weight:700; }
.gp-track-thumb {
  width:48px; height:36px; border-radius:6px; object-fit:cover;
  background:var(--surface2); flex-shrink:0;
}
.gp-track-info { flex:1; min-width:0; }
.gp-track-title {
  font-size:0.82rem; font-weight:600; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}
.gp-track.playing .gp-track-title { color:var(--primary); }
.gp-track-author { font-size:0.7rem; color:var(--text3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gp-track-now { font-size:0.65rem; color:var(--accent); font-weight:600; display:none; }
.gp-track.playing .gp-track-now { display:block; }

/* ─── GENRE ROWS (Netflix) ─── */
.genre-row { margin-bottom:28px; }
.genre-row-header {
  display:flex; align-items:center; gap:10px; margin-bottom:12px;
  padding:10px 16px; border-radius:12px; cursor:default;
}
.genre-row-icon {
  width:36px; height:36px; border-radius:10px; display:flex;
  align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0;
}
.genre-row-name { font-size:1.15rem; font-weight:800; }
.genre-row-count { font-size:0.75rem; color:var(--text3); margin-left:auto; }
.genre-row-scroll {
  display:flex; gap:14px; overflow-x:auto; padding:0 4px 8px;
  scrollbar-width:none; -ms-overflow-style:none;
}
.genre-row-scroll::-webkit-scrollbar { display:none; }

/* ─── PLAYLIST CARD ─── */
.pl-card {
  flex-shrink:0; width:180px; border-radius:12px; overflow:hidden;
  background:var(--surface); border:1px solid var(--border);
  cursor:pointer; transition:all .25s; position:relative;
}
.pl-card:hover { transform:translateY(-4px); border-color:var(--primary); box-shadow:0 8px 30px rgba(0,0,0,0.4); }
.pl-card-img {
  width:100%; aspect-ratio:16/10; object-fit:cover; display:block; background:var(--surface2);
}
.pl-card-body { padding:10px 12px; }
.pl-card-title { font-size:0.85rem; font-weight:700; line-height:1.3; margin-bottom:3px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pl-card-desc { font-size:0.72rem; color:var(--text3); }
.pl-card-badge {
  position:absolute; top:8px; right:8px; padding:3px 8px; border-radius:6px;
  font-size:0.65rem; font-weight:700; backdrop-filter:blur(6px);
}
.pl-card-play {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-70%);
  width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,0.6); color:#fff; font-size:1.1rem; opacity:0; transition:opacity .2s;
}
.pl-card:hover .pl-card-play { opacity:1; }

/* ─── FEATURES GRID ─── */
.features-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px;
}
.feat-card {
  padding:24px; background:var(--surface); border-radius:var(--radius);
  border:1px solid var(--border); transition:all .3s;
}
.feat-card:hover { border-color:var(--primary); transform:translateY(-4px); }
.feat-icon {
  width:48px; height:48px; border-radius:14px; display:flex;
  align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:14px;
}
.feat-card h4 { font-size:1rem; font-weight:700; margin-bottom:6px; }
.feat-card p { color:var(--text2); font-size:0.85rem; line-height:1.6; }

/* ─── APP SECTION ─── */
.app-hero { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.app-dl-area { text-align:center; margin-top:24px; }
.app-dl-btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 32px; background:var(--primary); color:#fff;
  border-radius:var(--radius-sm); font-size:1.05rem; font-weight:700;
  transition:all .3s; box-shadow:0 8px 30px var(--primary-glow);
}
.app-dl-btn:hover { transform:translateY(-3px); box-shadow:0 12px 40px var(--primary-glow); }
.app-ver { color:var(--text3); font-size:0.85rem; margin-top:10px; }

/* ─── CHANGELOG ─── */
.changelog-list { display:flex; flex-direction:column; gap:16px; }
.cl-item {
  padding:20px; background:var(--surface); border-radius:var(--radius);
  border:1px solid var(--border);
}
.cl-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.cl-ver {
  font-size:1.1rem; font-weight:800;
  background:linear-gradient(90deg,var(--primary),#a78bfa);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}
.cl-date { color:var(--text3); font-size:0.8rem; }
.cl-title { font-weight:600; margin-bottom:8px; color:var(--text); }
.cl-changes { list-style:none; }
.cl-changes li {
  padding:4px 0; font-size:0.85rem; color:var(--text2);
  display:flex; align-items:flex-start; gap:8px;
}
.cl-changes li::before { content:'✦'; color:var(--primary); flex-shrink:0; margin-top:1px; }

/* ─── FOOTER ─── */
.footer {
  border-top:1px solid var(--border); padding:40px 0 60px; margin-top:40px; text-align:center;
}
.footer-brand { display:flex; align-items:center; gap:8px; justify-content:center; margin-bottom:12px; }
.footer-brand img { width:24px; }
.footer-brand span { font-weight:700; color:var(--text); }
.footer p { color:var(--text3); font-size:0.8rem; }

/* ─── SPINNER ─── */
.spinner {
  display:inline-block; width:16px; height:16px;
  border:2px solid rgba(139,92,246,0.3); border-radius:50%;
  border-top-color:var(--primary); animation:spin .6s linear infinite;
  margin-right:8px; vertical-align:middle;
}
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes fadeUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

/* ─── RESPONSIVE ─── */
@media(max-width:768px) {
  .nav-tabs { display:none; }
  .hamburger { display:block; }
  .app-hero { grid-template-columns:1fr; }
  .page { padding-top:70px; }
  .section-title { font-size:1.6rem; }
  .result-info { flex-direction:column; }
  .result-thumb { width:100%; height:auto; aspect-ratio:16/9; }
  .dl-input-row { flex-direction:column; }
  .pl-card:hover,.page-card:hover,.feat-card:hover,.cross-link:hover,.search-card:hover { transform:none; }
  .nav { backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
  .pl-card { width:150px; }
  .genre-player-frame { aspect-ratio:16/10; }
}
@media(max-width:600px) {
  .pl-card { width:150px; }
  .cross-links { flex-direction:column; }
  .cross-link { min-width:auto; }
}
