:root{--color-dark:hsl(0,0%,20%);--color-mid:hsl(0,0%,40%);--color-light:hsl(180,100%,100%);--color-primary:hsl(352,67%,53%);--step--2:clamp(0.6944rem,0.6913rem + 0.0157vi,0.7035rem);--step--1:clamp(0.8333rem,0.797rem + 0.1816vi,0.9377rem);--step-0:clamp(1rem,0.913rem + 0.4348vi,1.25rem);--step-1:clamp(1.2rem,1.0378rem + 0.8109vi,1.6663rem);--step-2:clamp(1.44rem,1.1683rem + 1.3585vi,2.2211rem);--step-3:clamp(1.728rem,1.2992rem + 2.1439vi,2.9607rem);--step-4:clamp(2.0736rem,1.4221rem + 3.2575vi,3.9467rem);--step-5:clamp(2.4883rem,1.5239rem + 4.8219vi,5.2609rem);--font-serif:"Source Serif VF","Source Serif VF-Fallback",Georgia,serif;--font-sans:-apple-system,BlinkMacSystemFont,"Segou UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe U Symbol";--font-mono:ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Monospace","Source Code Pro","Fira Mono","Droid Sans Mono","Courier New",monospace;--font-serif-heading:"Source Serif VF","Source Serif VF-Fallback-Bold",Georgia,serif;--font-w-bold:800;--max-width:36rem;--left-edge:10vw}@media (min-width:64rem){:root{--left-edge:10vw}}@font-face{font-family:"Source Serif VF";font-weight:200 900;font-style:normal;font-stretch:normal;font-display:optional;src:url("/fonts/SourceSerif4Variable-Roman.ttf.woff2") format("woff2")}@font-face{font-family:"Source Serif VF";font-weight:200 900;font-style:italic;font-stretch:normal;font-display:optional;src:url("/fonts/SourceSerif4Variable-Italic.ttf.woff2") format("woff2")}@font-face{font-family:"Source Serif VF-Fallback";size-adjust:105.5%;src:local("Georgia")}@font-face{font-family:"Source Serif VF-Fallback-Bold";size-adjust:97.5%;src:local("Georgia")}*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role="list"],ol[role="list"]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture,video{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;background-color:hsl(40,36%,95%)}body{font-family:var(--font-sans);font-size:var(--step-0,16px);line-height:1.5;color:hsl(0,0%,20%);background-color:hsl(40,36%,95%)}h1,h2,h3,h4{font-weight:800;line-height:1.1}h1{font-size:var(--step-4)}h2{font-size:var(--step-3)}h3{font-size:var(--step-2)}h4{font-size:var(--step-1)}ul,ol{padding-inline-start:1em}.flow>* + *{margin-block-start:var(--flow-space,1em)}:is(h1,h2,h3,h4,blockquote){--flow-space:1.5em}:is(h1,h2,h3,h4) + *{--flow-space:0.5em}blockquote{max-width:50ch;border-left:0.5rem solid var(--color-primary);padding-left:1rem;font-style:italic}a{color:currentColor;text-decoration-color:var(--color-primary);text-decoration-thickness:0.2ex;text-underline-offset:0.2ex;transition:color 200ms ease-in-out}a:hover,a:focus{color:var(--color-primary)}::selection{color:var(--color-light);background-color:var(--color-primary)}code{font-family:var(--font-mono);border-radius:0.25rem;font-size:0.75em;padding:0.25rem}pre code{font-size:var(--step--1);border-radius:1rem}figcaption{font-size:var(--step-0);text-align:center;font-style:italic;margin-top:var(--step--2)}.icon{fill:var(--color-dark)}.icon:hover{fill:var(--color-primary)}.outer-wrapper{box-shadow:0 0 4px hsl(40,36%,90%);border-radius:0.5rem;clear:both;margin:0.5rem;padding:1rem;background-color:var(--color-light);min-height:100vh;@media (min-width:40rem){margin:1rem}}.edges{padding-inline:1rem}@media (min-width:40rem){.outer-wrapper{padding-block:2rem}.edges{padding-inline:2rem}}.nav{display:flex;flex-direction:column;margin-top:0.5rem;margin-inline:auto;max-width:75rem;gap:0.5rem;align-items:center;& ul{list-style:none;margin:0;padding-left:0;display:flex;& a{font-family:var(--font-serif);font-size:var(--step-1);text-decoration:none;padding-right:var(--step--1);&.active{font-weight:var(--font-w-bold);font-style:italic}}}}.logo-container{color:inherit;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:transform 200ms ease-in-out}.logo-container:hover{transform:scale(1.05)}.logo-circle{width:2.5rem;height:2.5rem;border-radius:50%;background-color:var(--color-dark);display:flex;align-items:center;justify-content:center;transition:background-color 200ms ease-in-out}.logo-container:hover .logo-circle{background-color:var(--color-primary)}.logo-initials{color:var(--color-light);font-weight:var(--font-w-bold);font-size:var(--step-0);font-family:var(--font-serif-heading);letter-spacing:-0.05em}@media (min-width:31.25rem){.nav{flex-direction:row;justify-content:space-between;gap:1rem}.logo-container{margin-top:0;margin-left:0}}.intro{max-width:var(--max-width);margin:2rem 1rem;z-index:2;position:relative;margin-left:var(--left-edge);margin-right:var(--left-edge)}.intro h1{font-weight:100;font-size:var(--step-2)}.intro h2{font-family:var(--font-serif-heading);font-size:var(--step-3);margin-top:0}.intro p{font-size:var(--step-0)}.intro a{font-weight:800}.home-section{max-width:75rem;margin-inline:auto;& h2{display:inline-block;color:var(--color-light);padding:0.5rem 1rem;font-family:var(--font-serif);font-weight:200;font-size:var(--step-1);padding-left:calc(1rem + 15vw);margin-left:calc((1rem + 15vw) * -1)}& .post-list{list-style:none;padding-left:0;max-width:var(--max-width)}& .post-item{margin-bottom:2.5rem}& .post-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:0.5rem}& .post-date{font-family:var(--font-mono);font-size:var(--step--2);color:var(--color-mid);white-space:nowrap;flex-shrink:0}& .post-title{font-size:var(--step-1);font-family:var(--font-serif-heading);font-weight:500;margin:0;line-height:1.2;display:inline-block}& .post-summary{font-size:var(--step--1);color:var(--color-dark);line-height:1.6;margin:0;display:inline-block}& a{text-decoration:none;display:block}& a:hover{color:inherit}& a:hover .post-title{color:var(--color-primary)}& a:hover .post-summary{color:var(--color-dark)}@media (max-width:37.5rem){& .post-header{flex-direction:column;gap:0.25rem}& .post-summary{margin-left:0}}}footer{text-align:center;& p{font-size:var(--step--1);color:var(--color-mid)}& ul{list-style:none;padding:0;display:flex;justify-content:center;gap:1rem}}.intro .wa{max-width:10vw;position:absolute;top:0;right:-1rem;z-index:1;@media (min-width:50rem){right:0;left:100%}@media (min-width:68.75rem){max-width:30vw;}}.wa{display:block;margin:0}.wa.hr,footer .wa{width:50px;margin:2rem auto}article{margin-inline:auto;padding:3rem 0;font-family:var(--font-serif);font-size:var(--step-1);>*{max-width:75rem;margin-left:auto;margin-right:auto}@media (min-width:40rem){padding:6rem 0}& h1,h2,h3,h4,h5{font-family:var(--font-serif-heading)}& h1{text-align:center;margin-bottom:4rem;font-weight:600;line-height:1.5}& .post-date{display:block;color:var(--color-mid);font-family:var(--font-sans);font-size:var(--step--1);letter-spacing:0.025em}& .post-meta{margin-top:3rem;padding-top:2rem;border-top:1px solid hsl(0,0%,90%);text-align:left;& .tags{font-family:var(--font-sans);font-size:var(--step--1);color:var(--color-mid);& a{color:var(--color-mid);text-decoration-thickness:0.1ex;text-decoration-color:var(--color-mid);transition:all 200ms ease-in-out;&:hover,&:focus{color:var(--color-primary);text-decoration-color:var(--color-primary)}}}}}.archive{list-style:none;padding:0;& li{margin-bottom:1rem;@media (min-width:37.5rem){display:grid;gap:1rem;grid-template-columns:1fr 5fr}}& time{font-family:var(--font-mono);font-size:var(--step--1);padding-top:0.25rem;text-align:right;color:var(--color-mid)}}.tag-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1rem;& .tag-item{font-family:var(--font-sans);font-size:var(--step-0)}& .tag-count{color:var(--color-mid);font-size:var(--step--1)}}.highlight{overflow-x:scroll}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.section-heading{margin-top:2rem;font-size:1rem;max-width:75rem;margin-inline:auto}.container{--container-padding:1rem;max-width:75rem;margin-inline:auto;padding-inline:var(--container-padding);margin-top:3rem}@media (min-width:40rem){.container{--container-padding:1.5rem;margin-top:4rem}}@media (min-width:64rem){.container{--container-padding:2rem;margin-top:5rem}}.container>.blog-posts{margin-left:calc(-1 * var(--container-padding))}.blog-title{font-size:clamp(1.75rem,2.5vw + 1rem,2rem);font-weight:700;color:var(--color-dark);margin-bottom:2rem}.blog-posts{display:flex;flex-direction:column;gap:2rem;padding-left:0}.blog-posts .post-item{display:grid;grid-template-columns:1fr;gap:0;align-items:start}@media (min-width:40rem){.blog-posts .post-item{grid-template-columns:8rem 1fr;gap:2rem}.blog-posts .post-date{font-size:var(--step-0);text-align:left;margin-bottom:0;padding-top:0.125rem}}.blog-posts .post-date{color:var(--color-mid);font-size:var(--step--1);margin-bottom:0.25rem;line-height:1.2}.blog-posts .post-content{flex:1}.blog-posts .post-title{font-size:clamp(1.25rem,2vw + 0.75rem,1.5rem);font-weight:600;margin:0;line-height:1.2;font-family:var(--font-serif-heading);transition:color 150ms cubic-bezier(0.4,0,0.2,1)}.blog-posts .post-title a{color:inherit;text-decoration:none}.blog-posts .post-description{color:var(--color-dark);opacity:0.9;line-height:1.625;font-size:var(--step-0);margin-top:0.5rem;max-width:40rem}.blog-posts .post-item:has(.post-title a:hover) .post-title,.blog-posts .post-item:has(.post-title a:focus-visible) .post-title{color:var(--color-primary)}@supports not (selector(:has(*))){.blog-posts .post-title a:hover,.blog-posts .post-title a:focus-visible{color:var(--color-primary)}}.blog-posts a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}.letter-swap{--dur:700ms;--ease:cubic-bezier(0.68,-0.55,0.265,1.55);display:inline-flex;position:relative;overflow:hidden;cursor:pointer;font-size:2rem;font-weight:700;user-select:none;&:hover{color:var(--color-mid)}}.letter-wrapper{position:relative;display:inline-flex;overflow:hidden}.letter,.letter-secondary{position:relative;display:inline-block;white-space:pre;transform:translateY(0);transition:transform var(--dur) var(--ease);transition-delay:var(--d,0ms)}.letter-secondary{position:absolute;left:0;top:-100%;color:var(--color-mid)}.letter-swap.animating .letter{transform:translateY(100%)}.letter-swap.animating .letter-secondary{transform:translateY(100%)}