
:root{--paper:#f8faf7;--white:#fff;--ink:#1c3331;--muted:#586d68;--mint:#e4f3ec;--teal:#126a60;--line:#dbe7df;--shadow:0 18px 60px #1d514010}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--teal)}a:hover{color:#07473e}a:focus-visible,button:focus-visible{outline:3px solid #3ba99a;outline-offset:3px}img{max-width:100%}.container{width:min(1120px,calc(100% - 44px));margin:auto}.topbar{background:#f1f7f2;border-bottom:1px solid var(--line);font-size:.83rem;color:var(--muted);padding:7px 0}.site-header{background:#ffffffed;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}.nav{min-height:75px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:-.04em;font-size:1.18rem;white-space:nowrap}.mark{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:var(--teal);color:white;font-size:.84rem;letter-spacing:-.04em}.links{display:flex;align-items:center;gap:24px}.links a{font-size:.91rem;font-weight:650;text-decoration:none;color:#45625b}.links a[aria-current=page],.links a:hover{color:var(--teal)}.nav-toggle{display:none;border:1px solid var(--line);border-radius:9px;padding:7px 12px;background:white;color:var(--ink);font:inherit}.hero{padding:100px 0 104px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,#d7f0e4 0%,#eaf6ed70 45%,transparent 70%);right:-160px;top:-150px;pointer-events:none}.hero .container{position:relative}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.17em;font-weight:800;color:var(--teal);margin:0 0 17px}h1,h2,h3{letter-spacing:-.048em;line-height:1.12}h1{font-size:clamp(2.8rem,7.2vw,5.4rem);font-weight:740;max-width:880px;margin:0 0 25px}h2{font-size:clamp(2rem,4.5vw,3rem);margin:0 0 17px}h3{font-size:1.28rem;margin:0 0 12px}.lead{font-size:clamp(1.05rem,2vw,1.28rem);color:var(--muted);max-width:710px;line-height:1.65}.hero .lead{margin:0 0 29px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 19px;border-radius:10px;background:var(--teal);color:white;text-decoration:none;font-size:.93rem;font-weight:750;border:1px solid var(--teal)}.btn:hover{background:#094d46;color:white}.btn.secondary{background:white;border-color:var(--line);color:var(--ink)}.btn.secondary:hover{background:var(--mint)}.section{padding:75px 0}.section.alt{background:#eff6f0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:29px}.section-heading p{color:var(--muted);max-width:630px;margin:0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:var(--shadow)}.card p{color:var(--muted);margin:0 0 16px}.card h3 a{text-decoration:none;color:var(--ink)}.card h3 a:hover{color:var(--teal)}.card .meta{font-size:.8rem;color:var(--teal);font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin:0 0 11px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 0}.tag{background:#eff6f0;color:#46695d;padding:4px 9px;border-radius:7px;font-size:.76rem;font-weight:650}.text-link{font-weight:750;text-decoration:none}.text-link:after{content:" →"}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:75px;align-items:center}.statement{border-left:3px solid #5bb69c;padding:10px 0 10px 23px;font-size:1.35rem;line-height:1.5;letter-spacing:-.02em}.footer{border-top:1px solid var(--line);padding:33px 0;color:var(--muted);font-size:.9rem}.footer .container{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-hero{padding:72px 0 45px}.page-hero h1{font-size:clamp(2.6rem,6vw,4.3rem);margin-bottom:18px}.page-hero .lead{margin:0}.filterbar{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:24px}.filter{font:inherit;font-size:.86rem;font-weight:700;border:1px solid var(--line);background:white;color:var(--muted);padding:8px 14px;border-radius:30px;cursor:pointer}.filter[aria-pressed=true]{background:var(--teal);color:white;border-color:var(--teal)}.project[hidden]{display:none}.notice{background:#edf6f0;border:1px solid #cce5d6;border-radius:14px;padding:19px 22px;color:#35574c}.article{max-width:780px}.article p,.article li{color:var(--muted)}.article h2{font-size:1.75rem;margin-top:38px}.article h3{margin-top:24px}.article ul{padding-left:23px}.divider{height:1px;background:var(--line);margin:28px 0}.contact-panel{background:#e8f5ed;border:1px solid #cde7d6;padding:35px;border-radius:18px}.small{font-size:.87rem;color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:850px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split{gap:28px}.links{gap:13px}.links a{font-size:.84rem}}@media(max-width:650px){.container{width:min(100% - 32px,1120px)}.nav{min-height:66px;flex-wrap:wrap}.nav-toggle{display:block}.links{display:none;width:100%;padding:0 0 17px;flex-direction:column;align-items:stretch;gap:0}.links.open{display:flex}.links a{padding:9px 4px;font-size:1rem}.hero{padding:72px 0 75px}.section{padding:55px 0}.grid,.grid.two,.split{grid-template-columns:1fr}.section-heading{display:block}.card{padding:22px}.page-hero{padding:56px 0 35px}.contact-panel{padding:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.resume-document{max-width:920px;margin:auto;padding:clamp(22px,5vw,48px)}.resume-document h2{font-size:1.42rem;margin:30px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.resume-document h2:first-child{margin-top:0}.resume-document h3{font-size:1.03rem;line-height:1.5;letter-spacing:-.015em;margin:18px 0 8px}.resume-document li{margin:8px 0}.resume-document p{margin:10px 0}.resume-table-wrap{overflow-x:auto}.resume-table{border-collapse:collapse;width:100%;font-size:.91rem}.resume-table td,.resume-table th{border-bottom:1px solid var(--line);padding:12px 9px;text-align:left;vertical-align:top}.resume-table th{color:var(--teal)}@media print{.topbar,.site-header,.footer,.actions{display:none!important}.resume-document{border:0;box-shadow:none;padding:0}.section{padding:0}.page-hero{padding:0 0 15px}}
