:root{--ink:#f5f7fb;--muted:#9caabd;--bg:#071018;--panel:#0e1b27;--line:#243546;--cyan:#63e6d0;--blue:#5d8cff;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,#000,transparent 82%)}body:after{content:"";position:absolute;z-index:-1;top:-18rem;right:-16rem;width:42rem;height:42rem;border-radius:50%;background:#204dbb;filter:blur(160px);opacity:.15}::selection{background:var(--cyan);color:#04130f}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-999px;top:1rem}.skip-link:focus{left:1rem;z-index:100;background:#fff;color:#000;padding:.6rem 1rem;border-radius:.3rem}.scroll-progress{position:fixed;z-index:100;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--cyan),var(--blue))}
.site-header{width:min(calc(100% - 40px),var(--max));height:92px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:20}.brand{font-size:1.35rem;font-weight:850;letter-spacing:-.04em}.brand span{color:var(--cyan)}nav{display:flex;align-items:center;gap:2rem;font-size:.88rem;color:var(--muted)}nav a{transition:.2s color}nav a:hover,nav a:focus-visible,nav a.active{color:var(--ink)}.nav-cta{border:1px solid var(--line);padding:.55rem 1rem;border-radius:999px}.menu-toggle{display:none;background:none;border:0;color:inherit;padding:.4rem}.menu-toggle span:not(.sr-only){display:block;width:24px;height:1px;background:var(--ink);margin:6px}
.hero{min-height:calc(100vh - 92px);width:min(calc(100% - 40px),var(--max));margin:auto;display:grid;grid-template-columns:1.2fr .8fr;gap:7vw;align-items:center;padding:5rem 0 7rem;position:relative}.eyebrow,.section-kicker{font:600 .76rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;text-transform:uppercase;color:var(--cyan);display:flex;align-items:center;gap:.65rem}.eyebrow span{width:7px;height:7px;background:var(--cyan);border-radius:50%;box-shadow:0 0 16px var(--cyan)}h1{font-size:clamp(3.4rem,7vw,6.9rem);line-height:.92;letter-spacing:-.065em;margin:1.5rem 0 2rem;max-width:820px}h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1.2px #6d8195}.hero-intro{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--muted);max-width:660px}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;padding:.85rem 1.15rem;border-radius:.35rem;font-weight:750;font-size:.9rem;border:1px solid var(--line);transition:transform .2s,background .2s,border-color .2s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--cyan);color:#06120f;border-color:var(--cyan)}.button.primary:hover{background:#8af1df}.button.secondary:hover{border-color:#70849a}.contact-row{display:flex;flex-wrap:wrap;gap:.65rem 1.4rem;margin-top:2.4rem;color:#8294a8;font-size:.82rem}.contact-row a{color:#c2cfda}.contact-row a:hover{text-decoration:underline;text-underline-offset:4px}.signal-card{background:linear-gradient(145deg,#112331,#0a151f);border:1px solid #2b4053;padding:1rem;box-shadow:0 30px 80px #0008;transform:rotate(1.5deg);max-width:430px;justify-self:end}.signal-top,.signal-bottom{display:flex;justify-content:space-between;gap:1rem;font:600 .65rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em;color:#7d8fa1}.live{color:var(--cyan)}.metric{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:1rem 0;padding:1.4rem 0}.metric span,.metric small{display:block;color:var(--muted)}.metric strong{display:block;font-size:2rem;letter-spacing:-.04em;margin:.25rem 0}.chart{height:160px;display:flex;gap:8px;align-items:end;border-bottom:1px solid #3a4e60;padding:1rem 0}.chart i{flex:1;height:var(--h);background:linear-gradient(var(--cyan),var(--blue));opacity:.85}.signal-bottom{padding:.85rem 0 .2rem}
.capability-strip{width:100%;border-block:1px solid var(--line);padding:1rem max(calc((100vw - var(--max))/2),20px);display:flex;justify-content:space-between;gap:1.5rem;white-space:nowrap;overflow:hidden;color:#8495a6;font:600 .68rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase}.section{width:min(calc(100% - 40px),var(--max));margin:auto;padding:8.5rem 0}.section-heading{display:grid;grid-template-columns:.65fr 1.4fr .8fr;gap:3rem;align-items:end;margin-bottom:4rem}.section-heading .section-kicker{align-self:start}.section-heading h2,.background h2,.contact-section h2{font-size:clamp(2.7rem,5.2vw,5.3rem);line-height:.98;letter-spacing:-.055em;margin:0}.section-heading>p:last-child{color:var(--muted);margin:0;max-width:350px}
.project-card{display:grid;grid-template-columns:.78fr 1.22fr;gap:3rem;background:var(--panel);border:1px solid var(--line);padding:clamp(1.3rem,3.5vw,3rem);margin-bottom:1.25rem;min-height:520px;align-items:center;position:relative;overflow:hidden}.project-card.reverse{grid-template-columns:1.05fr .95fr}.project-card.reverse .project-copy{order:2}.project-index{font:600 .7rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#637789;border:1px solid var(--line);width:2.2rem;height:2.2rem;display:grid;place-items:center;border-radius:50%;margin-bottom:4rem}.project-tool{font:600 .73rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--cyan);letter-spacing:.08em;text-transform:uppercase}.project-copy h3{font-size:clamp(2.2rem,4vw,4rem);line-height:1;letter-spacing:-.05em;margin:1rem 0 1.5rem}.project-copy>p:not(.project-tool){color:var(--muted);font-size:1.05rem;max-width:440px}.project-tags{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:2rem 0 0;gap:.5rem}.project-tags li{font-size:.72rem;padding:.4rem .65rem;border:1px solid var(--line);border-radius:999px;color:#aebdca}.dashboard-visual,.eda-visual{background:#07121b;border:1px solid #284055;box-shadow:0 22px 60px #0007;min-height:385px}.dash-head,.code-label{height:42px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 1rem;font:600 .62rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em;color:#7890a4}.dash-head span{margin-right:auto}.dash-head i{width:6px;height:6px;border-radius:50%;background:#40586c;margin-left:6px}.dash-grid{display:grid;grid-template-columns:.7fr 1.3fr;padding:1.2rem;gap:1rem}.dash-stat,.dash-bars,.dash-line,.dash-legend{border:1px solid #203748;background:#0b1924}.dash-stat{padding:1.1rem}.dash-stat small,.dash-stat span{display:block;color:#71899c;font-size:.7rem}.dash-stat strong{display:block;font-size:2.1rem;letter-spacing:-.04em;margin:.6rem 0;color:var(--cyan)}.dash-bars{height:130px;display:flex;align-items:end;gap:7px;padding:1rem}.dash-bars b{width:100%;height:var(--v);background:linear-gradient(var(--blue),#2b4f84)}.dash-line{grid-column:1/-1;height:130px;padding:1rem}.dash-line svg{width:100%;height:100%;overflow:visible}.dash-line polyline{fill:none;stroke:var(--cyan);stroke-width:2}.dash-line circle{fill:var(--bg);stroke:var(--cyan);stroke-width:2}.dash-legend{grid-column:1/-1;display:flex;justify-content:space-around;padding:.7rem}.dash-legend span{font:500 .65rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#8295a5}.dash-legend i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);margin-right:.4rem}.code-label span{margin-left:auto;color:var(--cyan)}.code-lines{padding:1rem 1.2rem;color:#93a8ba;font:500 .7rem/2 ui-monospace,SFMono-Regular,Consolas,monospace}.code-lines span{display:block}.code-lines i{font-style:normal;color:#405668;margin-right:1.2rem}.code-lines b{color:var(--cyan);font-weight:500}.eda-visual>svg{width:100%;height:230px;padding:0 1rem 1rem}.eda-visual .grid path{fill:none;stroke:#1f3546;stroke-width:1}.eda-visual .trend{fill:none;stroke:var(--blue);stroke-width:2;stroke-dasharray:6 5}.eda-visual .dots circle{fill:var(--cyan);opacity:.85}.github-link{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);padding:1.5rem 1.8rem;color:var(--muted);transition:.2s background,.2s border-color}.github-link strong{color:var(--ink)}.github-link:hover{background:var(--panel);border-color:#40566a}
.experience{border-top:1px solid var(--line)}.role-card{display:grid;grid-template-columns:.55fr 1fr 1.2fr;gap:3rem;border-top:1px solid var(--line);padding-top:2.5rem}.role-meta{color:#7f91a3;font:500 .72rem/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}.role-meta span{display:block}.role-title p{color:var(--cyan);font-size:.8rem;margin-top:0}.role-title h3{font-size:1.75rem;line-height:1.18;letter-spacing:-.03em}.role-details>p{color:var(--muted);font-size:1.05rem;margin-top:0}.role-details ul{list-style:none;padding:0;margin:2rem 0 0}.role-details li{border-top:1px solid var(--line);padding:1rem 0;display:grid;grid-template-columns:2rem 1fr;gap:1rem;color:#c4d0da}.role-details li span{color:#5e7487;font:500 .68rem/1.8 ui-monospace,SFMono-Regular,Consolas,monospace}.skills{border-top:1px solid var(--line)}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.skill-card{background:var(--panel);border:1px solid var(--line);padding:2rem;min-height:300px;display:flex;flex-direction:column;transition:transform .2s,border-color .2s}.skill-card:hover{transform:translateY(-5px);border-color:#41586b}.skill-card>span{font:500 .7rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--cyan)}.skill-card h3{font-size:1.5rem;letter-spacing:-.03em;margin-top:auto}.skill-card p{color:var(--muted);margin-bottom:0}
.background{display:grid;grid-template-columns:1fr 1fr;gap:8vw;border-top:1px solid var(--line)}.background-intro>p:last-child{color:var(--muted);font-size:1.05rem;max-width:530px;margin-top:2rem}.credentials{border-top:1px solid var(--line)}.credential{padding:2.1rem 0;border-bottom:1px solid var(--line)}.credential span{font:600 .68rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--cyan)}.credential h3{font-size:1.4rem;line-height:1.25;margin:1rem 0 .5rem}.credential p,.credential small{color:var(--muted);margin:0}.contact-section{background:var(--cyan);color:#06120f;padding:8rem 20px}.contact-inner{width:min(100%,var(--max));margin:auto;text-align:center}.contact-section .section-kicker{justify-content:center;color:#174d44}.contact-section h2{font-size:clamp(3.3rem,7.5vw,7.8rem)}.contact-section p:not(.section-kicker){max-width:650px;margin:2rem auto;color:#245c53;font-size:1.08rem}.contact-button{background:#071018!important;color:var(--ink)!important;border-color:#071018!important;margin-top:1rem;padding:1rem 1.35rem}.email-dialog{width:min(calc(100% - 28px),560px);padding:0;border:1px solid #355064;border-radius:.6rem;background:#0a1721;color:var(--ink);box-shadow:0 30px 100px #000c}.email-dialog::backdrop{background:#02070bcf;backdrop-filter:blur(5px)}.email-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.6rem 1.6rem 1rem}.email-dialog-head .section-kicker{margin:0 0 .7rem}.email-dialog h2{font-size:clamp(1.8rem,6vw,2.6rem);line-height:1;letter-spacing:-.045em;margin:0}.dialog-close{width:2.5rem;height:2.5rem;border:1px solid var(--line);border-radius:50%;background:none;color:var(--ink);font-size:1.6rem;cursor:pointer}.email-address{margin:0;padding:0 1.6rem 1.3rem;color:var(--muted);font-size:.9rem}.email-options{display:grid;border-top:1px solid var(--line)}.email-options>a,.email-options>button{display:grid;grid-template-columns:2.6rem 1fr auto;align-items:center;gap:.9rem;width:100%;padding:1rem 1.6rem;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.email-options>a:hover,.email-options>button:hover{background:#102330}.email-options strong,.email-options small{display:block}.email-options strong{font-size:.95rem}.email-options small{color:var(--muted);font-size:.75rem}.email-options b{font-weight:400;color:#71899b}.email-icon{width:2.35rem;height:2.35rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:.4rem;font-weight:800}.email-icon.gmail{color:#ea5545}.email-icon.outlook{color:#4c9dff}.email-icon.default,.email-icon.copy{color:var(--cyan)}footer{width:min(calc(100% - 40px),var(--max));margin:auto;min-height:180px;display:grid;grid-template-columns:.3fr 1fr 1fr auto;align-items:center;gap:2rem;color:#7e91a3;font-size:.78rem}footer p{margin:0}footer div{display:flex;gap:1.2rem}footer div a:hover{color:var(--ink)}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button,.skill-card{transition:none}}@media (max-width:960px){.section-heading{grid-template-columns:.45fr 1.2fr}.section-heading>p:last-child{grid-column:2}.project-card,.project-card.reverse{grid-template-columns:1fr;gap:2.5rem}.project-card.reverse .project-copy{order:0}.project-index{margin-bottom:2rem}.role-card{grid-template-columns:.5fr 1.5fr}.role-details{grid-column:2}.skill-grid{grid-template-columns:1fr 1fr}.skill-card:last-child{grid-column:1/-1}.background{grid-template-columns:1fr;gap:4rem}footer{grid-template-columns:auto 1fr auto}footer div{display:none}}@media (max-width:820px){.site-header{height:78px}.menu-toggle{display:block;position:relative;z-index:22}nav{position:absolute;top:77px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;background:#08131d;border-bottom:1px solid var(--line);padding:1rem}nav.open{display:flex}nav a{padding:.85rem}.nav-cta{border-radius:.3rem;text-align:center;margin-top:.4rem}.hero{grid-template-columns:1fr;min-height:auto;padding:4rem 0 5rem}.signal-card{justify-self:stretch;max-width:none;transform:none}h1{font-size:clamp(3.2rem,15vw,5.4rem)}.capability-strip{justify-content:flex-start}.section{padding:6rem 0}.role-card{grid-template-columns:1fr}.role-details{grid-column:auto}.role-title h3{max-width:560px}.contact-section{padding:6rem 20px}}@media (max-width:600px){.site-header,.hero,.section,footer{width:min(calc(100% - 28px),var(--max))}.hero-actions{flex-direction:column}.button{width:100%}.contact-row span{width:100%}.signal-bottom{flex-wrap:wrap}.section-heading{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2.6rem}.section-heading>p:last-child{grid-column:auto}.project-card{padding:1rem;min-height:auto}.project-copy{padding:.6rem}.dashboard-visual,.eda-visual{min-height:330px}.dash-grid{padding:.7rem;gap:.6rem}.dash-stat strong{font-size:1.5rem}.skill-grid{grid-template-columns:1fr}.skill-card:last-child{grid-column:auto}.skill-card{min-height:250px}.github-link{align-items:flex-start;gap:1rem;flex-direction:column}footer{grid-template-columns:1fr;padding:2.5rem 0;gap:.8rem}footer div{display:flex}.background h2 br,.contact-section h2 br{display:none}}
