:root{--bg-primary:#fcfcfc;--text-primary:#262626;--border:#dadada;color-scheme:light}[data-theme=dark]{--bg-primary:#0d1117;--text-primary:#f2f2f2;--border:#32353a;color-scheme:dark}*{box-sizing:border-box}html{font-size:96%}body{background-color:#fcfcfc;background-color:var(--bg-primary);color:#262626;color:var(--text-primary);font-family:Satoshi,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0}.theme-sweep::view-transition-group(root){animation-duration:.64s}.theme-sweep::view-transition-new(root),.theme-sweep::view-transition-old(root){animation:none;mix-blend-mode:normal}.theme-sweep::view-transition-image-pair(root){isolation:auto}.theme-sweep::view-transition-old(root){z-index:0}.theme-sweep::view-transition-new(root){animation:theme-sweep .64s cubic-bezier(.4,.05,.25,1) forwards;-webkit-mask-image:linear-gradient(to bottom left,#000 46%,#00000080 50%,#0000 54%);mask-image:linear-gradient(to bottom left,#000 46%,#00000080 50%,#0000 54%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:300% 300%;mask-size:300% 300%;z-index:1}@keyframes theme-sweep{0%{-webkit-mask-position:0 100%;mask-position:0 100%}to{-webkit-mask-position:100% 0;mask-position:100% 0}}html.theme-transition,html.theme-transition *,html.theme-transition :after,html.theme-transition :before{transition:color .5s ease,background-color .5s ease,border-color .5s ease,outline-color .5s ease,fill .5s ease,stroke .5s ease,-webkit-text-decoration-color .5s ease!important;transition:color .5s ease,background-color .5s ease,border-color .5s ease,text-decoration-color .5s ease,outline-color .5s ease,fill .5s ease,stroke .5s ease!important;transition:color .5s ease,background-color .5s ease,border-color .5s ease,text-decoration-color .5s ease,outline-color .5s ease,fill .5s ease,stroke .5s ease,-webkit-text-decoration-color .5s ease!important}.page-turn::view-transition-group(*){animation-duration:.65s;animation-timing-function:cubic-bezier(.22,1,.36,1)}.page-turn::view-transition-old(root){animation:page-turn-out .25s ease both}.page-turn::view-transition-new(root){animation:page-turn-in .55s cubic-bezier(.22,1,.36,1) .12s both}@keyframes page-turn-out{to{opacity:0}}@keyframes page-turn-in{0%{opacity:0;transform:translateY(10px)}}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body,html{margin:0;overflow-x:hidden;overflow-y:scroll;padding:0;width:100%}.app{min-height:100vh}.app,.footer{background-color:var(--bg-primary)}.footer{color:var(--text-primary);font-size:.8rem;padding:4vh 0 5vh;text-align:center}.work-page{display:flex;flex-direction:column;min-height:100vh}.work-page>.work{flex:1 1}.navbar{padding:3vh 4vw 0 0;position:fixed;right:0;top:0;z-index:35}.theme-toggle{align-items:center;background:none;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-size:1.1rem;line-height:1;padding:0}.theme-toggle:hover{opacity:.6}.theme-toggle-icon{transition:transform .5s cubic-bezier(.4,0,.2,1)}[data-theme=dark] .theme-toggle-icon{transform:rotate(180deg)}.container{align-items:center;background-color:var(--bg-primary);display:flex;justify-content:center;min-height:100vh;padding:8vh 8vw}.content{display:flex;flex-direction:column;margin-bottom:calc(4.8125rem + 4vh);max-width:640px;width:100%}h1{font-size:2.6rem;font-weight:400;margin:0 0 1vh}h1,p{color:var(--text-primary)}p{font-size:1.05rem;line-height:1.7}.build-list,p{margin:0 0 2vh}.build-list{list-style:disc outside;padding-left:1.3em}.build-list li{color:var(--text-primary);font-size:1.05rem;line-height:1.7;margin-bottom:.6vh}.build-list li:last-child{margin-bottom:0}.inline-link,.text-link{background:linear-gradient(currentColor,currentColor) 0 100% /0 1px no-repeat,linear-gradient(color-mix(in srgb,currentColor 28%,#0000),color-mix(in srgb,currentColor 28%,#0000)) 0 100% /100% 1px no-repeat;color:var(--text-primary);padding-bottom:2px;text-decoration:none;transition:background-size .35s ease}.inline-link:hover,.text-link:hover{background-size:100% 1px,100% 1px;cursor:pointer}@media (prefers-reduced-motion:reduce){.inline-link,.text-link{transition:none}}.last-listened p{font-style:italic;margin:2vh 0}.link-row{align-items:center;display:flex;gap:.6em;margin-top:2vh}.text-link{font-size:1.05rem}.link-sep{color:var(--text-primary)}.last-updated-row{margin:0 0 3vh}.last-updated{color:var(--text-primary);font-size:.75rem;opacity:.45;text-transform:lowercase}@media (max-width:768px){.container{padding:6vh 8vw}.content{margin-bottom:0}}.work{align-items:flex-start;background-color:var(--bg-primary);display:flex;justify-content:center;padding:14vh 8vw 6vh}.work-col{max-width:640px;width:100%}.sr-only{clip:rect(0 0 0 0);border:0;margin:-1px;overflow:hidden;padding:0;white-space:nowrap;width:1px}.sr-only,.work-rule{height:1px;position:absolute}.work-rule{background:var(--border);bottom:0;left:0;right:0;transform-origin:left center}.rows{list-style:none;margin:0;padding:0}.row-head{align-items:baseline;align-items:last baseline;background:none;border:0;color:var(--text-primary);cursor:pointer;display:flex;font:inherit;gap:.6em;margin:0;padding:.7vh 0;position:relative;text-align:left;text-decoration:none;width:100%}.row-head:focus-visible{outline:1px solid var(--text-primary);outline-offset:3px}.row-title{flex:0 1 auto;font-size:1rem;max-width:70%}.row-head--static{cursor:default}.row-title-link{color:var(--text-primary);text-decoration:none}.row-title-link:after{content:"";inset:0;position:absolute}.row-title-link:focus-visible{outline:none}.row-title-link:focus-visible:after{outline:1px solid var(--text-primary);outline-offset:3px}.row-head--static .row-period{position:relative;z-index:1}.row-title-tail{white-space:nowrap}.row-leader{border-bottom:1px dotted;flex:1 1 1.5em;min-width:1.5em;opacity:.35;pointer-events:none;position:relative;top:-.28em;transform-origin:left center}.row-period{flex:none;font-size:.85rem;font-style:italic;white-space:nowrap}.swap--stack{position:relative}.swap--stack,.swap-item{display:inline-block}.row-body{margin:.2vh 0 1.4vh;padding:.2vh 0 .4vh}.row-bullets{list-style:decimal-leading-zero outside;margin:0;max-width:62ch;padding-left:2.1em}.row-bullets li{color:color-mix(in srgb,var(--text-primary) 68%,var(--bg-primary));font-size:.95rem;line-height:1.7;margin-bottom:1.1vh}.row-bullets li::marker{font-feature-settings:"tnum";color:color-mix(in srgb,var(--text-primary) 45%,var(--bg-primary));font-size:.78em;font-variant-numeric:tabular-nums}.row-lead,.row-stat{color:var(--text-primary);font-weight:500}.row-tech{color:color-mix(in srgb,var(--text-primary) 64%,var(--bg-primary));font-size:.82rem;font-style:italic;list-style:none;margin:1.8vh 0 0;padding:0}.row-tech li{display:inline}.row-tech li:not(:last-child):after{content:" · "}.row-group-roles{--role-indent:1.4em;padding-left:var(--role-indent)}.row{--first-line:calc(0.7vh + 0.76em)}.row-group-roles>.row{position:relative}.row-group-roles>.row:before{background:color-mix(in srgb,var(--text-primary) 45%,var(--bg-primary));border-radius:50%;content:"";height:5px;left:calc(.4em - var(--role-indent) - 2.5px);position:absolute;top:calc(var(--first-line) - 2.5px);width:5px}.row-group-roles>.row:not(:last-child):after{background:var(--border);bottom:calc(6px - var(--first-line));content:"";left:calc(.4em - var(--role-indent) - .5px);position:absolute;top:calc(var(--first-line) + 6px);width:1px}.row--incoming>.row-head{color:color-mix(in srgb,var(--text-primary) 55%,var(--bg-primary))}.row-group-roles>.row--incoming:before{background:var(--bg-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text-primary) 50%,var(--bg-primary))}.row-group-roles>.row--incoming:after{background:repeating-linear-gradient(to bottom,var(--border) 0 3px,#0000 3px 6px)}.row-subline{color:color-mix(in srgb,var(--text-primary) 64%,var(--bg-primary));font-size:.85rem;font-style:italic;line-height:1.45;margin:-.4vh 0 .4vh}.row-body--static{margin-top:.8vh}.row--current .row-title:before{--star:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.9 7.2 4.8 11.1 12 12-7.2.9-11.1 4.8-12 12-.9-7.2-4.8-11.1-12-12 7.2-.9 11.1-4.8 12-12Z'/%3E%3C/svg%3E");--star-size:0.62em;--star-gap:0.4em;animation:sparkle 4s ease-in-out infinite;background-color:currentColor;content:"";display:inline-block;height:var(--star-size);margin:0 var(--star-gap) 0 calc((var(--star-size) + var(--star-gap))*-1);-webkit-mask:var(--star) center /contain no-repeat;mask:var(--star) center /contain no-repeat;vertical-align:calc(.35em - var(--star-size)/2);width:var(--star-size)}@keyframes sparkle{0%,70%,to{opacity:.75;transform:rotate(0) scale(1)}80%{opacity:1;transform:rotate(90deg) scale(1.25)}90%{opacity:.75;transform:rotate(180deg) scale(1)}}@media (max-width:768px){.row--current .row-title:before{--star-size:0.8em;--star-gap:0.36em}}@media (prefers-reduced-motion:reduce){.row--current .row-title:before{animation:none}}.work-col[data-layout=tabs]{align-self:stretch;display:flex;flex-direction:column}.work-col[data-layout=tabs]>.work-panel{flex:1 1}.work-nav-row{margin-bottom:1.4vh;padding-bottom:1vh;position:relative}.work-nav{display:flex;flex-wrap:wrap;gap:.4vh 1.5em}.work-nav-tab{background:none;border:0;color:var(--text-primary);cursor:pointer;font:inherit;font-size:1.25rem;font-style:italic;opacity:.38;padding:0;position:relative;transition:opacity .2s ease}.work-nav-tab:hover,.work-nav-tab[aria-selected=true]{opacity:1}.work-nav-tab:focus-visible{outline:1px solid var(--text-primary);outline-offset:4px}.work-nav-label{isolation:isolate;position:relative}.work-nav-marker{background:var(--text-primary);bottom:calc(-1vh - 1px);height:1px;left:0;position:absolute;right:0}.work-nav--vertical{align-items:stretch;flex-direction:column;gap:1.2vh}.work-nav--vertical .work-nav-tab{display:flex;font-size:1.15rem;justify-content:flex-end;text-align:right;width:100%}.work-nav--vertical .work-nav-marker{bottom:.25em;height:auto;left:auto;right:-.9em;top:.25em;width:1.5px}.work-col[data-layout=side]{max-width:880px}.work-side{--side-gap:3.5rem;grid-gap:var(--side-gap);align-items:start;display:grid;gap:var(--side-gap);grid-template-columns:180px minmax(0,640px)}.work-side-nav-inner{padding-top:1.6vh;position:-webkit-sticky;position:sticky;top:12vh}.work-side-main{border-top:1px solid var(--border);padding-top:1.6vh}@media (min-width:1000px){.work-col[data-layout=side]{max-width:640px}.work-side{display:block;position:relative}.work-side-nav{bottom:0;position:absolute;right:calc(100% + var(--side-gap));top:0;width:190px}}.work-end-hint{color:color-mix(in srgb,var(--text-primary) 50%,var(--bg-primary));font-size:.8rem;font-style:italic;margin:2vh 0 0;text-align:right;transition:opacity .25s ease}.work-end-hint.is-hidden{opacity:0}@media (max-width:900px){.work-nav-row{padding-bottom:0}.work-nav{flex-wrap:nowrap;gap:1.2em;overflow-x:auto;padding-bottom:1vh;scrollbar-width:none}.work-nav::-webkit-scrollbar{display:none}.work-nav-tab{flex:none;font-size:1.1rem}.work-nav{position:relative;z-index:1}.work-nav-label{display:block}.work-nav-marker{bottom:-1vh}}.work-kind{color:color-mix(in srgb,var(--text-primary) 52%,var(--bg-primary));font-size:.7rem;letter-spacing:.14em;margin:2.8vh 0 .5vh}.work-kind:first-child{margin-top:0}.row--arrived>.row-head{animation:row-arrived 1.8s ease-out;border-radius:6px}@keyframes row-arrived{0%{background-color:color-mix(in srgb,var(--text-primary) 8%,#0000);box-shadow:0 0 0 .45em color-mix(in srgb,var(--text-primary) 8%,#0000)}to{background-color:initial;box-shadow:0 0 0 .45em #0000}}@media (prefers-reduced-motion:reduce){.row--arrived>.row-head{animation:none}}.row-post-name{display:inline-block}.row-title-post .row-link-line{background-size:0 1px,100% 1px}.row-title-post:hover .row-link-line{background-size:100% 1px,100% 1px}.row-post-arrow{display:inline-block;margin-left:.4em;opacity:.55;transition:opacity .2s ease,transform .2s ease}.row-title-post:hover .row-post-arrow{opacity:1;transform:translateX(2px)}@media (min-width:769px){.row--link .row-title{margin-bottom:-5px;margin-right:-4px;max-width:none;min-width:0;overflow:hidden;padding-bottom:5px;padding-right:4px;text-overflow:ellipsis;white-space:nowrap}}.row-external{fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;display:inline-block;height:.7em;margin-left:.35em;opacity:.55;transition:opacity .2s ease,transform .2s ease;vertical-align:0;width:.7em}.row-link-line{background:linear-gradient(currentColor,currentColor) 0 100% /0 1px no-repeat,linear-gradient(color-mix(in srgb,currentColor 28%,#0000),color-mix(in srgb,currentColor 28%,#0000)) 0 100% /calc(100% - 1.05em) 1px no-repeat;padding-bottom:2px;transition:background-size .35s ease}.is-external:hover .row-link-line{background-size:calc(100% - 1.05em) 1px,calc(100% - 1.05em) 1px}@media (prefers-reduced-motion:reduce){.row-link-line{transition:none}}.is-external:hover .row-external{opacity:1;transform:translate(1px,-1px)}@media (max-width:768px){.work{padding:6vh 8vw}.row-head{align-items:flex-start;flex-direction:column;gap:.15rem}.row-title{text-wrap:balance;max-width:none}.row-leader{display:none}}.post-page{background-color:var(--bg-primary);display:flex;flex-direction:column;min-height:100vh}.post-wrap{display:flex;flex:1 1;justify-content:center;padding:10vh 8vw 8vh}.post{max-width:640px;width:100%}.post-crumbs{align-items:baseline;display:flex;font-size:.9rem;gap:.5em;margin-bottom:9vh}.post-crumbs .text-link{font-size:inherit}.post-close,.post-crumb-sep{color:color-mix(in srgb,var(--text-primary) 55%,var(--bg-primary))}.post-close{background:none;border:0;cursor:pointer;font:inherit;font-size:1.3rem;line-height:1;margin-left:auto;padding:0 .3em;transition:color .2s ease}.post-close:focus-visible,.post-close:hover{color:var(--text-primary)}.post-close:focus-visible{outline:1px solid var(--text-primary);outline-offset:3px}.post-head{margin:0 0 6vh;text-align:center}.post-title{color:var(--text-primary);font-size:2.2rem;font-weight:400;line-height:1.2;margin:0 0 1.4vh}.post-title-name{display:inline-block}.post-meta{color:color-mix(in srgb,var(--text-primary) 64%,var(--bg-primary));font-size:.85rem;font-style:italic;margin:0}.post-body p{font-size:1.05rem;line-height:1.8;margin:0 0 2.6vh}.post-body ul{list-style:decimal-leading-zero outside;margin:0 0 2.6vh;padding-left:2.1em}.post-body li{color:var(--text-primary)}.post-body li::marker{font-feature-settings:"tnum";color:color-mix(in srgb,var(--text-primary) 45%,var(--bg-primary));font-size:.78em;font-variant-numeric:tabular-nums}.post-lead{font-weight:500}.post-sign{color:color-mix(in srgb,var(--text-primary) 64%,var(--bg-primary));font-style:italic;margin-top:5vh}@media (max-width:768px){.post-wrap{padding:8vh 8vw 6vh}.post-crumbs{margin-bottom:6vh}.post-title{font-size:1.8rem}}
/*# sourceMappingURL=main.deb43a0d.css.map*/