
:root { --ink:#4a3428; --sub:#7a5c3e; --faint:#a3805a; --bg:#f1e8d2; --card:#fffdf6; --line:#e8dcc3; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink);
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif; line-height:1.9; }
main { width:min(720px, calc(100% - 24px)); margin:24px auto; padding:32px 28px 64px;
  background:var(--card); border:1px solid var(--line); border-radius:18px;
  box-shadow:0 2px 24px rgba(74,52,40,.08); }
header.site { text-align:center; margin:24px 0 40px; }
header.site h1 { font-size:34px; letter-spacing:.12em; margin:0; }
header.site p { color:var(--faint); margin:6px 0 0; font-size:14px; letter-spacing:.2em; }
.card { background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:18px 18px 8px; margin:0 0 28px; }
.card img { width:100%; height:auto; border-radius:10px; }
.card h2 { font-size:20px; margin:14px 4px 4px; }
.card h2 a { color:var(--ink); text-decoration:none; }
.card p { color:var(--sub); margin:0 4px 12px; font-size:15px; }
article img { max-width:100%; height:auto; border-radius:10px; }
article .stamp { width:180px; }
article .jar { width:150px; }
.bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.lang-switch { border:1px solid var(--line); border-radius:999px; padding:2px 3px;
  font-size:12px; display:inline-flex; gap:2px; line-height:1.5; }
.lang-switch b { background:var(--ink); color:var(--card); border-radius:999px;
  padding:0 9px; font-weight:normal; }
.lang-switch a { color:var(--sub); padding:0 9px; text-decoration:none; }
.lang-switch .off { color:var(--faint); padding:0 9px; opacity:.55; }
.subnav { display:flex; gap:6px 30px; flex-wrap:wrap; border-bottom:1px solid var(--line);
  padding-bottom:12px; margin-bottom:28px; }
.subnav .item { display:inline-flex; align-items:baseline; }
.subnav a { color:var(--ink); font-size:14.5px; font-weight:bold; text-decoration:none; }
.subnav .desc { color:var(--sub); font-size:12.5px; margin-left:8px; }
.bar .brand { font-size:19px; font-weight:bold; letter-spacing:.1em; color:var(--ink); text-decoration:none; }
.bar nav a { color:var(--sub); font-size:14px; text-decoration:none; }
nav.pager.top { margin:0 0 24px; }
article p { margin:0 0 1.2em; }
article blockquote { margin:0 0 1.2em; padding:.85em 1.1em .85em 2.1em; position:relative;
  background:#faf2dd; border-left:4px solid var(--faint); border-radius:0 10px 10px 0;
  color:#5d4630; }
article blockquote::before { content:"“"; position:absolute; left:.35em; top:.05em;
  font-size:30px; line-height:1; color:var(--faint); }
article blockquote p { margin:0 0 .8em; }
article blockquote p:last-child { margin-bottom:0; }
article blockquote.has-speaker { padding:.85em 1.1em; }
article blockquote.has-speaker::before { content:""; }
.speaker { display:flex; align-items:center; gap:.55em; margin-bottom:.6em; }
.speaker img.sp-icon { width:30px; height:30px; border-radius:50%; object-fit:contain;
  padding:2px; border:1px solid var(--line); background:#fff; }
.speaker span.sp-icon { width:30px; height:30px; border-radius:50%; display:inline-flex;
  align-items:center; justify-content:center; font-weight:bold; font-size:15px;
  color:var(--sub); background:#f3e6c8; border:1px solid var(--line); }
.speaker .sp-name { font-weight:bold; font-size:.92em; color:var(--sub); letter-spacing:.04em; }
article code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.88em; background:#f7efdb; padding:.05em .35em; border-radius:5px; }
article pre { background:#f7efdb; border:1px solid var(--line); border-radius:10px;
  padding:.85em 1.1em; overflow-x:auto; margin:0 0 1.2em; line-height:1.6; }
article pre code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:13.5px; color:var(--ink); background:none; padding:0; }
.kakure-jar { background:none; border:none; padding:0 0 0 .25em; margin:0; cursor:pointer;
  font:inherit; vertical-align:baseline; }
.kakure-jar img { width:15px; height:15px; opacity:.35; vertical-align:-2px;
  transition:opacity .2s, transform .2s; border-radius:0; }
.kakure-jar:hover img, .kakure-jar.found img { opacity:1; }
.kakure-jar.found img { transform:translateY(-2px); }
.kakure-msg { display:inline-block; margin-left:.45em; padding:.05em .6em; font-size:.78em;
  color:var(--sub); background:#faf2dd; border:1px solid var(--line); border-radius:999px;
  vertical-align:baseline; max-width:100%; }
.kakure-msg[hidden] { display:none; }
article h1 { font-size:28px; margin:0 0 18px; }
article h2 { font-size:21px; margin:1.6em 0 .6em; }
nav.pager { display:flex; justify-content:space-between; gap:8px 24px; margin-top:40px; font-size:15px; }
nav.pager a { min-width:0; max-width:48%; }
nav.pager a:last-child { text-align:right; }
nav.pager a, .back a { color:var(--sub); }
footer { text-align:center; color:var(--faint); font-size:13px; margin-top:48px; }
