:root{--ink:#13213c;--text:#2a2f38;--muted:#5b6270;--surface:#f5f3ef;--accent:#b4232c;--rule:#d8d3cb;--paper:#fff;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--text-sm:.9375rem;--text-base:1.0625rem;--text-md:1.125rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.75rem;--text-headline:clamp(1.25rem, 1vw + 1rem, 1.5rem);--text-title:clamp(1.75rem, 2vw + 1rem, 2.25rem);--text-display:clamp(2.5rem, 6vw + 1rem, 4.5rem);--space-0:.25rem;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:6rem;--tap:2.75rem;--radius:.25rem;--page:72rem;--measure:55ch;--header-height:0rem}@media (width>=48rem){:root{--header-height:6rem}}@media (width>=64rem){:root{--header-height:4.5rem}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--paper);color:var(--text);font:400 var(--text-base) / 1.6 var(--font-body);margin:0}h1,h2,h3,p{margin:0}a{color:var(--accent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.container{width:min(100% - 2 * var(--space-2), var(--page));margin-inline:auto}main,main *{scroll-margin-top:calc(var(--header-height) + var(--space-2))}main:focus{outline:none}.skip-link{top:var(--space-1);left:var(--space-1);z-index:20;padding:var(--space-1) var(--space-2);background:var(--ink);color:var(--paper);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{background:var(--paper);border-bottom:1px solid var(--rule)}.site-nav{justify-content:space-between;align-items:center;column-gap:var(--space-3);flex-wrap:wrap;display:flex}.site-nav__home{min-height:var(--tap);color:var(--ink);font:600 var(--text-md) / 1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;align-items:center;text-decoration:none;display:inline-flex}.site-nav__links{gap:var(--space-1);margin:0 calc(-1 * var(--space-1));scrollbar-width:thin;flex:100%;padding:0;list-style:none;display:flex;overflow-x:auto}.site-nav__links a{min-height:var(--tap);padding-inline:var(--space-1);color:var(--ink);white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.site-nav__links a:hover{color:var(--accent)}.site-nav__links a:focus-visible{outline-offset:-3px}@media (width>=48rem){.site-header{z-index:10;position:sticky;top:0}}@media (width>=64rem){.site-nav{min-height:var(--header-height);flex-wrap:nowrap}.site-nav__links{flex:0 auto}}.section{padding-block:var(--space-5)}.section--alt{background:var(--surface)}.section__title{color:var(--ink);font:600 var(--text-title) / 1.2 var(--font-display)}.section__title:after{content:"";width:2rem;height:.25rem;margin-top:var(--space-2);background:var(--accent);display:block}@media (width>=48rem){.section{padding-block:var(--space-6)}}.card{padding:var(--space-3);background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--ink)}.site-footer{padding-block:var(--space-4);border-top:1px solid var(--rule);color:var(--muted);font-size:var(--text-sm)}.competencies{grid-template-columns:repeat(auto-fit, minmax(min(100%, max(16rem, (100% - 2 * var(--space-3)) / 3)), 1fr));gap:var(--space-3);margin:var(--space-4) 0 0;padding:0;list-style:none;display:grid}.competency-group__label{color:var(--ink);font:600 var(--text-lg) / 1.3 var(--font-display)}.competency-group__items{gap:var(--space-1);margin:var(--space-2) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.competency-group__items li{padding:var(--space-0) var(--space-1);background:var(--surface);border-radius:var(--radius);font-size:var(--text-sm);line-height:1.45}.contact__lead{margin-top:var(--space-4);font-size:var(--text-lg)}.contact__actions{gap:var(--space-2);margin:var(--space-3) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.contact__button{width:100%;min-height:var(--tap);padding-inline:var(--space-3);border:1px solid var(--ink);border-radius:var(--radius);color:var(--ink);justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.contact__button:hover{background:var(--surface)}.contact__button--primary{border-color:var(--accent);background:var(--accent);color:var(--paper)}.contact__button--primary:hover{border-color:var(--ink);background:var(--ink)}@media (width>=48rem){.contact__actions{flex-flow:wrap}.contact__button{width:auto}}.education{max-width:48rem;margin:var(--space-4) 0 0;padding:0;list-style:none}.degree+.degree{margin-top:var(--space-3)}.degree__name{color:var(--ink);font:600 var(--text-lg) / 1.35 var(--font-display)}.degree__year{margin-top:var(--space-0);color:var(--muted);font-variant-numeric:tabular-nums}.degree__school{margin-top:var(--space-1);font-weight:600}.degree__school span{color:var(--rule)}.degree__detail{margin-top:var(--space-0);color:var(--muted)}@media (width>=48rem){.degree__header{justify-content:space-between;align-items:baseline;column-gap:var(--space-3);flex-wrap:wrap;display:flex}.degree__year{margin-top:0}}.role{margin-top:var(--space-4);padding-left:var(--space-3);border-left:3px solid var(--ink)}.role__title{color:var(--ink);font:600 var(--text-xl) / 1.25 var(--font-display)}.role__dates{margin-top:var(--space-0);color:var(--muted);font-variant-numeric:tabular-nums}.role__org{margin-top:var(--space-1);font-weight:600}.role__org span{color:var(--rule)}.role__duties{max-width:var(--measure);margin:var(--space-3) 0 0;padding-left:var(--space-3)}.role__duties li+li{margin-top:var(--space-1)}.role__duties li::marker{color:var(--accent)}@media (width>=48rem){.role__header{max-width:var(--measure);justify-content:space-between;align-items:baseline;column-gap:var(--space-3);flex-wrap:wrap;display:flex}.role__dates{margin-top:0}}.hero{padding-block:var(--space-5);background:var(--surface)}.hero__name{color:var(--ink);font:600 var(--text-display) / 1.05 var(--font-display);letter-spacing:.02em;text-transform:uppercase}.hero__name:after{content:"";width:3rem;height:.25rem;margin-top:var(--space-3);background:var(--accent);display:block}.hero__headline{margin-top:var(--space-3);color:var(--ink);font:600 var(--text-headline) / 1.3 var(--font-body)}.hero__tagline{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-md)}.hero__contact{margin:var(--space-4) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.hero__contact li,.hero__contact a{min-height:var(--tap);align-items:center;display:flex}@media (width>=48rem){.hero{padding-block:var(--space-6)}.hero__contact{flex-flow:wrap}.hero__contact li+li{margin-left:var(--space-2);padding-left:var(--space-2);border-left:1px solid var(--rule)}}.recognition{gap:var(--space-3);margin:var(--space-4) 0 0;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));padding:0;list-style:none;display:grid}.recognition__item{color:var(--ink);font:600 var(--text-lg) / 1.4 var(--font-display)}.references{gap:var(--space-3);margin:var(--space-4) 0 0;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));padding:0;list-style:none;display:grid}.reference__name{color:var(--ink);font:400 var(--text-lg) / 1.35 var(--font-display)}.reference__name strong{font-weight:600}.reference__city{margin-top:var(--space-1);color:var(--muted)}.reference__phone{min-height:var(--tap);align-items:center;display:flex}.reference__phone a{min-height:var(--tap);align-items:center;display:inline-flex}.summary__text{max-width:var(--measure);margin-top:var(--space-4);font-size:var(--text-lg);text-wrap:pretty;line-height:1.65}.highlights{gap:var(--space-3);margin:var(--space-5) 0 0;padding:0;list-style:none;display:grid}.highlight{padding-top:var(--space-2);border-top:2px solid var(--ink)}.highlight__value{color:var(--ink);font:600 var(--text-2xl) / 1.2 var(--font-display)}.highlight__label{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-sm)}@media (width>=48rem){.highlights{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.highlights{grid-template-columns:repeat(4,minmax(0,1fr))}}
