/* ==========================================================================
   library.css — 雅語の図書室
   ==========================================================================

   ここに置いてあるのは他人の文章である。だから意匠の仕事は、
   飾ることではなく**邪魔をしないこと**に尽きる。決めるのは三つだけ。

     一行の長さ   和文 30〜35 字。長い小説を読み通せる幅
     行間         2.0。ルビが乗っても行がぶつからない高さ
     字の大きさ   読む人が選ぶ（.lib-body[data-size]）

   ルビは消せる。振り仮名は**読めない人には要るのに、読めるように
   なった人には邪魔になる**もので、どちらの段階の読者も同じ本文を
   読めるようにするには、消せる以外にない。消したときは行間も詰める ──
   ルビのぶんの空きが要らなくなるため（拼音の扱いと同じ。note.css §10）。
   ========================================================================== */

/* --- 棚（library/index.html） ------------------------------------------- */
.lib-index .thesis{ max-width:40em; }

.lib-shelf{
  display:flex; flex-direction:column;
  border-top:1px solid var(--lux-border);
  margin-top:var(--sp-l);
}
.lib-card{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto;
  align-items:baseline; gap:6px var(--sp-m);
  padding:var(--sp-m) 0;
  border:0; border-bottom:1px solid var(--lux-divider);
  color:inherit;
  transition:background 180ms cubic-bezier(.2,.8,.2,1);
}
@media (hover:hover){ .lib-card:hover{ background:var(--lux-bg-soft); } }
.lib-card:focus-visible{ outline:2px solid var(--lux-gold); outline-offset:-2px; }
.lib-card__no{
  font-family:var(--lux-mono); font-size:13px; letter-spacing:.18em;
  color:var(--lux-gold-deep);
}
.lib-card__title{
  display:block; font-family:var(--lux-serif);
  font-size:clamp(18px,2.4vw,22px); font-weight:400; letter-spacing:.08em;
  line-height:1.5; color:var(--lux-text);
}
.lib-card__by{
  display:block; margin-top:4px;
  font-family:var(--lux-label); font-size:10px; letter-spacing:.18em;
  color:var(--lux-gold-deep);
}
.lib-card__by .life{
  margin-left:8px; font-family:var(--lux-mono); color:var(--lux-text-muted);
  letter-spacing:.06em;
}
.lib-card__lead{
  display:block; margin-top:8px;
  font-size:13.5px; line-height:1.8; color:var(--lux-text-soft);
}
.lib-card__n{
  font-family:var(--lux-mono); font-size:10px; letter-spacing:.1em;
  color:var(--lux-text-muted); white-space:nowrap;
}
@media (max-width:560px){
  .lib-card{ grid-template-columns:auto minmax(0,1fr); }
  .lib-card__n{ grid-column:2; }
}

/* --- 一篇の頁（library/<slug>.html） ------------------------------------ */
.lib-meta{
  display:flex; flex-wrap:wrap; gap:4px var(--sp-m);
  padding-bottom:var(--sp-s); margin-bottom:var(--sp-m);
  border-bottom:1px solid var(--lux-divider);
  font-family:var(--lux-label); font-size:10px; letter-spacing:.18em;
  color:var(--lux-text-muted);
}
.lib-page .thesis{ max-width:38em; }

/* 読むための道具の帯。この頁には目次の帯が無いので、画面のいちばん上に
   貼りつく（--stick-h ぶん下げると、そこに何も無い空きができる） */
.lib-bar{
  position:sticky; top:0; z-index:30;
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  padding:8px 0; margin:var(--sp-m) 0 var(--sp-l);
  background:var(--lux-bg);
  border-top:1px solid var(--lux-border);
  border-bottom:1px solid var(--lux-border);
}
.lib-bar button{
  min-height:38px; padding:0 12px;
  font-family:var(--lux-label); font-size:9px; letter-spacing:.14em;
  text-transform:uppercase; white-space:nowrap;
  color:var(--lux-text-muted); background:transparent;
  border:1px solid var(--lux-cta-border); cursor:pointer;
}
.lib-bar button[aria-pressed="true"]{
  color:#FFFFFF; background:var(--lux-gold); border-color:var(--lux-gold);
}
.lib-bar button:focus-visible{ outline:2px solid var(--lux-gold); outline-offset:2px; }
.lib-size{ display:flex; }
.lib-size button + button{ border-left:0; }
.lib-count{
  flex:0 0 auto; margin-left:auto;
  font-family:var(--lux-mono); font-size:10px; color:var(--lux-text-muted);
}

/* --- 語注 ---------------------------------------------------------------
   本文の前に畳んで置く。読む前に開いても、読みながら戻ってきてもよい */
