@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:wght@300;400&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: #17181c;
  color: #e2e8f4;
  font-family: 'Source Serif 4', Georgia, serif;
  font-weight: 300;
  line-height: 1.7;
}

.container {
  max-width: 640px;
  margin: 0 auto;
  padding: 4rem 2rem 6rem;
}

/* ── Site name ── */
.site-name {
  font-size: 1rem;
  letter-spacing: 0.04em;
  margin-bottom: 3rem;
  text-decoration: none;
  color: #e2e8f4;
  display: block;
}

.site-name:hover { opacity: 0.5; }

/* ── Hub ── */
.hub-nav { display: flex; flex-direction: column; }

.hub-link {
  display: block;
  padding: 1.8rem 0;
  font-size: 1.2rem;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid #a0a6b2;
  transition: opacity 0.15s;
}

.hub-link:first-child { border-top: 1px solid #a0a6b2; }
.hub-link:hover { opacity: 0.45; }

/* ── Post list ── */
.post-list { list-style: none; }

.post-item {
  border-bottom: 1px solid #a0a6b2;
}

.post-item:first-child { border-top: 1px solid #a0a6b2; }
.post-item:hover .post-title { opacity: 0.45; }

.post-item a {
  text-decoration: none;
  color: inherit;
  padding: 1.8rem 0;
  display: block;
}

.post-date {
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #e2e8f4;
  margin-bottom: 0.4rem;
}

.post-title {
  font-size: 1.2rem;
  margin-bottom: 0.4rem;
  transition: opacity 0.15s;
}

.post-excerpt {
  font-size: 0.9rem;
  color: #e2e8f4;
  line-height: 1.7;
}

.empty-state {
  font-size: 0.95rem;
  color: #e2e8f4;
  padding: 2rem 0;
}

/* ── Post view ── */
.post-back {
  display: inline-block;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #e2e8f4;
  text-decoration: none;
  margin-bottom: 2.5rem;
}

.post-back::before { content: '← '; }
.post-back:hover { color: #8b96b0; }

.post-date-full {
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #e2e8f4;
  margin-bottom: 0.6rem;
}

h1 {
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  font-weight: 400;
  line-height: 1.25;
  margin-bottom: 2.5rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid #a0a6b2;
}

.body {
  font-size: 1rem;
  line-height: 1.9;
  color: #e2e8f4;
}

/* ── Story list ── */
.story-list { list-style: none; }

.story-item { border-bottom: 1px solid #a0a6b2; }
.story-item:first-child { border-top: 1px solid #a0a6b2; }
.story-item:hover .story-title { opacity: 0.45; }

.story-item a {
  text-decoration: none;
  color: inherit;
  padding: 1.8rem 0;
  display: block;
}

.story-meta {
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}

.story-title {
  font-size: 1.2rem;
  transition: opacity 0.15s;
}

.body p + p { margin-top: 1.1em; }

.body img {
  width: 100%;
  display: block;
  margin: 2em 0;
}

/* ── Songs list ── */
.songs-list { list-style: none; }

.song-item {
  border-bottom: 1px solid #a0a6b2;
  padding: 1.8rem 0;
}

.song-item:first-child { border-top: 1px solid #a0a6b2; }

.song-title {
  font-size: 1.2rem;
  margin-bottom: 0.25rem;
}

.song-note {
  font-size: 0.9rem;
  color: #8b96b0;
  margin-bottom: 1rem;
}

.song-player {
  width: 100%;
}