@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500&family=Syne:wght@400;500;600;700;800&display=swap');

:root{
  --bg:#080808;
  --paper:#e9e7e1;
  --muted:#9b9a96;
  --line:rgba(233,231,225,.17);
  --acid:#d7ff3f;
  --max:1380px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:transparent;color:var(--paper);font-family:"Syne",sans-serif;overflow-x:hidden}
#webgl-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;opacity:1;mix-blend-mode:normal;pointer-events:none}
main{position:relative;z-index:1}
a{color:inherit;text-decoration:none}
.nav{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:absolute;top:0;width:100%;z-index:10}
.wordmark{font:500 22px "IBM Plex Mono",monospace;letter-spacing:-.08em}.wordmark span,.dot{color:var(--acid)}
.nav-meta{display:flex;gap:34px;align-items:center;font:400 10px "IBM Plex Mono",monospace;letter-spacing:.12em;color:#bdbbb5}
.nav-meta a{transition:color .25s}.nav-meta a:hover{color:var(--acid)}
.hero{min-height:100vh;padding:18vh 5vw 8vh;display:flex;flex-direction:column;justify-content:center;position:relative}
.hero-kicker,.eyebrow,.section-label,.project-date,.facts span,.stack-columns span,.social-card span,footer{font:400 10px "IBM Plex Mono",monospace;letter-spacing:.14em}
.hero-title{font-size:clamp(78px,14vw,220px);line-height:.79;letter-spacing:-.06em;font-weight:600;margin:11vh 0 0}
.line{display:block}.indent{padding-left:12vw}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;max-width:1000px}.hero-bottom p{max-width:410px;font-size:15px;line-height:1.7;color:#b9b7b1}.scroll-cue{font:400 9px "IBM Plex Mono";letter-spacing:.15em;display:flex;gap:15px;align-items:center}.scroll-cue i{width:46px;height:1px;background:var(--paper);display:block}
.section{max-width:var(--max);margin:auto;padding:150px 5vw}.section-label{color:#76746f;border-top:1px solid var(--line);padding-top:15px}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw;padding-top:80px}.about-heading h2,.stack-intro h2,.contact-title h2{font-size:clamp(45px,6vw,88px);line-height:.95;letter-spacing:-.065em;margin:15px 0;font-weight:600}.about-copy{padding-top:5px}.about-copy .large{font-size:25px;line-height:1.35;margin:0 0 32px}.about-copy>p:not(.large){font-size:15px;color:#aaa8a2;line-height:1.8;max-width:600px}.facts{border-top:1px solid var(--line);margin-top:55px}.facts div{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.facts span{color:#777}.facts strong{font-weight:500}
.visual-break,.closing-visual{height:78vh;position:relative;overflow:hidden}.visual-image,.closing-image{position:absolute;inset:-4%;background-size:cover;background-position:center;filter:grayscale(1) contrast(1.1);transform:scale(1.04)}.image-a{background-image:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.05)),url("https://images.unsplash.com/photo-1558494949-ef010cbdcc31?auto=format&fit=crop&w=2200&q=85")}.visual-caption{position:absolute;bottom:35px;left:5vw;font:400 10px "IBM Plex Mono";letter-spacing:.2em}
.project-list{margin-top:65px}.project{display:grid;grid-template-columns:60px 1fr 130px;border-top:1px solid var(--line);padding:28px 0 34px;gap:25px}.project:last-child{border-bottom:1px solid var(--line)}.project-index,.project-date{color:#777}.project-main{position:relative;z-index:1;display:grid;grid-template-columns:minmax(260px,1fr) 1fr;gap:5vw}.project-image{aspect-ratio:1.5/1;background-size:cover;background-position:center;filter:grayscale(1);transition:filter .7s,transform .7s}.project:hover .project-image{filter:grayscale(0);transform:scale(.985)}.p-rustdb{background-image:url("https://images.unsplash.com/photo-1558494949-ef010cbdcc31?auto=format&fit=crop&w=1200&q=80")}.p-gitops{background-image:url("https://images.unsplash.com/photo-1451187580459-43490279c0fa?auto=format&fit=crop&w=1200&q=80")}.p-quant{background-image:url("https://images.unsplash.com/photo-1611974789855-9c2a0a7236a3?auto=format&fit=crop&w=1200&q=80")}.p-smol{background-image:url("https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&fit=crop&w=1200&q=80")}.project-info{display:flex;flex-direction:column;justify-content:space-between;padding:3px 0}.project-info h3{font-size:clamp(32px,4vw,60px);letter-spacing:-.06em;margin:10px 0;font-weight:600}.project-info>p{font-size:14px;line-height:1.7;color:#a5a39d;max-width:480px}.tags{display:flex;flex-wrap:wrap;gap:8px;color:#898780}.tags span{border:1px solid var(--line);padding:7px 9px}
.image-grid-section{padding:0 5vw 130px;max-width:1500px;margin:auto}.image-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:34vw 20vw;gap:14px}.tile{background-size:cover;background-position:center;filter:grayscale(1);transition:filter .5s}.tile:hover{filter:grayscale(0)}.tall{grid-row:span 2}.wide{grid-column:2}.image-b{background-image:url("https://images.unsplash.com/photo-1519608487953-e999c86e7455?auto=format&fit=crop&w=1500&q=85")}.image-c{background-image:url("https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1100&q=85")}.image-d{background-image:url("https://images.unsplash.com/photo-1531297484001-80022131f5a1?auto=format&fit=crop&w=1100&q=85")}.image-e{background-image:url("https://images.unsplash.com/photo-1515879218367-8466d910aaa4?auto=format&fit=crop&w=1300&q=85")}
.stack-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:9vw;margin-top:75px}.stack-columns{display:grid;grid-template-columns:1fr 1fr;gap:60px 50px}.stack-columns span{color:#777}.stack-columns p{font-size:18px;line-height:1.8;margin-top:15px}
.marquee-section{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.marquee{white-space:nowrap;font-size:clamp(35px,6vw,80px);letter-spacing:-.05em;font-weight:600;animation:move 18s linear infinite}.marquee span{display:inline-block}@keyframes move{to{transform:translateX(-50%)}}
.signal-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:0 10vw;margin-top:80px}.signal-number{font-size:clamp(90px,12vw,180px);font-weight:600;letter-spacing:-.09em;line-height:.8;border-top:1px solid var(--line);padding:30px 0}.signal-number span{color:var(--acid);font-size:.4em}.signal-copy{border-top:1px solid var(--line);padding:30px 0 80px}.signal-copy h2{font-size:clamp(30px,4vw,55px);line-height:1;letter-spacing:-.06em;margin:15px 0}.signal-copy>p:last-child{max-width:520px;color:#999;line-height:1.8}
.closing-image{background-image:linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.7)),url("https://images.unsplash.com/photo-1535223289827-42f1e9919769?auto=format&fit=crop&w=2200&q=85")}.closing-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:5vw}.closing-overlay p{font:400 10px "IBM Plex Mono";letter-spacing:.18em}.closing-overlay span{font-size:clamp(55px,9vw,130px);line-height:.8;letter-spacing:-.07em;font-weight:600}
.contact{padding-bottom:35px}.contact-title{margin-top:85px}.social-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:90px;border-top:1px solid var(--line)}.social-card{min-height:230px;padding:35px 30px;border-bottom:1px solid var(--line);transition:background .35s,transform .35s}.social-card:first-child{border-right:1px solid var(--line)}.social-card:hover{background:#111;transform:translateY(-4px)}.social-card strong{display:block;font-size:clamp(28px,4vw,58px);letter-spacing:-.06em;font-weight:600;margin:45px 0 20px}.social-card small{font:400 9px "IBM Plex Mono";letter-spacing:.12em;color:#777}footer{border-top:1px solid var(--line);margin-top:120px;padding-top:18px;display:flex;justify-content:space-between;color:#777}footer a{color:#aaa}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){
 .nav-meta span{display:none}.nav-meta{gap:18px}.hero{padding-top:19vh}.hero-title{font-size:21vw}.hero-bottom{display:block}.scroll-cue{margin-top:30px}.about-grid,.stack-grid{grid-template-columns:1fr}.about-grid{gap:50px}.project{grid-template-columns:35px 1fr}.project-date{display:none}.project-main{position:relative;z-index:1;grid-template-columns:1fr}.project-image{margin-bottom:20px}.image-grid{grid-template-columns:1fr 1fr;grid-template-rows:60vw 30vw}.tall{grid-row:span 2}.wide{grid-column:1/3}.signal-grid{grid-template-columns:1fr;gap:0}.social-grid{grid-template-columns:1fr}.social-card:first-child{border-right:0}.stack-columns{gap:40px 20px}.stack-columns p{font-size:15px}.section{padding:110px 5vw}.visual-break,.closing-visual{height:58vh}footer{gap:20px;flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.social-brand{display:flex;align-items:center;gap:11px}.social-brand svg{width:18px;height:18px;fill:currentColor}
.stack-columns{grid-template-columns:repeat(3,1fr);gap:45px 35px}
.stack-columns p{font-size:15px;line-height:1.75}
@media(max-width:800px){.stack-columns{grid-template-columns:1fr 1fr}.stack-columns p{font-size:14px}}

.hero-role{font:400 10px "IBM Plex Mono",monospace;letter-spacing:.15em;color:#8d8b86;margin-bottom:55px}
.project-info>p{max-width:390px}
.contact-title{margin-top:55px}

.achievements{padding-top:100px;padding-bottom:100px}
.achievements-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:9vw}
.achievements-grid h2{font-size:clamp(48px,6vw,85px);line-height:.9;letter-spacing:-.06em;margin:14px 0;font-weight:600}
.achievement-list{border-top:1px solid var(--line)}
.achievement-list div{display:grid;grid-template-columns:1fr 1.45fr;gap:20px;align-items:center;padding:23px 0;border-bottom:1px solid var(--line)}
.achievement-list strong{font-size:clamp(27px,3vw,46px);letter-spacing:-.05em;font-weight:600}
.achievement-list span{font:400 9px "IBM Plex Mono",monospace;letter-spacing:.13em;color:#8a8882}
.footer-links{margin-top:70px;border-top:1px solid var(--line)}
.footer-links a{display:grid;grid-template-columns:160px 1fr;gap:30px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);transition:padding-left .3s ease,color .3s ease}
.footer-links a:hover{padding-left:12px;color:var(--acid)}
.footer-links span{font:400 9px "IBM Plex Mono",monospace;letter-spacing:.14em;color:#777}
.footer-links strong{font-size:16px;font-weight:500;letter-spacing:-.02em}
.contact{padding-top:95px;padding-bottom:30px}
.contact-title{margin-top:0}
footer{margin-top:95px}
@media(max-width:800px){
  .achievements-grid{grid-template-columns:1fr;gap:45px}
  .achievement-list div{grid-template-columns:1fr 1.2fr}
  .footer-links a{grid-template-columns:1fr;gap:7px}
}

.tech-section{padding-top:110px;padding-bottom:130px}
.tech-head{margin-bottom:55px}
.tech-head h2{font-size:clamp(44px,6vw,78px);line-height:.9;letter-spacing:-.06em;margin:12px 0;font-weight:600}
.tech-marquee{width:100%;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}
.tech-track{display:flex;width:max-content;align-items:center;animation:tech-scroll 32s linear infinite}
.tech-track img{height:52px;width:auto;max-width:none;display:block;margin-right:70px}
@keyframes tech-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.social-logo{display:flex!important;align-items:center;justify-content:center;width:22px;height:22px;color:var(--paper)!important}
.social-logo svg{width:22px;height:22px;fill:currentColor}
.leetcode-mark{font:600 11px "IBM Plex Mono",monospace;border:1px solid rgba(233,231,225,.45);border-radius:4px}
.mail-mark{font:400 18px "IBM Plex Mono",monospace}
.footer-links a{grid-template-columns:32px 115px 1fr;gap:18px}
.footer-links a>span:nth-child(2){font:400 9px "IBM Plex Mono",monospace;letter-spacing:.14em;color:#777}
.footer-links strong{font-size:15px;font-weight:500;letter-spacing:-.01em}
.contact{background:#050505;max-width:none;padding-left:5vw;padding-right:5vw}
.contact-title,.footer-links,footer{max-width:1380px;margin-left:auto;margin-right:auto}
.contact-title{margin-top:0}
footer{padding-bottom:15px}
@media(max-width:800px){
  .tech-track img{height:42px;margin-right:48px}
  .footer-links a{grid-template-columns:28px 1fr;gap:10px}
  .footer-links a>span:nth-child(2){grid-column:2}
  .footer-links strong{grid-column:2;font-size:14px}
}

.eyebrow,.section-label,.project-date,.tags,.facts span,.stack-columns span,.hero-role,footer{
  line-height:1.5;
}
p{line-height:1.75}

.project-tech{display:flex;align-items:center;gap:13px;margin-top:25px}
.project-tech img{width:19px;height:19px;display:block;opacity:.82}
.tech-marquee{position:relative;width:100%;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:21px 0}
.tech-track{display:flex;width:max-content;align-items:center;animation:tech-scroll 38s linear infinite;will-change:transform}
.tech-set{display:flex;align-items:center;gap:34px;padding-right:34px;flex:none}
.tech-set img{width:38px;height:38px;display:block;flex:none;opacity:.9;transition:opacity .2s}
.tech-set img:hover{opacity:1}
@keyframes tech-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.social-logo{width:26px;height:26px;display:flex!important;align-items:center;justify-content:center}
.social-logo img{width:22px;height:22px;display:block}
.social-logo svg{width:22px;height:22px;fill:#d8d7d2}
.leetcode-mark,.mail-mark{border:0!important}
.footer-links a{grid-template-columns:34px 115px 1fr}
footer{gap:20px}

@media(max-width:800px){
  .tech-set{gap:25px;padding-right:25px}
  .tech-set img{width:31px;height:31px}
  .project-tech{gap:11px}
  .project-tech img{width:17px;height:17px}
}