/*
  SwiftDrome website.

  Colors are the design concept's tokens (docs/design/navidrome-app/,
  values from the inline <style> in Pixel Pets.dc.html), dark first with a
  light override, so the site reads like the app. The three logo colors come
  from the icon drawn on the LOGIN screen.

  Same rule as the app: glass only on the navigation layer (the floating
  nav capsule). Content stays flat.
*/

:root {
  --text: #fff;
  --text2: rgba(235, 235, 245, .62);
  --text3: rgba(235, 235, 245, .32);
  --card: #1C1C1E;
  --sep: rgba(84, 84, 88, .55);
  --glass: rgba(44, 44, 50, .55);
  --glass-brd: rgba(255, 255, 255, .14);
  --shine: rgba(255, 255, 255, .16);
  --tint: #0A84FF;
  --field: rgba(118, 118, 128, .24);
  --screen: #000;

  --logo-violet: oklch(0.6 0.2 300);
  --logo-orange: oklch(0.74 0.18 44);
  --logo-pink: oklch(0.86 0.11 22);

  color-scheme: dark light;
}

@media (prefers-color-scheme: light) {
  :root {
    --text: #000;
    --text2: rgba(60, 60, 67, .6);
    --text3: rgba(60, 60, 67, .3);
    --card: #fff;
    --sep: rgba(60, 60, 67, .12);
    --glass: rgba(255, 255, 255, .55);
    --glass-brd: rgba(0, 0, 0, .07);
    --shine: rgba(255, 255, 255, .85);
    --tint: #007AFF;
    --field: rgba(118, 118, 128, .12);
    --screen: #F2F2F7;
  }
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--screen);
  color: var(--text);
  font: 400 17px/1.5 -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--tint); text-decoration: none; }
a:hover { text-decoration: underline; }

.wrap {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ── Navigation: the one glass layer ───────────────────────── */

.nav {
  position: sticky;
  top: 12px;
  z-index: 10;
  display: flex;
  justify-content: center;
  padding: 12px 16px 0;
}

.nav-capsule {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px;
  border-radius: 9999px;
  background: var(--glass);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: .5px solid var(--glass-brd);
  box-shadow: inset 1px 1px 1px var(--shine), 0 12px 32px rgba(0, 0, 0, .28);
}

.nav-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px 0 6px;
  font-weight: 700;
  color: var(--text);
}

.nav-brand img { width: 28px; height: 28px; border-radius: 7px; }

.nav a.nav-link {
  padding: 7px 14px;
  border-radius: 9999px;
  font-size: 15px;
  font-weight: 600;
  color: var(--text2);
}

.nav a.nav-link:hover { color: var(--text); text-decoration: none; }

.nav a.nav-link[aria-current="page"] {
  color: var(--text);
  background: var(--field);
}

/* ── Hero ──────────────────────────────────────────────────── */

.hero {
  padding: 88px 0 56px;
  text-align: center;
}

.app-icon {
  width: 112px;
  height: 112px;
  border-radius: 26px;
  border: .5px solid var(--glass-brd);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .25);
}

.eyebrow {
  margin: 28px 0 8px;
  font: 600 12px ui-monospace, Menlo, monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text3);
}

h1 {
  margin: 0 0 14px;
  font-size: clamp(40px, 7vw, 64px);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -.02em;
}

h1 .accent {
  background: linear-gradient(90deg, var(--logo-violet), var(--logo-orange) 60%, var(--logo-pink));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.lede {
  max-width: 620px;
  margin: 0 auto 32px;
  font-size: 19px;
  color: var(--text2);
  text-wrap: pretty;
}

.cta-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 50px;
  padding: 0 24px;
  border-radius: 9999px;
  font-size: 17px;
  font-weight: 600;
}

.button:hover { text-decoration: none; filter: brightness(1.1); }

.button-primary { background: var(--tint); color: #fff; }

.button-secondary { background: var(--field); color: var(--tint); }

.fine {
  margin-top: 14px;
  font-size: 13px;
  color: var(--text3);
}

/* ── Sections ──────────────────────────────────────────────── */

section { padding: 40px 0; }

h2 {
  margin: 0 0 6px;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -.01em;
}

.section-sub {
  margin: 0 0 24px;
  color: var(--text2);
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.grid-2 { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }

.card {
  padding: 20px;
  border-radius: 22px;
  background: var(--card);
}

.card h3 {
  margin: 12px 0 4px;
  font-size: 17px;
  font-weight: 700;
}

.card p {
  margin: 0;
  font-size: 15px;
  color: var(--text2);
}

.dot {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 9999px;
  background: var(--tint);
}

.dot.violet { background: var(--logo-violet); }
.dot.orange { background: var(--logo-orange); }
.dot.pink { background: var(--logo-pink); }

/* A grouped list, the way Settings draws one */
.list {
  border-radius: 22px;
  background: var(--card);
  overflow: hidden;
}

.list-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 20px;
  border-bottom: .5px solid var(--sep);
}

.list-row:last-child { border-bottom: none; }

.list-label { color: var(--text); }

.list-value { color: var(--text2); text-align: right; }

/* ── Download page ─────────────────────────────────────────── */

.store-card {
  max-width: 560px;
  margin: 0 auto;
  padding: 32px 24px;
  border-radius: 26px;
  background: var(--card);
  text-align: center;
}

.store-card h2 { margin-top: 18px; }

.store-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  margin-top: 8px;
  padding: 0 22px;
  border-radius: 14px;
  background: #000;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .35);
  text-align: left;
}

.store-badge:hover { text-decoration: none; filter: brightness(1.25); }

.store-badge svg { flex: none; }

.store-badge small {
  display: block;
  font-size: 11px;
  line-height: 1.1;
  opacity: .85;
}

.store-badge strong {
  display: block;
  font-size: 22px;
  line-height: 1.1;
  font-weight: 600;
  letter-spacing: -.01em;
}

code {
  display: block;
  margin: 12px 0 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--field);
  color: var(--text);
  font: 13px/1.4 ui-monospace, Menlo, monospace;
  word-break: break-all;
  text-align: left;
}

/* ── Footer ────────────────────────────────────────────────── */

footer {
  margin-top: 40px;
  padding: 24px 0 48px;
  border-top: .5px solid var(--sep);
  font-size: 13px;
  color: var(--text3);
}

footer .wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
}

footer a { color: var(--text2); }

.footer-links { display: flex; gap: 16px; }

/* ── Privacy policy and legal notice ───────────────────────── */

.legal {
  max-width: 680px;
  margin: 0 auto;
  padding: 72px 0 24px;
}

.legal h1 { font-size: clamp(34px, 6vw, 44px); }

.legal h2 { margin-top: 36px; font-size: 22px; }

.legal p, .legal li { color: var(--text2); }

.legal strong { color: var(--text); }

.legal ul { padding-left: 20px; }

.legal li { margin-bottom: 10px; }
