
  :root {
    --ink:#0e1013; --panel:#14171c; --line:#262b33;
    --amber:#d99a2b; --amber-dim:rgba(217,154,43,.35); --amber-faint:rgba(217,154,43,.12);
    --paper:#e9e4d8; --muted:#9096a0;
    --serif:"Yu Mincho","YuMincho","Hiragino Mincho ProN","MS PMincho",serif;
    --sans:"Yu Gothic Medium","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
    --mono:"Consolas","SF Mono","Courier New",monospace;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  body { background:var(--ink); color:var(--paper); font-family:var(--sans); font-size:16px; line-height:1.9; -webkit-font-smoothing:antialiased; }
  h1,h2,h3 { font-family:var(--serif); font-weight:600; word-break:auto-phrase; text-wrap:balance; }
  a { color:var(--paper); text-decoration:none; }
  ::selection { background:var(--amber); color:var(--ink); }
  .statusbar { position:sticky; top:0; z-index:100; display:flex; justify-content:space-between; align-items:center;
    padding:0 20px; height:40px; background:rgba(14,16,19,.9); border-bottom:1px solid var(--line);
    font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--muted); }
  .statusbar a { color:var(--muted); } .statusbar a:hover { color:var(--amber); }
  .statusbar b { color:var(--amber); font-weight:400; }
  .wrap { max-width:760px; margin:0 auto; padding:0 24px; }
  footer { border-top:1px solid var(--line); margin-top:80px; padding:26px 0 34px; font-family:var(--mono); font-size:11px; color:var(--muted); }
  footer .wrap { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; max-width:1080px; }
  .wrap.layout { max-width:1080px; display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:56px; align-items:start; }
  @media (max-width:860px) { .wrap.layout { grid-template-columns:1fr; } }
  .btn { display:inline-block; border:1px solid var(--amber); color:var(--amber); font-family:var(--mono); font-size:12px; letter-spacing:.1em; padding:10px 20px; transition:background .25s,color .25s; }
  .btn:hover { background:var(--amber); color:var(--ink); }
  aside.side { padding-top:46px; }
  .side-box { border:1px solid var(--line); padding:18px; margin-bottom:20px; }
  .side-box.sub { border-color:var(--amber-dim); background:var(--amber-faint); }
  .side-box h2 { font-family:var(--mono); font-weight:400; font-size:11px; color:var(--amber); letter-spacing:.16em; margin-bottom:10px; }
  .side-box p { font-size:12px; color:var(--muted); line-height:1.8; }
  .side-box .btn { margin-top:12px; }
  .side-list { list-style:none; }
  .side-list a { display:block; padding:8px 0; font-size:13px; line-height:1.7; border-top:1px solid var(--line); }
  .side-list a:hover { color:var(--amber); }
  .side-list .d { font-family:var(--mono); font-size:10px; color:var(--muted); display:block; }
  .side-list.months a { display:flex; justify-content:space-between; font-family:var(--mono); font-size:12px; }
  .side-list.months .c { color:var(--muted); }
  .sub-cta { border:1px solid var(--amber-dim); background:var(--amber-faint); padding:26px 24px; margin-top:56px; }
  .sub-cta h2 { font-size:19px; margin-bottom:8px; }
  .sub-cta p { font-size:13px; color:var(--muted); }
  .sub-cta .btn { margin-top:14px; }

  .crumbs { padding:26px 0 0; font-family:var(--mono); font-size:11px; color:var(--muted); }
  .crumbs a { color:var(--muted); border-bottom:1px solid var(--line); } .crumbs a:hover { color:var(--amber); }
  article header.a-head { padding:26px 0 34px; border-bottom:1px solid var(--line); }
  .a-date { font-family:var(--mono); font-size:12px; color:var(--amber); letter-spacing:.14em; }
  article h1 { font-size:clamp(24px,4vw,34px); margin-top:12px; line-height:1.6; }
  .disclosure { margin-top:18px; font-size:12px; color:var(--muted); border:1px solid var(--line); padding:10px 14px; font-family:var(--mono); }
  .a-body { padding:36px 0 0; }
  .a-body h2 { font-size:21px; margin:44px 0 18px; padding-bottom:10px; border-bottom:1px solid var(--line); }
  .a-body p { margin:0 0 1.3em; }
  .a-body ol { margin:0 0 1.3em 1.5em; }
  .a-body ol li { padding:3px 0; }
  .a-body .src { font-family:var(--mono); font-size:12px; }
  .a-body .src a { color:var(--muted); border-bottom:1px solid var(--line); word-break:break-all; }
  .a-body .src a:hover { color:var(--amber); }
  .pager { display:flex; justify-content:space-between; gap:16px; margin-top:60px; border-top:1px solid var(--line); padding-top:22px; }
  .pager a { font-size:13px; color:var(--muted); max-width:45%; } .pager a:hover { color:var(--amber); }
  .pager .lbl { font-family:var(--mono); font-size:10px; color:var(--amber); letter-spacing:.14em; display:block; }

  header.page { padding:90px 0 50px; border-bottom:1px solid var(--line); }
  header.page h1 { font-size:clamp(28px,5vw,44px); letter-spacing:.04em; }
  header.page p { margin-top:16px; font-size:14px; color:var(--muted); max-width:620px; }
  header.page .mono { font-family:var(--mono); font-size:11px; color:var(--amber); letter-spacing:.2em; margin-bottom:14px; }
  .year { padding:46px 0 8px; }
  .year h2 { font-family:var(--mono); font-weight:400; font-size:13px; color:var(--amber); letter-spacing:.2em; border-bottom:1px solid var(--line); padding-bottom:10px; }
  .issues { list-style:none; }
  .issues li { border-bottom:1px solid var(--line); }
  .issues a { display:grid; grid-template-columns:110px minmax(0,1fr); gap:6px 22px; padding:20px 4px; transition:background .2s; }
  @media (max-width:620px) { .issues a { grid-template-columns:1fr; } }
  .issues a:hover { background:var(--panel); }
  .issues .meta { font-family:var(--mono); font-size:12px; color:var(--amber); padding-top:5px; }
  .issues .body h3 { font-size:17px; line-height:1.7; }
  .issues .body p { font-size:12px; color:var(--muted); margin-top:4px; }
