
:root {
  --paper:#f6f1e7;
  --paper-deep:#efe9da;
  --ink:#2a2520;
  --ink-soft:#5a5247;
  --ink-mute:#928571;
  --rule:#d8cfba;
  --rule-soft:#e8e1ce;
  --accent:#7c5a2e;
  --accent-soft:#a6855a;
  --serif:'Cormorant Garamond', 'Times New Roman', serif;
  --jp:'Noto Serif JP', '游明朝', serif;
  --jp-sans:'Noto Sans JP', system-ui, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{background:var(--paper);color:var(--ink);font-family:var(--jp);line-height:1.95;font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
strong,b{font-weight:600;}
em,i{font-style:italic;}

/* ─── Top: hero + letter intro + chapter index ─── */
.envelope{max-width:760px;margin:0 auto;padding:0 28px;}
.hero{position:relative;height:78vh;min-height:520px;max-height:780px;margin-bottom:0;overflow:hidden;}
.hero img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(0.92) saturate(0.95);}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(246,241,231,0) 60%,rgba(246,241,231,0.92) 100%);}
.hero-mark{position:absolute;top:46px;left:0;right:0;text-align:center;z-index:2;color:#fff;}
.hero-mark .club{font-family:var(--serif);font-style:italic;font-size:13px;letter-spacing:.45em;color:rgba(255,255,255,0.92);}
.hero-mark .club::before,.hero-mark .club::after{content:'·';margin:0 12px;color:rgba(255,255,255,0.5);}

.cover{padding:72px 28px 12px;text-align:center;background:var(--paper);}
.cover .eyebrow{font-family:var(--serif);font-style:italic;font-size:13px;letter-spacing:.32em;color:var(--accent);margin-bottom:18px;}
.cover h1{font-family:var(--serif);font-weight:400;font-size:46px;line-height:1.15;letter-spacing:.01em;color:var(--ink);margin-bottom:14px;}
.cover .ja-title{font-family:var(--jp);font-size:14px;letter-spacing:.4em;color:var(--ink-soft);margin-bottom:8px;}
.cover .date{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--ink-mute);margin-top:24px;}
.cover .rule{width:48px;height:1px;background:var(--accent-soft);margin:32px auto 0;}

.letter{padding:60px 28px 40px;max-width:680px;margin:0 auto;}
.letter .salutation{font-family:var(--jp);font-size:16px;color:var(--ink);margin-bottom:24px;font-weight:500;}
.letter p{font-family:var(--jp);font-size:15.5px;line-height:2.05;color:var(--ink);margin-bottom:18px;text-align:justify;text-justify:inter-ideograph;font-feature-settings:"palt";}
.letter .signoff{margin-top:42px;font-family:var(--jp);font-size:15px;color:var(--ink-soft);text-align:right;}
.letter .signoff .from{display:block;font-family:var(--serif);font-style:italic;font-size:14px;margin-top:6px;letter-spacing:.1em;color:var(--accent);}

.toc-band{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:48px 28px;margin:0;background:var(--paper-deep);}
.toc-band .toc-label{text-align:center;font-family:var(--serif);font-style:italic;font-size:12px;letter-spacing:.45em;color:var(--accent);text-transform:uppercase;margin-bottom:32px;}
.toc{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:0;}
.toc-item{display:grid;grid-template-columns:48px 1fr 80px 16px;align-items:baseline;padding:18px 4px;border-bottom:1px solid var(--rule-soft);transition:padding .18s ease;}
.toc-item:hover{padding-left:10px;}
.toc-item:last-child{border-bottom:0;}
.toc-item .no{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--accent-soft);letter-spacing:.1em;}
.toc-item .ja{font-family:var(--jp);font-size:15.5px;color:var(--ink);font-weight:500;}
.toc-item .en{font-family:var(--serif);font-style:italic;font-size:12.5px;color:var(--ink-mute);letter-spacing:.08em;text-align:right;}
.toc-item .arrow{color:var(--accent);font-family:var(--serif);font-size:13px;text-align:right;}

.colophon{padding:54px 28px 80px;text-align:center;font-family:var(--jp);}
.colophon .ornament{width:36px;height:1px;background:var(--accent-soft);margin:0 auto 22px;}
.colophon .addr{font-size:13px;color:var(--ink-soft);line-height:1.9;margin-bottom:8px;}
.colophon .club{font-family:var(--serif);font-style:italic;font-size:12px;letter-spacing:.3em;color:var(--accent);margin-top:18px;}

