﻿:root{color-scheme:light;--paper:#f8f6f0;--ink:#303530;--muted:#6e756e;--blue:#496674;--line:#dedfd5;--current:#edf0eb;--selection:#dce5e6;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif CJK JP",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;--reading-size:18px}
*{box-sizing:border-box}html{scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-text-size-adjust:100%}a{color:inherit;text-decoration:none}button{font:inherit}a:hover{color:var(--blue)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:5px}::selection{background:var(--selection)}.skip-link{position:fixed;left:20px;top:-80px;padding:12px;background:var(--paper);z-index:10}.skip-link:focus{top:10px}.site-header{height:112px;margin:0 64px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:18px;align-items:center}.brand-mark{width:32px;height:40px;fill:none;stroke:var(--blue);stroke-width:1.1}.brand-name{font:25px var(--serif);letter-spacing:.15em}.brand-name span{display:block;font:12px var(--sans);letter-spacing:.19em;margin-top:7px}.header-note{font:12px var(--serif);letter-spacing:.22em;color:var(--muted);margin-left:-50px}.header-link{font-size:12px;letter-spacing:.1em}.header-link span{margin-left:18px;color:var(--blue)}.page-layout{display:grid;grid-template-columns:210px minmax(0,648px) 1fr;gap:68px;max-width:1200px;margin:0 auto;padding:62px 0 0}.sidebar-inner{position:sticky;top:42px}.eyebrow{font-size:12px;letter-spacing:.17em;color:var(--blue);font-weight:500}.book-name{display:block;font:30px var(--serif);letter-spacing:.09em;margin-top:24px}.book-genre{font-size:12px;color:var(--muted);letter-spacing:.1em;margin-top:15px}.desktop-toc{margin-top:48px;border-top:1px solid var(--line);padding-top:25px}.toc-label{font-size:12px;display:flex;gap:16px;align-items:center}.toc-label span{font-size:12px;letter-spacing:.13em;color:var(--muted)}.chapter-label{font-size:12px;margin:29px 0 16px}.current-episode{display:flex;align-items:center;gap:18px;font:13px var(--serif);padding:14px 16px;border-left:2px solid var(--blue);background:var(--current)}.current-episode>span:first-child{font:12px var(--sans);color:var(--blue)}.current-dot{width:4px;height:4px;background:var(--blue);border-radius:50%;margin-left:auto}.sidebar-caption{font:12px/2.3 var(--serif);color:var(--muted);margin-top:48px;letter-spacing:.08em}main{min-width:0}.breadcrumb{display:flex;gap:15px;font-size:12px;color:var(--muted);letter-spacing:.05em}.episode-heading{padding:54px 0 41px}.episode-number{display:flex;align-items:center;gap:17px;font-size:12px}.episode-number span:last-child{font-size:12px;letter-spacing:.15em}h1{font:46px/1.6 var(--serif);letter-spacing:.17em;font-weight:400;margin:25px 0 20px}h1 rt{font:12px var(--serif);letter-spacing:.18em}.byline{font:12px var(--serif);letter-spacing:.13em}.byline span{font:12px var(--sans);letter-spacing:.1em;color:var(--muted);margin-left:17px}.reading-toolbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:8px}.reading-label{font-size:12px;letter-spacing:.08em}.reading-label span{font-size:12px;color:var(--muted);margin-left:11px;letter-spacing:.15em}.font-controls{display:flex;align-items:center;gap:3px}.font-controls[hidden]{display:none}.font-label{font-size:12px;color:var(--muted);margin-right:12px}.font-controls button{border:0;background:transparent;color:var(--muted);height:44px;min-width:44px;font-size:12px;cursor:pointer;position:relative}.font-controls button[aria-pressed=true]{color:var(--blue)}.font-controls button[aria-pressed=true]:after{content:"";position:absolute;bottom:5px;width:16px;height:2px;background:var(--blue);left:calc(50% - 8px)}.font-controls button:hover{background:var(--current)}.story{font:var(--reading-size)/2 var(--serif);letter-spacing:.025em;line-break:strict;overflow-wrap:break-word;padding-top:38px;outline-offset:8px}.story p{margin:0 0 1.25em}.story ruby{ruby-align:center}.story rt{font-size:.5em;letter-spacing:0}.emphasis{font-style:normal;text-emphasis:filled dot;-webkit-text-emphasis:filled dot;text-emphasis-position:over right;-webkit-text-emphasis-position:over right}.scene-break{border:0;margin:52px auto;display:flex;align-items:center;justify-content:center;gap:20px;color:var(--muted)}.scene-break:before,.scene-break:after{content:"";height:1px;width:58px;background:currentColor;opacity:.4}.scene-break svg{display:block;opacity:.8}blockquote{margin:1em 0;padding-left:1em;border-left:2px solid var(--line)}.margin-note{writing-mode:vertical-rl;justify-self:end;font:12px var(--serif);letter-spacing:.22em;color:var(--muted);padding-top:8px}.mobile-toc{display:none}.end-note{text-align:center;padding:52px 0 57px;color:var(--muted)}.end-note>span{color:var(--blue);font:22px var(--serif)}.end-note p{font:12px var(--serif);margin:20px 0 32px;letter-spacing:.14em}.end-note a{font-size:12px;border-bottom:1px solid var(--line);padding-bottom:8px}.end-note a span{margin-left:18px}.about{padding:36px 0 48px;border-top:1px solid var(--line)}.about h2{font:24px/1.7 var(--serif);font-weight:400;letter-spacing:.06em;margin:23px 0 18px}.about>p:not(.eyebrow){font:13px/2 var(--serif);color:var(--muted)}.author{display:flex;gap:35px;margin-top:35px;padding-top:25px;border-top:1px solid var(--line)}.author>span{font:19px var(--serif);white-space:nowrap}.author small{display:block;font:12px var(--sans);letter-spacing:.12em;margin-top:8px;color:var(--muted)}.author p{font:12px/2 var(--serif);margin:0;color:var(--muted)}.site-footer{margin:25px 64px 0;border-top:1px solid var(--line);padding:27px 0 32px;display:flex;justify-content:space-between;font:12px var(--serif)}.site-footer span span,.site-footer small{font:12px var(--sans);color:var(--muted);letter-spacing:.08em}.site-footer span span{margin-left:12px}html[data-reading-size=small]{--reading-size:16px}html[data-reading-size=large]{--reading-size:21px}
@media(min-width:981px) and (max-width:1320px){.page-layout{margin:0 48px;grid-template-columns:180px minmax(0,648px) 1fr;gap:40px}}
@media(max-width:980px){.site-header{margin:0 32px;height:94px}.header-note{display:none}.page-layout{display:block;max-width:648px;margin:auto;padding:38px 0 0}.sidebar,.margin-note{display:none}.mobile-toc{display:block;border-bottom:1px solid var(--line);font-size:12px}.mobile-toc summary{cursor:pointer;padding:16px 0;min-height:48px}.mobile-toc summary span{float:right;color:var(--muted);font-size:12px}.mobile-toc nav{padding-bottom:15px}.site-footer{margin:25px 32px 0}}
@media(max-width:700px){.site-header{margin:0 20px;height:85px}.brand{gap:11px}.brand-mark{width:25px;height:33px}.brand-name{font-size:21px}.brand-name span{font-size:12px}.header-link{font-size:12px}.header-link span{margin-left:8px}.page-layout{padding:28px 20px 0}.breadcrumb{font-size:12px;gap:12px}.episode-heading{padding:37px 0 27px}h1{font-size:39px;margin:23px 0 18px}.reading-toolbar{min-height:54px}.reading-label span{display:none}.font-label{margin-right:3px;font-size:12px}.font-controls button{min-width:40px}.story{padding-top:30px;letter-spacing:.015em}.story p{margin-bottom:1.15em}.scene-break{margin:40px auto}.about h2{font-size:21px}.author{display:block}.author p{margin-top:20px}.site-footer{margin:15px 20px 0}.site-footer span span{display:none}.end-note{padding:40px 0}.about{padding-top:28px}}
@media(prefers-reduced-motion:no-preference){a,button{transition:color .15s,background-color .15s}}

