:root{--color-light:#e1ebee;--color-dark:#005878;--text-color:var(--color-light);--bg-color:var(--color-dark);--font-sans:"Brockmann",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-base:20px;--line-height-base:1.5;--line-height-relaxed:1.6;--line-height-tight:1.1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-section:4rem;--max-width-content:56rem;--max-width-reading:40ch;--max-width-narrow:25ch;--max-width-cv-text:50ch;--photo-size:16rem;--transition-fast:.2s}@supports (color:color(display-p3 0 0 0)){:root{--color-dark:color(display-p3 0 .346 .47)}}@font-face{font-family:Brockmann;src:url(/fonts/local/brockmann/brockmann-regular-webfont.woff2)format("woff2"),url(/fonts/local/brockmann/brockmann-regular-webfont.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Brockmann;src:url(/fonts/local/brockmann/brockmann-medium-webfont.woff2)format("woff2"),url(/fonts/local/brockmann/brockmann-medium-webfont.woff)format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Brockmann;src:url(/fonts/local/brockmann/brockmann-semibold-webfont.woff2)format("woff2"),url(/fonts/local/brockmann/brockmann-semibold-webfont.woff)format("woff");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Brockmann;src:url(/fonts/local/brockmann/brockmann-bold-webfont.woff2)format("woff2"),url(/fonts/local/brockmann/brockmann-bold-webfont.woff)format("woff");font-weight:700;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box}html{font-size:var(--font-size-base);line-height:var(--line-height-base);font-family:var(--font-sans);color:var(--text-color)}body{background-color:var(--bg-color);color:var(--text-color);padding:var(--spacing-sm);margin:0}@media (min-width:400px){body{padding:var(--spacing-md)}}@media (min-width:600px){body{padding:var(--spacing-xl)}}::selection{color:var(--bg-color);background-color:var(--text-color)}.site-main{max-width:var(--max-width-content);padding:var(--spacing-md);margin-inline:auto}@media (min-width:768px){.site-main{padding:var(--spacing-xl)}}.site-main a{color:inherit;transition:all var(--transition-fast);text-decoration:underline}.site-main a:hover{color:#fff;background-color:#000;text-decoration:none}@media (min-width:768px){.content-grid{gap:var(--spacing-xl);grid-template-columns:1fr auto;align-items:start;display:grid}}@media (min-width:768px){.content-primary{grid-area:1/1}}@media (min-width:768px){.content-secondary{grid-area:1/2}}h1{font-size:2rem;font-weight:var(--font-weight-light);line-height:var(--line-height-tight);margin-block:var(--spacing-2xl)}@media (min-width:400px){h1{font-size:3.75rem}}h1 span{color:#fff}h2{font-size:1.875rem;font-weight:var(--font-weight-light);line-height:var(--line-height-relaxed);color:#fff;margin-block-start:0;margin-block-end:var(--spacing-md)}h3{font-size:1.25rem;font-weight:var(--font-weight-light);margin-block:0}h4{font-size:1rem;font-weight:var(--font-weight-medium);margin-block:0}.bio-section{max-width:var(--max-width-reading)}.bio-section p{max-width:var(--max-width-narrow);font-weight:var(--font-weight-light);font-size:1.875rem;line-height:var(--line-height-relaxed);margin-block-end:var(--spacing-md)}.profile-photo{width:var(--photo-size);height:var(--photo-size);margin:0;margin-block-start:1.25rem;margin-block-end:var(--spacing-xl)}@media (min-width:768px){.profile-photo{flex-shrink:0;margin-block-end:0}}.profile-photo img{object-fit:cover;border-radius:.5rem;width:100%;height:100%}.links-section{margin-block-start:var(--spacing-section)}.links-section ul{gap:var(--spacing-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.links-section li{font-size:1.25rem;font-weight:var(--font-weight-light)}.cv-section{margin-block-start:var(--spacing-section)}.cv-section>ul{gap:var(--spacing-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cv-header{gap:var(--spacing-xs);flex-direction:column;margin-block-end:var(--spacing-md);display:flex}@media (min-width:400px){.cv-header{flex-direction:row;justify-content:space-between;align-items:baseline}}.cv-entry{margin-block-end:var(--spacing-lg)}.cv-entry-header{gap:var(--spacing-xs);flex-direction:column;display:flex}@media (min-width:400px){.cv-entry-header{flex-direction:row;justify-content:space-between;align-items:baseline}}.cv-entry-header span{opacity:.8;font-size:.875rem}.cv-entry-meta{opacity:.7;margin-block-start:var(--spacing-xs);font-size:.875rem}.cv-entry-description{max-width:var(--max-width-cv-text);margin-block-start:var(--spacing-sm)}.cv-entry-description p{font-size:1.125rem;line-height:var(--line-height-relaxed)}.cv-projects{gap:var(--spacing-sm);flex-direction:column;margin-block-start:var(--spacing-md);margin-inline-start:var(--spacing-md);padding-inline-start:var(--spacing-md);list-style:outside;display:flex}.cv-projects p{margin:0;font-size:.875rem}.cv-projects .project-description{opacity:.9}.cv-projects .project-learned{opacity:.7;font-style:italic}.toggle-button{appearance:none;font-family:var(--font-sans);font-size:.875rem;font-weight:var(--font-weight-light);color:#fff;padding:var(--spacing-sm)var(--spacing-xl);cursor:pointer;min-width:10rem;transition:background-color var(--transition-fast),color var(--transition-fast);background:0 0;border:1px solid #fff;border-radius:9999px}.toggle-button:hover{color:#000;background-color:#fff}.toggle-button:focus-visible{outline-offset:2px;outline:2px solid #fff}.not-found p{max-width:var(--max-width-narrow);font-weight:var(--font-weight-light);margin-block-end:var(--spacing-md);font-size:1.5rem}@media print{:root{--bg-color:white;--text-color:black;--color-light:black}body{background-color:#fff;padding:0}h1,h2,h3,h4,h1 span{color:#000}.site-main{max-width:none;padding:0}.site-main a{color:#000;text-decoration:underline}.site-main a:hover{color:#000;background-color:#0000}.site-main a:after{content:" (" attr(href)")";opacity:.7;font-size:.8em}.toggle-button{display:none}.profile-photo{width:8rem;height:8rem}.cv-section,.cv-entry{break-inside:avoid}}
