/* Hallmark · macrostructure: Index-First · genre: modern-minimal · theme: Cobalt
 * user-requested cover retained · nav: N13 right-of-brand / grouped / hints
 * footer: Ft2 · audience: interview study · motion intensity: 3 · density: 4
 * pre-emit critique: P4 H5 E4 S5 R5 V4 */
html,body{overflow-x:clip;scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--color-paper);color:var(--color-ink);transition:none}
button,input{font:inherit}button,a,input{touch-action:manipulation}
button,a{ -webkit-tap-highlight-color:var(--color-transparent)}
:is(a,button,input,summary):focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}
button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}
button:active,.topic-action:active{transform:translateY(1px)}
h1,h2,h3{font-family:var(--font-display);font-style:normal;text-wrap:balance;overflow-wrap:anywhere;min-width:0}
.skip-link{position:fixed;top:var(--space-md);left:var(--space-md);z-index:var(--z-modal);padding:var(--space-md);background:var(--color-surface);transform:translateY(-180%)}
.skip-link:focus{transform:none}
body.home-view #main,body.home-view #sidebar,body.home-view #sidebar-mask{display:none!important}
#portal{background:var(--color-paper)}
.site-header{height:76px;display:flex;align-items:center;gap:var(--space-lg);max-width:1248px;margin:auto;padding:0 var(--space-2xl);border-bottom:var(--rule-width) solid var(--color-rule)}
.site-brand{display:flex;align-items:center;gap:var(--space-sm);font:600 var(--text-md)/1 var(--font-display);color:var(--color-ink);white-space:nowrap}
.brand-mark{font:500 var(--text-md)/1 var(--font-mono);color:var(--color-accent)}
.site-brand small{font:400 var(--text-sm)/1 var(--font-body);color:var(--color-muted);margin-left:var(--space-sm);padding-left:var(--space-md);border-left:var(--rule-width) solid var(--color-rule)}
.header-controls{margin-left:auto;display:flex;align-items:center;gap:var(--space-md)}
.search-trigger{display:flex;align-items:center;gap:var(--space-2xl);background:var(--color-paper-2);color:var(--color-muted);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-sm);height:40px;padding:0 var(--space-md);font-size:var(--text-sm);white-space:nowrap}
kbd{font:400 var(--text-xs)/1.5 var(--font-mono);color:var(--color-muted)}
.theme-control{height:40px;background:none;border:0;color:var(--color-ink-2);padding:0 var(--space-sm);font-size:var(--text-sm);white-space:nowrap}
.cover-wrap{max-width:1248px;margin:auto;padding:var(--space-xl) var(--space-2xl) 0}
.knowledge-cover{position:relative;min-height:304px;overflow:clip;background:var(--color-cover);border-radius:var(--radius-lg);padding:var(--space-2xl);display:flex;align-items:center}
.cover-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cover-copy{position:relative;z-index:var(--z-base);max-width:720px}
.cover-copy h1{font-size:var(--text-display);font-weight:600;letter-spacing:-.045em;line-height:1.2;margin:0 0 var(--space-lg)}
.cover-copy h1 span{display:block;font:500 var(--text-sm)/1.6 var(--font-display);letter-spacing:.02em;margin-bottom:var(--space-lg);color:var(--color-muted)}
.cover-copy p{font-size:var(--text-base);color:var(--color-ink-2);line-height:1.9;max-width:37ch;margin:0;text-wrap:pretty}
.cover-caption{position:absolute;bottom:var(--space-lg);right:var(--space-lg);font:400 var(--text-xs)/1 var(--font-mono);color:var(--color-muted)}
.home-body{max-width:1248px;margin:auto;padding:var(--space-2xl) var(--space-2xl) var(--space-3xl)}
.home-section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-lg);gap:var(--space-md)}
.home-section-heading h2{font-size:var(--text-md);font-weight:600;margin:0}.home-section-heading span{font-size:var(--text-xs);color:var(--color-muted)}
.home-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--space-2xl);align-items:start}
.topic-card{display:grid;grid-template-columns:minmax(0,1fr) 200px;background:var(--color-surface);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-lg);overflow:clip}
.topic-copy{padding:var(--space-xl);display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.topic-meta{color:var(--color-muted);font-size:var(--text-xs);display:flex;gap:var(--space-sm);align-items:center}
.topic-meta i{width:6px;height:6px;background:var(--color-accent);display:block;border-radius:50%}
.topic-copy h3{font-size:var(--text-xl);font-weight:600;letter-spacing:-.04em;margin:var(--space-lg) 0 var(--space-sm)}
.topic-copy h3 a{color:var(--color-ink)}
.topic-description{font-size:var(--text-sm);line-height:1.9;color:var(--color-ink-2);margin:0 0 var(--space-lg);max-width:42ch}
.topic-tags{display:flex;flex-wrap:wrap;gap:var(--space-md);font:400 var(--text-xs)/1.5 var(--font-mono);color:var(--color-muted);margin-bottom:var(--space-xl)}
.topic-action{font-size:var(--text-sm);font-weight:500;white-space:nowrap;display:inline-flex;gap:var(--space-lg);align-items:center;margin-top:auto;color:var(--color-accent);padding:var(--space-sm) 0;border-bottom:var(--rule-width) solid var(--color-accent)}
.topic-diagram{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:var(--space-xl);background:var(--color-paper-2);border-left:var(--rule-width) solid var(--color-rule)}
.diagram-node{font:500 var(--text-xs)/1.5 var(--font-mono);text-align:center;background:var(--color-surface);padding:var(--space-md) var(--space-sm);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-sm);color:var(--color-ink-2)}
.diagram-node:last-child{border-color:var(--color-accent);color:var(--color-accent)}
.diagram-connector{height:24px;position:relative;align-self:center;width:1px;background:var(--color-rule)}
.diagram-connector:after{content:'';position:absolute;width:5px;height:5px;border-right:1px solid var(--color-muted);border-bottom:1px solid var(--color-muted);bottom:0;left:-2px;transform:rotate(45deg)}
.start-panel h3{font-size:var(--text-sm);font-weight:600;margin:0 0 var(--space-md)}
.start-panel p{font-size:var(--text-sm);color:var(--color-muted);line-height:1.8;margin:0 0 var(--space-lg)}
.start-links{display:flex;flex-direction:column;gap:var(--space-xs)}
.start-links a{display:flex;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) 0;color:var(--color-ink-2);font-size:var(--text-sm);min-height:44px;align-items:center;white-space:nowrap;border-bottom:var(--rule-width) solid var(--color-rule)}
.start-links a span{color:var(--color-muted)}
#resume-link[hidden]{display:none}
.chapter-preview{margin-top:var(--space-2xl)}
.chapter-preview summary{font-size:var(--text-sm);color:var(--color-ink-2);cursor:pointer;padding:var(--space-md) 0;min-height:44px;list-style:none;border-top:var(--rule-width) solid var(--color-rule)}
.chapter-preview summary:after{content:'＋';float:right}.chapter-preview[open] summary:after{content:'−'}
.chapter-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-2xl)}
.chapter-index a{min-width:0;display:flex;gap:var(--space-md);justify-content:space-between;padding:var(--space-md) 0;border-bottom:var(--rule-width) solid var(--color-rule);font-size:var(--text-sm);color:var(--color-ink-2)}
.chapter-index a span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-index a span:last-child{font:400 var(--text-xs)/1.5 var(--font-mono);white-space:nowrap;color:var(--color-muted)}
.site-footer{max-width:1152px;margin:0 auto;padding:var(--space-lg) 0;border-top:var(--rule-width) solid var(--color-rule);display:flex;gap:var(--space-md);justify-content:space-between;font-size:var(--text-xs);color:var(--color-muted)}
/* Existing reader: additive styles preserve routes and the rendering engine. */
#sidebar{background:var(--color-paper);border-color:var(--color-rule);z-index:var(--z-dropdown)}
#sidebar header{padding:var(--space-xl) var(--space-lg) var(--space-md);border-bottom:0}
#sidebar header .logo{font:600 var(--text-base)/1.5 var(--font-display);letter-spacing:-.025em}
#sidebar header .logo .dot{background:var(--color-accent);border-radius:2px;width:8px;height:8px}
#sidebar header .sub{font-size:var(--text-xs);line-height:1.7;color:var(--color-muted);margin-top:var(--space-sm)}
#search{margin-top:var(--space-lg);border-radius:var(--radius-sm);height:40px;font-size:var(--text-sm);padding:var(--space-sm) var(--space-md)}
#nav{padding:0 var(--space-md) var(--space-xl)}
#nav .readme-link{font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);min-height:44px;display:flex;align-items:center}
#nav .chapter{display:flex;align-items:center;gap:var(--space-sm);width:100%;background:none;border:0;text-align:left;cursor:pointer;padding:var(--space-md) var(--space-md) var(--space-sm);font-size:var(--text-xs);color:var(--color-ink);font-weight:600;min-height:44px}
#nav .chapter .chapter-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
#nav .chapter .chapter-chevron{font-size:var(--text-sm);font-weight:400;width:8px;flex-shrink:0}
#nav .chapter .count{font:400 var(--text-xs)/1.5 var(--font-mono);margin:0;white-space:nowrap}
#nav a.article{border:0;border-radius:var(--radius-sm);font-size:var(--text-sm);padding:10px var(--space-md) 10px var(--space-xl);line-height:1.6;color:var(--color-muted);margin-top:2px}
#nav a.article.active{background:var(--color-tint);color:var(--color-accent);font-weight:500}
#nav a.article.chapter-hidden{display:none}
#nav .chapter[hidden]{display:none}
#main{background:var(--color-paper);transition:none}
#topbar{padding:var(--space-sm) var(--space-xl);height:64px;gap:var(--space-md);background:var(--color-paper);backdrop-filter:none;border-color:var(--color-rule);z-index:var(--z-sticky)}
#topbar .crumb{font-size:var(--text-xs);line-height:1.6}.portal-return{font-size:var(--text-sm);padding:var(--space-sm) 0;color:var(--color-muted)}
#menu-btn,#theme-btn,#pager button{font-size:var(--text-xs);border-radius:var(--radius-sm);background:none;min-height:36px;padding:var(--space-sm);border-color:var(--color-rule);white-space:nowrap}
#menu-btn{border:0}.reader-search{font-size:var(--text-xs);min-height:36px;padding:var(--space-sm);color:var(--color-muted);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-sm);background:none;white-space:nowrap}
#content{display:grid;grid-template-columns:minmax(0,760px);justify-content:center;align-items:start;gap:var(--space-2xl);padding:var(--space-2xl) var(--space-2xl) var(--space-4xl)}
.markdown-body{padding:0;max-width:760px;border:0;border-radius:0;box-shadow:none;background:none;font-family:var(--font-body);font-size:var(--text-base);line-height:1.95;color:var(--color-ink-2)!important;min-width:0;overflow-wrap:anywhere}
.markdown-body h1{font-family:var(--font-display);font-size:clamp(1.65rem,2.5vw,2.25rem);line-height:1.5;letter-spacing:-.035em;font-weight:600;color:var(--color-ink);border:0;margin-bottom:var(--space-lg);padding:0}
.markdown-body h2{font-size:var(--text-lg);font-weight:600;border-color:var(--color-rule);color:var(--color-ink);padding-bottom:var(--space-md);margin-top:var(--space-3xl);scroll-margin-top:88px}
.markdown-body h3{font-size:var(--text-md);line-height:1.7;font-weight:600;color:var(--color-ink);margin-top:var(--space-xl);scroll-margin-top:88px}
.markdown-body h4{font-size:var(--text-base);line-height:1.7;font-weight:600;color:var(--color-ink);scroll-margin-top:88px}
.markdown-body blockquote{border-left:2px solid var(--color-rule);padding:var(--space-sm) var(--space-lg);margin:var(--space-lg) 0;color:var(--color-muted);font-size:var(--text-sm)}
.markdown-body pre{position:relative;border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper-2)!important;padding:var(--space-lg);max-width:100%;overflow:auto;font-size:var(--text-sm);line-height:1.8}
.markdown-body code{font-family:var(--font-mono)!important;background:var(--color-paper-2)!important;color:var(--color-ink)!important;font-size:.88em}
.markdown-body pre code{background:none!important;white-space:pre;font-size:1em}
.markdown-body table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;font-size:var(--text-sm)}
.markdown-body table th,.markdown-body table td{border-color:var(--color-rule);padding:var(--space-sm) var(--space-md)}
.markdown-body table tr{background:none!important}.markdown-body table tr:nth-child(2n){background:var(--color-paper-2)!important}
.markdown-body strong{color:var(--color-ink)}.markdown-body a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}
.markdown-body img{max-width:100%;height:auto;border-radius:var(--radius-sm);background:none}
.article-info{font-size:var(--text-xs);color:var(--color-muted);margin:0 0 var(--space-xl);display:flex;gap:var(--space-md);align-items:center;font-variant-numeric:tabular-nums}
.article-info span+span:before{content:'·';margin-right:var(--space-md)}
.article-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg);border-top:var(--rule-width) solid var(--color-rule);margin-top:var(--space-3xl);padding-top:var(--space-lg)}
.article-footer a{font-size:var(--text-sm);text-decoration:none;display:flex;flex-direction:column;min-width:0;gap:var(--space-sm);padding:var(--space-md) 0}
.article-footer small{color:var(--color-muted);font-size:var(--text-xs)}.article-footer a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-ink)}
.article-footer .next{text-align:right;grid-column:2}
.doc-toc{display:none;position:sticky;top:100px;font-size:var(--text-xs);max-height:calc(100dvh - 130px);overflow:auto;padding-left:var(--space-lg);border-left:var(--rule-width) solid var(--color-rule)}
.doc-toc h2{font:500 var(--text-xs)/1.5 var(--font-body);margin:0 0 var(--space-md);color:var(--color-ink)}
.doc-toc a{display:block;color:var(--color-muted);padding:6px 0;line-height:1.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-toc a.subheading{padding-left:var(--space-md)}.doc-toc a.active{color:var(--color-accent)}
.copy-code{position:sticky;float:right;right:0;top:0;font:400 var(--text-xs)/1.5 var(--font-body);color:var(--color-muted);border:var(--rule-width) solid var(--color-rule);background:var(--color-paper);padding:4px 8px;border-radius:var(--radius-sm);min-height:28px;z-index:var(--z-base)}
.error-panel{font-size:var(--text-base);line-height:1.8;color:var(--color-ink-2);max-width:600px}.error-panel h2{font-size:var(--text-lg);color:var(--color-ink)}.error-panel p{overflow-wrap:anywhere}.retry-button{min-height:44px;border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-accent);padding:var(--space-sm) var(--space-lg)}
.article-skeleton{width:100%;padding-top:var(--space-md)}.skeleton-line{height:14px;background:var(--color-paper-2);margin-bottom:var(--space-lg);border-radius:3px}.skeleton-line:first-child{height:32px;width:75%;margin-bottom:var(--space-2xl)}.skeleton-line:nth-child(3n){width:68%}.article-skeleton p{font-size:var(--text-xs);color:var(--color-muted)}
#search-empty{font-size:var(--text-sm);color:var(--color-muted);padding:var(--space-md);line-height:1.8}
.search-dialog{padding:0;border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-lg);width:min(640px,calc(100% - 32px));max-height:80dvh;position:fixed;top:10dvh;margin:0 auto;background:var(--color-paper);color:var(--color-ink)}
.search-dialog::backdrop{background:var(--color-scrim)}
.dialog-search-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);border-bottom:var(--rule-width) solid var(--color-rule)}
.dialog-search-row input{width:100%;min-width:0;height:44px;border:0;background:none;color:var(--color-ink);font-size:var(--text-base)}
.dialog-close{border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper-2);color:var(--color-muted);font-size:var(--text-xs);min-width:44px;min-height:44px}
.dialog-label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:clip}
.search-results{overflow:auto;max-height:50dvh;padding:var(--space-sm)}
.search-result{display:flex;flex-direction:column;gap:var(--space-xs);width:100%;text-align:left;background:none;border:0;border-radius:var(--radius-sm);padding:var(--space-md);color:var(--color-ink-2);min-width:0}
.search-result[aria-selected=true],.search-result:hover{background:var(--color-tint);color:var(--color-accent)}
.search-result span{font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.search-result small{font-size:var(--text-xs);color:var(--color-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.search-message{padding:var(--space-lg);font-size:var(--text-sm);color:var(--color-muted);line-height:1.8}
.dialog-hints{display:flex;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-top:var(--rule-width) solid var(--color-rule);font-size:var(--text-xs);color:var(--color-muted)}
@media(hover:hover) and (pointer:fine){.search-trigger:hover,.reader-search:hover{background:var(--color-tint)}.theme-control:hover,.start-links a:hover,.chapter-index a:hover,.topic-copy h3 a:hover{color:var(--color-accent)}.topic-action:hover{transform:translateX(3px)}.copy-code:hover{color:var(--color-accent)}}
@media(min-width:1320px){#content{grid-template-columns:minmax(0,760px) 176px;gap:var(--space-xl)}.doc-toc{display:block}}
@media(max-width:1100px){.home-layout{grid-template-columns:minmax(0,1fr) 220px;gap:var(--space-xl)}.topic-card{grid-template-columns:minmax(0,1fr) 160px}.topic-diagram{padding:var(--space-lg)}#pager{display:none}#content{padding:var(--space-2xl) var(--space-xl) var(--space-3xl)}}
@media(max-width:860px){.home-layout{grid-template-columns:minmax(0,1fr)}.start-panel{display:none}.site-header,.cover-wrap,.home-body{padding-left:var(--space-lg);padding-right:var(--space-lg)}.site-footer{margin:0 var(--space-lg)}.knowledge-cover{min-height:280px;padding:var(--space-xl)}#topbar{padding:var(--space-sm) var(--space-md)}#sidebar{width:min(300px,calc(100% - 44px))}#sidebar-mask{background:var(--color-scrim);z-index:var(--z-sticky)}#menu-btn,#theme-btn,.reader-search,.portal-return{min-height:44px}.reader-search{font-size:var(--text-xs)}#content{padding:var(--space-xl) var(--space-lg) var(--space-3xl)}}
@media(max-width:600px){.site-header{height:68px;gap:var(--space-sm)}.site-brand small{display:none}.search-trigger{gap:var(--space-sm);width:44px;height:44px;justify-content:center;padding:0}.search-trigger .search-label,.search-trigger kbd{display:none}.search-trigger:before{content:'搜索';font-size:var(--text-xs)}.header-controls{gap:var(--space-sm)}.theme-control{font-size:var(--text-xs);height:44px}.cover-wrap{padding-top:var(--space-md)}.knowledge-cover{min-height:264px;padding:var(--space-lg);align-items:flex-start}.cover-copy h1{letter-spacing:-.04em;margin-bottom:var(--space-md)}.cover-copy h1 span{margin-bottom:var(--space-xl)}.cover-copy p{font-size:var(--text-sm);max-width:25ch}.cover-caption{font-size:10px;right:var(--space-md);bottom:var(--space-md)}.home-body{padding-top:var(--space-xl)}.home-section-heading{display:block}.home-section-heading span{display:block;margin-top:var(--space-sm)}.topic-card{grid-template-columns:minmax(0,1fr)}.topic-copy{padding:var(--space-lg)}.topic-copy h3{font-size:var(--text-xl)}.topic-diagram{display:none}.topic-description{font-size:var(--text-sm)}.topic-tags{margin-bottom:var(--space-lg)}.topic-action{min-height:44px}.chapter-index{grid-template-columns:minmax(0,1fr)}.site-footer{flex-direction:column;font-size:var(--text-xs);line-height:1.6}.site-brand{font-size:var(--text-base)}#topbar .crumb{display:none}#topbar .reader-search{margin-left:auto}#content{padding:var(--space-xl) var(--space-md) var(--space-3xl)}.markdown-body{font-size:var(--text-base);line-height:1.9}.markdown-body h1{font-size:1.6rem}.markdown-body h2{margin-top:var(--space-2xl)}.markdown-body pre{padding:var(--space-md)}.article-info{font-size:var(--text-xs);gap:var(--space-sm)}.article-info span+span:before{margin-right:var(--space-sm)}.search-dialog{top:var(--space-md);max-height:calc(100dvh - 32px)}.dialog-search-row{padding:var(--space-md)}.dialog-hints{padding:var(--space-md);font-size:10px}.search-results{max-height:65dvh}.copy-code{min-height:44px;padding:var(--space-sm)}}
@media(prefers-reduced-motion:reduce){html,body{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.topic-action:hover{transform:none}}

.topic-stack{display:grid;gap:24px;min-width:0} #nav .readme-link[hidden]{display:none}

/* Reader controls: independent panels and browser fullscreen. */
#sidebar header{position:relative}.sidebar-close{position:absolute;right:12px;top:16px;width:32px;height:32px;border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-muted);border-radius:6px;font-size:24px;cursor:pointer}#sidebar .logo{padding-right:28px}
#toc-toggle,#immersive-btn,.toc-close,#immersive-exit{border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink-2);border-radius:6px;padding:8px 10px;font:inherit;font-size:12px;white-space:nowrap;cursor:pointer;min-height:36px}
.toc-close{float:right;padding:2px 6px;min-height:28px;font-size:11px}.doc-toc h2{padding-top:5px}
body.toc-collapsed .doc-toc{display:none!important}body.toc-collapsed #content{grid-template-columns:minmax(0,760px)}
#immersive-exit{position:fixed;right:20px;bottom:20px;z-index:1000;box-shadow:0 3px 16px #0001;opacity:.65}#immersive-exit:hover,#immersive-exit:focus-visible{opacity:1}#immersive-exit[hidden]{display:none}#immersive-exit kbd{font-size:11px;color:var(--color-muted);margin-left:6px}
body.immersive-reading #sidebar,body.immersive-reading #sidebar-mask,body.immersive-reading #topbar,body.immersive-reading .doc-toc{display:none!important}body.immersive-reading #main{margin-left:0;min-height:100dvh}body.immersive-reading #content{grid-template-columns:minmax(0,900px);padding:64px 48px 100px}body.immersive-reading .markdown-body{font-size:18px;line-height:2}
.reading-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){#topbar{gap:8px}#topbar .crumb{min-width:0}}
@media(max-width:860px){#topbar .crumb{display:none}#toc-toggle{display:none}body.immersive-reading #content{padding:32px 24px 96px}}
@media(max-width:600px){#topbar{gap:6px}#topbar button{padding-left:7px;padding-right:7px}#topbar .reader-search kbd{display:none}body.immersive-reading #content{padding:24px 18px 96px}body.immersive-reading .markdown-body{font-size:17px}}
@media(min-width:1100px){#content{grid-template-columns:minmax(0,760px) 160px;gap:24px}.doc-toc{display:block}body.toc-collapsed #content{grid-template-columns:minmax(0,760px)}} @media(max-width:1099px){#toc-toggle{display:none}}

/* Persistent edge handles; no text toggle buttons in the reading toolbar. */
#menu-btn.panel-handle,#toc-toggle.panel-handle{position:fixed;top:45%;width:30px;height:60px;min-height:60px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--color-paper);border:1px solid var(--color-rule);color:var(--color-muted);font-size:28px;line-height:1;z-index:320;box-shadow:0 2px 10px #00000008;cursor:pointer;touch-action:manipulation}
#menu-btn.panel-handle{left:calc(var(--sidebar-w) - 15px);border-radius:8px}#toc-toggle.panel-handle{right:0;border-radius:8px 0 0 8px;border-right:0}
body.sidebar-collapsed #menu-btn.panel-handle{left:0;border-left:0;border-radius:0 8px 8px 0}
#menu-btn.panel-handle:hover,#toc-toggle.panel-handle:hover{color:var(--color-accent);background:var(--color-paper-2);border-color:var(--color-accent)}
#menu-btn.panel-handle:focus-visible,#toc-toggle.panel-handle:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
body.home-view .panel-handle,body.immersive-reading .panel-handle,#toc-toggle.panel-handle[hidden]{display:none!important}
@media(max-width:1099px){#toc-toggle.panel-handle{display:none}}
@media(max-width:860px){#menu-btn.panel-handle{left:0;width:32px;border-left:0;border-radius:0 8px 8px 0}body.sidebar-open #menu-btn.panel-handle{left:calc(min(300px,100vw - 44px) - 16px);border:1px solid var(--color-rule);border-radius:8px}#sidebar .logo{padding-right:0}}

/* Dock the article outline to the viewport and move its handle with the panel. */
:root{--toc-panel-w:240px}
@media(min-width:1100px){
 #content,body.toc-collapsed #content{grid-template-columns:minmax(0,760px);gap:0}
 body.has-doc-toc:not(.toc-collapsed):not(.home-view):not(.immersive-reading) #main{margin-right:var(--toc-panel-w)}
 .doc-toc{position:fixed;box-sizing:border-box;top:64px;right:0;bottom:0;width:var(--toc-panel-w);height:auto;max-height:none;margin:0;padding:28px 24px 36px;background:var(--color-paper);border-left:1px solid var(--color-rule);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;z-index:210}
 .doc-toc h2{padding-top:0;margin-bottom:16px}.doc-toc a{padding:7px 0}
 body.has-doc-toc:not(.toc-collapsed) #toc-toggle.panel-handle{right:calc(var(--toc-panel-w) - 15px);border:1px solid var(--color-rule);border-radius:8px}
 body.toc-collapsed #toc-toggle.panel-handle{right:0;border-right:0;border-radius:8px 0 0 8px}
 body.immersive-reading #main,body.home-view #main{margin-right:0}
 body.immersive-reading #content{grid-template-columns:minmax(0,900px)}
}