.brand-mark{border-radius:50%;mix-blend-mode:multiply}

.pager{display:grid;grid-template-columns:1fr 1fr;margin:56px 0 0;border:1px solid var(--line,#d9dcd3)}
.pager a{display:flex;flex-direction:column;gap:9px;padding:22px 26px;background:var(--paper,#f8f6f0);font-size:.8rem;letter-spacing:.08em}
.pager a:hover{background:var(--paper-deep,#efede5)}
.pager em{font-style:normal;font-size:.95rem;letter-spacing:.04em}
.pager .pager-prev{grid-column:1;border-right:1px solid var(--line,#d9dcd3)}
.pager .pager-next{grid-column:2;text-align:right;align-items:flex-end}
.pager .pager-next:first-child{grid-column:1/-1;text-align:left;align-items:flex-start}
.pager .pager-toc{grid-column:1/-1;flex-direction:row;justify-content:center;align-items:center;gap:14px;border-top:1px solid var(--line,#d9dcd3)}
.toc-all{display:inline-block;margin-top:18px;font-size:.76rem;letter-spacing:.08em;opacity:.8}.desktop-toc a{display:block;padding:7px 0}.mobile-toc nav a{display:block;padding:9px 0}
@media(max-width:660px){.pager{grid-template-columns:1fr}.pager .pager-prev{grid-column:1;text-align:left;align-items:flex-start;border-right:0;order:2;border-top:1px solid var(--line,#d9dcd3)}.pager .pager-next,.pager .pager-next:first-child{grid-column:1;text-align:right;align-items:flex-end;border-right:0;order:1}.pager .pager-toc{order:3}}
.toc-scroll{max-height:min(58vh,520px);overflow-y:auto;overscroll-behavior:contain;padding-right:6px}
.toc-scroll .chapter-label{margin:22px 0 10px;color:var(--muted);letter-spacing:.06em}
.toc-scroll .chapter-label:first-child{margin-top:4px}
.mobile-toc nav{max-height:60vh;overflow-y:auto;overscroll-behavior:contain}
.mobile-toc nav .chapter-label{margin:18px 0 8px;color:var(--muted)}
.header-right{display:flex;align-items:center;gap:26px}
.menu>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:10px 4px;font-size:12px;letter-spacing:.1em;min-height:44px}
.menu>summary::-webkit-details-marker{display:none}
.menu-bars{display:inline-block;width:18px;height:11px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;position:relative}
.menu-bars:after{content:"";position:absolute;left:0;right:0;top:4px;border-top:1px solid currentColor}
.menu-scrim{position:fixed;inset:0;z-index:40;background:rgba(48,53,48,.24)}
.menu-panel{position:fixed;top:0;right:0;z-index:41;width:min(400px,88vw);height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--paper,#f8f6f0);border-left:1px solid var(--line,#d9dcd3);padding:30px 26px 40px;text-align:left}
.menu-close{position:absolute;top:18px;right:20px;width:40px;height:40px;border:0;background:none;color:inherit;font-size:22px;line-height:1;cursor:pointer}
.menu-title{display:block;padding-right:44px;font:1.25rem/1.6 var(--serif);letter-spacing:.05em}
.menu-author{font-size:12px;color:var(--muted);margin:10px 0 0;letter-spacing:.08em}
.menu-info{display:inline-block;margin-top:16px;font-size:12px;color:var(--blue,#3d566c);letter-spacing:.08em}
.menu-toc-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:28px 0 0;padding-top:20px;border-top:1px solid var(--line,#d9dcd3)}
.menu-toc-head h2{font:1rem var(--serif);letter-spacing:.14em;margin:0}
.menu-toc-head p{margin:0;font-size:11px;color:var(--muted);letter-spacing:.08em}
.menu-toc{margin-top:10px}
.toc-chapter{border-bottom:1px solid var(--line,#d9dcd3)}
.toc-chapter>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:14px 0;font-size:12px;letter-spacing:.06em;color:var(--muted);min-height:44px}
.toc-chapter>summary::-webkit-details-marker{display:none}
.toc-chapter>summary:after{content:"＋";font-size:12px;color:var(--blue,#3d566c)}
.toc-chapter[open]>summary:after{content:"−"}
.toc-chapter>a{display:block;padding:9px 0 9px 14px;font-size:13px}
.toc-chapter>a:last-child{padding-bottom:16px}
.menu-foot{display:flex;flex-wrap:wrap;gap:18px;margin-top:26px;padding-top:18px;border-top:1px solid var(--line,#d9dcd3);font-size:12px}
@media(max-width:660px){.header-right{gap:14px}.menu .menu-word{display:none}}
.page-layout{display:grid;grid-template-columns:1fr minmax(0,648px) 1fr;gap:0 48px;max-width:1240px;margin:0 auto;padding:62px 24px 0}
#episode{grid-column:2}
.margin-note{grid-column:3}
@media(max-width:1000px){.page-layout{grid-template-columns:minmax(0,648px);justify-content:center;padding:38px 20px 0}#episode{grid-column:1}}
/* Desktop: the drawer stays open and the page shrinks beside it, so the text
   is still readable. Narrow screens have no room, so it overlays instead. */
@media(min-width:901px){
  body{transition:padding-right .22s ease}
  body:has(.menu[open]){padding-right:min(400px,88vw)}
  .menu-scrim{display:none}
}
@media(prefers-reduced-motion:reduce){body{transition:none}}
/* brand-icon.webp is square; the old 32x40 box came from the SVG mark. */
.brand-mark{width:40px;height:40px;object-fit:contain;flex:0 0 auto}
@media(max-width:900px){.brand-mark{width:33px;height:33px}}
.fontsize{position:relative}
.fontsize>summary{display:flex;align-items:center;justify-content:center;cursor:pointer;list-style:none;min-width:44px;min-height:44px}
.fontsize>summary::-webkit-details-marker{display:none}
.fontsize-icon{display:flex;align-items:baseline;gap:2px;font:20px var(--serif);letter-spacing:0;line-height:1}
.fontsize-icon em{font-style:normal;font-size:13px}
.fontsize[open]>summary .fontsize-icon{color:var(--blue)}
.fontsize-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:31;display:flex;gap:2px;padding:6px 8px;background:var(--paper);border:1px solid var(--line)}
.theme-toggle{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:0;background:none;color:inherit;cursor:pointer;padding:0}
.theme-icon{display:block;width:17px;height:17px;border-radius:50%;border:1px solid currentColor;background:linear-gradient(90deg,currentColor 0 50%,transparent 50% 100%)}
:root[data-theme=dark] .brand-mark{mix-blend-mode:normal;filter:invert(1) hue-rotate(180deg)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .brand-mark{mix-blend-mode:normal;filter:invert(1) hue-rotate(180deg)}}

/* Dark mode. The OS preference applies on its own; [data-theme] is the
   manual override written by the header toggle. */
:root[data-theme=dark]{color-scheme:dark;--paper:#1a1917;--paper-deep:#232220;--ink:#e6e3da;--muted:#b3afa4;--blue:#a8c0d2;--indigo:#b7bbe4;--gold:#cfa95e;--line:#36342f;--current:#2b2f33;--selection:#3a4550}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#1a1917;--paper-deep:#232220;--ink:#e6e3da;--muted:#b3afa4;--blue:#a8c0d2;--indigo:#b7bbe4;--gold:#cfa95e;--line:#36342f;--current:#2b2f33;--selection:#3a4550}}
.pager-label{display:block;color:var(--muted)}
.menu-toc .toc-chapter:last-child{border-bottom:0}
