@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--paper:#f5f4ef;--ink:#252822;--muted:#64675f;--line:#d8dad1;--blue:#234ce4;--pale:#e9ece3;--display:'Manrope',sans-serif;--body:'DM Sans',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}a:hover{color:var(--blue)}::selection{background:#ced6fb}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font:800 38px/1 var(--display);letter-spacing:-4px}.wordmark span{color:var(--blue)}nav{display:flex;gap:40px;font-size:13px;font-weight:600}nav a{padding-block:12px}nav a:last-child{margin-left:28px}.skip{position:absolute;top:-100px;left:20px;background:var(--paper);padding:12px;z-index:10}.skip:focus{top:10px}.hero{padding-top:74px}.eyebrow{font-size:11px;font-weight:650;letter-spacing:1.6px;display:flex;align-items:center;gap:12px;margin:0 0 25px}.dot{width:7px;height:7px;background:var(--blue);border-radius:50%}.slash{color:#a1a498;margin:0 5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--display);font-weight:500}h1{font-size:clamp(52px,7.2vw,106px);line-height:1.09;letter-spacing:-6px;margin-bottom:42px}.serif{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;letter-spacing:-.05em}.blue{color:var(--blue)}.hero-bottom{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.intro p{max-width:370px;font-size:18px;line-height:1.7;color:var(--muted);margin-bottom:28px}.button{display:inline-flex;align-items:center;gap:40px;background:var(--blue);color:var(--paper);padding:15px 22px;font-size:13px}.button:hover{background:#1939b5;color:var(--paper)}.button span{font-size:20px}.architecture{padding-top:10px}.diagram-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.3px;color:var(--muted);margin-bottom:22px}.nodes{display:flex;align-items:center;justify-content:space-between}.node{display:flex;flex-direction:column;align-items:center;gap:9px;font-size:10px;min-width:60px}.node-icon{width:54px;height:54px;border:1px solid #babfb1;display:grid;place-items:center;font-size:22px;line-height:1;background:var(--paper)}.node.active .node-icon{border-color:var(--blue);color:var(--blue);background:#e8ecfa}.connector{color:#8f9588;padding-bottom:23px}.pipeline{font-size:34px}.feedback{display:flex;justify-content:space-between;margin:13px 28px 0;border-bottom:1px dashed #a8ae9e;padding-bottom:7px;color:var(--muted);font-size:8px;letter-spacing:1.4px}.feedback span:first-child,.feedback span:last-child{font-size:16px}.hero-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:24px 0;margin-top:64px;font-size:8px;letter-spacing:1.25px;color:var(--muted)}.stack-strip{background:var(--pale);padding:28px 0}.stack-strip .wrap{display:flex;justify-content:space-between;align-items:center;gap:35px}.stack-strip span{font-size:9px;letter-spacing:1.3px}.stack-strip p{margin:0;font:500 21px var(--display)}.stack-strip i{font-style:normal;color:#a6ad9c;margin:0 20px}.section{padding-block:100px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}h2{font-size:clamp(30px,3.2vw,46px);line-height:1.2;letter-spacing:-1.8px;margin-bottom:0}.section-heading>p{font-size:13px;color:var(--muted);margin:0 0 3px}.project{border:1px solid var(--line)}.featured{display:grid;grid-template-columns:1fr 1fr}.project-copy{padding:34px 40px}.project-meta{display:flex;justify-content:space-between;gap:16px;font-size:9px;letter-spacing:1px;color:var(--muted)}h3{font-size:34px;line-height:1.2;letter-spacing:-1px;margin:30px 0 20px}.project p{font-size:14px;color:var(--muted);line-height:1.8}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0}.tags span{font-size:10px;padding:3px 10px;border:1px solid var(--line);border-radius:20px}.project details{border-top:1px solid var(--line);font-size:12px}.project summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:50px}.project summary::-webkit-details-marker{display:none}.project summary span{font-size:22px;color:var(--blue)}details[open] summary span{transform:rotate(45deg)}details p{padding-top:10px}.network-art{position:relative;min-height:400px;overflow:hidden;background:#e7ebe0;background-image:radial-gradient(#bbc4af .7px,transparent .7px);background-size:18px 18px;display:grid;place-items:center}.art-caption,.art-foot{position:absolute;font-size:9px;letter-spacing:1.3px;left:30px}.art-caption{top:25px}.art-foot{bottom:22px}.orbit{position:absolute;border:1px solid #c3ccba;border-radius:50%;width:260px;height:260px}.orbit-two{width:350px;height:350px}.network-line{position:absolute;background:#9dad91}.horizontal{width:72%;height:1px}.vertical{height:65%;width:1px}.hub{z-index:1;background:var(--blue);color:var(--paper);width:100px;height:100px;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:10px;letter-spacing:2px;box-shadow:0 0 0 9px #e7ebe0}.hub strong{font-size:22px;letter-spacing:0;font-weight:500}.spoke{position:absolute;background:#f3f5ee;border:1px solid #bac5af;padding:10px 12px;font-size:9px;letter-spacing:1px;z-index:1}.spoke-top{top:17%;left:50%;transform:translateX(-50%)}.spoke-bottom{bottom:17%;left:50%;transform:translateX(-50%)}.spoke-left{left:6%}.spoke-right{right:6%}.project-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.secondary{padding:30px 36px}.mini-pipeline,.region-art{margin-top:32px;min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;letter-spacing:.5px;background:var(--pale);padding:15px}.mini-pipeline b,.region-art b{font-size:20px;font-weight:400;color:#939b88}.region-art span{display:flex;align-items:center;gap:7px}.region-art i{height:6px;width:6px;background:var(--blue);border-radius:50%}.region-art span:last-child i{background:transparent;border:1px solid var(--blue)}.secondary h3{margin-top:25px}.about{background:var(--pale)}.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:110px}.about h2{margin-bottom:30px}.about p:not(.eyebrow){color:var(--muted);font-size:14px}.about p.about-intro{font-size:19px;color:var(--ink)}.about .personal{margin-top:25px}.text-link{font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:6px}.timeline>div{padding:20px 0;border-top:1px solid #c8cebf}.timeline>div>span{font-size:9px;letter-spacing:1px;color:var(--muted)}.timeline h3{font-size:21px;margin:8px 0 5px;letter-spacing:-.5px}.timeline h3 small{font:12px var(--body);color:var(--muted);margin-left:8px}.timeline p{margin-bottom:0}.credentials-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.cert-label{font-size:10px;letter-spacing:1.2px;color:var(--muted)}.certs{list-style:none;margin:0;padding:0}.certs li{border-bottom:1px solid var(--line);padding:16px 0;display:flex;justify-content:space-between;gap:18px;font-size:15px}.certs span{font-size:11px;color:var(--blue);white-space:nowrap}.extra-cert{font-size:12px;margin-top:20px;color:var(--muted)}.education{margin-top:36px;font-size:13px}.education span{color:var(--muted);font-size:12px}.contact{background:var(--blue);color:var(--paper);padding:70px 0}.contact h2{font-size:clamp(42px,6vw,82px);letter-spacing:-3px}.contact h2>span:last-child{display:inline-block;margin-left:30px}.contact-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:45px}.email{font-size:20px;border-bottom:1px solid #94a6f0}.contact a:hover{color:#c5d0fc}.contact button{cursor:pointer;background:none;border:1px solid #8299ee;color:var(--paper);padding:9px 13px;font-size:11px}.contact button:hover{background:#365ceb}.contact :focus-visible{outline-color:var(--paper)}#copy-status{font-size:12px;max-width:250px}.socials{display:flex;gap:24px;margin-left:auto;font-size:12px}.footer{display:flex;align-items:center;gap:25px;justify-content:space-between;padding-block:30px;font-size:10px;color:var(--muted)}.footer .wordmark{color:var(--ink)}.footer>span:nth-last-child(2){letter-spacing:1px;font-size:8px}.hero h1{animation:enter .8s both}.hero-bottom{animation:enter .8s .1s both}@keyframes enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero{padding-top:95px;padding-bottom:10px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}h1{letter-spacing:-4px}.hero-bottom{gap:40px}.stack-strip p{font-size:17px}.stack-strip i{margin:0 10px}.project-copy,.secondary{padding:25px}.about-grid{gap:50px}.hero-footer>span:nth-child(2){display:none}.project-meta{font-size:8px}.credentials-grid{gap:40px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{height:80px}.wordmark{font-size:34px}nav{gap:18px;font-size:11px}nav a:last-child{margin-left:0}.hero{padding-top:44px}.eyebrow{font-size:9px;letter-spacing:1px;gap:7px}h1{font-size:clamp(42px,9.5vw,67px);letter-spacing:-2.7px;margin-bottom:28px}.hero-bottom{grid-template-columns:1fr;gap:35px}.intro p{font-size:16px;max-width:360px}.architecture{max-width:420px;width:100%;margin-inline:auto;padding:22px 0 0;border-top:1px solid var(--line)}.hero-footer{margin-top:35px;font-size:7px;padding-block:20px}.stack-strip{padding-block:23px}.stack-strip .wrap{align-items:start;flex-direction:column;gap:14px}.stack-strip p{font-size:15px;line-height:2}.stack-strip i{margin:0 7px}.section{padding-block:65px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px}.section-heading>p br{display:none}.featured,.project-pair,.about-grid,.credentials-grid{grid-template-columns:1fr}.featured .network-art{min-height:320px;grid-row:1}.network-art .orbit{width:210px;height:210px}.network-art .orbit-two{width:290px;height:290px}.network-art .hub{width:80px;height:80px}.project-copy,.secondary{padding:25px 22px}.project h3{font-size:30px}.project-meta{font-size:8px;letter-spacing:.6px}.project-pair{gap:20px;margin-top:20px}.about-grid{gap:45px}.credentials-grid{gap:35px}.certs li{font-size:13px}.certs span{font-size:10px}.contact{padding-block:55px}.contact h2{letter-spacing:-2px}.contact h2>span:last-child{margin-left:5px}.email{font-size:18px}.contact-bottom{gap:15px}.socials{margin-left:0;width:100%;margin-top:15px}.footer{flex-wrap:wrap;gap:20px}.footer>span:nth-last-child(2){display:none}.footer .wordmark{font-size:30px}.footer>span{margin-right:auto}.footer>a:last-child{margin-left:auto}.mini-pipeline,.region-art{font-size:8px;padding:12px}.region-art span{gap:4px}.node{min-width:48px}.node-icon{width:48px;height:48px}}
.scroll-reveal{transition:opacity 600ms cubic-bezier(.22,1,.36,1),transform 600ms cubic-bezier(.22,1,.36,1)}
.reveal-pending{opacity:0;transform:translateY(24px)}
.scroll-reveal:focus-within{opacity:1;transform:none;transition:none}
@media(min-width:701px){.project-pair>.scroll-reveal:nth-child(2),.about-grid>.scroll-reveal:nth-child(2),.credentials-grid>.scroll-reveal:nth-child(2){transition-delay:80ms}}
@media print{.scroll-reveal{opacity:1;transform:none;transition:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-reveal{opacity:1;transform:none}*,*::before,*::after{animation:none!important;transition:none!important}}

.certs li{display:block;padding:0}.certs li a{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 0;min-height:48px}.certs li a:hover{background:var(--pale)}.extra-cert a{display:inline-block;padding-block:12px;text-decoration:underline;text-underline-offset:4px}
