:root{--ink:#101820;--muted:#58636c;--paper:#f7f5f0;--white:#fff;--accent:#b86b2d;--line:#d9d4ca;--dark:#111a21;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.65}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px max(24px,calc((100% - var(--max))/2));background:rgba(247,245,240,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand span{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--ink);font-family:Georgia,serif;font-weight:700}.brand strong{font-size:.9rem;letter-spacing:.03em}.site-header nav{display:flex;gap:24px}.site-header nav a{color:var(--ink);text-decoration:none;font-size:.88rem;font-weight:650}.site-header nav a:hover{color:var(--accent)}.menu{display:none;border:0;background:none;font-size:1.5rem}.hero,.section{max-width:var(--max);margin:auto;padding:100px 24px}.hero{min-height:calc(100vh - 67px);display:grid;grid-template-columns:1.35fr .65fr;align-items:center;gap:70px}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:800;color:var(--accent)}h1,h2,h3,h4{line-height:1.12;margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(3.2rem,7vw,6.6rem);font-weight:500;letter-spacing:-.045em;margin-bottom:25px}.roles{font-size:1.05rem;font-weight:650}.roles b{color:var(--accent);padding:0 .35rem}.hero h2{font-size:clamp(1.35rem,2.4vw,2.1rem);margin:34px 0 18px}.hero-copy>p:not(.eyebrow):not(.roles){max-width:760px;color:var(--muted);font-size:1.02rem}.actions{display:flex;gap:12px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border:1px solid var(--ink);color:var(--ink);text-decoration:none;background:transparent;font-weight:750;cursor:pointer}.button.primary{background:var(--ink);color:var(--white)}.portrait img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(12%)}.portrait-tag{margin-top:14px;padding-left:14px;border-left:3px solid var(--accent);font-family:Georgia,serif;font-style:italic}.section{border-top:1px solid var(--line)}.section-head{max-width:760px;margin-bottom:50px}.section-head h2,.contact h2{font-family:Georgia,serif;font-size:clamp(2.4rem,5vw,4.6rem);font-weight:500;letter-spacing:-.035em;margin-bottom:18px}.section-head>p:last-child,.contact-copy>p{color:var(--muted);font-size:1.05rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:45px}.stats article{background:var(--white);padding:28px}.stats strong{font-family:Georgia,serif;font-size:3rem;font-weight:500}.stats span{color:var(--accent);font-weight:800;margin-left:5px}.stats p{margin-bottom:0;color:var(--muted);font-size:.9rem}.about-grid,.cert-grid,.project-grid,.software-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.panel,.cert-grid article,.project,.software-grid article{padding:28px;border:1px solid var(--line);background:var(--white)}.panel h3,.cert-grid h3,.project h3,.software-grid h3{font-size:1.15rem}.panel p,.cert-grid p,.project p,.software-grid p{color:var(--muted);margin-bottom:0}.alt{max-width:none;padding-left:max(24px,calc((100% - var(--max))/2));padding-right:max(24px,calc((100% - var(--max))/2));background:#eeeae1}.cert-grid{grid-template-columns:repeat(3,1fr)}.credential{margin-top:28px;border-top:1px solid var(--line);padding-top:20px}.credential summary{cursor:pointer;font-weight:750}.credential img{display:block;max-width:900px;width:100%;margin-top:20px}.project-grid{grid-template-columns:repeat(3,1fr)}.project span{font-family:Georgia,serif;font-size:2.4rem;color:var(--line)}.source-note{color:var(--muted);font-size:.85rem;margin-top:20px}.dark{max-width:none;padding-left:max(24px,calc((100% - var(--max))/2));padding-right:max(24px,calc((100% - var(--max))/2));background:var(--dark);color:var(--white)}.dark .section-head>p:last-child,.dark .software-grid p{color:#bdc5cb}.featured{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.featured article{padding:36px;border:1px solid #43505a;background:#17232c}.featured h3{font-family:Georgia,serif;font-size:3rem;margin-bottom:4px}.featured h4{color:#d7dde1;font-weight:500}.featured p{color:#c2cbd1}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.tags span{border:1px solid #5c6973;padding:5px 9px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.dark .software-grid article{background:#17232c;border-color:#43505a}.techline{text-align:center;margin:44px 0 0;color:#aeb8bf;font-size:.85rem;letter-spacing:.04em}.contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.privacy{font-size:.86rem!important}.contact-form{background:var(--white);padding:34px;border:1px solid var(--line)}label{display:block;font-size:.85rem;font-weight:750;margin-bottom:18px}label small{font-weight:500;color:var(--muted)}input,textarea{display:block;width:100%;margin-top:7px;border:1px solid #c9c4ba;background:#fbfaf7;padding:12px;font:inherit;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(184,107,45,.12)}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}#formStatus{font-size:.85rem;color:var(--muted)}footer{max-width:var(--max);margin:auto;padding:42px 24px;display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}footer p{margin:.25rem 0}@media(max-width:800px){.menu{display:block}.site-header nav{display:none;position:absolute;left:0;right:0;top:67px;flex-direction:column;background:var(--paper);padding:20px 24px;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.hero{grid-template-columns:1fr;padding-top:70px}.portrait{max-width:420px}.stats,.cert-grid,.project-grid,.featured,.about-grid,.software-grid,.contact{grid-template-columns:1fr}.contact{gap:30px}.two{grid-template-columns:1fr}.section,.hero{padding-top:72px;padding-bottom:72px}footer{flex-direction:column}}
