:root{--aqua:#d8efeb;--aqua2:#c2e5df;--cream:#fffdf7;--ink:#202523;--muted:#626a66;--line:#68746e;--coral:#c45e49;--green:#315a50;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;color:var(--ink);font-family:var(--sans);background-color:var(--aqua);background-image:radial-gradient(#ffffff88 .7px,transparent .7px),linear-gradient(125deg,#d8efeb,#d1ebe6 52%,#e1f1ed);background-size:7px 7px,auto;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}.skip{position:absolute;left:-999px;top:8px;background:var(--cream);padding:12px;z-index:30}.skip:focus{left:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topbar{height:82px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:15;background:#d8efebed;border-bottom:1px solid #26332d66;backdrop-filter:blur(14px)}.wordmark{display:flex;align-items:center;gap:12px;font:700 10px var(--sans);letter-spacing:.1em}.wordmark small{display:block;font:500 8px var(--sans);letter-spacing:.08em;margin-top:5px}.mark{width:36px;height:36px;border:1px solid var(--ink);display:grid;place-items:center;border-radius:50%;font:600 12px var(--serif);letter-spacing:-.05em}.main-nav{display:flex;align-items:center;gap:23px;font-size:11px}.main-nav a{padding:8px 0}.main-nav a:hover,.text-link:hover{color:var(--coral)}.main-nav a[aria-current]{text-decoration:underline;text-underline-offset:5px}.nav-contact{border:1px solid var(--ink);padding:10px 14px!important}.menu-toggle{display:none}.hero{max-width:1500px;margin:auto;padding:76px 9vw 67px;display:grid;grid-template-columns:1fr .94fr;gap:7vw;align-items:center}.eyebrow,.section-kicker,.projects-top,.project-rule,.mini-label{font-size:9px;letter-spacing:.14em;font-weight:600}.eyebrow{color:var(--muted)}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--coral);margin-right:8px}.hero h1{font:600 clamp(68px,9vw,120px)/.93 var(--serif);letter-spacing:-.075em;margin:30px 0 22px}.hero h1 em,h2 em{font-style:normal;color:var(--coral)}.hero-sub{font:500 19px/1.45 var(--serif);margin:0}.intro{font-size:13px;line-height:1.85;color:var(--muted);max-width:450px;margin:18px 0 23px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;padding:13px 16px;font-size:10px;font-weight:600;border:1px solid var(--ink);transition:transform .2s,background .2s}.button:hover,.contact-card:hover,.project-card-link:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:var(--cream)}.button-outline{background:transparent}.hero-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:42px;font-size:9px;letter-spacing:.04em;color:var(--muted)}.hero-photo{height:438px;position:relative;margin:0;border:1px solid var(--ink);padding:10px;background:var(--cream);box-shadow:12px 12px 0 #315a501f}.hero-photo img{height:calc(100% - 25px);width:100%;object-fit:cover;object-position:center}.hero-photo figcaption{height:24px;display:flex;align-items:center;justify-content:space-between;font-size:8px;font-weight:600;letter-spacing:.09em}.hero-photo figcaption span{font-weight:400;letter-spacing:0;color:var(--muted)}.photo-stamp{position:absolute;top:23px;right:24px;background:var(--coral);color:white;border-radius:50%;width:61px;height:61px;display:grid;place-content:center;text-align:center;font:600 11px/1.25 var(--serif);transform:rotate(8deg)}.ticker{overflow:hidden;background:var(--green);color:#f6f4e9;height:40px;display:flex;align-items:center}.ticker div{white-space:nowrap;min-width:max-content;font-size:9px;letter-spacing:.15em;animation:marquee 48s linear infinite}.ticker b{color:#f0aa8e;margin:0 25px}@keyframes marquee{to{transform:translateX(-50%)}}.section{max-width:1440px;margin:auto;padding:100px 9vw;display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid #43534b75}.section-kicker{color:var(--muted);padding-top:10px}.section-kicker span{color:var(--coral);margin-right:13px}.section-body h2,.projects h2{font:500 clamp(38px,5.4vw,68px)/1.07 var(--serif);letter-spacing:-.045em;margin:0}.about-grid{display:grid;grid-template-columns:.8fr 1fr;gap:8%;margin-top:36px;max-width:1000px}.about-grid p,.projects-content p{font-size:12px;line-height:1.9;color:#535d57;margin:0 0 15px}.about-grid .lead{font:500 17px/1.7 var(--serif);color:var(--ink)}.text-link{font-size:10px;font-weight:700;display:inline-block;margin-top:8px}.text-link span{margin-left:18px;color:var(--coral)}.heading-row{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:36px}.heading-row>p{font-size:11px;line-height:1.8;color:var(--muted);max-width:250px;margin:0 0 3px}.timeline,.experience-list{border-top:1px solid #43534b80}.timeline-item{display:grid;grid-template-columns:130px 1fr 36px;gap:20px;padding:22px 0;border-bottom:1px solid #43534b70}.timeline-year,.timeline-no{font-size:9px;color:var(--muted);letter-spacing:.05em}.timeline-item h3,.experience h3,.skill-grid h3,.language-list h3{font:600 16px var(--serif);margin:0 0 7px}.timeline-item p{margin:0;color:var(--muted);font-size:11px}.timeline-item .timeline-detail{margin-top:8px;max-width:600px;line-height:1.7}.tag{display:inline-block;background:#badbd2;color:var(--green);padding:5px 8px;font-size:8px;letter-spacing:.1em;margin-top:10px}.timeline-no{justify-self:end;color:#78837c}.experience{display:grid;grid-template-columns:130px 1fr 28px;gap:20px;padding:21px 0;border-bottom:1px solid #43534b70}.exp-date{font-size:9px;line-height:1.7;color:var(--muted);letter-spacing:.04em}.experience h3{margin-bottom:3px}.company{font-size:10px;color:var(--coral);font-weight:700;margin:0 0 9px}.experience div>p:last-of-type{font-size:11px;line-height:1.8;color:#535d57;max-width:650px;margin:0}.exp-arrow{color:var(--coral)}.chips{display:flex;gap:6px;margin-top:11px;flex-wrap:wrap}.chips span,.project-tags span{font-size:8px;color:#56625b;border:1px solid #84928a;padding:5px 7px}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #43534b80;border-bottom:1px solid #43534b80}.skill-grid article{padding:18px 14px 22px 0;border-right:1px solid #43534b70;margin-right:14px}.skill-grid article:last-child{border:0;margin:0}.skill-n{font-size:9px;color:var(--coral);display:block;margin-bottom:26px}.skill-grid h3{font-size:13px;min-height:35px}.skill-grid ul{padding:0;margin:10px 0 0;list-style:none}.skill-grid li{font-size:10px;line-height:1.9;color:#535d57}.skill-note,.privacy-note{font-size:9px;line-height:1.7;color:var(--muted);margin:16px 0 0}.projects{padding:50px 9vw 28px;background:#263a34;color:#f8f5eb}.projects-top{display:flex;justify-content:space-between;border-bottom:1px solid #ffffff45;padding-bottom:16px;color:#c4cfc8}.projects-content{max-width:1100px;margin:55px auto 25px;display:grid;grid-template-columns:1fr .7fr;gap:10%;align-items:end}.projects-content .eyebrow{color:#b8c4bb}.projects h2 em{color:#eea287}.projects-content p{color:#d1d7cf}.projects-content .project-caption{font-size:9px;color:#adbab1}.project-filters{display:flex;gap:8px;max-width:1100px;margin:0 auto 17px}.filter-button{cursor:pointer;background:transparent;border:1px solid #829188;color:#ecf1e9;padding:8px 12px;font-size:9px}.filter-button.is-active,.filter-button:hover{background:#edf1e8;color:#263a34}.project-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.project-card{background:#e7f0e9;color:var(--ink);border:1px solid #dbe4dc;display:flex;flex-direction:column;min-height:285px;transition:transform .2s}.project-card:hover{transform:translateY(-3px)}.project-card[hidden]{display:none}.project-card-top{padding:15px 15px 12px;border-bottom:1px solid #9eada3;display:flex;justify-content:space-between;gap:10px;align-items:center}.project-number{font:600 15px var(--serif);color:var(--coral)}.project-type{font-size:8px;color:var(--muted);text-align:right}.project-card-content{padding:15px;flex:1}.mini-label{color:var(--coral);font-size:8px}.project-card h3{font:600 18px/1.25 var(--serif);margin:10px 0}.project-card-content>p:not(.mini-label){font-size:10px;line-height:1.7;color:#59635c;margin:0}.project-card-content .project-file{margin-top:12px!important;font-size:8px!important;font-weight:700}.project-card-link{border-top:1px solid #9eada3;padding:12px 15px;display:flex;justify-content:space-between;font-size:9px;font-weight:700;transition:transform .2s}.project-card-link span:last-child{color:var(--coral)}.project-rule{border-top:1px solid #ffffff45;padding-top:15px;margin-top:24px;display:flex;justify-content:space-between;color:#c4cfc8;font-size:8px}.languages{padding-top:88px}.language-list{border-top:1px solid #43534b80;display:grid;grid-template-columns:repeat(4,1fr)}.language-list article{padding:17px 12px 17px 0;border-right:1px solid #43534b70;margin-right:12px;position:relative}.language-list article:last-child{border:0;margin:0}.language-list article>span{font-size:8px;color:var(--coral)}.language-list h3{font-size:18px;margin:13px 0 5px}.language-list p{font-size:10px;color:var(--muted);margin:0}.language-list b{position:absolute;right:12px;top:18px;font:500 12px var(--serif);color:#82958b}.contact{border-bottom:0}.contact-body .eyebrow{margin:0 0 17px}.contact-intro{max-width:500px;font-size:12px;line-height:1.9;color:#535d57;margin:20px 0 30px}.contact-actions{border-top:1px solid #43534b80;max-width:760px}.contact-card{display:grid;grid-template-columns:150px 1fr 22px;align-items:center;padding:15px 0;border-bottom:1px solid #43534b70;transition:transform .2s}.contact-card span{font-size:8px;color:var(--muted);letter-spacing:.08em}.contact-card strong{font:500 13px var(--serif)}.contact-card i{font-style:normal;color:var(--coral);justify-self:end}.cv-link{display:inline-flex;align-items:center;gap:26px;margin-top:23px;background:var(--coral);color:white;padding:13px 15px;font-size:10px;font-weight:700}.privacy-note{margin-top:9px}footer{border-top:1px solid #43534b70;padding:24px 6vw;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}footer>span,footer>a:nth-of-type(2){font-size:8px;letter-spacing:.08em;color:var(--muted)}footer .mark{width:30px;height:30px}footer .wordmark{font-size:9px}footer small{font-size:8px}footer .credits{width:100%;text-align:right;color:var(--muted)}footer .credits a{text-decoration:underline;text-underline-offset:2px}.reveal{opacity:0;transform:translateY(12px);transition:opacity .55s,transform .55s}.reveal.is-visible{opacity:1;transform:none}:focus-visible{outline:3px solid #a34232;outline-offset:3px}
/* Project detail pages */
.project-page{min-height:100vh}.project-wrap{max-width:1320px;margin:auto;padding:28px 7vw 80px}.breadcrumb{font-size:10px;color:var(--muted);margin:7px 0 28px}.breadcrumb span{padding:0 9px;color:var(--coral)}.project-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:8%;align-items:start;padding:35px 0 40px;border-top:1px solid #43534b80}.project-intro h1{font:600 clamp(38px,6vw,70px)/1.05 var(--serif);letter-spacing:-.04em;margin:16px 0}.project-summary{font-size:14px;line-height:1.8;color:var(--muted);max-width:550px}.project-facts{border:1px solid var(--ink);background:#fffdf780;padding:22px}.project-facts>p:last-of-type{font-size:11px;line-height:1.8;color:#535d57}.project-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.report-shell{border:1px solid var(--ink);background:var(--cream);padding:14px}.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 6px 14px}.report-toolbar strong{font:500 13px var(--serif)}.report-actions{display:flex;gap:8px;flex-wrap:wrap}.report-actions .button{font-size:9px;padding:10px 12px}.document-viewer{display:block;width:100%;height:min(78vh,850px);min-height:530px;border:1px solid #afb8b0;background:#e8ece8}.document-viewer.office{height:75vh}.report-help{font-size:9px;color:var(--muted);margin:12px 5px 4px}.project-photo{margin:0 auto 25px;max-width:900px;border:1px solid var(--ink);background:var(--cream);padding:10px}.project-photo img{display:block;width:100%;max-height:460px;object-fit:cover}.photo-credit{font-size:8px;color:var(--muted);padding:9px 3px 0}.photo-credit a{text-decoration:underline;text-underline-offset:2px}.project-notes{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}.project-note{background:#fffdf780;border:1px solid #43534b80;padding:20px}.project-note h2{font:500 18px var(--serif);margin:10px 0}.project-note>p:last-child,.cad-document p:not(.mini-label){font-size:10px;line-height:1.8;color:var(--muted)}.project-pagination{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #43534b80;padding-top:18px;font-size:10px}.project-pagination a:hover{text-decoration:underline;text-underline-offset:3px}.cad-document{display:flex;gap:20px;align-items:center;padding:36px;border:1px solid var(--ink);background:var(--cream)}.cad-badge{width:74px;height:74px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:600 21px var(--serif);color:var(--coral);flex:none}.cad-document h2{font:500 24px var(--serif);margin:8px 0}.project-not-found{padding:80px 0}.project-not-found h1{font:500 45px var(--serif)}
@media(max-width:1000px){.topbar{padding:0 4vw}.main-nav{gap:12px;font-size:10px}.hero{padding-left:7vw;padding-right:7vw;gap:5vw}.section{padding-left:7vw;padding-right:7vw}.project-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){html{scroll-padding-top:76px}.topbar{height:70px;padding:0 6vw}.menu-toggle{display:block;background:transparent;border:1px solid var(--ink);padding:8px 11px;font-size:13px}.main-nav{display:none;position:absolute;top:69px;left:0;right:0;padding:10px 6vw 18px;background:var(--aqua);border-bottom:1px solid #43534b80;flex-direction:column;align-items:stretch;gap:0}.main-nav.is-open{display:flex}.main-nav a{padding:12px 0;border-bottom:1px solid #43534b30}.main-nav .nav-contact{border:0}.hero{padding:52px 7vw 45px;grid-template-columns:1fr;gap:32px}.hero h1{font-size:clamp(65px,17vw,100px)}.hero-photo{height:360px;max-width:650px;width:100%;margin:auto}.section{padding:70px 7vw;grid-template-columns:1fr;gap:20px}.section-kicker{padding:0}.about-grid{gap:5%}.heading-row{align-items:start;flex-direction:column;gap:12px}.skill-grid{grid-template-columns:repeat(2,1fr);row-gap:0}.skill-grid article:nth-child(2){border-right:0;margin:0}.skill-grid article:nth-child(3),.skill-grid article:nth-child(4){border-top:1px solid #43534b70;padding-top:18px}.projects{padding:40px 7vw 24px}.projects-content{margin:42px auto 22px;grid-template-columns:1fr;gap:15px}.project-grid{grid-template-columns:repeat(2,1fr)}.project-intro{grid-template-columns:1fr;gap:20px}.project-wrap{padding-left:6vw;padding-right:6vw}}
@media(max-width:520px){.wordmark{font-size:9px}.wordmark small{font-size:7px}.hero{padding-top:40px}.hero-photo{height:300px}.hero-photo figcaption{font-size:7px}.hero-photo figcaption span{font-size:7px}.hero-meta{margin-top:28px;gap:10px;flex-direction:column}.section-body h2,.projects h2{font-size:clamp(38px,11vw,54px)}.about-grid{grid-template-columns:1fr;gap:5px}.timeline-item,.experience{grid-template-columns:82px 1fr;gap:11px}.timeline-no,.exp-arrow{display:none}.timeline-item h3,.experience h3{font-size:14px}.timeline-item p,.experience div>p:last-of-type{font-size:10px}.skill-grid article{margin-right:9px;padding-right:8px}.skill-grid h3{font-size:12px}.skill-grid li{font-size:9px}.project-grid{grid-template-columns:1fr}.project-card{min-height:250px}.project-filters{flex-wrap:wrap}.project-rule{font-size:7px}.language-list{grid-template-columns:repeat(2,1fr)}.language-list article:nth-child(2){border:0;margin:0}.language-list article:nth-child(3),.language-list article:nth-child(4){border-top:1px solid #43534b70;padding-top:16px}.contact-card{grid-template-columns:1fr 20px;row-gap:5px}.contact-card span{grid-column:1}.contact-card strong{grid-row:2;font-size:12px}.contact-card i{grid-column:2;grid-row:1/3}.credits{text-align:left!important}.project-wrap{padding-top:18px}.project-intro{padding-top:23px}.report-shell{padding:8px}.report-toolbar{align-items:flex-start;flex-direction:column}.report-actions{width:100%}.document-viewer{min-height:400px;height:65vh}.project-notes{grid-template-columns:1fr}.project-pagination{font-size:9px}.cad-document{padding:20px;align-items:flex-start}.cad-badge{width:56px;height:56px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
