@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap');:root{--bg:#f7f9f8;--panel:#fff;--text:#142c32;--muted:#597079;--line:#dbe5e3;--accent:#007963;--soft:#e6f1ed;--shadow:0 20px 60px #173c3312}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.7 'DM Sans',sans-serif}body.dark{--bg:#101e22;--panel:#17292e;--text:#edf5f1;--muted:#aac0bd;--line:#30484b;--accent:#65d9b6;--soft:#203d38}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,input,textarea{font:inherit}button,a,input,textarea,summary{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.wrap{max-width:1180px;margin:auto;padding-left:28px;padding-right:28px}header{border-bottom:1px solid var(--line);background:var(--bg)}.header{display:flex;align-items:center;gap:32px;min-height:100px}.brand{display:flex;align-items:center;gap:14px;font-weight:800;font-size:26px;letter-spacing:-1px}.brand>span{border-left:1px solid var(--line);padding-left:14px;font-size:15px;letter-spacing:0}.brand small{display:block;font-size:9px;letter-spacing:2px;color:var(--muted)}nav{display:flex;gap:30px;margin-left:auto}nav a{font-size:14px;font-weight:600}nav a[aria-current]{color:var(--accent);border-bottom:2px solid var(--accent)}.theme,.menu{border:1px solid var(--line);background:var(--panel);border-radius:50%;width:40px;height:40px;color:var(--text)}.menu{display:none;border-radius:8px;width:auto}.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:70px;align-items:center;padding-top:80px;padding-bottom:80px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--accent);margin:0 0 22px}h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.15;letter-spacing:-1.7px;margin:0 0 22px}h1{font-size:clamp(42px,5vw,66px);font-weight:800}h2{font-size:36px}h3{font-size:23px;letter-spacing:-.6px}em{font-style:normal;color:var(--accent)}p{margin:0 0 20px;color:var(--muted)}.lead{font-size:19px;line-height:1.8;max-width:660px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:13px 23px;border:1px solid var(--accent);background:var(--accent);color:var(--bg);border-radius:8px;font-size:14px;font-weight:700}.btn:hover{filter:brightness(.9);color:var(--bg)}.btn.secondary{color:var(--text);background:transparent;border-color:var(--line)}.signature{font-size:12px;color:var(--muted);margin-top:35px}.dot{display:inline-block;width:8px;height:8px;background:var(--accent);border-radius:50%;margin-right:8px}.portrait{position:relative;background:var(--soft);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.portrait img{display:block;width:100%;height:510px;object-fit:cover;object-position:center 25%}.portrait-caption{position:absolute;bottom:0;left:0;right:0;padding:65px 28px 25px;background:linear-gradient(transparent,#102c32ed);color:white}.portrait-caption span,.portrait-caption small{display:block;font-size:10px;letter-spacing:1px}.portrait-caption strong{display:block;font-size:21px}.techbar{border-block:1px solid var(--line);padding:25px 0;font-size:14px;font-weight:600}.techbar .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.techbar span{color:var(--accent)}.section{padding-top:65px;padding-bottom:65px}.split{display:grid;grid-template-columns:1fr 1.5fr;gap:80px;border-bottom:1px solid var(--line)}.textlink{font-size:14px;color:var(--accent);font-weight:700}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:var(--panel);border:1px solid var(--line);border-radius:13px;overflow:hidden;transition:transform .2s}.card:hover{transform:translateY(-4px)}.project-image{display:block;background:var(--soft);padding:18px}.project-image img{width:100%;height:190px;object-fit:contain;display:block;border-radius:6px}.card-body{padding:24px}.card h3{margin:18px 0 12px}.card p{font-size:14px}.meta{display:flex;gap:12px;justify-content:space-between;font-size:10px;letter-spacing:.5px;color:var(--muted)}.meta a{color:var(--accent);font-weight:700}.cta{margin-top:35px;margin-bottom:65px;padding:50px;background:var(--soft);border-radius:16px}.cta h2{max-width:700px;font-size:40px}.page-intro{padding-top:65px;padding-bottom:30px}.filters{display:flex;gap:12px;flex-wrap:wrap}.filters button{border:1px solid var(--line);border-radius:30px;padding:9px 22px;background:var(--panel);color:var(--text)}.filters button[aria-pressed=true]{background:var(--accent);color:var(--bg)}.muted{font-size:13px;margin-top:18px}.timeline{border-left:2px solid var(--accent);padding-left:30px}.tags{display:flex;gap:12px;flex-wrap:wrap;align-content:start}.tags span{border:1px solid var(--line);padding:10px 18px;border-radius:8px;background:var(--panel)}.cv{width:100%;height:800px;border:1px solid var(--line);margin-top:25px}.detail-image{display:block;width:100%;max-height:650px;object-fit:contain;background:var(--soft);padding:30px;border-radius:14px}.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:70px}.contact-item{padding:22px 0;border-bottom:1px solid var(--line)}.contact-item small{display:block;font-size:10px;letter-spacing:1.5px;color:var(--muted)}.contact-item a{overflow-wrap:anywhere}.contact-item p{color:var(--text);margin:0}form{padding:35px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}label{display:block;font-size:13px;font-weight:600;margin-bottom:18px}input,textarea{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text)}textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}footer{padding-top:45px;padding-bottom:45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px}footer p{font-size:12px;margin-top:18px}footer>div>a:not(.brand){font-size:13px;margin-right:20px}.skip{position:absolute;left:10px;top:-100px;z-index:10;background:var(--panel);padding:12px}.skip:focus{top:10px}[hidden]{display:none!important}@media(max-width:900px){.hero{gap:30px}.portrait img{height:450px}.grid{grid-template-columns:repeat(2,1fr)}.split{gap:30px}.contact-grid{gap:25px}}@media(max-width:650px){.wrap{padding-left:20px;padding-right:20px}.header{min-height:80px;gap:12px;flex-wrap:wrap}.brand{font-size:22px}.brand>span{font-size:12px}.menu{display:block;margin-left:auto}nav{display:none;order:4;flex-basis:100%;padding-bottom:20px;justify-content:space-between;gap:12px}nav.open{display:flex}.hero{grid-template-columns:1fr;padding-top:45px;padding-bottom:45px}.portrait img{height:430px}.hero h1{font-size:46px}.split,.contact-grid,.grid{grid-template-columns:1fr}.section{padding-top:40px;padding-bottom:40px}.section-head{align-items:start;gap:20px}h2{font-size:29px}.cta{padding:28px}.cta h2{font-size:32px}footer{flex-direction:column}.form-grid{grid-template-columns:1fr;gap:0}form{padding:24px}.page-intro{padding-top:45px}.techbar .wrap{justify-content:start}.lead{font-size:17px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}