@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#191c19;--muted:#60665d;--line:#dce0d6;--paper:#fafbf8;--accent:#d2fa69;--display:'Space Grotesk',sans-serif;--body:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #628811;outline-offset:7px}.wrap{width:min(1280px,88%);margin-inline:auto}.nav{height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-family:var(--display);font-size:32px;font-weight:700;letter-spacing:-2px}.brand span{color:#658d16}.nav nav{display:flex;gap:36px;font-size:14px;font-weight:500}.nav nav a:hover{color:#628811}.nav nav span{margin-left:10px}.hero{padding-top:63px}.eyebrow,.section-label{font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:1.4px}.eyebrow{display:flex;align-items:center;gap:12px}.dash{height:2px;width:28px;background:var(--ink)}h1{font-family:var(--display);font-size:clamp(72px,10.5vw,150px);line-height:1.02;font-weight:500;letter-spacing:-.075em;margin:35px 0 30px}.out{display:inline-block;background:var(--accent);padding:0 .14em .055em .08em;line-height:.93;transform:rotate(-3deg);margin-left:.025em}.period{color:var(--ink)}.hero-bottom{display:flex;align-items:center;justify-content:space-between;padding:6px 0 54px}.hero-bottom p{font-size:20px;line-height:1.55;color:var(--muted);margin:0}.button{background:var(--ink);color:white;padding:19px 25px;border-radius:3px;display:flex;gap:38px;align-items:center;font-size:15px;transition:transform .2s,background .2s}.button:hover{background:#344222;transform:translateY(-3px)}.button span{font-size:23px;color:var(--accent)}.hero-footer{border-top:1px solid var(--line);padding:21px 0;display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px;color:var(--muted)}.section{padding-block:105px}.about{display:grid;grid-template-columns:1fr 2fr;gap:60px}.section-label{padding-top:10px}h2{font-family:var(--display);font-size:clamp(36px,4.1vw,56px);font-weight:500;line-height:1.12;letter-spacing:-2.5px;margin:0 0 28px}.large-copy{font-size:22px;line-height:1.55;max-width:660px;margin:0 0 22px}.body-copy{font-size:17px;line-height:1.8;color:var(--muted);max-width:650px}.signature{margin-top:30px;font-size:15px;font-weight:600;display:flex;gap:30px;align-items:center}.signature span{font-size:24px}.focus{background:#1b1e1b;color:#f8faf5;padding:82px 0 90px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:40px;gap:35px}.section-heading .section-label{color:#b8c2ad;margin-bottom:28px}.section-heading h2{margin:0}.section-heading>p{font-size:17px;line-height:1.6;color:#b8c2ad}.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.focus-card{background:#252925;border:1px solid #41463c;padding:28px;display:flex;flex-direction:column;transition:border-color .2s}.focus-card:hover{border-color:var(--accent)}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:47px;color:#b8c2ad;font-size:13px}.symbol{font-family:monospace;font-size:30px;font-weight:500;color:var(--accent)}h3{font-family:var(--display);font-size:23px;letter-spacing:-.7px;font-weight:500;margin:0 0 12px}.focus-card p{color:#c1c7bd;font-size:16px;line-height:1.75;margin:0 0 29px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.tags span{font-size:12px;border:1px solid #535b4c;border-radius:3px;padding:6px 9px;color:#d1d7cb}.learning>.section-label{margin-bottom:32px}.learning-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px}.learning h2 span{color:#739e24}.learning-item{border-top:1px solid var(--line);display:flex;gap:22px;align-items:baseline;padding:17px 0}.learning-item span{font-size:12px;color:var(--muted)}.learning-item p{margin:0;font-size:16px;line-height:1.5}.learning .large-copy{font-size:20px;margin-bottom:32px}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px 0;border-top:1px solid var(--line)}footer p,footer>a:last-child{font-size:13px;color:var(--muted)}.skip{position:absolute;top:-100px;background:var(--accent);padding:15px;z-index:2}.skip:focus{top:10px}@media(min-width:1500px){h1{font-size:150px}}@media(max-width:800px){.wrap{width:88%}.nav{height:86px}.nav nav{gap:20px}.hero{padding-top:45px}h1{font-size:clamp(62px,12vw,100px);margin-block:34px}.hero-bottom{gap:28px;padding-bottom:38px}.hero-bottom p{font-size:17px}.hero-footer span:nth-child(2){display:none}.about{grid-template-columns:1fr;gap:25px}.section{padding-block:70px}.focus-grid{grid-template-columns:1fr}.card-top{margin-bottom:25px}.focus-card{padding:28px}.focus-card p{max-width:580px}.learning-layout{grid-template-columns:1fr;gap:15px}.focus{padding-block:60px}.section-heading>p{display:none}}@media(max-width:480px){.nav nav{gap:15px;font-size:13px}.nav nav a:last-child{display:none}.eyebrow{font-size:10px;letter-spacing:.8px}.hero-bottom{flex-direction:column;align-items:flex-start}.hero-bottom p{font-size:18px}.desktop{display:none}.button{width:100%;justify-content:space-between}.hero-footer{font-size:10px;letter-spacing:.5px}h2{letter-spacing:-1.7px}.large-copy{font-size:20px}footer{flex-wrap:wrap}footer .brand{width:100%}footer p{font-size:12px}footer>a:last-child{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* CV-based professional portfolio */
.cv-hero{display:grid;grid-template-columns:1.65fr 1fr;gap:30px 80px;align-items:center}.cv-hero h1{font-size:clamp(60px,7.7vw,106px);margin:30px 0}.hero-intro{font-size:23px;line-height:1.45;margin:26px 0 17px}.hero-detail{font-size:17px;line-height:1.7;color:var(--muted);max-width:550px}.hero-actions{display:flex;gap:24px;align-items:center;margin:30px 0 38px}.text-link{font-size:15px;text-decoration:underline;text-underline-offset:5px}.portrait{margin:0;position:relative;background:#e6eadf;padding:18px 18px 0}.portrait img{display:block;width:100%;height:auto;aspect-ratio:423/504;object-fit:cover}.portrait figcaption{padding:20px 0;font-size:12px;letter-spacing:1px;font-weight:600}.portrait figcaption span{display:block;font-size:13px;font-weight:400;letter-spacing:0;color:var(--muted);margin-top:7px}.cv-hero .hero-footer{grid-column:1/-1;width:100%}.experience{padding-bottom:90px}.experience .section-label{margin-bottom:25px}.career-row{display:grid;grid-template-columns:1fr 2.5fr;gap:45px;padding:34px 0;border-top:1px solid var(--line)}.career-date{font-size:12px;letter-spacing:1px;color:var(--muted);padding-top:7px;display:block}.role-line{display:flex;justify-content:space-between;align-items:baseline;gap:20px}.role-line h3{font-size:26px}.employer{font-size:15px;font-weight:600}.career-row p{color:var(--muted);line-height:1.6;margin-top:0}.career-row ul{margin:18px 0 0;padding-left:20px;color:var(--muted);font-size:16px;line-height:1.75}.career-row li+li{margin-top:9px}.earlier{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.earlier summary{font-size:17px;font-weight:500;cursor:pointer}.earlier summary span{float:right;font-size:13px;font-weight:400;color:var(--muted)}.early-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-top:28px}.early-grid p{color:var(--muted);line-height:1.7}.achievement{border-top:1px solid #41463c;padding-top:25px;margin-top:32px;font-size:13px;color:var(--accent);display:flex;gap:28px}.achievement span{font-size:15px;color:#c1c7bd;line-height:1.6}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.skill-grid article{border-top:1px solid var(--line);padding-top:22px}.skill-grid p{line-height:1.8;color:var(--muted);font-size:16px}.section>.section-label{margin-bottom:28px}.education{padding-top:0}.education-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding:20px 0 40px}.education-grid h3{margin-top:22px}.education-grid p{line-height:1.6;color:var(--muted)}.result{font-size:14px}.training-list{padding-top:15px}.training-list p{display:flex;justify-content:space-between;gap:24px;line-height:1.6;padding:13px 0;border-bottom:1px solid var(--line);margin:0}.training-list strong{font-size:16px;font-weight:500}.training-list span{font-size:14px;color:var(--muted)}.contact{background:var(--accent);padding:65px 0}.contact .section-label{margin-bottom:30px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.contact h2{font-size:clamp(42px,5vw,70px);margin:0}.contact-layout a{display:block;font-family:var(--display);font-size:clamp(18px,2.1vw,27px);margin-bottom:17px;overflow-wrap:anywhere}.contact-layout a:hover{text-decoration:underline}.contact p{font-size:15px;line-height:1.6;color:#3b4e1d}@media(max-width:1000px){.cv-hero{gap:30px}.hero-actions{align-items:flex-start;flex-direction:column}.role-line{flex-direction:column;gap:0;margin-bottom:14px}.skill-grid{grid-template-columns:1fr 1fr}}@media(max-width:680px){.cv-hero{grid-template-columns:1fr}.cv-hero h1{font-size:clamp(63px,13vw,88px)}.hero-intro{font-size:20px}.hero-actions{margin-bottom:10px}.portrait{max-width:350px;width:100%;margin-top:12px}.hero-footer span{max-width:100%;line-height:1.6}.career-row{grid-template-columns:1fr;gap:20px}.skill-grid,.education-grid,.contact-layout,.early-grid{grid-template-columns:1fr}.education-grid{gap:35px}.education-grid article{border-top:1px solid var(--line);padding-top:15px}.achievement{flex-direction:column;gap:10px}.training-list p{flex-direction:column;gap:4px}.experience{padding-bottom:60px}.contact-layout{gap:30px}.hero-actions .button{width:auto}}@media(max-width:480px){.nav nav a:last-child{display:block}.nav nav{gap:12px;font-size:12px}.nav .brand{font-size:28px}}
