/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial}}}@layer theme{:root,:host{--font-sans:"DM Sans", sans-serif;--font-serif:Newsreader, Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box}html{scroll-padding-top:2rem}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.65}h1,h2,h3,p,figure{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{color:#39171f;background:#e7ced1}em{font-weight:inherit}svg{flex-shrink:0;width:1.3rem;height:1.3rem}}@layer components{.wrap{max-width:1360px;margin-inline:auto;padding-inline:64px}.site-header{justify-content:space-between;align-items:center;gap:2rem;min-height:106px;display:flex}.brand{align-items:center;gap:1rem;display:flex}.monogram{font-family:var(--font-serif);color:var(--accent);font-size:2.7rem;line-height:1}.brand-name{font-size:.875rem;font-weight:500}nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:2.5rem;font-size:.875rem;display:flex}nav a{align-items:center;gap:.3rem;min-height:44px;display:flex;position:relative}nav a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .18s var(--ease-out);position:absolute;bottom:6px;left:0;transform:scaleX(0)}nav a[aria-current]:after{transform:scaleX(1)}nav svg{width:.9rem;height:.9rem}.eyebrow{text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:500;line-height:1.6}.accent{color:var(--accent)}.hero{grid-template-columns:1.15fr 1fr;align-items:center;gap:5rem;padding-top:36px;padding-bottom:64px;display:grid}.hero-intro>.eyebrow{color:var(--accent);margin-bottom:28px}h1{font-family:var(--font-serif);font-weight:400}.hero h1{font-size:clamp(5rem,8vw,7.2rem);line-height:.96}.hero-description{max-width:31rem;color:var(--muted);margin-top:28px;font-size:1.125rem;line-height:1.7}.hero-qualification{color:var(--accent);margin-top:18px;font-size:.8125rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.8rem;margin-top:32px;display:flex}.button{background:var(--accent);min-height:48px;color:var(--paper);transition:transform .16s var(--ease-out);justify-content:space-between;align-items:center;gap:1.75rem;padding:13px 20px;font-size:.875rem;display:inline-flex}.button:active{transform:scale(.97)}[data-input=keyboard] .button:active{transform:none}.download-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:28px;display:flex}.cv-header .download-actions .button{margin-top:0}.text-link{text-underline-offset:5px;align-items:center;gap:.7rem;min-height:44px;font-size:.875rem;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.text-link svg{transition:transform .18s}.image-frame{background:#e3dfd2;padding:14px;position:relative}.image-frame img{object-fit:cover;object-position:center;width:100%;height:440px;display:block}.photo-index{background:var(--paper);font-size:.75rem;font-family:var(--font-serif);padding:1px 8px;font-style:italic;position:absolute;bottom:27px;right:28px}figcaption{color:var(--muted);justify-content:space-between;align-items:flex-start;gap:1rem;margin-top:14px;font-size:.75rem;line-height:1.5;display:flex}figcaption a{text-underline-offset:3px;align-items:center;gap:4px;text-decoration:underline;display:inline-flex}figcaption svg{width:.875rem;height:.875rem}.portrait-panel{isolation:isolate;justify-self:end;width:100%;max-width:440px;position:relative}.portrait-mount{background:#e3dcd0;border:1px solid #c8bbae;padding:12px}.portrait-window{aspect-ratio:10/11;background:#dfd8cc;overflow:hidden}.portrait-window img{object-fit:cover;filter:sepia(.22)saturate(.58)contrast(.96);width:100%;height:100%;display:block}.portrait-panel:before{content:"";z-index:-1;border:1px solid #ac8187;position:absolute;inset:-10px 10px 10px -10px}.portrait-panel figcaption{background:var(--accent);color:var(--paper);align-items:baseline;margin:0;padding:13px 16px;font-size:.8125rem}.portrait-panel figcaption>span:last-child{opacity:.85;font-size:.75rem}.practice-section .eyebrow{color:#e5c5c7}.practice-intro{color:#e6d8d7;max-width:28rem;margin-top:22px}.archive-detail{max-width:330px;margin-top:30px}.archive-detail img{object-fit:cover;object-position:center 65%;width:100%;height:150px;display:block}.archive-detail figcaption{color:#e6d8d7;margin-top:10px;font-size:.75rem}.practice-section a:focus-visible{outline-color:var(--paper)}.intro-note{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 2fr;align-items:baseline;gap:3rem;padding-block:28px;display:grid}.intro-note p{max-width:44rem;font-size:1.125rem;line-height:1.7}.section{padding-block:88px}.section-heading{justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:54px;display:flex}h2{font-family:var(--font-serif);font-size:clamp(2.3rem,3vw,2.8rem);font-weight:400;line-height:1.15}h2 em{color:var(--muted)}.section-heading .eyebrow,.practice-inner .eyebrow,.experience-preview .eyebrow{margin-bottom:22px}.section-heading>p{color:var(--muted);font-size:.875rem}.project-list{gap:16px;display:grid}.project-row{border:1px solid var(--line);border-left:3px solid var(--accent);background:#fbfaf6;grid-template-columns:52px 1fr 100px;gap:26px;padding:32px 28px;transition:background-color .18s;display:grid;position:relative}.project-number{font-family:var(--font-serif);color:var(--accent);font-size:2rem;line-height:1.2}.project-row .eyebrow{color:var(--accent);margin-bottom:8px}.project-row h3{font-family:var(--font-serif);font-size:2rem;font-weight:400;line-height:1.15}.project-summary{max-width:42rem;color:var(--muted);margin-top:13px;font-size:1rem}.project-institution{margin-top:16px;font-size:.8125rem}.project-end{color:var(--muted);flex-direction:column;justify-content:space-between;align-items:flex-end;font-size:.75rem;display:flex}.project-arrow{border:1px solid var(--line);width:45px;height:45px;color:var(--ink);border-radius:50%;place-items:center;transition:transform .18s;display:grid}.practice-section{color:var(--paper);background:#65333f}.practice-inner{grid-template-columns:1fr 1fr;gap:6rem;padding-block:72px;display:grid}.practice-inner .text-link{margin-top:28px}.practice-list>div{border-bottom:1px solid #9a737b;gap:2rem;padding-block:28px;display:flex}.practice-list>div:first-child{padding-top:0}.practice-list>div:last-child{border:0;padding-bottom:0}.practice-list>div>span{color:#e5c5c7;margin-top:4px;font-size:.875rem}.practice-list h3{font-family:var(--font-serif);margin-bottom:8px;font-size:1.7rem;font-weight:400}.practice-list p{color:#e6d8d7;font-size:1rem}.experience-preview{grid-template-columns:1fr 1fr;gap:6rem;display:grid}.measure{max-width:29rem;color:var(--muted);margin-top:24px}.experience-preview .text-link{margin-top:20px}.institution-list>div{border-bottom:1px solid var(--line);padding:22px 0}.institution-list>div:first-child{padding-top:0}.institution-list span{font-family:var(--font-serif);font-size:1.55rem}.institution-list p{color:var(--muted);margin-top:5px;font-size:.8125rem}.footer{border-top:1px solid var(--line)}.footer-top{padding-block:50px}.footer-top .eyebrow{color:var(--accent)}.footer-name{font-family:var(--font-serif);margin-top:16px;font-size:2.8rem;font-weight:400;line-height:1.1;display:block}.footer-name span{color:var(--accent)}.footer-links{flex-wrap:wrap;gap:.75rem 2rem;margin-top:20px;display:flex}.footer-bottom{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:2rem;padding-block:24px;font-size:.75rem;display:flex}.skip-link{z-index:50;background:var(--ink);color:#fff;padding:10px 16px;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.back-link{align-items:center;min-height:44px;margin-bottom:32px;font-size:.875rem;display:inline-flex}.case-header{padding-top:24px}.case-header h1{max-width:58rem;margin-block:22px 44px;font-size:clamp(3rem,5vw,4.6rem);line-height:1.08}.case-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1.3fr 1fr .5fr;gap:2rem;padding-block:25px;display:grid}.case-meta span{text-transform:uppercase;color:var(--muted);font-size:.75rem}.case-meta p{margin-top:6px;font-size:.9375rem}.case-body{grid-template-columns:1fr 2.2fr;gap:5rem;padding-block:72px 100px;display:grid}.tool-list{margin-top:24px;padding:0;list-style:none}.tool-list li{margin-bottom:14px;font-size:.875rem}.case-lead{font-family:var(--font-serif);font-size:1.8rem;line-height:1.4}.case-prose{max-width:47rem}.case-prose>p+p{margin-top:24px}.case-prose>section{margin-top:46px}.case-prose h2{margin-bottom:18px;font-size:1.875rem}.case-prose section>p{color:#51564e;line-height:1.85}.contributions{padding-left:20px;list-style-type:disc}.contributions li{margin-top:10px;padding-left:4px}.external-link{margin-top:20px}.next-project{border-top:1px solid var(--line);align-items:center;gap:3rem;padding-block:36px;display:flex}.next-project>span:nth-child(2){font-family:var(--font-serif);flex:1;font-size:2rem}.next-project>svg{width:2rem;height:2rem}.about-hero{border-bottom:1px solid var(--line);padding-block:64px 76px}.about-hero h1{margin-top:28px;font-size:clamp(3rem,5vw,4.6rem);line-height:1.1}.about-hero h1 em{color:var(--muted)}.about-intro{grid-template-columns:1fr 1fr;align-items:start;gap:6rem;margin-top:48px;display:grid}.about-intro>p:last-child{color:var(--muted)}.about-grid{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.6fr;gap:6rem;display:grid}.about-grid .eyebrow{margin-bottom:20px}.education-item{margin-bottom:32px}.education-item:last-child{margin:0}.education-item h3{font-family:var(--font-serif);font-size:1.8rem;font-weight:400;line-height:1.2}.education-item p{color:var(--muted);margin-top:8px}.skills-columns h3{margin-bottom:8px;font-size:1rem;font-weight:500}.skills-columns p{color:var(--muted)}.skills-columns>div+div{margin-top:28px}.cv-header{padding-block:54px 64px}.cv-header h1{margin-top:24px;font-size:clamp(3rem,6vw,5.5rem);line-height:1.1}.cv-header p:not(.eyebrow){color:var(--muted);margin-top:16px}.cv-header .button{margin-top:28px}.file-type{opacity:.8;font-size:.6875rem}.cv-section{border-top:1px solid var(--line);grid-template-columns:1fr 2.2fr;gap:5rem;padding-block:54px;display:grid}.cv-section>h2{font-size:1.75rem}.cv-role{grid-template-columns:90px 1fr;gap:20px;padding-bottom:32px;display:grid}.cv-role:last-child{padding-bottom:0}.cv-role h3{font-family:var(--font-serif);font-size:1.6rem;font-weight:400;line-height:1.2}.cv-role p{color:var(--muted);margin-top:8px;font-size:.9375rem}.cv-role .organization{color:var(--accent);margin-bottom:10px;font-size:.8125rem}.cv-section .case-prose h3{font-family:var(--font-serif);margin-bottom:14px;font-size:1.6rem;font-weight:400}.cv-section .case-prose p{color:var(--muted);margin-bottom:28px}.not-found h1{margin-block:24px;font-size:clamp(3rem,6vw,5.5rem);line-height:1.1}.not-found p{max-width:38rem;margin-bottom:24px}.enter{animation:arrive .8s var(--ease-out) both}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}@keyframes arrive{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.portrait-panel.enter{animation-name:portrait-arrive;animation-duration:1s}@keyframes portrait-arrive{0%{opacity:0;transform:translateY(28px)rotate(1.5deg)}to{opacity:1;transform:translateY(0)rotate(0)}}[data-reveal]{transition:opacity .65s var(--ease-out), transform .65s var(--ease-out)}.reveal-pending{opacity:0;transform:translateY(26px)}[data-input=keyboard] [data-reveal]{opacity:1;transition:none;transform:none}@media (hover:hover) and (pointer:fine){nav a:hover:after{transform:scaleX(1)}.text-link:hover svg{transform:translate(3px)}.project-row:hover .project-arrow{transform:translate(6px)}.project-row:hover{background:#f0e9e4}.project-row:hover h3{color:var(--accent)}.button:hover{background:#632634}}@media (min-width:1600px){.hero{padding-top:56px;padding-bottom:72px}}@media (max-width:1000px){.wrap{padding-inline:36px}.hero{gap:2rem}.hero h1{font-size:clamp(4.8rem,9vw,6rem)}.image-frame img{height:400px}.hero-description{font-size:1.0625rem}.hero-actions{gap:1rem}.hero-figure figcaption{flex-direction:column;gap:6px}.practice-inner,.experience-preview,.about-grid,.about-intro,.case-body,.cv-section{gap:3rem}}@media (max-width:720px){.wrap{padding-inline:24px}.site-header{gap:1rem;min-height:88px}.brand-name{display:none}.monogram{font-size:2.4rem}nav{gap:20px;font-size:.8125rem}.hero{grid-template-columns:1fr;gap:38px;padding-top:30px;padding-bottom:36px}.hero h1{font-size:clamp(4.5rem,19vw,7rem)}.hero-intro>.eyebrow{margin-bottom:24px}.hero-description{margin-top:24px;font-size:1rem}.hero-actions{gap:1.8rem;margin-top:24px}.image-frame{padding:10px}.image-frame img{aspect-ratio:1.2;object-fit:cover;height:auto}.hero-figure figcaption{flex-direction:row}.portrait-panel{justify-self:center;max-width:440px}.portrait-panel figcaption{flex-direction:column;gap:0}.archive-detail{max-width:none}.intro-note{grid-template-columns:1fr;gap:12px;padding-block:24px}.intro-note p{font-size:1rem}.section{padding-block:64px}h2{font-size:2.4rem}.section-heading{margin-bottom:30px;display:block}.section-heading>p{margin-top:22px}.section-heading>p br{display:none}.project-row{grid-template-columns:1fr 28px;gap:12px;padding:24px 20px}.project-number{grid-column:1/-1;font-size:1.4rem}.project-row h3{font-size:1.75rem}.project-summary{font-size:.9375rem}.project-end>span:first-child{display:none}.project-end{justify-content:center}.project-arrow{border:0;width:28px}.project-institution{font-size:.75rem}.practice-inner,.experience-preview,.about-grid,.about-intro{grid-template-columns:1fr;gap:40px}.practice-inner{padding-block:64px}.practice-list>div{gap:1.5rem}.footer-top{padding-block:36px}.footer-bottom{flex-direction:column;gap:8px}.footer-name{font-size:2.6rem}.case-header{padding-top:10px}.back-link{margin-bottom:20px}.case-header h1{margin-bottom:30px;font-size:3.2rem}.case-meta{grid-template-columns:1fr;gap:16px;padding-block:22px}.case-meta p{margin-top:3px}.case-body{grid-template-columns:1fr;gap:36px;padding-block:36px 64px}.tool-list{flex-wrap:wrap;gap:6px 20px;margin-top:14px;display:flex}.tool-list li{margin:0;font-size:.8125rem}.case-lead{font-size:1.8rem}.next-project{grid-template-columns:1fr 24px;gap:14px;display:grid}.next-project>.eyebrow{grid-column:1/-1}.next-project>span:nth-child(2){font-size:1.65rem}.about-hero{padding-block:32px 48px}.about-hero h1{font-size:3.2rem}.about-intro{gap:24px;margin-top:32px}.cv-header{padding-block:32px 40px}.cv-header h1{font-size:3.2rem}.cv-section{grid-template-columns:1fr;gap:28px;padding-block:40px}.cv-role{grid-template-columns:1fr;gap:8px}}@media (max-width:380px){.site-header{flex-wrap:wrap;gap:4px 12px;padding-block:16px}.brand-name{display:inline}nav{justify-content:space-between;gap:4px;width:100%}}@media (prefers-reduced-motion:reduce){.enter,.portrait-panel.enter{animation-name:gentle-arrive;animation-duration:.2s;animation-delay:0s}[data-reveal]{opacity:1;transition:none;transform:none}.button,.text-link svg,.project-arrow,nav a:after{transition:none}.button:active,.text-link:hover svg,.project-row:hover .project-arrow{transform:none}@keyframes gentle-arrive{0%{opacity:.8}to{opacity:1}}}@media print{body{color:#000;background:#fff;font-size:10pt}.site-header,.footer,.skip-link,.button,.back-link,.next-project{display:none}.wrap{max-width:none;padding-inline:0}.cv-header{padding-block:0 24px}.cv-header h1{font-size:32pt}.cv-section{padding-block:20px;display:block}.cv-section>h2{margin-bottom:22px}.cv-role{break-inside:avoid}.enter{animation:none}[data-reveal]{opacity:1;transition:none;transform:none}a{color:inherit}}}@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.contents{display:contents}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.delay-1{transition-delay:1ms}.delay-2{transition-delay:2ms}.delay-3{transition-delay:3ms}}@font-face{font-family:Newsreader;src:url(/assets/newsreader.woff2)format("woff2");font-style:normal;font-weight:200 800;font-display:swap}@font-face{font-family:Newsreader;src:url(/assets/newsreader-italic.woff2)format("woff2");font-style:italic;font-weight:200 800;font-display:swap}@font-face{font-family:DM Sans;src:url(/assets/dm-sans.woff2)format("woff2");font-weight:100 1000;font-display:swap}:root{--paper:#f6f4ee;--ink:#292d27;--accent:#742f3e;--muted:#62645d;--line:#d5d4ca;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1)}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}