:root{color-scheme:light;--bg:#f8f6f1;--ink:#242927;--muted:#636963;--line:#d8dbd3;--accent:#7e282c;--panel:#efeee7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.7 Georgia,'Times New Roman',serif}body.dark{color-scheme:dark;--bg:#191e1c;--ink:#eeeae1;--muted:#b3bab1;--line:#3b443e;--accent:#e0a5a0;--panel:#222a25}a{color:inherit;text-underline-offset:5px}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}header,main,footer{max-width:1120px;margin:auto;padding-left:48px;padding-right:48px}header{display:flex;justify-content:space-between;align-items:center;min-height:104px;border-bottom:1px solid var(--line)}.brand{font-weight:bold;text-decoration:none;font-size:29px;color:var(--accent);display:flex;align-items:center;gap:18px}.brand span{font:11px/1.4 Arial,sans-serif;letter-spacing:2px;color:var(--ink)}.controls{display:flex;gap:10px}button{font:12px Arial,sans-serif;border:1px solid var(--line);background:transparent;color:var(--ink);padding:11px 14px;cursor:pointer;border-radius:2px}.hero{padding:78px 0 45px;max-width:890px}.eyebrow,.section-label>span{font:11px/1.6 Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}h1{font-weight:normal;font-size:clamp(54px,8vw,90px);line-height:1.12;letter-spacing:-4px;margin:24px 0}.period{color:var(--accent)}.headline{font-size:23px;line-height:1.5;max-width:820px;margin:0 0 25px}.intro{max-width:760px;color:var(--muted);font-size:18px}.contact{display:flex;gap:25px;flex-wrap:wrap;margin-top:29px;font:13px/1.7 Arial,sans-serif}.availability{font:12px/1.8 Arial,sans-serif;color:var(--muted);margin-top:23px}.impact{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding:27px 0;gap:25px}.impact strong{display:block;font-size:36px;font-weight:normal;line-height:1.3}.impact p{margin:5px 0 0;font:12px/1.6 Arial,sans-serif;color:var(--muted);max-width:210px}nav{display:flex;gap:28px;padding:25px 0;font:11px Arial,sans-serif;letter-spacing:1px;text-transform:uppercase}nav a{text-decoration:none}.resume-section{display:grid;grid-template-columns:190px 1fr;gap:30px;padding:46px 0;border-top:1px solid var(--line)}.section-label h2{font-size:23px;font-weight:normal;margin-top:8px}.job{margin-bottom:36px;padding-bottom:31px;border-bottom:1px solid var(--line)}.job:last-child{margin-bottom:0;padding-bottom:0;border:0}.job-head{display:flex;justify-content:space-between;gap:22px}.job h3{font-size:23px;font-weight:normal;margin:0}.dates{font:11px/1.7 Arial,sans-serif;color:var(--muted);white-space:nowrap;padding-top:8px}.role{font:bold 12px/1.7 Arial,sans-serif;color:var(--accent);margin:7px 0 13px}.job ul{padding-left:19px;margin:0;color:var(--muted);font-size:15px}.job li{margin:9px 0}.stack{font:11px/1.7 Arial,sans-serif;color:var(--muted);margin:15px 0 0}.skills{display:grid;grid-template-columns:1fr;gap:25px}.skills h3{font:600 12px Arial,sans-serif;margin:0 0 10px}.skills p{font-size:15px;color:var(--muted);margin:0}.degree{margin:0 0 25px}.degree h3{font-size:19px;font-weight:normal;margin:0}.degree p{margin:4px 0;color:var(--muted);font-size:14px}.closing{padding:45px 0 65px;border-top:1px solid var(--line)}.closing h2{font-size:38px;font-weight:normal;line-height:1.3;max-width:660px}.closing>a{font:15px Arial,sans-serif;color:var(--accent)}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:23px;padding-bottom:30px;font:11px Arial,sans-serif;color:var(--muted)}.skip{position:absolute;left:-9999px}.skip:focus{left:15px;top:10px;background:var(--bg);padding:10px}@media(max-width:700px){header,main,footer{padding-left:23px;padding-right:23px}header{min-height:82px}.brand span{display:none}.hero{padding-top:48px}h1{letter-spacing:-2px}.headline{font-size:20px}.resume-section{grid-template-columns:1fr;gap:12px;padding-top:30px}.section-label{display:flex;gap:15px;align-items:baseline}.section-label h2{margin:0 0 12px}.job-head{display:block}.dates{padding:0}.impact{gap:15px}.impact strong{font-size:30px}.impact p{font-size:11px}.contact{gap:18px}.skills{gap:25px 20px}.print-button{display:none}nav{gap:20px}.closing h2{font-size:30px}}@media print{body,body.dark{--bg:white;--ink:black;--muted:#333;--line:#bbb;--accent:#6b2227;font-size:11pt}header,.controls,nav,.closing,footer,.skip{display:none}header,main,footer{padding:0;max-width:none}.hero{padding:0 0 18px}h1{font-size:34pt;margin:0 0 10px}.headline{font-size:15pt;margin-bottom:10px}.intro{font-size:11pt}.contact{margin-top:10px}.availability{margin:10px 0}.impact{padding:12px 0}.impact strong{font-size:22pt}.resume-section{grid-template-columns:130px 1fr;padding:20px 0;gap:15px}.job{break-inside:avoid;margin-bottom:18px;padding-bottom:15px}.job h3{font-size:15pt}.job li{font-size:10pt;margin:5px 0}.section-label h2{font-size:16pt}.skills p{font-size:10pt}a{text-decoration:none}@page{margin:16mm}}

#theme{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px;transition:color .15s,background-color .15s}#theme:hover{color:var(--accent);background:var(--panel)}#theme svg{display:block}#theme .sun-icon{display:none}body.dark #theme .moon-icon{display:none}body.dark #theme .sun-icon{display:block}

@media (prefers-reduced-motion:no-preference){
  .scroll-reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
  .scroll-reveal.revealed{opacity:1;transform:none}
}
@media print{.scroll-reveal{opacity:1!important;transform:none!important;transition:none!important}}
