@charset "UTF-8";:root{--gray-100:rgba(255, 255, 255, 0.1);--gray-200:rgba(255, 255, 255, 0.2);--gray-500:rgba(255, 255, 255, 0.5);--color-link:#84b2ff;--color-visited-link:#b88dff;--body-background:#0f101a;--body-font-color:#e9ecef;--icon-filter:brightness(0) invert(1);--hint-color-info:#6bf;--hint-color-warning:#fd6;--hint-color-danger:#f66}/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:initial}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.flex{display:flex}.flex-auto{flex:auto}.flex-even{flex:1 1}.flex-wrap{flex-wrap:wrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.align-center{align-items:center}.mx-auto{margin:0 auto}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.hidden{display:none}input.toggle{height:0;width:0;overflow:hidden;opacity:0;position:absolute}.clearfix::after{content:"";display:table;clear:both}html{font-size:16px;scroll-behavior:smooth;touch-action:manipulation}body{min-width:20rem;color:var(--body-font-color);background:var(--body-background);letter-spacing:.33px;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}body *{box-sizing:inherit}h1,h2,h3,h4,h5{font-weight:400}a{text-decoration:none;color:var(--color-link)}img{vertical-align:baseline}:focus{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}aside nav ul{padding:0;margin:0;list-style:none}aside nav ul li{margin:1em 0;position:relative}aside nav ul a{display:block}aside nav ul a:hover{opacity:.5}aside nav ul ul{padding-inline-start:1rem}ul.pagination{display:flex;justify-content:center;list-style-type:none}ul.pagination .page-item a{padding:1rem}.container{max-width:80rem;margin:0 auto}.book-icon{filter:var(--icon-filter)}.book-brand{margin-top:0}.book-brand a{display:flex;align-items:flex-end}.book-brand img{height:5.5em;width:auto;vertical-align:middle;margin-inline-end:.5rem}.book-menu{flex:0 0 16rem;font-size:.875rem}.book-menu .book-menu-content{width:16rem;padding:1rem;background:var(--body-background);position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto}.book-menu a,.book-menu label{color:inherit;cursor:pointer;word-wrap:break-word}.book-menu a.active{color:var(--color-link)}.book-menu input.toggle+label+ul{display:none}.book-menu input.toggle:checked+label+ul{display:block}.book-menu input.toggle+label::after{content:"▸"}.book-menu input.toggle:checked+label::after{content:"▾"}.book-section-flat{margin-bottom:2rem}.book-section-flat:not(:first-child){margin-top:2rem}.book-section-flat>a,.book-section-flat>span,.book-section-flat>label{font-weight:bolder}.book-section-flat>ul{padding-inline-start:0}.book-page{min-width:20rem;flex-grow:1;padding:1rem}.book-post{margin-bottom:3rem}.book-header{display:none;margin-bottom:1rem}.book-header label{line-height:0}.book-search{position:relative;margin:1rem 0;border-bottom:1px solid transparent}.book-search input{width:100%;padding:.5rem;border:0;border-radius:.25rem;background:var(--gray-100);color:var(--body-font-color)}.book-search input:required+.book-search-spinner{display:block}.book-search .book-search-spinner{position:absolute;top:0;margin:.5rem;margin-inline-start:calc(100% - 1.5rem);width:1rem;height:1rem;border:1px solid transparent;border-top-color:var(--body-font-color);border-radius:50%;animation:spin 1s ease infinite}@keyframes spin{100%{transform:rotate(360deg)}}.book-search small{opacity:.5}.book-toc{flex:0 0 16rem;font-size:.75rem}.book-toc .book-toc-content{width:16rem;padding:1rem;position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto}.book-toc img{height:1em}.book-toc nav>ul>li:first-child{margin-top:0}.book-footer{padding-top:1rem;font-size:.875rem}.book-footer img{height:1em;margin-inline-end:.5rem}.book-comments{margin-top:1rem}.book-languages{position:relative;overflow:visible;padding:1rem;margin:-1rem}.book-languages ul{margin:0;padding:0;list-style:none}.book-languages ul li{white-space:nowrap;cursor:pointer}.book-languages:hover .book-languages-list,.book-languages:focus .book-languages-list,.book-languages:focus-within .book-languages-list{display:block}.book-languages .book-languages-list{display:none;position:absolute;bottom:100%;left:0;padding:.5rem 0;background:var(--body-background);box-shadow:0 0 .25rem rgba(0,0,0,.1)}.book-languages .book-languages-list li img{opacity:.25}.book-languages .book-languages-list li.active img,.book-languages .book-languages-list li:hover img{opacity:initial}.book-languages .book-languages-list a{color:inherit;padding:.5rem 1rem}.book-home{padding:1rem}.book-menu-content,.book-toc-content,.book-page,.book-header aside,.markdown{transition:.2s ease-in-out;transition-property:transform,margin,opacity,visibility;will-change:transform,margin,opacity}@media screen and (max-width:56rem){#menu-control,#toc-control{display:inline}.book-menu{visibility:hidden;margin-inline-start:-16rem;font-size:16px;z-index:1}.book-toc{display:none}.book-header{display:block}#menu-control:focus~main label[for=menu-control]{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}#menu-control:checked~main .book-menu{visibility:initial}#menu-control:checked~main .book-menu .book-menu-content{transform:translateX(16rem);box-shadow:0 0 .5rem rgba(0,0,0,.1)}#menu-control:checked~main .book-page{opacity:.25}#menu-control:checked~main .book-menu-overlay{display:block;position:absolute;top:0;bottom:0;left:0;right:0}#toc-control:focus~main label[for=toc-control]{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}#toc-control:checked~main .book-header aside{display:block}body[dir=rtl] #menu-control:checked+main .book-menu .book-menu-content{transform:translateX(-16rem)}}@media screen and (min-width:80rem){.book-page,.book-menu .book-menu-content,.book-toc .book-toc-content{padding:2rem 1rem}}@font-face{font-family:roboto;font-style:italic;font-weight:300;font-display:swap;src:local("Roboto Light Italic"),local("Roboto-LightItalic"),url(fonts/roboto-v19-latin-300italic.woff2)format("woff2"),url(fonts/roboto-v19-latin-300italic.woff)format("woff")}@font-face{font-family:roboto;font-style:normal;font-weight:400;font-display:swap;src:local("Roboto"),local("Roboto-Regular"),url(fonts/roboto-v19-latin-regular.woff2)format("woff2"),url(fonts/roboto-v19-latin-regular.woff)format("woff")}@font-face{font-family:roboto;font-style:normal;font-weight:700;font-display:swap;src:local("Roboto Bold"),local("Roboto-Bold"),url(fonts/roboto-v19-latin-700.woff2)format("woff2"),url(fonts/roboto-v19-latin-700.woff)format("woff")}@font-face{font-family:roboto mono;font-style:normal;font-weight:400;font-display:swap;src:local("Roboto Mono"),local("RobotoMono-Regular"),url(fonts/roboto-mono-v6-latin-regular.woff2)format("woff2"),url(fonts/roboto-mono-v6-latin-regular.woff)format("woff")}body{font-family:roboto,sans-serif}code{font-family:roboto mono,monospace}@media print{.book-menu,.book-footer,.book-toc{display:none}.book-header,.book-header aside{display:block}main{display:block!important}}.markdown{line-height:1.6}.markdown>:first-child{margin-top:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{font-weight:400;line-height:1;margin-top:1.5em;margin-bottom:1rem}.markdown h1 a.anchor,.markdown h2 a.anchor,.markdown h3 a.anchor,.markdown h4 a.anchor,.markdown h5 a.anchor,.markdown h6 a.anchor{opacity:0;font-size:.75em;vertical-align:middle;text-decoration:none}.markdown h1:hover a.anchor,.markdown h1 a.anchor:focus,.markdown h2:hover a.anchor,.markdown h2 a.anchor:focus,.markdown h3:hover a.anchor,.markdown h3 a.anchor:focus,.markdown h4:hover a.anchor,.markdown h4 a.anchor:focus,.markdown h5:hover a.anchor,.markdown h5 a.anchor:focus,.markdown h6:hover a.anchor,.markdown h6 a.anchor:focus{opacity:initial}.markdown h4,.markdown h5,.markdown h6{font-weight:bolder}.markdown h5{font-size:.875em}.markdown h6{font-size:.75em}.markdown b,.markdown optgroup,.markdown strong{font-weight:bolder}.markdown a{text-decoration:none}.markdown a:hover{text-decoration:underline}.markdown a:visited{color:var(--color-visited-link)}.markdown img{max-width:100%}.markdown code{padding:0 .25rem;background:var(--gray-200);border-radius:.25rem;font-size:.875em}.markdown pre{padding:1rem;background:var(--gray-100);border-radius:.25rem;overflow-x:auto}.markdown pre code{padding:0;background:0 0}.markdown blockquote{margin:1rem 0;padding:.5rem 1rem .5rem .75rem;border-inline-start:.25rem solid var(--gray-200);border-radius:.25rem}.markdown blockquote :first-child{margin-top:0}.markdown blockquote :last-child{margin-bottom:0}.markdown table{overflow:auto;display:block;border-spacing:0;border-collapse:collapse;margin-top:1rem;margin-bottom:1rem}.markdown table tr th,.markdown table tr td{padding:.5rem 1rem;border:1px solid var(--gray-200)}.markdown table tr:nth-child(2n){background:var(--gray-100)}.markdown hr{height:1px;border:none;background:var(--gray-200)}.markdown ul,.markdown ol{padding-inline-start:2rem}.markdown dl dt{font-weight:bolder;margin-top:1rem}.markdown dl dd{margin-inline-start:0;margin-bottom:1rem}.markdown .highlight table tr td:nth-child(1) pre{margin:0;padding-inline-end:0}.markdown .highlight table tr td:nth-child(2) pre{margin:0;padding-inline-start:0}.markdown details{padding:1rem;border:1px solid var(--gray-200);border-radius:.25rem}.markdown details summary{line-height:1;padding:1rem;margin:-1rem;cursor:pointer}.markdown details[open] summary{margin-bottom:0}.markdown figure{margin:1rem 0}.markdown figure figcaption p{margin-top:0}.markdown-inner>:first-child{margin-top:0}.markdown-inner>:last-child{margin-bottom:0}.markdown .book-expand{margin-top:1rem;margin-bottom:1rem;border:1px solid var(--gray-200);border-radius:.25rem;overflow:hidden}.markdown .book-expand .book-expand-head{background:var(--gray-100);padding:.5rem 1rem;cursor:pointer}.markdown .book-expand .book-expand-content{display:none;padding:1rem}.markdown .book-expand input[type=checkbox]:checked+.book-expand-content{display:block}.markdown .book-tabs{margin-top:1rem;margin-bottom:1rem;border:1px solid var(--gray-200);border-radius:.25rem;overflow:hidden;display:flex;flex-wrap:wrap}.markdown .book-tabs label{display:inline-block;padding:.5rem 1rem;border-bottom:1px transparent;cursor:pointer}.markdown .book-tabs .book-tabs-content{order:999;width:100%;border-top:1px solid var(--gray-100);padding:1rem;display:none}.markdown .book-tabs input[type=radio]:checked+label{border-bottom:1px solid var(--color-link)}.markdown .book-tabs input[type=radio]:checked+label+.book-tabs-content{display:block}.markdown .book-tabs input[type=radio]:focus+label{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}.markdown .book-columns{margin-left:-1rem;margin-right:-1rem}.markdown .book-columns>div{margin:1rem 0;min-width:10rem;padding:0 1rem}.markdown a.book-btn{display:inline-block;font-size:.875rem;color:var(--color-link);line-height:2rem;padding:0 1rem;border:1px solid var(--color-link);border-radius:.25rem;cursor:pointer}.markdown a.book-btn:hover{text-decoration:none}.markdown .book-hint.info{border-color:#6bf;background-color:rgba(102,187,255,.1)}.markdown .book-hint.warning{border-color:#fd6;background-color:rgba(255,221,102,.1)}.markdown .book-hint.danger{border-color:#f66;background-color:rgba(255,102,102,.1)}@media screen and (min-width:80rem){.container{width:calc(100vw - (2 * clamp(1rem,4vw,4rem)));max-width:none;margin-left:clamp(1rem,4vw,4rem);margin-right:clamp(1rem,4vw,4rem)}.book-page{padding-inline:1.25rem}.book-menu .book-menu-content,.book-toc .book-toc-content{padding-inline:.75rem}}.book-menu .book-menu-content{scrollbar-width:thin;scrollbar-color:var(--gray-200)transparent}.book-menu .book-menu-content::-webkit-scrollbar{width:6px}.book-menu .book-menu-content::-webkit-scrollbar-track{background:0 0}.book-menu .book-menu-content::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:3px}.markdown pre{scrollbar-width:thin;scrollbar-color:var(--gray-200)transparent}.markdown pre::-webkit-scrollbar{height:6px}.markdown pre::-webkit-scrollbar-track{background:0 0}.markdown pre::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:3px}.book-brand{text-align:center}.book-brand a{display:block;outline:none;box-shadow:none;-webkit-tap-highlight-color:transparent}.book-brand a:focus,.book-brand a:focus-visible,.book-brand a:active{outline:none;box-shadow:none}.book-brand img,.book-brand video{display:block;width:min(100%,11rem);max-height:none;height:auto;margin:0 auto .75rem}.book-page .markdown a{overflow-wrap:anywhere}@media screen and (max-width:42rem){.book-columns{flex-direction:column;gap:1rem}}.giscus{margin-top:2rem}.boat-just-posted{display:none}.boat-just-posted-spinner{border:2px solid rgba(132,178,255,.3);border-radius:50%;border-top-color:var(--color-link);display:inline-block;height:.9em;margin-right:.6rem;vertical-align:-.1em;width:.9em}@media(prefers-reduced-motion:no-preference){.boat-just-posted-spinner{animation:boat-just-posted-spin .9s linear infinite}@keyframes boat-just-posted-spin{to{transform:rotate(360deg)}}}.boat-just-posted:target,.boat-just-posted.is-shown{background:rgba(127,156,245,8%);border-left:.25rem solid var(--color-link);display:block;font-weight:600;margin-top:2rem;padding:1rem 1.25rem}.boat-reply-form{margin-top:2rem;padding:1rem 1.25rem;border-left:.25rem solid var(--color-link);background:rgba(127,156,245,8%)}.boat-reply-form label{display:block;font-weight:600;margin-bottom:.5rem}.boat-reply-form textarea{background:rgba(127,156,245,6%);border:1px solid rgba(132,178,255,.45);border-radius:.25rem;color:var(--body-font-color);display:block;font:inherit;padding:.5rem .75rem;resize:vertical;width:100%}.boat-reply-form textarea:focus{border-color:var(--color-link);outline:none}.boat-reply-form button{background:var(--color-link);border:0;border-radius:.25rem;color:var(--body-background);cursor:pointer;font:inherit;font-weight:600;margin-top:.75rem;padding:.5rem 1rem}.boat-reply-form-note{color:var(--gray-500);font-size:.85rem;margin:.75rem 0 0}.boat-reply-form-links{font-size:.9rem;margin:.75rem 0 0}.boat-reply-form-links a{font-weight:600}.boat-reply-deep{margin:1.25rem 0 1.25rem calc(3 * 1.4rem)}.boat-reply-deep>summary{color:var(--color-link);cursor:pointer;font-size:.9rem;font-weight:600;width:fit-content}.boat-reply-deep .boat-reply-deep{margin-left:1.4rem}.boat-reply-answer{margin-top:.5rem}.boat-reply-answer summary{color:var(--color-link);cursor:pointer;font-size:.85rem;font-weight:600;width:fit-content}.boat-reply-answer form{margin-top:.5rem}.boat-reply-answer textarea{background:rgba(127,156,245,6%);border:1px solid rgba(132,178,255,.45);border-radius:.25rem;color:var(--body-font-color);display:block;font:inherit;font-size:.9rem;padding:.4rem .6rem;resize:vertical;width:100%}.boat-reply-answer textarea:focus{border-color:var(--color-link);outline:none}.boat-reply-answer button{background:var(--color-link);border:0;border-radius:.25rem;color:var(--body-background);cursor:pointer;font:inherit;font-size:.9rem;font-weight:600;margin-top:.5rem;padding:.35rem .8rem}.markdown video{max-width:100%;height:auto}.markdown img.flavor,.markdown video.flavor{display:block;margin:0 auto;max-width:min(100%,22rem);height:auto}.markdown .flavor-caption{color:var(--gray-500);display:block;font-size:.85rem;margin:.4rem auto 0;max-width:min(100%,22rem);text-align:center}.homepage-hero{display:flex;flex-direction:row;gap:clamp(3rem,5vw,5rem);align-items:center}.homepage-portrait{width:500px;height:auto;position:relative;border-radius:20px;mask-image:linear-gradient(to right,transparent,black 12%,black 88%,transparent),linear-gradient(to bottom,transparent,black 12%,black 66%,transparent);mask-composite:intersect;filter:brightness(.82)saturate(.9)contrast(1.02)}.homepage-project{margin:1.5rem 0;padding:1rem 1.25rem;border-left:.25rem solid var(--color-link);background:rgba(127,156,245,8%)}.homepage-project h2{margin:0 0 .5rem;font-size:1.35rem}.homepage-project p{margin:.5rem 0 0}.homepage-project-link{display:inline-block;margin-top:.75rem;font-weight:600}@media screen and (max-width:48rem){.homepage-hero{flex-direction:column;align-items:flex-start;gap:1.25rem}.homepage-portrait{align-self:center;width:min(100%,28rem)}}.markdown .post-replies{font-size:.85em;margin:-.5rem 0 1rem;opacity:.8}.boat-replies{border-top:1px solid rgba(128,128,128,.35);margin-top:2.5rem;padding-top:1rem}.boat-reply{margin:1.25rem 0}@media(prefers-reduced-motion:no-preference){.boat-reply.is-fresh{animation:boat-reply-fresh 2.5s ease-out}@keyframes boat-reply-fresh{from{background:rgba(127,156,245,.18)}to{background:0 0}}}.boat-reply--nested{border-left:2px solid rgba(128,128,128,.35);margin-left:calc(var(--boat-reply-depth,1) * 1.4rem);padding-left:.9rem}.boat-reply-meta{font-size:.85em;margin-bottom:.2rem;opacity:.8}.boat-reply-edited{border:1px solid;border-radius:999px;font-size:.8em;margin-left:.35rem;opacity:.75;padding:0 .4em;white-space:nowrap}.boat-reply-body p{margin:0 0 .85em}.boat-reply-body p:last-child{margin-bottom:0}.post-end-mark{display:block;width:1.1rem;height:auto;margin:2.5rem auto 0;opacity:.85}.ankh-divider{display:flex;align-items:center;gap:1rem;margin:1rem 0}.ankh-divider::before,.ankh-divider::after{content:"";flex:1;border-top:1px solid var(--gray-200,#2a2c3d)}.ankh-divider img{width:1.1rem;height:auto;opacity:.85}.fire-mode-ankh{display:contents}.fire-mode-ankh label{display:none}.fire-mode-ankh img{cursor:pointer}body:has(#fire-out:checked) .fire-mode-ankh label[for=fire-smolder],body:has(#fire-smolder:checked) .fire-mode-ankh label[for=fire-blaze],body:has(#fire-blaze:checked) .fire-mode-ankh label[for=fire-scorch],body:has(#fire-scorch:checked) .fire-mode-ankh label[for=fire-ash],body:has(#fire-ash:checked) .fire-mode-ankh label[for=fire-out]{display:contents}.fire-mode-found{display:none;text-align:center;font-size:.8em;color:var(--gray-500);margin-top:.5rem;opacity:0;pointer-events:none}body:has(#fire-smolder:checked) .fire-mode-found-lit,body:has(#fire-blaze:checked) .fire-mode-found-blaze,body:has(#fire-scorch:checked) .fire-mode-found-scorch,body:has(#fire-ash:checked) .fire-mode-found-end{display:block;animation:found-fade 2s ease 1 both}@keyframes found-fade{from{opacity:0}to{opacity:1}}.fire-tell-top{display:none;flex-direction:column;align-items:center;gap:.4rem;margin:.75rem 0 0}.fire-tell-top img{width:.9rem;height:auto;cursor:pointer}.fire-tell-top span{font-size:.8em;color:var(--gray-500)}body:has(#fire-scorch:checked) .fire-tell-top{display:flex;animation:found-fade 2s ease 1 both}body:has(#fire-scorch:checked):has(.fire-tell-top) .fire-mode-found-scorch,body:has(#fire-scorch:checked):has(.fire-tell-top) .fire-mode-ankh label[for=fire-ash]{display:none}body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(120% 90% at 50% 110%,rgba(185,28,28,.2),transparent 65%),radial-gradient(70% 45% at 50% 105%,rgba(251,191,36,9%),transparent 70%)}body::after,html::after{content:"";position:fixed;inset:-8% -4%;z-index:-1;pointer-events:none;opacity:0;transform-origin:50% 100%}body::after{background:radial-gradient(7% 26% at 8% 100%,rgba(251,191,36,.4),rgba(249,115,22,.18) 55%,transparent 78%),radial-gradient(9% 34% at 24% 100%,rgba(249,115,22,.35),rgba(185,28,28,.16) 60%,transparent 80%),radial-gradient(6% 22% at 43% 100%,rgba(251,191,36,.34),transparent 75%),radial-gradient(10% 30% at 65% 100%,rgba(249,115,22,.32),rgba(185,28,28,.14) 60%,transparent 80%),radial-gradient(7% 25% at 86% 100%,rgba(251,191,36,.38),transparent 76%),radial-gradient(120% 26% at 50% 108%,rgba(185,28,28,.28),transparent 70%)}html::after{background:radial-gradient(8% 30% at 15% 100%,rgba(249,115,22,.34),rgba(185,28,28,.15) 60%,transparent 80%),radial-gradient(6% 24% at 33% 100%,rgba(251,191,36,.36),transparent 76%),radial-gradient(9% 32% at 54% 100%,rgba(249,115,22,.3),rgba(185,28,28,.14) 60%,transparent 80%),radial-gradient(6% 21% at 75% 100%,rgba(251,191,36,.35),transparent 75%),radial-gradient(8% 28% at 94% 100%,rgba(249,115,22,.33),transparent 78%)}.fire-embers::after{content:"";position:absolute;inset:0;opacity:0;transform-origin:50% 100%;background:radial-gradient(11% 24% at 12% 100%,rgba(251,191,36,.28),transparent 75%),radial-gradient(14% 20% at 50% 100%,rgba(249,115,22,.26),transparent 74%),radial-gradient(12% 26% at 80% 100%,rgba(251,191,36,.27),transparent 76%)}.fire-embers{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0;mask-image:linear-gradient(to top,black 5%,rgba(0,0,0,.4) 28%,transparent 55%)}.fire-embers::before{content:"";position:absolute;left:0;right:0;bottom:-100vh;height:300vh;background-image:radial-gradient(4px 4px at 11% 21%,#fbbf24,transparent),radial-gradient(2.5px 2.5px at 27% 64%,rgba(251,191,36,.9),transparent),radial-gradient(3px 3px at 41% 39%,#f97316,transparent),radial-gradient(2.5px 2.5px at 56% 82%,rgba(251,191,36,.85),transparent),radial-gradient(4px 4px at 68% 12%,#f97316,transparent),radial-gradient(2.5px 2.5px at 79% 55%,rgba(251,191,36,.9),transparent),radial-gradient(3px 3px at 92% 30%,#fbbf24,transparent),radial-gradient(2.5px 2.5px at 6% 88%,rgba(249,115,22,.85),transparent),radial-gradient(3px 3px at 33% 5%,rgba(251,191,36,.9),transparent),radial-gradient(2.5px 2.5px at 87% 74%,rgba(249,115,22,.9),transparent),radial-gradient(3.5px 3.5px at 18% 47%,rgba(251,191,36,.95),transparent),radial-gradient(2.5px 2.5px at 63% 58%,rgba(249,115,22,.85),transparent),radial-gradient(3px 3px at 48% 93%,rgba(251,191,36,.9),transparent),radial-gradient(2.5px 2.5px at 97% 8%,rgba(249,115,22,.8),transparent);background-size:100% 100vh;background-repeat:repeat}body:has(#fire-smolder:checked),body:has(#fire-blaze:checked),body:has(#fire-scorch:checked){--body-background:#1a0f0d}body:has(#fire-smolder:checked)::before,body:has(#fire-blaze:checked)::before,body:has(#fire-scorch:checked)::before,body:has(#fire-ash:checked)::before{opacity:1;transition:opacity 2s ease}body:has(:is(#fire-blaze,#fire-scorch):checked)::before{background:radial-gradient(120% 90% at 50% 110%,rgba(185,28,28,.32),transparent 65%),radial-gradient(70% 45% at 50% 105%,rgba(251,191,36,.15),transparent 70%)}body:has(#fire-smolder:checked) .book-brand video,body:has(:is(#fire-blaze,#fire-scorch):checked) .book-brand video{filter:saturate(.72)brightness(.88)}@media screen and (min-width:56rem){body:has(#fire-smolder:checked) .book-menu-content,body:has(:is(#fire-blaze,#fire-scorch,#fire-ash):checked) .book-menu-content{background:0 0}}body:has(:is(#fire-blaze,#fire-scorch):checked)::after{animation:fire-dance-a 1.7s ease-in-out infinite}html:has(:is(#fire-blaze,#fire-scorch):checked)::after{animation:fire-dance-b 1.3s ease-in-out infinite;animation-delay:-.6s}body:has(:is(#fire-blaze,#fire-scorch):checked) .fire-embers::after{animation:fire-dance-c 2.2s ease-in-out infinite;animation-delay:-1.5s}body:has(:is(#fire-blaze,#fire-scorch):checked) .fire-embers{opacity:1}body:has(:is(#fire-blaze,#fire-scorch):checked) .fire-embers::before{animation:fire-embers-rise 6.5s linear infinite,fire-embers-pulse 1.9s ease-in-out infinite}@keyframes fire-dance-a{0%,100%{transform:translateX(0)scaleY(1);opacity:.75}11%{transform:translateX(-.7%)scaleY(1.12);opacity:1}23%{transform:translateX(.5%)scaleY(.94);opacity:.6}37%{transform:translateX(-.3%)scaleY(1.18);opacity:.95}52%{transform:translateX(.8%)scaleY(.98);opacity:.7}68%{transform:translateX(-.6%)scaleY(1.09);opacity:1}84%{transform:translateX(.3%)scaleY(.92);opacity:.62}}@keyframes fire-dance-b{0%,100%{transform:translateX(0)scaleY(1);opacity:.8}14%{transform:translateX(.6%)scaleY(.93);opacity:.58}29%{transform:translateX(-.4%)scaleY(1.15);opacity:1}46%{transform:translateX(.5%)scaleY(1.02);opacity:.68}63%{transform:translateX(-.8%)scaleY(.95);opacity:.92}82%{transform:translateX(.5%)scaleY(1.11);opacity:.64}}@keyframes fire-dance-c{0%,100%{transform:scaleY(1);opacity:.7}19%{transform:scaleY(1.14);opacity:1}38%{transform:scaleY(.95);opacity:.6}57%{transform:scaleY(1.1);opacity:.9}78%{transform:scaleY(.97);opacity:.66}}@keyframes fire-embers-rise{to{transform:translateY(-100vh)}}@keyframes fire-embers-pulse{0%,100%{opacity:.65}50%{opacity:1}}body:has(#fire-scorch:checked){--body-font-color:#f3dfc0;--color-link:#fbbf24}body:has(#fire-scorch:checked) .markdown :is(h1,h2,h3,h4){background:linear-gradient(0deg,#fbbf24 0%,#f97316 30%,#f3dfc0 55%,#f97316 78%,#fbbf24 100%);background-size:100% 50%;background-repeat:repeat;background-clip:text;-webkit-background-clip:text;color:transparent;filter:url(#fire-heat);animation:text-ignite .9s ease-in 1 both,text-burn 2.4s linear infinite,text-catch 2.7s ease-in-out infinite}@keyframes text-ignite{from{color:#e9ecef}to{color:transparent}}body:has(#fire-scorch:checked) .book-menu a.active{color:#e9ecef}body:has(#fire-scorch:checked) :is(.markdown p:not(:has(.spoiler)),.markdown li:not(:has(.spoiler)),.markdown blockquote,.markdown figcaption,.book-menu a:not(.active),.book-brand span){background:linear-gradient(0deg,#f3dfc0 0%,#fbbf24 10%,#f97316 20%,#f3dfc0 34%,#f3dfc0 100%);background-size:100% 4em;background-repeat:repeat;background-clip:text;-webkit-background-clip:text;color:transparent;animation:text-ignite .9s ease-in 1 both,text-burn-body 3.5s linear infinite}.ember-lock{display:flex;flex-wrap:wrap;gap:1.6rem;justify-content:center;margin:2.5rem 0 3rem}.ember-lock input{position:absolute;width:1px;height:1px;opacity:0}.ember-lock label{display:block;width:1.1rem;height:1.1rem;border-radius:50%;background:#3a332e;cursor:pointer;position:relative;margin-bottom:1.2rem}.ember-lock label::after{content:attr(data-n);position:absolute;top:1.3rem;left:50%;transform:translateX(-50%);font-size:.7rem;color:var(--gray-500)}.ember-lock input:checked+label{background:radial-gradient(circle,#fbbf24 0%,#f97316 55%,#b91c1c 100%);box-shadow:0 0 10px rgba(249,115,22,.7)}.ember-lock input:focus-visible+label{outline:2px solid var(--color-link);outline-offset:3px}.ember-prize{display:none}body:has(.ember-lock) :is(.boat-replies,.boat-reply-form,.boat-reply-form-links){display:none}body:has(.ember-lock):has(#e2:checked):has(#e3:checked):has(#e5:checked):has(#e7:checked):has(#e11:checked):not(:has(#e1:checked)):not(:has(#e4:checked)):not(:has(#e6:checked)):not(:has(#e8:checked)):not(:has(#e9:checked)):not(:has(#e10:checked)):not(:has(#e12:checked)) :is(.boat-replies,.boat-reply-form,.boat-reply-form-links){display:block}.ember-lock:has(#e2:checked):has(#e3:checked):has(#e5:checked):has(#e7:checked):has(#e11:checked):not(:has(#e1:checked)):not(:has(#e4:checked)):not(:has(#e6:checked)):not(:has(#e8:checked)):not(:has(#e9:checked)):not(:has(#e10:checked)):not(:has(#e12:checked))+.ember-prize{display:block}body:has(#fire-scorch:checked) .markdown .ln{background:linear-gradient(0deg,#93c5fd 0%,#dbeafe 45%,#f8fafc 70%,#dbeafe 100%);background-size:100% 50%;background-repeat:repeat;background-clip:text;-webkit-background-clip:text;color:transparent}body:has(#fire-scorch:checked) .markdown .ln::after{content:attr(data-n);color:#bfdbfe;background:0 0;font-size:.55em;vertical-align:sub;margin-left:.08em}@keyframes text-burn-body{from{background-position-y:0}to{background-position-y:-8em}}@keyframes text-burn{from{background-position-y:0%}to{background-position-y:-200%}}body:has(#fire-scorch:checked) .markdown :is(h1,h2,h3,h4) a{color:inherit}body:has(#fire-ash:checked){--body-background:#221e1b;--body-font-color:#a29a91;--color-link:#8f867c;animation:quench 1.2s ease-out 1 both}@keyframes quench{from{background-color:#1a0f0d;color:#f3dfc0}to{background-color:#221e1b;color:#a29a91}}html:has(#fire-ash:checked)::after{inset:-14% -10%;transform:rotate(-4deg);background:radial-gradient(1.6px 20px at 8% 12%,rgba(188,208,224,.8),transparent),radial-gradient(1.4px 16px at 14% 68%,rgba(178,198,214,.6),transparent),radial-gradient(1.3px 15px at 19% 55%,rgba(178,198,214,.65),transparent),radial-gradient(1.7px 22px at 27% 30%,rgba(198,216,230,.75),transparent),radial-gradient(1.4px 16px at 36% 78%,rgba(178,198,214,.6),transparent),radial-gradient(1.6px 20px at 41% 42%,rgba(188,208,224,.7),transparent),radial-gradient(1.5px 18px at 45% 8%,rgba(198,216,230,.78),transparent),radial-gradient(1.3px 15px at 54% 47%,rgba(178,198,214,.62),transparent),radial-gradient(1.7px 21px at 59% 15%,rgba(188,208,224,.72),transparent),radial-gradient(1.6px 19px at 63% 88%,rgba(198,216,230,.7),transparent),radial-gradient(1.4px 16px at 71% 25%,rgba(178,198,214,.6),transparent),radial-gradient(1.6px 20px at 76% 58%,rgba(188,208,224,.68),transparent),radial-gradient(1.5px 18px at 80% 64%,rgba(198,216,230,.72),transparent),radial-gradient(1.3px 15px at 88% 18%,rgba(178,198,214,.65),transparent),radial-gradient(1.7px 22px at 92% 40%,rgba(188,208,224,.7),transparent),radial-gradient(1.6px 19px at 95% 72%,rgba(198,216,230,.68),transparent),radial-gradient(1.4px 16px at 13% 90%,rgba(178,198,214,.58),transparent),radial-gradient(1.5px 18px at 33% 5%,rgba(188,208,224,.66),transparent);background-size:100% 50%;background-repeat:repeat;animation:rain-fall .55s linear infinite,rain-phase 1.2s ease-out 1 both}@keyframes rain-fall{from{background-position-y:0%}to{background-position-y:200%}}@keyframes rain-phase{from{opacity:0}to{opacity:.9}}body:has(#fire-ash:checked)::before{background:linear-gradient(180deg,rgba(190,180,170,9%),rgba(190,180,170,2%) 40%,transparent 70%),radial-gradient(30% 12% at 62% 104%,rgba(249,115,22,.14),transparent 70%),radial-gradient(120% 60% at 50% 110%,rgba(150,135,120,.12),transparent 70%)}body:has(#fire-ash:checked) .markdown :is(h1,h2,h3,h4){color:#675f57;filter:url(#ash-crumble);animation:quench-headings .9s ease-out 1 both}body:has(#fire-ash:checked) :is(.markdown p,.markdown li,.markdown blockquote,.markdown figcaption,.book-menu a,.book-brand span){filter:url(#ash-crumble-fine);animation:quench-body .9s ease-out 1 both}@keyframes quench-body{0%{color:#f3dfc0;filter:blur(0);opacity:1}30%{filter:blur(.35em);opacity:.3}70%{filter:url(#ash-crumble-fine)blur(.35em);opacity:.3}100%{color:#a29a91;filter:url(#ash-crumble-fine)blur(0);opacity:1}}@keyframes quench-headings{0%{color:rgba(249,115,22,.9);filter:blur(0);opacity:1}30%{filter:blur(.35em);opacity:.3}70%{filter:url(#ash-crumble)blur(.35em);opacity:.3}100%{color:#675f57;filter:url(#ash-crumble)blur(0);opacity:1}}body:has(#fire-ash:checked) .markdown :is(h1,h2,h3,h4) a{color:inherit}body:has(#fire-ash:checked) .markdown :is(img,video){filter:grayscale(.9)brightness(.75);transition:filter 1s ease}body:has(#fire-ash:checked) .fire-embers{opacity:.3}body:has(#fire-ash:checked) .fire-embers::before{animation:fire-embers-rise 16s linear infinite,fire-embers-pulse 3.5s ease-in-out infinite}body:has(#fire-ash:checked) .book-brand video{filter:grayscale(.85)brightness(.6);transition:filter 1s ease}@keyframes text-catch{0%,100%{text-shadow:0 0 10px rgba(249,115,22,.25)}31%{text-shadow:0 0 18px rgba(249,115,22,.5),0 0 34px rgba(185,28,28,.3)}57%{text-shadow:0 0 12px rgba(249,115,22,.3)}79%{text-shadow:0 0 22px rgba(251,191,36,.45),0 0 40px rgba(185,28,28,.28)}}@media(prefers-reduced-motion:reduce){body:has(#fire-smolder:checked)::before,body:has(#fire-blaze:checked)::before{transition:none}body:has(#fire-smolder:checked) .fire-mode-found-lit,body:has(#fire-blaze:checked) .fire-mode-found-blaze,body:has(#fire-scorch:checked) .fire-mode-found-scorch,body:has(#fire-ash:checked) .fire-mode-found-end,body:has(#fire-scorch:checked) .fire-tell-top{animation:none;opacity:1}body:has(:is(#fire-blaze,#fire-scorch):checked)::after,html:has(:is(#fire-blaze,#fire-scorch):checked)::after{animation:none;opacity:.85}body:has(:is(#fire-blaze,#fire-scorch,#fire-ash):checked) .fire-embers{opacity:0}body:has(:is(#fire-blaze,#fire-scorch,#fire-ash):checked) .fire-embers::before,body:has(:is(#fire-blaze,#fire-scorch,#fire-ash):checked) .fire-embers::after{animation:none}body:has(#fire-scorch:checked) .markdown :is(h1,h2,h3,h4){animation:none;filter:none;text-shadow:0 0 12px rgba(249,115,22,.3)}body:has(#fire-ash:checked),body:has(#fire-ash:checked) .markdown :is(h1,h2,h3,h4),body:has(#fire-ash:checked) :is(.markdown p,.markdown li,.markdown blockquote,.markdown figcaption,.book-menu a,.book-brand span),body:has(#fire-scorch:checked) :is(.markdown p:not(:has(.spoiler)),.markdown li:not(:has(.spoiler)),.markdown blockquote,.markdown figcaption,.book-menu a:not(.active),.book-brand span){animation:none}html:has(#fire-ash:checked)::after{animation:none}body:has(#fire-ash:checked) .markdown :is(img,video),body:has(#fire-ash:checked) .book-brand video{transition:none}}.spoiler{cursor:pointer}.spoiler input{position:absolute;width:1px;height:1px;opacity:0}.spoiler span{border-radius:.25rem;padding:0 .35rem;transition:color .2s ease,background .2s ease}.spoiler input:not(:checked)+span,.spoiler input:not(:checked)+span *{background:var(--gray-200);color:transparent;user-select:none}.spoiler input:checked+span{background:var(--gray-100)}.spoiler input:focus-visible+span{outline:2px solid var(--color-link);outline-offset:2px}.skip-link{position:absolute;top:-100vh;left:.5rem;z-index:10;padding:.4rem .75rem;background:var(--body-background);color:var(--color-link);border:1px solid var(--color-link);border-radius:.25rem}.skip-link:focus{top:.5rem}.markdown .post-date{font-size:.875em;font-weight:bolder;line-height:1;margin-top:1.5em;margin-bottom:1rem}.homepage-content .book-post-title{font-size:1.5em}