:root { --ink:#2b2a27; --sub:#6b675f; --faint:#a39e93; --accent:#4f7479; --mist:#dfe9ea; --paper:#fbfaf6; --line:#e3dfd6; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Zen Old Mincho","Yu Mincho","Hiragino Mincho ProN",serif; font-size:17px; line-height:2; }
a { color:var(--accent); }
.wrap { max-width:680px; margin:0 auto; padding:0 20px; }
.top { border-bottom:1px solid var(--line); }
.top .wrap { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:14px; padding-bottom:14px; font-family:"Cormorant Garamond",serif; letter-spacing:.2em; font-size:14px; }
.top a { text-decoration:none; color:var(--ink); }
.top .toc-link { color:var(--accent); }
.preview { background:#f6e7a8; color:#5a4a16; font-size:13px; line-height:1.7; padding:8px 20px; text-align:center; }
header.ch { padding:56px 0 28px; border-bottom:1px solid var(--line); margin-bottom:36px; }
.part { font-size:12px; letter-spacing:.2em; color:var(--sub); margin:0 0 18px; }
.cn { font-family:"Cormorant Garamond",serif; letter-spacing:.3em; font-size:14px; color:var(--accent); margin:0 0 4px; }
h1 { font-weight:400; font-size:26px; line-height:1.5; margin:0 0 6px; letter-spacing:.04em; }
.when { font-size:13px; color:var(--faint); letter-spacing:.1em; margin:0; }
article p { margin:0 0 1.1em; text-align:justify; }
article h3 { font-weight:700; font-size:18px; margin:2.6em 0 1em; letter-spacing:.06em; }
.q { font-weight:700; color:var(--accent); margin:2.2em 0 .8em !important; text-align:left !important; }
.q::before { content:"――"; letter-spacing:-.1em; margin-right:.3em; }
.hl { margin:1.6em 0 !important; padding:.2em 0 .2em 1.1em; border-left:2px solid var(--accent); font-size:18.5px; line-height:1.95; text-align:left !important; }
mark.chk { background:linear-gradient(transparent 55%, #f6e7a8 55%); color:inherit; padding:0 .05em; }
mark.chk[data-n]::after { content:"※" attr(data-n); font-size:11px; color:#a0822f; vertical-align:super; margin-left:.15em; }
figure { margin:2em 0; }
figure img { width:100%; max-height:70vh; object-fit:contain; display:block; background:#f1eee7; }
.ph-crop { width:min(100%, 340px); aspect-ratio:var(--ar,0.6); overflow:hidden; margin:0 auto; background:#efece5; }
.ph-crop img { width:100%; height:100%; max-height:none; object-fit:cover; object-position:center var(--op,50%); }
figcaption { font-size:13px; color:var(--sub); margin-top:8px; text-align:center; line-height:1.7; }
figure.video .yt { width:min(100%, 340px); aspect-ratio:9/16; margin:0 auto; background:#111; }
figure.video iframe { width:100%; height:100%; border:0; display:block; }
.pager { display:grid; grid-template-columns:1fr 1fr; gap:12px; border-top:1px solid var(--line); margin:56px 0 0; padding:24px 0 8px; }
.pager a { text-decoration:none; color:var(--ink); display:block; padding:12px 14px; border:1px solid var(--line); background:#fff; line-height:1.6; }
.pager a small { display:block; font-family:"Cormorant Garamond",serif; letter-spacing:.2em; font-size:12px; color:var(--accent); }
.pager .next { text-align:right; grid-column:2; }
.pager .toc { grid-column:1 / -1; text-align:center; border:none; background:none; font-size:14px; color:var(--accent); }
.end { margin-top:48px; padding-top:20px; border-top:1px solid var(--line); font-size:15px; }
.end .label { font-size:12px; letter-spacing:.24em; color:var(--accent); margin:1.4em 0 .3em; }
.end p { text-align:left; }
.sign { text-align:center; margin:48px 0 0 !important; font-size:14px; color:var(--faint); letter-spacing:.1em; text-align:center !important; }
.sign .mark { display:block; font-family:"Cormorant Garamond",serif; font-size:22px; letter-spacing:.5em; color:var(--accent); margin-bottom:6px; }
footer { text-align:center; font-family:"Cormorant Garamond",serif; font-size:13px; color:var(--faint); padding:40px 0 60px; letter-spacing:.1em; }
/* 目次 */
.cover { text-align:center; padding:64px 0 40px; }
.cover .kick { font-family:"Cormorant Garamond",serif; letter-spacing:.4em; font-size:14px; color:var(--accent); margin:0 0 20px; }
.cover h1 { font-size:30px; letter-spacing:.08em; margin:0 0 8px; }
.cover .sub { color:var(--sub); letter-spacing:.12em; margin:0 0 32px; }
.cover .lead { text-align:left; max-width:520px; margin:0 auto; }
.cover .cred { font-size:13px; color:var(--faint); margin-top:24px; }
.toc h2 { font-family:"Cormorant Garamond",serif; font-weight:300; font-size:26px; letter-spacing:.3em; color:var(--accent); margin:24px 0 8px; }
.toc .pt { font-size:13px; letter-spacing:.2em; color:var(--accent); margin:32px 0 6px; padding-bottom:4px; border-bottom:1px solid var(--line); }
.toc ol { list-style:none; margin:0; padding:0; }
.toc li a { display:grid; grid-template-columns:44px 1fr; gap:4px 10px; padding:12px 2px; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink); line-height:1.6; }
.toc li .n { font-family:"Cormorant Garamond",serif; color:var(--faint); letter-spacing:.1em; grid-row:span 2; }
.toc li .w { font-size:13px; color:var(--faint); }
.toc .start { display:block; text-align:center; margin:40px auto 0; padding:14px 28px; border:1px solid var(--ink); color:var(--paper); background:var(--ink); text-decoration:none; max-width:260px; letter-spacing:.1em; }
