*,*::before,*::after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;margin:-1px !important;clip:rect(0, 0, 0, 0) !important;overflow:hidden !important;white-space:nowrap !important}:root{--color-text: #292a2c;--color-text-secondary: #666;--color-background: #f8fbfd;--color-hover-background: #edf2f6;--color-ui-background: rgba(0, 0, 0, 0.9);--color-ui-text: #FFFFFF;--color-highlight: #ffeb3b;--color-highlight-text: #000000;--color-focus: #292a2c}@media(prefers-color-scheme: dark){:root{--color-text: #eff2f6;--color-text-secondary: #c5c9cf;--color-background: #1b222a;--color-hover-background: #2d3641;--color-ui-background: rgba(255, 255, 255, 0.95);--color-ui-text: #000000;--color-focus: #ffeb3b}}@media(prefers-contrast: more){:root{--color-text: #FFFFFF;--color-text-secondary: #ddd;--color-background: #000000;--color-hover-background: #313131;--color-ui-background: #FFFFFF;--color-ui-text: #000000;--color-focus: #ffeb3b}}html,body{color:var(--color-text);background-color:var(--color-background)}a:focus,a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}::-moz-selection{background-color:var(--color-highlight);color:var(--color-highlight-text)}::selection{background-color:var(--color-highlight);color:var(--color-highlight-text)}html{scroll-behavior:smooth}body{font-family:source-serif-pro,Georgia,Cambria,"Times New Roman",Times,serif;font-size:18px;line-height:1.6}h1,h2,h3,h4,h5,h6{margin-bottom:1rem;line-height:1.2;-webkit-hyphens:auto;hyphens:auto;word-break:break-word;text-wrap:pretty}h2{margin-top:4rem}h3{margin-top:2rem}p{margin-bottom:1rem;font-weight:400}strong,b{font-weight:600}i{font-style:italic}blockquote{margin-top:2rem;margin-bottom:2rem;margin-left:4rem;position:relative}blockquote::before{content:"";display:block;width:2px;height:100%;background-color:var(--color-text-secondary);position:absolute;left:-4rem;top:0}.footnote-ref{font-size:.75em;vertical-align:super;line-height:0;margin-left:2px}.footnote-ref a{text-decoration:none}.footnote-ref a:hover{text-decoration:underline}.footnotes{margin-top:4rem;padding-top:1rem;border-top:1px solid var(--color-border);font-size:.9em}.footnotes ol{padding-left:2rem}.footnotes li{margin-bottom:1rem}.footnotes .footnote-backref{margin-left:.5em;text-decoration:none}:root{--font-sans-serif: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open Sans, Helvetica Neue, sans-serif}.article-header{width:100%;background-color:var(--color-background);opacity:.95;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:fixed;top:0;left:0;right:0;z-index:100;padding:6px 12px;opacity:1;transition:opacity .3s ease-in-out}.article-header-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.article-header-container--left{position:relative;display:flex;gap:0px}.article-header:focus-within{opacity:1 !important}.article-header.hide{opacity:0;pointer-events:none}.article-header .article-header-button{background-color:rgba(0,0,0,0);border:none;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;line-height:1}@media(max-width: 768px){.article-header .article-header-button{width:40px;height:40px}}.article-header .article-header-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}.article-header .article-header-button svg{width:16px;height:16px;color:var(--color-text-secondary)}.article-header .article-header-button:hover svg{color:var(--color-text)}.article-header .article-header-read-time{font-family:var(--font-sans-serif);font-size:.8rem}#highlight-list{position:absolute;top:100%;left:24px;z-index:999;display:block}#highlight-list.hidden{display:none}#resume-reading-btn{color:var(--color-text-secondary)}#resume-reading-btn .filled{display:block}#resume-reading-btn svg{color:inherit}#resume-reading-btn .line{display:none}#resume-reading-btn:not(:disabled){animation:button-fade 5s ease-in-out}#resume-reading-btn:disabled{pointer-events:none;opacity:.5}#resume-reading-btn:disabled .filled{display:none}#resume-reading-btn:disabled .line{display:block}@keyframes button-fade{0%{background-color:var(--color-highlight);color:var(--color-highlight-text)}80%{background-color:var(--color-highlight);color:var(--color-highlight-text)}100%{background-color:rgba(0,0,0,0);color:var(--color-text-secondary)}}.touch-device .highlight-toggle{display:none}.toast-container{position:fixed;bottom:20px;left:20px;right:20px;display:flex;justify-content:center;align-items:center;text-align:center;pointer-events:none}.highlight-toast{background:var(--color-ui-background);color:var(--color-ui-text);padding:6px 12px;border-radius:4px;font-size:14px;display:none;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif}.highlight-toast.visible{display:block}footer{font-family:var(--font-sans-serif);color:var(--color-text-secondary);font-size:.8rem;padding-top:4rem;max-width:720px;margin:0 auto}footer .footer-content{display:flex;justify-content:space-between;align-items:flex-start}@media(max-width: 340px){footer .footer-content{flex-direction:column;gap:.5rem;width:100%;align-items:flex-start}}footer .footer-right{display:flex;gap:.5rem}.language-notice{width:100%;background-color:var(--color-ui-background);font-family:var(--font-sans-serif);color:var(--color-ui-text);padding:10px 20px;text-align:center;margin-bottom:2rem;border-radius:4px}.language-notice p{margin-bottom:6px}.language-notice a{color:var(--color-highlight-text);background-color:var(--color-highlight);padding:2px;text-decoration:none}.language-notice a:hover{text-decoration:underline}.article header{margin-bottom:2.5rem}.article header h1{font-size:2.25rem;margin-bottom:.25rem}@media(max-width: 768px){.article header h1{font-size:1.9rem;margin-bottom:.125rem}}.article header p{margin-bottom:0;letter-spacing:.05em;line-height:1.2;text-align:left;color:var(--color-text-secondary)}.article>p:first-of-type{margin-bottom:2rem}.article hr{margin:2rem 0;border:0;border:0;text-align:center}.article hr:before{content:"***";display:inline-block;margin-right:.5rem;color:var(--color-text-secondary)}.article nav{padding-top:3rem;color:var(--color-text-secondary)}.article nav a{text-decoration:none;color:inherit;border-bottom:1px solid}.article nav a:after{content:"›";margin-left:.5rem}.article nav a:hover{color:var(--color-text)}.article-nav-list-container{margin:0 auto;width:720px;max-width:100%}.article-nav-list{padding:2rem;height:100vh;height:100svh;overflow-y:auto}.article-nav-list li{margin:0 0 .25rem 0;padding:0}.article-nav-list a{text-decoration:none;color:inherit;display:block;outline:none;padding:.5rem;transition:background-color .25s ease-in-out;border-radius:2px}.article-nav-list a:hover{background-color:var(--color-hover-background)}.article-nav-list a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.article-nav-list a span{display:block;font-size:1rem;color:var(--color-text-secondary)}.article-nav-list ul{padding:1rem 0 3rem;list-style:none}.article-nav-list hr{margin:1rem 0;border:0;border-top:1px solid var(--color-text-secondary)}.article p{font-size:1.25rem;line-height:1.7;text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto}.footnote-ref,.footnote-backref{color:var(--color-text-secondary);text-decoration:none}.footnote-backref{line-height:1;font-size:1rem;color:var(--color-text);font-family:"Helvetica Neue",sans-serif !important}.footnote-backref:hover{text-decoration:none;color:var(--color-text-secondary)}@media(max-width: 768px){.footnote-backref{font-size:1.25rem}}sup{display:inline-block;height:100%;line-height:1;padding:2px}@media(max-width: 768px){sup .footnote-ref{display:inline-block;padding:0px 6px 20px;width:16px;height:100%}}sup:target{border-radius:2px;scroll-margin-top:25vh;animation:highlight-fade 2s ease-in-out}sup:target a{color:inherit}sup:focus-visible{outline:2px solid var(--color-highlight);outline-offset:2px;border-radius:2px}@keyframes highlight-fade{0%{background-color:var(--color-highlight);color:var(--color-highlight-text)}80%{background-color:var(--color-highlight);color:var(--color-highlight-text)}100%{background-color:rgba(0,0,0,0);color:var(--color-text)}}@media(prefers-reduced-motion: reduce){sup:target{animation:none}}.footnotes{padding-top:2rem;font-size:.8rem}.footnotes ol{padding-left:20px;padding-top:.5rem}.footnotes hr{border-color:var(--color-text-secondary);border-width:0;border-top:1px solid}.footnotes hr:before{content:""}.footnotes li{margin-bottom:.25rem}.footnotes li p{color:inherit;font-size:1rem;margin-bottom:0;color:var(--color-text-secondary);text-align:left}.footnote{scroll-margin-top:10vh}.footnote:target p{animation:footnote-fade 1.5s ease-in-out}@keyframes footnote-fade{0%{background-color:var(--color-highlight);color:var(--color-highlight-text)}80%{background-color:var(--color-highlight);color:var(--color-highlight-text)}100%{background-color:rgba(0,0,0,0);color:var(--color-text)}}.landing{max-width:720px;margin:0 auto}.subtitle{font-size:1.5rem;line-height:1.3;font-weight:400;color:var(--color-text-secondary);display:block}.landing header{display:flex;flex-direction:column;padding:6rem 0 2rem}@media(max-width: 720px){.landing header{padding:2rem 0 2rem}}.landing header .author{font-size:.8rem;color:var(--color-text-secondary);margin-top:.5rem;font-family:var(--font-sans-serif)}.landing header h1{position:relative}.landing .toc{list-style:none;padding-left:0}.landing .toc li{padding:0;margin-left:-0.25rem}.landing .toc li h2{font-size:1.3rem}.landing .toc li p.teaser{margin:0 0 0 0;color:var(--color-text-secondary)}.landing .toc a{text-decoration:none;color:inherit;display:block;outline:none;padding:.75rem .5rem;border-radius:2px;transition:background-color .25s ease-in-out}.landing .toc a:hover{background-color:var(--color-hover-background)}.landing .toc a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.landing .toc h2{margin:0}.read-time{font-family:var(--font-sans-serif);font-size:.8rem}.book-section{padding:1rem 0 3rem}@media(max-width: 720px){.book-section{padding:0}}.book{display:flex;flex-direction:row;gap:0px;padding:1rem 0 0}@media(max-width: 720px){.book{flex-direction:column}}.book .book-cover{flex:1;display:flex;align-items:center;justify-content:center}.book .book-cover img{aspect-ratio:1/1}.book .book-content{flex:2;display:flex;flex-direction:column;justify-content:center;padding:.5rem 0 1.5rem 0;background-color:var(--color-background)}.book .book-content ul{font-family:var(--font-sans-serif);list-style:none}.book .book-content ul li{padding:.25rem 0}.book .book-content ul a{text-decoration:none}.book .book-content ul a:hover{text-decoration:underline}.info{max-width:720px;margin:0 auto}.info ul{list-style-position:inside;margin-bottom:1rem}.info-404{min-height:100vh;display:flex;flex-direction:column;justify-content:center}.info-404 footer{width:100%}.highlight-menu{background:var(--color-ui-background);border-radius:4px;padding:5px;box-shadow:0 2px 5px rgba(0,0,0,.2);z-index:1000;display:none;flex-direction:row}.highlight-menu.visible{display:flex}.highlight-menu button{margin:0;padding:6px;border:none;border-radius:3px;background:rgba(0,0,0,0);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.8}.highlight-menu button:disabled{opacity:.5}.highlight-menu button:hover{opacity:1}.highlight-menu button svg{color:var(--color-ui-text);width:18px;height:18px}.highlight{padding:2px 0;background:var(--color-highlight);color:var(--color-highlight-text)}.highlight:target{scroll-margin-top:25vh}.highlight-list{width:300px;background-color:var(--color-ui-background, #fff);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15);overflow:hidden;overflow-y:auto;min-height:50px;max-height:80vh;color:var(--color-ui-text, #000);margin-left:10px;display:flex;flex-direction:column;justify-content:center;align-items:center}.highlight-list.hidden{display:none}.highlight-list-container{padding:6px;max-height:80vh;min-height:50px;overflow-y:auto;font-size:14px;color:var(--color-ui-text);display:flex;flex-direction:column;justify-content:center;align-items:center}.highlight-entries{list-style:none;padding:0;margin:0;width:100%}.highlight-entry{width:100%;margin:0 0 6px 0}.highlight-entry{background-color:var(--color-highlight);color:var(--color-highlight-text);display:flex;flex-direction:row;justify-content:space-between;align-items:center}.highlight-entry a{text-decoration:none;color:inherit}.highlight-entry a:hover{text-decoration:underline}.highlight-entry a:focus-visible{text-decoration:underline}.highlight-entry button{background-color:rgba(0,0,0,0);border:none;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.highlight-entry button:focus-visible{outline:2px solid var(--color-highlight-text);outline-offset:2px;border-radius:2px}.highlight-entry button svg{color:var(--color-highlight-text);width:18px;height:18px}.highlight-jump-btn{width:100%;text-align:left;padding:4px 6px}*{margin:0;padding:0;box-sizing:border-box}body{padding:2rem;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 auto}article{max-width:720px;margin:10rem auto}.note{border-left:3px solid #666;padding-left:1rem;margin:1rem 0;font-style:italic}
footer{font-family:var(--font-sans-serif);color:var(--color-text-secondary);font-size:.8rem;padding-top:4rem;max-width:720px;margin:0 auto}footer .footer-content{display:flex;justify-content:space-between;align-items:flex-start}@media(max-width: 340px){footer .footer-content{flex-direction:column;gap:.5rem;width:100%;align-items:flex-start}}footer .footer-right{display:flex;gap:.5rem}
.highlight-menu{background:var(--color-ui-background);border-radius:4px;padding:5px;box-shadow:0 2px 5px rgba(0,0,0,.2);z-index:1000;display:none;flex-direction:row}.highlight-menu.visible{display:flex}.highlight-menu button{margin:0;padding:6px;border:none;border-radius:3px;background:rgba(0,0,0,0);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.8}.highlight-menu button:disabled{opacity:.5}.highlight-menu button:hover{opacity:1}.highlight-menu button svg{color:var(--color-ui-text);width:18px;height:18px}.highlight{padding:2px 0;background:var(--color-highlight);color:var(--color-highlight-text)}.highlight:target{scroll-margin-top:25vh}.highlight-list{width:300px;background-color:var(--color-ui-background, #fff);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15);overflow:hidden;overflow-y:auto;min-height:50px;max-height:80vh;color:var(--color-ui-text, #000);margin-left:10px;display:flex;flex-direction:column;justify-content:center;align-items:center}.highlight-list.hidden{display:none}.highlight-list-container{padding:6px;max-height:80vh;min-height:50px;overflow-y:auto;font-size:14px;color:var(--color-ui-text);display:flex;flex-direction:column;justify-content:center;align-items:center}.highlight-entries{list-style:none;padding:0;margin:0;width:100%}.highlight-entry{width:100%;margin:0 0 6px 0}.highlight-entry{background-color:var(--color-highlight);color:var(--color-highlight-text);display:flex;flex-direction:row;justify-content:space-between;align-items:center}.highlight-entry a{text-decoration:none;color:inherit}.highlight-entry a:hover{text-decoration:underline}.highlight-entry a:focus-visible{text-decoration:underline}.highlight-entry button{background-color:rgba(0,0,0,0);border:none;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.highlight-entry button:focus-visible{outline:2px solid var(--color-highlight-text);outline-offset:2px;border-radius:2px}.highlight-entry button svg{color:var(--color-highlight-text);width:18px;height:18px}.highlight-jump-btn{width:100%;text-align:left;padding:4px 6px}
.language-notice{width:100%;background-color:var(--color-ui-background);font-family:var(--font-sans-serif);color:var(--color-ui-text);padding:10px 20px;text-align:center;margin-bottom:2rem;border-radius:4px}.language-notice p{margin-bottom:6px}.language-notice a{color:var(--color-highlight-text);background-color:var(--color-highlight);padding:2px;text-decoration:none}.language-notice a:hover{text-decoration:underline}