  :root{
    --paper:#EAE6DF; --ink:#231F1C; --ink-soft:#6A625A; --rust:#8A3B24; --hair:#CFC8BD; --veil:rgba(234,230,223,.96);
    --fs:1.02rem;
    box-sizing:border-box;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#17140F; --ink:#DCD5C9; --ink-soft:#8E857A; --rust:#C56B4C; --hair:#332D25; --veil:rgba(23,20,15,.96);
    }
  }
  :root[data-theme="dark"]{
    --paper:#17140F; --ink:#DCD5C9; --ink-soft:#8E857A; --rust:#C56B4C; --hair:#332D25; --veil:rgba(23,20,15,.96);
  }
  *,*::before,*::after{box-sizing:inherit}
  html{height:100%;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 3.5rem)}
  body{
    margin:0; min-height:100%; background:var(--paper); color:var(--ink);
    font-family:"Noto Serif JP",'Hiragino Mincho ProN','Yu Mincho',serif;
    -webkit-font-smoothing:antialiased;
  }
  html[lang="en"] body{font-family:"Source Serif 4","Noto Serif JP",Georgia,serif}
  button{font:inherit;color:inherit}
  :focus-visible{outline:2px solid var(--rust);outline-offset:2px}

  /* 上の操作列 */
  .bar{
    position:sticky; top:env(safe-area-inset-top,0px); z-index:5;
    background:var(--veil); border-bottom:1px solid var(--hair);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  }
  .bar-in{max-width:44rem;margin:0 auto;padding:.55rem 1.2rem;display:flex;align-items:center;gap:.4rem}
  .home{background:none;border:0;padding:.3rem .2rem;font-weight:600;letter-spacing:.2em;cursor:pointer;margin-right:auto}
  html[lang="en"] .home{letter-spacing:.04em}
  .tool{
    font-size:.8rem;color:var(--ink-soft);background:transparent;
    border:1px solid var(--hair);border-radius:2px;padding:.35rem .7rem;cursor:pointer;white-space:nowrap;
  }
  .tool:hover{color:var(--ink);border-color:var(--rust)}
  .tool[disabled]{opacity:.35;cursor:not-allowed}
  .tool[aria-pressed="true"]{color:var(--ink);border-color:var(--rust)}

  .sheet{max-width:41rem;margin:0 auto;padding:0 1.6rem 5rem}

  /* 表紙 */
  .cover{padding:4rem 0 2.4rem;display:flex;justify-content:flex-end;align-items:flex-start;gap:1.6rem;border-bottom:3px solid var(--rust)}
  .cover-meta{flex:1;padding-top:.4rem;color:var(--ink-soft);font-size:.9rem;line-height:2;font-weight:300}
  .cover-meta p{margin:0}
  .title{writing-mode:vertical-rl;font-size:clamp(2.6rem,9vw,3.4rem);font-weight:600;letter-spacing:.3em;line-height:1;margin:0}
  html[lang="en"] .title{writing-mode:horizontal-tb;letter-spacing:.02em;font-size:clamp(2.2rem,8vw,3rem)}
  .start{display:flex;gap:.6rem;flex-wrap:wrap;margin:1.8rem 0 0}
  .btn{
    background:transparent;border:1px solid var(--ink);border-radius:2px;padding:.6rem 1.1rem;cursor:pointer;font-size:.92rem;
  }
  .btn.primary{background:var(--ink);color:var(--paper)}
  .toc{list-style:none;margin:2.2rem 0 0;padding:0;counter-reset:none}
  .toc li{border-bottom:1px solid var(--hair)}
  .toc a{display:flex;gap:1rem;align-items:baseline;padding:.8rem .2rem;color:inherit;text-decoration:none}
  .toc a:hover .toc-t{color:var(--rust)}
  .toc-n{min-width:5.5em;color:var(--ink-soft);font-size:.82rem;font-weight:300}
  html[lang="en"] .toc-n{min-width:4.5em}
  .toc-t{font-size:1rem}
  .toc-note{margin-left:auto;font-size:.72rem;color:var(--ink-soft)}
  .toc a[aria-current="page"] .toc-t{color:var(--rust)}

  /* 本文 */
  .chapter-head{margin:3rem 0 2.2rem}
  .chapter-num{margin:0 0 .5rem;font-size:.8rem;font-weight:300;letter-spacing:.3em;color:var(--rust)}
  html[lang="en"] .chapter-num{letter-spacing:.06em}
  .chapter-title{margin:0;font-size:1.45rem;font-weight:600;letter-spacing:.14em}
  html[lang="en"] .chapter-title{letter-spacing:0}
  .illus{margin:0 0 2.4rem}
  .illus img{display:block;width:100%;height:auto;border-radius:2px;background:var(--hair)}
  body.tate .illus{margin:0 0 0 2.2rem}
  body.tate .illus img{height:calc(100vh - 10rem);height:calc(100dvh - 10rem);width:auto;max-width:none}
  .notice{margin:0 0 1.6rem;padding:.7rem .9rem;border-left:2px solid var(--rust);font-size:.85rem;color:var(--ink-soft)}
  .body p{margin:0;text-indent:1em;font-size:var(--fs);line-height:2.1;text-align:justify}
  html[lang="en"] .body p{line-height:1.75;text-align:left;hyphens:auto;-webkit-hyphens:auto;text-indent:1.4em}
  .body p.sp{margin-top:1.5rem}
  .body p.t{text-indent:0}
  html[lang="en"] .body p.t{text-indent:1.4em}
  .body hr{border:0;height:1px;background:var(--hair);width:4rem;margin:2.6rem auto}
  .body p.end{margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--hair);text-indent:0;color:var(--ink-soft);font-size:.82rem;font-weight:300;letter-spacing:.18em}
  .body p.end + p.end{margin-top:1rem;border-top:0;padding-top:0;letter-spacing:.3em}

  .cover-sub{margin:.3rem 0 .5rem !important;color:var(--ink);font-size:1.05rem;font-weight:400;line-height:1.7;letter-spacing:.06em}
  .chart{margin:2.4rem 0}
  .chart img{display:block;width:100%;height:auto;border-radius:2px;background:var(--hair)}
  .chart figcaption{margin-top:.6rem;font-size:.78rem;color:var(--ink-soft);letter-spacing:.12em}
  body.tate .chart{margin:0 2.2rem}
  body.tate .chart img{height:calc(100vh - 12rem);height:calc(100dvh - 12rem);width:auto;max-width:none}
  .nextvol{display:block;margin:2rem 0 0;padding:1rem 1.2rem;text-align:center;background:var(--ink);color:var(--paper);text-decoration:none;border-radius:2px;font-size:1rem;letter-spacing:.12em}
  body.tate .nextvol{margin:0 2rem 0 0;padding:1.2rem 1rem}

  /* ページ送り */
  .pager{display:flex;align-items:stretch;gap:.6rem;margin:3rem 0 0;padding-top:1.4rem;border-top:1px solid var(--hair)}
  .pager button{flex:1;background:transparent;border:1px solid var(--hair);border-radius:2px;padding:.75rem .8rem;cursor:pointer;text-align:left;min-height:3.2rem}
  .pager button:hover{border-color:var(--rust)}
  .pager button[disabled]{visibility:hidden}
  .pager .next{text-align:right}
  .pager small{display:block;color:var(--ink-soft);font-size:.72rem;margin-bottom:.15rem}
  .pager span{font-size:.9rem}
  .pager .mid{flex:0 0 auto;text-align:center}

  /* 縦書き */
  body.tate .reader{
    writing-mode:vertical-rl; width:100%; max-width:100%; height:calc(100vh - 7rem); height:calc(100dvh - 7rem);
    overflow-x:auto; overflow-y:hidden; padding:1rem 0 1.5rem; margin-top:1.5rem;
    border-top:1px solid var(--hair); border-bottom:1px solid var(--hair);
  }
  body.tate .chapter-head{margin:0 0 0 2.5rem}
  body.tate .body p{text-align:left}
  body.tate .body p.sp{margin-top:0;margin-right:1.5rem}
  body.tate .body hr{width:1px;height:4rem;margin:auto 2.6rem}
  body.tate .body p.end{border-top:0;border-right:1px solid var(--hair);margin:0 3rem 0 0;padding:0 1.4rem 0 0}
  body.tate .body p.end + p.end{border-right:0;margin-right:1rem;padding-right:0}
  body.tate .notice{border-left:0;border-top:2px solid var(--rust);margin:0 0 0 1.6rem}
  body.tate .sheet{max-width:none;overflow-x:hidden}
  body.tate .pager{margin:1.2rem 0 0;flex-direction:row-reverse}
  body.tate .pager .next{text-align:left}
  body.tate .pager .prev{text-align:right}

  .toc-panel{
    position:fixed; inset:0; z-index:10; background:var(--veil); overflow:auto;
    padding:calc(env(safe-area-inset-top,0px) + 1rem) 0 calc(env(safe-area-inset-bottom,0px) + 2rem);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  }
  .toc-panel[hidden]{display:none}
  .toc-head{max-width:41rem;margin:0 auto;padding:0 1.6rem;display:flex;align-items:center;justify-content:space-between}
  .toc-head h2{font-size:1rem;font-weight:600;letter-spacing:.2em;margin:.6rem 0}
  html[lang="en"] .toc-head h2{letter-spacing:.02em}
  .toc-panel .toc{max-width:41rem;margin:0 auto;padding:0 1.6rem}

  @media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important}}
  @media (max-width:30rem){ .tool{padding:.3rem .5rem;font-size:.74rem} .bar-in{gap:.3rem} }

  /* 1章1ページにしたときの足し（2026-11-06） */
  a.home{color:inherit;text-decoration:none}
  a.btn{display:inline-block;color:var(--ink);text-decoration:none}
  a.btn.primary{color:var(--paper)}
  .pager a{flex:1;display:block;color:inherit;text-decoration:none;border:1px solid var(--hair);border-radius:2px;padding:.75rem .8rem;text-align:left;min-height:3.2rem}
  .pager a:hover{border-color:var(--rust)}
  .pager .empty{flex:1;visibility:hidden}
  .crumbs{margin:1.6rem 0 0;font-size:.75rem;color:var(--ink-soft);letter-spacing:.08em}
  .crumbs a,.crumb{color:var(--ink-soft);text-decoration:none}
  .crumbs a:hover,.crumb:hover{color:var(--rust)}
  body.tate .crumbs{display:none}
  [hidden]{display:none!important}
  .altsite{margin:1.4rem 0 0;font-size:.85rem;line-height:1.9}
  .altsite a{color:var(--rust);text-decoration:underline;text-underline-offset:.2em}
