:root{--bg: #0d1014;--bg-soft: #141920;--bg-card: #161b22;--ink: #d7d3ca;--ink-dim: #8d97a3;--ink-faint: #5a6472;--line: #232b35;--accent: #7fb2d9;--accent-soft: rgba(127, 178, 217, .14);--shadow: rgba(0, 0, 0, .55);--fs: 17px;--lh: 1.95;--measure: 34em;--serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", "Source Han Serif JP", "MS PMincho", serif;--sans: "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, "Noto Sans JP", "Segoe UI", system-ui, sans-serif;--body-font: var(--serif)}:root[data-theme=dark]{--bg: #000;--bg-soft: #0b0b0c;--bg-card: #0f1113;--ink: #cfcbc3;--ink-dim: #7e8791;--ink-faint: #4d555f;--line: #1b1f24;--shadow: rgba(0,0,0,.7)}:root[data-theme=paper]{--bg: #f4f1ea;--bg-soft: #ebe7de;--bg-card: #fffdf8;--ink: #24211c;--ink-dim: #6b6459;--ink-faint: #9a9285;--line: #ddd7cb;--accent: #3d6f99;--accent-soft: rgba(61,111,153,.12);--shadow: rgba(120,110,95,.18)}:root[data-theme=sepia]{--bg: #f1e4cf;--bg-soft: #e8d9c0;--bg-card: #f8eeda;--ink: #3a2e20;--ink-dim: #7a6a52;--ink-faint: #a5947a;--line: #ddcbac;--accent: #8a5a2b;--accent-soft: rgba(138,90,43,.12);--shadow: rgba(120,95,60,.2)}:root[data-size="1"]{--fs: 15px}:root[data-size="2"]{--fs: 16px}:root[data-size="3"]{--fs: 17px}:root[data-size="4"]{--fs: 19px}:root[data-size="5"]{--fs: 21px}:root[data-size="6"]{--fs: 24px}:root[data-lh="1"]{--lh: 1.7}:root[data-lh="2"]{--lh: 1.95}:root[data-lh="3"]{--lh: 2.25}:root[data-font=gothic]{--body-font: var(--sans)}:root[data-width=wide]{--measure: 42em}:root[data-width=narrow]{--measure: 28em}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-text-size-adjust:100%;overflow-wrap:anywhere}a{color:inherit;text-decoration:none}button,.tap{font:inherit;color:inherit;background:none;border:0;min-height:44px;padding:0 14px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,.tap:hover{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{max-width:1000px;margin:0 auto;padding:0 20px}.masthead{padding:54px 0 30px;border-bottom:1px solid var(--line);margin-bottom:34px}.masthead h1{margin:0;font-family:var(--serif);font-size:clamp(26px,6vw,40px);font-weight:500;letter-spacing:.16em}.masthead p{margin:12px 0 0;color:var(--ink-dim);font-size:14px;line-height:1.8}.masthead .home{display:inline-flex;margin-bottom:18px;color:var(--ink-faint);font-size:13px}.masthead .home:hover{color:var(--accent)}#resume{display:none;margin:0 0 34px}#resume.on{display:block}#resume a{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:14px;background:var(--bg-card);border:1px solid var(--line);box-shadow:0 6px 22px var(--shadow)}#resume a:hover{border-color:var(--accent)}#resume .rk{font-size:11px;letter-spacing:.18em;color:var(--accent)}#resume .rt{font-family:var(--serif);font-size:17px;margin-top:4px}#resume .rp{margin-left:auto;font-size:13px;color:var(--ink-dim);white-space:nowrap}.shelf{display:grid;gap:26px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.book{display:grid;grid-template-columns:108px 1fr;gap:18px;padding:16px;border-radius:14px;background:var(--bg-card);border:1px solid var(--line);transition:border-color .2s,transform .2s}.book:hover{border-color:var(--accent);transform:translateY(-2px)}.book .cover{aspect-ratio:2/3;border-radius:8px;overflow:hidden;background:var(--bg-soft);box-shadow:0 4px 16px var(--shadow)}.book .cover img{width:100%;height:100%;object-fit:cover;display:block}.book h2{margin:2px 0 0;font-family:var(--serif);font-size:19px;font-weight:500;line-height:1.4}.book .meta{margin-top:8px;font-size:11px;letter-spacing:.1em;color:var(--ink-faint)}.book .logline{margin:10px 0 0;font-size:13px;line-height:1.75;color:var(--ink-dim)}.book .bar{margin-top:12px}.empty{color:var(--ink-faint);font-size:14px;padding:40px 0}.hero{display:grid;grid-template-columns:200px 1fr;column-gap:32px;row-gap:18px;margin-bottom:40px;align-items:start}.hero .cover{aspect-ratio:2/3;border-radius:12px;overflow:hidden;box-shadow:0 10px 34px var(--shadow);grid-row:span 3}.hero .cover img{width:100%;height:100%;object-fit:cover;display:block}.hero h1{margin:0;font-family:var(--serif);font-size:clamp(23px,5vw,34px);font-weight:500;line-height:1.35}.hero .meta{margin-top:12px;font-size:12px;letter-spacing:.1em;color:var(--ink-faint)}.hero .blurb{margin:0;font-size:14px;line-height:1.95;color:var(--ink-dim)}.hero .go{display:flex;gap:10px;flex-wrap:wrap}.hero .go .btn{border:1px solid var(--line);border-radius:10px;padding:0 18px;background:var(--bg-card)}.hero .go .btn.primary{border-color:var(--accent);color:var(--accent)}@media(max-width:680px){.hero{grid-template-columns:124px 1fr;column-gap:18px}.hero .cover{grid-row:span 1}.hero .blurb,.hero .go{grid-column:1 / -1}}.eplist{border-top:1px solid var(--line)}.eplist h3{font-size:12px;letter-spacing:.2em;color:var(--ink-faint);margin:26px 0 8px}.ep{display:flex;align-items:center;gap:14px;padding:16px 12px;border-bottom:1px solid var(--line);min-height:60px}.ep:hover{background:var(--accent-soft)}.ep .no{flex:0 0 64px;font-size:11px;letter-spacing:.1em;color:var(--ink-faint)}.ep .t{font-family:var(--serif);font-size:16px}.ep .sub{font-size:11px;color:var(--ink-faint);margin-top:5px}.ep .right{margin-left:auto;display:flex;align-items:center;gap:12px}.ep .pct{font-size:12px;color:var(--ink-dim);min-width:34px;text-align:right}.ep .done{color:var(--accent);font-size:13px}.bar{height:3px;border-radius:2px;background:var(--line);overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent);width:0}.reading{background:var(--bg)}#progress{position:fixed;inset:0 auto auto 0;height:2px;width:0;background:var(--accent);z-index:60;transition:width .12s linear}#top,#bottom{position:fixed;left:0;right:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);transition:transform .28s ease,opacity .28s ease}#top{top:0;border-bottom:1px solid var(--line)}#bottom{bottom:0;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}body.chrome-off #top{transform:translateY(-100%);opacity:0}body.chrome-off #bottom{transform:translateY(100%);opacity:0}#top .row{display:flex;align-items:center;gap:6px;padding:0 8px;height:50px}#top .who{flex:1;min-width:0;padding:0 6px}#top .who b,#top .who span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#top .who b{font-family:var(--serif);font-size:14px;font-weight:500}#top .who span{font-size:10px;letter-spacing:.12em;color:var(--ink-faint)}#bottom .row{display:flex;align-items:center;gap:6px;padding:6px 8px}#bottom .row .grow{flex:1}#bottom .nav{flex:1;flex-direction:column;gap:2px;min-height:52px;border:1px solid var(--line);border-radius:12px}#bottom .nav small{font-size:10px;color:var(--ink-faint);letter-spacing:.1em}#bottom .nav b{font-size:13px;font-weight:500;font-family:var(--serif);max-width:40vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#bottom .nav[aria-disabled=true]{opacity:.28;pointer-events:none}.vflow{padding-top:86px}article.text{font-family:var(--body-font);font-size:var(--fs);line-height:var(--lh);letter-spacing:.02em;max-width:var(--measure);margin:0 auto;padding:30px 22px 40px}article.text p{margin:0 0 1.15em;text-indent:0}article.text hr{border:0;margin:2.6em auto;width:40%;border-top:1px solid var(--line)}article.text em{font-style:normal;-webkit-text-emphasis:filled dot;text-emphasis:filled dot;-webkit-text-emphasis-position:over right;text-emphasis-position:over right}article.text ruby rt{font-size:.5em;color:var(--ink-dim)}article.text h2{font-family:var(--serif);font-weight:500;font-size:1.2em;margin:2.4em 0 1em}@media(max-width:460px){article.text{padding-left:16px;padding-right:16px}.head-in-text,.endcard{padding-left:16px;padding-right:16px}}.head-in-text{max-width:var(--measure);margin:0 auto;padding:0 22px;text-align:center}.head-in-text .lb{font-size:11px;letter-spacing:.24em;color:var(--accent)}.head-in-text h1{font-family:var(--serif);font-weight:500;font-size:clamp(20px,5vw,27px);margin:12px 0 6px;line-height:1.4}.head-in-text .mi{font-size:11px;color:var(--ink-faint);letter-spacing:.1em}.head-in-text .rule{width:34px;height:1px;background:var(--line);margin:24px auto 0}.endcard{max-width:var(--measure);margin:0 auto;padding:30px 22px 120px}.endcard .fin{text-align:center;color:var(--ink-faint);font-size:11px;letter-spacing:.3em;margin-bottom:30px}.endcard a.next{display:block;padding:20px;border-radius:14px;background:var(--bg-card);border:1px solid var(--line)}.endcard a.next:hover{border-color:var(--accent)}.endcard a.next small{font-size:11px;letter-spacing:.18em;color:var(--accent)}.endcard a.next b{display:block;font-family:var(--serif);font-weight:500;font-size:18px;margin-top:8px}.endcard .back{display:block;text-align:center;margin-top:18px;color:var(--ink-dim);font-size:13px;padding:12px}body.vertical #scroller{position:fixed;inset:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}body.vertical .vflow{writing-mode:vertical-rl;text-orientation:mixed;height:100dvh;padding:74px 30px 64px;column-fill:auto}body.vertical article.text{max-width:none;margin:0;padding:0;max-height:none;height:100%;line-height:var(--lh);letter-spacing:.05em}body.vertical article.text p{margin:0 0 0 1.15em}body.vertical article.text hr{width:1px;height:40%;margin:auto 2.6em;border:0;border-left:1px solid var(--line)}body.vertical .head-in-text{max-width:none;padding:0;margin:0 0 0 3em;text-align:start}body.vertical .head-in-text .rule{width:1px;height:34px;margin:24px 0 0}body.vertical .endcard{max-width:none;padding:0 0 0 3em;height:100%;display:flex;flex-direction:column;justify-content:center;writing-mode:horizontal-tb;width:74vw;max-width:380px}body.vertical .endcard .fin{margin-bottom:20px}body.vertical #progress{top:0}.sheet{position:fixed;inset:0;z-index:70;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(6px);display:none}.sheet.on{display:block}.sheet .panel{position:absolute;left:0;right:0;bottom:0;max-height:82dvh;overflow-y:auto;background:var(--bg-card);border-top:1px solid var(--line);border-radius:18px 18px 0 0;padding:10px 0 calc(20px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px var(--shadow)}@media(min-width:720px){.sheet .panel{inset:0 0 0 auto;width:380px;border-radius:0;border-left:1px solid var(--line);max-height:none}}.sheet .grab{width:38px;height:4px;border-radius:3px;background:var(--line);margin:6px auto 12px}.sheet h4{margin:6px 20px 10px;font-size:11px;letter-spacing:.2em;color:var(--ink-faint)}.sheet .close{position:absolute;top:8px;right:10px}.toc a{display:flex;align-items:center;gap:12px;padding:14px 20px;border-top:1px solid var(--line);min-height:56px}.toc a.cur{background:var(--accent-soft)}.toc a .no{flex:0 0 58px;font-size:10px;letter-spacing:.1em;color:var(--ink-faint)}.toc a .t{font-family:var(--serif);font-size:15px}.toc a .pct{margin-left:auto;font-size:11px;color:var(--ink-dim)}.opt{display:flex;align-items:center;gap:10px;padding:8px 20px}.opt .lb{flex:0 0 84px;font-size:12px;color:var(--ink-dim)}.opt .seg{display:flex;gap:6px;flex-wrap:wrap}.opt .seg button{border:1px solid var(--line);border-radius:9px;padding:0 12px;min-height:40px;font-size:13px;color:var(--ink-dim)}.opt .seg button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}#mark{position:fixed;left:50%;bottom:78px;transform:translate(-50%,14px);z-index:65;display:none;opacity:0;transition:opacity .3s,transform .3s;background:var(--bg-card);border:1px solid var(--accent);border-radius:999px;padding:0 6px 0 18px;align-items:center;gap:10px;box-shadow:0 8px 26px var(--shadow);min-height:48px}#mark.on{display:flex;opacity:1;transform:translate(-50%)}#mark span{font-size:13px;color:var(--ink-dim)}#mark button{min-height:40px;color:var(--accent)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.partband{margin:26px 0 2px;padding:0 0 8px;font-family:var(--serif);font-size:13px;letter-spacing:.18em;color:var(--ink-dim);border-bottom:1px solid var(--line)}.partband:before{content:"『";color:var(--ink-faint)}.partband:after{content:"』";color:var(--ink-faint)}.partband.sm{margin:14px 20px 0;padding-bottom:6px;font-size:12px}
