:root{--bg:#ffffff;--bg-soft:#f6f8fa;--bg-sidebar:#f9fafb;--text:#1f2328;--text-soft:#57606a;--border:#d8dee4;--accent:#007d9c;--accent-soft:#e6f4f8;--link:#0b6e8f;--code-bg:#f6f8fa;--codebar-bg:#eef1f4;--note-bg:#fff8e6;--note-border:#e0c56e;--topbar-h:3.25rem;--sidebar-w:18rem}body.sidebar-collapsed{--sidebar-w:3.5rem}@media(prefers-color-scheme:dark){:root{--bg:#0d1117;--bg-soft:#161b22;--bg-sidebar:#10151c;--text:#e6edf3;--text-soft:#9198a1;--border:#30363d;--accent:#00add8;--accent-soft:#0d2a33;--link:#58b8d8;--code-bg:#161b22;--codebar-bg:#1c232b;--note-bg:#2a2417;--note-border:#7a6a34}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--topbar-h) + 1rem)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,segoe ui,hiragino sans,noto sans jp,yu gothic ui,sans-serif;font-size:1.125rem;line-height:1.9;color:var(--text);background:var(--bg)}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);display:flex;align-items:center;gap:.75rem;padding:0 1rem;background:var(--bg);border-bottom:1px solid var(--border);z-index:20}.topbar-title{font-weight:700;font-size:1.05rem;color:var(--text)}.topbar-title:hover{text-decoration:none;color:var(--accent)}.topbar-sub{color:var(--text-soft);font-size:.875rem}.sidebar-toggle-input{display:none}.sidebar-toggle-btn{display:none;flex-direction:column;justify-content:center;gap:4px;width:2rem;height:2rem;cursor:pointer}.sidebar-toggle-btn span{display:block;height:2px;background:var(--text);border-radius:1px}.wrapper{display:flex;padding-top:var(--topbar-h);min-height:100vh}.sidebar{position:fixed;top:var(--topbar-h);bottom:0;left:0;width:var(--sidebar-w);overflow-y:auto;background:var(--bg-sidebar);border-right:1px solid var(--border);padding:1rem .75rem 3rem;font-size:1rem}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:.4rem;min-height:2.25rem;margin-bottom:.6rem;color:var(--text-soft);font-size:.875rem}.sidebar-collapse{display:inline-flex;align-items:center;gap:.3rem;min-height:2rem;border:1px solid var(--border);border-radius:6px;padding:.2rem .45rem;color:var(--text-soft);background:0 0;font:inherit;cursor:pointer}.sidebar-collapse:hover{color:var(--accent);border-color:var(--accent)}.sidebar-collapse-icon{font-size:.75rem}.content{transition:margin-left .2s ease}body.sidebar-collapsed .sidebar-header{justify-content:center}body.sidebar-collapsed .sidebar-header-title,body.sidebar-collapsed #site-sidebar,body.sidebar-collapsed .sidebar-collapse-text{display:none}body.sidebar-collapsed .sidebar-collapse{border-color:transparent;padding:.35rem}body.sidebar-collapsed .sidebar-collapse-icon{font-size:1rem}.content{flex:1;margin-left:var(--sidebar-w);padding:2rem 1.5rem 5rem;min-width:0}.chapter,.part-index{max-width:46rem;margin:0 auto}.home{max-width:72rem;margin:0 auto}.home>h2,.home>h3,.home>p,.home>ul{max-width:46rem;margin-inline:auto}.sidebar a{color:var(--text);display:block;border-radius:6px;padding:.3rem .6rem}.sidebar a:hover{background:var(--accent-soft);text-decoration:none}.sidebar a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar-home{font-weight:600;margin-bottom:.5rem}.sidebar-part{margin-bottom:.35rem}.sidebar-part-title{font-weight:600}.sidebar-part ul{list-style:none;margin:0;padding-left:.9rem;display:none}.sidebar-part.open ul{display:block}.sidebar-part ul a{color:var(--text-soft)}.sidebar-part ul a.active,.sidebar-part ul a:hover{color:var(--accent)}.part-label{display:inline-block;font-size:.875rem;font-weight:700;color:var(--accent);letter-spacing:.04em;margin-right:.35rem}.chapter h1,.part-index h1{font-size:2rem;line-height:1.4;margin:.5rem 0 1rem}.chapter h2{font-size:1.5rem;margin-top:2.75rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}.chapter h3{font-size:1.25rem;margin-top:2rem}.breadcrumb{font-size:.875rem;color:var(--text-soft)}.chapter-lead{color:var(--text-soft);border-left:3px solid var(--accent);padding-left:.8rem;margin:1rem 0 2rem}.chapter img{max-width:100%}.chapter .concept-diagram{display:block;margin:1.5rem 0}.chapter .concept-diagram img{display:block;width:100%;height:auto}.lesson-visual{--visual-accent:#00add8;--visual-accent-2:#7c5cff;--visual-soft:#eaf9fc;position:relative;margin:1.5rem 0 2rem;overflow:hidden;border:1px solid color-mix(in srgb,var(--visual-accent) 35%,var(--border));border-radius:18px;background:radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--visual-accent) 18%,transparent),transparent 34%),radial-gradient(circle at 88% 92%,color-mix(in srgb,var(--visual-accent-2) 16%,transparent),transparent 38%),linear-gradient(145deg,var(--visual-soft),var(--bg) 62%);box-shadow:0 14px 35px color-mix(in srgb,var(--visual-accent) 9%,transparent)}.lesson-visual[data-section=intro]{--visual-accent:#d97706;--visual-accent-2:#f43f5e;--visual-soft:#fff8e8}.lesson-visual[data-section=go]{--visual-accent:#008cad;--visual-accent-2:#635bff;--visual-soft:#eaf9fc}.lesson-visual[data-section=web]{--visual-accent:#6d5ce7;--visual-accent-2:#00a7c7;--visual-soft:#f0efff}.lesson-visual[data-section=server]{--visual-accent:#16835d;--visual-accent-2:#00a7c7;--visual-soft:#eafaf3}.lesson-visual[data-section=sql]{--visual-accent:#c65d09;--visual-accent-2:#e11d74;--visual-soft:#fff4e8}.lesson-visual[data-section=app]{--visual-accent:#d63384;--visual-accent-2:#7c3aed;--visual-soft:#fff0f7}.lesson-visual[data-section=isucon]{--visual-accent:#d9363e;--visual-accent-2:#f08c00;--visual-soft:#fff0f0}.lesson-visual[data-section=perf]{--visual-accent:#1367c5;--visual-accent-2:#7c3aed;--visual-soft:#eef6ff}.lesson-visual[data-section=scale]{--visual-accent:#7048c8;--visual-accent-2:#db2777;--visual-soft:#f5f0ff}.lesson-visual[data-section=appendix]{--visual-accent:#4f6b80;--visual-accent-2:#008cad;--visual-soft:#f0f5f7}.lesson-visual-caption{display:flex;align-items:center;gap:.65rem;padding:.85rem 1rem 0;line-height:1.35}.lesson-visual-kicker{flex:none;padding:.22rem .58rem;border-radius:999px;color:#fff;background:var(--visual-accent);font-size:.72rem;font-weight:800;letter-spacing:.04em}.lesson-visual-title{color:var(--text);font-size:.96rem;font-weight:750}.lesson-visual-svg{display:block;width:100%;height:auto;color:var(--text)}.lesson-visual-svg text{font-family:-apple-system,BlinkMacSystemFont,segoe ui,noto sans jp,sans-serif}.lesson-visual-orb{fill:var(--visual-accent);opacity:.12}.lesson-visual-orb--two{fill:var(--visual-accent-2);opacity:.1}.lesson-visual-node-shadow{fill:color-mix(in srgb,var(--visual-accent) 14%,transparent)}.lesson-visual-node-card{fill:var(--bg);stroke:color-mix(in srgb,var(--visual-accent) 62%,var(--border));stroke-width:1.5}.lesson-visual-number-bg{fill:var(--visual-accent)}.lesson-visual-number{fill:#fff;font-size:13px;font-weight:800}.lesson-visual-label{fill:var(--text);font-size:16px;font-weight:750}.lesson-visual-note{fill:var(--text-soft);font-size:12px}.lesson-visual-path{fill:none;stroke:var(--visual-accent);stroke-width:3;stroke-linecap:round;stroke-dasharray:7 8}.lesson-visual-path--return{stroke:var(--visual-accent-2);stroke-width:2.5}.lesson-visual-arrowhead{fill:var(--visual-accent)}.lesson-visual-mobile{display:none}@media(prefers-reduced-motion:no-preference){.lesson-visual-path{animation:lesson-path-flow 5s linear infinite}.lesson-visual-orb--one{animation:lesson-orb-pulse 4.5s ease-in-out infinite}.lesson-visual-orb--two{animation:lesson-orb-pulse 4.5s ease-in-out 1.2s infinite}}@keyframes lesson-path-flow{to{stroke-dashoffset:-45}}@keyframes lesson-orb-pulse{50%{opacity:.2;transform:scale(1.08)}}@media(prefers-color-scheme:dark){.lesson-visual{--visual-soft:#111a23}.lesson-visual-node-card{fill:#111820}.lesson-visual-node-shadow{opacity:.55}}.chapter math[display=block]{display:block;margin:1.25rem 0;overflow-x:auto;max-width:100%;font-size:1.05em}.chapter table,.part-index table,.home table{border-collapse:collapse;width:100%;margin:1.25rem 0;font-size:.95rem;display:block;overflow-x:auto}.chapter th,.chapter td,.home th,.home td{border:1px solid var(--border);padding:.45rem .7rem;text-align:left;line-height:1.6}.chapter th,.home th{background:var(--bg-soft)}.home th:first-child,.home td:first-child{min-width:9.5rem}.home th:nth-child(2),.home td:nth-child(2){min-width:6.5rem;text-align:right}.home th:nth-child(3),.home td:nth-child(3){min-width:19rem}.home th:nth-child(4),.home td:nth-child(4){min-width:17rem}.home tbody tr:nth-child(even){background:color-mix(in srgb,var(--accent) 4%,transparent)}.home td:first-child{color:var(--accent);font-weight:700}.chapter blockquote{margin:1.25rem 0;padding:.7rem 1rem;background:var(--note-bg);border-left:3px solid var(--note-border);border-radius:0 6px 6px 0}.chapter blockquote p{margin:.25rem 0}.chapter hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}code{font-family:ui-monospace,sf mono,SFMono-Regular,Menlo,Consolas,noto sans mono,monospace;font-size:.875em}:not(pre)>code{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:.08em .35em}.codeblock{margin:1.4rem 0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.codeblock-bar{display:flex;align-items:center;justify-content:space-between;padding:.3rem .75rem;background:var(--codebar-bg);border-bottom:1px solid var(--border);font-size:.875rem;color:var(--text-soft)}.codeblock-actions{display:flex;gap:.5rem}.codeblock-actions button{font:inherit;font-size:.875rem;color:var(--text-soft);background:0 0;border:1px solid var(--border);border-radius:5px;padding:.1rem .55rem;cursor:pointer}.codeblock-actions button:hover{color:var(--accent);border-color:var(--accent)}.codeblock-actions button:disabled{opacity:.6;cursor:default}.codeblock pre{margin:0;padding:.9rem 1rem;overflow-x:auto;line-height:1.6;font-size:.9375rem;background:var(--code-bg)}.codeblock .highlight{margin:0}.codeblock .chroma>code{counter-reset:code-line}.codeblock .chroma .line{display:block;counter-increment:code-line}.codeblock .chroma .line::before{content:counter(code-line);display:inline-block;width:2ch;margin-right:.7rem;color:var(--text-soft);text-align:right;user-select:none;opacity:.7}.editor-pane{display:flex;flex-direction:column;box-sizing:border-box;border:1px solid var(--border);border-radius:10px;overflow-x:hidden;overflow-y:auto;background:var(--code-bg);margin-top:2.5rem;height:70vh}.editor-toolbar{flex:none;display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:var(--codebar-bg);border-bottom:1px solid var(--border);font-size:.875rem;color:var(--text-soft)}.editor-workspace{display:flex;flex:auto;flex-direction:column;min-height:calc(8rem + 7px + 2.2rem + 4rem)}.editor-pane.with-api-client .editor-workspace{min-height:calc(8rem + 7px + 2.2rem + var(--server-log-height,9rem))}.editor-actions{display:flex;gap:.5rem}.editor-actions button,.editor-output-bar button{font:inherit;font-size:.875rem;color:var(--text-soft);background:0 0;border:1px solid var(--border);border-radius:5px;padding:.15rem .6rem;cursor:pointer}.editor-actions button:hover,.editor-output-bar button:hover{color:var(--accent);border-color:var(--accent)}.editor-actions #ed-run{color:#fff;background:var(--accent);border-color:var(--accent);font-weight:600}.editor-actions #ed-run:hover{color:#fff;filter:brightness(1.1)}.editor-actions #ed-run:disabled{opacity:.6}.editor-actions #ed-reset:disabled{color:var(--text-soft);background:0 0;border-color:var(--border);opacity:.65;cursor:not-allowed}.editor-actions #ed-run.is-stop{background:#b42318;border-color:#b42318}.editor-actions #ed-run.is-stop:hover{color:#fff;filter:brightness(1.1)}.editor-actions select{height:2rem;padding:0 .35rem;border:1px solid var(--border);border-radius:5px;color:var(--text-soft);background:0 0;font:inherit;font-size:.8125rem}.editor-input{position:relative;flex:1 1 62%;min-height:8rem;overflow:hidden;background:var(--code-bg)}.editor-splitter,.api-splitter{flex:0 0 7px;position:relative;z-index:3;cursor:row-resize;background:var(--codebar-bg);touch-action:none}.editor-splitter::before,.api-splitter::before{content:"";position:absolute;inset:-8.5px 0}.editor-splitter::after,.api-splitter::after{content:"";position:absolute;top:3px;right:0;left:0;border-top:1px solid var(--border)}.editor-splitter:hover::after,.editor-splitter:focus-visible::after,.api-splitter:hover::after,.api-splitter:focus-visible::after{border-color:var(--accent)}body.editor-resizing{cursor:row-resize;user-select:none}#ed-code,.editor-hl,.editor-measure{position:absolute;inset:0;margin:0;border:0;padding:.9rem 1rem .9rem 3.2rem;box-sizing:border-box;font-family:ui-monospace,sf mono,SFMono-Regular,Menlo,Consolas,noto sans mono,monospace;font-size:.9375rem;line-height:1.6;tab-size:4;white-space:pre;overflow-wrap:normal;word-break:normal}.editor-pane.is-gutter-hidden #ed-code,.editor-pane.is-gutter-hidden .editor-hl,.editor-pane.is-gutter-hidden .editor-measure{padding-left:1rem}.editor-pane.is-gutter-hidden .editor-gutter{display:none}.editor-pane.is-wrapped #ed-code,.editor-pane.is-wrapped .editor-hl,.editor-pane.is-wrapped .editor-measure{white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word}#ed-code{z-index:1;resize:none;outline:none;overflow:auto;background:0 0;color:transparent;caret-color:var(--text)}#ed-code::selection{background:rgba(84,155,255,.35)}.editor-hl{z-index:0;overflow:hidden;pointer-events:none;color:var(--text);background:0 0}.editor-pane.is-wrapped .editor-hl code{display:block}.editor-hl code{font:inherit;background:0 0}.editor-measure{visibility:hidden;overflow:hidden;pointer-events:none}#ed-hl{background:0 0}.editor-gutter{position:absolute;z-index:2;top:0;bottom:0;left:0;width:2.4rem;padding:.9rem .35rem .9rem .1rem;overflow:hidden;border-right:1px solid var(--border);color:var(--text-soft);background:var(--code-bg);font-family:ui-monospace,sf mono,SFMono-Regular,Menlo,Consolas,noto sans mono,monospace;font-size:.9375rem;line-height:1.6;text-align:right;user-select:none;pointer-events:none;white-space:pre}.editor-output-bar{flex:none;display:flex;align-items:center;justify-content:space-between;padding:.3rem .75rem;font-size:.875rem;color:var(--text-soft);border-top:1px solid var(--border);background:var(--codebar-bg)}#ed-status.busy::before{content:"\23f3 "}#ed-status.ok{color:#2da44e}#ed-status.err{color:#d1242f}@media(prefers-color-scheme:dark){#ed-status.ok{color:#3fb950}#ed-status.err{color:#f85149}}#ed-output{flex:0 0 var(--server-log-height,30%);min-height:2.8rem;max-height:none;margin:0;padding:.7rem 1rem;overflow:auto;font-size:.9375rem;line-height:1.6;white-space:pre-wrap;word-break:break-all;background:var(--bg-soft)}.api-client{flex:initial;min-height:12rem;border-top:1px solid var(--border);background:var(--bg);overflow:hidden;display:flex;flex-direction:column}.api-client.is-collapsed{flex:none;min-height:0}.api-client-title{flex:none;display:block;width:100%;border:0;padding:.45rem .75rem;font-size:.875rem;font-weight:600;text-align:left;color:var(--text);background:0 0;cursor:pointer}.api-client-title::before{content:"▼ ";font-size:.7rem;color:var(--text-soft)}.api-client.is-collapsed .api-client-title::before{content:"▶ "}.api-client-content{display:flex;flex:auto;min-height:0;flex-direction:column;overflow:hidden}.api-client.is-collapsed .api-client-content{display:none}.editor-pane.with-api-client #ed-output{flex-basis:var(--server-log-height,9rem)}.editor-pane.with-api-client .api-client{flex:0 0 var(--api-client-height,13rem);min-height:var(--api-client-min-height,13rem)}.editor-pane.with-api-client .api-client.is-collapsed{flex:none;min-height:0}.editor-pane.api-collapsed .api-splitter{display:none}.api-request-line{display:flex;gap:.45rem;padding:.45rem .75rem}.api-request-line select,.api-request-line input,.api-request-line button{font:inherit;font-size:.875rem;border:1px solid var(--border);border-radius:5px;color:var(--text);background:var(--bg);padding:.25rem .5rem}.api-request-line input{flex:1;min-width:0;font-family:ui-monospace,sf mono,monospace}.api-request-line button{cursor:pointer;color:#fff;background:var(--accent);border-color:var(--accent);font-weight:600}.api-request-line button:disabled{opacity:.6;cursor:default}.api-body,.api-response{padding:.2rem .75rem .6rem}.api-body{flex:initial;min-height:0;overflow:hidden}.api-response{flex:auto;min-height:0;display:flex;flex-direction:column}.api-body-head,.api-response-head{display:flex;justify-content:space-between;font-size:.875rem;color:var(--text-soft);margin-bottom:.2rem}.api-body-head button{padding:.1rem .55rem;border:1px solid var(--border);border-radius:5px;color:var(--text-soft);background:0 0;font:inherit;cursor:pointer}.api-body-head button:hover{color:var(--accent);border-color:var(--accent)}.api-body-head select{padding:.1rem .3rem;border:1px solid var(--border);border-radius:5px;color:var(--text);background:var(--bg);font:inherit}.api-content-type{margin-right:.2rem}.api-form-fields{max-height:7.25rem;padding:.1rem 0 .2rem;overflow-y:auto}.api-form-labels,.api-form-row{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1fr)1.5rem;gap:.35rem;align-items:center}.api-form-labels{grid-template-columns:minmax(0,1fr)minmax(0,1fr)1.5rem;padding:0 .1rem .15rem;font-size:.78rem;color:var(--text-soft)}.api-form-row{margin-bottom:.3rem}.api-form-row input{width:100%;min-width:0;padding:.25rem .4rem;border:1px solid var(--border);border-radius:5px;color:var(--text);background:var(--bg);font:.875rem ui-monospace,sf mono,monospace}.api-form-row button,#api-form-add{border:1px solid var(--border);border-radius:5px;color:var(--text-soft);background:0 0;font:.875rem inherit;cursor:pointer}.api-form-row button{width:1.5rem;height:1.8rem;padding:0}#api-form-add{padding:.15rem .5rem}.api-form-row button:hover,#api-form-add:hover{color:var(--accent);border-color:var(--accent)}.api-json-input{position:relative;height:5.5rem;overflow:hidden;border:1px solid var(--border);border-radius:5px;background:var(--code-bg)}.api-json-input pre,.api-json-input textarea{position:absolute;inset:0;margin:0;padding:.45rem .55rem;border:0;box-sizing:border-box;font:.9375rem/1.6 ui-monospace,sf mono,SFMono-Regular,Menlo,Consolas,monospace;tab-size:4;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;scrollbar-gutter:stable}.api-json-input pre{pointer-events:none;overflow:auto;scrollbar-color:transparent transparent}.api-json-input pre code{font:inherit;background:0 0}#api-body-hl{background:0 0}.api-json-input textarea{resize:none;outline:none;overflow:auto;background:0 0;color:transparent;caret-color:var(--text)}.api-json-input textarea::selection{background:rgba(84,155,255,.35)}#api-response-body{box-sizing:border-box;flex:auto;min-height:calc(4.8em + 1rem);margin:0;overflow:auto;padding:.5rem .6rem;border:1px solid var(--border);border-radius:5px;background:var(--bg-soft);font-family:ui-monospace,sf mono,SFMono-Regular,Menlo,Consolas,noto sans mono,monospace;font-size:.9375rem;font-variant-ligatures:none;line-height:1.6;white-space:pre-wrap;word-break:break-word}.codeblock-actions .cb-load{color:#fff;background:var(--accent);border-color:var(--accent)}.codeblock-actions .cb-load:hover{color:#fff;filter:brightness(1.1)}.codeblock-actions .cb-load:disabled{opacity:.6;cursor:not-allowed}@media(min-width:1200px){.content:has(.chapter-wrap.with-editor){padding-bottom:1.5rem}.chapter-wrap.with-editor{display:grid;grid-template-columns:minmax(0,1fr)minmax(30rem,52%);gap:2rem;max-width:100rem;margin:0 auto;align-items:start}.chapter-wrap.with-editor .chapter{max-width:46rem;width:100%;margin:0 auto}.chapter-wrap.with-editor .editor-pane{margin-top:0;align-self:start;position:sticky;top:calc(var(--topbar-h) + 1.5rem);height:calc(100vh - var(--topbar-h) - 3rem)}}.toc{border:1px solid var(--border);border-radius:8px;padding:.5rem .9rem;margin:1.25rem 0;font-size:.9375rem;background:var(--bg-soft)}.toc summary{cursor:pointer;color:var(--text-soft)}.toc ul{margin:.4rem 0;padding-left:1.2rem}.answer{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;padding:.6rem 1rem;margin:1.25rem 0;background:var(--bg-soft)}.answer>summary{cursor:pointer;color:var(--text-soft);font-size:.9375rem;list-style-position:outside}.answer[open]>summary{margin-bottom:.5rem}.answer>:last-child{margin-bottom:0}.prevnext{display:flex;justify-content:space-between;gap:1rem;margin-top:3.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.prevnext a{display:flex;flex-direction:column;max-width:48%;padding:.6rem .9rem;border:1px solid var(--border);border-radius:8px}.prevnext a:hover{border-color:var(--accent);text-decoration:none}.prevnext .next{margin-left:auto;text-align:right}.pn-label{font-size:.875rem;color:var(--text-soft)}.pn-title{font-weight:600}.part-label-big{color:var(--accent);font-weight:700;letter-spacing:.05em;margin:0}.chapter-list{list-style:none;counter-reset:chapter;padding:0}.chapter-list li{counter-increment:chapter}.chapter-list a{display:flex;flex-direction:column;padding:.8rem 1rem .8rem 3.2rem;margin:.5rem 0;border:1px solid var(--border);border-radius:8px;position:relative;color:var(--text)}.chapter-list a::before{content:counter(chapter);position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.85rem}.chapter-list a:hover{border-color:var(--accent);text-decoration:none}.chapter-list-title{font-weight:600}.chapter-list-desc{font-size:.95rem;color:var(--text-soft)}.hero{text-align:center;padding:2.5rem 0 1.5rem}.hero h1{font-size:2.2rem;margin-bottom:.5rem}.hero-lead{font-size:1.2rem;color:var(--text-soft)}.home-visual{margin:.9rem auto 0;max-width:46rem;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:22px;background:radial-gradient(circle at 15% 15%,rgba(0,173,216,.18),transparent 30%),radial-gradient(circle at 82% 76%,rgba(255,92,138,.15),transparent 34%),var(--bg-soft);box-shadow:0 18px 45px rgba(0,125,156,9%)}.home-visual svg{display:block;width:100%;height:auto}.home-visual-rail{fill:none;stroke:url(#home-rail);stroke-width:9;stroke-linecap:round;stroke-dasharray:1 16}.home-visual-stop circle{fill:var(--bg);stroke:#00add8;stroke-width:3}.home-visual-stop:nth-of-type(3) circle{stroke:#6d5ce7}.home-visual-stop:nth-of-type(4) circle{stroke:#7c5cff}.home-visual-stop:nth-of-type(5) circle{stroke:#d63384}.home-visual-stop:nth-of-type(6) circle{stroke:#f05c74}.home-visual-stop text,.home-visual-goal text{fill:var(--text);font:800 16px '-apple-system',BlinkMacSystemFont,segoe ui,noto sans jp,sans-serif}.home-visual-stop-label{fill:var(--text-soft)!important;font-size:13px!important}.home-visual-goal circle{fill:#ff5c8a;stroke:#fff;stroke-width:4}.home-visual-goal>text:not(.home-visual-stop-label){fill:#fff;font-size:22px}@media(prefers-reduced-motion:no-preference){.home-visual-rail{animation:home-rail-move 10s linear infinite}.home-visual-goal circle{animation:home-goal-pulse 2.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}}@keyframes home-rail-move{to{stroke-dashoffset:-85}}@keyframes home-goal-pulse{50%{transform:scale(1.08)}}.hero-actions{display:flex;gap:.75rem;justify-content:center;margin-top:1.5rem}.btn-primary,.btn-secondary{display:inline-block;padding:.55rem 1.4rem;border-radius:8px;font-weight:600}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.1);text-decoration:none}.btn-secondary{border:1px solid var(--border);color:var(--text)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.part-cards{list-style:none;padding:0}.part-cards a{display:flex;flex-direction:column;padding:1rem 1.25rem;margin:.6rem 0;border:1px solid var(--border);border-radius:10px;color:var(--text)}.part-cards a:hover{border-color:var(--accent);text-decoration:none}.part-card-title{font-size:1.2rem;font-weight:700}.part-card-desc{color:var(--text-soft);font-size:.95rem}.part-card-count{color:var(--accent);font-size:.875rem;margin-top:.25rem}@media(max-width:860px){.sidebar-toggle-btn{display:flex}.topbar-sub{display:none}.sidebar{transform:translateX(-100%);transition:transform .2s ease;z-index:15;width:min(20rem,85vw)}.sidebar-header{display:none}body.sidebar-collapsed{--sidebar-w:18rem}body.sidebar-collapsed .sidebar-header{display:none}body.sidebar-collapsed #site-sidebar{display:block}.sidebar-toggle-input:checked~.wrapper .sidebar{transform:translateX(0)}.content{margin-left:0;padding:1.25rem 1rem 4rem}.prevnext{flex-direction:column}.prevnext a{max-width:none}.prevnext .next{margin-left:0}}@media(max-width:560px){.lesson-visual{padding-bottom:.75rem;border-radius:14px}.lesson-visual-caption{align-items:flex-start;flex-direction:column;gap:.42rem;padding:.8rem .8rem .65rem}.lesson-visual-title{font-size:.9rem}.lesson-visual-svg{display:none}.lesson-visual-mobile{display:grid;gap:.45rem;margin:0;padding:0 .75rem;list-style:none;counter-reset:visual-step}.lesson-visual-mobile li{position:relative;display:grid;grid-template-columns:1.5rem minmax(0,1fr)auto;align-items:center;gap:.55rem;min-height:3rem;padding:.5rem .65rem;border:1px solid color-mix(in srgb,var(--visual-accent) 35%,var(--border));border-radius:11px;color:var(--text);background:var(--bg);counter-increment:visual-step}.lesson-visual-mobile li::before{content:counter(visual-step);display:grid;width:1.5rem;height:1.5rem;place-items:center;border-radius:50%;color:#fff;background:var(--visual-accent);font-size:.72rem;font-weight:800}.lesson-visual-mobile li:not(:last-child)::after{content:"↓";position:absolute;z-index:2;bottom:-.72rem;left:1.23rem;color:var(--visual-accent);font-size:.8rem;font-weight:900}.lesson-visual--compare .lesson-visual-mobile li::after,.lesson-visual--split .lesson-visual-mobile li::after{display:none}.lesson-visual-mobile-label{font-size:.88rem;font-weight:700}.lesson-visual-mobile-note{color:var(--text-soft);font-size:.72rem;text-align:right}.home-visual{overflow-x:auto;border-radius:16px}.home-visual svg{width:620px;max-width:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.reading-time{color:var(--text-soft);font-size:.875rem;margin:-.5rem 0 0}.chapter p{margin:1.1rem 0}