@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap");:root{--bg:#080a0e;--paper:#10141a;--ink:#eef1f4;--muted:#8d99a6;--line:rgba(207,220,233,.14);--lime:#d0fd70;--cyan:#78e5f3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,Arial,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}main{overflow:hidden}.ambient{position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 68% 8%,rgba(75,117,147,.16),transparent 29%),radial-gradient(circle at 12% 48%,rgba(137,99,178,.08),transparent 24%),#080a0e}.ambient:after{content:"";position:absolute;inset:0;opacity:.26;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 0);background-size:48px 48px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 75%);mask-image:linear-gradient(180deg,#000,transparent 75%)}.nav{height:82px;max-width:1280px;margin:auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.wordmark{font-family:DM Mono,monospace;font-weight:500;letter-spacing:-2px;font-size:20px}.wordmark span{color:var(--lime)}.nav-links{display:flex;align-items:center;gap:29px;font:12px DM Mono,monospace;color:#b7c0cb}.nav-links>a:not(.nav-contact):hover{color:var(--lime)}.nav-contact{border:1px solid var(--line);padding:9px 12px;display:flex;align-items:center;gap:7px;color:#e8edf0}.menu{display:none;background:none;color:#fff;border:0}.hero{min-height:calc(100svh - 82px);max-width:1280px;margin:auto;padding:92px 40px 54px;display:flex;align-items:center}.hero,.hero-copy{position:relative}.hero-copy{z-index:2;max-width:750px}.eyebrow{font:11px DM Mono,monospace;letter-spacing:.12em;color:#8a96a3;margin:0 0 21px}.eyebrow span{width:8px;height:8px;display:inline-block;background:var(--lime);border-radius:50%;margin-right:9px;box-shadow:0 0 15px var(--lime)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,7.2vw,101px);letter-spacing:-.075em;line-height:.98;margin:0 0 29px;font-weight:700}em{font-style:normal;color:var(--lime)}.hero-lede{font-size:17px;line-height:1.72;color:#aeb8c2;max-width:570px;margin-bottom:34px}.hero-actions{display:flex;gap:11px}.button{font:12px DM Mono,monospace;padding:13px 17px;display:inline-flex;gap:10px;align-items:center;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--lime);color:#0a0d10}.secondary{border:1px solid var(--line);color:#dbe3e9}.network{width:min(48vw,620px);aspect-ratio:1;position:absolute;right:-2%;top:50%;transform:translateY(-50%);border:1px solid rgba(167,220,238,.12);background:radial-gradient(circle at 50% 50%,rgba(92,185,208,.09),transparent 47%);overflow:hidden}.network:after,.network:before{content:"";position:absolute;z-index:-1;border:1px solid rgba(156,220,231,.1);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.network:before{width:57%;height:57%;animation:pulse 5s ease-in-out infinite}.network:after{width:82%;height:82%}.network svg{width:100%;height:100%;overflow:visible}.network line{stroke:#80ddec;stroke-opacity:.32;stroke-width:.17}.node{fill:#d1fd70;filter:drop-shadow(0 0 3px #c8fc77);animation:blink 3s ease-in-out infinite}.node-halo{fill:#b9fae9;fill-opacity:.07}.network-label,.network-readout{position:absolute;font:10px DM Mono,monospace;color:#7eacb5;letter-spacing:.12em}.network-label{top:18px;left:19px}.network-readout{bottom:17px;right:19px;text-align:right}.network-readout b{display:block;color:#d7e9ec;margin-top:4px}.hero-meta{position:absolute;bottom:30px;left:40px;right:40px;display:flex;justify-content:space-between;color:#66717d;font:10px DM Mono,monospace;letter-spacing:.12em}.section{max-width:1280px;margin:auto;padding:125px 40px}.section-head{display:grid;grid-template-columns:1.05fr 1.3fr .75fr;align-items:end;grid-gap:30px;gap:30px;margin-bottom:65px}.section-head .eyebrow{margin:0 0 auto}.about h2,.contact h2,.section-head h2{font-size:clamp(34px,4.4vw,62px);letter-spacing:-.065em;line-height:1.04;margin:0}.section-head>p:last-child{color:var(--muted);font-size:14px;line-height:1.7;margin:0}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:14px;gap:14px}.project-card{min-height:550px;display:flex;flex-direction:column;padding:24px;background:rgba(16,20,26,.9);border:1px solid var(--line);position:relative;transition:transform .3s ease,border-color .3s ease}.project-card:hover{transform:translateY(-7px);border-color:rgba(217,240,249,.32)}.project-top{display:flex;justify-content:space-between;color:#aebbc5}.project-top a{height:34px;width:34px;display:grid;place-items:center;border:1px solid var(--line);transition:.2s}.project-top a:hover{background:#eaf2ef;color:#111}.project-id,.project-type,.tags span{font:10px DM Mono,monospace;letter-spacing:.07em}.project-id{color:#73818e}.project-diagram{height:177px;margin:44px 0 10px;display:flex;align-items:center;justify-content:center;gap:12px;color:#d5e9eb}.project-diagram span{border:1px solid;padding:10px 9px;text-transform:uppercase;font:10px DM Mono,monospace;min-width:64px;text-align:center}.project-diagram i{width:30px;height:1px;background:currentColor;position:relative;opacity:.6}.project-diagram i:after{content:"";position:absolute;right:0;top:-2px;border-left:5px solid;border-top:2.5px solid transparent;border-bottom:2.5px solid transparent}.violet .project-diagram{color:#d7a8ff}.cyan .project-diagram{color:var(--cyan)}.lime .project-diagram{color:var(--lime)}.orange .project-diagram{color:#f7ad72}.project-content{margin-top:auto}.project-type{color:#85919e;margin-bottom:8px}.project-content h3{font-size:29px;letter-spacing:-.06em;margin-bottom:11px}.project-content>p{font-size:14px;color:#b3bdc6;line-height:1.65;margin-bottom:13px;max-width:530px}.project-content .detail{font-size:12.5px;color:#77838f}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:19px}.tags span{border:1px solid var(--line);color:#b9c5ce;padding:6px 8px}.about{display:grid;grid-template-columns:.35fr 1.15fr .9fr;grid-gap:45px;gap:45px;align-items:start;border-top:1px solid var(--line)}.about-number{font:14px DM Mono,monospace;color:var(--lime)}.about-copy h2{margin-bottom:29px}.about-copy>p{font-size:15px;color:#aab5bf;line-height:1.8}.text-link{font:12px DM Mono,monospace;margin-top:18px;display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid var(--lime);padding-bottom:5px}.portrait{justify-self:end}.portrait-frame{width:min(255px,100%);position:relative;padding:8px;border:1px solid var(--line);background:#12171e}.portrait img{width:100%;height:300px;object-fit:cover;object-position:50% 32%;display:block;filter:none}.frame-label{position:absolute;bottom:16px;right:-26px;padding:5px 7px;background:var(--lime);color:#0b1012;font:9px DM Mono,monospace}.compact{display:block;margin-bottom:45px}.compact .eyebrow{margin-bottom:20px}.experience,.timeline{border-top:1px solid var(--line)}.timeline-row{display:grid;grid-template-columns:27% 1fr;grid-gap:25px;gap:25px;padding:31px 0;border-bottom:1px solid var(--line)}.timeline-row>p{font:11px DM Mono,monospace;color:#82909d}.timeline-row h3{font-size:19px;letter-spacing:-.04em;margin-bottom:8px}.timeline-row h3 span{font-weight:500;color:#85919e}.timeline-row div>p{color:#9aa6b0;max-width:710px;font-size:14px;line-height:1.7}.systems{border-top:1px solid var(--line)}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.skill-group{background:rgba(16,20,26,.8);padding:23px;border:1px solid var(--line)}.skill-group svg{color:var(--lime);margin-bottom:34px}.skill-group h3{font-size:15px;margin-bottom:19px}.skill-group div{display:flex;flex-wrap:wrap;gap:6px}.skill-group span{font:10px DM Mono,monospace;color:#9ba7b2;border:1px solid var(--line);padding:5px 6px}.achievements{border-top:1px solid var(--line);padding-top:50px;padding-bottom:50px;display:flex;gap:80px}.achievements .eyebrow{min-width:245px}.achievements div{display:flex;flex-wrap:wrap;gap:12px}.achievements span{font-size:13px;color:#cbd4d9;border-left:2px solid var(--lime);padding-left:11px}.contact{padding-top:150px;padding-bottom:145px;border-top:1px solid var(--line)}.contact h2{margin-bottom:33px}.contact-email{font-size:clamp(20px,3.5vw,47px);letter-spacing:-.055em;display:inline-flex;align-items:center;gap:16px;color:var(--lime);border-bottom:1px solid rgba(208,253,112,.55);padding-bottom:5px}footer{max-width:1280px;margin:auto;border-top:1px solid var(--line);padding:25px 40px;display:flex;justify-content:space-between;align-items:center;color:#788591;font:10px DM Mono,monospace}footer>div{display:flex;gap:15px}footer a:hover{color:var(--lime)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.in-view{opacity:1;transform:none}@keyframes pulse{50%{width:68%;height:68%;opacity:.45}}@keyframes blink{50%{opacity:.45}}@media(max-width:760px){.nav{height:70px;padding:0 21px}.menu{display:block}.nav-links{display:none}.nav-links.active{display:flex;position:absolute;top:60px;right:20px;left:20px;flex-direction:column;align-items:stretch;padding:18px;background:#10151b;border:1px solid var(--line);gap:17px}.nav-contact{justify-content:space-between}.hero{padding:79px 21px 62px;min-height:740px;align-items:flex-start}.hero-copy{padding-top:21px}.hero h1{font-size:53px}.hero-lede{font-size:15px;max-width:335px}.network{width:460px;right:-156px;top:auto;bottom:36px;transform:none;opacity:.72}.hero-meta{left:21px;right:21px;bottom:16px}.section{padding:80px 21px}.section-head{display:block;margin-bottom:39px}.section-head .eyebrow{margin-bottom:18px}.section-head h2{margin-bottom:17px}.project-grid{grid-template-columns:1fr}.project-card{min-height:480px}.about{grid-template-columns:1fr;gap:24px}.portrait{justify-self:start;margin-top:8px}.portrait-frame{width:210px}.portrait img{height:255px}.timeline-row{grid-template-columns:1fr;gap:8px}.skill-grid{grid-template-columns:repeat(2,1fr)}.achievements{display:block}.achievements .eyebrow{margin-bottom:19px}.achievements div{display:grid;grid-gap:14px;gap:14px}.contact{padding-top:100px;padding-bottom:100px}footer{padding:22px 21px}footer p{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}