:root{--ink:#0b1020;--panel:#10182b;--blue:#4e7cff;--cyan:#55d6c2;--white:#f7f9fc;--muted:#9ca9bf;--line:#29344b;--paper:#f3f5f8;--text:#182034;--sans:"Manrope",sans-serif;--mono:"IBM Plex Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.6 var(--sans);color:var(--text);background:var(--paper)}a{color:inherit}.dark{background:var(--ink);color:var(--white)}header{height:78px;background:#0b1020;color:#fff;display:flex;align-items:center;padding:0 max(28px,calc((100vw - 1240px)/2));border-bottom:1px solid #253047;position:sticky;top:0;z-index:20}.logo{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}.logo>b{width:39px;height:39px;border:1px solid #55739f;display:grid;place-items:center;font-size:.8rem}.logo span{font-size:.75rem;font-weight:700;line-height:1.3}.logo small{font:400 .55rem var(--mono);color:#8fa0ba}header nav{display:flex;gap:34px}header nav a,.social a{text-decoration:none;font-size:.78rem;font-weight:600}.social{display:flex;align-items:center;gap:18px;margin-left:44px}.social .contact{padding:9px 14px;border:1px solid #547cdb;border-radius:4px;background:#244a9e}.hero{min-height:760px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.orb{position:absolute;border-radius:50%;filter:blur(1px);opacity:.25}.orb.one{width:500px;height:500px;right:-150px;top:-200px;background:radial-gradient(circle,#426eff,transparent 68%)}.orb.two{width:350px;height:350px;left:-180px;bottom:-120px;background:radial-gradient(circle,#23c6ad,transparent 70%)}.hero-inner{width:min(1240px,calc(100% - 56px));margin:auto;padding:88px 0;display:grid;grid-template-columns:.92fr 1.08fr;gap:70px;align-items:center;position:relative}.status{display:inline-flex;gap:9px;align-items:center;font:500 .65rem var(--mono);color:#aab7ca;border:1px solid #2e3b53;padding:7px 10px;border-radius:3px}.status i{width:7px;height:7px;background:#4ce0a6;border-radius:50%;box-shadow:0 0 0 5px #4ce0a615;animation:pulse 2s infinite}.kicker,.section-title small,.education small,.cta small{font:500 .7rem var(--mono);letter-spacing:.09em;color:#6e94ff;margin-top:30px}.hero h1{font-size:clamp(3.2rem,5.2vw,5.25rem);line-height:1.03;letter-spacing:-.055em;margin:17px 0 25px;max-width:650px}.hero h1 span{background:linear-gradient(90deg,#7ea0ff,#5cddca);-webkit-background-clip:text;color:transparent}.lede{font-size:1.08rem;color:#a9b5c8;max-width:610px}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:34px}.hero-actions a{font-size:.82rem;font-weight:700;text-decoration:none}.button{background:#3868e8;padding:12px 16px;border-radius:4px}.button b{margin-left:34px}.console{background:#0d1424;border:1px solid #33415b;border-radius:8px;box-shadow:0 35px 70px #0006;overflow:hidden;animation:float 6s ease-in-out infinite}.console-bar{height:48px;background:#141e32;border-bottom:1px solid #33415b;display:flex;align-items:center;padding:0 14px;font:400 .62rem var(--mono);color:#95a4b9}.console-bar>span{display:flex;gap:6px}.console-bar i{width:7px;height:7px;border-radius:50%;background:#ff6d6d}.console-bar i:nth-child(2){background:#f1c65b}.console-bar i:nth-child(3){background:#4ed18c}.console-bar b{margin:auto;font-weight:400}.console-bar em{font-style:normal;color:#54dba9}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.metrics span{padding:13px;border-right:1px solid var(--line);font:400 .58rem var(--mono);color:#8190a6}.metrics b{display:block;color:#fff;font-size:1.05rem;margin-top:3px}.pipeline{display:grid;grid-template-columns:1fr 20px 1fr 20px 1fr 20px 1fr;padding:25px 16px;align-items:center}.pipeline article small{font:400 .55rem var(--mono);color:#718198}.pipeline article div{border:1px solid #384965;background:#131e32;padding:9px;margin-top:7px;font:500 .62rem var(--mono)}.pipeline>i{height:1px;background:#436fe0;position:relative;overflow:hidden}.pipeline>i b{position:absolute;width:7px;height:7px;background:#6f92f6;border-radius:50%;top:-3px;animation:packet 1.8s linear infinite}.console-log{display:flex;gap:20px;padding:12px 16px;border-top:1px solid var(--line);font:400 .55rem var(--mono);color:#55d6c2}.proof{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-bottom:1px solid #d6dce5;padding:0 max(28px,calc((100vw - 1240px)/2))}.proof div{padding:30px;border-right:1px solid #d6dce5;display:flex;align-items:center;gap:18px}.proof strong{font-size:2rem}.proof span{font-size:.72rem;color:#6c7788}.projects,.experience,.stack,.education{padding:110px max(28px,calc((100vw - 1240px)/2))}.section-title{display:grid;grid-template-columns:1fr 420px;align-items:end;margin-bottom:55px}.section-title small{margin:0}.section-title h2{font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.05;letter-spacing:-.045em;margin:12px 0 0}.section-title>p{color:#69758a;margin:0}.project-layout{display:grid;grid-template-columns:.8fr 1.2fr;border:1px solid #ccd4df;background:#fff;min-height:490px}.project-list{border-right:1px solid #ccd4df}.project-list button{width:100%;height:25%;border:0;border-bottom:1px solid #dce2ea;background:#fff;display:grid;grid-template-columns:45px 1fr 25px;align-items:center;text-align:left;padding:20px;cursor:pointer;color:#263149}.project-list button.active{background:#12203a;color:#fff}.project-list b{font:400 .65rem var(--mono);color:#8090a7}.project-list span{font-weight:700}.project-list small{display:block;font-weight:400;color:#7d899c;margin-top:4px}.project-detail{padding:45px;display:flex;flex-direction:column}.project-detail .label{font:500 .65rem var(--mono);color:#3c6ce5}.project-detail h3{font-size:2.4rem;line-height:1.1;margin:18px 0}.project-detail p{color:#68758a}.diagram{display:flex;align-items:center;margin:24px 0}.diagram span{border:1px solid #bfc9d7;padding:10px;font:500 .65rem var(--mono)}.diagram i{flex:1;height:1px;background:#7d9ce8}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}.tags span{font-size:.68rem;background:#edf1f7;padding:5px 8px;border-radius:3px}.project-detail>a{color:#315fce;font-size:.78rem;font-weight:700;margin-top:20px}.experience{background:#fff}.career{max-width:950px;margin-left:auto}.career article{display:grid;grid-template-columns:145px 30px 1fr;gap:15px;min-height:175px}.career time{font:400 .68rem var(--mono);color:#6a7789}.career article>i{width:10px;height:10px;border-radius:50%;background:#3e6fe8;box-shadow:0 0 0 6px #e5ebfa;position:relative}.career article>i:after{content:"";position:absolute;width:1px;height:165px;top:10px;left:4px;background:#ccd5e3}.career article:last-child>i:after{display:none}.career small{font:500 .65rem var(--mono);color:#4773da}.career h3{font-size:1.3rem;margin:7px 0}.career p{color:#69758a;margin:0}.stack .section-title>p{color:#9aa8be}.stack-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #344059}.stack-grid article{padding:30px 25px;border-right:1px solid #344059;min-height:245px}.stack-grid article>b,.stack-grid article>small{font:400 .65rem var(--mono);color:#6f8ed8}.stack-grid article>small{display:block;margin-top:35px;color:#8190a8}.stack-grid h3{font-size:1.2rem;margin:10px 0}.stack-grid p{font-size:.85rem;color:#9eabc0}.education{display:flex;align-items:center;gap:30px;background:#fff}.education img{width:75px;height:75px;object-fit:contain}.education small{margin:0}.education h2{margin:6px 0;font-size:1.4rem}.education p{margin:0;color:#718095}.cta{text-align:center;padding:110px 25px;background:linear-gradient(135deg,#edf3ff,#eefbf8)}.cta h2{font-size:clamp(2.3rem,5vw,4.5rem);line-height:1.08;letter-spacing:-.05em;max-width:850px;margin:20px auto 35px}.cta a{display:inline-flex;gap:50px;background:#10203a;color:#fff;padding:14px 18px;text-decoration:none;border-radius:4px;font-weight:700;font-size:.8rem}footer{height:82px;background:#0b1020;color:#8997ac;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1240px)/2));font:400 .65rem var(--mono)}@keyframes packet{to{transform:translateX(20px)}}@keyframes pulse{50%{box-shadow:0 0 0 8px #4ce0a608}}@keyframes float{50%{transform:translateY(-7px)}}
@media(max-width:900px){header nav{display:none}.hero-inner{grid-template-columns:1fr}.hero{min-height:auto}.section-title{grid-template-columns:1fr;gap:18px}.project-layout{grid-template-columns:1fr}.project-list{border-right:0}.project-list button{min-height:90px}.project-detail{min-height:430px}.stack-grid,.proof{grid-template-columns:1fr 1fr}.social>a:not(.contact){display:none}}@media(max-width:580px){header{padding:0 15px}.logo span{display:none}.hero-inner{width:calc(100% - 30px);padding:55px 0}.hero h1{font-size:3rem}.pipeline{grid-template-columns:1fr}.pipeline>i{height:20px;width:1px;justify-self:center}.metrics{grid-template-columns:1fr}.console-log{flex-direction:column;gap:5px}.proof{grid-template-columns:1fr;padding:0}.proof div{border-bottom:1px solid #d6dce5}.projects,.experience,.stack,.education{padding:75px 15px}.project-list button{grid-template-columns:35px 1fr 20px}.project-detail{padding:28px}.diagram{flex-direction:column}.diagram i{height:22px;width:1px}.career article{grid-template-columns:1fr}.career article>i{display:none}.stack-grid{grid-template-columns:1fr}.stack-grid article{border-right:0;border-bottom:1px solid #344059}.education{align-items:flex-start}.social{margin-left:10px}.console{animation:none}footer{padding:25px 15px;height:auto;flex-direction:column;align-items:flex-start;gap:8px}}
.stack-grid{grid-template-columns:repeat(3,1fr)}.stack-grid article:nth-child(3n){border-right:0}.stack-grid article:nth-child(-n+3){border-bottom:1px solid #344059}
@media(max-width:900px){.stack-grid{grid-template-columns:1fr 1fr}.stack-grid article:nth-child(3n){border-right:1px solid #344059}.stack-grid article:nth-child(2n){border-right:0}}
@media(max-width:580px){.stack-grid{grid-template-columns:1fr}.stack-grid article{border-right:0!important}}
.logo>b{position:relative;background:linear-gradient(145deg,#172540,#0c1425);border:1px solid #5b7ec2;box-shadow:inset 0 0 16px #31589a33,0 0 18px #3f6ed222;font:700 .82rem var(--mono);letter-spacing:-.08em;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}.logo>b:after{content:"";position:absolute;inset:3px;border-top:1px solid #72a0ff55;border-left:1px solid #72a0ff33;pointer-events:none}.activity{display:grid;grid-template-columns:85px 1fr 120px;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid #29344b;background:#10192b;font:400 .54rem var(--mono);color:#8392a9}.activity>div{height:22px;display:flex;align-items:flex-end;gap:4px;overflow:hidden}.activity>div i{width:6px;height:35%;background:#4f7eff;animation:signal 1s ease-in-out infinite}.activity>div i:nth-child(2){animation-delay:.15s}.activity>div i:nth-child(3){animation-delay:.3s}.activity>div i:nth-child(4){animation-delay:.45s}.activity>div i:nth-child(5){animation-delay:.6s}.activity>b{font-weight:500;color:#55d6c2;text-align:right}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4ce0a6;margin-right:5px;box-shadow:0 0 0 4px #4ce0a615}.pipeline article div{position:relative;overflow:hidden}.pipeline article div:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#5784ef24,transparent);transform:translateX(-100%);animation:scan 3s linear infinite}@keyframes signal{50%{height:100%;background:#55d6c2}}@keyframes scan{to{transform:translateX(100%)}}@media(max-width:580px){.activity{grid-template-columns:1fr}.activity>b{text-align:left}}
.about{padding:110px max(28px,calc((100vw - 1240px)/2));background:#f3f5f8}.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:90px;align-items:start}.about-grid>div>p{font-size:1.08rem;color:#5f6c80;margin:0 0 20px}.about-grid aside{background:#fff;border:1px solid #d3dae5;padding:25px;display:flex;gap:22px;align-items:center}.about-grid aside img{width:68px;height:68px;object-fit:contain}.about-grid aside small{font:500 .62rem var(--mono);color:#4773da}.about-grid aside h3{margin:5px 0;font-size:1.1rem}.about-grid aside p{font-size:.78rem;color:#69758a;margin:0}.projects{background:#f3f5f8}.experience{border-top:1px solid #d6dce5}@media(max-width:800px){.about-grid{grid-template-columns:1fr;gap:35px}}@media(max-width:580px){.about{padding:75px 15px}.about-grid aside{align-items:flex-start}}
.toolchips{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.toolchips span{display:flex;align-items:center;gap:8px;border:1px solid #3b4961;background:#0e1728;border-radius:4px;padding:8px 10px;font:500 .68rem var(--mono);color:#dbe4f2}.toolchips img{width:17px;height:17px;object-fit:contain}.practice-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.practice-list span{border:1px solid #3b4961;background:#0e1728;border-radius:4px;padding:8px;font:500 .65rem var(--mono);color:#b8c7dd}.stack-grid article{min-height:315px}.stack-grid article>p{margin-top:auto}@media(max-width:580px){.practice-list{grid-template-columns:1fr}.toolchips span{font-size:.72rem}}
.toolchips img{width:24px;height:24px;padding:4px;border-radius:5px;background:#fff;filter:none;opacity:1}
.capabilities{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}.capabilities span{display:inline-flex;align-items:center;gap:7px;color:#aebbd0;font:500 .65rem var(--mono)}.capabilities i{width:22px;height:22px;display:grid;place-items:center;border:1px solid #40506c;border-radius:5px;color:#6ee7d2;background:#111b2e;font-style:normal;font-size:.7rem}.stack-grid article{display:flex;flex-direction:column}.stack-grid article .capabilities{margin-top:auto}
.stack-groups{border-top:1px solid #293650}.stack-group{display:grid;grid-template-columns:300px 1fr;gap:44px;padding:34px 0;border-bottom:1px solid #293650}.group-heading{display:grid;grid-template-columns:42px 1fr;gap:12px}.group-heading>span{font:500 .66rem var(--mono);color:#6f8ed8}.group-heading small{font:500 .68rem var(--mono);letter-spacing:.08em;color:#d6deec}.group-heading p{margin:8px 0 0;color:#8290a6;font-size:.8rem;line-height:1.5}.logo-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.logo-grid>span{min-height:56px;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #2c3a53;border-radius:6px;background:#0e1627;color:#e4eaf4;font:500 .69rem var(--mono);transition:border-color .2s,transform .2s,background .2s}.logo-grid>span:hover{transform:translateY(-2px);border-color:#5877ad;background:#111d32}.logo-grid img{width:23px;height:23px;object-fit:contain;filter:invert(1);opacity:.9;flex:0 0 auto}.logo-grid img[src$="azure.svg"],.logo-grid img[src$="amazonwebservices.svg"]{filter:none;opacity:1}.engineering-principles{display:grid;grid-template-columns:300px 1fr;gap:44px;padding:25px 0}.engineering-principles small{font:500 .68rem var(--mono);letter-spacing:.08em;color:#6ee7d2}.engineering-principles p{margin:0;color:#9ca9bf;font:400 .74rem/1.8 var(--mono)}
@media(max-width:1000px){.stack-group,.engineering-principles{grid-template-columns:1fr}.logo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.stack-group{gap:22px}.logo-grid{grid-template-columns:1fr 1fr}.logo-grid>span{font-size:.67rem;padding:10px}.engineering-principles{gap:12px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
.workflow-label{display:flex;align-items:center;justify-content:space-between;margin:24px 0 10px;font:500 .62rem var(--mono);letter-spacing:.08em;color:#64728a}.workflow-label b{display:flex;align-items:center;gap:7px;color:#258a70;font-weight:500}.workflow-label b i{width:7px;height:7px;border-radius:50%;background:#3ecf9b;box-shadow:0 0 0 5px #3ecf9b18;animation:pulse 2s infinite}.architecture-flow{display:grid;grid-template-columns:1fr 24px 1fr 24px 1fr 24px 1fr;align-items:stretch;padding:14px;border:1px solid #c8d1df;border-radius:8px;background:#f7f9fc}.flow-stage{min-height:104px;padding:14px;border:1px solid #d0d8e4;border-radius:6px;background:#fff;box-shadow:0 5px 18px #1b2d4b0a}.flow-stage small{display:block;font:500 .55rem var(--mono);letter-spacing:.06em;color:#5275ce}.flow-stage b{display:block;margin-top:10px;font-size:.82rem;color:#1c2940}.flow-stage em{display:block;margin-top:4px;font:400 .6rem var(--mono);font-style:normal;color:#7a879a}.flow-link{position:relative;align-self:center;height:2px;background:#adc0e8;overflow:hidden}.flow-link:after{content:"";position:absolute;right:0;top:-2px;border-left:5px solid #7190d5;border-top:3px solid transparent;border-bottom:3px solid transparent}.flow-link i{position:absolute;top:-2px;left:-5px;width:6px;height:6px;border-radius:50%;background:#3868e8;box-shadow:0 0 0 4px #3868e81a;animation:flowPacket 1.8s linear infinite}.flow-link:nth-child(4) i{animation-delay:.35s}.flow-link:nth-child(6) i{animation-delay:.7s}.project-signals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.project-signals span{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:5px;background:#edf3f7;font:500 .62rem var(--mono);color:#526078}.project-signals i{color:#15856b;font-style:normal}.project-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:auto;padding-top:18px}.project-footer .tags{margin-top:0}.project-footer>a{color:#315fce;font-size:.78rem;font-weight:700;white-space:nowrap}.project-detail>a{margin-top:0}@keyframes flowPacket{to{transform:translateX(30px)}}
@media(max-width:760px){.architecture-flow{grid-template-columns:1fr}.flow-link{width:2px;height:22px;justify-self:center}.flow-link:after{right:-2px;top:auto;bottom:0;border-top:5px solid #7190d5;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:0}.flow-link i{left:-2px;top:-5px;animation:flowPacketMobile 1.8s linear infinite}.project-signals{grid-template-columns:1fr}.project-footer{align-items:flex-start;flex-direction:column}@keyframes flowPacketMobile{to{transform:translateY(25px)}}}
.motion-enabled .flow-link{background:linear-gradient(90deg,#adc0e8,#3868e8,#62d9c0,#adc0e8);background-size:220% 100%;animation:flowLine 1.8s linear infinite!important}.motion-enabled .flow-link i{width:9px;height:9px;top:-4px;background:#285ee8;box-shadow:0 0 0 5px #3868e82b,0 0 14px #3868e8;animation:flowPacket 1.25s linear infinite!important}.motion-enabled .flow-stage{animation:stageGlow 4.8s ease-in-out infinite!important}.motion-enabled .flow-stage:nth-child(3){animation-delay:1.2s!important}.motion-enabled .flow-stage:nth-child(5){animation-delay:2.4s!important}.motion-enabled .flow-stage:nth-child(7){animation-delay:3.6s!important}@keyframes flowLine{to{background-position:-220% 0}}@keyframes stageGlow{0%,18%,100%{border-color:#d0d8e4;box-shadow:0 5px 18px #1b2d4b0a}9%{border-color:#4d75db;box-shadow:0 0 0 3px #4d75db18,0 8px 24px #264b9e1a}}@media(max-width:760px){.motion-enabled .flow-link i{top:-5px;left:-4px;animation:flowPacketMobile 1.25s linear infinite!important}}

/* Recruiter-scannable project case studies */
.project-layout{min-height:660px}
.project-meta{display:flex;align-items:center;justify-content:space-between;gap:16px}
.project-meta>b{font:500 .58rem var(--mono);letter-spacing:.07em;color:#52627a;border:1px solid #cbd4e0;border-radius:999px;padding:5px 8px;white-space:nowrap}
.project-brief{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 4px}
.project-brief section{padding:14px;border-left:2px solid #6688df;background:#f7f9fc}
.project-brief small,.project-evidence>small{display:block;font:500 .56rem var(--mono);letter-spacing:.08em;color:#5275ce;margin-bottom:6px}
.project-brief p{margin:0;color:#5f6d82;font-size:.78rem;line-height:1.55}
.project-evidence{margin-top:12px;padding:12px 14px;border:1px solid #d2dae5;border-radius:6px;background:#fff}
.project-evidence>div{display:flex;flex-wrap:wrap;gap:8px 18px}
.project-evidence span{font:500 .62rem var(--mono);color:#526078}
.project-evidence i{font-style:normal;color:#15856b;margin-right:6px}
.project-signals{margin-top:8px}
.project-detail h3{margin-bottom:8px}
@media(max-width:760px){.project-layout{min-height:0}.project-meta{align-items:flex-start;flex-direction:column}.project-brief{grid-template-columns:1fr}.project-evidence>div{flex-direction:column;gap:7px}}

/* Accessible project tabs */
.project-list button:focus-visible,.project-footer>a:focus-visible{outline:3px solid #55d6c2;outline-offset:3px}
.project-detail:focus{outline:none}
