:root{--bg:#080d0b;--panel:#0d1511;--text:#edf2ee;--muted:#9aa9a0;--green:#78f5a6;--line:#24332b;--mono:Consolas,"Liberation Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:6px}::selection{background:var(--green);color:var(--bg)}.skip-link{position:fixed;top:-80px;left:20px;z-index:10;background:var(--green);color:var(--bg);padding:12px}.skip-link:focus{top:15px}.site-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:16px 6%;border-bottom:1px solid var(--line);background:rgba(8,13,11,.96)}.wordmark{font:700 32px var(--mono);letter-spacing:-3px}.wordmark span,.green{color:var(--green)}nav{display:flex;gap:30px;font-size:13px}nav a{color:#bdc8c0}nav a:hover,nav a.active{color:var(--green)}nav a:last-child span{color:var(--green);margin-left:8px}.menu-toggle{display:none}.hero{position:relative;min-height:calc(100svh - 80px);display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:80px 8% 0;background:radial-gradient(ellipse at 85% 35%,#10271a66,transparent 60%)}#matrix{position:absolute;inset:0;width:100%;height:100%;opacity:.24;pointer-events:none;mask-image:linear-gradient(90deg,transparent 25%,#000 90%)}.hero-content,.hero-bottom{position:relative;z-index:1}.eyebrow,.section-label,.hero-bottom,.job-date,.tags,.context-strip span,.footer-note{font-family:var(--mono);font-size:11px;letter-spacing:1.4px}.eyebrow{color:var(--green);display:flex;align-items:center;gap:10px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 12px #78f5a650;flex-shrink:0}h1{font-size:clamp(68px,9.8vw,150px);line-height:.96;letter-spacing:-.065em;margin:35px 0}.cursor{color:var(--green)}.hero-role{font-size:clamp(22px,2.6vw,35px);margin:25px 0 15px;letter-spacing:-1px}.hero-role span{color:var(--muted)}.hero-description{max-width:570px;color:var(--muted);font-size:16px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:13px 23px;border:1px solid #4a5c50;font-size:13px;transition:background .2s,transform .2s}.button:hover{background:#18271e;transform:translateY(-2px)}.primary{background:var(--green);border-color:var(--green);color:#08160d;font-weight:700}.primary:hover{background:#a1ffbf}.hero-bottom{margin-top:85px;padding:25px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}.hero-bottom button{background:none;border:0;color:var(--green);padding:7px;font:inherit}.section{max-width:1440px;margin:auto;padding:95px 8%}.section-label{display:flex;justify-content:space-between;gap:20px;padding-bottom:24px;border-bottom:1px solid var(--line);color:var(--muted);margin-bottom:50px}.section-label span:first-child{color:var(--green)}h2{font-size:clamp(34px,4.2vw,60px);line-height:1.13;letter-spacing:-2.5px;margin:0 0 40px;font-weight:500}h2 span{color:var(--muted)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.about-grid p{color:var(--muted);margin-top:0;font-size:15px}.about-grid .lead{color:var(--text);font-size:21px;line-height:1.6}.text-link{font-size:13px;color:var(--green);display:inline-block;margin-top:12px}.context-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:55px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.context-strip span{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}.context-strip strong{font-weight:400;font-size:17px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:35px}.section-heading h2{margin:0}.section-heading>p{max-width:330px;color:var(--muted);font-size:14px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.skill{padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(135deg,#101a13,transparent);transition:background .2s}.skill:hover{background:#122019}.skill-symbol{font:18px var(--mono);color:var(--green);display:block;min-height:45px}.skill h3{font-size:18px;font-weight:500;margin:10px 0}.skill p{font-size:14px;color:var(--muted);margin-bottom:0}.timeline{margin-top:45px}.job{display:grid;grid-template-columns:240px 1fr;gap:50px;border-top:1px solid var(--line);padding:35px 0}.job-date{color:var(--muted);padding-top:7px}.current-tag{display:table;margin-top:15px;font-size:9px;padding:3px 8px;color:var(--green);background:#78f5a610;border:1px solid #78f5a630}.job h3{font-size:26px;letter-spacing:-.6px;font-weight:500;margin:0}.company{color:var(--green);font-size:14px;margin:5px 0 20px}.company span{color:var(--muted);margin-left:15px;font-size:12px}.job p:not(.company),.job li{font-size:14px;color:var(--muted)}.job ul{padding-left:18px}.job li{padding-left:5px;margin:9px 0}.job li::marker{color:var(--green)}.education{border-top:1px solid var(--line);padding-top:25px}.education p{font-size:13px;color:var(--muted);margin:8px 0}.education strong{font-weight:400;color:var(--text)}.project{display:grid;grid-template-columns:65px 1fr 40px;gap:25px;padding:40px 0;border-top:1px solid var(--line)}.project-number{font:16px var(--mono);color:var(--muted);padding-top:5px}.project .eyebrow{margin-top:0;font-size:10px}.project h3{font-size:30px;font-weight:400;letter-spacing:-1px;margin:15px 0}.project p:not(.eyebrow){color:var(--muted);font-size:15px;max-width:750px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;font-size:10px;letter-spacing:.3px}.tags span{border:1px solid var(--line);padding:4px 10px;color:var(--muted)}.project-mark{font-size:32px;color:var(--green)}.contact{border-top:1px solid var(--line);background:radial-gradient(ellipse at 20% 100%,#17372266,transparent 65%);padding-bottom:100px}.contact h2{font-size:clamp(55px,7vw,96px);margin:25px 0}.contact>p:not(.eyebrow){color:var(--muted)}.contact-email{display:inline-block;font-size:clamp(17px,2.6vw,32px);border-bottom:1px solid #597465;padding-bottom:8px;margin:20px 0 5px;overflow-wrap:anywhere}.contact-email span{color:var(--green);margin-left:15px}footer{display:flex;gap:30px;align-items:center;justify-content:space-between;padding:25px 6%;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.footer-note{font-size:9px}footer .wordmark{color:var(--text)}@media(min-width:1600px){.hero{padding-left:max(8%,calc((100vw - 1210px)/2))}.hero-content{max-width:1300px}}@media(max-width:900px){nav{gap:17px}.section{padding:70px 6%}.hero{padding:65px 6% 0}.skills-grid{grid-template-columns:repeat(2,1fr)}.about-grid{gap:35px}.job{grid-template-columns:170px 1fr;gap:25px}.footer-note{display:none}.section-label span:last-child{display:none}.hero-bottom{letter-spacing:.6px}.hero-bottom>a{display:none}}@media(max-width:600px){html{scroll-padding-top:80px}.site-header{padding:14px 6%}.menu-toggle{display:flex;gap:20px;align-items:center;color:var(--text);border:1px solid var(--line);background:none;padding:7px 12px;font-size:12px}.menu-toggle span{color:var(--green)}nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 6%;background:#0c1510;border-bottom:1px solid var(--line);flex-direction:column;gap:20px}nav.open{display:flex}.hero{min-height:calc(100svh - 74px);padding-top:50px}.hero .eyebrow{font-size:9px;letter-spacing:1px;max-width:280px}.hero-description{font-size:14px}h1{font-size:clamp(60px,16vw,95px);margin-top:30px}.hero-role{font-size:23px}.hero-bottom{margin-top:50px;font-size:8px}.button{padding:12px 17px;gap:20px}.section{padding:60px 6%}.section-label{margin-bottom:35px}.about-grid{grid-template-columns:1fr;gap:0}.about-grid .lead{font-size:19px}h2{letter-spacing:-1.4px}.context-strip{grid-template-columns:1fr;gap:20px;margin-top:30px}.context-strip strong{font-size:16px}.section-heading{display:block}.section-heading>p{margin-top:25px}.skills-grid{grid-template-columns:1fr}.skill{padding:25px}.job{grid-template-columns:1fr;gap:15px}.job-date{display:flex;align-items:center;gap:15px}.current-tag{margin-top:0}.company span{display:block;margin-left:0;margin-top:5px}.project{grid-template-columns:30px 1fr;gap:15px}.project-mark{display:none}.project h3{font-size:25px}.project .eyebrow{font-size:9px;line-height:1.8}.contact .actions{gap:10px}.contact-email{font-size:17px}footer{flex-wrap:wrap;gap:15px}footer p{margin:0}footer>a:last-child{margin-left:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.project{grid-template-columns:65px 1fr}.project .project-summary{color:var(--text);font-size:17px;max-width:800px}.project-details{margin:25px 0;max-width:850px}.project-details>div{display:grid;grid-template-columns:140px 1fr;gap:20px;margin:14px 0}.project-details dt{color:var(--green);font:11px var(--mono);padding-top:5px;letter-spacing:.5px}.project-details dd{margin:0;font-size:14px;color:var(--muted)}.skill .tags{margin-top:20px}.skills-grid+.education{margin-top:25px}.skills-grid+.education p{max-width:850px}@media(max-width:600px){.project{grid-template-columns:30px 1fr}.project-details>div{grid-template-columns:1fr;gap:6px;margin:20px 0}.project .project-summary{font-size:15px}.skill .tags{font-size:9px}}

.project-expand{max-width:850px}.project-expand summary{display:flex;align-items:center;gap:20px;width:fit-content;cursor:pointer;color:var(--green);font:12px var(--mono);padding:12px 0;list-style:none}.project-expand summary::-webkit-details-marker{display:none}.project-expand summary span{font-size:18px}.project-expand[open] summary span{transform:rotate(45deg)}.project-expand summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}.project-expand .project-details{margin-top:8px}.education+.education{margin-top:25px}
