@font-face{font-family:__Newsreader_ee5d09;font-style:italic;font-weight:200 800;font-display:swap;src:url(/_next/static/media/fc61cfb200d549a5.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Newsreader_ee5d09;font-style:italic;font-weight:200 800;font-display:swap;src:url(/_next/static/media/fe6c4b8cc116014d.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Newsreader_ee5d09;font-style:italic;font-weight:200 800;font-display:swap;src:url(/_next/static/media/8edf6d3506a17285.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Newsreader_ee5d09;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/b5963afcf1479527.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Newsreader_ee5d09;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/5ed7d4ff5e59016d.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Newsreader_ee5d09;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/84adbee2f2a7cb50.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.__className_ee5d09{font-family:__Newsreader_ee5d09}.__variable_ee5d09{--font-serif:"__Newsreader_ee5d09"}@font-face{font-family:__Hanken_Grotesk_67a390;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Hanken_Grotesk_67a390;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Hanken_Grotesk_67a390;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Hanken_Grotesk_67a390;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/313510e2713fb214-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Hanken_Grotesk_Fallback_67a390;src:local("Arial");ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.00%;size-adjust:100.94%}.__className_67a390{font-family:__Hanken_Grotesk_67a390,__Hanken_Grotesk_Fallback_67a390;font-style:normal}.__variable_67a390{--font-sans:"__Hanken_Grotesk_67a390","__Hanken_Grotesk_Fallback_67a390"}:root{--paper:#fcf7f6;--blush:#f6e4e6;--blush-2:#efd3d7;--ink:#26161b;--ink-2:#4b363b;--muted:#765e63;--rule:#e6d2d4;--rule-strong:#d6b8bd;--rose:#a3335a;--rose-deep:#7a1f3f;--rose-darker:#5e1730;--serif:var(--font-serif),"Iowan Old Style",Georgia,serif;--sans:var(--font-sans),system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:light}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}body,dd,dl,h1,h2,h3,ol,p,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:inherit}::selection{background:var(--blush-2);color:var(--ink)}:focus-visible{outline:2px solid var(--rose);outline-offset:3px}.wrap{max-width:1160px;margin:0 auto;padding:0 32px}.skip{position:absolute;left:16px;top:-48px;z-index:20;padding:8px 14px;background:var(--ink);color:var(--paper);text-decoration:none}.skip:focus{top:12px}.masthead{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--blush);border-bottom:1px solid var(--rule-strong)}.masthead-inner{display:flex;align-items:center;gap:40px;height:64px}.wordmark{font-family:var(--serif);font-size:1.3rem;font-weight:500;text-decoration:none;letter-spacing:-.01em}.masthead nav{margin-left:auto}.nav-links{display:flex;gap:28px}.nav-contact,.nav-links a{font-size:.92rem;font-weight:500;text-decoration:none;color:var(--ink-2)}.nav-contact,.nav-links a.active,.nav-links a:hover{color:var(--rose)}.nav-contact{padding:8px 16px;border:1px solid var(--rose);border-radius:2px;background:linear-gradient(var(--rose),var(--rose)) 0 0 /0 100% no-repeat;transition:background-size .45s cubic-bezier(.65,0,.35,1),color .3s}.nav-contact:hover{background-size:100% 100%;color:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 24px;border-radius:2px;border:1px solid transparent;font:inherit;font-size:.95rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background-size .45s cubic-bezier(.65,0,.35,1),background-color .2s,color .2s,border-color .2s,transform .15s}.btn:active{transform:translateY(1px)}.btn-rose{background:linear-gradient(var(--rose-deep),var(--rose-deep)) 0 0 /0 100% no-repeat,var(--rose);color:#fff}.btn-rose:hover{background-size:100% 100%,auto}.btn-light{background:linear-gradient(var(--blush),var(--blush)) 0 0 /0 100% no-repeat,#fff;color:var(--rose-deep)}.btn-light:hover{background-size:100% 100%,auto}.btn-outline-light{background:transparent;color:#fff;border-color:hsla(0,0%,100%,.55)}.btn-outline-light:hover{border-color:#fff;background:hsla(0,0%,100%,.08)}.text-link{font-weight:600;font-size:.95rem;text-decoration:none;color:var(--ink);padding-bottom:3px;background:linear-gradient(currentColor,currentColor) 0 100% /0 1px no-repeat,linear-gradient(var(--rule-strong),var(--rule-strong)) 0 100% /100% 1px no-repeat;transition:background-size .45s cubic-bezier(.65,0,.35,1),color .2s}.text-link:hover{color:var(--rose);background-size:100% 1px,100% 1px}.hero{background:var(--blush);padding:88px 0 72px;border-bottom:1px solid var(--rule-strong)}.hero-role{font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--rose);overflow:hidden;line-height:1.9}.hero-role-list{display:flex;flex-wrap:wrap;margin-left:-2.2em}.hero-role-item{position:relative;padding-left:2.2em;white-space:nowrap}.hero-role-item:before{content:"|"/"";position:absolute;left:0;width:2.2em;text-align:center;color:var(--rule-strong)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hero-name{margin-top:20px;font-family:var(--serif);font-weight:400;font-size:clamp(3rem,8.4vw,7.4rem);line-height:.96;letter-spacing:-.025em;font-variation-settings:"opsz" 72}.hero-name .line{display:block}.hero-name em{display:block;font-style:italic;color:var(--rose-deep)}.hero-top{display:grid;grid-template-columns:minmax(0,1fr) 230px;grid-gap:56px;gap:56px;align-items:end}.hero-title{container-type:inline-size}.hero-title .hero-name{font-size:clamp(2.5rem,11.4cqi,7rem)}.portrait{margin:0 12px 12px 0;position:relative}.portrait:before{content:"";position:absolute;inset:12px -12px -12px 12px;border:1px solid var(--rose);pointer-events:none}.portrait-frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:#f3dfe2;outline:1px solid var(--rule-strong)}.portrait-frame img{object-fit:cover;object-position:52% 50%}.hero-foot{position:relative;margin-top:64px;padding-top:32px;display:grid;grid-template-columns:1.15fr 1fr;grid-gap:64px;gap:64px;align-items:start}.hero-lead{font-family:var(--serif);font-size:1.55rem;line-height:1.4;max-width:30ch;color:var(--ink)}.hero-actions{margin-top:32px;display:flex;flex-wrap:wrap;align-items:center;gap:28px}.contact-list>div,.facts>div{display:grid;grid-template-columns:120px 1fr;grid-gap:16px;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule-strong)}.facts>div:first-child{padding-top:0}.contact-list dt,.facts dt{font-size:.82rem;font-weight:600;color:var(--muted);padding-top:2px}.facts dd{font-size:.98rem;color:var(--ink)}.section{padding:96px 0;border-bottom:1px solid var(--rule)}.section-grid{display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:48px;gap:48px}.section-label{font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--rose);padding-top:8px;position:-webkit-sticky;position:sticky;top:96px;align-self:start}.section-body{max-width:820px}.section-body h3{font-family:var(--serif);font-weight:500;letter-spacing:-.01em}.about-text{font-family:var(--serif);font-size:1.7rem;line-height:1.42;letter-spacing:-.005em}.principles{margin-top:56px;display:grid;grid-template-columns:1fr 1fr;grid-gap:0 48px;gap:0 48px}.principles li{padding:20px 0 24px}.principles h3{font-size:1.2rem}.principles p{margin-top:6px;color:var(--ink-2);font-size:.97rem}.services li{display:grid;grid-template-columns:56px minmax(0,1.25fr) minmax(0,1fr);grid-gap:24px;gap:24px;align-items:baseline;padding:28px 0}.services li:last-child{border-bottom:1px solid var(--rule-strong)}.num{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--rose);font-feature-settings:"lnum";font-variant-numeric:lining-nums}.services h3{font-size:1.45rem}.services p{margin-top:6px;color:var(--ink-2)}.services .service-tags{margin-top:0;font-size:.88rem;color:var(--muted);line-height:1.7}.tag{white-space:nowrap}.job{padding:36px 0}.job:first-child{padding-top:0}.job-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px 24px;flex-wrap:wrap}.job-head h3{font-size:1.75rem;line-height:1.2}.job-dates{font-size:.9rem;font-weight:500;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.current{margin-right:12px;padding:3px 8px;border-radius:2px;background:var(--blush);color:var(--rose-deep);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.job-co{margin-top:6px;color:var(--muted);font-size:.97rem}.job-co strong{color:var(--ink);font-weight:600}.job-points{margin-top:18px;padding-left:18px;list-style:disc;display:grid;grid-gap:6px;gap:6px;color:var(--ink-2)}.job-points li::marker{color:var(--rose)}.skills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:40px;gap:40px}.skills h3{font-size:1.25rem;padding-bottom:12px;border-bottom:1px solid var(--rule-strong)}.skills li{padding:10px 0;border-bottom:1px solid var(--rule);color:var(--ink-2);font-size:.97rem}.education{margin-top:64px}.education-label{font-size:.82rem;font-weight:600;color:var(--muted)}.education-row{margin-top:12px;padding:24px 28px;background:var(--blush);border-left:3px solid var(--rose);display:flex;justify-content:space-between;align-items:baseline;gap:12px 32px;flex-wrap:wrap}.education-row h3{font-size:1.4rem}.education-row p{margin-top:4px;color:var(--ink-2)}.education-row .education-year{margin-top:0;font-weight:600;color:var(--rose-deep);white-space:nowrap}.contact{background:var(--rose-deep);color:#fff;padding:104px 0}.contact .section-label{color:#f3c6d2}.contact-lead{font-family:var(--serif);font-size:1.7rem;line-height:1.35;max-width:28ch}.contact-email{display:inline;margin-top:28px;font-family:var(--serif);font-size:clamp(1.7rem,4.2vw,3rem);line-height:1.3;letter-spacing:-.015em;text-decoration:none;overflow-wrap:anywhere;padding-bottom:4px;background:linear-gradient(#fff,#fff) 0 100% /0 1px no-repeat,linear-gradient(hsla(0,0%,100%,.4),hsla(0,0%,100%,.4)) 0 100% /100% 1px no-repeat;transition:background-size .6s cubic-bezier(.65,0,.35,1)}.contact-email:hover{background-size:100% 1px,100% 1px}.contact-email-wrap{margin-top:28px}.contact-actions{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px}.contact-list{margin-top:56px;max-width:560px;border-top:1px solid hsla(0,0%,100%,.22)}.contact-list>div{border-bottom-color:hsla(0,0%,100%,.22);padding:14px 0}.contact-list dt{color:#f3c6d2}.footer{background:var(--rose-darker);color:#f3d5dd;font-size:.88rem;padding:22px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap}.footer a{text-decoration:none;font-weight:600}.footer a:hover{color:#fff}@media (max-width:960px){.section-grid{grid-template-columns:1fr;gap:24px}.section-label{padding-top:0;position:static}.hero-foot{grid-template-columns:1fr;gap:40px}.hero-top{grid-template-columns:minmax(0,1fr) 180px;gap:40px}.services li{grid-template-columns:44px minmax(0,1fr)}.services .service-tags{grid-column:2}}@media (max-width:720px){body{font-size:16px}.wrap{padding:0 20px}.masthead-inner{height:56px;gap:16px;justify-content:space-between}.nav-links{display:none}.hero{padding:40px 0 48px}.hero-top{grid-template-columns:1fr;gap:36px}.portrait{order:-1;width:200px}.hero-foot{margin-top:40px;padding-top:24px}.hero-lead{font-size:1.3rem}.section{padding:64px 0}.about-text,.contact-lead{font-size:1.35rem}.principles{margin-top:40px}.principles,.skills{grid-template-columns:1fr}.skills{gap:32px}.job-head h3{font-size:1.45rem}.contact-list>div,.facts>div{grid-template-columns:96px 1fr}.contact{padding:72px 0}}:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.65,0,.35,1)}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}}@keyframes line-up{0%{transform:translateY(110%)}}@keyframes draw{0%{transform:scaleX(0)}}@keyframes fade{0%{opacity:0}}.progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--rose);transform-origin:0 50%;transform:scaleX(var(--progress,0))}.u-link{text-decoration:none;padding-bottom:2px;background:linear-gradient(currentColor,currentColor) 0 100% /0 1px no-repeat;transition:background-size .4s var(--ease-in-out),color .2s}.u-link.active,.u-link:hover{background-size:100% 1px}.arrow,.arrow-up{display:inline-block;transition:transform .4s var(--ease-out)}.text-link:hover .arrow{transform:translateX(5px)}.to-top:hover .arrow-up{transform:translateY(-3px)}.swap{display:inline-block;animation:fade-up .35s var(--ease-out)}.masthead-inner{animation:fade .6s ease both}.hero-role{animation:fade-up .8s var(--ease-out) .1s both}.line{overflow:hidden;padding:0 .14em .12em;margin:0 -.14em -.12em}.line-inner{display:block;animation:line-up 1.15s var(--ease-out) both}.line:first-child .line-inner{animation-delay:.18s}.line:nth-child(2) .line-inner{animation-delay:.3s}.hero-foot:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--rule-strong);transform-origin:0 50%;animation:draw 1.3s var(--ease-in-out) .55s both}@keyframes wipe-up{0%{-webkit-clip-path:inset(100% 0 0 0);clip-path:inset(100% 0 0 0)}}@keyframes settle{0%{transform:scale(1.08)}}.portrait-frame{animation:wipe-up 1.25s var(--ease-in-out) .2s both}.portrait-frame img{animation:settle 1.8s var(--ease-out) .2s both}.portrait:before{animation:fade-up 1s var(--ease-out) 1s both}.hero-intro{animation:fade-up .9s var(--ease-out) .8s both}.facts>div{animation:fade-up .8s var(--ease-out) both}.facts>div:first-child{animation-delay:.9s}.facts>div:nth-child(2){animation-delay:.98s}.facts>div:nth-child(3){animation-delay:1.06s}.facts>div:nth-child(4){animation-delay:1.14s}.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease-out) var(--d,0ms),transform .9s var(--ease-out) var(--d,0ms)}.js [data-reveal].is-in{opacity:1;transform:none}.rule-top{position:relative}.rule-top:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--rule-strong);transform-origin:0 50%}.js .rule-top[data-reveal]:before{transform:scaleX(0);transition:transform 1.1s var(--ease-in-out) var(--d,0ms)}.js .rule-top[data-reveal].is-in:before{transform:none}.js .job[data-reveal] .job-points li{opacity:0;transform:translateX(-10px);transition:opacity .7s var(--ease-out) calc(var(--d, 0ms) + .25s),transform .7s var(--ease-out) calc(var(--d, 0ms) + .25s)}.js .job[data-reveal].is-in .job-points li{opacity:1;transform:none}.num{display:inline-block}.num,.services h3{transition:transform .5s var(--ease-out),color .2s}.services li:hover h3{transform:translateX(6px);color:var(--rose-deep)}.services li:hover .num{transform:translateX(4px);color:var(--rose-deep)}.skills li{transition:color .2s,transform .4s var(--ease-out)}.skills li:hover{color:var(--rose-deep);transform:translateX(5px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}.js .job[data-reveal] .job-points li,.js [data-reveal]{opacity:1;transform:none}.js .rule-top[data-reveal]:before{transform:none}.progress{display:none}}@media print{.contact-actions,.footer a,.hero-actions,.masthead,.skip{display:none}.contact,.education-row,.hero{background:none;color:var(--ink)}.contact .section-label,.contact-list dt{color:var(--rose)}.contact,.hero,.section{padding:28px 0}.js .job[data-reveal] .job-points li,.js [data-reveal]{opacity:1!important;transform:none!important}.rule-top:before{transform:none!important}}