@media only screen and (min-width:0rem){:root{--measure:34rem;--blockGap:clamp(5rem,10vw,8rem);--entryGap:clamp(2.5rem,4vw,3.5rem)}main{padding-bottom:var(--blockGap);padding-top:clamp(7rem,13vw,9.5rem)}.page{margin:0 auto;max-width:80rem;padding:0 1rem;text-align:left;width:100%}main>*+*{margin-top:var(--blockGap)}.cs-page-header{margin-bottom:clamp(3rem,6vw,4.5rem)}.cs-page-title{font-size:clamp(2rem,5vw,3rem);line-height:1.1em;margin:0}.cs-heading,.cs-page-title{color:var(--headerColor);font-weight:600;letter-spacing:-.01em}.cs-heading{font-size:clamp(1.375rem,2.4vw,1.75rem);line-height:1.2em;margin:0 0 1.5rem}.cs-lede{color:var(--bodyTextColor);font-size:clamp(1.0625rem,1.6vw,1.25rem);line-height:1.6em;margin:1rem 0 0;max-width:var(--measure)}.cs-section+.cs-section{margin-top:var(--blockGap)}.cs-entry{max-width:var(--measure)}.cs-entry+.cs-entry{margin-top:var(--entryGap)}.cs-entry p{line-height:1.65em;margin-top:.75rem;max-width:var(--measure)}.cs-entry-title{color:var(--headerColor);font-size:clamp(1.0625rem,1.5vw,1.25rem);font-weight:600;line-height:1.35em;margin:0}.cs-entry-title a{border-bottom:.125rem solid var(--primary);color:var(--headerColor);text-decoration:none;transition:color .2s}.cs-entry-title a:hover{color:var(--primary)}.cs-entry-meta{color:var(--bodyTextColor);font-size:.875rem;line-height:1.5em;margin:.25rem 0 0;opacity:.75}.cs-plain{list-style:none;margin:1rem 0 0;max-width:var(--measure);padding:0}.cs-plain li{color:var(--bodyTextColor);line-height:1.6em;margin:0 0 .5rem}.cs-plain li:last-child{margin-bottom:0}#hero .cs-hero-grid{align-items:flex-start;display:flex;flex-direction:column;gap:2.25rem;max-width:62.5rem}#hero .cs-portrait{display:block;max-width:15rem;width:100%}#hero .cs-portrait img{border-radius:.125rem;display:block;height:auto;width:100%}#hero .cs-topper{margin-bottom:.5rem}#hero .cs-name{color:var(--headerColor);font-size:clamp(2.4375rem,7vw,4.5rem);font-weight:600;letter-spacing:-.015em;line-height:1.04em;margin:0}#hero .cs-role{color:var(--primary);font-size:clamp(1.25rem,3vw,1.875rem);font-weight:600;line-height:1.25em;margin:.625rem 0 1rem}#hero .cs-creds{color:var(--bodyTextColor);font-size:.875rem;font-weight:600;letter-spacing:.12em;line-height:1.2em;margin:0 0 1.75rem;opacity:.75;text-transform:uppercase}#hero .cs-lede{margin:0 0 2.25rem}#hero .cs-button-group{align-items:center;display:flex;flex-wrap:wrap;gap:1.5rem;margin:0}#hero .cs-text-link{color:var(--headerColor);font-size:1rem;font-weight:600;line-height:1em;padding:1rem 0;position:relative;text-decoration:none;text-transform:uppercase;transition:color .3s}#hero .cs-text-link:after{background-color:var(--primary);bottom:.625rem;content:"";display:block;height:.125rem;left:0;position:absolute;transition:width .3s;width:0}#hero .cs-text-link:hover{color:var(--primary)}#hero .cs-text-link:hover:after{width:100%}}@media only screen and (min-width:48rem){#hero .cs-hero-grid{align-items:flex-start;flex-direction:row;gap:clamp(2.5rem,5vw,4.5rem);justify-content:flex-start}#hero .cs-hero-text{flex:1 1 auto;min-width:0}#hero .cs-portrait{flex:none;max-width:20rem}}@media only screen and (min-width:0rem){#summary .cs-groups{display:grid;gap:2.25rem;grid-template-columns:1fr;max-width:var(--measure)}#summary .cs-group-title{color:var(--headerColor);font-size:clamp(1rem,1.3vw,1.125rem);font-weight:600;letter-spacing:.02em;line-height:1.3em;margin:0}#summary .cs-plain{margin-top:.625rem}#summary .cs-pointer{color:var(--bodyTextColor);margin:3rem 0 0;max-width:var(--measure)}}@media only screen and (min-width:48rem){#summary .cs-groups{gap:2.5rem;grid-template-columns:repeat(3,1fr);max-width:62.5rem}}@media only screen and (min-width:0rem){#resume .cs-section p{line-height:1.65em;max-width:var(--measure)}#resume .cs-section p+p{margin-top:1rem}#resume .cs-plain{list-style:disc outside;padding-left:1.125rem}#resume .cs-plain li{padding-left:.125rem}#projects .cs-entry{max-width:43.25rem}#projects .cs-entry+.cs-entry{margin-top:var(--blockGap)}#projects .cs-entry p{margin-top:1rem}#projects .cs-entry-label{color:var(--bodyTextColor);display:block;font-size:.8125rem;font-weight:600;letter-spacing:.1em;line-height:1.2em;margin-bottom:.375rem;opacity:.75;text-transform:uppercase}#projects .cs-shot{border:.0625rem solid rgba(0,0,0,.12);display:block;height:auto;margin-top:1.25rem;width:100%}#tools .cs-tools-intro{margin-bottom:2.5rem}#tools .cs-tools{margin:0;max-width:var(--measure)}#tools .cs-tool+.cs-tool{margin-top:1.25rem}#tools .cs-tool-name{color:var(--headerColor);font-size:1.0625rem;font-weight:600;line-height:1.4em;margin:0}#tools .cs-tool-text{color:var(--bodyTextColor);line-height:1.6em;margin:.125rem 0 0}#tools .cs-tools-note{color:var(--bodyTextColor);margin-top:2.5rem;max-width:var(--measure)}body.dark-mode #projects .cs-shot{border-color:hsla(0,0%,100%,.16)}#contact .cs-contact-list{list-style:none;margin:0;max-width:var(--measure);padding:0}#contact .cs-contact-list li{margin-bottom:1.25rem}#contact .cs-contact-list li:last-child{margin-bottom:0}#contact .cs-contact-list a{border-bottom:.125rem solid var(--primary);color:var(--headerColor);font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.4em;text-decoration:none;transition:color .2s}#contact .cs-contact-list a:hover{color:var(--primary)}#contact .cs-contact-label{color:var(--bodyTextColor);display:block;font-size:.8125rem;font-weight:600;letter-spacing:.1em;line-height:1.2em;margin-bottom:.25rem;opacity:.75;text-transform:uppercase}}