@font-face{font-family:PortfolioSerif;src:url(/fonts/noto-serif-regular.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:PortfolioSerif;src:url(/fonts/noto-serif-bold.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:PortfolioSans;src:url(/fonts/signika-regular.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:PortfolioSans;src:url(/fonts/signika-semibold.woff2) format("woff2");font-style:normal;font-weight:600 800;font-display:swap}:root{font-family:PortfolioSerif,Georgia,Times New Roman,serif;color:#111;background:#fff;font-synthesis:none;--sans:PortfolioSans,Arial,sans-serif;--green:#9fe78d;--line:#d8d8d2;--muted:#595954}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-size:17px;line-height:1.65;background:#fff}a{color:inherit;text-underline-offset:4px}a:hover{opacity:.72}button,a{transition:opacity .2s ease,transform .2s ease}button:focus-visible,a:focus-visible{outline:3px solid #237348;outline-offset:5px}.skip-link{position:absolute;left:-9999px;top:8px;background:#fff;padding:8px 16px;z-index:20}.skip-link:focus{left:16px}.site-header,.section-shell,.site-footer{max-width:1440px;margin:0 auto;padding-inline:4vw}.site-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:2vw;padding-bottom:2vw}.brand img{display:block;width:60px;height:60px;object-fit:contain}.header-navigation{display:flex;align-items:center;gap:28px}.header-navigation nav,.social-links{display:flex;align-items:center;gap:20px;font-family:var(--sans)}.header-navigation nav a{text-decoration:none;font-weight:600}.social-links a{display:grid;place-items:center;width:30px;height:42px}.social-links svg{width:21px;height:21px}.menu-button{display:none;border:0;background:transparent;padding:8px;cursor:pointer}.menu-button svg{width:30px;height:30px}h1,h2,h3,.eyebrow,.button,.text-link,.experience-period,.tag-row,.site-footer,.contact-links{font-family:var(--sans)}h1,h2,h3{font-weight:600;line-height:1.12;margin:0}h1{font-size:clamp(3.2rem,8vw,7.5rem);letter-spacing:-.07em;max-width:900px}h2{font-size:clamp(2.25rem,5vw,4rem);letter-spacing:-.055em}h3{font-size:1.35rem}p{margin:1em 0}.section-shell{padding-top:120px;padding-bottom:120px}.hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:end;gap:7vw;padding-top:70px}.hero-copy{padding-bottom:12px}.eyebrow{margin:0 0 22px;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#5b5b55}.hero-summary{max-width:590px;margin-top:32px;font-size:1.2rem;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:34px}.button{display:inline-flex;align-items:center;gap:10px;padding:15px 22px;text-decoration:none;font-weight:700}.button svg,.text-link svg,.contact-links svg{width:18px;height:18px}.button-dark{background:#111;color:#fff}.text-link{display:inline-flex;align-items:center;gap:8px;font-weight:700}.hero-art{position:relative;min-height:480px;display:flex;align-items:end;justify-content:center;background:#e8f0ef;overflow:hidden}.hero-art:before{content:"";position:absolute;top:12%;right:10%;bottom:12%;left:10%;border-radius:50%;background:#c5ded8;filter:blur(2px)}.hero-art img{position:relative;width:112%;height:112%;object-fit:contain;transform:translateY(7%);z-index:1}.hero-art-caption{position:absolute;left:18px;right:18px;bottom:17px;display:flex;justify-content:space-between;z-index:2;font:600 .78rem var(--sans);text-transform:uppercase;letter-spacing:.08em}.section-heading{max-width:760px;margin-bottom:54px}.section-heading h2{max-width:700px}.section-intro{max-width:650px;color:var(--muted);font-size:1.05rem}.section-intro p{margin-bottom:0}.impact-section{border-top:1px solid var(--line)}.impact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.impact-card{background:#fff;padding:30px 25px;min-height:220px}.impact-card strong{display:block;font:600 clamp(2.4rem,4vw,4.5rem)/1 var(--sans);letter-spacing:-.07em}.impact-card h3{margin-top:28px;font-size:1.05rem}.impact-card p{color:var(--muted);font-size:.95rem}.experience-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;border-top:1px solid var(--line)}.experience-list{border-top:1px solid var(--line)}.experience-item{display:grid;grid-template-columns:150px minmax(0,1fr);gap:30px;padding:30px 0;border-bottom:1px solid var(--line)}.experience-period{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#666}.experience-item h3{font-size:1.8rem}.experience-company{margin:.45rem 0 1.1rem;color:#666;font:600 .9rem var(--sans)}.experience-item>div:last-child>p:not(.experience-company){max-width:650px;color:var(--muted)}.experience-bullets{display:grid;gap:9px;max-width:700px;margin:20px 0 0;padding-left:20px;color:var(--muted)}.experience-bullets li{padding-left:4px}.experience-bullets li::marker{color:#6c9f61}.projects-section{border-top:1px solid var(--line)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 36px}.project-card{display:block;text-decoration:none}.project-visual{aspect-ratio:1.85;display:flex;align-items:flex-end;padding:20px;color:#fff;font:700 .78rem var(--sans);letter-spacing:.08em;text-transform:uppercase;overflow:hidden;position:relative}.project-visual:after{content:"";position:absolute;width:60%;height:60%;right:-10%;bottom:-25%;border-radius:50%;background:#fff4;filter:blur(10px)}.project-card:hover .project-visual{transform:scale(.985)}.visual-teal{background:linear-gradient(135deg,#111d25,#237878 55%,#76d7bd)}.visual-green{background:linear-gradient(135deg,#142118,#426d3b 55%,#b1e373)}.visual-violet{background:linear-gradient(135deg,#1d1731,#5a4b9b 55%,#b7a7ff)}.visual-rose{background:linear-gradient(135deg,#2c1823,#873b6d 55%,#ed9bd3)}.project-visual span{position:relative;z-index:1}.project-card h3{margin:18px 0 6px;font-size:1.65rem}.project-card p{margin:0;max-width:600px;color:var(--muted)}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.tag-row span{border:1px solid #bdbdb5;border-radius:999px;padding:4px 10px;font-size:.72rem;line-height:1.25;font-weight:600;color:#45453f}.architecture-section{border-top:1px solid var(--line)}.architecture-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.architecture-card{background:#fff;padding:28px;min-height:270px}.card-index{display:block;margin-bottom:50px;font:700 .75rem var(--sans);color:#777;letter-spacing:.08em}.architecture-card h3{font-size:1.5rem}.architecture-card p{color:var(--muted)}.skills-section{border-top:1px solid var(--line);display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw}.skills-layout{display:grid;grid-template-columns:repeat(2,1fr);gap:34px}.skill-group h3{font-size:1rem;margin-bottom:12px}.skill-group .tag-row{margin-top:0}.resume-section{display:flex;align-items:center;justify-content:space-between;gap:40px;min-height:340px;background:var(--green);padding:60px 8vw}.resume-section .eyebrow{margin-bottom:16px}.resume-section h2{max-width:700px}.resume-section p:not(.eyebrow){max-width:550px;color:#233322}.contact-section{display:grid;grid-template-columns:1fr 1fr;gap:8vw;border-top:1px solid var(--line)}.contact-links{display:flex;flex-direction:column;align-items:stretch;border-top:1px solid var(--line)}.contact-links a{display:flex;align-items:center;gap:12px;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:700}.contact-links a svg:last-child{margin-left:auto}.site-footer{display:flex;justify-content:space-between;align-items:center;min-height:180px;padding-top:48px;padding-bottom:48px;font-size:.85rem}.site-footer a{text-decoration:none;font-weight:700}@media(max-width:800px){body{font-size:16px}.site-header{flex-wrap:wrap;padding-top:24px;padding-bottom:24px}.brand img{width:50px;height:50px}.menu-button{display:block}.header-navigation{display:none;flex-basis:100%;flex-direction:column;align-items:center;min-height:calc(100svh - 100px);padding:42px 0}.menu-open .header-navigation{display:flex}.header-navigation nav{flex-direction:column;gap:18px;font-size:2rem}.social-links{gap:15px}.section-shell{padding-top:85px;padding-bottom:85px}.hero{grid-template-columns:1fr;gap:42px;padding-top:38px}.hero-art{min-height:350px;order:-1}.hero-copy h1{font-size:clamp(3rem,15vw,6rem)}.impact-grid{grid-template-columns:repeat(2,1fr)}.experience-section,.skills-section,.contact-section{display:block}.experience-list,.skills-layout,.contact-links{margin-top:48px}.project-grid{gap:48px 20px}.architecture-grid{grid-template-columns:1fr}.resume-section{align-items:flex-start;flex-direction:column;padding:60px 4vw}.site-footer{padding-inline:4vw;flex-direction:column;justify-content:center;gap:18px}}@media(max-width:520px){.hero-summary{font-size:1.05rem}.impact-grid{grid-template-columns:1fr}.impact-card{min-height:0}.experience-item{grid-template-columns:1fr;gap:10px}.project-grid{grid-template-columns:1fr}.project-visual{aspect-ratio:1.5}.skills-layout{grid-template-columns:1fr}.hero-actions{align-items:flex-start;flex-direction:column;gap:16px}}.hero{align-items:center;min-height:calc(100svh - 100px);padding-top:36px;padding-bottom:52px}.project-link{display:inline-flex;align-items:center;gap:7px;margin-top:18px;font:600 .88rem var(--sans);text-decoration:underline;text-underline-offset:4px}.project-link svg{width:16px;height:16px}.hero-art{height:min(62vh,560px);min-height:320px}.hero-copy h1{font-size:clamp(2.8rem,5.5vw,5.2rem);letter-spacing:-.055em}@media(max-width:800px){.hero{gap:24px;min-height:calc(100svh - 98px);padding-top:24px;padding-bottom:28px}.hero-art{height:34svh;min-height:220px;max-height:330px}}@media(max-width:520px){.hero-copy h1{font-size:clamp(2.65rem,12vw,4.1rem)}}.project-case-study{margin-top:22px;border-top:1px solid var(--line);font-family:var(--sans)}.project-case-study summary{padding-top:14px;cursor:pointer;font-size:.9rem;font-weight:700;list-style:none}.project-case-study summary::-webkit-details-marker{display:none}.project-case-study summary:after{content:"+";float:right;font-size:1.2rem;font-weight:400}.project-case-study[open] summary:after{content:"−"}.case-study-grid{display:grid;gap:14px;padding:18px 0 4px}.case-study-grid strong{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#6b6b63}.case-study-grid p{margin:5px 0 0;color:var(--muted);font:400 .92rem/1.55 var(--sans)}.knowledge-section,.writing-section{border-top:1px solid var(--line)}.knowledge-columns{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.background-block,.certification-list{border-top:1px solid var(--line);padding-top:22px}.background-block h3{margin-top:24px;font-size:1.1rem}.background-block h3:first-child{margin-top:0}.background-block p{color:var(--muted)}.background-list{display:grid;gap:8px;color:var(--muted);font:600 .92rem var(--sans)}.certification-list{display:grid}.certification-item{display:flex;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);font-family:var(--sans)}.certification-item span,.writing-card>span{font-size:.75rem;color:#777}.certification-item strong{font-size:1.1rem}.writing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.writing-card{display:flex;min-height:290px;flex-direction:column;background:#fff;padding:28px}.writing-card>span{font-family:var(--sans)}.writing-card h3{margin-top:48px;font-size:1.5rem}.writing-card p{color:var(--muted)}.writing-card a{display:inline-flex;align-items:center;gap:7px;margin-top:auto;font:600 .9rem var(--sans)}.writing-card a svg{width:16px;height:16px}@media(max-width:800px){.knowledge-columns{display:block}.knowledge-columns>div+div{margin-top:80px}.writing-grid{grid-template-columns:1fr}}.education-degree{margin-bottom:4px;color:#111!important;font-size:1.1rem}.education-institution{margin:0;color:var(--muted);font-weight:700}.education-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;color:#666;font:600 .82rem var(--sans)}.education-meta strong{color:#111}.education-list{border-top:1px solid var(--line)}.education-item{display:grid;grid-template-columns:58px minmax(0,1fr);gap:18px;padding:24px 0;border-bottom:1px solid var(--line)}.education-mark{display:grid;width:58px;height:58px;place-items:center;background:#111;color:#fff;font:600 .78rem var(--sans);letter-spacing:.06em}.education-content h3{font-size:1.25rem}.education-content .education-degree{margin-top:7px}.education-description{max-width:680px;color:var(--muted);font-size:.95rem}.language-block{margin-top:32px}.language-block h3{margin-bottom:12px;font-size:1.1rem}
