:root{--paper:#f7f5ed;--ink:#21332a;--yellow:#f2d649;--rust:#a65038;--line:#d3d3c7;--muted:#667069}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Helvetica,Arial,sans-serif}a,button{color:inherit}button{font:inherit}p{line-height:1.65}h1,h2,h3,h4,p{margin:0}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--rust);outline-offset:4px}.skip-link{position:fixed;z-index:10;top:1rem;left:1rem;padding:.8rem;background:var(--ink);color:white;transform:translateY(-150%)}.skip-link:focus{transform:none}.site-shell{max-width:1440px;margin:auto;display:grid;grid-template-columns:250px minmax(0,1fr)}.side-rail{position:sticky;top:0;height:100vh;padding:2.6rem 2.2rem;border-right:1px solid var(--line);display:flex;flex-direction:column}.rail-logo{display:block;width:64px}.rail-logo img{display:block;width:100%;height:auto}.location{font-size:.72rem;color:var(--muted)}.side-rail nav{display:grid;gap:.75rem;margin-top:3rem}.side-rail nav a{font:10px monospace;color:var(--muted);text-decoration:none}.side-rail nav span{font:13px Helvetica,Arial,sans-serif;margin-left:.8rem;color:var(--ink)}.site-shell main{padding:0 4.2rem}.studio-hero{position:relative;min-height:590px;background:var(--yellow);padding:2.5rem 3rem;margin:0 -4.2rem;overflow:hidden}.hero-meta{display:flex;justify-content:space-between;gap:1rem;font:10px monospace;text-transform:uppercase}.hero-copy{position:relative;z-index:1;max-width:650px;margin-top:6.5rem}.cv-section>h2,.hero-copy h1,.me-section h2{font:clamp(4rem,8vw,7.5rem)/.9 Georgia,serif;letter-spacing:-.075em}.cv-section h2 em,.hero-copy h1 em,.me-section h2 em{font-weight:400;color:var(--rust)}.hero-copy>p{max-width:350px;margin-top:2rem;font-size:1.05rem}.portrait{position:absolute;right:8%;bottom:-3%;width:220px;height:275px;object-fit:cover;border:10px solid #e6be42;transform:rotate(4deg)}.smiling-sun{position:absolute;right:37%;top:21%;font:9rem Georgia,serif;color:var(--rust)}.cv-section,.me-section,.split-section,.work-section{border-top:1px solid var(--line);padding:4.5rem 0}.split-section{display:grid;grid-template-columns:185px minmax(0,560px);gap:2rem}.eyebrow{font:10px monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--rust)}.split-section h2{font:2.3rem/1 Georgia,serif;letter-spacing:-.04em}.split-section p:not(.eyebrow){color:var(--muted);max-width:500px;margin-top:1rem}.exploring{background:#e7ead6;margin:0 -4.2rem;padding-left:4.2rem}.section-header{display:flex;justify-content:space-between;gap:2rem;padding-bottom:1rem}.section-header>p:last-child{font-size:.78rem;color:var(--muted)}.project-rows{border-top:1px solid var(--line)}.project-row{display:grid;grid-template-columns:76px minmax(0,1fr) 200px 20px;align-items:center;gap:1.3rem;width:100%;padding:1.35rem 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;text-decoration:none}.project-row:hover{background:#ecebe2}.project-mark{display:grid;place-items:center;width:62px;height:58px;font:10px monospace;background:#dce5d7}.mark-1{background:#edddbf}.mark-2{background:#e6d9d1}.project-row strong{display:block;font:1.7rem/1 Georgia,serif}.project-role,.project-row small{display:block;margin-top:.25rem;font-size:.72rem;line-height:1.5;color:var(--muted)}.project-role{font:10px monospace}.more-work{margin-top:1.2rem}.more-work summary{cursor:pointer;font:1.1rem Georgia,serif}.more-work summary span{font:10px monospace;color:var(--muted);margin-left:.5rem}.cv-actions{display:flex;gap:.7rem;margin-bottom:2.5rem}.button{border:1px solid var(--ink);padding:.7rem 1rem;background:var(--ink);color:var(--paper);cursor:pointer;font-size:.8rem;text-decoration:none}.button.secondary{background:transparent;color:var(--ink)}.cv-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:3rem}.cv-layout aside{background:#e4e6ad;padding:1.4rem;height:max-content}.cv-layout aside h3{font:1.2rem Georgia,serif;margin-top:1.7rem}.cv-layout aside h3:first-child{margin-top:0}.cv-layout aside p{font-size:.75rem;margin-top:.4rem}.career-history article{display:grid;grid-template-columns:100px 1fr;gap:1.2rem;padding:0 0 2rem;margin-bottom:2rem;border-bottom:1px solid var(--line)}.career-history time{font:10px monospace;color:var(--muted)}.career-history h3{font:1.8rem Georgia,serif}.career-history h4{margin:.25rem 0;font-size:.78rem}.career-history li,.career-history p{font-size:.82rem;color:var(--muted)}.career-history ul{padding-left:1.1rem}.me-section{display:grid;grid-template-columns:170px minmax(0,480px);gap:3rem;align-items:center}.me-section img{width:150px;height:150px;object-fit:cover;border-radius:50%;border:6px solid var(--yellow)}.me-section h2{font-size:3.5rem;margin:.5rem 0 1.3rem}.me-section>div>p:last-child{color:var(--muted)}footer{display:flex;justify-content:space-between;gap:2rem;border-top:1px solid var(--line);padding:1.5rem 0 2.5rem;font-size:.7rem}.project-dialog{width:min(650px,calc(100vw - 2rem));max-height:85vh;overflow:auto;border:1px solid var(--line);padding:2.8rem;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #0004}.project-dialog::backdrop{background:#1d2c2377;backdrop-filter:blur(3px)}.dialog-close{float:right;width:34px;height:34px;border:1px solid var(--line);background:transparent;font-size:1.5rem;cursor:pointer}.project-dialog h2{font:3rem/1 Georgia,serif;letter-spacing:-.05em;margin:.8rem 0}.dialog-role{font-size:.78rem;color:var(--rust)}.project-dialog article>p:not(.eyebrow):not(.dialog-role):not(.dialog-links){margin-top:1rem;color:var(--muted)}.dialog-links{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}@media (max-width:760px){.site-shell{display:block}.side-rail{position:static;height:auto;padding:1.3rem 1.4rem;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:45px 1fr;gap:.1rem 1rem}.rail-logo{width:42px;grid-row:1/3}.location{margin:0}.side-rail nav{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.7rem 1rem;margin-top:1rem}.side-rail nav a{font-size:9px}.side-rail nav span{font-size:11px;margin-left:.35rem}.site-shell main{padding:0 1.3rem}.studio-hero{min-height:465px;margin:0 -1.3rem;padding:1.5rem 1.3rem}.hero-copy{margin-top:4.5rem}.hero-copy h1{font-size:3.7rem}.portrait{width:145px;height:185px;right:1rem}.smiling-sun{right:47%;top:25%;font-size:5rem}.split-section{grid-template-columns:1fr;padding:2.8rem 0;gap:1rem}.project-row{grid-template-columns:53px minmax(0,1fr) 15px;gap:.8rem}.project-mark{width:48px;height:50px}.project-row strong{font-size:1.35rem}.project-role{display:none}.section-header{padding-bottom:.8rem}.cv-section,.me-section,.work-section{padding:3rem 0}.cv-layout,.me-section{grid-template-columns:1fr;gap:1.5rem}.career-history article{grid-template-columns:1fr;gap:.5rem}.me-section img{width:110px;height:110px}.project-dialog{padding:2rem}.project-dialog h2{font-size:2.4rem}footer{flex-direction:column;gap:.6rem}}@media print{body{background:#fff;color:#000}.cv-actions,.me-section,.project-dialog,.side-rail,.skip-link,.split-section,.studio-hero,.work-section,footer{display:none!important}.site-shell{display:block}.site-shell main{padding:0}.cv-section{display:block;border:0;padding:0}.cv-layout{grid-template-columns:150px 1fr;gap:20px}.cv-layout aside{background:#fff;border:1px solid #aaa}.career-history article{break-inside:avoid;margin-bottom:12px;padding-bottom:12px}.career-history li,.career-history p,.cv-layout aside p{font-size:9pt}@page{size:A4;margin:14mm}}:root{--paper:#f7f6ed;--ink:#253e32;--yellow:#e8e9b6;--rust:#526127;--line:#d5dace;--muted:#647065}.hero-copy h1{font-family:Avenir Next,Avenir,Segoe UI,Arial,sans-serif;font-size:clamp(3.1rem,7vw,6.5rem);font-weight:500;white-space:nowrap}.hero-copy h1 em{font-family:Iowan Old Style,Georgia,serif;font-style:italic;font-weight:400}.portrait{right:9%;bottom:42px;width:210px;height:262px;border-color:#d7d88f}.smiling-sun{right:4%;top:105px;width:150px;height:150px;color:#6d7938}.smiling-sun svg{width:100%;height:100%}.career-history h3{font-family:Avenir Next,Avenir,Segoe UI,Arial,sans-serif;font-weight:500;letter-spacing:-.045em}.cv-layout aside h3{font-family:Georgia,serif;font-weight:400}@media (max-width:760px){.studio-hero{min-height:0}.hero-copy h1{white-space:normal}.portrait{position:relative;right:auto;bottom:auto;display:block;width:140px;height:175px;margin:2rem 0 0 auto}.smiling-sun{display:none}}html:has(.project-dialog[open]){overflow:hidden}@media screen and (min-width:761px) and (max-width:1100px){.site-shell main{padding:0 2.4rem}.studio-hero{display:grid;grid-template-columns:minmax(0,1fr) clamp(140px,18vw,190px);gap:2rem;align-items:center;margin:0 -2.4rem;padding:2.3rem 2.4rem;min-height:0}.hero-meta{grid-column:1/-1;margin-bottom:2.5rem}.hero-copy{display:contents}.studio-hero .hero-copy h1{grid-column:1;grid-row:2;max-width:100%;font-size:clamp(3.8rem,8vw,5.8rem);white-space:normal}.studio-hero .hero-copy>p{grid-column:1/-1;grid-row:3;margin-top:0}.portrait{grid-column:2;grid-row:2;position:relative;right:auto;bottom:auto;display:block;width:100%;height:auto;aspect-ratio:4/5;margin:0}.smiling-sun{display:none}.project-row{grid-template-columns:64px minmax(0,1fr) 20px}.project-role{display:none}.cv-layout{grid-template-columns:1fr;gap:2rem}}.cv-layout aside a[href^="mailto:"]{overflow-wrap:anywhere}.rail-links{margin:.85rem 0 0;font-size:.7rem}.rail-links a{text-decoration:underline;text-underline-offset:3px}.rail-details{margin-top:1.2rem}.role{margin:0;font-size:.82rem}.location{margin:.2rem 0 0}.print-name{display:none}.hero-meta{justify-content:flex-start}.hero-copy h1{max-width:70%}.cv-section .section-header{padding-bottom:0}.cv-actions{margin-top:1.5rem}@media (max-width:760px){.side-rail{grid-template-columns:42px minmax(0,1fr) auto;gap:.15rem .65rem}.rail-logo{grid-column:1;grid-row:1}.rail-details{grid-column:2;grid-row:1;margin:0;min-width:0}.role{font-size:.72rem}.location{font-size:.65rem}.rail-links{grid-column:3;grid-row:1;justify-self:end;align-self:start;display:flex;flex-direction:row;align-items:flex-end;gap:.5rem;margin:0;font-size:.62rem;white-space:nowrap}.side-rail nav{grid-column:1/-1;grid-row:2;align-self:center;margin-top:.75rem;padding-right:54px;gap:.5rem .75rem}.hero-copy h1{max-width:100%;font-size:clamp(2.7rem,12vw,3.7rem)}.split-section p+p{margin-top:1rem}.studio-hero .portrait{display:none}}@media (max-width:340px){.rail-links{font-size:.58rem;flex-direction:column;gap:.2rem}.side-rail nav{padding-right:0;gap:.4rem .55rem}.side-rail nav span{font-size:10px}}@media print{.print-name{display:block!important;font-family:Georgia,serif!important;font-size:12pt!important;margin:0 0 8px!important}}.mini-pages{width:28px;height:36px;background:#fbfcf7;box-shadow:5px 5px 0 #7f926f80;transform:rotate(-7deg);padding:8px 6px}.mini-pages span{height:2px;background:#8c9c80;display:block;margin-bottom:4px}.mini-road{width:34px;height:34px;border:6px solid #9b7e51;border-left:0;border-bottom:0;border-radius:0 25px 0 0;transform:rotate(-16deg)}.mini-grid{display:grid;grid-template-columns:repeat(3,6px);gap:3px;transform:rotate(12deg)}.mini-grid i{width:6px;height:6px;border:1px solid #ab8062}.mini-grid i:nth-child(5){background:#98674f}.me-section{background:var(--ink);color:#f1f3dd;margin:0 -4.2rem;padding:3rem 4.2rem;border:0;grid-template-columns:110px minmax(0,460px);gap:2rem}.me-section img{width:100px;height:100px;border:3px solid #e8e9b6}.me-section h2{font-family:Avenir Next,Avenir,Segoe UI,Arial,sans-serif;font-size:3rem;font-weight:400;letter-spacing:-.055em}.me-section h2 em{font-family:Iowan Old Style,Georgia,serif;color:#e0e6a8;font-weight:400}.me-section>div>p:last-child{max-width:430px;color:#c3d1ba;font-size:.82rem;line-height:1.7}@media screen and (min-width:761px) and (max-width:1100px){.me-section{margin:0 -2.4rem;padding-left:2.4rem;padding-right:2.4rem}}@media (max-width:760px){.me-section{margin:0 -1.3rem;padding:2rem 1.3rem;grid-template-columns:78px minmax(0,1fr);gap:1rem}.me-section img{width:72px;height:72px}.me-section h2{font-size:2.25rem}.me-section>div>p:last-child{font-size:.75rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-top:auto;padding:0;border:1px solid #b9cac5;border-radius:12px;background:linear-gradient(145deg,#dce6ed,#d7eee2);color:#0a1215;cursor:pointer}.theme-toggle svg{display:block;width:24px;height:24px}.theme-label-dark,.theme-label-light{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.dark .theme-label-light,.theme-label-dark{display:none}.dark .theme-label-dark{display:block}.dark .theme-toggle{border-color:#ffffff24;background:linear-gradient(145deg,#1d272e,#1b3b2d);color:#fff}.dark .decorative-sun,.decorative-moon{display:none}.dark .decorative-moon{display:block}@media (max-width:760px){.theme-toggle{grid-column:3;grid-row:2;justify-self:end;margin:.75rem 0 0}}@media (max-width:340px){.theme-toggle{grid-row:3;margin:0}}@media screen{.dark{--paper:oklch(13% 0.028 261.692);--ink:#fff;--muted:oklch(70.7% 0.022 261.325);--line:oklch(29% 0.026 261.692);--rust:#fff}.dark body{background:var(--paper);color:var(--ink)}.dark p{color:var(--muted)}.dark .career-history h3,.dark .career-history h4,.dark .cv-section .eyebrow,.dark .side-rail nav span,.dark b,.dark strong{color:#fff}.dark .project-row:hover{background:oklch(19% .028 261.692)}.dark .button.secondary{background:transparent}.dark .skip-link{color:var(--paper)}.dark .cv-layout aside,.dark .cv-layout aside a,.dark .cv-layout aside h3,.dark .cv-layout aside p,.dark .project-mark{color:#253e32}.dark .me-section{background:#253e32}.dark .me-section>div>p:last-child{color:#c3d1ba}.dark .studio-hero,.dark .studio-hero .hero-copy h1,.dark .studio-hero .hero-copy p,.dark .studio-hero .hero-meta{color:#253e32}.dark .studio-hero .hero-copy h1 em{color:#526127}.dark .project-dialog article>p:not(.eyebrow):not(.dialog-role):not(.dialog-links){color:var(--muted)}}@media print{.theme-toggle{display:none!important}:root{--paper:#fff!important;--ink:#000!important;--muted:#000!important;--rust:#000!important;color-scheme:light!important}body,html{background:#fff!important;color:#000!important;color-scheme:light!important}}