:root{--bg:#F2EEE2;--bg-alt:#E8E0CB;--bg-deep:#161310;--ink:#14110D;--ink-2:#2A2620;--ink-3:#5E5949;--ink-4:#95907E;--ink-5:#C1BBA3;--pop:#E54B22;--pop-soft:#F7DBC9;--pop-deep:#B83A1A;--rule:#D9D1BB;--rule-strong:#BDB497;--gutter:1.25rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4.5rem;--space-7:6.5rem;--space-8:9rem;--space-9:12rem;--content-max:720px;--content-wide:1140px;--display:"Fraunces","Iowan Old Style",Georgia,serif;--body:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ease:cubic-bezier(0.2,0.7,0.2,1);--ease-out:cubic-bezier(0.16,1,0.3,1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65;font-weight:400;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}@media (min-width:768px){body{font-size:17px}}::selection{background:var(--pop);color:var(--bg)}a{color:inherit;text-decoration:none}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid transparent;transition:border-color .28s var(--ease),background .28s var(--ease)}.nav.is-scrolled{border-bottom-color:var(--rule)}.nav__inner{max-width:var(--content-wide);margin:0 auto;padding:1rem var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav__brand{gap:.55rem;font-family:var(--mono);font-size:.75rem;color:var(--ink);text-transform:uppercase;letter-spacing:.1em}.nav__brand,.nav__brand .mark{display:inline-flex;align-items:center;font-weight:500}.nav__brand .mark{justify-content:center;width:24px;height:24px;background:var(--ink);color:var(--bg);font-family:var(--display);font-style:italic;font-size:.875rem;line-height:1;border-radius:2px;transition:background .24s var(--ease)}.nav__brand:hover .mark{background:var(--pop)}.nav__links{display:none;gap:1.75rem;align-items:center}@media (min-width:720px){.nav__links{display:flex}}.nav__link{font-family:var(--mono);font-size:.7rem;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;position:relative;transition:color .2s var(--ease)}.nav__link:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--pop);transition:width .32s var(--ease-out)}.nav__link:hover{color:var(--ink)}.nav__link:hover:after{width:100%}.container{max-width:var(--content-max);margin:0 auto}.container-wide{max-width:var(--content-wide);margin:0 auto}.section{padding:var(--space-8) var(--gutter);position:relative}@media (min-width:768px){.section{padding:var(--space-9) 2rem}}.section-head{display:grid;grid-template-columns:1fr;grid-gap:var(--space-4);gap:var(--space-4);margin-bottom:var(--space-6);align-items:end}@media (min-width:720px){.section-head{grid-template-columns:auto 1fr;gap:var(--space-5)}}.section-head__index{font-family:var(--display);font-weight:200;font-size:clamp(5rem,14vw,9rem);line-height:.85;letter-spacing:-.04em;color:var(--ink);font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 0;position:relative}.section-head__index .slash{color:var(--pop);font-style:italic;font-weight:300}.section-head__meta{padding-bottom:.5rem}.section-head__label{font-family:var(--mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.2em;color:var(--ink-3);display:inline-flex;align-items:center;gap:.6rem;margin:0 0 .75rem}.section-head__label:before{content:"";display:inline-block;width:16px;height:1px;background:var(--pop)}.section-head__title{font-family:var(--display);font-weight:300;font-size:clamp(1.75rem,3.6vw,2.5rem);line-height:1.15;letter-spacing:-.022em;margin:0;color:var(--ink);font-variation-settings:"opsz" 36,"SOFT" 30,"WONK" 0}.section-head__title em{font-style:italic;color:var(--pop);font-weight:300}.mark{background-image:linear-gradient(to top,var(--pop-soft) 50%,transparent 50%);background-size:100% 200%;background-position:0 100%;background-repeat:no-repeat;padding:0 .15em;transition:background-position .8s var(--ease-out)}.in-view .mark{background-position:0 0}.hero{padding:var(--space-7) var(--gutter) var(--space-7);position:relative;overflow:hidden}@media (min-width:768px){.hero{padding:var(--space-8) 2rem var(--space-8)}}.hero__inner{max-width:var(--content-wide);margin:0 auto;position:relative;display:grid;grid-template-columns:1fr;grid-gap:var(--space-5);gap:var(--space-5)}@media (min-width:900px){.hero__inner{grid-template-columns:1fr 340px;gap:var(--space-6);align-items:start}}.hero__content{min-width:0}.hero__portrait{position:relative;margin-top:0;order:2}@media (min-width:900px){.hero__portrait{order:0;margin-top:2.5rem}}.hero__portrait-img{display:block;width:100%;max-width:380px;height:auto;filter:contrast(1.02)}@media (min-width:900px){.hero__portrait-img{max-width:340px}}.hero__portrait-caption{display:flex;align-items:center;gap:.55rem;margin-top:.85rem;font-family:var(--mono);font-size:.6875rem;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase}.hero__portrait-caption .ix{color:var(--pop);font-weight:500}.hero__portrait:after{content:"";position:absolute;left:-8px;top:0;width:2px;height:36px;background:var(--pop)}@media (min-width:900px){.hero__portrait:after{left:-10px;height:44px}}.hero__rail{display:flex;align-items:center;gap:.65rem;margin-bottom:var(--space-5);font-family:var(--mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-3)}.hero__rail .dot{width:7px;height:7px;border-radius:50%;background:var(--pop);position:relative}.hero__rail .dot:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--pop);animation:ping 2.4s var(--ease-out) infinite}@keyframes ping{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.4)}}.hero__name{font-family:var(--display);font-weight:300;font-size:clamp(3.5rem,12vw,9rem);line-height:.88;letter-spacing:-.045em;margin:0 0 var(--space-5) 0;font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 0;color:var(--ink)}.hero__name .first{font-weight:300}.hero__name .last{font-style:italic;font-weight:300}@media (min-width:900px){.hero__name{font-size:clamp(4rem,8.5vw,7.5rem)}.hero__name .first,.hero__name .last{display:block}}.hero__pitch{font-family:var(--display);font-weight:300;font-size:clamp(1.375rem,2.8vw,2rem);line-height:1.32;letter-spacing:-.018em;color:var(--ink);margin:0 0 var(--space-5) 0;max-width:32ch;font-variation-settings:"opsz" 36,"SOFT" 30,"WONK" 0}.hero__pitch em{font-style:italic;color:var(--pop)}.hero__row{display:grid;grid-template-columns:1fr;grid-gap:var(--space-4);gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--rule)}@media (min-width:720px){.hero__row{grid-template-columns:1fr 1fr 1fr;gap:var(--space-5)}}.hero__cell-label{font-family:var(--mono);font-size:.6875rem;color:var(--ink-4);text-transform:uppercase;letter-spacing:.14em;margin:0 0 .4rem}.hero__cell-value{font-family:var(--display);font-size:1.0625rem;font-weight:400;color:var(--ink);line-height:1.35;margin:0}.hero__cell-value a{color:var(--ink);position:relative;transition:color .24s var(--ease)}.hero__cell-value a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--ink-4);transform-origin:right;transition:transform .36s var(--ease-out),background .24s var(--ease)}.hero__cell-value a:hover{color:var(--pop)}.hero__cell-value a:hover:after{transform-origin:left;background:var(--pop)}.stats{padding:var(--space-7) var(--gutter);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--bg);position:relative}@media (min-width:768px){.stats{padding:var(--space-7) 2rem}}.stats__grid{max-width:var(--content-wide);margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-5) var(--space-4);gap:var(--space-5) var(--space-4)}@media (min-width:720px){.stats__grid{grid-template-columns:repeat(4,1fr)}}.stat__num{display:block;font-family:var(--display);font-weight:200;font-size:clamp(3.5rem,8vw,5.5rem);line-height:.9;letter-spacing:-.045em;color:var(--ink);font-variation-settings:"opsz" 96,"SOFT" 30,"WONK" 0;margin-bottom:.5rem}.stat__num .unit{font-style:italic;color:var(--pop);font-size:.55em;margin-left:.05em;font-weight:300}.stat__label{font-family:var(--mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-3);line-height:1.5;display:block}.prose{max-width:var(--content-max);margin:0 auto;font-size:1.0625rem;line-height:1.7}@media (min-width:768px){.prose{font-size:1.125rem;line-height:1.72}}.prose p{margin:0 0 1.4em;color:var(--ink-2)}.prose p:last-child{margin-bottom:0}.dropcap:first-letter{font-family:var(--display);float:left;font-size:4.5rem;line-height:.86;padding-top:.4rem;padding-right:.7rem;color:var(--pop);font-weight:300;font-style:italic;font-variation-settings:"opsz" 72,"SOFT" 30,"WONK" 0}.pullquote{margin:var(--space-8) 0;font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(2.25rem,5.5vw,3.75rem);line-height:1.15;letter-spacing:-.025em;color:var(--ink);font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 0;text-align:center;max-width:24ch;margin-left:auto;margin-right:auto;padding:var(--space-3) 0;position:relative}.pullquote:after,.pullquote:before{content:"";display:block;width:48px;height:1px;background:var(--pop);margin:var(--space-3) auto}.timeline{padding:0;list-style:none;max-width:var(--content-max);margin:0 auto}.role{display:grid;grid-template-columns:1fr;grid-gap:.5rem;gap:.5rem;padding:var(--space-4) 0;border-top:1px solid var(--rule);position:relative;transition:padding .32s var(--ease)}.role:last-child{border-bottom:1px solid var(--rule)}.role:hover{padding-left:.5rem}.role:before{content:"";position:absolute;left:-1rem;top:0;bottom:0;width:2px;background:var(--pop);transform-origin:top;transform:scaleY(0);transition:transform .38s var(--ease-out)}.role:hover:before{transform:scaleY(1)}@media (min-width:720px){.role{grid-template-columns:8rem 1fr;gap:2.5rem}}.role__period{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;color:var(--ink-3);padding-top:.45rem;white-space:nowrap}.role__period .now{color:var(--pop);font-weight:500}.role__title{font-family:var(--display);font-weight:500;font-size:clamp(1.25rem,2.4vw,1.5rem);line-height:1.25;letter-spacing:-.018em;margin:0 0 .25rem;color:var(--ink)}.role__org{font-size:.9375rem;color:var(--ink-2);margin:0 0 .8rem;display:flex;flex-wrap:wrap;align-items:center;gap:0 .6rem}.role__org .loc{color:var(--ink-3);font-size:.8125rem}.role__org .pill{display:inline-block;padding:.15rem .5rem;background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:.625rem;letter-spacing:.12em;text-transform:uppercase;border-radius:2px}.role.current .role__org .pill{background:var(--pop)}.role__context{font-family:var(--mono);font-size:.8125rem;letter-spacing:.02em;margin:0 0 1.1rem;padding:.7rem 0 .75rem;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);max-width:60ch}.role__context,.role__summary{color:var(--ink-2);line-height:1.65}.role__summary{font-size:.9875rem;margin:0 0 .5em}.role__summary:last-child{margin-bottom:0}.twocol{max-width:var(--content-wide);margin:0 auto;display:grid;grid-template-columns:1fr;grid-gap:var(--space-6);gap:var(--space-6)}@media (min-width:720px){.twocol{grid-template-columns:1fr 1fr;gap:var(--space-6)}}.col-label{font-family:var(--mono);font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-4);margin:0 0 var(--space-3) 0;padding-bottom:.75rem;border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between}.col-label .count{color:var(--pop);font-weight:500}.item{padding:1.1rem 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:1fr auto;grid-gap:.5rem 1rem;gap:.5rem 1rem;align-items:baseline;position:relative;transition:padding .28s var(--ease)}.item:hover{padding-left:.4rem}.item:before{content:"";position:absolute;left:-.4rem;top:50%;width:4px;height:4px;background:var(--pop);border-radius:50%;transform:translateY(-50%) scale(0);transition:transform .28s var(--ease-out)}.item:hover:before{transform:translateY(-50%) scale(1)}.item__title{font-family:var(--display);font-weight:500;font-size:1.0625rem;color:var(--ink);margin:0;letter-spacing:-.012em}.item__detail{font-size:.875rem;color:var(--ink-3);margin:.2rem 0 0;grid-column:1/-1}.item__meta{font-family:var(--mono);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);text-align:right;white-space:nowrap}.item__meta .live{color:var(--pop);font-weight:500}.contact{background:var(--bg-deep);color:var(--bg);padding:var(--space-8) var(--gutter);position:relative;overflow:hidden}@media (min-width:768px){.contact{padding:var(--space-9) 2rem}}.contact:before{content:"";position:absolute;top:50%;right:-25%;width:80%;height:200%;background:radial-gradient(circle at center,rgba(229,75,34,.18) 0,transparent 50%);pointer-events:none;transform:translateY(-50%)}.contact__inner{position:relative;z-index:1;max-width:var(--content-wide);margin:0 auto}.contact .section-head__index{color:var(--bg)}.contact .section-head__label{color:rgba(242,238,226,.5)}.contact .section-head__label:before{background:var(--pop)}.contact .section-head__title{color:var(--bg)}.contact__lede{font-family:var(--display);font-size:clamp(1.125rem,2.2vw,1.375rem);font-weight:300;line-height:1.55;color:rgba(242,238,226,.7);max-width:42ch;margin:var(--space-5) 0;font-style:italic;font-variation-settings:"opsz" 24,"SOFT" 30,"WONK" 0}.contact-grid{display:grid;grid-template-columns:1fr;grid-gap:0;gap:0;margin-top:var(--space-5);border-top:1px solid rgba(242,238,226,.14)}.contact-row{border-bottom:1px solid rgba(242,238,226,.14);padding:1.4rem 0;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;transition:padding .32s var(--ease)}.contact-row:hover{padding-left:.6rem}.contact-row .label{font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,238,226,.4)}.contact-row .value{font-family:var(--display);font-size:clamp(1rem,2vw,1.25rem);color:var(--bg);text-align:right;font-weight:400}.contact-row .value a{color:var(--bg);position:relative;transition:color .24s var(--ease)}.contact-row .value a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:rgba(242,238,226,.3);transform-origin:right;transition:transform .36s var(--ease-out),background .24s var(--ease)}.contact-row .value a:hover{color:var(--pop)}.contact-row .value a:hover:after{transform-origin:left;background:var(--pop)}.contact-row .value .row-icon{display:inline-block;vertical-align:-2px;width:14px;height:14px;margin-right:.55rem;opacity:.85;transition:opacity .24s var(--ease),color .24s var(--ease)}.contact-row .value a:hover .row-icon{opacity:1}.cta-row{display:flex;flex-wrap:wrap;gap:.875rem;margin-top:var(--space-5)}.cta-row .resume-cta{margin-top:0}.resume-cta{display:inline-flex;align-items:center;gap:.75rem;margin-top:var(--space-5);padding:1rem 1.6rem;background:var(--pop);color:var(--bg);font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;border-radius:2px;border:1px solid var(--pop);cursor:pointer;transition:background .24s var(--ease),transform .28s var(--ease-out),color .24s var(--ease),border-color .24s var(--ease)}.resume-cta svg{transition:transform .28s var(--ease-out)}.resume-cta:hover{background:var(--bg);color:var(--bg-deep);border-color:var(--bg);transform:translateY(-2px)}.resume-cta:hover svg{transform:translateX(3px)}.resume-cta--ghost{background:transparent;color:var(--bg);border:1px solid rgba(242,238,226,.28)}.resume-cta--ghost:hover{background:var(--bg);color:var(--bg-deep);border-color:var(--bg)}.resume-cta--ghost:hover svg{transform:none}footer{background:var(--bg-deep);color:rgba(242,238,226,.35);padding:var(--space-4) var(--gutter) var(--space-5);text-align:center;font-family:var(--mono);font-size:.625rem;letter-spacing:.18em;text-transform:uppercase;border-top:1px solid rgba(242,238,226,.08)}footer .glyph{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--pop);color:var(--bg-deep);font-family:var(--display);font-style:italic;font-size:.875rem;line-height:1;font-weight:500;border-radius:2px;margin-bottom:1rem}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}.reveal.in-view{opacity:1;transform:translateY(0)}.reveal.d-1{transition-delay:0s}.reveal.d-2{transition-delay:.1s}.reveal.d-3{transition-delay:.2s}.reveal.d-4{transition-delay:.32s}.reveal.d-5{transition-delay:.44s}.reveal-mask{opacity:0;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);transition:opacity .2s var(--ease),-webkit-clip-path 1.1s var(--ease-out);transition:opacity .2s var(--ease),clip-path 1.1s var(--ease-out);transition:opacity .2s var(--ease),clip-path 1.1s var(--ease-out),-webkit-clip-path 1.1s var(--ease-out)}.reveal-mask.in-view{opacity:1;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}@media (prefers-reduced-motion:reduce){.reveal,.reveal-mask{opacity:1;transform:none;-webkit-clip-path:none;clip-path:none;transition:none}.hero__rail .dot:after{animation:none;display:none}.mark{background-position:0 0}html{scroll-behavior:auto}}.skip-link{position:absolute;top:-100px;left:1rem;z-index:9999;background:var(--ink);color:var(--bg);padding:.75rem 1.25rem;font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:top .18s var(--ease-out)}.skip-link:focus{top:1rem;outline:2px solid var(--pop);outline-offset:2px}@media print{:root{--bg:#ffffff;--bg-alt:#ffffff;--bg-deep:#ffffff;--ink:#000000;--ink-2:#1a1a1a;--ink-3:#333333;--ink-4:#555555;--rule:#cccccc;--rule-strong:#999999}body{background:#fff;color:#000}.contact .cta-row,.hero__portrait,.nav,.skip-link,.stats{display:none!important}.reveal,.reveal-mask{opacity:1!important;transform:none!important;-webkit-clip-path:none!important;clip-path:none!important}.hero{padding:.5in 0 .25in}.hero__inner{display:block}.hero__content{max-width:100%}.hero__name{font-size:36pt;line-height:1.05;margin:0 0 .5rem}.hero__pitch{font-size:12pt;line-height:1.4}.hero__row{display:block}.hero__cell{display:inline-block;margin-right:1.5rem}.contact,.section{padding:.25in 0;background:#fff!important}.contact__inner,.container-wide{max-width:100%;padding:0}.hero__name,.section-head__title{color:#000}.section-head__index,.section-head__label{color:#666}.mark{background:none;color:#000}.timeline{padding-left:0}.role:before,.timeline:before{display:none}.role{page-break-inside:avoid;padding:.25rem 0 .5rem}.role__context,.role__org,.role__period,.role__summary,.role__title{color:#000!important}.role__context{border-color:#999!important}.pullquote{border-color:#000!important;color:#000!important}a{color:#000;text-decoration:underline}a[href^=http]:after,a[href^=mailto]:after{content:" (" attr(href) ")";font-size:.85em;color:#555}.hero__cell-value a:after{content:""}footer{border-top:1px solid #ccc;margin-top:.5in;padding-top:.25in;color:#666}}.notfound{min-height:100vh;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:4rem 1.5rem}.notfound__inner{max-width:540px;text-align:left}.notfound__eyebrow{font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--pop);margin:0 0 1.5rem}.notfound__title{font-family:var(--display);font-size:clamp(3rem,8vw,5rem);font-weight:400;line-height:1.05;color:var(--ink);margin:0 0 1.5rem;letter-spacing:-.02em}.notfound__title em{font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}.notfound__body{font-family:var(--body);font-size:1.0625rem;line-height:1.6;color:var(--ink-2);margin:0 0 2.5rem;max-width:44ch}.notfound__cta{display:inline-flex;align-items:center;gap:.625rem;font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:.875rem 1.25rem;border:1px solid var(--ink);border-radius:2px;transition:background .18s var(--ease-out),color .18s var(--ease-out)}.notfound__cta:hover{background:var(--ink);color:var(--bg)}.col-spacer{height:var(--space-5)}