:root { --paper:#f3efe6; --paper-deep:#e7dfd0; --ink:#24231f; --muted:#6f6a61; --line:#cec4b3; --accent:#8b6740; --accent-dark:#5c4229; --serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",Georgia,serif; --sans:Inter,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--serif); line-height:1.9; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-underline-offset:.2em; }
img { display:block; max-width:100%; height:auto; }
.site-shell { width:min(1180px,calc(100% - 40px)); margin:0 auto; }
.site-header { display:flex; align-items:center; justify-content:space-between; min-height:108px; border-bottom:1px solid var(--line); }
.site-brand { display:inline-flex; align-items:baseline; gap:14px; text-decoration:none; }
.site-brand__title { font-size:1.25rem; font-weight:700; letter-spacing:.12em; }
.site-brand__subtitle,.eyebrow { font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.22em; color:var(--accent-dark); }
.site-nav { display:flex; gap:28px; font-family:var(--sans); font-size:.8rem; }
.site-nav a { text-decoration:none; }
.site-nav a:hover,.text-link:hover { color:var(--accent); }
.hero { padding:clamp(90px,13vw,180px) 0 clamp(90px,11vw,150px); max-width:900px; }
.hero h1 { margin:18px 0 28px; font-size:clamp(2.5rem,6vw,5.3rem); line-height:1.32; letter-spacing:.04em; font-weight:500; }
.hero__lead { max-width:650px; font-size:1.05rem; color:var(--muted); }
.hero__actions { display:flex; align-items:center; gap:28px; margin-top:40px; }
.button { display:inline-block; padding:12px 24px; color:var(--paper); background:var(--ink); text-decoration:none; font-family:var(--sans); font-size:.82rem; }
.text-link { font-family:var(--sans); font-size:.82rem; font-weight:700; }
.episode-section,.archive { padding:80px 0 110px; border-top:1px solid var(--line); }
.section-heading { display:grid; grid-template-columns:1fr 2fr; align-items:baseline; margin-bottom:42px; }
.section-heading h1,.section-heading h2 { margin:0; font-size:clamp(2rem,4vw,3.5rem); font-weight:500; }
.episode-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.episode-list li { border-bottom:1px solid var(--line); }
.episode-list a { display:grid; grid-template-columns:1fr 2fr auto; gap:28px; align-items:center; padding:30px 8px; text-decoration:none; transition:padding .2s,background .2s; }
.episode-list a:hover { padding-right:18px; padding-left:18px; background:rgba(255,255,255,.25); }
.episode-list__number { font-family:var(--sans); font-size:.72rem; color:var(--muted); }
.episode-list__body { display:grid; gap:5px; }
.episode-list__body strong { font-size:1.12rem; }
.episode-list__body span { font-size:.86rem; color:var(--muted); }
.about-callout { margin:30px 0 110px 16%; padding:70px 8%; background:var(--paper-deep); }
.about-callout h2 { font-size:clamp(2rem,4vw,3.5rem); font-weight:500; }
.about-callout p:not(.eyebrow) { max-width:620px; }
.story,.page-content { max-width:820px; margin:0 auto; padding:100px 0 120px; }
.story-header,.page-header { margin-bottom:60px; text-align:center; }
.story-header h1,.page-header h1 { margin:20px 0; font-size:clamp(2.2rem,5vw,4.4rem); line-height:1.4; font-weight:500; }
.story-header__lead,.page-header>p:last-child { color:var(--muted); }
.story-header time { font-family:var(--sans); font-size:.72rem; color:var(--muted); }
.story-image { margin:0 0 60px; }
.story-image figcaption { margin-top:8px; color:var(--muted); font-size:.78rem; }
.gh-content { font-size:1.03rem; }
.gh-content>* { max-width:680px; margin-right:auto; margin-left:auto; }
.gh-content p { margin-top:0; margin-bottom:1.8em; }
.gh-content h2 { margin-top:2.5em; font-size:1.7rem; }
.gh-content h3 { margin-top:2.2em; font-size:1.3rem; }
.gh-content blockquote { padding-left:24px; border-left:2px solid var(--accent); color:var(--muted); }
.gh-content .kg-width-wide { max-width:980px; }
.gh-content .kg-width-full { max-width:none; width:100vw; margin-left:calc(50% - 50vw); }
.gh-content iframe { max-width:100%; }
.story-nav { display:grid; grid-template-columns:1fr auto 1fr; gap:20px; align-items:center; margin-top:90px; padding-top:30px; border-top:1px solid var(--line); }
.story-nav a { display:grid; text-decoration:none; }
.story-nav a:last-child { text-align:right; }
.story-nav span { font-family:var(--sans); font-size:.68rem; color:var(--muted); }
.story-nav__index { font-family:var(--sans); font-size:.75rem; }
.pagination { display:flex; justify-content:space-between; margin-top:40px; font-family:var(--sans); font-size:.8rem; }
.not-found { min-height:65vh; padding:120px 0; text-align:center; }
.not-found h1 { font-size:clamp(2rem,5vw,4rem); font-weight:500; }
.site-footer { display:flex; justify-content:space-between; padding:32px 0 50px; border-top:1px solid var(--line); font-family:var(--sans); font-size:.72rem; color:var(--muted); }
@media (max-width:760px) {
  .site-shell { width:min(100% - 28px,1180px); }
  .site-header { align-items:flex-start; min-height:auto; padding:24px 0; }
  .site-brand { display:grid; gap:0; }
  .site-nav { gap:14px; flex-wrap:wrap; justify-content:flex-end; max-width:54%; }
  .site-nav a:last-child { display:none; }
  .hero { padding:80px 0 90px; }
  .hero h1 { font-size:clamp(2.25rem,11vw,3.7rem); }
  .section-heading,.episode-list a { grid-template-columns:1fr; gap:8px; }
  .episode-list a { position:relative; padding:22px 5px; }
  .episode-list a>span:last-child { position:absolute; right:5px; top:50%; }
  .about-callout { margin-left:0; padding:50px 28px; }
  .story,.page-content { padding:75px 5px 90px; }
  .story-nav { grid-template-columns:1fr 1fr; }
  .story-nav__index { grid-column:1/-1; grid-row:1; text-align:center; }
  .site-footer { display:block; }
}
