:root{--bg:#0b1219;--panel:#101b23;--panel-2:#14222b;--ink:#f5f8f4;--muted:#99a9ae;--muted-2:#70848a;--mint:#9bdcc9;--mint-deep:#74aa9c;--line:#29363d;--light:#f4f6f2;--light-ink:#1a292d;--container:1200px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}.shell{max-width:var(--container);margin:0 auto;padding-left:40px;padding-right:40px}.mono,.section-number,.eyebrow,.brand-mark,.section-subnote,.exp-date,.tags,.panel-head,.panel-code,.panel-foot,.strip,.project-overline,.project-note,.toolbox-heading>p,.cert-row .mono,.contact-kicker,.footer,.typing-wrap,.hero-bottom{font-family:'IBM Plex Mono',monospace}.grid-background{position:absolute;z-index:-1;inset:0 0 auto;height:930px;pointer-events:none;background-image:linear-gradient(to right,rgba(136,180,170,.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(136,180,170,.045) 1px,transparent 1px),radial-gradient(ellipse at 80% 37%,rgba(57,110,99,.16),transparent 40%);background-size:76px 76px,76px 76px,auto;mask-image:linear-gradient(#000 0%,#000 55%,transparent 100%)}.skip{position:absolute;left:-9999px;top:8px;background:var(--mint);color:var(--bg);padding:12px;z-index:100}.skip:focus{left:10px}.topbar{height:90px;border-bottom:1px solid rgba(150,180,172,.12);position:relative;z-index:5}.nav-inner{height:100%;display:flex;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:15px;margin-right:auto}.brand-mark{height:39px;width:44px;display:flex;justify-content:center;align-items:center;background:var(--mint);color:var(--bg);font-size:16px;font-weight:600;letter-spacing:-2px}.brand-slash{padding:0 2px;color:#396b60}.brand-name{font-size:15px;font-weight:800;letter-spacing:.16em}.brand-dot,.period{color:var(--mint)}.nav-links{display:flex;gap:31px}.nav-links a{font-size:13px;color:#bac8c7;transition:color .2s}.nav-links a:hover,.hero-social a:hover{color:var(--mint)}.nav-contact{display:flex;gap:18px;align-items:center;font-size:12px;font-weight:700;border:1px solid #44625d;padding:12px 18px;transition:background .2s,color .2s}.nav-contact:hover{background:var(--mint);color:var(--bg)}.nav-contact span{color:var(--mint)}.nav-contact:hover span{color:var(--bg)}.mobile-toggle{display:none}.hero{position:relative;min-height:725px;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:44px;padding-top:65px;padding-bottom:92px}.eyebrow{display:flex;align-items:center;gap:12px;color:#c7d5ce;font-size:10px;letter-spacing:.11em;white-space:nowrap}.status-led{width:7px;height:7px;border-radius:50%;background:var(--mint);display:inline-block;box-shadow:0 0 13px rgba(155,220,201,.7);flex:none}.eyebrow-line{height:1px;width:31px;background:#526c66}h1,h2,h3,p{margin-top:0}.hero h1{font-size:clamp(45px,4.8vw,74px);font-weight:700;letter-spacing:-.067em;line-height:1.12;margin:30px 0 24px}.serif-emphasis{font-weight:500;color:var(--mint)}.hero-lead{max-width:530px;color:#a8b9b8;font-size:16px;line-height:1.85;margin-bottom:24px}.hero-lead strong{color:#e4efeb;font-weight:600}.typing-wrap{height:45px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--mint);font-size:11px;margin-bottom:29px}.prompt-symbol{font-weight:600;color:#c7e8dc}.terminal-prefix{color:#768f8a}.typed-cursor{color:var(--mint)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:50px;padding:13px 23px;font-size:13px;font-weight:700;transition:transform .2s,background .2s}.button svg{height:17px;width:17px}.button:hover{transform:translateY(-3px)}.button-primary{background:var(--mint);color:#101f24}.button-primary:hover{background:#b9f3df}.button-outline{border:1px solid #485d5e;color:#e2ede7}.button-outline:hover{background:#1c3037}.hero-social{display:flex;align-items:center;gap:19px;margin-top:40px}.hero-social a{font-size:12px;color:#a8bdba;display:inline-flex;align-items:center;gap:9px}.hero-social svg{width:16px;height:16px}.hero-social a span{color:var(--mint)}.social-divider{height:15px;width:1px;background:#3b4c50}.hero-panel{max-width:440px;width:100%;justify-self:end;background:linear-gradient(150deg,#13242c,#0e1921);border:1px solid #395149;box-shadow:0 25px 75px #0003;padding:24px 25px;position:relative}.hero-panel:before,.hero-panel:after{content:'';position:absolute;width:15px;height:15px;border-color:var(--mint);border-style:solid}.hero-panel:before{top:-1px;left:-1px;border-width:2px 0 0 2px}.hero-panel:after{bottom:-1px;right:-1px;border-width:0 2px 2px 0}.panel-head{display:flex;justify-content:space-between;color:#9ebbb2;font-size:10px;letter-spacing:.06em}.panel-pulse{display:flex;align-items:center;gap:7px;color:var(--mint)}.panel-pulse span{height:6px;width:6px;background:var(--mint);border-radius:50%}.panel-code{font-size:12px;line-height:2.1;padding:34px 6px 26px;color:#c5d4d2}.code-dim{color:#8e98a4}.code-strong{color:#ecf3ed}.code-key{color:#8dbeec}.code-string{color:#9bdcc9}.indent{padding-left:18px}.indent2{padding-left:38px}.panel-divider{border-top:1px solid #2f4348}.panel-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:23px 0}.panel-metrics strong{font-size:28px;letter-spacing:-.05em;display:block;line-height:1.2}.panel-metrics strong span{color:var(--mint)}.panel-metrics small{display:block;font-size:10px;line-height:1.6;color:#89a5a3;margin-top:6px}.panel-foot{border-top:1px solid #2f4348;padding-top:17px;display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#78938c}.mini-square{display:inline-block;height:7px;width:7px;background:#5d8f80;margin-right:7px}.hero-bottom{position:absolute;bottom:29px;left:40px;right:40px;display:flex;align-items:center;gap:14px;color:#738986;font-size:10px;letter-spacing:.1em}.hero-bottom .scroll-track{height:1px;width:90px;background:#415751}.hero-bottom span:last-child{margin-left:auto}.strip{border-top:1px solid #293a3e;border-bottom:1px solid #293a3e;background:#101c22}.strip-inner{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:35px}.strip-label{max-width:150px;color:#69837d;font-size:10px;line-height:1.8}.strip-items{display:flex;align-items:center;justify-content:space-between;flex:1;gap:18px;font-size:10px;letter-spacing:.035em;color:#c8dbd6}.strip-plus{color:var(--mint);font-size:17px}.section{padding-top:120px;padding-bottom:122px;scroll-margin-top:30px}.section-intro{margin-bottom:53px}.section-number{display:block;color:var(--mint);font-size:11px;letter-spacing:.11em;margin-bottom:22px}.section h2{font-size:clamp(34px,4.1vw,56px);letter-spacing:-.06em;line-height:1.15;margin:0;font-weight:700}.muted-heading{color:#778e8a}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:start}.about-statement{font-size:clamp(26px,2.7vw,38px);line-height:1.35;font-weight:700;letter-spacing:-.045em;max-width:440px}.about-copy p{color:#a2b5b4;font-size:15px;line-height:1.85;margin-bottom:18px}.text-link{display:inline-flex;align-items:center;gap:12px;margin-top:10px;color:var(--mint);font-size:13px;font-weight:700;border-bottom:1px solid #4c756a;padding-bottom:7px}.text-link svg{width:16px}.section-contrast{background:#111e25;border-top:1px solid #25363a;border-bottom:1px solid #25363a}.section-title-row{display:flex;align-items:end;justify-content:space-between;gap:25px}.section-subnote{color:#6a8580;font-size:10px;padding-bottom:7px}.experience{display:grid;grid-template-columns:145px 1fr;gap:20px;border-top:1px solid #34464b;padding:36px 0}.experience:last-child{border-bottom:1px solid #34464b}.exp-meta{display:flex;flex-direction:column;gap:17px}.exp-index{font-family:'IBM Plex Mono',monospace;color:var(--mint);font-size:13px}.exp-date{font-size:10px;color:#7f9791}.exp-heading{display:flex;align-items:start;justify-content:space-between;gap:18px}.exp-heading h3{font-size:25px;letter-spacing:-.035em;margin:0 0 1px}.exp-role{font-size:13px;color:var(--mint)}.exp-pill{font:10px 'IBM Plex Mono',monospace;color:#99d6c5;border:1px solid #3c7463;padding:6px 9px}.exp-main p{font-size:14px;line-height:1.8;color:#a9bbb8;max-width:800px;margin:18px 0 20px}.tags{display:flex;gap:8px;flex-wrap:wrap}.tags span{border:1px solid #36504d;color:#a9beba;font-size:10px;padding:6px 10px;white-space:nowrap}.projects-section{padding-bottom:100px}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project-card{min-width:0;border:1px solid #2f4545;background:#102029;transition:transform .25s,border-color .25s,box-shadow .25s}.project-card:hover{transform:translateY(-5px);border-color:#6faba0;box-shadow:0 18px 45px #0002}.feature-project{grid-column:span 2;display:grid;grid-template-columns:1.03fr .97fr}.project-art{height:235px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.feature-project .project-art{height:auto;min-height:342px}.art-dashboard{background:radial-gradient(circle at 45% 45%,#2d6258 0%,#1c3c3b 52%,#142b32 100%);padding:28px}.fake-browser{width:90%;max-width:470px;background:#0c181e;border:1px solid #456960;box-shadow:0 20px 60px #06120f88;transform:rotate(-3deg)}.fake-browser-top{padding:10px 12px;border-bottom:1px solid #2b4945;display:flex;align-items:center;justify-content:space-between;color:#8db9aa;font:8px 'IBM Plex Mono',monospace}.fake-browser-top>span:last-child{color:#9ee4c6}.browser-dots{display:flex;gap:4px}.browser-dots b{width:6px;height:6px;border-radius:50%;background:#567f75}.dashboard-preview{padding:20px}.preview-time{font-size:35px;font-weight:700;letter-spacing:-.08em}.preview-time span{color:var(--mint)}.preview-time small{display:block;font:9px 'IBM Plex Mono',monospace;color:#86a79d;letter-spacing:.09em}.preview-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:22px}.preview-tiles>div{border:1px solid #30524b;padding:10px 8px;min-height:78px}.preview-tiles svg{display:block;width:14px;height:14px;color:var(--mint)}.preview-tiles span{display:block;color:#86a9a0;font-size:8px;margin-top:6px}.preview-tiles strong{font-size:10px;display:block}.preview-line{display:flex;gap:7px;margin-top:15px}.preview-line span{height:4px;flex:1;background:#326357}.preview-line span:nth-child(2){background:#5eab94}.preview-line span:last-child{background:#2e4548}.project-content{padding:27px 29px 30px}.feature-project .project-content{padding:42px 38px;display:flex;flex-direction:column;justify-content:center}.project-overline{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--mint);letter-spacing:.08em}.project-overline svg{width:18px;height:18px}.project-content h3{font-size:24px;letter-spacing:-.045em;line-height:1.25;margin:20px 0 11px}.feature-project .project-content h3{font-size:33px}.project-content p{color:#9fb6b3;font-size:13px;line-height:1.8;margin-bottom:22px}.art-terminal{align-items:stretch;flex-direction:column;background:linear-gradient(145deg,#1a3637,#11252a);padding:27px 35px}.terminal-title{background:#152229;border:1px solid #4e6b65;border-bottom:none;padding:11px 15px;font:10px 'IBM Plex Mono',monospace;color:#90b3ab;max-width:480px;width:100%;margin:0 auto}.terminal-dots{color:#90c1af;margin-right:12px;letter-spacing:4px}.terminal-lines{background:#0c171d;border:1px solid #4e6b65;min-height:150px;padding:21px 20px;max-width:480px;width:100%;margin:0 auto;font:11px/1.9 'IBM Plex Mono',monospace;display:flex;flex-direction:column;color:#c6e0d9;white-space:nowrap}.terminal-lines em{color:#9bdcc9;font-style:normal}.terminal-dim{color:#718e8a}.terminal-caret b{color:var(--mint);animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.art-flow{background:radial-gradient(circle at center,#25554a,#173033 75%);flex-direction:column}.flow-visual{display:flex;align-items:center;justify-content:center;width:100%;padding:15px}.flow-visual>div{display:flex;flex-direction:column;align-items:center;gap:12px;border:1px solid #5f9685;background:#193d3e;padding:18px;color:#b9decf;font:10px 'IBM Plex Mono',monospace}.flow-visual svg{width:23px;height:23px}.flow-visual .flow-center{background:#9bdcc9;color:#183b32;border-color:#9bdcc9;padding:20px}.flow-connector{height:1px;width:43px;background:#87bfb0}.flow-caption{font:9px 'IBM Plex Mono',monospace;letter-spacing:.12em;color:#9fc2b5;margin-bottom:20px}.project-note{display:flex;align-items:center;gap:10px;font-size:10px;color:#738f88;margin-top:25px}.project-note svg{width:15px;height:15px;flex:none}.toolbox-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:75px}.toolbox-heading p{font-size:10px;color:var(--mint);letter-spacing:.1em;margin-bottom:13px}.toolbox-heading span{color:#8fa8a1;font-size:15px;line-height:1.8}.toolbox-categories{display:grid;gap:24px}.tool-category{padding-bottom:24px;border-bottom:1px solid #34464b}.tool-category h3{display:flex;align-items:center;gap:11px;font-size:16px;margin-bottom:10px}.tool-category h3 svg{color:var(--mint);width:18px;height:18px}.tool-category p{margin:0;color:#9ab0ac;font-size:13px;line-height:1.85}.cert-row{border-top:1px solid #34464b;margin-top:68px;padding-top:35px;display:grid;grid-template-columns:.7fr 1.3fr;gap:75px}.cert-row .mono{color:var(--mint);font-size:10px}.cert-row h3{margin:8px 0 0;font-size:24px}.certs{display:flex;flex-wrap:wrap;gap:10px;align-items:start}.certs span{border:1px solid #4a6964;color:#d7e4de;padding:12px 15px;font-size:12px}.contact-section{padding-top:120px;padding-bottom:140px}.contact-body{display:grid;grid-template-columns:1.15fr .85fr;gap:85px;align-items:end}.contact-kicker{display:flex;align-items:center;gap:10px;color:var(--mint);font-size:10px;letter-spacing:.1em;margin-bottom:20px}.contact-section h2{font-size:clamp(38px,4.6vw,65px);margin-bottom:20px}.contact-body p{color:#98b0aa;font-size:15px;line-height:1.8;max-width:510px}.contact-links{display:grid}.contact-links a{border-top:1px solid #3b5450;padding:19px 0;display:flex;justify-content:space-between;align-items:center;transition:color .2s}.contact-links a:last-child{border-bottom:1px solid #3b5450}.contact-links a:hover{color:var(--mint)}.contact-links a>span{display:flex;align-items:center;gap:13px;font-weight:600}.contact-links svg{width:18px;height:18px}.footer{border-top:1px solid #253c3d;background:#0a1016}.footer-content{display:flex;align-items:center;justify-content:space-between;min-height:90px;gap:20px;color:#73918a;font-size:10px}.footer-brand{font-size:18px;font-weight:600;color:var(--mint)}.footer-brand span{color:#fff}.footer-content>a:last-child{color:#b9d2ca}.focus-ring:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--mint);outline-offset:4px}.hover-char{display:inline-block;transition:color .18s,transform .18s,text-shadow .18s}.hover-char:hover{color:#c6ffe9;transform:translateY(-3px);text-shadow:0 0 18px #9bdcc999}
@media(max-width:1000px){.shell{padding-left:28px;padding-right:28px}.nav-links{gap:17px}.hero{gap:30px;min-height:690px}.hero h1{font-size:clamp(43px,5vw,60px)}.hero-panel{padding:18px}.panel-code{font-size:10px}.panel-metrics strong{font-size:24px}.hero-bottom{left:28px;right:28px}.strip-items{gap:10px;font-size:9px}.strip-label{font-size:9px}}
@media(max-width:760px){.shell{padding-left:22px;padding-right:22px}.topbar{height:72px}.brand-name{font-size:13px}.nav-contact{margin-left:auto;padding:9px 11px;font-size:11px}.mobile-toggle{border:0;background:none;width:35px;height:35px;display:flex;flex-direction:column;justify-content:center;gap:5px;cursor:pointer}.mobile-toggle span{height:2px;background:#b1cfc5;width:22px;display:block}.nav-links{display:none;position:absolute;top:72px;left:0;right:0;background:#101c23;border-bottom:1px solid #36504d;flex-direction:column;padding:20px 25px;gap:20px}.nav-links.open{display:flex}.hero{display:block;min-height:0;padding-top:74px;padding-bottom:96px}.hero h1{font-size:clamp(42px,9vw,65px)}.hero-lead{font-size:15px}.eyebrow{font-size:9px;gap:8px}.eyebrow-line{width:15px}.hero-panel{margin-top:50px;max-width:none}.panel-code{font-size:12px}.hero-bottom{bottom:25px;left:22px;right:22px}.strip-inner{display:block;padding-top:24px;padding-bottom:24px}.strip-label{max-width:none;margin-bottom:14px}.strip-items{flex-wrap:wrap;justify-content:flex-start;gap:10px 15px}.section{padding-top:82px;padding-bottom:85px}.section-intro{margin-bottom:40px}.section-title-row{display:block}.section-subnote{display:block;margin-top:16px}.about-grid,.toolbox-grid,.cert-row,.contact-body{grid-template-columns:1fr;gap:26px}.about-statement{margin-bottom:12px}.experience{grid-template-columns:1fr;gap:10px}.exp-meta{flex-direction:row;justify-content:space-between}.projects-grid{grid-template-columns:1fr}.feature-project{grid-column:span 1;display:block}.feature-project .project-art{min-height:265px;height:265px}.feature-project .project-content{padding:27px 29px 30px}.feature-project .project-content h3{font-size:25px}.toolbox-grid{gap:36px}.cert-row{gap:20px;margin-top:45px}.contact-body{gap:30px}.footer-content{flex-wrap:wrap;padding-top:24px;padding-bottom:24px;justify-content:space-between}.footer-content>span:nth-child(2){display:none}}
@media(max-width:430px){.hero h1{font-size:41px}.hero-actions .button{flex:1;gap:8px;padding:12px 10px}.typing-wrap{font-size:10px}.panel-metrics{gap:6px}.panel-metrics small{font-size:9px}.terminal-lines{font-size:8px}.art-terminal{padding:18px}.certs span{font-size:11px;padding:10px}.exp-heading h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