/* ─── Chapter pages ─── */
.chap-head{padding:48px 28px 32px;max-width:760px;margin:0 auto;}
.chap-back{font-family:var(--serif);font-style:italic;font-size:12px;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;}
.chap-back::before{content:'← ';}
.chap-title-band{text-align:center;padding:36px 28px 24px;border-bottom:1px solid var(--rule);max-width:760px;margin:0 auto;}
.chap-title-band .no{font-family:var(--serif);font-style:italic;font-size:13px;letter-spacing:.3em;color:var(--accent-soft);margin-bottom:10px;text-transform:uppercase;}
.chap-title-band h1{font-family:var(--serif);font-weight:400;font-size:36px;line-height:1.2;color:var(--ink);margin-bottom:10px;letter-spacing:.01em;}
.chap-title-band .ja{font-family:var(--jp);font-size:15px;color:var(--ink-soft);letter-spacing:.2em;}

.chap-hero-photo{max-width:920px;margin:32px auto 0;padding:0 28px;}
.chap-hero-photo img{width:100%;height:auto;display:block;}

/* Body content — body_*_shibuya() のHTMLを letter トーンで再スタイル */
.chap-body{max-width:680px;margin:0 auto;padding:48px 28px 60px;font-family:var(--jp);}
.chap-body .lead{font-family:var(--jp);font-size:17px;line-height:2.05;color:var(--ink);margin-bottom:36px;font-weight:500;letter-spacing:.02em;font-feature-settings:"palt";padding:0 0 28px;border-bottom:1px solid var(--rule-soft);}
.chap-body .section{margin-bottom:42px;padding-top:8px;}
.chap-body .section-num{display:inline-block;font-family:var(--serif);font-style:italic;font-size:11.5px;letter-spacing:.3em;color:var(--accent);text-transform:uppercase;margin-bottom:8px;}
.chap-body h2{font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.3;color:var(--ink);margin-bottom:4px;letter-spacing:.005em;}
.chap-body .en{font-family:var(--serif);font-style:italic;font-size:13px;letter-spacing:.15em;color:var(--ink-mute);margin-bottom:14px;}
.chap-body h3{font-family:var(--jp);font-weight:600;font-size:15px;color:var(--ink);margin-top:22px;margin-bottom:8px;letter-spacing:.05em;}
.chap-body p{font-family:var(--jp);font-size:15.5px;line-height:2.0;color:var(--ink);margin-bottom:14px;text-align:justify;text-justify:inter-ideograph;font-feature-settings:"palt";}
.chap-body ul,.chap-body ol{padding-left:1.4em;margin-bottom:14px;}
.chap-body li{font-family:var(--jp);font-size:15px;line-height:1.95;color:var(--ink);margin-bottom:6px;}
.chap-body .editorial-table{width:100%;border-collapse:collapse;margin:8px 0 14px;font-family:var(--jp);}
.chap-body .editorial-table td{border-bottom:1px solid var(--rule-soft);padding:11px 6px;font-size:14.5px;color:var(--ink);vertical-align:top;line-height:1.75;}
.chap-body .editorial-table td:first-child{color:var(--ink-mute);font-size:13.5px;letter-spacing:.05em;}
.chap-body .callout{margin:18px 0;padding:18px 22px;background:var(--paper-deep);border-left:2px solid var(--accent-soft);font-size:14px;line-height:1.85;color:var(--ink-soft);}
.chap-body .callout .label{display:inline-block;font-family:var(--serif);font-style:italic;font-size:11px;letter-spacing:.25em;color:var(--accent);text-transform:uppercase;margin-right:8px;}
.chap-body a{color:var(--accent);border-bottom:1px solid var(--rule);transition:color .15s ease;}
.chap-body a:hover{color:var(--ink);}
.chap-body .tbd{color:var(--accent-soft);font-family:var(--serif);font-style:italic;font-size:.92em;}
.chap-body .tbd::before{content:'※ ';opacity:.7;}
.chap-body .feature{padding:0;}

/* Chapter footer nav */
.chap-nav{max-width:680px;margin:0 auto;padding:24px 28px 64px;display:flex;justify-content:space-between;border-top:1px solid var(--rule-soft);font-family:var(--serif);font-style:italic;font-size:13px;letter-spacing:.1em;}
.chap-nav a{color:var(--accent);}
.chap-nav .index-link{text-align:center;flex:1;}

/* Responsive */
@media(max-width:680px){
  .cover h1{font-size:36px;}
  .chap-title-band h1{font-size:28px;}
  .toc-item{grid-template-columns:36px 1fr 14px;gap:8px;}
  .toc-item .en{display:none;}
  .letter,.chap-body{padding-left:24px;padding-right:24px;}
}
