.reading-studio{max-width:1040px;padding:30px 3vw 80px;margin:0 auto;--reader-size:18px;--reader-leading:1.85;--reader-width:100%}
.reading-studio .reading-nav{display:flex;align-items:center;gap:24px;border:0;padding:0;margin-bottom:14px;font-size:11px;color:var(--text)}.reading-studio .reading-nav>a{font-size:12px}.reading-nav>span{font:11px var(--condensed);letter-spacing:2px;margin-left:auto}.reading-nav>button{font-size:11px}.reading-nav>button span{color:var(--yellow);margin:0 5px}
.reading-studio .reader-columns{display:grid;grid-template-columns:136px minmax(0,720px);gap:24px;align-items:start;justify-content:center}.reader-paper{min-width:0}.reading-studio .reading-opener{padding:0;min-height:0;display:block;border:0;margin:0 0 24px}.reading-studio .reading-opener h1{font:500 clamp(27px,2.6vw,42px)/1.5 var(--chinese);max-width:none;letter-spacing:-1.1px;margin:13px 0 20px;overflow-wrap:anywhere}.reading-studio .reading-meta{display:flex;gap:18px;align-items:center;font-size:10px;color:var(--muted);letter-spacing:.7px}.reading-meta .reader-spark{font-size:23px;color:var(--yellow);margin-left:auto;line-height:1}
.reading-studio .article-toolbox{border:0;border-radius:0;background:none;padding:0;margin:0;box-shadow:none}.reading-studio .article-toolbox button{font-size:10px}.reading-studio .article-tools-meta{font-size:9px}.reading-studio .article-body.markdown-body{font-size:var(--reader-size)!important;line-height:var(--reader-leading)!important;max-width:var(--reader-width);margin:0 auto;color:var(--text)}.reading-studio .article-body.markdown-body p{line-height:inherit;margin:1.1em 0}.reading-studio .article-body.markdown-body h2{font:500 1.4em/1.55 var(--chinese);margin:1.7em 0 .65em;padding-bottom:0;border:0;color:var(--ink)}.reading-studio .article-body.markdown-body h3{font:500 1.15em/1.6 var(--chinese);margin-top:1.5em;color:var(--ink)}.reading-studio .article-body.markdown-body h1{font-size:1.6em;color:var(--ink)}.reading-studio .article-body.markdown-body blockquote{background:var(--surface);border-left:2px solid var(--yellow);padding:12px 20px;font-size:.95em}.reading-studio .article-body.markdown-body img{border-radius:5px;max-height:650px;object-fit:contain}.reading-studio .code-container{margin:25px 0}.reading-studio .code-container pre{font-size:12px;line-height:1.85}.reading-studio .code-container .copy-code{right:12px;top:9px}.code-workbench-open{position:absolute;right:65px;top:9px;z-index:2;font-size:10px;padding:3px 8px;border:1px solid var(--line);border-radius:3px;color:var(--text)}
.reading-studio .chapter-rail{position:sticky;top:92px;align-self:start;max-height:calc(100svh - 130px);overflow:auto;padding:0 15px 15px 0;border:0;font-size:11px}.chapter-rail summary{font-size:12px;color:var(--ink);margin-bottom:20px;list-style:none;cursor:pointer;display:flex;gap:10px;align-items:center}.chapter-rail summary span{font:9px var(--condensed);letter-spacing:1px;color:var(--muted)}.chapter-rail ol{list-style:none;padding:0!important;margin:0!important}.chapter-rail ol ol{padding-left:8px!important}.chapter-rail li{margin:0}.chapter-rail a{display:block;padding:7px 8px;color:var(--muted);font-size:11px;line-height:1.7;border:0;transition:color .2s}.chapter-rail .toc-number{font-family:var(--condensed);margin-right:5px;color:var(--muted)}.reading-studio .chapter-rail a[aria-current=true]{color:var(--ink);border:0;background:none;font-weight:600;margin-left:0}
.reader-options{margin:12px 0 0;border:0;font-size:12px}.reader-options>summary{min-height:44px;display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;color:var(--muted)}.reader-options>summary::after{content:"+"}.reader-options[open]>summary::after{content:"−"}.reader-options-body{padding:18px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 36px}.reader-find{display:grid;gap:8px}.reader-find input{width:100%;min-width:0;padding:8px 0;background:none;border:0;border-bottom:1px solid var(--line);font-size:10px}.reader-find>div{display:flex;gap:5px;align-items:center}.reader-find>div span{margin-right:auto;color:var(--muted);font-size:9px}.reader-find button{border:1px solid var(--line);border-radius:2px;padding:0 5px}.reader-typesetting{display:grid;gap:12px}.reader-typesetting label{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--text)}.reader-typesetting input{width:75px;min-width:0;accent-color:var(--yellow);margin-left:auto}.reader-typesetting output{font:11px var(--condensed);width:22px;text-align:right}.reader-typesetting select,.reader-speech select{font:10px var(--sans);background:var(--bg);color:var(--text);border:1px solid var(--line);padding:4px 7px;margin-left:auto}.reader-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;border-top:1px solid var(--line);padding-top:16px}.reader-tools-grid button{display:grid;gap:5px;justify-items:center;padding:10px 4px;font-size:10px;border:1px solid var(--line);border-radius:3px}.reader-tools-grid button span{color:var(--yellow);font-size:17px}.reader-tools-grid button:hover{background:var(--bg)}.reader-speech{display:grid;gap:9px}.reader-speech>div{display:flex;gap:5px}.reader-speech button{border:1px solid var(--line);border-radius:3px;padding:5px 9px;font-size:10px}.reader-speech label{display:flex;align-items:center;font-size:10px;color:var(--text)}.reader-speech p{font-size:9px;color:var(--muted);margin:0}.reader-speech p{line-height:1.6}
.selection-note{position:fixed;z-index:85;color:#25221c;background:#efc66c;box-shadow:0 4px 20px #0004;padding:9px 13px;border-radius:5px;font-size:12px}.note-editor{display:grid;gap:15px;margin:20px 0}.note-editor blockquote,.notebook-note blockquote{border-left:2px solid var(--yellow);background:var(--surface);padding:15px 18px;margin:0;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:230px;overflow:auto}.note-editor textarea{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:4px;resize:vertical;font:14px/1.8 var(--sans);padding:12px;max-width:100%}.note-editor>button{justify-self:start;background:var(--accent);color:var(--accent-ink);padding:8px 16px;font-size:12px;border-radius:3px}.notebook-note{padding:20px 0;border-bottom:1px solid var(--line)}.notebook-note>p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.notebook-list{max-height:48svh;overflow:auto}.article-body::highlight(reader-search){background:#e7be5860;color:inherit}.article-body::highlight(reader-active){background:#efc66c;color:#24221d}.article-body::highlight(notebook){background:#ca937b66;color:inherit}
.chapter-copy{display:inline-flex;align-items:center;justify-content:center;font-size:13px;vertical-align:middle;margin-left:12px;color:var(--muted);opacity:.4}.chapter-copy>svg{display:block;flex:none;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5}.article-body :is(h2,h3):hover .chapter-copy,.chapter-copy:focus-visible{opacity:1;color:var(--yellow)}
.reading-focused .reading-studio .reader-columns{grid-template-columns:minmax(0,720px)}.reading-focused .reading-studio .chapter-rail{display:none}
.code-studio{width:min(1100px,calc(100vw - 28px))}.code-studio .code-lines{max-height:57svh;overflow:auto;border:1px solid var(--line);background:var(--surface);font:12px/1.9 'Cascadia Code',Consolas,monospace;padding:12px 0;tab-size:2}.code-lines>div{display:grid;grid-template-columns:52px 1fr;min-width:max-content;padding-right:18px}.code-lines button{font:inherit;color:var(--muted);user-select:none}.code-lines code{white-space:pre;padding-left:10px;font:inherit}.code-lines .line-focused{background:#b2954433;box-shadow:inset 2px 0 var(--yellow)}.code-lines.wrapped>div{min-width:0}.code-lines.wrapped code{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.code-line-jump{width:75px;background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:5px}
@media(max-width:1100px){.reading-studio .reader-columns{grid-template-columns:136px minmax(0,720px);gap:24px}}
@media(max-width:1000px){.reading-studio{padding:24px 5vw 65px}.reading-studio .reader-columns{display:block;max-width:720px}.reading-studio .chapter-rail{position:static;max-height:none;padding:0;margin-bottom:16px;border:0}.chapter-rail summary{margin-bottom:0}.chapter-rail details>ol{max-height:260px;overflow:auto}.chapter-rail ol ol{max-height:none;overflow:visible}.reading-studio .reading-nav{margin-bottom:20px}}
@media(max-width:680px){.reading-studio{padding:22px 20px 55px}.reading-nav>span{display:none}.reading-nav>button{margin-left:auto}.reading-studio .reading-nav{gap:12px}.reading-studio .reading-opener h1{font-size:28px;line-height:1.55}.reading-studio .reading-meta{font-size:11px;gap:12px}.reading-studio .article-toolbox{margin-bottom:24px}.reader-options-body{grid-template-columns:1fr}.reader-typesetting input{width:45%;max-width:180px}.code-studio{padding:18px}.code-lines>div{grid-template-columns:35px 1fr}.code-studio .code-lines{font-size:11px}}

/* Keep the directory visually quiet without hiding keyboard scroll affordances. */
.reading-studio .chapter-rail{padding-left:0;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.chapter-rail::-webkit-scrollbar,.chapter-rail details>ol::-webkit-scrollbar{width:4px}
.chapter-rail::-webkit-scrollbar-track,.chapter-rail details>ol::-webkit-scrollbar-track{background:transparent}
.chapter-rail::-webkit-scrollbar-thumb,.chapter-rail details>ol::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.chapter-rail summary::after{margin-left:auto}
.chapter-rail summary:focus-visible,.reader-options>summary:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}

/* References appear only after an explicit selection or a verified deep link. */
.code-studio [hidden],.code-reference-status[hidden]{display:none!important}
.code-studio .code-lines>div.line-focused{background:#e8eaed;color:#18212c}
.code-studio .code-lines>div.line-focused>button,.code-studio .code-lines>div.line-focused>code{color:#18212c}
.reading-studio .article-body .code .line.code-reference-line,.reading-studio .article-body .code .line.code-reference-line *{background:#e8eaed!important;color:#18212c!important}
.code-reference-status{font:14px/1.7 var(--sans);color:var(--text);margin:12px 0}
.code-studio .code-lines>div>button{min-height:32px;min-width:32px}
.code-studio .code-lines>div>button:focus-visible{outline:2px solid currentColor;outline-offset:-2px}
.code-studio .live-dialog-tools{flex-wrap:wrap}

/* Line numbers make even an empty referenced line visible without changing code. */
.reading-studio .article-body .gutter .line.code-reference-gutter{background:#e8eaed!important;color:#18212c!important;box-shadow:2px 0 #e8eaed,-2px 0 #e8eaed}

/* A wide data table scrolls locally instead of squeezing six columns into a phone. */
.reading-studio .article-body.markdown-body>table:not(.not-markdown){display:block;table-layout:auto;max-width:100%;overflow-x:auto}
.reading-studio .article-body.markdown-body>table:not(.not-markdown) :is(th,td){min-width:90px;overflow-wrap:anywhere}
.reading-studio .article-body.markdown-body>table:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}

/* Inset focus stays visible inside the code container's clipped border. */
.reading-studio .article-body.markdown-body figure.highlight:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px}
