@font-face{font-family:MonumentExtended;src:url(/fonts/monumentextended-regular-webfont.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--paper: #f5f4f0;--ink: #202521;--muted: #626962;--gold: #9b8149;--green: #397969;--rust: #bf6b57;--line: #dcded4;font-family:DM Sans,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{margin:0;font-size:16px;line-height:1.65}body,#root{min-width:320px}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{color:inherit}a{color:var(--green);text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:#244d42}button,a{touch-action:manipulation}:focus-visible{outline:3px solid var(--green);outline-offset:5px}::selection{background:#d7c49a;color:#202521}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.2}h1,h2,.brand{font-family:MonumentExtended,sans-serif;font-weight:400;text-transform:uppercase}h2{font-size:clamp(2rem,3.4vw,3.4rem);letter-spacing:-.035em}h3{font-size:1.2rem}.eyebrow{font-size:.75rem;line-height:1.5;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.body-copy{color:var(--muted);font-size:1.0625rem;line-height:1.8}.button,.btn-success{display:inline-flex;justify-content:center;align-items:center;gap:1.2rem;min-height:52px;padding:14px 26px;border:1px solid transparent;border-radius:40px;color:#fff;background:var(--green);font-weight:700;text-decoration:none;cursor:pointer;transition:background .18s,transform .18s}.button:hover,.btn-success:hover{background:#2a5d50;color:#fff;transform:translateY(-2px)}.button:disabled{opacity:.7;cursor:wait;transform:none}.text-link{display:inline-flex;align-items:center;gap:.6rem;font-weight:600}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:1.5rem;line-height:1;transition:background .18s}.icon-button:hover{background:#e5e9df}.skip-link{position:fixed;z-index:200;top:12px;left:12px;padding:12px 20px;background:#fff;transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header{height:104px;position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:34px;padding:0 clamp(24px,4vw,72px);background:#f5f4f0f2;border-bottom:1px solid rgb(32 37 33 / 7%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{color:var(--ink);text-decoration:none;font-size:1.55rem;line-height:1}.header-tagline{font-size:.7rem;text-transform:uppercase;font-weight:700;color:var(--muted);line-height:1.5}.header-links{display:flex;gap:32px;margin:0 auto;font-size:.8rem;font-weight:700;text-transform:uppercase}.header-links a{text-decoration:none}.header-links a span{margin-left:4px}.header-email{color:var(--ink);text-transform:uppercase;font-size:.75rem;font-weight:700;text-decoration:none}.menu-toggle{width:48px;height:48px;margin-left:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:0;background:none}.menu-toggle span{width:28px;height:2px;background:var(--ink)}.site-menu{position:fixed;inset:0 0 0 auto;margin:0;width:min(480px,100%);height:100dvh;max-height:100dvh;border:0;background:var(--paper);color:var(--ink);padding:0;box-shadow:-20px 0 70px #0000001f}.site-menu::backdrop{background:#181f1b73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}html:has(.site-menu[open]){overflow:hidden}.menu-inner{padding:clamp(26px,5vw,52px)}.menu-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.menu-heading p{margin:0;color:var(--muted)}.menu-inner nav{display:grid;margin-bottom:40px}.menu-inner nav a{display:flex;gap:20px;padding:13px 0;color:var(--ink);font-size:1.8rem;text-decoration:none}.menu-inner nav a:hover{color:var(--green)}.menu-inner nav a span{font-size:.75rem;color:var(--gold);padding-top:11px}.menu-meta{display:flex;gap:24px;margin-top:30px;font-size:.85rem}.portfolio-section{position:relative;isolation:isolate;padding:110px 0;scroll-margin-top:0;overflow:clip}.section-container{width:calc(100% - 160px);max-width:1200px;margin:0 auto}.section-kicker{display:flex;align-items:center;gap:24px;color:var(--muted);margin-bottom:24px}.section-kicker>span{color:var(--gold)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:44px}.section-heading h2{margin:0;color:var(--gold)}.section-heading>p{margin:0 0 5px;color:var(--muted)}.intro-section{padding:104px 0 0;margin-top:-104px;min-height:100svh;background:url(/img/bg-personal-intro.png) center / cover}.intro-layout{position:relative;display:flex;align-items:center;min-height:max(680px,calc(100svh - 104px))}.intro-copy{position:relative;z-index:2;width:51%;padding:60px 0 105px}.intro-copy h1{color:var(--gold);font-size:clamp(2.6rem,4.1vw,4.6rem);letter-spacing:-.045em;margin-bottom:32px;white-space:nowrap}.intro-role{font-size:clamp(1rem,1.4vw,1.45rem);letter-spacing:-.025em;margin-bottom:32px}.intro-description{color:var(--muted);font-size:1.125rem;line-height:1.8;max-width:470px;margin-bottom:42px}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px}.portrait-wrap{position:absolute;right:-4vw;bottom:0;width:clamp(500px,45vw,800px);height:min(80svh,840px);z-index:1}.portrait{width:100%;height:100%;object-fit:cover;object-position:center top}.intro-decoration{position:absolute;inset:0;z-index:-1;overflow:hidden}.circle{display:block;position:absolute;border-radius:50%}.circle-gold{width:160px;height:160px;background:#b39c68;left:-80px;top:47%}.circle-rust{width:min(950px,70vw);aspect-ratio:1;background:var(--rust);left:60%;top:47%}.scroll-prompt{position:absolute;left:50%;bottom:25px;transform:translate(-50%);z-index:3;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--muted);text-align:center}.scroll-prompt span{display:block;font-size:2rem;line-height:1.3}.section-navigation{position:fixed;z-index:30;right:32px;top:50%;display:grid;gap:9px;transform:translateY(-50%)}.section-navigation a{width:26px;height:26px;display:grid;place-items:center;position:relative}.section-navigation a:after{content:"";width:7px;height:7px;border-radius:50%;background:#a2a69c;transition:transform .2s}.section-navigation a[aria-current]:after{background:var(--gold);transform:scale(1.5)}.section-navigation a span{position:absolute;right:32px;padding:2px 8px;color:var(--ink);background:var(--paper);font-size:.75rem;opacity:0;pointer-events:none}.section-navigation a:hover span,.section-navigation a:focus-visible span{opacity:1}.projects-section{background:#eaece4;min-height:880px}.project-picker{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:40px}.project-picker button{border:1px solid #cbd3c6;background:transparent;padding:9px 18px;border-radius:30px;font-size:.85rem;min-height:42px}.project-picker button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.project-picker button:hover{border-color:var(--green)}.project-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:65px;align-items:center;min-height:365px}.project-copy h3{font-family:MonumentExtended,sans-serif;text-transform:uppercase;font-weight:400;font-size:clamp(1.7rem,2.7vw,2.65rem);letter-spacing:-.045em;color:var(--ink);margin-bottom:24px;overflow-wrap:anywhere}.project-copy .eyebrow{color:var(--green)}.project-visual{display:flex;align-items:center;justify-content:center;min-height:340px}.project-visual img{width:100%;height:340px;object-fit:contain}.project-result{display:flex;flex-direction:column;justify-content:center;gap:16px;width:100%;aspect-ratio:1.5;border-radius:50% 50% 45% 45%;background:#d7dfcf;color:#365b47;text-align:center;padding:30px}.project-result strong{font-size:clamp(2.7rem,4.7vw,4.7rem);font-weight:500;line-height:1.1;letter-spacing:-.06em}.project-result>span:last-child{font-size:.85rem}.project-resolvd .project-result{color:#824e3f;background:#e6d7cb}.carousel-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:30px}.carousel-controls>span{margin-right:12px;color:var(--muted);font-size:.85rem}.experience-list{border-top:1px solid var(--line)}.experience-item{border-bottom:1px solid var(--line)}.experience-item summary{display:grid;grid-template-columns:180px 1fr 1.3fr 24px;gap:24px;align-items:center;list-style:none;padding:24px 0}.experience-item summary::-webkit-details-marker{display:none}.experience-date{color:var(--muted);font-size:.8rem}.experience-company{font-size:1.2rem;font-weight:700}.company-green{color:#316e50}.company-blue{color:#2c6197}.company-pink{color:#a44365}.experience-role{font-size:.9rem}.details-indicator{font-size:1.4rem;font-weight:400;color:var(--green);transition:transform .2s}.experience-item[open] .details-indicator{transform:rotate(45deg)}.experience-item>p{padding:0 30px 24px 204px;margin:0;color:var(--muted);line-height:1.8}.education{display:flex;gap:35px;align-items:baseline;margin-top:40px;color:var(--muted);font-size:.9rem}.education strong{color:var(--ink)}.awards-section{background:#efede5}.award-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}.award-item{display:flex;flex-direction:column;align-items:flex-start}.award-item+.award-item{border-left:1px solid #d8d8cc;padding-left:38px}.award-item h3{line-height:1.45}.award-item .body-copy{font-size:1rem;flex-grow:1}.award-item .eyebrow{color:var(--muted)}.award-logo{display:flex;align-items:center;height:125px;margin:15px 0 32px}.award-logo img{max-height:95px;max-width:190px;width:auto}.skills-layout{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.skills-layout h2{color:var(--gold)}.skill-focus{border-left:3px solid #aabfa6;padding-left:20px;margin-top:32px;color:var(--green);font-size:.9rem;line-height:1.9}.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;list-style:none;padding:0;margin:0}.tech-grid li{display:flex;flex-direction:column;align-items:center;gap:11px;padding:20px 8px;background:#eeeee7;border-radius:10px;font-size:.8rem}.tech-grid img{object-fit:contain}.legacy-anchor{position:absolute;top:0}.contact-section{background:#e9eee5}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact-copy h2{color:var(--gold)}.contact-copy .body-copy{max-width:370px;margin-bottom:32px}.contact-email{font-size:clamp(1.2rem,2vw,1.6rem);display:inline-block;margin-bottom:20px}.contact-details{color:var(--muted);font-size:.9rem;line-height:2}.contact-details a{color:inherit}.contact-form{min-width:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{margin-bottom:22px}.field label{display:block;font-size:.85rem;font-weight:700;margin-bottom:7px}.field input:not([type=file]),.field select,.field textarea{width:100%;border:1px solid #b8c4b4;border-radius:6px;background:#f8faf5;color:var(--ink);padding:12px 14px;min-height:48px}.field textarea{resize:vertical;min-height:145px}.field [aria-invalid=true]{border-color:#ad3b31}.field input[type=file]{width:100%;font-size:.85rem}.field input::file-selector-button{border:1px solid #aebca8;border-radius:4px;background:#f4f7ee;color:var(--ink);padding:10px 14px;margin-right:12px;cursor:pointer}.field-hint{color:var(--muted);font-size:.75rem;margin:7px 0 0;overflow-wrap:anywhere}.field-error{display:block;color:#9e3026;font-size:.8rem;margin-top:6px}.form-message{padding:14px 18px;border-radius:6px;margin-bottom:20px}.form-success{background:#d5e5cc;color:#265333}.form-error{background:#f4ded8;color:#8e2e26}.form-privacy{font-size:.75rem;color:var(--muted);margin:18px 0 0}.site-footer{display:flex;flex-wrap:wrap;align-items:center;gap:25px;padding:38px clamp(24px,4vw,72px);border-top:1px solid var(--line)}.site-footer .brand{font-size:1.2rem}.site-footer p{margin:0;font-size:.75rem;color:var(--muted)}.site-footer nav{display:flex;flex-wrap:wrap;gap:22px;margin-left:auto;font-size:.75rem}.site-footer nav a{color:var(--muted)}.document-page{width:calc(100% - 48px);max-width:860px;min-height:65vh;margin:65px auto 100px}.document-page>h1{font-size:clamp(1.6rem,4vw,3rem);color:var(--gold);margin:40px 0;overflow-wrap:anywhere}.page-content{line-height:1.85;color:var(--muted)}.page-content h2{font-family:DM Sans,sans-serif;font-weight:700;font-size:1.35rem;text-transform:none;color:var(--ink);letter-spacing:0;margin:35px 0 12px}.page-content h3{font-size:1.1rem;color:var(--ink);margin:25px 0 10px}.page-content li{margin:8px 0}.page-content a{overflow-wrap:anywhere}@media (max-width: 1199px){.site-header{gap:22px}.header-email{display:none}.header-links{margin-left:auto;margin-right:0}.section-container{width:calc(100% - 120px)}.intro-copy{width:54%}.intro-copy h1{font-size:3rem}.intro-description{font-size:1rem;max-width:390px}.portrait-wrap{width:55vw;right:-6vw;height:73svh;max-height:720px}.project-layout,.skills-layout,.contact-layout{gap:40px}.experience-item summary{grid-template-columns:145px 1fr 1.2fr 20px;gap:20px}.experience-item>p{padding-left:165px}.section-navigation{right:16px}}@media (max-width: 767px){html{scroll-padding-top:80px}.site-header{height:80px;gap:18px;padding:0 24px}.brand{font-size:1.3rem}.header-tagline{font-size:.6rem}.header-links{display:none}.menu-toggle{margin-left:auto}.section-navigation{display:none}.section-container{width:calc(100% - 48px)}.portfolio-section{padding:70px 0}.section-heading{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:32px}.section-heading>p br{display:none}h2{font-size:clamp(1.75rem,5.6vw,2.5rem)}.section-kicker{margin-bottom:20px;gap:18px}.intro-section{margin-top:-80px;padding:80px 0 0;min-height:0}.intro-layout{display:flex;flex-direction:column;min-height:auto}.intro-copy{width:100%;padding:55px 0 32px}.intro-copy h1{font-size:clamp(2rem,7.8vw,3.4rem);margin-bottom:24px}.intro-role{font-size:clamp(.9rem,3.2vw,1.3rem);margin-bottom:24px}.intro-description{max-width:500px;font-size:1rem;margin-bottom:26px}.actions{gap:18px}.button{padding:13px 22px;font-size:.9rem}.actions .text-link{font-size:.85rem}.portrait-wrap{position:relative;bottom:auto;right:auto;width:min(100%,460px);height:390px;margin-left:auto}.portrait{object-fit:cover;object-position:top}.circle-rust{top:auto;bottom:-250px;left:28%;width:700px}.circle-gold{width:90px;height:90px;left:-60px;top:53%}.scroll-prompt{display:none}.projects-section{min-height:auto}.project-picker{gap:8px;margin-bottom:32px}.project-picker button{padding:9px 13px;font-size:.78rem}.project-layout{grid-template-columns:1fr;gap:28px;min-height:auto}.project-visual{min-height:240px}.project-visual img{height:250px}.project-result{max-width:400px;min-height:240px;aspect-ratio:auto}.project-result strong{font-size:3.5rem}.carousel-controls{padding-top:22px}.experience-item summary{grid-template-columns:1fr 28px;gap:7px 16px;padding:20px 0}.experience-date,.experience-company,.experience-role{grid-column:1}.details-indicator{grid-column:2;grid-row:1 / 4;align-self:center}.experience-company{font-size:1.2rem}.experience-item>p{padding:0 0 22px;font-size:.95rem}.education{display:block;margin-top:32px}.award-grid{grid-template-columns:1fr;gap:40px}.award-item+.award-item{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:32px}.award-logo{height:90px;margin:0 0 25px}.award-logo img{max-height:80px}.skills-layout,.contact-layout{grid-template-columns:1fr;gap:38px}.tech-grid{gap:9px}.tech-grid li{padding:16px 5px;font-size:.75rem}.form-grid{grid-template-columns:1fr;gap:0}.site-footer{gap:18px;padding:30px 24px}.site-footer nav{margin-left:0;flex-basis:100%;gap:12px 20px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
