/* BIOGRAPHYだけに適用。情報はdata/site.jsonのbiographyで管理。 */
.biography-page {
  --color-bg: #101112;
  --color-text: #efede7;
  --color-muted: #aaa9a5;
  --color-line: #343638;
  --color-surface: #191b1d;
  --content-width: 1200px;
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}
.biography-page a { transition: color .3s ease, opacity .3s ease; }
.biography-page a:hover { color: #fff; }
.biography-page :focus-visible { outline-color: #e7dfc9; }
.biography-page .skip-link { color: #111; }
.biography-page .site-header { background: #101112f2; border-color: #ffffff16; }
.biography-page .nav-list a { font-size: .75rem; font-weight: 400; letter-spacing: .1em; }
.biography-page .menu-toggle { color: var(--color-text); background: transparent; }
.biography-page .breadcrumb { color: var(--color-muted); font-size: .75rem; letter-spacing: .1em; margin-bottom: 48px; }
.biography-page h1, .biography-page h2 { font-family: 'Bodoni MT', Didot, 'Times New Roman', serif; font-weight: 400; letter-spacing: -.045em; }
.biography-page h1 { font-size: clamp(2.7rem, 7.5vw, 6.5rem); line-height: 1.1; margin-bottom: 48px; }
.biography-photo { display: block; width: 100%; height: auto; }
.biography-section { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; margin-top: clamp(56px, 8vw, 112px); padding-top: 40px; border-top: 1px solid var(--color-line); }
.biography-page h2 { font-size: clamp(2.25rem, 4vw, 3.75rem); line-height: 1.1; margin: 0; }
.band-profile { max-width: 760px; font-size: 1rem; font-weight: 300; line-height: 2.25; }
.band-profile p { margin-bottom: 14px; }
.band-profile p:last-child { margin-bottom: 0; }
.members-section { grid-template-columns: 1fr; gap: 48px; }
.member-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.member { border-top: 1px solid var(--color-line); padding-top: 28px; min-width: 0; }
.member h3 { font-size: clamp(1.125rem, 1.8vw, 1.5rem); font-weight: 400; margin-bottom: 8px; }
.member-part { font-size: .875rem; color: var(--color-muted); letter-spacing: .06em; margin-bottom: 28px; }
.member-socials { display: flex; flex-wrap: wrap; gap: 20px; font-size: .875rem; letter-spacing: .04em; }
.member-socials a { text-decoration-color: #777a78; }
.biography-page .page { padding-bottom: clamp(72px, 9vw, 128px); }
.biography-page .site-footer { background: #0b0c0d; border-top: 1px solid #292b2d; }
.biography-page .footer-nav { font-size: .75rem; letter-spacing: .08em; }
.biography-page .social-area p, .biography-page .copyright { color: var(--color-muted); }
@media (max-width: 899px) {
  .biography-section { grid-template-columns: 1fr; gap: 28px; }
  .member-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
}
@media (max-width: 479px) {
  .biography-page .breadcrumb { margin-bottom: 32px; }
  .biography-page h1 { margin-bottom: 32px; }
  .biography-section { padding-top: 28px; }
  .member-grid { grid-template-columns: 1fr; gap: 32px; }
}
@media (prefers-reduced-motion: reduce) { .biography-page a { transition: none; } }

/* 任意の個人写真がある場合だけ適用。写真なしの余白は追加しない。 */
.member-photo { display:block; width:100%; height:auto; margin-bottom:20px; }
