/* 文脈ライブラリー（/context/）の組版。
   /d/ /events/ と同じトークンを使う ―― 新しいデザインシステムは作らない。 */
:root{
  --teal:#004455; --teal-mid:#3D6B77; --teal-soft:#E3EDEF;
  --terra:#C75A3C; --terra-soft:#F8EAE3;
  --ink:#16282D; --muted:#5C7278; --line:#D3DFE2;
  --bg:#F2F6F7; --paper:#FFF; --moss:#8A6D3B; --moss-soft:#F5EFE2;
  --serif:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"Noto Serif JP",serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
body{font-family:"Inter","Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI",sans-serif;
  background:var(--bg);color:var(--ink);font-size:14px;line-height:1.7;}
a{color:var(--teal);}

.topbar{background:var(--teal);color:#fff;padding:12px 16px 0;}
.topbar .in{max-width:1100px;margin:0 auto;position:relative;}
.brand{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;
       color:inherit;text-decoration:none;}
.brand:hover{text-decoration:underline;}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--terra);flex:none;}
.sub{font-size:11px;color:#9FC0C9;margin-top:2px;}
.tabs{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.tabs a{flex:none;padding:8px 18px;font-size:12.5px;font-weight:700;color:#9FC0C9;
  background:rgba(255,255,255,.07);border-radius:8px 8px 0 0;text-decoration:none;}
.tabs a.active{background:var(--bg);color:var(--teal);}

/* ヘッダ（.topbar .in）と同じ 1100px。**幅を揃えないと本文の左端がロゴより
   内側に入り、面ごとにずれて見える**（820px だった頃に実際そう見えていた）。 */
.wrap{max-width:1100px;margin:0 auto;padding:14px 14px 40px;}
.loadbox{background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:28px 16px;text-align:center;color:var(--muted);font-size:13px;}

/* 冒頭の注記。誰の言葉かを最初に言い切る */
.lede{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--teal);
  border-radius:0 9px 9px 0;padding:12px 14px;margin-bottom:16px;font-size:12.5px;line-height:1.85;}
.lede h1{font-family:var(--serif);font-size:17px;color:var(--teal);margin-bottom:6px;}
.lede .note{margin-top:8px;padding-top:7px;border-top:1px dashed var(--line);
  font-size:11.5px;color:var(--muted);}

/* 回の一覧 */
.slist a{display:block;background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:13px 15px;margin-bottom:9px;text-decoration:none;color:var(--ink);}
.slist a:hover{border-color:var(--teal-mid);}
.slist .no{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--terra);}
.slist .th{font-family:var(--serif);font-size:15px;font-weight:700;line-height:1.55;margin:2px 0 5px;}
.slist .meta{font-size:11.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 14px;}

/* 回のページ */
.shead{background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;margin-bottom:6px;}
.shead .no{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--terra);}
.shead h1{font-family:var(--serif);font-size:18px;line-height:1.5;margin:3px 0 7px;color:var(--teal);}
.shead .meta{font-size:11.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 14px;}

.secnav{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 2px;font-size:12px;color:var(--muted);}
.secnav a{text-decoration:none;font-weight:600;}
.secnav a.off{color:var(--line);pointer-events:none;}

/* 節 ＝ セッションの進行。収録順のまま出し、変わるところで見出しを立てる */
.sec{display:flex;align-items:center;gap:8px;margin:20px 0 9px;}
.sec .bar{width:3px;height:15px;background:var(--teal);flex:none;}
.sec h2{font-family:var(--serif);font-size:14.5px;font-weight:700;color:var(--teal);}
.sec .ct{margin-left:auto;font-size:11px;color:var(--muted);}

.pt{background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:13px 15px;margin-bottom:9px;scroll-margin-top:12px;}
.pt:target{border-color:var(--terra);box-shadow:0 0 0 2px var(--terra-soft);}
.pt h3{font-family:var(--serif);font-size:15px;font-weight:700;line-height:1.55;margin-bottom:8px;}
.pt blockquote{background:var(--teal-soft);border-left:3px solid var(--teal);
  border-radius:0 6px 6px 0;padding:10px 12px;}
