:root{--bg:#0b0e13;--panel:#10151c;--panel-2:#151b23;--text:#eef1f4;--muted:#98a1ad;--line:#252c36;--accent:#9fb9ff;--mint:#8fd6c4;--shell:min(1180px,calc(100% - 48px));--mono:'DM Mono',monospace;--sans:'Manrope',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}.shell{width:var(--shell);margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;top:-60px;left:20px;background:var(--text);color:var(--bg);padding:10px 16px;z-index:100}.skip-link:focus{top:20px}.site-header{position:fixed;inset:0 0 auto;z-index:50;background:rgba(11,14,19,.82);backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:.3s}.site-header.scrolled{border-color:var(--line)}.nav{height:76px;display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:12px;font-size:.9rem;font-weight:700;white-space:nowrap}.brand>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid #3a4554;font-family:var(--mono);font-size:.72rem;color:var(--accent)}.nav-links{display:flex;gap:27px;margin-left:auto}.nav-links a{font-size:.75rem;color:var(--muted);transition:.2s}.nav-links a:hover,.nav-links a.active{color:var(--text)}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px;padding:0 20px;border:1px solid #35404e;font-size:.75rem;font-weight:600;letter-spacing:.02em;transition:.25s}.button:hover{border-color:var(--accent);transform:translateY(-2px)}.button-small{min-height:38px;padding:0 14px;gap:12px}.button-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.button-primary:hover{background:var(--accent);border-color:var(--accent)}.menu-toggle{display:none;background:none;border:0;color:white}.hero{min-height:800px;padding-top:165px;display:grid;grid-template-columns:1.08fr .92fr;gap:50px;align-items:center;border-bottom:1px solid var(--line)}.eyebrow,.section-number{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;color:var(--accent);text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow span{width:32px;height:1px;background:var(--accent)}h1{font-size:clamp(4.8rem,8.2vw,8rem);line-height:.92;letter-spacing:-.065em;margin:28px 0 22px;font-weight:600}.hero-role{font-family:var(--mono);font-size:.81rem;color:#b9c0ca;letter-spacing:.035em}.hero-role span{color:#4e5b6c;margin:0 8px}.hero-summary{max-width:650px;color:var(--muted);font-size:1.17rem;margin:28px 0 36px}.hero-actions{display:flex;gap:12px}.social-row{display:flex;gap:24px;margin-top:52px;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em}.social-row>span{color:#5f6977}.social-row a{color:#acb5c0}.hero-visual{height:520px;position:relative;display:grid;place-items:center}.data-orbit{position:absolute;border:1px solid #242c36;border-radius:50%}.orbit-one{width:430px;height:430px}.orbit-two{width:310px;height:310px;border-style:dashed}.signal-card{width:310px;background:rgba(18,24,32,.94);border:1px solid #33404f;padding:24px;position:relative;z-index:2;box-shadow:0 30px 80px #0008}.signal-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.55rem;color:#8893a1}.status{color:var(--mint)}.chart{height:150px;display:flex;gap:11px;align-items:end;border-bottom:1px solid #3b4551;margin:30px 0 18px;padding:0 8px}.chart i{height:var(--h);background:linear-gradient(var(--accent),#4a659e);width:27px;opacity:.9}.signal-line{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.53rem;color:#748090}.signal-line b{height:1px;background:#3c4857;flex:1}.micro-card{position:absolute;z-index:3;width:145px;background:#121821;border:1px solid #313b49;padding:14px;font-family:var(--mono);box-shadow:0 20px 30px #0005}.micro-card span{color:#596575;font-size:.55rem}.micro-card strong{display:block;font-size:.64rem;margin:8px 0}.micro-card small{font-size:.54rem;color:var(--mint)}.card-sql{left:5%;top:19%}.card-bi{right:0;bottom:17%}.section{padding-block:120px}.section-tinted{background:#0e1218;border-block:1px solid var(--line)}.section-heading{max-width:850px;margin-bottom:70px}.section-heading h2{font-size:clamp(2.4rem,4.6vw,4.6rem);line-height:1.08;letter-spacing:-.045em;margin:18px 0 0;font-weight:500}.split-heading{max-width:none;display:grid;grid-template-columns:2fr 1fr;gap:80px;align-items:end}.split-heading>p{color:var(--muted);font-size:.93rem;max-width:360px;margin:0 0 7px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%;margin-left:22%}.about-grid p{color:var(--muted);margin:0}.about-grid .lead{font-size:1.25rem;color:#d4dae1}.lifecycle{margin-top:80px;display:flex;align-items:center;gap:11px;border-block:1px solid var(--line);padding:25px 0;overflow-x:auto}.lifecycle span{font-family:var(--mono);font-size:.61rem;white-space:nowrap;color:#aeb6c0}.lifecycle i{font-style:normal;color:#4f5a69}.timeline{max-width:900px;margin-left:auto}.experience-item{display:grid;grid-template-columns:190px 1fr;gap:55px;padding:0 0 80px}.experience-date{font-family:var(--mono);font-size:.61rem;color:#788391;position:relative}.experience-date i{position:absolute;right:-29px;top:7px;width:9px;height:9px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 6px #1c2430}.experience-body{padding-left:40px;border-left:1px solid #303846}.company{font-family:var(--mono);font-size:.68rem;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.experience-body h3{font-size:1.75rem;margin:8px 0 20px}.experience-body>p:not(.company),.experience-body li{color:var(--muted);font-size:.9rem}.experience-body ul{padding:15px 0 0;list-style:none}.experience-body li{padding:9px 0 9px 24px;border-top:1px solid #202731;position:relative}.experience-body li:before{content:'—';position:absolute;left:0;color:#596575}.experience-placeholder{opacity:.58}.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.capability-card{min-height:370px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px;position:relative;transition:.3s}.capability-card:hover{background:var(--panel);transform:translateY(-5px)}.card-index{font-family:var(--mono);font-size:.6rem;color:#647080}.card-icon{font-size:2rem;color:var(--accent);margin:80px 0 35px}.capability-card h3{font-size:1.25rem;margin:0 0 15px}.capability-card p{font-size:.84rem;color:var(--muted)}.process-section{background:linear-gradient(135deg,#121a26,#11151b)}.process-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(6,1fr);border:1px solid #2b3543}.process-list li{min-height:190px;padding:28px 22px;border-right:1px solid #2b3543;position:relative}.process-list li:last-child{border:0}.process-list li:not(:last-child):after{content:'→';position:absolute;right:-8px;top:50%;z-index:2;color:var(--accent);background:#131b25}.process-list span{font-family:var(--mono);font-size:.58rem;color:#667383}.process-list strong{display:block;font-size:.9rem;margin-top:62px;line-height:1.5}.tech-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.tech-grid span{min-height:125px;background:var(--panel);border:1px solid var(--line);padding:26px;display:flex;flex-direction:column;justify-content:space-between;transition:.25s}.tech-grid span:hover{border-color:#50617a;background:#141b24}.tech-grid b{font-size:1.05rem}.tech-grid small{font-family:var(--mono);font-size:.55rem;color:#687483;letter-spacing:.08em}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px 24px}.project-card{background:#11161d;border:1px solid var(--line);transition:.3s}.project-card:hover{transform:translateY(-6px);border-color:#3a4758}.project-art{height:265px;position:relative;overflow:hidden;background:#151b24;padding:22px}.project-art>span{font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;color:#8e9aa9}.project-copy{padding:30px}.project-num{font-family:var(--mono);font-size:.58rem;color:var(--accent)}.project-copy h3{font-size:1.5rem;line-height:1.25;margin:10px 0 15px}.project-copy>p:not(.project-num){color:var(--muted);font-size:.86rem}.project-copy ul{display:flex;gap:7px;flex-wrap:wrap;list-style:none;padding:20px 0 0;margin:0}.project-copy li{font-family:var(--mono);font-size:.53rem;color:#aab4c0;border:1px solid #303946;padding:5px 8px}.art-lines{position:absolute;inset:75px 40px 38px;background:repeating-linear-gradient(90deg,transparent 0 19%,#28323f 20%);border-bottom:1px solid #465569}.art-lines:after{content:'';position:absolute;inset:10px 0;background:linear-gradient(140deg,transparent 0 15%,var(--accent) 16% 17%,transparent 18% 29%,var(--accent) 30% 31%,transparent 32% 45%,var(--accent) 46% 47%,transparent 48% 65%,var(--mint) 66% 67%,transparent 68%);opacity:.7}.dashboard-mock{position:absolute;inset:75px 45px 35px;border:1px solid #3b4656;display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:8px;padding:9px}.dashboard-mock i{background:linear-gradient(145deg,#263342,#17202b)}.dashboard-mock i:first-child{grid-row:1/3}.flow-mock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:20px}.flow-mock i{width:55px;height:55px;border:1px solid #52647c;background:#1d2836}.flow-mock i:nth-of-type(2){border-radius:50%;background:#283d50}.flow-mock b{color:var(--accent)}.quality-mock{position:absolute;left:48px;right:48px;bottom:48px;display:flex;align-items:end;gap:13px;height:115px}.quality-mock i{flex:1;background:linear-gradient(#85a7e7,#263d5b);height:65%}.quality-mock i:nth-child(2){height:90%}.quality-mock i:nth-child(3){height:55%;background:linear-gradient(var(--mint),#294b47)}.quality-mock i:nth-child(4){height:78%}.quality-mock i:nth-child(5){height:45%}.contact{text-align:center;padding-block:150px}.contact-inner{max-width:880px;margin:auto}.contact h2{font-size:clamp(3.2rem,7vw,6.5rem);line-height:1;letter-spacing:-.06em;margin:25px 0}.contact h2 em{font-weight:400;color:var(--accent)}.contact-inner>p:not(.section-number){color:var(--muted);max-width:600px;margin:30px auto}.contact-links{margin-top:95px;display:grid;grid-template-columns:repeat(3,1fr);text-align:left;border-top:1px solid var(--line)}.contact-links a{padding:24px 12px;border-bottom:1px solid var(--line)}.contact-links small{display:block;font-family:var(--mono);font-size:.53rem;color:#66717f;margin-top:5px}footer{border-top:1px solid var(--line);padding:35px 0}footer .shell{display:flex;align-items:center;justify-content:space-between}footer p{font-family:var(--mono);font-size:.55rem;color:#717c89}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:960px){.nav-links{position:fixed;inset:76px 0 auto;background:#0b0e13;border-bottom:1px solid var(--line);padding:30px 24px;display:none;flex-direction:column}.nav-links.open{display:flex}.menu-toggle{display:flex;margin-left:auto;width:32px;flex-direction:column;gap:5px}.menu-toggle span:not(.sr-only){height:1px;background:white;width:100%}.resume-link{display:none}.hero{grid-template-columns:1fr;padding-top:140px;padding-bottom:70px}.hero-visual{height:440px}.capability-grid{grid-template-columns:1fr 1fr}.process-list{grid-template-columns:repeat(3,1fr)}.process-list li:nth-child(3){border-right:0}.process-list li:nth-child(-n+3){border-bottom:1px solid #2b3543}.tech-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){:root{--shell:calc(100% - 32px)}.section{padding-block:85px}.hero{min-height:auto}.hero-role span{display:none}.hero-role{line-height:1.9}.hero-summary{font-size:1rem}.hero-actions{flex-direction:column}.social-row{flex-wrap:wrap}.social-row>span{width:100%}.hero-visual{height:360px}.orbit-one{width:330px;height:330px}.orbit-two{width:250px;height:250px}.signal-card{width:260px}.card-sql{left:0}.card-bi{right:0}.section-heading{margin-bottom:45px}.split-heading{grid-template-columns:1fr;gap:20px}.about-grid{grid-template-columns:1fr;margin-left:0;gap:24px}.lifecycle{margin-top:50px}.experience-item{grid-template-columns:1fr;gap:20px}.experience-date i{display:none}.experience-body{padding-left:20px}.capability-grid{grid-template-columns:1fr}.capability-card{min-height:300px}.card-icon{margin-top:45px}.process-list{grid-template-columns:1fr 1fr}.process-list li{border-bottom:1px solid #2b3543!important}.process-list li:nth-child(even){border-right:0}.tech-grid{grid-template-columns:1fr 1fr}.project-grid{grid-template-columns:1fr;gap:30px}.project-art{height:220px}.contact-links{grid-template-columns:1fr}.contact h2 br{display:none}footer .shell{align-items:flex-start;flex-direction:column;gap:15px}h1{font-size:4.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.project-card-linked>a{display:block;height:100%}.project-card-linked:focus-within{outline:2px solid var(--accent);outline-offset:4px}.project-cta,.project-status{display:block;margin-top:26px;font-family:var(--mono);font-size:.57rem;letter-spacing:.08em}.project-cta{color:var(--accent)}.project-status{color:#66717f}

/* Production accessibility and pending destinations */
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.mobile-resume{display:none}.pending-link{color:#6e7885}.pending-button{cursor:not-allowed;opacity:.72}.contact-links>span{padding:24px 12px;border-bottom:1px solid var(--line)}.contact-links>span small{display:block;font-family:var(--mono);font-size:.53rem;color:#66717f;margin-top:5px}
@media(max-width:960px){.mobile-resume{display:block}}

/* Experience progression */
.experience-date small{display:block;margin-top:10px;color:#596575;font-size:.56rem;line-height:1.5}.experience-date i{background:#667487}.experience-featured .experience-date i{background:var(--accent);box-shadow:0 0 0 6px #1c2430,0 0 22px #7799e966}.experience-featured .experience-body{border-left-color:#516685}.experience-featured .experience-body>p:not(.company){font-size:.96rem;color:#b6bec8}.experience-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:25px}.experience-tags span{font-family:var(--mono);font-size:.53rem;color:#aab4c0;border:1px solid #303946;padding:5px 8px}.experience-compact{padding-bottom:65px}.experience-compact .experience-body h3,.experience-early .experience-body h3{font-size:1.5rem}.experience-compact .experience-body li{padding-block:7px}.experience-early{padding-bottom:0}.experience-early .experience-body{padding-bottom:15px}
