*,:after,:before{box-sizing:border-box;background-color:inherit;color:inherit;margin:0;padding:0}body{font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5;font-size:1rem;color:var(--text-color);background-color:var(--background-color)}a{color:var(--link-color);-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;text-decoration:underline}pre{padding:.5rem}.post p,pre{margin:.5rem 0}.post h1,.post h2,.post h3,.post h4{margin:1rem 0}.photo h2:first-child,.post h2:first-child,.project h2:first-child{margin-top:0}.meta{margin:2rem 0}code,pre{background:var(--code-background)}code{padding:.1rem}pre code{border:none}pre{padding:1rem;overflow-x:auto}img{max-width:100%}hr{background:var(--text-color);height:1px;border:0}section{padding:1rem}blockquote{font-style:italic;border-left:5px solid var(--blockquote-border);padding-left:1rem}h1,h2,h3,h4,h5{line-height:1;margin:1rem 0;font-weight:600}section h1:first-child{margin-top:0}b,strong{font-weight:700}.photos ul{list-style:none}.photos li{margin-bottom:1.5rem}.photo picture,.project picture{margin-bottom:.5rem}.posts ul{list-style:none}.posts li{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.posts li a,.posts li div,.projects li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}.posts li time,.projects li time{padding-left:1rem;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}main{max-width:60rem;margin:2rem auto;padding:1rem}@media screen and (max-width:600px){#top-bar{display:none}}@media screen and (max-width:45rem){.photos ul{margin-top:.5rem}}section{display:flex;flex-direction:column}figcaption{font-size:smaller}header nav{max-width:60rem;margin:0 auto}footer{bottom:0;left:0;width:100%;text-align:left;padding-top:1rem;padding-bottom:1rem}footer form{width:100%;max-width:60rem;margin:0 auto}.subscribe-form{display:flex;flex-wrap:wrap;gap:.5rem}.subscribe-form input[type=email]{flex:1 1 auto;min-width:10rem}.subscribe-form button{flex:1 1 auto;min-width:5rem}@media screen and (max-width:600px){.subscribe-form{flex-direction:column}.subscribe-form button,.subscribe-form input[type=email]{width:100%;margin-right:0}}.subscribe-form input[type=email]{padding:.35rem;border:1px solid var(--border-color);border-radius:4px;font-size:.8rem;flex-grow:1;height:1.8rem}@media screen and (max-width:767px){.subscribe-button{display:none}}@media screen and (min-width:768px){footer form{width:50%;margin:0 auto}}