:root{--color-foreground:#333;--color-background:#fff;--color-primary:#333;--color-secondary:#000;--color-tertiary:#f1f1f1;--color-muted:#6d6d6d;--color-rule:var(--color-primary);--font-body:var(--font-dm-sans);--font-size-x-small:1rem;--font-size-small:1rem;--font-size-normal:1.125rem;--font-size-medium:1.375rem;--font-size-large:min(max(1.75rem, 5vw), 2.375rem);--font-size-x-large:min(max(2.25rem, 5vw), 3rem);--font-size-h1:min(max(3rem, 7vw), 5rem);--font-size-h2:min(max(2.25rem, 6vw), 4.0625rem);--line-height-body:1.7;--line-height-heading:1.2;--font-weight-heading:500;--font-weight-title:700;--content-size:664px;--wide-size:1128px;--page-padding:max(20px, min(30px, 5vw));--gap-horizontal:min(30px, 5vw);--gap-vertical:min(30px, 5vw);--space-header:clamp(48px, 9vw, 90px);--space-footer-top:clamp(40px, 7vw, 70px);--space-footer-bottom:clamp(64px, 12vw, 120px);--space-post:clamp(64px, 12vw, 120px);--space-section:clamp(72px, 15vw, 150px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--color-background);color:var(--color-foreground);font-family:var(--font-body);font-size:var(--font-size-normal);font-weight:400;line-height:var(--line-height-body);text-align:left;word-wrap:break-word;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;margin:0}.content-grid{grid-template-columns:[full-start] minmax(var(--page-padding), 1fr) [wide-start] minmax(0, calc((var(--wide-size) - var(--content-size)) / 2)) [content-start] min(var(--content-size), 100% - var(--page-padding) * 2) [content-end] minmax(0, calc((var(--wide-size) - var(--content-size)) / 2)) [wide-end] minmax(var(--page-padding), 1fr) [full-end];display:grid}.content-grid>*{grid-column:content;min-width:0}.content-grid>.alignwide{grid-column:wide}.content-grid>.alignfull{grid-column:full}h1,h2,h3,h4,h5,h6{margin:0 0 var(--gap-vertical);color:var(--color-foreground);font-weight:var(--font-weight-heading);line-height:var(--line-height-heading)}h1{font-size:var(--font-size-h1)}h2{font-size:var(--font-size-h2)}h3{font-size:var(--font-size-large)}h4{font-size:var(--font-size-large);line-height:1.4}h5{font-size:var(--font-size-normal);line-height:1.4}h6{font-size:var(--font-size-small);line-height:1.4}p{margin:0 0 1.5em}strong,b{font-weight:700}a{color:var(--color-foreground);text-underline-offset:.15em;text-decoration-thickness:1px}a:hover{text-decoration:none}a:active,a:focus-visible{outline-offset:3px;outline:1px dotted;text-decoration:none}ul,ol{margin:0 0 1.5em;padding-left:1.4em}ul ul{list-style-type:disc}li{margin-bottom:.4em}img,video{max-width:100%;height:auto}figure{margin:0 0 1.5em}figcaption{margin-top:calc(var(--gap-vertical) / 2);color:var(--color-muted);font-size:var(--font-size-x-small);line-height:1.5}blockquote{padding:0 0 0 calc(var(--gap-horizontal) * 3);border:0;margin:0 0 1.5em;font-size:1.5625rem;font-weight:400;line-height:1.6}blockquote cite{font-size:var(--font-size-x-small);margin-top:.5em;font-style:normal;font-weight:400;display:block}code,kbd,samp{background-color:var(--color-tertiary);border-radius:0;padding:.15em .35em;font-size:.9em}pre{padding:calc(var(--gap-horizontal) * .8);background-color:var(--color-tertiary);font-size:var(--font-size-normal);tab-size:2;border:0;border-radius:0;margin:0 0 1.5em;line-height:1.6;overflow-x:auto}pre>code{all:unset;font-size:inherit}pre.astro-code{background-color:var(--color-tertiary)!important}table{border-collapse:collapse;width:100%;font-size:var(--font-size-small);margin:0 0 1.5em}th{text-align:left;font-weight:400}th,td{vertical-align:top;border:0;padding:.6em .8em .6em 0}tr:first-child td,thead tr th{border-top:1px solid var(--color-rule)}tbody tr:last-child td{border-bottom:1px solid var(--color-rule)}hr{margin:var(--space-post) 0;border:0;border-top:1px solid var(--color-rule)}input,textarea,select,button{font-family:inherit;font-size:var(--font-size-normal)}input:not([type=submit]):not([type=checkbox]),textarea{width:100%;color:inherit;border:2px solid var(--color-foreground);background-color:#0000;border-radius:0;padding:20px}input:focus,textarea:focus{outline:1px dotted}.button,button[type=submit],input[type=submit]{background-color:var(--color-foreground);width:auto;color:var(--color-background);border:3px solid var(--color-foreground);font-size:var(--font-size-normal);cursor:pointer;border-radius:0;padding:.6em 1.4em;font-weight:700;line-height:1.5;text-decoration:none;display:inline-block}.button:hover,button[type=submit]:hover,input[type=submit]:hover{background-color:var(--color-background);color:var(--color-foreground)}.entry-content>*{margin-bottom:1.5em}.entry-content>:last-child{margin-bottom:0}.entry-content>h2,.entry-content>h3,.entry-content>h4,.entry-content>h5,.entry-content>h6{margin-top:calc(var(--gap-vertical) * 2)}.entry-content a:not(.button){text-decoration-line:underline}.entry-content a:not(.button):hover{text-decoration:none}.sr-only{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}.site-footer[data-astro-cid-jo6i4kqk]{max-width:var(--wide-size);padding:calc(var(--gap-vertical) * 1.5) var(--page-padding) 0;border-top:1px solid var(--color-rule);margin:0 auto}.footer-links[data-astro-cid-jo6i4kqk]{justify-content:center;gap:var(--gap-vertical) calc(var(--gap-horizontal) * 3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.footer-links__item[data-astro-cid-jo6i4kqk]{align-items:center;gap:calc(var(--gap-vertical) / 4);text-align:center;flex-direction:column;margin:0;display:flex}.footer-links__label[data-astro-cid-jo6i4kqk]{font-size:var(--font-size-normal);align-items:center;gap:.5em;font-weight:500;text-decoration:none;display:inline-flex}.footer-links__label[data-astro-cid-jo6i4kqk]:hover{text-underline-offset:.2em;text-decoration:underline}.footer-links__icon[data-astro-cid-jo6i4kqk]{flex:none;width:1.05em;height:1.05em}.footer-links__icon--github[data-astro-cid-jo6i4kqk]{color:#181717}.footer-links__icon--linkedin[data-astro-cid-jo6i4kqk]{color:#0a66c2}.footer-links__icon--x[data-astro-cid-jo6i4kqk]{color:#000}.footer-links__icon--gmail[data-astro-cid-jo6i4kqk]{color:#ea4335}.footer-links__url[data-astro-cid-jo6i4kqk]{color:var(--color-muted);font-size:var(--font-size-x-small);text-underline-offset:.15em;text-decoration-line:underline}.footer-links__url[data-astro-cid-jo6i4kqk]:hover{text-decoration:none}.site-footer__credit[data-astro-cid-jo6i4kqk]{margin:calc(var(--gap-vertical) * 2) 0 0;color:var(--color-muted);font-size:var(--font-size-x-small);text-align:center}.site-footer__credit[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:inherit}@media (width<=600px){.footer-links[data-astro-cid-jo6i4kqk]{flex-direction:column}}a[data-astro-cid-evkijfd6]{color:var(--color-foreground);font-size:var(--font-size-normal);text-decoration:none;display:inline-block}a[data-astro-cid-evkijfd6]:hover,a[data-astro-cid-evkijfd6].active{text-underline-offset:.2em;text-decoration:underline}.site-header[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:baseline;gap:var(--gap-horizontal) calc(var(--gap-horizontal) * 1.5);max-width:var(--wide-size);padding:calc(var(--gap-vertical) * 1.2) var(--page-padding) 0;flex-wrap:wrap;margin:0 auto;display:flex}.site-branding[data-astro-cid-nen7h5rs]{align-items:baseline;gap:calc(var(--gap-horizontal) * 1.2);flex-wrap:wrap;display:flex}.site-title[data-astro-cid-nen7h5rs]{color:var(--color-primary);font-size:var(--font-size-normal);letter-spacing:.02em;text-transform:uppercase;font-weight:700;text-decoration:none}.site-title[data-astro-cid-nen7h5rs]:hover{text-underline-offset:.2em;text-decoration:underline}.site-tagline[data-astro-cid-nen7h5rs]{color:var(--color-muted);font-size:var(--font-size-normal);margin:0}.site-tagline[data-astro-cid-nen7h5rs] del[data-astro-cid-nen7h5rs]{text-decoration-line:line-through;text-decoration-thickness:1px}.site-nav[data-astro-cid-nen7h5rs]{gap:calc(var(--gap-horizontal) * 1.2);flex-wrap:wrap;display:flex}.site-main[data-astro-cid-z4jru4n3]{margin-top:var(--space-header)}.site-footer-container[data-astro-cid-z4jru4n3]{padding-top:var(--space-footer-top);padding-bottom:var(--space-footer-bottom)}