.pt blockquote .cite{font-size:10.5px;color:var(--teal);font-weight:700;margin-bottom:4px;}
.pt blockquote .cite .src{display:inline-block;background:#fff;border-radius:3px;
  padding:0 5px;margin-right:6px;font-size:9.5px;letter-spacing:.06em;
  border:1px solid rgba(0,68,85,.25);}
.pt blockquote p{font-family:var(--serif);font-size:13.5px;line-height:1.95;color:#20343a;
  text-align:justify;line-break:strict;}
.pt .used{margin-top:9px;font-size:11.5px;}
.pt .used a{font-weight:700;text-decoration:none;}
.pt .used a:hover{text-decoration:underline;}
.pt .unused{margin-top:9px;font-size:11px;color:var(--muted);}

.foot{margin-top:26px;background:var(--teal);color:#fff;border-radius:10px;padding:15px;
  text-align:center;font-size:12.5px;line-height:1.9;}
.foot a{color:#fff;font-weight:700;}

/* 節見出し。論点の流れの中では h3（ページの h2 は「A日程の記録」「この回で語られた論点」） */
.sec h3{font-family:var(--serif);font-size:13.5px;font-weight:700;color:var(--teal);}


/* プロジェクトの前提。回に属さないので、一覧では色を変えて区別する */
.slist a.p0{border-left:3px solid var(--moss);}
.slist a.p0 .no{color:var(--moss);}
/* 前提は「発言」ではないので、引用の体裁にしない（カギ括弧も付けない） */
.pt .claim{background:var(--moss-soft);border-left:3px solid var(--moss);
  border-radius:0 6px 6px 0;padding:10px 12px;font-family:var(--serif);
  font-size:13.5px;line-height:1.95;color:#20343a;text-align:justify;line-break:strict;}


/* 2段組（/d/ /events/ と同じ作り・同じ折り返し幅）と、右段の領域マップ
 *
 * 地図は**本文ではなく右段**に置く。15枠を眺める図ではなく、回へ降りるための
 * 道しるべだから ―― スクロールしても消えない位置にあってはじめて道しるべになる。
 * 扱っていない領域も隠さない（どこが空いているかまで含めて枠組み）。 */
@media (min-width:880px){
  .wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start;}
  .wrap > .main{min-width:0;}
  .aside{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow:auto;}
}
/* 狭い画面では段組をやめ、地図は一覧の**下**に回す（主役は回の一覧）。
   DOM は1つのまま order で入れ替える ―― 同じ内容を2度描かないため。 */
@media (max-width:879px){
  .wrap{display:flex;flex-direction:column;}
  .aside{order:1;margin-top:18px;}
}

.aside .box{background:var(--paper);border:1px solid var(--line);
  border-radius:10px;padding:12px 13px;}
.aside .ah{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.06em;
  color:var(--teal);font-weight:700;margin-bottom:6px;}
.aside .ah .ct{margin-left:auto;font-size:10.5px;color:var(--muted);font-weight:400;letter-spacing:0;}
.amap .lead{font-size:11px;color:var(--muted);line-height:1.75;margin-bottom:10px;}
.amap .alayer{margin-bottom:9px;}
.amap .lh{font-size:10.5px;color:var(--muted);margin:0 0 4px;}
.amap .lh b{font-family:var(--serif);font-size:12px;color:var(--teal);margin-right:6px;}
.amap .ac{display:flex;align-items:baseline;gap:7px;padding:5px 7px;border-radius:6px;
  text-decoration:none;color:var(--ink);border:1px solid transparent;}
.amap a.ac:hover{background:var(--teal-soft);border-color:var(--line);}
.amap .ac:target{border-color:var(--terra);background:var(--terra-soft);}
.amap .ac .code{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--terra);flex:none;}
.amap .ac .nm{font-size:12px;line-height:1.5;}
.amap .ac .go{margin-left:auto;font-size:10.5px;color:var(--teal);font-weight:700;
  white-space:nowrap;flex:none;}
/* まだ扱っていない領域。薄くするが、読めなくはしない */
.amap .ac.none .code,.amap .ac.none .nm{color:var(--muted);}
.amap .af{margin-top:10px;padding-top:9px;border-top:1px dashed var(--line);
  font-size:11px;color:var(--muted);}
