@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap";:root{color:#172a27;font-synthesis:none;text-rendering:optimizelegibility;--ink:#172a27;--muted:#364941;--accent:#154c3f;--line:#83978d;--panel:#fff;--highlight:#e1ede4;--panel-border:2px solid var(--line);--control-border:1px solid var(--line);background:#fafbf8;font-family:DM Sans,sans-serif;font-weight:400;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}a:focus-visible,[tabindex]:focus-visible{outline-offset:5px;outline:3px solid #ad451d}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2}.site-shell{max-width:1320px;margin:auto;padding:0 56px}.project-shell{max-width:none;padding-inline:32px}.site-header{border-bottom:2px solid var(--accent);justify-content:space-between;align-items:center;gap:24px;min-height:106px;display:flex}.brand{align-items:center;gap:14px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.brand-mark{border:2px solid var(--accent);place-items:center;width:42px;height:42px;font-family:Libre Baskerville,Georgia,serif;font-size:14px;display:grid}.brand-subtitle{color:var(--muted);letter-spacing:.07em;font-size:11px;font-weight:400;display:block}nav{align-items:center;gap:28px;font-size:14px;display:flex}nav a{padding:10px 0;text-decoration:none}nav a:hover{text-decoration:underline}.contact-link{gap:18px;display:flex}.skip-link{background:var(--accent);color:#fff;z-index:10;padding:12px;position:absolute;top:-80px;left:16px}.skip-link:focus{top:10px}.skip-link:focus-visible{outline-color:#fff}.home-grid{grid-template-columns:1fr 1.04fr;gap:76px;padding:32px 0 24px;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:600}h1{letter-spacing:-.045em;font-family:Libre Baskerville,Georgia,serif;font-size:clamp(32px,3.1vw,43px);font-weight:400}.profile{font-size:15px}.profile h1{margin:20px 0;line-height:1.3}h1 em{color:var(--accent);font-weight:400}.intro{line-height:1.8}.experience{color:var(--muted);margin-top:12px}.skills{gap:11px;margin:22px 0 18px;display:grid}.skills h2{font-size:inherit;letter-spacing:.03em}.skills p{color:var(--muted);margin-top:3px}.goal{color:var(--muted);margin-top:12px}.projects{font-size:15px}.projects .section-heading{margin-bottom:18px}.section-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-heading h2{font-size:20px}.project-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.project-list li{border-bottom:1px solid var(--line)}.project-link{grid-template-columns:24px 1fr;gap:14px;padding:18px 12px;text-decoration:none;transition:background-color .15s;display:grid}.project-placeholder{color:var(--muted);grid-template-columns:24px 1fr;gap:14px;padding:18px 0;font-size:12px;display:grid}.project-link:hover,.project-link:focus-visible{background:var(--highlight)}.project-number{color:var(--muted);padding-top:3px}.project-link h3{font-size:20px;font-weight:600}.project-summary{color:var(--muted);margin-top:7px;line-height:1.5;display:block}.project-status{color:var(--accent);margin-top:7px;font-weight:700;text-decoration:underline;display:block}.contact-panel{color:#fff;background:#173e34;border:2px solid #173e34;grid-template-columns:1fr 1.04fr;gap:48px;padding:22px 28px;scroll-margin-top:24px;display:grid}.contact-panel h2{margin-top:6px;font-family:Libre Baskerville,Georgia,serif;font-size:22px;font-weight:400}.contact-panel p{color:#e9f5ee;font-size:12px}.contact-card{min-width:0}.contact-button{border:var(--control-border);background:var(--accent);color:#fff;font:inherit;text-align:center;cursor:pointer;padding:9px 14px;font-size:13px;font-weight:600;line-height:1.5;text-decoration:none;display:inline-block}.contact-button:hover{background:#22634f}.contact-button:focus-visible{outline-offset:4px;outline:3px solid #ad451d}.contact-trigger{color:var(--accent);background:#fff;border-color:#fff;margin-bottom:6px}.contact-trigger:hover{background:var(--highlight)}.contact-trigger:focus-visible{outline-color:#fff}.contact-dialog{overscroll-behavior:contain;border:2px solid var(--accent);background:var(--panel);width:min(520px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border-radius:0;padding:24px;font-size:14px;line-height:1.6;overflow:auto}.contact-dialog::backdrop{background:#0d221ca6}.contact-dialog-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.contact-panel .contact-dialog h2{margin:0;font-family:Libre Baskerville,Georgia,serif;font-size:20px;font-weight:400}.contact-panel .contact-dialog p{color:var(--ink);margin-top:12px;font-size:14px}.contact-verification{margin-block:18px}.contact-widget:empty{display:none}.contact-widget{width:fit-content;max-width:100%}.contact-actions{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.contact-verification>.contact-button{margin-top:12px}.contact-address{overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;font-weight:600}.contact-panel .contact-dialog .contact-privacy{border-top:1px solid var(--line);color:var(--muted);padding-top:12px;font-size:12px}.project-page{padding-top:12px}.back-link{padding:4px 0;font-size:12px;display:inline-block}.project-heading{max-width:940px;margin:8px 0 14px}.project-heading h1{margin:8px 0;font-size:clamp(26px,3vw,38px)}.project-heading>p:last-child{color:var(--muted);font-size:14px}.project-intro{border:var(--panel-border);background:var(--panel);margin-bottom:12px;padding:12px 16px}.project-page .project-intro h2{margin:0 0 5px;font-size:16px}.project-intro p{margin:0;font-size:13px;line-height:1.5}.project-grid{grid-template-columns:1.7fr 1fr;gap:30px;display:grid}.preview-panel{background:var(--panel);border:2px solid var(--line);flex-direction:column;justify-content:space-between;min-height:320px;padding:22px;display:flex}.preview-message{text-align:center;max-width:390px;margin:22px auto}.preview-message h2{margin-bottom:12px;font-family:Libre Baskerville,Georgia,serif;font-size:21px;font-weight:400}.preview-message p{margin-top:8px;font-size:13px}.preview-footnote{color:var(--muted);font-size:10px}.project-sidebar h2{font-size:16px}.workflow{color:var(--muted);padding-left:22px;font-size:13px}.workflow li{margin-bottom:13px;padding-left:7px}.workflow li::marker{color:var(--accent);font-weight:600}.decision{border-top:2px solid var(--accent);margin-top:22px;padding-top:20px}.decision h2{margin:8px 0}.decision p{font-size:13px}.project-notes{grid-template-columns:1.7fr 1fr;gap:30px;margin:24px 0;display:grid}.project-notes h2{margin-bottom:8px;font-size:11px}.project-notes p{color:var(--muted);margin-top:6px;font-size:11px}.not-found{padding:80px 0}.not-found h1,.not-found p{margin-bottom:20px}button,select,textarea,input:not([type=radio]):not([type=checkbox]):not([type=range]),.site-shell .mapboxgl-map :is(.mapboxgl-ctrl-group,.mapboxgl-ctrl-group button,.mapboxgl-popup-content,.mapboxgl-ctrl-attrib,.mapboxgl-ctrl-attrib-button){border-radius:0}.site-shell .mapboxgl-ctrl-group{box-shadow:none;border:var(--control-border)}@media (width<=950px){.site-shell{padding:0 28px}.home-grid{gap:32px}.contact-panel{gap:24px}}@media (width<=700px){.site-shell{padding:0 22px}.site-header{gap:14px;min-height:90px}.brand{gap:9px;font-size:14px}.brand-mark{display:none}.brand-subtitle{font-size:9px}nav{gap:16px;font-size:12px}.contact-link{gap:5px}.home-grid{grid-template-columns:1fr;gap:38px;padding:32px 0}.profile h1{font-size:clamp(30px,7.8vw,43px)}.contact-panel,.project-grid,.project-notes{grid-template-columns:1fr}.contact-panel{gap:18px;padding:22px}.preview-panel{min-height:300px}.project-notes{gap:22px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
