/* =========================================================
   ONE KNIGHT ONLY / 月夜のキャラクターページ
   配色は --night-* のテーマ変数から調整できます。
   ========================================================= */
body.one-knight-page {
  --night-bg: #10131d;
  --night-panel: #171b28;
  --night-panel-soft: #1b1d29;
  --night-ink: #f1eee8;
  --night-muted: #b9b8c2;
  --night-dim: #8d91a1;
  --night-line: rgb(211 206 222 / 24%);
  --night-silver: #c9c5d6;
  --night-wine: #8f5367;
  margin: 0;
  color: var(--night-ink);
  background: radial-gradient(ellipse at 50% 4%, #24273a 0, var(--night-bg) 42rem), var(--night-bg);
  font-family: "メイリオ", Meiryo, "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
}
.one-knight-page *, .one-knight-page *::before, .one-knight-page *::after { box-sizing: border-box; }
.one-knight-page img { max-width: 100%; }
.one-knight-page a { color: inherit; }
.one-knight-page a:focus-visible { outline: 2px solid #e0d9ef; outline-offset: 4px; }
.one-knight-page .skip-link { position: absolute; z-index: 20; top: -60px; left: 12px; padding: 9px 13px; color: #171824; background: #f4efff; }
.one-knight-page .skip-link:focus { top: 12px; }
.one-knight-page .eyebrow { margin: 0 0 8px; color: #c3b8d3; font: 700 9px/1.5 Georgia, serif; letter-spacing: .24em; }
.one-knight-page .hero { overflow: hidden; border-bottom: 1px solid rgb(222 217 235 / 35%); background: #090b12; }
.one-knight-page .hero img { display: block; width: 100%; height: auto; }
.one-knight-page .title-under-hero { position: relative; width: min(860px, calc(100% - 44px)); margin: 25px auto 0; padding: 0 0 19px; border-bottom: 1px solid var(--night-line); text-align: center; }
.one-knight-page .title-under-hero::before, .one-knight-page .title-under-hero::after { position: absolute; top: 50%; width: 5px; height: 5px; border: 1px solid #aaa5b9; content: ""; transform: rotate(45deg); }
.one-knight-page .title-under-hero::before { left: 0; }.one-knight-page .title-under-hero::after { right: 0; }
.one-knight-page .title-under-hero h1 { margin: 0; color: #f0edf3; font: 500 clamp(22px, 3.1vw, 35px)/1.5 Georgia, "Times New Roman", serif; letter-spacing: .16em; }
.one-knight-page .title-under-hero .subtitle { margin: 1px 0 3px; color: #c9bdcf; font: 500 clamp(12px, 1.5vw, 15px)/1.5 Georgia, "Times New Roman", serif; letter-spacing: .28em; }
.one-knight-page .title-under-hero > p:last-child { margin: 5px 0 0; color: var(--night-muted); font-size: 10px; letter-spacing: .14em; }
.one-knight-page .story-intro { position: relative; width: min(820px, calc(100% - 48px)); margin: 53px auto 64px; padding: 0 26px 36px; border-bottom: 1px solid var(--night-line); text-align: center; }
.one-knight-page .moon-mark { margin-bottom: 2px; color: #e0d5ec; font: 48px/1 Georgia, serif; }
.one-knight-page .story-intro .eyebrow { margin-top: 8px; }
.one-knight-page .story-intro h2 { margin: 0; color: #ece7f0; font: 500 clamp(19px, 2.7vw, 27px)/1.7 "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif; letter-spacing: .12em; }
.one-knight-page .story-intro > p:last-child { margin: 13px 0 0; color: var(--night-muted); font-size: 12px; line-height: 2.15; letter-spacing: .04em; }
.one-knight-page .characters { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding-bottom: 16px; }
.one-knight-page .section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin: 0 0 24px; padding-bottom: 13px; border-bottom: 1px solid #8a768e; }
.one-knight-page .section-heading .eyebrow { margin-bottom: 2px; }
.one-knight-page .section-heading h2 { margin: 0; color: var(--night-ink); font: 500 26px/1.5 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .12em; }
.one-knight-page .section-heading > p { margin: 0 0 2px; color: var(--night-muted); text-align: right; font-size: 10px; line-height: 1.8; }
.one-knight-page .character-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.one-knight-page .character-card { min-width: 0; overflow: hidden; border: 1px solid var(--night-line); background: linear-gradient(155deg, rgb(38 39 55 / 72%), rgb(20 23 34 / 94%) 50%); }
.one-knight-page .portrait { position: relative; overflow: hidden; aspect-ratio: 4 / 4.55; background: #202333; }
.one-knight-page .portrait::after { position: absolute; inset: 0; border: 1px solid rgb(229 222 236 / 12%); content: ""; pointer-events: none; }
.one-knight-page .portrait img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.82); }
.one-knight-page .number { position: absolute; right: 11px; bottom: 8px; color: #f2edf7; font: 18px/1 Georgia, serif; letter-spacing: .05em; text-shadow: 0 1px 8px #10111a; }
.one-knight-page .character-copy { padding: 16px 17px 18px; }
.one-knight-page .character-label { min-height: 14px; margin: 0 0 5px; color: #c5b6ce; font: 700 8px/1.5 Georgia, serif; letter-spacing: .14em; }
.one-knight-page .character-copy h3 { margin: 0; color: #f5f0ec; font: 500 21px/1.5 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .08em; }
.one-knight-page .reading { margin: 1px 0 0; color: var(--night-dim); font-size: 10px; letter-spacing: .04em; }
.one-knight-page .quote { margin: 12px 0 13px; padding: 0 0 10px; border-bottom: 1px solid var(--night-line); color: #e2d8e2; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 12px; line-height: 1.8; }
.one-knight-page .profile { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 12px; margin: 0 0 13px; }
.one-knight-page .profile div { display: flex; gap: 7px; align-items: baseline; font-size: 10px; }
.one-knight-page .profile dt { flex: 0 0 auto; color: #a7a3b3; }
.one-knight-page .profile dd { margin: 0; color: #f0ebf0; }
.one-knight-page .bio { margin: 0; color: #c3c2cc; font-size: 11px; line-height: 1.95; }
.one-knight-page .work-note { width: min(1180px, calc(100% - 48px)); margin: 12px auto 0; color: var(--night-dim); font-size: 10px; }
.one-knight-page .site-footer { margin-top: 45px; padding: 23px 20px 26px; border-top: 1px solid var(--night-line); background: #0b0d14; text-align: center; }
.one-knight-page .back-home { color: #d1c8db; font: 10px/1.6 Georgia, serif; letter-spacing: .12em; text-decoration: none; }
.one-knight-page .site-footer p { margin: 11px 0 0; color: #777b8a; font-size: 9px; letter-spacing: .08em; }
@media (max-width: 900px) { .one-knight-page .character-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; } }
@media (max-width: 600px) {
  .one-knight-page .title-under-hero { margin-top: 20px; }
  .one-knight-page .story-intro { margin: 38px auto 46px; padding: 0 4px 27px; }
  .one-knight-page .characters { width: min(100% - 28px, 460px); }
  .one-knight-page .section-heading { align-items: center; }
  .one-knight-page .section-heading h2 { font-size: 22px; }
  .one-knight-page .section-heading > p { font-size: 9px; }
  .one-knight-page .character-grid { grid-template-columns: 1fr; gap: 13px; }
  .one-knight-page .character-card { display: grid; grid-template-columns: minmax(112px, .78fr) minmax(0, 1.22fr); }
  .one-knight-page .portrait { height: 100%; min-height: 250px; aspect-ratio: auto; }
  .one-knight-page .character-copy { padding: 12px 12px 14px; }
  .one-knight-page .character-copy h3 { font-size: 18px; }
  .one-knight-page .character-label { font-size: 7px; letter-spacing: .1em; }
  .one-knight-page .quote { margin: 8px 0 9px; font-size: 11px; }
  .one-knight-page .bio { font-size: 10px; }
  .one-knight-page .profile { gap: 3px 7px; }
  .one-knight-page .profile div { gap: 5px; font-size: 9px; }
  .one-knight-page .work-note { width: calc(100% - 28px); font-size: 9px; }
}
@media (max-width: 360px) { .one-knight-page .character-card { grid-template-columns: 100px minmax(0, 1fr); }.one-knight-page .portrait { min-height: 275px; } }
