:root{--bg:#111315;--panel:#1a1d20;--text:#f2f3ef;--muted:#a3a9aa;--line:#34383a;--accent:#c4f568;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"SFMono-Regular",Consolas,monospace;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a,summary{touch-action:manipulation}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.wrap{width:min(1200px,88%);margin:auto}.header{width:min(1320px,92%);margin:auto;display:flex;align-items:center;justify-content:space-between;padding:25px 0;border-bottom:1px solid var(--line)}.brand{font-weight:800;font-size:36px;line-height:1;letter-spacing:-2px}.brand span{color:var(--accent)}nav{display:flex;align-items:center;gap:34px;font-size:14px}nav a:hover,footer a:hover{color:var(--accent)}.nav-contact{border:1px solid #626966;padding:8px 18px;border-radius:30px}.hero{padding-top:77px}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:1.5px;font-weight:500;display:block}.hero .eyebrow{color:var(--muted)}.eyebrow span{color:var(--accent);padding:0 12px}h1,h2,h3,p{margin:0}h1{font-size:clamp(3.5rem,7.8vw,7rem);letter-spacing:-.065em;font-weight:550;line-height:1.05;margin:30px 0 36px}h1 .accent{font-family:Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.07em;color:var(--accent)}.hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:50px}.hero-bottom p{font-size:19px;color:var(--muted);max-width:470px;line-height:1.65}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:13px 20px;border-radius:5px;font-size:14px;font-weight:600;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--accent);color:#152006}.primary:hover{background:#d7ff8f}.secondary{border:1px solid #4d5452}.secondary:hover{background:#292e2c}.button small{font:10px var(--mono);opacity:.6}.hero-meta{display:flex;justify-content:space-between;margin-top:67px;padding:21px 0;color:var(--muted);border-top:1px solid var(--line);font-size:13px}.hero-meta span:last-child{font-family:var(--mono);font-size:11px;letter-spacing:1px}.impact{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#181b1d}.metrics{display:grid;grid-template-columns:repeat(3,1fr);padding:33px 0}.metrics>div{padding:3px 30px;border-right:1px solid var(--line)}.metrics>div:first-child{padding-left:0}.metrics>div:last-child{border:0}.metrics strong{font-size:42px;font-weight:500;letter-spacing:-2px;line-height:1.3}.metrics strong span{font-size:26px;color:var(--accent);vertical-align:middle}.metrics p{font-size:14px;color:var(--muted);margin-top:6px}.section{padding:94px 0;border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:46px}.section-heading .eyebrow,.about .eyebrow{color:var(--accent);margin-bottom:20px}h2{font-size:clamp(2.1rem,4vw,3.25rem);font-weight:500;line-height:1.15;letter-spacing:-.045em}.section-heading>p{max-width:360px;color:var(--muted)}footer{padding:28px 0;display:flex;justify-content:space-between;gap:20px;font-size:13px;color:var(--muted)}.about{display:grid;grid-template-columns:1fr 1fr;gap:100px}.about-copy{margin-top:26px;color:var(--muted)}.education{margin-top:40px;border-top:1px solid var(--line);padding-top:28px}.education .eyebrow{color:var(--muted);margin-bottom:12px}.education h3{font-size:18px;font-weight:500;margin-bottom:7px}.education p{font-size:14px;color:var(--muted)}.contact{padding:86px 0;background:var(--accent);color:#172008}.contact h2{font-size:clamp(2.5rem,5vw,4.1rem);margin:26px 0}.email{display:inline-block;font-size:clamp(1rem,2.3vw,1.65rem);border-bottom:1px solid #718847;overflow-wrap:anywhere}.contact-links{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap}.contact .primary{background:#172008;color:var(--text)}.contact .primary:hover{background:#354724}.contact .secondary{border-color:#6d833d}.contact .secondary:hover{background:#b3e159}.skip{position:absolute;top:-100px;left:15px;background:var(--accent);color:#111;padding:12px;z-index:10}.skip:focus{top:10px}section[id]{scroll-margin-top:24px}@media(max-width:850px){.hero-bottom{display:block}.hero-actions{margin-top:25px}.hero-meta{margin-top:42px}.about{gap:40px}.section-heading{gap:25px}.section-heading>p{max-width:280px}.metrics strong{font-size:34px}.metrics>div{padding:3px 20px}}@media(max-width:600px){.header{width:88%;padding:22px 0}nav{gap:17px}nav a{font-size:13px}.nav-contact{padding:7px 11px}nav a[href="#about"]{display:none}.brand{font-size:31px}.hero{padding-top:47px}.hero .eyebrow{font-size:10px;letter-spacing:.8px}.eyebrow span{padding:0 5px}h1{font-size:clamp(3.15rem,11.6vw,4.6rem);margin:24px 0}.hero-bottom p{font-size:17px}.hero-actions{gap:9px}.button{font-size:13px;padding:12px 15px}.hero-meta{display:block;font-size:12px;margin-top:38px}.hero-meta span:last-child{display:none}.metrics{grid-template-columns:1fr;padding:7px 0}.metrics>div,.metrics>div:first-child{padding:18px 0;border-right:0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.metrics strong{font-size:31px;white-space:nowrap}.metrics p{max-width:150px;font-size:13px;text-align:right;margin:0}.section{padding:60px 0}.section-heading{display:block;margin-bottom:30px}.section-heading>p{max-width:none;margin-top:24px}.section-heading .eyebrow,.about .eyebrow{margin-bottom:16px}.about{grid-template-columns:1fr;gap:45px}.contact{padding:60px 0}footer{flex-wrap:wrap}footer span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}#projects{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project{background:var(--panel);border:1px solid var(--line);padding:30px;border-radius:9px;display:flex;flex-direction:column}.featured{grid-column:1/-1;background:#1b221a;border-color:#46553b}.project-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:25px}.project-top .eyebrow{font-size:10px;letter-spacing:1px;color:var(--muted)}.company{font-size:12px;border:1px solid #495047;padding:2px 10px;border-radius:20px}.project h3{font-size:28px;font-weight:500;letter-spacing:-1px;line-height:1.25}.featured h3{font-size:42px}.project-intro{font-size:17px;color:var(--text);margin-top:14px;line-height:1.5}.project-body{font-size:15px;color:var(--muted);margin-top:14px}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:23px}.tags span{font-size:12px;line-height:1.4;padding:5px 9px;border:1px solid #3c4440;border-radius:4px;color:#c2c9c1}.project-content{flex:1}.featured .project-content{display:grid;grid-template-columns:1.2fr 1fr;gap:60px}.project-outcome{margin:28px 0;display:flex;flex-direction:column;gap:4px}.project-outcome strong{font-size:23px;font-weight:500;letter-spacing:-.7px;color:var(--accent)}.project-outcome>span{color:var(--muted);font-size:13px}.featured .project-outcome{justify-content:center;border-left:1px solid #3c4934;padding-left:44px;margin:0 0 28px}.featured .project-outcome strong{font-size:clamp(1.6rem,3.2vw,2.8rem);letter-spacing:-1.5px}.project details{border-top:1px solid #3a423b;margin-top:4px;padding-top:16px}.project summary{font-size:14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px}.project summary::-webkit-details-marker{display:none}.project summary>span{font-size:21px;color:var(--accent);line-height:1}.project details[open] summary>span{transform:rotate(45deg)}.project details ul{padding-left:19px;color:var(--muted);font-size:14px;margin-bottom:0}.project details li+li{margin-top:10px}.career-row{display:grid;grid-template-columns:230px 1fr auto;gap:35px;padding:30px 0;border-top:1px solid var(--line)}.career-date,.location{font-size:13px;color:var(--muted);padding-top:6px}.career-date{font-family:var(--mono)}.career-row h3{font-size:25px;font-weight:500;line-height:1.3;letter-spacing:-.5px}.role{font-size:16px;margin-top:7px}.career-description{color:var(--muted);font-size:14px;margin-top:12px;max-width:470px}.skill-group{border-top:1px solid var(--line);padding:23px 0}.skill-group h3{font-size:15px;font-weight:500}.skill-group .tags{margin-top:15px}.skill-group .tags span{font-size:13px;padding:6px 10px}@media(max-width:850px){.project{padding:23px}.featured .project-content{gap:25px}.featured .project-outcome{padding-left:24px}.career-row{grid-template-columns:180px 1fr}.location{display:none}}@media(max-width:600px){#projects{grid-template-columns:1fr}.featured{grid-column:auto}.featured .project-content{display:block}.featured .project-outcome{border-left:0;padding-left:0;margin:28px 0}.featured h3{font-size:34px}.project-top .eyebrow{font-size:9px}.project h3{font-size:28px}.career-row{grid-template-columns:1fr;gap:12px;padding:25px 0}.career-date{font-size:12px}.project-outcome strong{font-size:21px}.featured .project-outcome strong{font-size:30px}}body{overflow-x:clip}.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--accent);transform-origin:0 50%;z-index:30;box-shadow:0 0 12px #c4f55055}.header{position:relative;z-index:10}nav a{position:relative}.nav-underline{position:absolute;bottom:-8px;left:0;right:0;height:2px;background:var(--accent)}.nav-contact .nav-underline{bottom:0;left:20px;right:20px}.headline-mask{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.headline-mask>span{display:block}.hero .accent{display:inline-block;position:relative}.hero .accent:after{content:"";position:absolute;bottom:.01em;left:3%;right:0;height:2px;background:var(--accent);transform-origin:left;animation:underline-in 1.2s .9s both cubic-bezier(.22,1,.36,1)}@keyframes underline-in{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:.65}}.hero-actions .button,.contact-links .button{transition:background .2s}.hero-actions .button:hover,.contact-links .button:hover{transform:none}.metrics strong>span:not(:only-child){font-size:26px}.metrics strong>span:only-child,.metrics strong>span:only-child>span{font:inherit;color:inherit}.project-wrap{min-width:0;perspective:1200px}.featured-wrap{grid-column:1/-1}.project-wrap .project{height:100%;transition:border-color .25s,box-shadow .25s;will-change:auto}.project:hover{border-color:#667a52;box-shadow:0 20px 55px #0003}.project-details{border-top:1px solid #3a423b;margin-top:4px;padding-top:8px}.project-details button{font:inherit;font-size:14px;color:var(--text);background:transparent;border:0;padding:10px 0;width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.project-details button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.project-details button span{font-size:24px;color:var(--accent);line-height:1}.detail-body{overflow:hidden}.detail-body ul{padding-left:19px;color:var(--muted);font-size:14px;margin:6px 0 0}.detail-body li{padding-bottom:10px}.email{position:relative;border-bottom:0}.email:after{content:"";position:absolute;height:1px;bottom:0;left:0;width:100%;background:currentColor;transform-origin:left;transition:transform .35s ease}.email:hover:after{transform:scaleX(.3)}.career-row{transition:background .3s}.career-row:hover{background:#ffffff03}.tags span{cursor:default}.project-top .eyebrow{font-size:12px;letter-spacing:.5px}.project-body,.project-details button,.detail-body ul{font-size:16px}.tags span,.skill-group .tags span{font-size:14px}.company{font-size:13px}.project-outcome>span{font-size:14px}@media(max-width:600px){.featured-wrap{grid-column:auto}.project-top{align-items:start}.project-top .eyebrow{font-size:11px;max-width:200px}.project-body,.detail-body ul{font-size:15px}.hero .eyebrow{line-height:1.8}nav{gap:14px}.nav-underline{bottom:-5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.project{transform:none!important}.hero .accent:after{opacity:.65}}
