@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap";:root{color:#e9ece8;font-synthesis:none;text-rendering:optimizelegibility;background:#101513;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#101513;min-width:320px;margin:0}a{color:inherit}#root{min-height:100vh;overflow:hidden}:root{--ink:#e8ede8;--muted:#9da9a1;--green:#a8e65e;--line:#e8ede829;--deep:#101513;--mono:"DM Mono",monospace;--serif:"Playfair Display",serif}.shell{width:min(1180px,100% - 64px);margin:0 auto}.nav{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:82px;display:flex}.brand{letter-spacing:-1px;font-size:23px;font-weight:700;text-decoration:none}.brand span,.green{color:var(--green)}.nav-links{gap:30px;display:flex}.nav-links a{color:var(--muted);font:12px var(--mono);text-decoration:none}.nav-links a:hover{color:var(--green)}.availability{color:var(--green);font:11px var(--mono);border:1px solid #a8e65e6b;border-radius:20px;padding:7px 12px;text-decoration:none}.availability i{background:var(--green);width:6px;height:6px;box-shadow:0 0 8px var(--green);border-radius:50%;margin:0 6px 1px 0;display:inline-block}.hero{border-bottom:1px solid var(--line);grid-template-columns:1.1fr .9fr;align-items:center;gap:30px;min-height:620px;padding:70px 42px 70px 8%;display:grid}.eyebrow,.small-label{color:var(--green);font:11px var(--mono);text-transform:uppercase;letter-spacing:.08em;margin:0}.eyebrow b{color:var(--muted);margin:0 7px}.hello{color:var(--muted);margin:29px 0 8px;font-size:17px}.hello span{font-size:19px}.hero h1{letter-spacing:-.065em;margin:0;font-size:clamp(48px,6vw,78px);line-height:.94}.hero-description{max-width:470px;color:var(--muted);margin:25px 0;font-size:18px;line-height:1.55}.hero-actions{align-items:center;gap:11px;display:flex}.button{font:12px var(--mono);border-radius:3px;padding:14px 17px;text-decoration:none;transition:transform .2s}.button:hover{transform:translateY(-2px)}.button b{margin-left:10px;font-size:15px}.primary{color:#182015;background:var(--green)}.quiet{border:1px solid var(--line);color:var(--ink)}.hero-location{font:11px var(--mono);color:var(--muted);margin-top:38px}.hero-location>span{color:var(--green);vertical-align:-2px;font-size:18px}.hero-location em{border-left:1px solid var(--line);vertical-align:middle;height:12px;margin:0 13px;display:inline-block}.portrait-wrap{justify-content:center;align-items:center;height:430px;display:flex;position:relative}.portrait-frame{z-index:2;background:#222a26;border:1px solid #a8e65ea6;width:280px;height:355px;padding:9px;position:relative;transform:rotate(3deg)}.portrait-frame:before{content:"";z-index:-1;border:1px solid #e8ede836;position:absolute;inset:-19px 19px 19px -19px}.portrait-frame img{object-fit:cover;object-position:center top;filter:grayscale()contrast(1.04);width:100%;height:100%}.portrait-label{font:10px/1.7 var(--mono);z-index:3;color:var(--muted);letter-spacing:.05em;position:absolute}.top-label{top:14px;right:-6px}.bottom-label{color:var(--green);bottom:9px;left:3px}.bottom-label strong{color:var(--ink);font-weight:400}.orbit{z-index:0;border:1px solid #a8e65e36;border-radius:50%;position:absolute}.orbit-one{width:350px;height:350px}.orbit-two{width:440px;height:210px;transform:rotate(-42deg)}.metrics{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.metrics>div{border-right:1px solid var(--line);flex-direction:column;gap:8px;padding:31px 20px;display:flex}.metrics>div:first-child{padding-left:0}.metrics>div:last-child{border:0}.metrics strong{letter-spacing:-.05em;font-size:31px}.metrics span{font:10px/1.5 var(--mono);color:var(--muted);text-transform:uppercase}.section{border-bottom:1px solid var(--line);padding:112px 0}.section-heading{justify-content:space-between;align-items:center;margin-bottom:49px;display:flex}.slash{font:27px var(--mono);color:var(--green)}.about-content{grid-template-columns:1.15fr .85fr;gap:11%;display:grid}.section h2,.contact h2{letter-spacing:-.055em;margin:0;font-size:clamp(35px,4.35vw,57px);line-height:1.05}.section h2 em,.contact h2 em{font-family:var(--serif);color:var(--green);font-weight:600}.about-text p{color:var(--muted);margin:0 0 17px;font-size:16px;line-height:1.6}.mini-tags,.project-tags{flex-wrap:wrap;gap:7px;margin-top:25px;display:flex}.tag{font:10px var(--mono);color:#c6d0c8;border:1px solid var(--line);border-radius:2px;padding:7px 9px}.tech>h2,.work>h2,.experience>h2{margin-bottom:53px}.skill-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.skill-card{background:var(--deep);min-height:183px;padding:24px;position:relative}.skill-number{font:10px var(--mono);color:var(--green);position:absolute;top:22px;right:22px}.skill-card h3{margin:0 0 26px;font-size:19px}.skill-card>div{flex-wrap:wrap;gap:7px;display:flex}.skill-card .tag{color:var(--muted);border:0;padding:0}.skill-card .tag:after{content:"·";color:var(--green);margin-left:7px}.skill-card .tag:last-child:after{display:none}.project-list{border-top:1px solid var(--line)}.project{border-bottom:1px solid var(--line);grid-template-columns:90px 1fr 190px;gap:16px;padding:32px 0;display:grid}.project:hover{background:#a8e65e09}.project-no{font:11px var(--mono);color:var(--green)}.project-company,.where{font:10px var(--mono);color:var(--green);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px}.project h3{letter-spacing:-.045em;margin:0 0 11px;font-size:27px}.project-main>p:not(.project-company){max-width:560px;color:var(--muted);font-size:15px;line-height:1.55}.project-stats{flex-direction:column;gap:13px;padding-top:28px;display:flex}.project-stats span{font:10px/1.35 var(--mono);color:var(--muted);text-transform:uppercase}.project-stats span:before{content:"↗";color:var(--green);margin-right:7px}.timeline-item{border-top:1px solid var(--line);grid-template-columns:190px 1fr;gap:35px;padding:31px 0 2px;display:grid}.timeline-date{font:11px var(--mono);color:var(--green)}.role{letter-spacing:-.04em;margin:0 0 9px;font-size:25px;font-weight:600}.role span{color:var(--muted);font-weight:400}.timeline-item ul{max-width:710px;color:var(--muted);margin:25px 0 22px;padding-left:18px;font-size:15px;line-height:1.6}.timeline-item li{margin-bottom:8px;padding-left:6px}.timeline-item li::marker{color:var(--green)}.edu-grid{grid-template-columns:1fr 1fr;gap:30px;display:grid}.edu-grid>div{border-top:1px solid var(--line);padding-top:21px}.edu-grid h3{margin:16px 0 11px;font-size:21px;line-height:1.25}.edu-grid h3 span{color:var(--muted);font-weight:400}.edu-grid>div>p:not(.small-label){color:var(--muted);font-size:14px;line-height:1.6}.certs{color:var(--muted);margin:18px 0 0;padding:0;font-size:14px;line-height:1.6;list-style:none}.certs li{border-bottom:1px solid var(--line);padding:8px 0}.certs li:before{content:"✓";color:var(--green);margin-right:10px}.contact{min-height:590px;padding:100px 8%;position:relative;overflow:hidden}.contact>:not(.contact-backdrop){z-index:1;position:relative}.contact-backdrop{color:#a8e65e0e;letter-spacing:-.09em;font-size:clamp(130px,20vw,280px);font-weight:700;line-height:.68;position:absolute;bottom:-67px;right:-14px}.contact h2{margin:25px 0 20px}.contact-copy{color:var(--muted);max-width:510px;line-height:1.6}.email-link{letter-spacing:-.04em;-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green);text-underline-offset:7px;margin:35px 0;font-size:clamp(19px,2.3vw,30px);font-weight:600;display:inline-block}.email-link b{color:var(--green);font-size:.8em}.contact-details{flex-wrap:wrap;gap:25px;display:flex}.contact-details a{font:11px var(--mono);color:var(--muted);text-decoration:none}.contact-details a:hover{color:var(--green)}footer{min-height:100px;color:var(--muted);font:10px var(--mono);grid-template-columns:1fr 2fr 1fr;align-items:center;gap:15px;display:grid}footer p:last-child{text-align:right}@media (width<=760px){.shell{width:min(100% - 36px,1180px)}.nav{height:66px}.nav-links{display:none}.availability{font-size:10px}.hero{min-height:unset;grid-template-columns:1fr;padding:64px 0 50px}.hero h1{font-size:54px}.hero-description{font-size:16px}.portrait-wrap{order:-1;height:350px}.portrait-frame{width:222px;height:286px}.orbit-one{width:290px;height:290px}.orbit-two{width:340px;height:160px}.top-label{right:0}.bottom-label{bottom:0;left:0}.metrics{grid-template-columns:repeat(2,1fr)}.metrics>div{border-bottom:1px solid var(--line);padding:22px 9px!important}.metrics>div:nth-child(2){border-right:0}.section{padding:70px 0}.section-heading{margin-bottom:34px}.about-content,.edu-grid{grid-template-columns:1fr;gap:30px}.section h2,.contact h2{font-size:38px}.skill-grid{grid-template-columns:1fr}.project{grid-template-columns:42px 1fr;padding:26px 0}.project-stats{flex-flow:wrap;grid-column:2;padding:0}.project h3{font-size:23px}.timeline-item{grid-template-columns:1fr;gap:12px}.role{font-size:21px}.contact{min-height:500px;padding:70px 0}.contact-backdrop{bottom:-42px;right:-8px}.email-link{word-break:break-all;font-size:18px}.contact-details{gap:15px}footer{grid-template-columns:1fr;gap:7px;padding:24px 0}footer p:last-child{text-align:left}}
