:root{--page-max:1240px;--page-pad:clamp(20px, 6vw, 96px);--rail:168px;--rail-gap:48px;--content-width:680px;--lede-width:880px;--fs-meta:0.8rem;--fs-small:0.9rem;--fs-body:1rem;--fs-h2:1.2rem;--fs-h1:1.5rem;--fs-display:2.5rem;--lh-tight:1.2;--lh-title:1.25;--lh-body:1.8;--lh-meta:1.45;--font-body:"Atkinson Hyperlegible Next", sans-serif;--font-mono:"JetBrains Mono", monospace;--bg:#f7f3eb;--dot:#e0d7c8;--surface:#efe9dd;--text:#3d3730;--heading:#1a1714;--link:#3d3730;--muted:#6b6259;--muted-strong:#8b8177;--rule:#cfc4b3;--border:#e2d9c9;--accent:#c23b22;--table-border:#d8cdb9;--code-bg:#ece5d8;--code-color:#2a2218;--pre-code-color:#2a2218;--mark-bg:#f7e68a;--mark-text:#2a2010;--toc-frame:#6b6259;--toc-content-color:#6b6259;--toc-hover-bg:#f7e68a;--toc-hover-text:#1a1714;--nav-border:#e2d9c9;--nav-label-color:#6b6259;--nav-title-color:#3d3730;--nav-title-hover:#1a1714;--helptext:#8b8177;--form-bg:#f7f3eb;--form-text:#1a1714;--heatmap-1:#d8cdb9;--heatmap-2:#b3a692;--heatmap-3:#8b8177;--heatmap-4:#3d3730}*{font-synthesis:none!important}html{scroll-behavior:smooth}body{font-family:var(--font-body);margin:0;padding:28px 0 32px;max-width:none;font-size:var(--fs-body);text-align:left;background-color:var(--bg);background-image:radial-gradient(var(--dot) 1px,transparent 1.3px);background-size:24px 24px;word-wrap:break-word;overflow-wrap:break-word;line-height:var(--lh-body);color:var(--text);overflow-y:scroll}header,main,footer{width:min(100%,var(--page-max));margin-inline:0;padding-inline:var(--page-pad);box-sizing:border-box}main{margin-top:3rem}.rail-row{display:grid;grid-template-columns:var(--rail)minmax(0,1fr);column-gap:var(--rail-gap);align-items:baseline}.rail-row>.rail{text-align:right;min-width:0}.rail-row>.rail-main{min-width:0}.rule{border:0;border-top:1px dashed var(--rule);margin:2.5rem 0}.section-label{font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:.08em;color:var(--muted);margin:0 0 .75rem}.rail-date{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.datestamp{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;margin:0;font-family:var(--font-mono);line-height:1.1}.datestamp-year,.datestamp-dow{font-size:var(--fs-meta);color:var(--muted);letter-spacing:.08em}.datestamp-md{font-size:var(--fs-display);font-weight:600;color:var(--heading);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.datestamp-dot{color:var(--muted-strong);margin:0 .06em}h1,h2,h3,h4,h5,h6{color:var(--heading);font-family:var(--font-body);letter-spacing:-.01em;text-wrap:pretty}h1{font-size:var(--fs-display);font-weight:700;line-height:1.3;margin:0 0 1rem}h2{font-size:var(--fs-h2);font-weight:600;line-height:var(--lh-tight)}h3,h4,h5,h6{font-size:var(--fs-body);font-weight:600;line-height:var(--lh-title)}strong,b{color:var(--heading);font-weight:700}a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--muted-strong);text-underline-offset:.2em;transition:color .14s ease,text-decoration-color .14s ease}a:hover,a:focus-visible{color:var(--heading);text-decoration-color:var(--heading)}a:visited{color:var(--link)}.site-logo-link{display:grid;grid-template-columns:var(--rail)auto;column-gap:var(--rail-gap);align-items:center;text-decoration:none}.site-logo{width:24px;height:24px;display:block;flex-shrink:0;color:var(--text)}.site-logo .logo-spark{fill:var(--accent)}.site-name{font-family:var(--font-mono);font-size:var(--fs-small);font-weight:600;letter-spacing:.04em;color:var(--heading)}nav{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem 1.1rem}.nav-links{display:flex;align-items:center;flex-wrap:wrap;gap:0 1.1rem;margin-left:auto}nav a{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--muted);text-decoration:none;transition:color .18s ease}nav a:hover{color:var(--heading)}nav a.active{color:var(--accent)}textarea,input{font-size:16px;background-color:var(--form-bg);color:var(--form-text)}textarea{width:100%}content{line-height:var(--lh-body)}content p{margin-bottom:1.5rem}content p:last-child{margin-bottom:0}content h2{margin-top:2.5rem;margin-bottom:.75rem}content h2:first-child{margin-top:0}content h3,content h4{margin-top:2rem;margin-bottom:.5rem}content ul,content ol{margin-bottom:1.5rem}content li{margin-bottom:.4rem;padding-left:.15em}content li:last-child{margin-bottom:0}.single-post content a[href^=http]{text-decoration-color:var(--accent)}.single-post content a[href^=http]:hover{color:var(--accent)}.changelog-body details.changelog-year{margin:1rem 0 0}.changelog-body details.changelog-year summary{cursor:pointer;font-weight:600;color:var(--heading);list-style:none}.changelog-body details.changelog-year summary::-webkit-details-marker{display:none}.changelog-body details.changelog-year summary::before{content:"▶ ";display:inline-block;margin-right:.25em}.changelog-body details.changelog-year[open] summary::before{content:"▼ "}.changelog-body .changelog-year-list{margin:.5rem 0 0;padding-left:1.25rem}img{max-width:100%;border-radius:4px}blockquote{position:relative;color:var(--text);padding:0 0 0 28px;margin:2rem 0;font-family:var(--font-body);font-size:1.25rem;font-weight:500;line-height:1.7;background:0 0}blockquote::before{content:"\201C";position:absolute;left:0;top:-.15em;font-family:var(--font-body);font-size:2.5rem;line-height:1;color:var(--accent)}blockquote p:last-child{margin-bottom:0}code{padding:2px 6px;font-family:var(--font-mono);font-size:var(--fs-small);background-color:var(--code-bg);color:var(--code-color);border-radius:3px}pre code{display:block;padding:1.25rem;white-space:pre-wrap;font-size:var(--fs-small);font-family:var(--font-mono);color:var(--pre-code-color);background-color:var(--code-bg);border-radius:6px;line-height:1.6}div.highlight pre{background-color:initial;color:initial;border-radius:6px;overflow:hidden}div.highlight code{background-color:unset;color:unset}body.force-dark div.highlight pre[style*="background-color:#272822"] span[style*="color:#75715e"],body.force-dark div.highlight pre[style*="background-color:#272822"] span[style*="color: #75715e"]{color:#9ca3af!important}@media(prefers-color-scheme:dark){div.highlight pre[style*="background-color:#272822"] span[style*="color:#75715e"],div.highlight pre[style*="background-color:#272822"] span[style*="color: #75715e"]{color:#9ca3af!important}}table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:var(--fs-body)}table,th,td{border:1px solid var(--table-border)}th,td{text-align:left;padding:.5rem .75rem}th{background-color:var(--surface);font-weight:600;font-family:var(--font-body)}mark{background-color:var(--mark-bg);color:var(--mark-text);padding:0 2px;border-radius:2px}kbd{border:1.5px solid var(--border);box-shadow:1px 1px 0 var(--muted-strong);display:inline-block;padding:1px 5px;border-radius:.25em;min-width:1.5em;text-align:center;margin-right:.15em;font-family:var(--font-mono);font-size:var(--fs-small);background:var(--surface)}kbd:hover{position:relative;top:1px;left:1px}ul.blog-posts{list-style-type:none;padding:0;margin:0}ul.blog-posts li{display:flex;align-items:baseline;gap:1rem;margin-bottom:.6rem;opacity:0;animation:post-entry .4s ease forwards}ul.blog-posts li:nth-child(1){animation-delay:.05s}ul.blog-posts li:nth-child(2){animation-delay:.1s}ul.blog-posts li:nth-child(3){animation-delay:.15s}ul.blog-posts li:nth-child(4){animation-delay:.2s}ul.blog-posts li:nth-child(5){animation-delay:.25s}ul.blog-posts li:nth-child(6){animation-delay:.3s}ul.blog-posts li:nth-child(7){animation-delay:.35s}ul.blog-posts li:nth-child(8){animation-delay:.4s}ul.blog-posts li:nth-child(9){animation-delay:.45s}ul.blog-posts li:nth-child(10){animation-delay:.5s}@keyframes post-entry{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}ul.blog-posts li:last-child{margin-bottom:0}ul.blog-posts li span{flex:none;font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}ul.toolbox-list li.toolbox-section{display:block}ul.toolbox-list ul.toolbox-sublist{padding-left:1.5em;margin-top:.25em;margin-bottom:.5em}ul.toolbox-list ul.toolbox-sublist li{display:flex}.post-date{font-family:var(--font-mono);font-size:var(--fs-small);font-weight:400;color:var(--muted);margin-right:2rem}.moments-intro{margin-bottom:1.25rem}.moments-month{margin-top:1.5rem}.moment-entry{padding:.2rem 0;line-height:var(--lh-meta)}.moments-icon{margin-right:.15em}.moments-note{color:var(--muted);font-size:var(--fs-small)}.moments-photo{position:relative;margin:2rem 0;max-width:70%;border-radius:8px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.12)}.moments-photo video{display:block;max-width:100%;height:auto;vertical-align:middle}.moments-photo-caption{position:absolute;bottom:0;left:0;right:0;margin:0;padding:.6rem .75rem;font-size:var(--fs-small);color:rgba(255,255,255,.95);text-align:center;background:linear-gradient( to top,rgba(0,0,0,.55) 0%,transparent 100% );z-index:2}.blog-heatmap{position:relative;margin:2rem 0;padding:1rem 0}.blog-heatmap-header{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;font-size:var(--fs-small);color:var(--muted)}.blog-heatmap-title{font-weight:600;color:var(--heading)}.blog-heatmap-streak{position:absolute;top:1rem;right:0;font-family:var(--font-mono);font-size:var(--fs-small);color:var(--muted);font-weight:600}.blog-heatmap-legend{display:inline-flex;align-items:center;gap:.35rem}.blog-heatmap-legend-cell{width:10px;height:10px;border-radius:2px}.blog-heatmap-legend-cell.count-0{background:var(--border)}.blog-heatmap-legend-cell.count-1{background:var(--heatmap-1)}.blog-heatmap-legend-cell.count-2{background:var(--heatmap-2)}.blog-heatmap-legend-cell.count-3{background:var(--heatmap-3)}.blog-heatmap-legend-cell.count-4{background:var(--heatmap-4)}.blog-heatmap-grid{display:flex;flex-direction:column;gap:4px}.blog-heatmap-row{display:flex;align-items:center;gap:.75rem}.blog-heatmap-year{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);flex:0 0 2.5rem}.blog-heatmap-stripes{display:flex;flex-direction:row;gap:2px;flex:1;min-width:0}.blog-heatmap-cell{flex:1;min-width:4px;max-width:12px;height:14px;border-radius:2px;background:var(--border);transition:opacity .15s ease}.blog-heatmap-cell.count-0{background:var(--border)}.blog-heatmap-cell.count-1{background:var(--heatmap-1)}.blog-heatmap-cell.count-2{background:var(--heatmap-2)}.blog-heatmap-cell.count-3{background:var(--heatmap-3)}.blog-heatmap-cell.count-4{background:var(--heatmap-4)}.blog-heatmap-cell:hover{opacity:.85}.blog-heatmap-week-labels{display:flex;justify-content:space-between;margin-top:.35rem;padding-left:3.25rem;font-size:var(--fs-meta);color:var(--muted)}.now-current{margin:1.5rem 0 0}.now-row{padding:.3rem 0;line-height:var(--lh-meta)}.now-row p{margin:0;display:inline}.now-history{margin:1.75rem 0 0;padding:1rem 0 0}.now-history-summary{cursor:pointer;font-size:var(--fs-body);font-weight:600;color:var(--heading);font-family:var(--font-body);list-style:none}.now-history-summary::-webkit-details-marker{display:none}.now-history-summary::before{content:"▶ ";display:inline-block;font-size:.72em;margin-right:.3em;color:var(--muted-strong);transition:transform .15s ease}details.now-history[open]>.now-history-summary::before{transform:rotate(90deg)}.now-history-list{margin:.85rem 0 0;padding:0;list-style:none}.now-history-item{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;align-items:baseline;padding:.45rem 0;border-bottom:1px solid var(--border);font-size:var(--fs-small);line-height:var(--lh-meta)}.now-history-item:last-child{border-bottom:none}.now-history-dates{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.now-history-sep{margin:0 .25rem;color:var(--border)}.now-history-text{color:var(--text);min-width:0}.now-history-text p{margin:0}.now-history-text p+p{margin-top:.35rem}@media screen and (max-width:520px){.now-history-item{grid-template-columns:1fr}.now-history-dates{white-space:normal}}.profile-border{border:2px double var(--border);box-shadow:2px 2px 0 var(--muted-strong);padding:15px;border-radius:.35em;margin:15px 0}.tier-list{margin:2rem 0;border-radius:.35em;overflow:hidden}.tier-row{display:flex;min-height:3.75rem;border-bottom:1px solid var(--border)}.tier-row:first-child{border-top:1px solid var(--border)}.tier-label{flex:0 0 4rem;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:var(--fs-h2);font-weight:700;color:#fff;background:var(--muted)}.tier-label span{text-shadow:0 1px 2px rgba(0,0,0,.35)}.tier-list-palette-tiermaker .tier-row:nth-child(1) .tier-label{background:#c0392b}.tier-list-palette-tiermaker .tier-row:nth-child(2) .tier-label{background:#d35400}.tier-list-palette-tiermaker .tier-row:nth-child(3) .tier-label{background:#b8860b}.tier-list-palette-tiermaker .tier-row:nth-child(4) .tier-label{background:#27ae60}.tier-list-palette-tiermaker .tier-row:nth-child(5) .tier-label{background:#2980b9}.tier-list-palette-tiermaker .tier-row:nth-child(6) .tier-label{background:#8e44ad}.tier-list-palette-tiermaker .tier-row:nth-child(7) .tier-label{background:#7f8c8d}.tier-list-palette-tiermaker .tier-row:nth-child(8) .tier-label{background:#2c3e50}.tier-list-palette-coffee .tier-row:nth-child(1) .tier-label{background:#4a2c2a}.tier-list-palette-coffee .tier-row:nth-child(2) .tier-label{background:#6f4e37}.tier-list-palette-coffee .tier-row:nth-child(3) .tier-label{background:#8b6914}.tier-list-palette-coffee .tier-row:nth-child(4) .tier-label{background:#6b8e23}.tier-list-palette-coffee .tier-row:nth-child(5) .tier-label{background:#8b7355}.tier-list-palette-coffee .tier-row:nth-child(6) .tier-label{background:#5c4033}.tier-list-palette-coffee .tier-row:nth-child(7) .tier-label{background:#8b7d6b}.tier-list-palette-coffee .tier-row:nth-child(8) .tier-label{background:#3e2723}.tier-items{flex:1;padding:.65rem .85rem;background:var(--bg)}.tier-items ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.tier-items li{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .55rem;background:var(--surface);border:1px solid var(--border);border-radius:.25rem;font-size:var(--fs-small);line-height:1.4;margin:0}.tier-items img{width:2.2rem;height:2.2rem;object-fit:cover;border-radius:.15rem}.tier-items a{text-decoration:underline;text-underline-offset:.18em}.tier-items a:hover{color:var(--heading)}@media screen and (max-width:600px){.tier-label{flex:0 0 3rem;font-size:var(--fs-h2)}.tier-items{padding:.5rem}.tier-items ul{gap:.35rem}.tier-items li{font-size:var(--fs-meta);padding:.15rem .4rem}}.avatar{vertical-align:center;width:50px;height:50px;border-radius:50%}.minimalist-list{margin:5px 0;border-radius:8px}.minimalist-item{margin-bottom:8px;line-height:1.5}.minimalist-item:last-child{margin-bottom:0}.minimalist-item a{color:var(--link)}.minimalist-item a:hover{color:var(--heading)}.toc-wrapper{width:61.8%;max-width:445px;margin:1rem 0;position:relative}.toc-container{padding:1rem;font-size:var(--fs-small);color:var(--toc-content-color)}.toc-wrapper::before,.toc-wrapper::after,.toc-wrapper .left-border,.toc-wrapper .right-border,.toc-wrapper .bottom-left,.toc-wrapper .bottom-right{color:var(--toc-frame);opacity:.7;font-family:var(--font-mono)}.toc-wrapper::before{content:"┌─";position:absolute;left:0;top:0}.toc-wrapper::after{content:"─┐";position:absolute;right:0;top:0}.toc-wrapper .left-border,.toc-wrapper .right-border{position:absolute;top:1.2em;bottom:1.2em}.toc-wrapper .left-border{left:0}.toc-wrapper .right-border{right:0}.toc-wrapper .bottom-left,.toc-wrapper .bottom-right{position:absolute;bottom:0}.toc-wrapper .bottom-left{left:0}.toc-wrapper .bottom-right{right:0}.toc-header{font-weight:700;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--toc-frame);opacity:.7;font-family:var(--font-body)}.toc-content{font-size:var(--fs-small);font-family:var(--font-body)}.toc-content ul{list-style:none;padding-left:1rem;margin:0}.toc-content li{margin:.3rem 0}.toc-content a{color:var(--toc-content-color);opacity:.8;transition:all .2s ease}.toc-content a:hover{opacity:1;color:var(--toc-hover-text);background-color:var(--toc-hover-bg);padding:.1rem .3rem;border-radius:.2rem}li img.badge,aside img.badge{image-rendering:pixelated;width:44px!important;height:15.5px!important;vertical-align:middle}img.badge{image-rendering:pixelated;width:88px!important;height:31px!important;margin:0;border-radius:0;box-shadow:none}img.badge:hover{opacity:.75}div.badgebox a{width:88px!important;height:31px!important}div.badgebox{margin:.5em 0;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:4px;max-width:364px}.observablehq:not(:first-of-type){display:none}.helptext{color:var(--helptext);font-size:var(--fs-meta)}.errorlist{color:#eba613;font-size:var(--fs-meta)}.post-body,.page-body{max-width:var(--content-width)}.post-body content,.page-body content{display:block;font-size:1.0625rem;line-height:var(--lh-body)}.post-tags{list-style:none;margin:.9rem 0 0;padding:0;font-family:var(--font-mono);font-size:var(--fs-meta);line-height:1.8}.post-tags a{color:var(--muted);text-decoration:none}.post-tags a:hover{color:var(--heading);text-decoration:underline;text-underline-offset:.2em}.post-tldr{font-size:1.125rem;color:var(--muted);margin:0 0 2rem}.list-intro{margin-bottom:1.5rem}.list-meta,.list-empty{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);letter-spacing:.04em;margin:0 0 1.75rem}.list-meta a{color:var(--muted)}.list-meta a:hover{color:var(--heading)}.year-label{font-family:var(--font-mono);font-size:var(--fs-display);font-weight:600;color:var(--heading);font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.1;margin:1.75rem 0 .35rem}.post-row{padding:.25rem 0}.tag-cloud{font-family:var(--font-mono);font-size:var(--fs-meta);line-height:2}.tag-cloud a{color:var(--muted);text-decoration:none;margin-right:.9rem}.tag-cloud a:hover{color:var(--heading);text-decoration:underline;text-underline-offset:.2em}.tag-cloud-more{display:inline}.tag-cloud-more summary{display:inline;cursor:pointer;color:var(--muted);list-style:none}.tag-cloud-more summary::-webkit-details-marker{display:none}.tag-cloud-more summary:hover{color:var(--heading)}.tag-cloud-more[open] summary{display:none}.tag-cloud-rest{display:inline}.home-hero{margin-bottom:0}.home-kicker{font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:.06em;color:var(--muted);margin:0 0 .6rem}.home-lede{font-family:var(--font-body);font-size:var(--fs-display);font-weight:700;line-height:1.6;color:var(--heading);max-width:var(--lede-width);margin:0}.home-lede a{text-decoration-color:var(--accent)}.home-lede a:hover{color:var(--accent)}.lede-age{font-family:var(--font-mono);font-size:.8125rem;font-weight:400;color:var(--accent);margin-left:.1em}.home-intro{max-width:var(--lede-width);margin-top:1.5rem;font-size:1.125rem;color:var(--text)}.home-intro p{margin:0}.home-section+.home-section{margin-top:2.25rem}.home-row{padding:.25rem 0}.row-title{font-family:var(--font-body);font-size:1.25rem;font-weight:500;line-height:1.5;color:var(--heading);text-decoration:none}.row-title:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.moment-type{color:var(--muted)}.moment-link{text-decoration-color:var(--accent)}.more-link{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);text-decoration:none}.more-link:hover{color:var(--heading)}.notfound{margin-top:2rem;overflow-x:auto}.notfound-ascii{margin:0;font-family:var(--font-mono);font-size:.8rem;line-height:1.16;color:var(--muted-strong);white-space:pre}.notfound-line{margin-top:1.5rem;color:var(--muted)}footer{margin-top:4rem;text-align:left;padding-top:1.25rem;border-top:1px dashed var(--rule);font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted)}.footer-line{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0}.footer-links{display:flex;flex-wrap:wrap;gap:0 1.25rem}.footer-links a{color:var(--muted);text-decoration:none;transition:color .18s ease}.footer-links a:hover{color:var(--heading)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.dark-mode-toggle,#dark-mode-toggle{background:0 0!important;border:none!important;cursor:pointer;margin-left:1.1rem;padding:.25em;font-size:16px;color:var(--muted);line-height:0;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease,opacity .2s ease}.dark-mode-toggle:hover,#dark-mode-toggle:hover{opacity:.85;transform:scale(1.08)}.theme-icon{--size:1.15em;width:var(--size);height:var(--size);position:relative;display:inline-block;flex-shrink:0}.theme-icon::before{content:"";position:absolute;inset:0;border-radius:50%;background:currentColor;box-shadow:.22em 0 0 -.12em var(--bg);transition:opacity .25s ease,transform .25s ease}.theme-icon::after{content:"";position:absolute;inset:0;border-radius:50%;background:currentColor;box-shadow:-1.4em 0 0 -.75em currentColor,1.4em 0 0 -.75em currentColor,0 -1.4em 0 -.75em currentColor,0 1.4em 0 -.75em currentColor,-1em -1em 0 -.75em currentColor,1em -1em 0 -.75em currentColor,-1em 1em 0 -.75em currentColor,1em 1em 0 -.75em currentColor;opacity:0;transition:opacity .25s ease,transform .25s ease}body.theme-dark .theme-icon::before{opacity:0;transform:scale(.8)}body.theme-dark .theme-icon::after{opacity:1}@media(prefers-color-scheme:dark){body:not(.force-light):not(.force-dark){--bg:#171513;--dot:#26221e;--surface:#201d19;--text:#d4ccc1;--heading:#efe8de;--link:#d4ccc1;--muted:#9a9086;--muted-strong:#7e756c;--rule:#3a342e;--border:#302b26;--accent:#e0634b;--table-border:#3a342e;--code-bg:#201d19;--code-color:#d4ccc1;--pre-code-color:#d4ccc1;--mark-bg:#5c4a2e;--mark-text:#efe8de;--toc-frame:#9a9086;--toc-content-color:#9a9086;--toc-hover-bg:#4a3f31;--toc-hover-text:#efe8de;--nav-border:#302b26;--nav-label-color:#9a9086;--nav-title-color:#d4ccc1;--nav-title-hover:#efe8de;--helptext:#9a9086;--form-bg:#201d19;--form-text:#d4ccc1;--heatmap-1:#3a342e;--heatmap-2:#5c554c;--heatmap-3:#83796f;--heatmap-4:#d4ccc1}}body.theme-dark,body.force-dark{--bg:#171513;--dot:#26221e;--surface:#201d19;--text:#d4ccc1;--heading:#efe8de;--link:#d4ccc1;--muted:#9a9086;--muted-strong:#7e756c;--rule:#3a342e;--border:#302b26;--accent:#e0634b;--table-border:#3a342e;--code-bg:#201d19;--code-color:#d4ccc1;--pre-code-color:#d4ccc1;--mark-bg:#5c4a2e;--mark-text:#efe8de;--toc-frame:#9a9086;--toc-content-color:#9a9086;--toc-hover-bg:#4a3f31;--toc-hover-text:#efe8de;--nav-border:#302b26;--nav-label-color:#9a9086;--nav-title-color:#d4ccc1;--nav-title-hover:#efe8de;--helptext:#9a9086;--form-bg:#201d19;--form-text:#d4ccc1;--heatmap-1:#3a342e;--heatmap-2:#5c554c;--heatmap-3:#83796f;--heatmap-4:#d4ccc1}body.force-dark{filter:none!important;-webkit-filter:none!important}body.force-dark *{filter:none!important;-webkit-filter:none!important}a.site-logo-link[href]:hover,a.site-logo-link[href]:focus-visible{color:inherit;background-color:initial}html[data-darkreader-scheme=dark],html[data-darkreader-mode=dynamic]{filter:none!important;-webkit-filter:none!important}@media screen and (max-width:720px){:root{--rail:48px;--rail-gap:16px}body{background-size:20px 20px}.rail-row>.rail{text-align:left}.datestamp{flex-direction:row;align-items:baseline;gap:.5rem}.datestamp-md{order:0}.datestamp-year{order:1}.datestamp-dow{order:2}.datestamp-dow::before{content:"· ";color:var(--muted-strong)}.home-hero{display:block}.home-hero .rail{margin-bottom:.9rem}.home-lede{font-size:1.75rem;line-height:1.55}.home-intro{font-size:1.0625rem}.row-title{font-size:1.125rem}.nav-links{order:2;flex-basis:100%;margin-left:0;margin-top:.2rem}#dark-mode-toggle{order:1;margin-left:auto}}@media screen and (max-width:600px){body{padding:20px 0}table{display:block;overflow-x:auto}th,td{padding:8px 10px}h1{font-size:1.75rem}.datestamp-md{font-size:2rem}}@media screen and (max-width:480px){.footer-line{font-size:var(--fs-meta)}.blog-heatmap{max-width:100%;box-sizing:border-box;padding-left:0;padding-right:0}.blog-heatmap-header{padding-right:0}.blog-heatmap-streak{position:static;flex-basis:100%;margin-top:.5rem;order:10}.blog-heatmap-legend{flex-shrink:0}.blog-heatmap-year{flex:0 0 2rem;font-size:var(--fs-meta)}.blog-heatmap-stripes{gap:1px;min-width:0}.blog-heatmap-cell{min-width:2px;max-width:8px;height:12px}.blog-heatmap-week-labels{padding-left:2.5rem;font-size:var(--fs-meta)}}.plate-list{list-style:none;margin:1.25rem 0;padding:0;display:grid;grid-template-columns:max-content 1fr;column-gap:1.25rem;row-gap:.25rem;font-size:var(--fs-small);line-height:var(--lh-meta,1.45)}.plate-list li{display:contents}.plate-list .plate-tag{font-family:var(--font-mono);font-weight:600;letter-spacing:.04em;color:var(--heading);background:0 0;padding:0;font-variant-numeric:tabular-nums;white-space:nowrap}.plate-list .plate-meaning{color:var(--muted);min-width:0}.plate-list .plate-meaning:empty{color:var(--border)}.plate-list .plate-meaning:empty::before{content:"·"}@media(max-width:600px){.plate-list{display:block}.plate-list li{display:block;margin-bottom:.45rem}.plate-list .plate-meaning{display:block;padding-left:.6rem}.plate-list .plate-meaning:empty{display:none}}body.theme-dark .ann,body.force-dark .ann{color-scheme:dark}.ann-note{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ann-demo-row{margin:1.5rem 0;padding:2.75rem 0;line-height:1.9}.ann-demo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4.5rem 3rem;place-items:center;margin:1.5rem 0;padding:3.5rem 0}@media(max-width:520px){.ann-demo-grid{grid-template-columns:repeat(2,1fr);gap:4rem 2rem}}