/* =============================================================================
   NOMISMA SCHOLA — Academic Design System（Zenith Numismatics）
   正本: workspace/current/nomisma-redesign/stitch/…/zenith_numismatics/DESIGN.md

   ⚠ この学校には二つの面がある。混ぜない。
     ① 学校の面（この CSS）… 明色。Academic White の紙に、Navy の構造と Gold の印。
        大学のサイトとして「何が学べるか・誰が教えるか・どう入るか」を明快に示す面。
     ② 旅の面（style.css / app.js のツアー）… 暗色。情景に没入させる面。
     境界は「ヒーローの全面画像」。学校の頁でも、旅の絵は全幅の暗い帯として現れる。

   ⚠ ミニマルにしすぎない（[[feedback_luxury_design_pattern]]）。
     余白は広く取るが、罫・見出しの重さ・番号・ラベルの階層は残す。図録の重量感を保つ。
   ========================================================================== */

/* ⚠⚠ 変数は `:root` でなく `.ac` に置く（2026-08-01）。
   入口（index.html）は style.css も読む。style.css の `:root` は**同じ名前**の変数を
   墨地の値で持っている（--paper #17130d / --ink #ece3d0 / --gold / --rule / --ink-mid …）。
   ここを `:root` にすると、あとから読み込んだ側が学びの画面ぜんぶを塗り替えてしまう。
   `.ac` に置けば、学校の面（server は <body class="ac">／入口は <div class="ac">）の
   中だけで効き、外の墨地は一切動かない。 */
.ac {
  /* ── 色 ─────────────────────────────────────────────
     Navy=構造と信頼／Gold=行動と達成／White=紙／Parchment=読む面／Ink=文字 */
  --navy: #0A1F44;
  --navy-deep: #00081E;
  --navy-soft: #34466D;
  --navy-mist: #D9E2FF;
  --gold: #C5A059;
  --gold-deep: #775A19;
  --gold-pale: #FED488;
  --paper: #F8F9FA;
  --paper-white: #FFFFFF;
  --parchment: #F4F1E9;
  --ink: #191C1D;
  --ink-mid: #44464E;
  /* ⚠ 旧 #75777F は白4.47・淡灰4.24・羊皮3.96 で三地とも AA 未達だった（実測）。
     #515359 は 7.69 / 7.29 / 6.81 ＝ AAA 7:1 を満たす */
  --ink-faint: #515359;
  --rule: #E1E3E4;
  --rule-strong: #C5C6CF;
  --ink-black: #11100D;

  /* ── 字 ───────────────────────────────────────────── */
  --serif: 'Shippori Mincho', 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  --sans: 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif;
  --mono: 'Hanken Grotesk', 'Roboto Mono', ui-monospace, monospace;

  /* ── 間 ───────────────────────────────────────────── */
  --container: 1280px;
  --gutter: 24px;
  --margin-desktop: 64px;
  --margin-mobile: 16px;
  --section-gap: 120px;

  /* ── 形 ───────────────────────────────────────────── */
  --r: 4px;
  --r-lg: 8px;
  --shadow-float: 0 8px 40px rgba(10, 31, 68, .07);

  /* ── 基層 ─────────────────────────────────────────────
     ⚠ 変数と基層を一つの `.ac` にまとめてある。二つに割ると
        「同じ名前が二用途」の芽になる（tools/css_lint.py が見ている）。 */
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  /* ⚠ 入口では body（style.css）の字間 .02em が降りてくる。学校の面は字間を持たない */
  letter-spacing: normal;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

/* =============================================================================
   基層
   ========================================================================== */
.ac, .ac * { box-sizing: border-box; }
.ac img { max-width: 100%; display: block; }
/* ⚠ 素の <a> だけを継承色にする。class を持つ部品（釦・札・行）の色指定に勝たせない。
   実測で発覚: `.ac a`(0,2,0) が `.ac-head-cta`(0,1,0) を上書きし、紺地の釦の文字が墨色になっていた。 */
/* ⚠⚠ 詳細度の事故（2026-08-01 実測）: この規則(0,2,2)が `.ac-tabs a[aria-current]`(0,2,1) に勝ち、
   **紺地の札の文字を墨に戻して**いた（比 1.05＝読めない）。札の <a> は class を持たないので、
   「素のリンク」と見分けがつかなかった。器の中を除外する。 */
.ac main a:not([class]):not(.ac-tabs a):not(.ac-drop-panel a) { color: inherit; }

/* 内容の器。⚠ 頁の幅はここだけで決める（節ごとに違う幅を作らない） */
.ac-wrap {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--margin-mobile);
}
@media (min-width: 900px) { .ac-wrap { padding: 0 var(--margin-desktop); } }

/* 節。⚠ 余白は 120px を基準に、詰める時だけ縮める（広げない） */
.ac-sec { padding: 72px 0; }
@media (min-width: 900px) { .ac-sec { padding: var(--section-gap) 0; } }
.ac-sec--tight { padding: 56px 0; }
@media (min-width: 900px) { .ac-sec--tight { padding: 80px 0; } }
.ac-sec--paper { background: var(--paper-white); }
.ac-sec--parch { background: var(--parchment); }
.ac-sec--navy { background: var(--navy); color: #fff; }
.ac-sec--navy .ac-lede, .ac-sec--navy .ac-h2-sub { color: rgba(255,255,255,.78); }

/* =============================================================================
   字の階層 — 見出しは明朝（学校の声）／機能は角ゴシック
   ========================================================================== */
.ac-display {
  font-family: var(--serif); font-weight: 700; font-size: 34px;
  line-height: 1.24; letter-spacing: -0.01em; margin: 0;
}
@media (min-width: 900px) { .ac-display { font-size: 64px; line-height: 1.1; letter-spacing: -0.02em; } }

/* ⚠ 素の h1/h2 に style.css が字間と罫を当てている（入口だけ両方読む）。
   ここで打ち消す。server の頁では元から無いので、見た目は一切変わらない。 */
.ac-h1 { font-family: var(--serif); font-weight: 600; font-size: 30px; line-height: 1.25; margin: 0;
  letter-spacing: normal; border: 0; padding: 0; }
@media (min-width: 900px) { .ac-h1 { font-size: 48px; line-height: 1.2; } }

.ac-h2 { font-family: var(--serif); font-weight: 600; font-size: 26px; line-height: 1.3; margin: 0;
  letter-spacing: normal; border: 0; padding: 0; }
@media (min-width: 900px) { .ac-h2 { font-size: 40px; } }

.ac-h3 { font-family: var(--serif); font-weight: 500; font-size: 20px; line-height: 1.4; margin: 0;
  letter-spacing: normal; border: 0; padding: 0; }
@media (min-width: 900px) { .ac-h3 { font-size: 26px; line-height: 1.35; } }

.ac-h4 { font-family: var(--sans); font-weight: 700; font-size: 17px; line-height: 1.5; margin: 0; }

/* 節の肩ラベル。⚠ 大文字＋字送りで、本文と役割を分ける */
/* ⚠⚠ 金は「紙の上の文字」に使わない（2026-08-01 実測で是正）。
   墨地では #C5A059 が映えたが、紙地（#F8F9FA）では**コントラスト比 2.33**＝読めない。
   黒地から紙地へ移したとき、金だけ黒地時代の値のまま残っていた（実測で 57 件の文字が該当）。
   → **文字には --gold-deep(#775A19・比 6.11)／罫・枠・下線には --gold** と役割で分ける。
   ⚠ 暗い地（.ac-sec--navy / .ac-hero / .watch）の上では従来どおり --gold でよい。 */
.ac-label {
  font-family: var(--mono); font-size: 12px; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--gold-deep);
  margin: 0 0 14px; display: block;
}
.ac-sec--navy .ac-label { color: var(--gold); }
.ac-label--ja { font-family: var(--sans); letter-spacing: .28em; text-transform: none; }

/* ⚠ 行長は文字数で決まる。max-width が無いと 1440px 幅で 64字/行になっていた（参照実測 33〜40字） */
.ac-lede { font-size: 17px; line-height: 1.9; color: var(--ink-mid); margin: 18px 0 0; max-width: 640px; }
@media (min-width: 900px) { .ac-lede { font-size: 18px; line-height: 1.8; } }
.ac-body { font-size: 16px; line-height: 1.9; color: var(--ink-mid); margin: 0 0 1.1em; }
.ac-small { font-size: 15px; line-height: 1.8; color: var(--ink-faint); }

/* 節の頭（ラベル＋見出し＋説明）。中央寄せと左寄せの二型 */
.ac-head { margin-bottom: 44px; }
@media (min-width: 900px) { .ac-head { margin-bottom: 64px; } }
.ac-head--mid { text-align: center; max-width: 780px; margin-left: auto; margin-right: auto; }
.ac-head--mid .ac-lede { margin-left: auto; margin-right: auto; }
.ac-rule-mid { width: 40px; height: 1px; background: var(--gold); margin: 22px auto 0; }

/* =============================================================================
   釦 — Primary=Navy／Secondary=枠だけ／Ghost=金の文字
   ========================================================================== */