.lib-gloss{
  margin:0 0 var(--sp-l);
  border-top:1px solid var(--lux-border);
  border-bottom:1px solid var(--lux-border);
}
.lib-gloss > summary{
  list-style:none; cursor:pointer;
  min-height:44px; display:flex; align-items:center;
  font-family:var(--lux-label); font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--lux-gold-deep);
}
.lib-gloss > summary::-webkit-details-marker{ display:none; }
/* display を list-item から変えても Chrome は ::marker を残すので、中身を空にする。
   開閉の印（＋／−）は gago.css の `details > summary::before` が既に出している。
   ここで ::after にもう一つ足すと、両側に ＋ が並ぶ */
.lib-gloss > summary::marker{ content:""; }
.lib-gloss dl{ margin:0 0 var(--sp-m); }
.lib-gloss__row{
  display:grid; grid-template-columns:minmax(7em,auto) minmax(0,1fr);
  gap:4px var(--sp-m);
  padding:8px 0; border-top:1px solid var(--lux-divider);
}
.lib-gloss dt{
  font-family:var(--lux-serif); font-size:15px; letter-spacing:.06em;
  color:var(--lux-text);
}
.lib-gloss dt .yomi{
  display:block; margin-top:2px;
  font-family:var(--lux-mono); font-size:10px; letter-spacing:.08em;
  color:var(--lux-gold-deep);
}
.lib-gloss dd{
  margin:0; font-size:13.5px; line-height:1.85; color:var(--lux-text-soft);
}
@media (max-width:560px){
  .lib-gloss__row{ grid-template-columns:1fr; }
}

/* --- 本文 ---------------------------------------------------------------
   字の大きさは三段。--lib-fs だけを入れ替え、行送りは比で付いてくる */
.lib-body{
  --lib-fs:17px;
  max-width:34em; margin:0 auto;
  font-family:var(--lux-serif);
  font-size:var(--lib-fs); line-height:2.05; letter-spacing:.04em;
  color:var(--lux-text);
}
.lib-body[data-size="s"]{ --lib-fs:15.5px; }
.lib-body[data-size="l"]{ --lib-fs:19.5px; }
@media (min-width:900px){
  .lib-body{ --lib-fs:18px; }
  .lib-body[data-size="s"]{ --lib-fs:16.5px; }
  .lib-body[data-size="l"]{ --lib-fs:21px; }
}

/* 地の文は一字下げ、会話は下げない（日本語の組版の作法）。
   原本の全角空白は組む前に落としてあるので、下げるのはここだけの仕事 */
.lib-body p{
  margin:0 0 .2em; text-indent:1em;
}
.lib-body p.say{ text-indent:0; }
.lib-body p.lib-note{
  margin-top:2.4em; text-indent:0; text-align:right;
  font-size:.8em; color:var(--lux-text-muted); letter-spacing:.1em;
}

/* 段落のあいだを空けすぎない。小説は行が続いていくものなので、
   段ごとに空きを入れると、切れ切れの断片に見えてしまう */

.lib-body ruby{ ruby-position:over; }
.lib-body rt{
  font-family:var(--lux-serif); font-size:.46em; font-weight:400;
  letter-spacing:.02em; line-height:1.3; color:var(--lux-gold-deep);
  text-align:center;
}
/* ふりがなを消したら、行間も一緒に戻す。**札は帯のものを使う**
   ── 原本（青空文庫）のルビも、こちらで足したルビも、読み手にとっては
   同じ「ふりがな」である。頁ごとに札を増やさない（furigana.css） */
html.fg-off .lib-body rt{ display:none; }
html.fg-off .lib-body{ line-height:1.95; }

/* --- 奥付 --------------------------------------------------------------- */
.lib-colophon{
  max-width:34em; margin:var(--sp-xl) auto 0; padding-top:var(--sp-m);
  border-top:1px solid var(--lux-border);
  font-size:12.5px; line-height:1.9; color:var(--lux-text-muted);
}
.lib-colophon p{ margin:0 0 4px; }
.lib-colophon b{
  display:inline-block; min-width:3.6em;
  font-family:var(--lux-label); font-size:9px; font-weight:400;
  letter-spacing:.2em; text-transform:uppercase; color:var(--lux-gold-deep);
}
.lib-colophon__note{
  margin-top:var(--sp-s); padding-top:var(--sp-s);
  border-top:1px solid var(--lux-divider);
  font-size:12px; line-height:1.95;
}

@media print{
  .lib-bar,.lib-gloss{ display:none; }
  .lib-body{ max-width:none; }
}
