html { font-size: 16px; }

* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif; background: #fff; color: #222; font-size: 16px; line-height: 1.5; }

/* サイト全体のラッパー */
.site-wrapper { max-width: calc(860px + 4rem); }

/* ヘッダー */
header { padding: 1.5rem 2rem 1rem; border-bottom: 1px solid #e0e0e0; }
.header-inner { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.header-left { flex: 1; }
.header-right { display: flex; gap: 1rem; align-items: center; padding-top: 0.2rem; flex-shrink: 0; }
.header-right a { font-size: 0.8rem; color: #666; text-decoration: none; }
.header-right a:hover { color: #222; }

header h1 { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.3rem; }
header h1 a { color: #222; text-decoration: none; }
.header-desc { font-size: 0.85rem; color: #666; margin-bottom: 0.5rem; max-width: 480px; }

/* SNSリンク */
.social-links { display: flex; gap: 0.3rem; align-items: center; margin-top: 0.4rem; }
.social-label { color: #666; font-size: 0.85rem; margin-right: 0.2rem; }
.social-links a { color: #222; text-decoration: none; font-size: 0.85rem; font-weight: 700; }
.social-links a:hover { text-decoration: underline; }
.social-sep { color: #ccc; font-size: 0.85rem; }

/* フィルター */
.filters { padding: 1rem 2rem; display: flex; flex-direction: column; gap: 0.5rem; }
.filter-group { display: flex; flex-wrap: nowrap; gap: 0.4rem; align-items: flex-start; }
.filter-label { font-size: 0.75rem; color: #999; margin-right: 0.25rem; flex-shrink: 0; padding-top: 0.25rem; }
.filter-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }

.tag {
  font-size: 0.75rem; padding: 0.2rem 0.6rem;
  border: 1px solid #ccc; border-radius: 2px;
  background: #fff; color: #444; cursor: pointer;
  transition: all 0.15s; text-decoration: none;
  display: inline-block;
}
.tag:hover { background: #222; color: #fff; border-color: #222; }
.tag.active { background: #222; color: #fff; border-color: #222; }

/* メイン */
main { padding: 1.5rem 2rem; }

/* 年グループ */
.year-group { margin-bottom: 2rem; }
.year-heading {
  font-size: 0.75rem; font-weight: 700;
  color: #999; letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid #e0e0e0;
}

/* 記事行 */
.article-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 0.18rem 0;
}
.article-left {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  flex: 1;
  min-width: 0;
}
.article-date {
  font-size: 0.75rem;
  color: #aaa;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.article-left::before {
  content: '–';
  color: #ccc;
  font-size: 0.8rem;
  flex-shrink: 0;
}
.article-title {
  font-size: 0.85rem; color: #222;
  text-decoration: none;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.article-title:hover { color: #0066cc; text-decoration: underline; }

.article-pub {
  font-size: 0.72rem;
  color: #aaa;
  flex-shrink: 0;
  text-align: right;
  max-width: none;
  white-space: nowrap;
}

/* もっと見るボタン */
.show-more-wrap { padding: 1rem 0 2rem; }
.show-more-btn {
  font-family: inherit;
  font-size: 0.75rem; padding: 0.2rem 0.6rem;
  border: 1px solid #ccc; border-radius: 2px;
  background: #fff; color: #444; cursor: pointer;
  transition: all 0.15s;
}
.show-more-btn:hover { background: #222; color: #fff; border-color: #222; }

.hidden { display: none !important; }

/* プロフィールページ */
.profile-body { max-width: 640px; }
.profile-body p { font-size: 0.9rem; line-height: 1.8; margin-bottom: 1rem; color: #333; }
.profile-body ul { margin: 0.5rem 0 1rem 1.2rem; }
.profile-body li { font-size: 0.9rem; line-height: 1.8; }
.profile-body a { color: #0066cc; }
.profile-body a:hover { text-decoration: underline; }

/* フッター */
footer { padding: 1.5rem 2rem; border-top: 1px solid #e0e0e0; margin-top: 2rem; }
footer p { font-size: 0.75rem; color: #999; }

/* レスポンシブ */
@media (max-width: 768px) {
  .filters { padding: 1rem; }
  main { padding: 1rem; }
  header { padding: 1rem; }
  .header-inner { flex-direction: column; }
  .header-right { padding-top: 0; }
  .article-pub { display: none; }
}


.single-title { font-size: 0.85rem; color: #999; margin-bottom: 1.5rem; }
.single-content { font-size: 0.85rem; line-height: 1.8; }

.single-content p { margin-bottom: 1rem; }