.ac-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  font-family: var(--sans); font-size: 14px; font-weight: 700; letter-spacing: .06em;
  padding: 15px 30px; border-radius: var(--r); text-decoration: none;
  border: 1px solid transparent; cursor: pointer; transition: .18s ease;
  min-height: 48px; /* ⚠ 触れる高さ。SP で 44px を下回らせない */
}
.ac-btn--primary { background: var(--navy); color: #fff; }
.ac-btn--primary:hover { background: var(--navy-deep); }
/* ⚠ 金は「入学」という一語にだけ使う（グロービス実測の規律: アクセント色を一語に閉じる）。
   回遊・参照・記事への導線は primary(紺) か outline に落とす。
   色を語彙にすると、無料側を読んでいる人が「次に押すもの」を毎回同じ形で見つけられる。 */
.ac-btn--gold { background: var(--gold); color: var(--ink-black); }
.ac-btn--gold:hover { background: #b28f47; }
.ac-btn--outline { background: transparent; color: var(--navy); border-color: var(--navy); }
.ac-btn--outline:hover { background: var(--navy); color: #fff; }
/* ⚠⚠ 暗い地の上では枠釦を白に起こす。紺のままだと地に沈んで**見えない**。
   実測 2026-08-01: `.ac-cta`（紺の帯）は `.ac-sec--navy` を持たないため、
   /gakubu /kyoin /teikei /nyugaku の頁末 CTA で第3段の釦が丸ごと消えていた
   （「第一章を観る」しか見えず、隣の「入学案内を見る」が紺地に紺で描かれていた）。
   入口のヒーローでも同じことが起きた。地が暗い三つの器をまとめて起こす。 */
.ac-sec--navy .ac-btn--outline,
.ac-cta .ac-btn--outline,
.ac-hero .ac-btn--outline { color: #fff; border-color: rgba(255,255,255,.5); }
.ac-sec--navy .ac-btn--outline:hover,
.ac-cta .ac-btn--outline:hover,
.ac-hero .ac-btn--outline:hover { background: #fff; color: var(--navy); }
.ac-btn--ghost { padding: 0; min-height: 0; color: var(--gold-deep); border: 0; background: none; }
/* ⚠ 札の足に置いた細い導線は、読み物の中の字ではなく「押す場所」である。
   実測 2026-08-01: 窓口の盤（/teikei）の 8 本が高さ 22px で、SP の 44px を下回っていた。
   字の体裁（余白なし・金の文字）は変えず、当たりだけ広げる。 */
.ac-card-foot .ac-btn--ghost { min-height: 44px; }
.ac-btn--ghost::after { content: '→'; transition: transform .18s ease; }
.ac-btn--ghost:hover::after { transform: translateX(4px); }
.ac-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
/* ⚠ SP では釦を全幅にする。幅の違う釦を縦に積むと縁がぎざぎざになり、
   どちらが主かも読めなくなる（実測: 金196px と 枠155px が段違いに並んでいた）。 */
@media (max-width: 699px) { .ac-btns > .ac-btn { width: 100%; } }

/* =============================================================================
   札（カード）— 白地・1px の細い枠・影は使わない
   ========================================================================== */
.ac-card {
  background: var(--paper-white); border: 1px solid var(--rule);
  border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column;
  text-decoration: none; color: inherit; transition: .2s ease;
}
a.ac-card:hover { border-color: var(--gold); transform: translateY(-2px); }
.ac-card-fig { aspect-ratio: 16 / 10; background: var(--rule); overflow: hidden; }
.ac-card-fig img { width: 100%; height: 100%; object-fit: cover; }
.ac-card-in { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.ac-card-in > :last-child { margin-bottom: 0; }
.ac-card-meta {
  font-family: var(--mono); font-size: 13px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gold-deep); margin-bottom: 10px;
}
.ac-card-desc { font-size: 17px; line-height: 1.85; color: var(--ink-mid); margin: 10px 0 0; }
/* 問いから科目への道。⚠ 六つの問いは、この学校の憲法にあたる部分。
   道が無いと「問い02に答えるにはどの科目か」が読者に分からず、問いが飾りで終わる。 */
.ac-gain-route { display: flex; flex-direction: column; gap: 6px; }
.ac-gain-route a {
  font-family: var(--mono); font-size: 12px; letter-spacing: .04em;
  color: var(--gold-deep); text-decoration: none; padding: 4px 0;
}
.ac-gain-route a:hover { color: var(--navy); text-decoration: underline; }
.ac-card-foot {
  margin-top: auto; padding-top: 18px; font-family: var(--mono); font-size: 13px;
  letter-spacing: .1em; color: var(--ink-faint);
}

/* 格子。⚠ SP は必ず1列に落とす */
.ac-grid { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 700px) { .ac-grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) {
  .ac-grid { gap: var(--gutter); }
  .ac-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .ac-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 700px) and (max-width: 899px) {
  .ac-grid--3, .ac-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

/* =============================================================================
   科目の一覧（/kamoku）
   ⚠⚠ 2026-08-01 に作り直した（オーナー指摘「文章がずらっと並んで難しそう」）。
      それまで図版 0 枚の箇条書きで、学校の中（図版 44 枚の札）と食い違っていた。
   ⚠ 符号（E1・B03）は内輪の記号なので、題より小さく・題の上に置く。
      符号を先頭に大きく出すと、頁が講義要綱の PDF に見える。
   ========================================================================== */
.ac-axismap { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 0 0 48px; }
@media (min-width: 700px) { .ac-axismap { grid-template-columns: repeat(4, 1fr); } }
.ac-axismap a {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
  padding: 14px 16px; border: 1px solid var(--rule); border-radius: var(--r);
  text-decoration: none; color: var(--ink); background: var(--paper-white); transition: .2s ease;
}
.ac-axismap a:hover { border-color: var(--gold); }
.ac-axismap b { font-weight: 600; font-size: 15px; }
.ac-axismap small { font-family: var(--mono); font-size: 13px; color: var(--ink-faint); }

.ac-axis { margin: 0 0 56px; scroll-margin-top: calc(var(--head-top-h) + var(--head-main-h) + 16px); }
.ac-axis > h2 { display: flex; align-items: baseline; gap: 12px; margin-bottom: 6px; }
.ac-axis > h2 > small { font-family: var(--mono); font-size: 14px; color: var(--ink-faint); font-weight: 400; }
.ac-axis-lede { color: var(--ink-mid); margin: 0 0 24px; max-width: 62ch; }

/* 科目の札。⚠ a 要素の中なので中身は span（p や h3 を入れると入れ子が不正になる） */
a.ac-course { display: flex; flex-direction: column; }
.ac-course .ac-card-fig { position: relative; }
.ac-course .ac-card-in { padding: 18px 20px 20px; }
.ac-course .ac-card-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
/* ⚠ 節数は折り返させない。学問の名が長いと（出土銭の読み方）「8／節」に割れていた（実測） */
.ac-course-n {
  font-weight: 400; letter-spacing: .06em; color: var(--ink-faint); text-transform: none;
  white-space: nowrap; flex: 0 0 auto;
}
/* 学問の名（史料批判・図像学…）。⚠ 捨てずに符号の隣に置く — 名前を教えるのも授業のうち。
   ただし見出しにはしない（読者はまだ学んでいないので、名前が先だと意味が渡らない） */
.ac-course-field {
  font-family: var(--sans); font-weight: 500; letter-spacing: .02em;
  text-transform: none; color: var(--ink-mid); margin-left: 8px;
}
.ac-course-field::before { content: '／'; color: var(--rule); margin-right: 8px; }
.ac-course-t {
  display: block; font-family: var(--serif); font-size: 21px; line-height: 1.5;
  font-weight: 600; color: var(--ink);
}
.ac-course .ac-card-desc { font-size: 15px; line-height: 1.75; margin-top: 8px; }
/* 実物のコインを情景の上に丸く添える。⚠ コインは標本、情景は場面。役割が違うので見せ方も分ける
   ⚠⚠ セレクタを `.ac-card-fig img.ac-card-plate` まで上げること（実測 2026-08-01）。
      `.ac-card-plate` 単独（0,1,0）は既存の `.ac-card-fig img`（0,1,1）に負け、
      width:100% が効いて**丸い実物が枠いっぱいに膨らみ、情景を覆っていた**。 */
.ac-card-fig img.ac-card-plate {
  position: absolute; right: 12px; bottom: 12px; width: 64px; height: 64px;
  object-fit: contain; border-radius: 50%; padding: 7px;
  background: rgba(255, 255, 255, .93); border: 1px solid rgba(0, 0, 0, .12);
}

/* 入口の一枚。⚠ 横並びにして、他の札より一段大きく見せる（ここから始まると分かるように） */
.ac-entry { margin: 0 0 56px; }
.ac-entry > h2 { margin-bottom: 16px; }
@media (min-width: 700px) {
  a.ac-entry-card { flex-direction: row; }
  .ac-entry-card .ac-card-fig { flex: 0 0 44%; aspect-ratio: auto; }
  .ac-entry-card .ac-card-in { padding: 28px 32px; justify-content: center; }
  .ac-entry-card .ac-course-t { font-size: 26px; }
}
.ac-tag-free {
  font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .08em;
  text-transform: none; color: var(--paper-white); background: var(--navy);
  padding: 3px 10px; border-radius: 999px;
}

/* =============================================================================
   実物の盤（/jitsubutsu）
   ⚠⚠ 2026-08-01。この頁は「すべて実物の写真です」と宣言しながら、217 種の一覧に
      **写真が一枚も無かった**。頁が自分の宣言と矛盾していた。
   ⚠ コインは透過 PNG なので、枠で囲わず紙の上に置く（標本の盤の見立て）。
      札の意匠（.ac-card）を流用しない — コインは「もの」で、科目は「入口」。役割が違う。
   ========================================================================== */
.ac-tray { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 4px; }
@media (min-width: 560px) { .ac-tray { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .ac-tray { grid-template-columns: repeat(5, 1fr); } }
.ac-spec {
  display: block; text-align: center; text-decoration: none; color: inherit;
  padding: 14px 8px 18px; border-radius: var(--r); transition: .2s ease;
}
.ac-spec:hover { background: var(--paper-white); }
.ac-spec-fig {
  display: flex; align-items: center; justify-content: center;
  height: 108px; margin-bottom: 10px;
}
.ac-spec-fig img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ac-spec b { display: block; font-size: 14px; font-weight: 600; line-height: 1.5; color: var(--ink); }
.ac-spec small { display: block; margin-top: 3px; font-size: 12px; color: var(--ink-faint); }
.ac-spec:hover b { color: var(--navy); }

/* 制作中。⚠ 隠さない — 隠すと軸の全体像（何が来るか）が読者に見えない。
   ⚠ その軸の中に置く（末尾にまとめない）。開けない札なので、枠は破線で開いていないことを示す */
.ac-course-pending { border-style: dashed; background: transparent; }
/* ⚠ 情景は薄く出す。図版だけ空の札は「壊れた画像」に見え、「これから来る科目」には読めない */
.ac-course-pending .ac-card-fig { background: var(--rule); }
.ac-course-pending .ac-card-fig img { filter: grayscale(.75); opacity: .45; }
.ac-course-pending .ac-course-t { color: var(--ink-mid); }
.ac-course-pending .ac-card-meta { color: var(--ink-faint); }

/* =============================================================================
   数字の帯 — 実データだけを出す。⚠ 出典のない数字を置かない
   ========================================================================== */
.ac-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
@media (min-width: 700px) { .ac-stats--4 { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 900px) { .ac-stats--3 { grid-template-columns: repeat(3, 1fr); } }
.ac-stat { background: var(--paper-white); padding: 28px 18px; text-align: center; }
.ac-sec--navy .ac-stats { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.14); }
.ac-sec--navy .ac-stat { background: var(--navy); }
.ac-stat-n { font-family: var(--mono); font-size: 34px; font-weight: 500; line-height: 1; color: var(--navy); letter-spacing: -.01em; }
.ac-sec--navy .ac-stat-n { color: #fff; }
@media (min-width: 900px) { .ac-stat-n { font-size: 44px; } }
.ac-stat-l { font-family: var(--sans); font-size: 12px; letter-spacing: .12em; color: var(--gold-deep); margin-top: 10px; }
.ac-sec--navy .ac-stat-l { color: var(--gold); }
/* 数が「その教材そのもの」へ行ける場合だけ、枡をリンクにする。
   ⚠ 入口では、この枡が五つの様式（観る・学ぶ・実物・引く）への見える導線を兼ねる。 */
a.ac-stat { display: block; text-decoration: none; color: inherit; transition: .2s ease; }
a.ac-stat:hover { background: var(--parchment); }
.ac-sec--navy a.ac-stat:hover { background: var(--navy-soft); }

/* =============================================================================
   ヒーロー — 全幅の暗い帯。旅の絵をここで見せる（学校の面と旅の面の境）
   ========================================================================== */
.ac-hero { position: relative; background: var(--ink-black); color: #fff; overflow: hidden; }
.ac-hero-bg { position: absolute; inset: 0; }
.ac-hero-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.ac-hero-bg::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(10,31,68,.92) 0%, rgba(10,31,68,.62) 46%, rgba(17,16,13,.34) 100%);
}
.ac-hero-in { position: relative; padding: 96px 0 84px; }
@media (min-width: 900px) { .ac-hero-in { padding: 152px 0 132px; max-width: 780px; } }
.ac-hero .ac-label { color: var(--gold); }
.ac-hero .ac-lede { color: rgba(255,255,255,.86); }
.ac-hero-sub { font-family: var(--serif); font-weight: 400; color: var(--gold); }

/* 頁の頭（下層。ヒーローより浅い帯） */
/* ⚠ --head-img は頁ごとに inline で差し込む（server/lib/acshell.js の pagehead）。
   既定を none で宣言しておく。宣言が無いと css_lint が「定義の無い変数」として落とすし、
   img を渡し忘れた頁で背景の指定そのものが壊れる。 */
.ac-pagehead { --head-img: none; background: var(--navy); color: #fff; padding: 56px 0 48px; }
/* 情景を敷いた頭。⚠ 帳は必ず残す（写真の明るさが頁ごとに違うので、無いと見出しの
   読みやすさが頁ごとにばらつく）。左は濃く、右へ抜いて写真を見せる。
   ⚠ SP は横幅が無いので上下方向に抜く（横方向だと写真がほとんど見えない）。 */
.ac-pagehead.has-scene {
  background-image: linear-gradient(90deg, rgba(10,31,68,.96) 42%, rgba(10,31,68,.60) 100%), var(--head-img);
  background-size: cover; background-position: center right;
}
@media (max-width: 699px) {
  .ac-pagehead.has-scene {
    background-image: linear-gradient(180deg, rgba(10,31,68,.94) 55%, rgba(10,31,68,.72) 100%), var(--head-img);
  }
}
@media (min-width: 900px) { .ac-pagehead { padding: 88px 0 76px; } }
.ac-pagehead .ac-label { color: var(--gold-deep); }
.ac-pagehead .ac-lede { color: rgba(255,255,255,.8); max-width: 720px; }

/* =============================================================================
   頭部（追従・すりガラス）
   ========================================================================== */
.ac-head-bar {
  position: sticky; top: 0; z-index: 50;
  background: rgba(248,249,250,.86); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--rule);
}
/* 上段＝教材への直行路。⚠ 細く・小さく。下段の学校の導線より前に出さない */
/* ⚠ 色は継承の根で決める。子の a に色を書くと `.ac a:not([class])`(0,2,1) に負けて
   墨色を継承し、紺地で読めなくなる（実測で日本語だけ消えていた）。同種のバグの二度目。 */
/* ⚠⚠ 2026-08-01 再設計: 上段は**ユーティリティ**（言語・入学案内）。参照4校とも上段はここ。
   以前は上段に主ナビ（教材5本）を置き、下段に学校4本を置いていた＝**主ナビを2つに割って**いた。
   ⚠ 上段は控えめに。紺のベタ帯だと上段のほうが強く見え、主従が逆転する。 */
.ac-head-top { display: none; background: var(--paper); border-bottom: 1px solid var(--rule); }
@media (min-width: 62.5rem) { .ac-head-top { display: block; } }
/* ⚠ 学びの画面では上段の五様式を #corpusnav という入れ物に差し込む（chrome() が innerHTML で
   書き換えるため）。入れ物が flex の item になると、中の <a> に親の gap が効かず、
   「航路Routes科目Courses…」と詰まって出る（実測 2026-08-01）。入れ物を透明にする。 */
#corpusnav { display: contents; }
.ac-head-top-in {
  max-width: var(--container); margin: 0 auto; padding: 0 var(--margin-desktop);
  height: 40px; display: flex; align-items: center; justify-content: flex-end; gap: 20px;
}
.ac-head-top-label {
  font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .22em;
  color: var(--gold-deep); margin-right: 4px;
}
/* ⚠⚠ 上段は紙地になった（2026-08-01 再設計）。**紺地前提の白文字が残っていて、
   白地に白文字（コントラスト比 1.05＝判読不能）になっていた**（オーナー指摘で実測）。
   ⚠ 地を変えたら、その上の文字色を必ず測り直す。地だけ変えて字を残すのが典型の事故。
   ⚠ 釦（.ac-head-cta）は自前の紺背景を持つので、この規則より後で上書きする。 */
.ac-head-top-in a {
  display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
  font-size: 13px; font-weight: 500; color: var(--ink-mid);
}
.ac-head-top-in a:hover { color: var(--navy); }
.ac-head-top-in a.ac-head-cta { color: #fff; }
/* ⚠ 2026-09-04: 帯は「札（在籍/聴講中）→ マイページ → ログアウト」の三つ組。項目の間は 14px（実測で 0 だった＝一語に溶けていた）。
   札は状態であり行き先も持つので、縁のある小さな札にして地の文と区別する */
.ac-head-top-in .nav-util { display: inline-flex; align-items: center; gap: 14px; }
.ac-head-top-in .nav-state { color: var(--ink-mid); border: 1px solid var(--rule-strong, var(--rule)); border-radius: 999px; padding: 2px 10px; line-height: 1.4; }
.ac-head-top-in .nav-state:hover { border-color: var(--gold); color: var(--ink); }
/* ⚠⚠ 上段では英字の添えを出さない（2026-08-01 是正）。
   実測: 項目の中（和文と英字）が 7px、項目の間が 26px しかなく、**近さの差が 3.7 倍**。
   目が「どこまでが一項目か」を判別できず、「航路Routes科目Courses用語集Glossary…」と
   一本の帯に溶けていた。38px の細い帯に 5 項目 × 2 語＝10 語は入らない。
   英字は下段（縦積みで成立している側）に残す。役割が違うので、同じ扱いにしない。 */
.ac-head-top-in a i { display: none; }
.ac-head-top-in a:hover { color: #fff; }
.ac-head-top-in a:hover i { color: var(--gold); }
.ac-head-top-in a[aria-current] { color: var(--gold-deep); }

/* ⚠⚠ 群の間隔は、群の中の間隔より**はっきり広く**取る（2026-08-01 是正）。
   実測では逆転していた: 下段のナビは項目間 30px なのに、ナビと入学案内の間が 20px。
   近さの原則が反転するので、「四項目＋釦」が一塊に見えて読めなかった。
   いまは 群の中 24px ／ 群の間 48px（2倍）。上段も同じ考えで 30px を確保している。 */
.ac-head-in { max-width: var(--container); margin: 0 auto; padding: 0 var(--margin-mobile);
  height: 64px; display: flex; align-items: center; gap: 24px; }
@media (min-width: 900px) { .ac-head-in { padding: 0 var(--margin-desktop); height: 84px; gap: 48px; } }
/* ⚠ 校名は「家へ戻る」唯一の導線。実測で高さ 27px しかなかった（触れる最小は 44px）。
   頭部は 64/76px あるので、上下の余白で 44px にしても見た目は動かない。 */
.ac-brand { display: flex; align-items: baseline; gap: 10px; text-decoration: none; margin-right: auto;
  padding: 9px 0; }
.ac-brand b { font-family: var(--serif); font-weight: 600; font-size: 17px; color: var(--navy); letter-spacing: .02em; }
.ac-brand small { font-family: var(--mono); font-size: 11px; letter-spacing: .18em; color: var(--gold-deep); }
@media (max-width: 560px) { .ac-brand small { display: none; } }
/* 下段＝学校の導線。日本語の下に英語を小さく添える。
   ⚠ 英語は意味を伝えるためでなく、見出しの図形として置く（実測: ZEN/グロービスとも同型）。
      太らせない・目立たせないことで効く。 */
.ac-nav { display: none; gap: 24px; align-items: flex-end; }
@media (min-width: 62.5rem) { .ac-nav { display: flex; } }
.ac-nav a {
  display: flex; align-items: center; text-decoration: none;
  padding: 10px 0; border-bottom: 2px solid transparent;
  font-size: 15px; font-weight: 500; color: var(--ink); line-height: 1.2;
}
.ac-nav a span { font-size: 14px; font-weight: 500; color: var(--ink); line-height: 1.2; }
.ac-nav a i {
  font-style: normal; font-family: var(--mono); font-size: 11px; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; color: var(--ink-faint); line-height: 1;
}
/* 上段の入学案内。⚠ 下段の主ナビより小さく。ここは行動の口であって主ナビではない。 */
.ac-head-top .ac-head-cta { min-height: 28px; padding: 5px 16px; font-size: 12px; }
/* 「学校について」の束ね。⚠ 主ナビを 6〜7 本の相場に収めるための器（参照4校の実測）。
   ⚠ position を持つ板は、閉じているとき display:none を明示する（<details> の畳みが外れるため）。 */
.ac-drop { position: relative; }
.ac-drop > summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 6px;
  padding: 10px 0; border-bottom: 2px solid transparent;
  font-size: 15px; font-weight: 500; color: var(--ink); line-height: 1.2;
}
.ac-drop > summary::-webkit-details-marker { display: none; }
.ac-drop > summary::after {
  content: ''; width: 5px; height: 5px; border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor; transform: translateY(-2px) rotate(45deg);
}
.ac-drop > summary:hover, .ac-drop[open] > summary { color: var(--navy); border-bottom-color: var(--gold); }
.ac-drop:not([open]) > .ac-drop-panel { display: none; }
.ac-drop-panel {
  position: absolute; left: 0; top: calc(100% + 8px); min-width: 200px; z-index: 70;
  background: var(--paper-white); border: 1px solid var(--rule); border-radius: var(--r);
  box-shadow: var(--shadow-float); padding: 6px;
}
.ac-drop-panel a { display: block; padding: 10px 14px; font-size: 14px; color: var(--ink); text-decoration: none; }
.ac-drop-panel a:hover { background: var(--paper); color: var(--navy); }
.ac-nav a:hover, .ac-nav a[aria-current] { color: var(--navy); }
.ac-nav a:hover i, .ac-nav a[aria-current] i { color: var(--gold-deep); }
.ac-nav a[aria-current] { border-bottom-color: var(--gold-deep); }
/* ⚠ 触れる高さは 44px を下回らせない（実測で 41px だった） */
.ac-head-cta { display: inline-flex; align-items: center; padding: 12px 20px; min-height: 44px;
  background: var(--navy); color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .06em;
  border-radius: var(--r); text-decoration: none; }
.ac-head-cta:hover { background: var(--navy-deep); }

/* 携帯・タブレットの目次。⚠ 1000px 未満ではナビが消え、脚部まで下りないと
   どこへも行けない状態だった（実測）。JS を使わず details/summary で開閉する。 */
/* ⚠⚠ SP では身分の群（在籍・ログイン）を頭に出さない（2026-08-01 是正）。
   実測: 仏 100px・独 97px・西 57px の横溢れが全画面で出ていた。犯人は入学案内の釦で、
   390px の幅に 校名＋身分＋釦 が入らなかった（長い語の言語で必ず溢れる）。
   身分は目次（ac-menu）の中に同じ項目があるので、頭からは落として構わない。
   ⚠ 「入らないから小さくする」ではなく「入らないものを別の場所へ移す」で直す。 */
@media (max-width: 62.4rem) { .nav-util { display: none; } }
.ac-menu { position: relative; }
@media (min-width: 62.5rem) { .ac-menu { display: none; } }
.ac-menu > summary {
  list-style: none; cursor: pointer; width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--rule-strong); border-radius: var(--r); background: var(--paper-white);
}
.ac-menu > summary::-webkit-details-marker { display: none; }
.ac-menu > summary span { display: block; width: 18px; height: 1px; background: var(--navy); position: relative; }
.ac-menu > summary span::before, .ac-menu > summary span::after {
  content: ''; position: absolute; left: 0; width: 18px; height: 1px; background: var(--navy);
}
.ac-menu > summary span::before { top: -6px; }
.ac-menu > summary span::after { top: 6px; }
.ac-menu[open] > summary span { background: transparent; }
.ac-menu[open] > summary span::before { top: 0; transform: rotate(45deg); }
.ac-menu[open] > summary span::after { top: 0; transform: rotate(-45deg); }
/* ⚠⚠ 目次の中身が画面より高い（2026-08-13 是正）。
   実測: 盤 874px に対し 390x844 で +94px・360x640 で +298px はみ出し、
   overflow-y が visible なので **中でスクロールできず、下の項目に触れられなかった**。
   届かなくなっていたのは 7 言語の切替と「ログイン」＝目次の最後にある項目。
   盤は sticky な頭の中に絶対配置されているので、頁を送ってもはみ出した先は出てこない。
   76px の根拠: 実測した盤の上端 64px（頭 65px の中に置かれ、top: 100%+10px）＋下の余白 12px。
   ⚠ vh は iOS のアドレスバー分だけ実際の可視領域より大きい。dvh を後に書いて上書きさせる。 */
.ac-menu-panel {
  position: absolute; right: 0; top: calc(100% + 10px); width: min(84vw, 320px);
  background: var(--paper-white); border: 1px solid var(--rule); border-radius: var(--r);
  box-shadow: var(--shadow-float); padding: 8px; z-index: 60;
  max-height: calc(100vh - 76px);
  max-height: calc(100dvh - 76px);
  overflow-y: auto;
  overscroll-behavior: contain;      /* 盤の端まで来ても、後ろの頁が一緒に動かない */
  -webkit-overflow-scrolling: touch;
}
.ac-menu-panel a {
  display: block; padding: 14px 16px; font-size: 15px; font-weight: 500;
  color: var(--ink); text-decoration: none; border-radius: var(--r);
}
.ac-menu-panel a:hover, .ac-menu-panel a[aria-current] { background: var(--paper); color: var(--navy); }
.ac-menu-panel hr { border: 0; border-top: 1px solid var(--rule); margin: 8px 0; }
.ac-menu-panel small { display: block; padding: 4px 16px 10px; font-family: var(--mono);
  font-size: 13px; letter-spacing: .12em; color: var(--ink-faint); }

/* =============================================================================
   脚部 — 3列（学ぶ／連携と記録／規約）＋実データの帯
   ========================================================================== */
.ac-foot { background: var(--ink-black); color: rgba(255,255,255,.7); padding: 64px 0 32px; }
.ac-foot-grid { display: grid; gap: 36px; grid-template-columns: 1fr; }
@media (min-width: 800px) { .ac-foot-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--gutter); } }
.ac-foot h2 { font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .14em;
  color: var(--gold-deep); margin: 0 0 16px; }
.ac-foot ul { list-style: none; margin: 0; padding: 0; }
.ac-foot li { margin-bottom: 10px; }
.ac-foot a { font-size: 14px; color: rgba(255,255,255,.7); text-decoration: none; }
.ac-foot a:hover { color: var(--gold); }
.ac-foot-brand b { font-family: var(--serif); font-size: 20px; color: #fff; display: block; margin-bottom: 6px; }
.ac-foot-brand p { font-family: var(--serif); font-size: 16px; line-height: 1.8; color: rgba(255,255,255,.85); margin: 0 0 10px; max-width: 26em; }
.ac-foot-brand p.ac-foot-sub { font-family: var(--sans); font-size: 13px; color: rgba(255,255,255,.5); margin: 0; }
.ac-foot-bottom { margin-top: 48px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12);
  display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between;
  font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: rgba(255,255,255,.45); }

/* =============================================================================
   部品
   ========================================================================== */
/* 番号つきの手順（入学の流れ・学びの順序） */
.ac-steps { counter-reset: st; display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
@media (min-width: 900px) { .ac-steps--4 { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 900px) { .ac-steps--5 { grid-template-columns: repeat(5, 1fr); } }
.ac-step { counter-increment: st; background: var(--paper-white); padding: 30px 24px; }
.ac-step::before {
  content: counter(st, decimal-leading-zero); display: block; font-family: var(--mono);
  font-size: 12px; font-weight: 700; letter-spacing: .14em; color: var(--gold-deep); margin-bottom: 14px;
}
.ac-step h3 { margin-bottom: 8px; }

/* 名簿（教員・提携先） */
.ac-person { display: grid; grid-template-columns: 96px 1fr; gap: 20px; align-items: start; }
.ac-person-fig { aspect-ratio: 1; background: var(--rule); border-radius: var(--r); overflow: hidden; }
.ac-person-fig img { width: 100%; height: 100%; object-fit: cover; }
.ac-person-role { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: 6px; }

/* 記事の一覧行（紀要・コラム） */
.ac-rows { border-top: 1px solid var(--rule); }
.ac-row { display: block; padding: 26px 0; border-bottom: 1px solid var(--rule); text-decoration: none; color: inherit; }
.ac-row:hover .ac-h3 { color: var(--navy); }
.ac-row-meta { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 10px; display: flex; gap: 14px; flex-wrap: wrap; }
.ac-row-meta b { color: var(--gold-deep); font-weight: 700; }

/* 定義の並び（要件・費用） */
.ac-dl { border-top: 1px solid var(--rule); }
.ac-dl > div { display: grid; grid-template-columns: 1fr; gap: 4px; padding: 20px 0; border-bottom: 1px solid var(--rule); }
@media (min-width: 700px) { .ac-dl > div { grid-template-columns: 220px 1fr; gap: 24px; } }
.ac-dl dt { font-size: 14px; font-weight: 700; color: var(--navy); }
.ac-dl dd { margin: 0; font-size: 15px; line-height: 1.8; color: var(--ink-mid); }

/* 折りたたみ（よくある質問） */
.ac-faq { border-top: 1px solid var(--rule); }
.ac-faq details { border-bottom: 1px solid var(--rule); }
.ac-faq summary { padding: 22px 40px 22px 0; font-size: 16px; font-weight: 700; color: var(--navy);
  cursor: pointer; list-style: none; position: relative; }
.ac-faq summary::-webkit-details-marker { display: none; }
.ac-faq summary::after { content: '+'; position: absolute; right: 8px; top: 20px; font-size: 20px; color: var(--gold-deep); font-weight: 400; }
.ac-faq details[open] summary::after { content: '−'; }
.ac-faq p { margin: 0 0 22px; font-size: 15px; line-height: 1.9; color: var(--ink-mid); }

/* 引用（学びの言葉） */
.ac-quote { border-left: 2px solid var(--gold); padding: 4px 0 4px 22px; margin: 0; }
.ac-quote p { font-family: var(--serif); font-size: 20px; line-height: 1.8; color: var(--ink); margin: 0 0 12px; }
@media (min-width: 900px) { .ac-quote p { font-size: 24px; } }
.ac-quote cite { font-style: normal; font-family: var(--mono); font-size: 12px; letter-spacing: .1em; color: var(--ink-faint); }

/* 二段組（画と文） */
.ac-split { display: grid; gap: 32px; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) { .ac-split { grid-template-columns: 1fr 1fr; gap: 64px; } .ac-split--wide { grid-template-columns: 1.15fr 1fr; } }
.ac-split-fig { border-radius: var(--r-lg); overflow: hidden; background: var(--rule); aspect-ratio: 4 / 3; }
.ac-split-fig img { width: 100%; height: 100%; object-fit: cover; }

/* 帯の CTA */
.ac-cta { background: var(--navy); color: #fff; text-align: center; }
.ac-cta .ac-h2 { color: #fff; }
.ac-cta .ac-lede { color: rgba(255,255,255,.78); max-width: 620px; margin-left: auto; margin-right: auto; }
.ac-cta .ac-btns { justify-content: center; }

/* パンくず */
.ac-crumb { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: rgba(255,255,255,.55); margin-bottom: 18px; }
.ac-crumb a { color: rgba(255,255,255,.55); text-decoration: none; }
.ac-crumb a:hover { color: var(--gold); }

/* 読む本文（記事・規約） */
.ac-prose { max-width: 44rem; }
.ac-prose h2 { font-family: var(--serif); font-size: 24px; font-weight: 600; color: var(--navy); margin: 44px 0 16px; }
.ac-prose h3 { font-family: var(--sans); font-size: 17px; font-weight: 700; margin: 32px 0 12px; }
.ac-prose p { font-size: 16px; line-height: 1.95; color: var(--ink-mid); margin: 0 0 1.2em; }
.ac-prose ul, .ac-prose ol { padding-left: 1.4em; margin: 0 0 1.4em; }
.ac-prose li { font-size: 16px; line-height: 1.9; color: var(--ink-mid); margin-bottom: .5em; }


/* =============================================================================
   読みもの（メディア層）
   ========================================================================== */
/* 分類のタブ。⚠ 実際に絞り込める（/yomu/c/<key>）ものだけを並べる */
.ac-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.ac-tabs a {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  padding: 10px 18px; border: 1px solid var(--rule-strong); border-radius: 999px;
  font-size: 14px; font-weight: 500; color: var(--ink-mid); text-decoration: none;
  background: var(--paper-white); transition: .18s ease;
}
.ac-tabs a:hover { border-color: var(--navy); color: var(--navy); }
.ac-tabs a[aria-current] { background: var(--navy); border-color: var(--navy); color: #fff; }
.ac-tabs span { font-family: var(--mono); font-size: 11px; opacity: .7; }

/* 記事の頭（日付・筆者・分類） */
.ac-artmeta {
  display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center;
  font-family: var(--mono); font-size: 12px; letter-spacing: .1em; color: var(--ink-faint);
  padding-bottom: 20px; border-bottom: 1px solid var(--rule); margin-bottom: 32px;
}
.ac-artmeta a { color: var(--gold-deep); text-decoration: none; }
.ac-artfig { margin: 0 0 36px; border-radius: var(--r-lg); overflow: hidden; }
.ac-artfig img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

/* 記事の末尾に置く「この記事が指している教材」 */
.ac-related { max-width: 44rem; margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--rule); }
.ac-related ul { list-style: none; padding: 0; margin: 14px 0 0; }
.ac-related li { margin-bottom: 10px; }
.ac-related a { font-size: 15px; color: var(--navy); text-decoration: none; border-bottom: 1px solid var(--rule-strong); }
.ac-related a:hover { border-bottom-color: var(--gold); }

/* =============================================================================
   言語切替 — 7言語（頭部の紺帯・携帯は目次の中）
   ⚠ 学びの画面（index.html）の <select class="lang-sel"> と同じ操作感（一覧から選ぶ）。
      頁は server で組むので JS を使わず details/summary で開く（.ac-menu と同型）。
   ⚠ 紺帯の中なので、色は .ac-head-top からの継承に任せず自分で持つ
      （`.ac a:not([class])` に負けて墨色になる事故の三度目を避ける）。
   ========================================================================== */
.ac-lang { position: relative; }
.ac-lang > summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--mono); font-size: 11px; letter-spacing: .1em;
  /* ⚠ 上段は紙地になった（2026-08-01）。白文字のままだと消える */
  color: var(--ink-mid); padding: 0 2px;
}
.ac-lang > summary::-webkit-details-marker { display: none; }
.ac-lang > summary::after {
  content: ''; width: 5px; height: 5px; border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor; transform: translateY(-2px) rotate(45deg);
}
.ac-lang > summary:hover { color: var(--navy); }
.ac-lang[open] > summary { color: var(--navy); }
/* ⚠⚠ <details> は「開いていないとき中身を隠す」を **display の既定値に頼って** 実現している。
   板に position: absolute を与えた時点でその仕組みが外れ、**閉じていても出たまま**になる
   （実測 2026-08-01・本番: 言語の板 168×297 が常時見えており、SP では目次の板 320×822 が
   画面を覆っていた。オーナーに「縦に並んだ一覧」として見えていたのはこれ）。
   ⚠ 閉じているときに隠すことを、CSS で明示する。position を持つ板には必ずこの一行が要る。 */
.ac-lang:not([open]) > .ac-lang-panel,
.ac-menu:not([open]) > .ac-menu-panel { display: none; }
.ac-lang-panel {
  position: absolute; right: 0; top: calc(100% + 8px); min-width: 168px;
  background: var(--paper-white); border: 1px solid var(--rule); border-radius: var(--r);
  box-shadow: var(--shadow-float); padding: 6px; z-index: 70;
}
.ac-lang-panel a {
  display: block; padding: 9px 14px; min-height: 36px; font-size: 14px;
  color: var(--ink); text-decoration: none; border-radius: var(--r);
}
.ac-lang-panel a:hover { background: var(--paper); color: var(--navy); }
.ac-lang-panel a[aria-current] { color: var(--navy); font-weight: 700; }
/* 携帯・タブレットは紺帯ごと隠れるので、目次の中に同じ一覧を置く。
   ⚠ 触れる高さは 44px を下回らせない */
.ac-menu-langs { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 8px 6px; }
.ac-menu-langs a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px;
  font-size: 14px; color: var(--ink); text-decoration: none;
  border: 1px solid var(--rule); border-radius: var(--r);
}
.ac-menu-langs a:hover, .ac-menu-langs a[aria-current] { background: var(--paper); color: var(--navy); border-color: var(--gold); }

/* 記事本文の中の引用・区切り */
.ac-prose blockquote { margin: 28px 0; padding: 2px 0 2px 20px; border-left: 2px solid var(--gold); }
.ac-prose blockquote p { font-family: var(--serif); font-size: 18px; color: var(--ink); margin: 0; }
.ac-prose hr { border: 0; border-top: 1px solid var(--rule); margin: 40px 0; }
.ac-prose b { font-weight: 700; color: var(--ink); }
.ac-prose a { color: var(--navy); border-bottom: 1px solid var(--rule-strong); text-decoration: none; }
.ac-prose a:hover { border-bottom-color: var(--gold); }

/* ⚠ 実バグ（2026-08-01 実測）: 選択中のタブが 1.05:1 で読めなかった。
   /yomu の「すべて」が背景に沈んでいた。地と字を同じ規則で決める。 */
.ac-tabs a[aria-current] { background: var(--navy); color: #fff; }

/* =============================================================================
   引く頁（用語・科目・実物・航路・学生の論文）の本文
   ⚠⚠ 2026-08-01: ここは server/routes/pages.js の中に <style> で直書きされており、
      **三つ目の器**になっていた（頭も脚もナビも学校の面と別物）。器を一つにするため、
      本文の体裁だけをここへ移し、頭・脚・ナビは acshell（学校の面）と共通にした。
   ⚠ 名前（.yo-*）は変えない。変えると 600 頁ぶんの本文を一度に壊す危険がある。
      名前の整理は、器の統合が本番で落ち着いてからにする。
   ========================================================================== */
  .yo { max-width: 44rem; margin: 0 auto; padding: 2.4rem 1.2rem 5rem; }
.yo-crumb { font-family: var(--mono); font-size: .78rem; color: var(--ink-faint);
            letter-spacing: .06em; margin-bottom: 1.6rem; }
.yo-crumb a { color: var(--ink-faint); }
.yo h1 { font-size: 2.1rem; margin: 0 0 .2rem; line-height: 1.4; }
.yo-yomi { font-family: var(--mono); font-size: .84rem; color: var(--ink-faint);
           letter-spacing: .1em; margin: 0 0 1.4rem; }
/* ⚠ 一文の答えを最初に、大きく。引く人も、生成 AI も、ここだけ読んで帰ることがある */
.yo-lede { font-size: 1.18rem; line-height: 1.9; color: var(--ink);
           border-left: 2px solid var(--gold); padding: .1rem 0 .1rem 1rem; margin: 0 0 2.2rem; }
.yo h2 { font-size: .82rem; font-family: var(--mono); letter-spacing: .18em;
         color: var(--gold-deep); font-weight: 500; margin: 2.6rem 0 .8rem;
         border-bottom: 1px solid var(--rule); padding-bottom: .4rem; }
.yo p { margin: 0 0 1.1rem; }
.yo-tags a { display: inline-block; border: 1px solid var(--rule-strong); border-radius: 2px;
             padding: .18rem .7rem; margin: 0 .4rem .5rem 0; font-size: .92rem;
             color: var(--ink-mid); text-decoration: none; }
.yo-tags a:hover { color: var(--gold-deep); border-color: var(--gold); }
.yo-alias { color: var(--ink-faint); font-size: .92rem; }
.yo-back { display: inline-block; margin-top: 2.6rem; font-family: var(--mono);
           font-size: .84rem; letter-spacing: .08em; color: var(--gold-deep); }
.yo-idx { columns: 2; column-gap: 2rem; }
@media (max-width: 640px) { .yo-idx { columns: 1; } .yo h1 { font-size: 1.7rem; } }
.yo-idx li { break-inside: avoid; margin: 0 0 .5rem; list-style: none; }
.yo-idx ul { padding: 0; margin: 0 0 2rem; }
.yo-idx b { font-weight: 400; }
.yo-idx small { color: var(--ink-faint); font-size: .84rem; }
/* 語の頁の図版。⚠ 実物は「並べて見せる」、場面は「敷いて見せる」。役割が違うので形も分ける */
.yo-fig { margin: 0 0 2.2rem; }
.yo-fig figcaption { margin-top: .6rem; font-family: var(--mono); font-size: .74rem;
  letter-spacing: .1em; color: var(--ink-faint); }
.yo-fig.coins { display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: flex-end; }
.yo-fig.coins span { display: block; width: 8.5rem; text-align: center; }
.yo-fig.coins img { display: block; width: 100%; height: 8.5rem; object-fit: contain; }
.yo-fig.coins b { display: block; margin-top: .5rem; font-size: .86rem; font-weight: 400; }
.yo-fig.coins i { display: block; font-style: normal; font-family: var(--mono);
  font-size: .7rem; letter-spacing: .1em; color: var(--ink-faint); }
.yo-fig.coins figcaption { flex: 1 0 100%; }
.yo-fig.scene img { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover;
  border-radius: 2px; box-shadow: 0 0 0 1px var(--rule); }

/* 主題の航路（/kouro/t/<code>）。諸編を時代順に横断する停の目次。番号は順路なので消さず、mono の細字で添える */
.ac-cross { margin: 0 0 2.2rem; padding-left: 0; counter-reset: cross; }
.ac-cross li { list-style: none; counter-increment: cross; padding: .55rem 0;
               border-bottom: 1px solid var(--rule); line-height: 1.8; }
.ac-cross li::before { content: counter(cross, decimal-leading-zero); font-family: var(--mono);
               font-size: .74rem; letter-spacing: .08em; color: var(--ink-faint); margin-right: .9rem; }
.ac-cross small { font-family: var(--mono); font-size: .78rem; letter-spacing: .06em; color: var(--ink-faint); }
.ac-cross b { font-weight: 500; }
.ac-cross a { font-size: .92rem; color: var(--gold-deep); }

/* 窓口のフォーム。⚠ 四つの窓口で同じ形（相手はどの頁から来ても同じ操作で送れる）。 */
.ac-form { max-width: 34rem; margin: 0 auto; text-align: left; }
.ac-form label { display: block; margin-bottom: 16px; font-size: 14px; font-weight: 700; color: var(--navy); }
.ac-form input, .ac-form textarea {
  display: block; width: 100%; margin-top: 6px; padding: 12px 14px;
  font: inherit; font-weight: 400; color: var(--ink);
  background: var(--paper-white); border: 1px solid var(--rule-strong); border-radius: var(--r);
}
.ac-form input:focus, .ac-form textarea:focus { outline: 2px solid var(--navy); outline-offset: 1px; }
.ac-form-msg { margin: 14px 0 0; font-size: 14px; text-align: center; }
.ac-form-msg.is-ok { color: var(--navy); }
.ac-form-msg.is-ng { color: #a3352a; }

/* ⚠⚠ 金は**地で使い分ける**（2026-08-01 実測）。
   紙地: --gold-deep(#775A19) 比 6.11 ／ 暗地: --gold(#C5A059) が映える。
   一律に深い金へ替えたら、今度は紺地・墨地の上で沈んだ（実測 38 件）。
   → 暗い地を持つ器（頁の頭・紺の節・入口のヒーロー・脚部）の中だけ、明るい金に戻す。 */
.ac-pagehead .ac-label,
.ac-sec--navy .ac-label,
.ac-hero .ac-label,
.ac-foot .ac-label,
.ac-foot h2,
.ac-cta .ac-label { color: var(--gold); }

/* ── シラバス一覧の表（/syllabus）── 2026-08-09 新設 ── */
.yo-table { width: 100%; border-collapse: collapse; margin: 12px 0 28px; font-size: .95rem; }
.yo-table th, .yo-table td { border: 1px solid var(--rule, #d8d2c6); padding: 8px 10px;
  text-align: left; vertical-align: top; line-height: 1.6; }
.yo-table th { background: #f4f1ea; font-weight: 600; white-space: nowrap; }
.yo-table td a { text-decoration: none; }
@media print { .yo-table { font-size: 12px; } .yo-table th { background: #eee; } }

/* ── 人物編（縦の映像）─────────────────────────────────────────────
   ⚠ 表紙は 9:16 の縦。既定の .ac-card-fig（16/10）のままだと、縦の絵の上下が
      切り落とされて「空と地面だけ」の帯になる（実測。人物編の表紙は中央に主題がある）。
   ⚠ 画面より高い映像を置かない。縦 9:16 を素のまま並べると、スマートフォンでは
      再生釦まで指が届かない位置に沈む。高さを見える範囲に抑えて中央へ寄せる。 */
.ac-film-fig { aspect-ratio: 3 / 4; }
.ac-film {
  margin: 1.6rem 0 2rem; display: flex; justify-content: center;
  background: #0b0b0e; border: 1px solid var(--rule);
}
.ac-film video {
  width: auto; max-width: 100%; height: min(78vh, 900px); display: block;
  background: #0b0b0e;
}

/* ── 人物編・停別プレーヤー（2026-08-14。航路と同じ操作系: 声/速さ/続きから） ── */
.jt { margin: 1.2rem 0 2rem; }
.jt-controls { display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; margin-bottom: 0.8rem; }
.jt-lbl { font-size: 0.72rem; letter-spacing: 0.18em; color: #8a8172; margin-left: 0.4rem; }
.jt-btn { padding: 0.42rem 0.9rem; border: 1px solid #c9b98a; border-radius: 4px; background: #fffdf7;
  color: #4a4030; cursor: pointer; font-size: 0.9rem; }
.jt-btn.is-on { background: #1d2a4a; color: #f2e8d5; border-color: #1d2a4a; }
.jt-resume { display: block; width: 100%; max-width: 560px; margin: 0 auto 0.9rem; padding: 0.9rem 1.4rem;
  border: 2px solid #b3922f; border-radius: 6px; background: linear-gradient(180deg, #fdf6df, #f4e7bf);
  color: #574408; font-size: 1.02rem; font-weight: 600; cursor: pointer;
  box-shadow: 0 2px 10px rgba(179,146,47,0.25); }
.jt-stage { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: 6px; overflow: hidden; }
.jt-stage img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jt-stage img.is-coin { object-fit: contain; background: #000; }
.jt-cap { position: absolute; left: 0; right: 0; bottom: 7%; display: flex; flex-direction: column;
  align-items: center; gap: 0.3rem; pointer-events: none; }
.jt-cap span { color: #fff; font-family: 'Shippori Mincho', serif; font-weight: 700;
  font-size: clamp(1rem, 2.6vw, 1.6rem); letter-spacing: 0.06em; line-height: 1.4;
  text-shadow: 0 0 6px rgba(0,0,0,0.9), 0 2px 3px rgba(0,0,0,0.8); padding: 0 1rem; text-align: center; }
.jt-nav { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.7rem; flex-wrap: wrap; }
.jt-play { font-weight: 600; }
.jt-pos { margin-left: auto; font-size: 0.82rem; color: #8a8172; letter-spacing: 0.1em; }
.jt-text { margin-top: 0.9rem; line-height: 1.9; color: #3d3629; }

/* ── 人物編: 映像版の埋め込み再生（2026-09-03 オーナー「動画を全画面表示できるように」）─────────
   ブラウザ標準の操作（controls）に加えて、明示の全画面釦。縦版（スマートフォン向け）は高さ基準で収める */
.jv { margin: 0 0 1.5rem; }
.jv-video { display: block; width: 100%; max-height: 72vh; background: #000; border-radius: 4px; }
.jv-video--tall { width: auto; max-width: 100%; max-height: 80vh; margin: 0 auto; }
.jv-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }

/* ── 図版教本の一覧（/kyohon）: 640px の読み枠に合う「棚」の形（2026-09-03 オーナー「このページをデザイン入れて」）
   左に表紙の実物の貨幣（本文の section.cover から機械で引く）、右に題・副題・章数・読了時間。3 列の札は 200px 幅で題が切れていた */
.ac-books { display: grid; gap: 14px; margin-top: 18px; }
.ac-book { display: grid; grid-template-columns: 124px 1fr; gap: 22px; align-items: center; padding: 18px 22px 18px 18px;
  background: var(--paper-white); border: 1px solid var(--rule); border-radius: 8px; color: inherit; text-decoration: none; transition: border-color .2s; }
.ac-book:hover { border-color: var(--gold); text-decoration: none; }
.ac-book.is-free { border-color: var(--gold); }
.ac-book-fig { display: grid; place-items: center; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle at 50% 42%, rgba(255,255,255,.07), rgba(0,0,0,.28)); }
.ac-book-fig img { width: 84%; height: 84%; object-fit: contain; }
.ac-book-body { display: block; min-width: 0; }
.ac-book .ac-card-meta, .ac-book .ac-course-n { white-space: normal; }
.ac-book .ac-course-n { margin-left: .6em; }
.ac-book-t { display: block; font-family: var(--serif); font-size: 1.5rem; line-height: 1.3; margin: 6px 0 2px; }
.ac-book-sub { display: block; color: var(--ink-mid); line-height: 1.6; margin: 0 0 8px; }
.ac-book-meta { display: block; font-family: var(--mono); font-size: .78rem; letter-spacing: .04em; color: var(--ink-faint); margin: 0 0 10px; }
@media (max-width: 560px) { .ac-book { grid-template-columns: 92px 1fr; gap: 14px; padding: 14px; } .ac-book-t { font-size: 1.25rem; } }

/* ── 繰り返す構造（/kouzou）— 2026-09-04。四段は「比較する場所」の主役なので本文と同じ大きさで四つ並べる ── */
.ac-pt-grid { margin: 8px 0 40px; }
.ac-pt .ac-course-t { font-size: 1.2em; }
.ac-pt-arc { display: block; margin-top: 12px; font-family: var(--mono); font-size: 14px; letter-spacing: .04em; color: var(--ink-faint); }
.ac-pt-four { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 8px 0 12px; }
@media (min-width: 700px) { .ac-pt-four { grid-template-columns: 1fr 1fr; } }
.ac-pt-cell { border: 1px solid var(--rule); border-radius: var(--r); padding: 20px 22px 16px; background: var(--paper-white); }
.ac-pt-cell b { display: block; font-family: var(--mono); font-size: 14px; letter-spacing: .18em; color: var(--gold-deep); margin-bottom: 8px; }
.ac-pt-cell p { margin: 0; line-height: 1.85; }
.ac-pt-stop { margin: 0 0 26px; padding: 0 0 18px; border-bottom: 1px dotted var(--rule); }
.ac-pt-stop h3 { font-family: var(--serif); font-size: 1.15em; margin: 0 0 4px; }
.ac-pt-stop h3 a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--rule-strong); }
.ac-pt-stop h3 a:hover { border-bottom-color: var(--gold); }
.ac-pt-stop .stopera { font-family: var(--mono); font-size: 14px; letter-spacing: .06em; color: var(--ink-faint); margin: 0 0 10px; }
.ac-pt-dl { display: grid; grid-template-columns: 5.5em 1fr; gap: 6px 14px; margin: 0; }
.ac-pt-dl dt { font-family: var(--mono); font-size: 14px; letter-spacing: .12em; color: var(--gold-deep); padding-top: 3px; }
.ac-pt-dl dd { margin: 0; line-height: 1.8; }
.ac-pt-hist { list-style: none; margin: 0; padding: 0; }
.ac-pt-hist li { margin: 0 0 10px; }
.ac-pt-hist a, .ac-matrix a { color: inherit; text-decoration: none; }
.ac-pt-hist a b, .ac-matrix a b { display: block; font-weight: 600; line-height: 1.5; }
.ac-pt-hist a small, .ac-matrix a small { display: block; font-family: var(--mono); font-size: 14px; letter-spacing: .04em; color: var(--ink-faint); margin-top: 2px; }
.ac-pt-hist a:hover b, .ac-matrix a:hover b { color: var(--gold-deep); }
.ac-matrix { width: 100%; min-width: 760px; border-collapse: collapse; margin: 16px 0 8px; }
.ac-matrix th, .ac-matrix td { border: 1px solid var(--rule); padding: 12px 14px; text-align: left; vertical-align: top; }
.ac-matrix thead th { font-family: var(--mono); font-size: 14px; letter-spacing: .14em; color: var(--ink-faint); background: var(--paper-white); }
.ac-matrix tbody th { font-family: var(--serif); font-weight: 600; background: var(--paper-white); white-space: nowrap; }
.ac-matrix tbody th small { display: block; font-family: var(--mono); font-size: 14px; font-weight: 400; letter-spacing: .06em; margin-top: 4px; }
.ac-matrix tbody th small a { color: var(--gold-deep); text-decoration: none; }
.ac-matrix td:last-child { background: rgba(233, 195, 73, .06); }

/* ── CASE FILES（/cases・/cases/<slug>）2026-09-04。既存の索引と本文の部品（ac-*・yo-*）に寄せ、専用は最小 ── */
.cs-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px 28px; margin: 0 0 30px; }
.cs-filters h3 { font-family: var(--sans); font-size: 14px; letter-spacing: .22em; color: var(--ink-mid); margin: 0 0 8px; }
.cs-filters ul { list-style: none; margin: 0; padding: 0; }
.cs-filters li { display: inline-block; margin: 0 8px 6px 0; }
.cs-filters a { display: inline-block; padding: 3px 10px; border: 1px solid var(--rule); border-radius: 3px; color: var(--ink); text-decoration: none; font-size: 14px; }
.cs-filters a.is-on { border-color: var(--shu); color: var(--shu); }
.cs-list { list-style: none; margin: 0; padding: 0; }
.cs-list li { padding: 18px 0; border-top: 1px solid var(--rule); }
.cs-list .cs-meta { font-family: var(--sans); font-size: 12.5px; letter-spacing: .06em; color: var(--ink-mid); margin: 0 0 4px; }
.cs-list h2 { font-family: var(--serif); font-size: 1.2em; margin: 0 0 6px; }
.cs-list .cs-q { margin: 0 0 6px; font-size: 16px; }
.cs-chips { margin: 4px 0 0; }
.cs-chips span, .cs-chips a { display: inline-block; margin: 0 6px 4px 0; padding: 1px 8px; border: 1px solid var(--rule); border-radius: 3px; font-family: var(--sans); font-size: 14px; color: var(--ink-mid); text-decoration: none; }
/* 事件の頁の右柱（仕組み）は一覧と同じ札。押せる札は縁が金になる */
.cs-chips a:hover { border-color: var(--gold); color: var(--ink); }
dd.cs-chips { margin: 4px 0 0; }
.cs-draft { color: var(--shu); font-family: var(--sans); font-size: 14px; letter-spacing: .12em; }
.cs-bigq { font-family: var(--serif); font-size: 1.35em; line-height: 1.7; margin: 8px 0 22px; padding-left: 14px; border-left: 3px solid var(--shu); }
.cs-part { margin: 0 0 34px; }
.cs-part h2 { font-family: var(--sans); font-size: 12.5px; letter-spacing: .24em; color: var(--shu); margin: 0 0 10px; }
.cs-note { padding: 14px 18px; border: 1px solid var(--rule); background: rgba(255,255,255,.5); font-size: 16px; }
.cs-src li, .cs-rel li { margin: 0 0 6px; overflow-wrap: anywhere; }
.cs-req { margin: 8px 0 0 1.2em; font-size: 16px; }
@media (max-width: 760px) { .cs-filters { grid-template-columns: 1fr; gap: 12px; } }

/* CASE FILES 下書き: 史料の地図（オーナー・レビュー用。published では出ない） */
.cs-em { margin: 18px 0 0; }
.cs-em h3 { font-family: var(--sans); font-size: 14px; letter-spacing: .16em; color: var(--shu); margin: 22px 0 8px; }
.cs-em .tblwrap { overflow-x: auto; max-width: 100%; }
.cs-em table { border-collapse: collapse; width: 100%; min-width: 640px; font-size: 16px; line-height: 1.6; }
.cs-em th, .cs-em td { border: 1px solid var(--rule); padding: 6px 8px; text-align: left; vertical-align: top; }
.cs-em th { font-family: var(--sans); font-size: 14px; letter-spacing: .06em; background: rgba(0,0,0,.03); white-space: nowrap; }
.cs-em td small { font-size: 14px; color: var(--ink-mid); display: block; }   /* ⚠ --ink-2 は未定義の変数だった（check:css） */
.cs-em ul, .cs-em ol { margin: 6px 0 0 1.2em; font-size: 16px; }
.cs-em li { margin: 0 0 6px; overflow-wrap: anywhere; }
.cs-em .cs-em-status { font-family: var(--sans); font-size: 14px; letter-spacing: .06em; }

/* ── 主ナビ＝学び方の四段（2026-09-04・nav.js）。五つの束ね（読む・深める・確かめる・考える・学校について）を
   同じ器（.ac-drop）で出す。いま居る頁を含む束ねは summary に印。⚠ 段の名は辞書（gakubu.steps）から。ここで文言を書かない ── */
.ac-nav .ac-drop[data-cur] > summary { color: var(--navy); border-bottom-color: var(--gold-deep); }
.ac-nav .ac-drop-panel { min-width: 180px; }
.ac-nav .ac-drop-panel a[aria-current] { color: var(--navy); font-weight: 700; }
.ac-menu-panel small { display: block; margin: 10px 0 4px; }

/* ── CASE FILES 図解と札（2026-09-04・オーナー指摘「表でなく直感的に」）。語彙の id は出さず日本語の札。色は 確かめた＝緑／これから＝琥珀／争いあり＝朱 ── */
.cs-pill { display: inline-block; padding: 2px 10px; border-radius: 999px; font-family: var(--sans); font-size: 14px; line-height: 1.5; border: 1px solid var(--rule); color: var(--ink); margin: 0 6px 4px 0; white-space: nowrap; }
.cs-pill--ok { background: rgba(46,125,50,.12); border-color: rgba(46,125,50,.5); color: #1f6b25; }
.cs-pill--todo { background: rgba(184,134,11,.12); border-color: rgba(184,134,11,.55); color: #7a5a06; }
.cs-pill--dispute { background: rgba(176,55,31,.10); border-color: rgba(176,55,31,.55); color: var(--shu); }
.cs-pill--core { background: var(--navy); border-color: var(--navy); color: #fff; }
.cs-srcchip { display: inline-block; font-family: var(--sans); font-size: 14px; padding: 1px 8px; margin: 0 6px 4px 0; border: 1px dashed var(--rule); border-radius: 3px; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.cs-srcchip:hover { border-style: solid; color: var(--navy); }
.cs-fig { margin: 22px 0 8px; }
.cs-fig figcaption { font-family: var(--sans); font-size: 14px; letter-spacing: .12em; color: var(--ink-mid); margin: 0 0 10px; }
.cs-fig-src { letter-spacing: 0; }
/* 年表（縦） */
.cs-tl ol { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 3px solid var(--rule); }
.cs-tl > ol > li { margin: 0 0 18px; position: relative; }
.cs-tl > ol > li::before { content: ''; position: absolute; left: -21px; top: 6px; width: 11px; height: 11px; border-radius: 50%; background: var(--shu); }
.cs-tl-y { display: block; font-family: var(--serif); font-size: 20px; margin: 0 0 4px; }
.cs-tl ul { list-style: none; margin: 0; padding: 0; }
.cs-tl ul li { display: grid; grid-template-columns: 6.5em 1fr; gap: 6px 10px; align-items: baseline; font-size: 16px; line-height: 1.7; margin: 0 0 4px; }
.cs-tl-d { font-family: var(--sans); font-size: 15px; color: var(--ink-mid); }
.cs-tl ul li .cs-srcchip { grid-column: 2; justify-self: start; }
@media (max-width: 560px) { .cs-tl ul li { grid-template-columns: 1fr; } .cs-tl ul li .cs-srcchip { grid-column: 1; } }
/* 数の推移（SVG） */
.cs-chart svg { width: 100%; height: auto; display: block; background: rgba(255,255,255,.55); border: 1px solid var(--rule); }
.cs-ch-title { font-family: var(--sans); font-size: 18px; font-weight: 700; fill: var(--ink); }
.cs-ch-grid { stroke: rgba(29,26,22,.18); stroke-width: 1; }
.cs-ch-tick { font-family: var(--sans); font-size: 14px; fill: var(--ink-mid); }
.cs-ch-line { fill: none; stroke: var(--shu); stroke-width: 3; stroke-linejoin: round; }
.cs-ch-dot { fill: var(--shu); } .cs-ch-dot.is-note { fill: var(--gold-deep); }
.cs-ch-val { font-family: var(--sans); font-size: 16px; font-weight: 700; fill: var(--ink); }
.cs-ch-lab { font-family: var(--sans); font-size: 14px; fill: var(--ink); }
.cs-ch-note { font-family: var(--sans); font-size: 14px; fill: var(--ink-mid); }
/* 史料の層 */
.cs-layers-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.cs-layer { border: 1px solid var(--rule); padding: 10px 14px; background: rgba(255,255,255,.45); }
.cs-layer h3, .cs-layer h4 { font-family: var(--sans); font-size: 14px; letter-spacing: .14em; color: var(--shu); margin: 0 0 8px; }
.cs-layer ul { list-style: none; margin: 0; padding: 0; } .cs-layer li { font-size: 16px; line-height: 1.6; margin: 0 0 8px; overflow-wrap: anywhere; }
.cs-layer li small { display: block; font-size: 14px; color: var(--ink-mid); }
/* 数の行（値｜何の数・いつ｜出所）。縦に積まない */
.cs-nums { display: grid; gap: 0; margin: 14px 0 0; border-top: 1px solid var(--rule); }
.cs-num { display: grid; grid-template-columns: minmax(9em, 14em) 1fr minmax(10em, 16em); gap: 4px 16px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--rule); border-left: 4px solid transparent; padding-left: 10px; }
.cs-num--ok { border-left-color: #1f6b25; } .cs-num--todo { border-left-color: #b8860b; } .cs-num--dispute { border-left-color: var(--shu); }
.cs-num-v { font-family: var(--serif); font-size: 19px; line-height: 1.4; overflow-wrap: anywhere; } .cs-num-v small { display: block; font-family: var(--sans); font-size: 14px; color: var(--ink-mid); }
.cs-num-body { display: flex; flex-direction: column; gap: 2px; } .cs-num-what { font-size: 16px; line-height: 1.6; }
.cs-num-meta, .cs-num-src { font-family: var(--sans); font-size: 14px; color: var(--ink-mid); line-height: 1.6; }
.cs-num-src small { display: block; }
@media (max-width: 700px) { .cs-num { grid-template-columns: 1fr; gap: 2px; } }
/* 俗説の判定 */
.cs-myths { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin: 14px 0 0; }
.cs-myth { border: 1px solid var(--rule); border-left: 5px solid var(--rule); padding: 10px 14px; background: rgba(255,255,255,.45); }
.cs-myth--dispute { border-left-color: var(--shu); } .cs-myth--todo { border-left-color: #b8860b; } .cs-myth--ok { border-left-color: #1f6b25; }
.cs-myth-claim { font-family: var(--serif); font-size: 17px; margin: 0 0 6px; }
.cs-myth-verdict { margin: 0 0 4px; } .cs-myth-origin { font-family: var(--sans); font-size: 14px; color: var(--ink-mid); }
.cs-myth-src { margin: 0; }
/* 研究者の見方 */
.cs-dispute { margin: 14px 0 0; } .cs-dispute h3, .cs-dispute h4 { font-family: var(--serif); font-size: 18px; margin: 0 0 8px; }
.cs-positions { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.cs-pos { border: 1px solid var(--rule); padding: 10px 12px; background: rgba(255,255,255,.45); font-size: 16px; }
.cs-pos b { display: block; font-family: var(--sans); font-size: 14px; letter-spacing: .06em; color: var(--shu); margin: 0 0 4px; } .cs-pos p { margin: 0 0 6px; }
.cs-handling { font-size: 15px; color: var(--ink-mid); margin: 8px 0 0; }
/* 確かめる作業の盤（下書きだけ） */
.cs-part--review { border-top: 3px solid var(--gold-deep); padding-top: 14px; }
.cs-strip { display: grid; gap: 8px; margin: 14px 0 6px; }
.cs-bar { display: grid; grid-template-columns: 9em 1fr; gap: 6px 12px; align-items: center; font-size: 15px; }
.cs-bar-l { font-family: var(--sans); font-size: 14px; letter-spacing: .06em; color: var(--ink-mid); }
.cs-bar-t { display: flex; height: 14px; border-radius: 7px; overflow: hidden; background: rgba(0,0,0,.06); }
.cs-bar-t i { display: block; height: 100%; } .cs-bar-ok { background: #2e7d32; } .cs-bar-todo { background: #c9962b; } .cs-bar-dispute { background: var(--shu); }
.cs-bar-n { grid-column: 2; }
@media (max-width: 560px) { .cs-bar { grid-template-columns: 1fr; } .cs-bar-n { grid-column: 1; } }
.cs-claims { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; }
.cs-claim { border: 1px solid var(--rule); border-left: 5px solid var(--rule); padding: 10px 14px; background: rgba(255,255,255,.45); }
.cs-claim--ok { border-left-color: #1f6b25; } .cs-claim--todo { border-left-color: #b8860b; } .cs-claim--dispute { border-left-color: var(--shu); }
.cs-claim-head { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 4px; margin: 0 0 6px; }
.cs-claim-no { font-family: var(--sans); font-size: 14px; letter-spacing: .08em; color: var(--ink-mid); margin-right: 6px; }
.cs-conf { font-family: var(--sans); font-size: 14px; color: var(--ink-mid); margin-left: auto; }
.cs-claim-text { margin: 0 0 6px; font-size: 16px; line-height: 1.75; } .cs-claim-src { margin: 0; } .cs-claim-note { margin: 4px 0 0; font-size: 14px; color: var(--ink-mid); }
.cs-unknowns { margin: 8px 0 0 1.2em; font-size: 16px; } .cs-unknowns li { margin: 0 0 6px; }
.cs-cmp { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin: 8px 0 0; }
.cs-cmp-card { border: 1px solid var(--rule); padding: 10px 14px; background: rgba(255,255,255,.45); font-size: 15px; }
.cs-cmp-card h4 { font-family: var(--sans); font-size: 14px; letter-spacing: .08em; margin: 0 0 8px; color: var(--navy); }
.cs-cmp-card dl { margin: 0; display: grid; grid-template-columns: 5em 1fr; gap: 4px 10px; } .cs-cmp-card dt { font-family: var(--sans); font-size: 14px; color: var(--shu); } .cs-cmp-card dd { margin: 0; }
.cs-cmp-card--no { border-style: dashed; } .cs-cmp-card--no ul { margin: 0 0 0 1.1em; padding: 0; }
.cs-inhouse { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.cs-inhouse li { border: 1px dashed var(--rule); padding: 8px 12px; font-size: 15px; } .cs-inhouse li b { font-family: var(--sans); font-size: 14px; color: var(--ink-mid); } .cs-inhouse li p { margin: 4px 0 0; }
/* 一覧の絞り込み: 時代・種類は常に出し、仕組み・問い・史料は畳む（史料は 2 列） */
.cs-facets { margin: 0 0 26px; }
.cs-facets .cs-facet-row { margin: 0 0 10px; }
/* 2026-09-08 監査 A-022: 見出しの段が飛んでいた（h2 の下が h4／h1 の下が h3）。タグだけ上げ、装いは同じにする */
.cs-facets h2 { font-family: var(--sans); font-size: 14px; /* 14px 未満禁止（読者は 60 代が多い・2026-09-04 裁定）。12→14 */ letter-spacing: .22em; color: var(--ink-mid); margin: 0 0 6px; }
.cs-facets ul { list-style: none; margin: 0; padding: 0; } .cs-facets li { display: inline-block; margin: 0 8px 6px 0; }
.cs-facets a { display: inline-block; padding: 3px 10px; border: 1px solid var(--rule); border-radius: 3px; color: var(--ink); text-decoration: none; font-size: 14px; }
.cs-facets a.is-on { border-color: var(--shu); color: var(--shu); }
/* 畳んだ絞り込みの見出しに添える件数（2026-09-04）。check:css が定義無しと出した */
.cs-facet > summary .cs-facet-n { display: inline-block; margin-left: 8px; font-family: var(--sans); font-size: 14px; letter-spacing: .04em; color: var(--ink-faint); }
.cs-facet { border-top: 1px solid var(--rule); }
.cs-facet > summary { list-style: none; cursor: pointer; font-family: var(--sans); font-size: 14px; letter-spacing: .14em; color: var(--ink-mid); padding: 10px 0; display: flex; align-items: center; gap: 8px; }
.cs-facet > summary::-webkit-details-marker { display: none; }
.cs-facet > summary::after { content: ''; width: 6px; height: 6px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); margin-left: 2px; }
.cs-facet[open] > summary::after { transform: rotate(-135deg); }
.cs-facet > summary .cs-facet-on { color: var(--shu); letter-spacing: 0; }
.cs-facet .cs-facet-body { padding: 0 0 12px; }
.cs-facet--src ul { columns: 2; column-gap: 24px; } .cs-facet--src li { display: block; break-inside: avoid; margin: 0 0 6px; }
.cs-facet--src a { display: inline-block; max-width: 100%; white-space: normal; }
@media (max-width: 700px) { .cs-facet--src ul { columns: 1; } }

/* ── 表示の面の切替釦（2026-09-04）。上段の語と同じ見た目の文字釦。目次の中では項目と同じ行の形 ── */
.ac-head-top-in .theme-btn { background: none; border: 0; padding: 0; margin: 0 0 0 14px; font: inherit; font-size: 14px; color: var(--ink-mid); cursor: pointer; letter-spacing: .02em; }
.ac-head-top-in .theme-btn:hover { color: var(--navy); }
.ac-menu-panel .theme-btn--menu { display: block; width: 100%; text-align: left; background: none; border: 0; font: inherit; font-size: 15px; color: var(--ink); padding: 10px 12px; cursor: pointer; }
.ac-menu-panel .theme-btn--menu:hover { background: var(--paper); }
html { color-scheme: dark; }
html[data-theme="light"] { color-scheme: light; }
/* ⚠ 2026-09-04 オーナー「目次が背景色とかぶって文字が見にくい」: 目次の板は頁と同じ色調で、縁が消え、板の外の本文が板の字と重なって見えた。
   開いている間は頁全体に幕を掛け（大きな影を幕に使う）、板を頁から切り離す */
.ac-menu[open] > .ac-menu-panel { box-shadow: 0 0 0 100vmax rgba(10, 12, 14, .55), var(--shadow-float); }

/* 項目が一つだけの段（深める＝科目）は束ねずに直行する <a>（nav.js の規則）。見た目は束ねの見出し（.ac-drop > summary）と同じ行に並ぶ。
   ⚠ 2026-09-04 check:css「定義が無い」→ .ac-nav a の規則を継ぐことを明示 */
.ac-nav a.ac-nav-one { display: inline-flex; align-items: center; }
.ac-nav a.ac-nav-one[aria-current="page"] { color: var(--gold-deep); }

/* ── 実技（/jitsugi・2026-09-04）。どの文字も 14px 以上 ── */
.jg-kind { margin: 28px 0 8px; }
.jg-kind h2 .jg-n { display: inline-block; margin-left: 10px; font-family: var(--sans); font-size: 14px; color: var(--ink-faint); font-weight: 500; }
.jg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin: 12px 0 24px; }
.jg-card { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border: 1px solid var(--rule); border-radius: var(--r); background: var(--paper-white); text-decoration: none; color: var(--ink); }
.jg-card:hover { border-color: var(--gold); }
.jg-card .jg-q { font-size: 14px; color: var(--ink-mid); }
.jg-card .jg-t { font-family: var(--serif); font-size: 18px; font-weight: 600; line-height: 1.5; }
.jg-card .jg-scene { font-size: 14px; color: var(--ink-faint); }
.jg-card .jg-ja { align-self: flex-start; font-size: 14px; color: var(--ink-faint); border: 1px solid var(--rule); border-radius: 3px; padding: 0 6px; }
.jg-scene-line { font-size: 15px; color: var(--ink-mid); }
.jg-steps { padding-left: 1.4em; } .jg-steps li { margin: 8px 0; } .jg-steps li span { display: block; font-size: 15px; color: var(--ink-mid); }
.jg-calc { margin: 28px 0; padding: 18px 20px; border: 1px solid var(--rule); border-radius: var(--r); background: var(--paper-white); }
.jg-calc-grid { display: grid; grid-template-columns: 1fr; gap: 16px; } .jg-inputs, .jg-outputs { min-width: 0; } @media (min-width: 720px) { .jg-calc-grid { grid-template-columns: 1fr 1fr; } }
.jg-calc h3 { font-size: 15px; margin: 0 0 8px; color: var(--ink-mid); }
.jg-in { display: block; margin: 0 0 10px; } .jg-in span { display: block; font-size: 15px; margin-bottom: 4px; } .jg-in small { font-size: 14px; color: var(--ink-faint); margin-left: 4px; }
.jg-in input { width: 100%; max-width: 16em; font-size: 16px; padding: 6px 8px; border: 1px solid var(--rule-strong); border-radius: 3px; background: var(--paper); color: var(--ink); box-sizing: border-box; }
.jg-out { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dotted var(--rule); font-size: 15px; } .jg-out b { font-family: var(--mono); font-size: 17px; } .jg-out small { font-size: 14px; color: var(--ink-faint); margin-left: 4px; }
.jg-formula { font-size: 15px; color: var(--ink-mid); margin: 12px 0 0; }
.jg-src { list-style: none; padding: 0; } .jg-src li { margin: 6px 0; } .jg-src small { display: block; font-size: 14px; color: var(--ink-faint); }
.jg-rel a { margin-right: 8px; }


/* ── 学問の地図（/gakumon・2026-09-05）。文字は 14px 以上（09-04 裁定） ── */
.gk-sec { margin: 40px 0; }
.gk-quote { margin: 16px 0; padding: 18px 22px; border-left: 4px solid var(--gold, #8a6d3b); background: var(--paper-white); border-radius: var(--r); }
.gk-quote p { margin: 0 0 8px; } .gk-quote .gk-orig { font-size: 15px; color: var(--ink-mid); font-style: italic; margin: 0; }
.gk-note { font-size: 15px; color: var(--ink-mid); } .gk-school { font-size: 15px; color: var(--ink-mid); margin: 8px 0 0; }
.gk-timeline { list-style: none; padding: 0; margin: 12px 0; border-left: 2px solid var(--rule); }
.gk-timeline li { position: relative; padding: 0 0 18px 22px; } .gk-timeline li::before { content: ''; position: absolute; left: -6px; top: 8px; width: 10px; height: 10px; border-radius: 50%; background: var(--gold, #8a6d3b); }
.gk-year { display: block; font-size: 15px; letter-spacing: .04em; color: var(--ink-mid); } .gk-timeline p { margin: 4px 0; } .gk-timeline small { font-size: 14px; }
.gk-table { width: 100%; border-collapse: collapse; font-size: 15px; } .gk-table th, .gk-table td { border-top: 1px solid var(--rule); padding: 10px 12px; vertical-align: top; text-align: left; }
.gk-table thead th { border-top: 0; font-size: 14px; color: var(--ink-mid); font-weight: 600; } .gk-table th small, .gk-table td small { display: block; font-size: 14px; color: var(--ink-mid); margin-top: 4px; }
.gk-table tbody th { font-weight: 600; min-width: 12em; } .gk-methods tbody th { font-weight: 500; }
.gk-src { font-size: 14px; } .gk-sources { padding-left: 1.2em; } .gk-sources li { margin: 4px 0; font-size: 15px; }
.gk-bridge { padding: 20px 22px; border: 1px solid var(--rule); border-radius: var(--r); background: var(--paper-white); }

/* 種類と個体を分けて示す表（2026-09-08・調べる導線）
   ⚠ 明暗どちらの面でも読めるように、区切りは**色の面ではなく罫**で作る。
      背景の淡い網は暗い面でほとんど見えない（theme-dark の下で消える）。
   ⚠ 幅の狭い画面では横に溢れさせない。読者は携帯で実物を見にくる。 */
.yo-spec { border-collapse: collapse; width: 100%; margin: 1rem 0 .4rem; }
.yo-spec th, .yo-spec td { border-bottom: 1px solid var(--rule, #d8d2c6); padding: .5rem .6rem;
  text-align: left; vertical-align: top; font-size: 16px; line-height: 1.7; }
.yo-spec th { white-space: nowrap; font-weight: 500; color: var(--ink-faint); width: 10em; }
.yo-spec .yo-spec-h { width: auto; color: var(--ink); font-weight: 600;
  border-bottom: 2px solid var(--rule, #d8d2c6); padding-top: 1.1rem; }
.yo-spec tr:first-child .yo-spec-h { padding-top: .3rem; }
@media (max-width: 560px) {
  .yo-spec th { width: 6.6em; }
  .yo-spec th, .yo-spec td { padding: .45rem .3rem; }
}

/* 出典と観察の並び（2026-09-08 監査 A-019）。
   2026-09-08 に足したクラスに定義が無く、配信面では**ブラウザ既定の 40px**で出ていた
   （実測: 本番 /guide/checking-rarity・/jitsubutsu/coin/lysimachos-tetradrachm いずれも左 40px）。
   この頁族（.yo）には箇条書きの規則がそもそも無い（今日まで箇条書きが無かったため）ので、
   値は**この site の読み物頁の既存規則をそのまま採る** — 659〜660 行の
   `.ac-prose ul, .ac-prose ol` / `.ac-prose li`。新しい寸法を作らない。
   ⚠ font-size / line-height / color は写さない。.yo 族は自前の本文律（p の余白 1.1rem・行送り 1.8）を
      持っており、.ac-prose の 1.9 と var(--ink-mid) を混ぜると同じ頁の中で本文の律が二つになる */
.yo-src, .yo-obs { padding-left: 1.4em; margin: 0 0 1.4em; }
.yo-src li, .yo-obs li { margin-bottom: .5em; }

/* ⚠⚠ 2026-09-08 監査 A-022 の後始末。`.yo h2`（774 行）はこの頁族の**節の札**の装い
   （小さな mono・金・下罫）で、段を h2 へ上げた見出しがその札に化けた（実測: 事件の題が
   20.4px 明朝 → 14px 金・字間 .16em）。事件の題と絞り込みの見出しは札ではなく中身なので、
   札の装いだけを打ち消して元の見え方に戻す。
   ⚠ 詳細度: type-scale.css の `html .yo h2` が (0,1,2) なので `.cs-list h2` (0,1,1) では負ける。
      `.yo` を前に足して (0,2,1) にする。色と行送りは元どおり**継承**に返す（h3 のときも継承だった） */
.yo .cs-list h2 { font-family: var(--serif); font-size: 1.2em; font-weight: 700; letter-spacing: normal;
  color: inherit; margin: 0 0 6px; border-bottom: 0; padding-bottom: 0; }
.yo .cs-facets h2 { font-family: var(--sans); font-size: 14px; font-weight: 700; letter-spacing: .22em;
  color: var(--ink-mid); margin: 0 0 6px; border-bottom: 0; padding-bottom: 0; }  /* ⚠ 余白は生きている .cs-facets h2（1074 行）の 6px。死んでいる .cs-filters h3 の 8px を写して 1 度間違えた */

/* 次の話への送り（2026-09-09 オーナー指摘「映像もいちいち止まらないように」）。
   ⚠ 目立たせるが、本編の上には重ねない（見返している人の邪魔をしない）。
   ⚠ 文字の大きさは 16px（読者は 60 代が多い・2026-09-04 裁定）*/
.jv-next { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem;
  margin: .8rem 0 0; padding: .8rem 1rem; font-size: 16px; line-height: 1.7;
  border: 1px solid var(--rule); border-radius: 3px; }
.jv-next b { font-size: 18px; }
