@layer astro.images{:where([data-astro-image]){height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}[data-astro-image-fit=fill]{object-fit:fill}[data-astro-image-fit=contain]{object-fit:contain}[data-astro-image-fit=cover]{object-fit:cover}[data-astro-image-fit=scale-down]{object-fit:scale-down}[data-astro-image-pos=top]{object-position:top}[data-astro-image-pos=bottom]{object-position:bottom}[data-astro-image-pos=left]{object-position:left}[data-astro-image-pos=right]{object-position:right}[data-astro-image-pos=center]{object-position:center}[data-astro-image-pos=top-bottom]{object-position:top bottom}[data-astro-image-pos=top-left]{object-position:top left}[data-astro-image-pos=top-right]{object-position:top right}[data-astro-image-pos=top-center]{object-position:top center}[data-astro-image-pos=bottom-top]{object-position:bottom top}[data-astro-image-pos=bottom-left]{object-position:bottom left}[data-astro-image-pos=bottom-right]{object-position:bottom right}[data-astro-image-pos=bottom-center]{object-position:bottom center}[data-astro-image-pos=left-top]{object-position:left top}[data-astro-image-pos=left-bottom]{object-position:left bottom}[data-astro-image-pos=left-right]{object-position:left right}[data-astro-image-pos=left-center]{object-position:left center}[data-astro-image-pos=right-top]{object-position:right top}[data-astro-image-pos=right-bottom]{object-position:right bottom}[data-astro-image-pos=right-left]{object-position:right left}[data-astro-image-pos=right-center]{object-position:right center}[data-astro-image-pos=center-top]{object-position:center top}[data-astro-image-pos=center-bottom]{object-position:center bottom}[data-astro-image-pos=center-left]{object-position:center left}[data-astro-image-pos=center-right]{object-position:center right}}*,:before,:after{box-sizing:border-box}body{margin:0}img,picture,video,canvas,svg,embed,object{max-width:100%;display:block}h1,h2,h3,h4,p,ul,ol,figure{margin:0}:root{color-scheme:dark;--color-bg:#000;--color-text:#ccc;--color-text-muted:#999;--color-heading:#fff;--color-link:#00cdcd;--color-link-bright:#0ff;--color-rule:#333;--color-inverse:#fff;--color-inverse-muted:#959595;--color-code-bg:#121212;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", "Liberation Mono", "Courier New", monospace;--font-body:var(--font-mono);--gutter:150px;--measure:720px}@media screen and (width<=1280px){:root{--gutter:100px}}@media screen and (width<=1024px){:root{--gutter:80px}}@media screen and (width<=768px){:root{--gutter:40px}}@media screen and (width<=540px){:root{--gutter:15px}}body{font-family:var(--font-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:clamp(16px,15px + .3125vw,19px);line-height:1.55}::selection{background-color:var(--color-text);color:var(--color-bg)}a{color:var(--color-link);border-bottom:.5px solid #0000;text-decoration:none;transition:color .3s,border-bottom-color .4s}a:hover{color:var(--color-link-bright);border-bottom-color:var(--color-link-bright)}a:focus-visible,button:focus-visible{outline-offset:3px;outline:2px solid}h1,h2,h3{line-height:1.2}h1{font-size:clamp(36px,32px + 1.25vw,48px)}h2{font-size:clamp(28px,26.667px + .4167vw,32px);font-weight:700}h3{font-size:clamp(21px,20px + .3125vw,24px);font-weight:700}h4{font-size:clamp(18px,17.333px + .2083vw,20px);font-weight:400}hr{border:0;border-top:1px solid var(--color-rule);height:1px;margin:1em 0;padding:0;display:block}figcaption{color:var(--color-text-muted);margin-top:.5em;font-size:10pt;line-height:1.5}blockquote{border-left:3px solid var(--color-rule);color:var(--color-text-muted);margin:1.5em 0;padding-left:1.25em}.container{margin:0 var(--gutter);max-width:var(--measure)}.site-header{color:var(--color-inverse);isolation:isolate;background-color:var(--color-bg);padding:100px 0 50px;position:relative;overflow:hidden}.site-header__bg{object-fit:cover;z-index:-2;width:100%;height:100%;position:absolute;inset:0}.site-header:before{content:"";z-index:-1;background:linear-gradient(#0000009e 0%,#0000006b 50%,#0000008c 100%);position:absolute;inset:0}.site-header h1{margin:0}.site-header__tagline{color:var(--color-inverse-muted);margin-top:5px;font-size:clamp(28px,26.667px + .4167vw,32px);font-weight:400;line-height:1.2}.site-header__description{color:#ddd;margin-top:.5em;margin-bottom:1.3em;font-weight:400}.icon{fill:currentColor;vertical-align:-.125em;flex:none;width:1em;height:1em}.social{gap:.4em;margin:.6em 0 0;padding:0;list-style:none;display:flex}.social a{color:var(--color-inverse);border-bottom:0;transition:color .3s;display:block}.social a:hover{color:var(--color-text-muted)}.social .icon{width:clamp(26px,23.333px + .8333vw,34px);height:clamp(26px,23.333px + .8333vw,34px)}main{padding-bottom:60px}.prose{margin-top:40px}.prose>*+*{margin-top:1.1em}.prose h2,.prose h3{margin-top:1.8em}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose a{color:var(--color-link);border-bottom:1px solid}.prose a:hover{color:var(--color-link-bright)}.prose img{margin:20px 0}.posts{margin-top:40px;padding:0;list-style:none}.prose .posts{margin-top:1.2em;padding-left:0}.posts>li{margin-bottom:30px;padding-bottom:20px}.posts>li:not(:last-child){border-bottom:1px solid var(--color-rule)}.post-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1em;display:flex}.post-title{color:var(--color-heading);margin:.1em 0;transition:color .3s}.post-title a{color:inherit;border-bottom:0}.post-title a:hover{color:var(--color-link-bright)}.post-date{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:6px;display:flex}.site-header .post-date{color:#ccc;margin-top:20px}.post-tags{flex-wrap:wrap;gap:10px;margin:1em 0 0;padding:0;list-style:none;display:flex}.post-tags li{background-color:var(--color-rule);color:var(--color-text);border-radius:2px;padding:10px 20px;font-size:clamp(15px,14.333px + .2083vw,17px)}.post-footer{color:var(--color-text-muted);margin-top:2.5em;font-style:italic}code{font-family:var(--font-mono);background-color:var(--color-code-bg);color:var(--color-heading);border-radius:2px;padding:.15em .35em}pre{font-family:var(--font-mono);tab-size:4;background-color:var(--color-code-bg);border:1px solid var(--color-rule);margin:40px 0;padding:25px;line-height:1.4;overflow-x:auto}pre code{background:0 0;padding:0}.site-footer{border-top:1px solid var(--color-rule);color:var(--color-text-muted);padding:30px 0 50px;font-size:.85em}.site-footer .social{margin-bottom:.5em}.site-footer .social a{color:var(--color-text-muted);justify-content:center;align-items:center;min-width:24px;min-height:24px;display:flex}.site-footer .social a:hover{color:var(--color-text)}.site-footer .social .icon{width:22px;height:22px}.site-footer p+p{margin-top:.6em}.site-footer a{color:var(--color-text-muted);border-bottom:1px solid var(--color-rule)}.site-footer a:hover{color:var(--color-text)}.site-footer .footer-cta{text-underline-offset:.2em;text-decoration:underline;text-decoration-color:var(--color-rule);border-bottom:0;padding-block:4px;display:inline-block}.site-footer .footer-cta:hover{text-decoration-color:currentColor}.resume-contact{color:#ddd;margin-top:.6em}.resume-contact a{color:inherit;border-bottom:1px solid var(--color-rule)}.resume-contact a:hover{color:var(--color-inverse);border-bottom-color:currentColor}.resume-actions{margin-top:1.1em}.resume h3{margin-bottom:0}.resume h3+p em{color:var(--color-text-muted);margin-top:.15em;font-size:clamp(15px,14.333px + .2083vw,17px);font-style:normal;display:block}.resume h3+p{margin-top:.2em}.resume h2{border-bottom:1px solid var(--color-rule);padding-bottom:.25em}@media print{:root{color-scheme:light;--color-bg:#fff;--color-text:#000;--color-text-muted:#444;--color-heading:#000;--color-link:#000;--color-link-bright:#000;--color-rule:#bbb;--color-inverse:#000;--color-inverse-muted:#444;--color-code-bg:#f4f4f4;--gutter:0px;--measure:none}@page{margin:.55in .6in}body{color:#000;print-color-adjust:exact;background:#fff;font-size:10.5pt;line-height:1.4}.site-header__bg,.site-header:before,.site-footer,.skip-link,.social,.resume-actions{display:none!important}.site-header{border-bottom:1px solid var(--color-rule);padding:0 0 .6em;overflow:visible}.container{max-width:none;margin:0}main{padding-bottom:0}h1{font-size:20pt}.site-header__tagline{font-size:13pt}.site-header__description,.resume-contact{color:#222;margin-top:.35em;font-size:10pt}.site-header .post-date{color:#444;margin-top:.5em;font-size:9pt}.prose{margin-top:1.2em}.prose>*+*{margin-top:.7em}.prose h2,.prose h3{margin-top:1.2em}.resume h2{font-size:13pt}.resume h3{font-size:11pt}.resume h3+p em{font-size:9.5pt}a{color:#000;border-bottom:0!important}.resume-contact a{color:#000}.resume a[href^=http]:after{content:" (" attr(href) ")";color:#555;word-break:break-all;font-size:8.5pt}h2,h3{break-after:avoid;page-break-after:avoid}li,.resume h3+p{break-inside:avoid;page-break-inside:avoid}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;background:var(--color-heading);color:var(--color-bg);border-bottom:0;padding:12px 20px;position:absolute;top:-100px;left:0}.skip-link:focus{top:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
