:root{--paper: #f3efe4;--paper-deep: #e8e1d2;--ink: #1f1a14;--muted: #5e564c;--line: #d5ccbb;--accent: #8f2d14;--accent-soft: #f6e1d6;--code: #241f1a;--code-ink: #f6f1e6;--white: #fffdf8;color:var(--ink);background:var(--paper);font-family:IBM Plex Sans JP,Hiragino Sans,Noto Sans JP,sans-serif;font-size:17px;line-height:1.75}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,rgba(143,45,20,.06),transparent 28rem),var(--paper)}a{color:var(--accent)}a:hover{text-decoration-thickness:2px}button,input,select{font:inherit;color:inherit}button{background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:.4rem .8rem;cursor:pointer}button[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}button.ghost{background:transparent;color:var(--ink)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{display:grid;grid-template-columns:17rem minmax(0,1fr);min-height:100vh}.side{position:sticky;top:0;height:100vh;overflow:auto;padding:1.5rem 1rem 2rem;border-right:1px solid var(--line);background:#e8e1d2b8}.brand{display:block;text-decoration:none;color:inherit;margin-bottom:1.25rem}.brand strong{display:block;font-family:Shippori Mincho,Yu Mincho,serif;font-size:1.35rem;font-weight:600;letter-spacing:.01em}.brand span,.version{color:var(--muted);font-size:.78rem}.chapter-select,.chapter-select-label{display:none}.chapter-select{width:100%;padding:.45rem;background:var(--white)}button:disabled{opacity:.55;cursor:default}.chapter-links{display:flex;flex-direction:column;gap:.15rem}.chapter-links a{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.35rem;padding:.35rem .45rem;text-decoration:none;color:inherit;font-size:.92rem}.chapter-links a small{color:var(--accent);font-family:IBM Plex Mono,ui-monospace,monospace}.chapter-links a[aria-current=page]{background:var(--ink);color:var(--paper)}.chapter-links a[aria-current=page] small{color:#e7b19a}.page{padding:2.5rem 1.5rem 4rem}.page-inner{max-width:46rem}h1,h2,h3{font-family:Shippori Mincho,Yu Mincho,serif;font-weight:600;line-height:1.35}h1{font-size:2.15rem;margin:0 0 .75rem}h1 span{display:block;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem;color:var(--accent);margin-bottom:.35rem}h2{font-size:1.35rem;margin:2rem 0 .6rem}h3{font-size:1.05rem;margin:1.4rem 0 .4rem}.kicker{margin:0;color:var(--accent);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.lead{font-size:1.05rem}.real{margin:1.75rem 0;padding:.2rem 0 .2rem 1rem;border-left:3px solid var(--accent);background:linear-gradient(90deg,var(--accent-soft),transparent 70%)}.real ul,.sources ul{padding-left:1.15rem}.real li+li,.sources li+li{margin-top:.35rem}code{font-family:IBM Plex Mono,IBM Plex Sans JP,ui-monospace,monospace;font-size:.86em}p code,li code{background:#1f1a140f;padding:.05em .3em}.code,.demo{margin:1.25rem 0 1.5rem;border:1px solid var(--line);background:var(--white)}.code figcaption,.demo figcaption{padding:.45rem .8rem;border-bottom:1px solid var(--line);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;color:var(--muted)}pre{margin:0;padding:.9rem 1rem 1rem;overflow:auto;background:var(--code);color:var(--code-ink);font-size:.78rem;line-height:1.55}pre code{background:transparent;padding:0;color:inherit}.didact-host{margin:.8rem;padding:.85rem;min-height:3rem;background:#fff;border:1px dashed var(--line)}.didact-host p{margin:0 0 .55rem}.didact-host button{background:var(--accent);border-color:var(--accent);color:#fff}.demo-controls,.demo-note,.demo-log,.json-view{margin:0 .8rem .8rem}.demo-controls{display:flex;flex-wrap:wrap;gap:.4rem}.demo-note,.demo-log,.version{color:var(--muted);font-size:.88rem}.demo-log{font-family:IBM Plex Mono,IBM Plex Sans JP,ui-monospace,monospace;white-space:pre-wrap}.json-view{margin-top:0;max-height:18rem}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0 .8rem .8rem}input[type=text]{background:#fff;border:1px solid var(--line);padding:.4rem .55rem;min-width:min(100%,14rem)}.count{font-family:Shippori Mincho,serif;font-size:2rem;margin:.2rem 0}.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--line)}.pager a{text-decoration:none}.missing{padding:3rem 0}@media(max-width:800px){.shell{grid-template-columns:1fr}.side{position:sticky;top:0;z-index:2;height:auto;padding:.85rem .9rem;border-bottom:1px solid var(--line)}.brand{margin-bottom:.6rem}.chapter-links{display:none}.chapter-select,.chapter-select-label{display:block}.chapter-select-label{font-size:.78rem;color:var(--muted)}.page{padding:1.4rem 1rem 3rem}h1{font-size:1.75rem}}
