@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#0b2732;--ink-soft:#49616a;--paper:#f5f3ed;--surface:#fff;--line:#d8ddd9;--blue:#4b8eff;--blue-dark:#2174ef;--mint:#5fd6b3;--yellow:#f0cd59;--dark:#071b26;--dark-card:#0c2935;--dark-muted:#9fb1b7;--shadow:0 24px 70px rgba(7,27,38,.12)}
body.dark-theme{--ink:#eef7f4;--ink-soft:#a6babf;--paper:#06151d;--surface:#0b2732;--line:#29404a}body.dark-theme .trust-strip{background:#0b2732}body.dark-theme .button-secondary{background:rgba(255,255,255,.04)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);font-family:"DM Sans",sans-serif;line-height:1.6;overflow-x:hidden;transition:background .25s,color .25s}a{color:inherit;text-decoration:none}button{font:inherit}.section-shell{width:min(1180px,calc(100% - 48px));margin-inline:auto}.section-block{padding-block:110px}
.site-header{width:min(1320px,calc(100% - 48px));height:86px;margin-inline:auto;display:flex;align-items:center;gap:42px;position:relative;z-index:20}.brand{display:flex;align-items:center;gap:10px;font:700 14px/1 "Manrope",sans-serif;letter-spacing:.13em}.brand strong{color:var(--blue-dark)}.brand-mark{width:32px;height:32px;display:grid;place-items:center;color:#fff;background:var(--ink);border-radius:5px 13px 5px 5px;font-size:16px;letter-spacing:0}.site-nav{margin-left:auto;display:flex;align-items:center;gap:32px;font-size:14px;font-weight:600}.site-nav a:not(.nav-cta){position:relative}.site-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:var(--blue-dark);transition:right .25s}.site-nav a:hover::after{right:0}.nav-cta{border:1px solid var(--ink);padding:10px 19px;border-radius:99px}.icon-button{border:0;background:transparent;color:var(--ink);font-size:20px;cursor:pointer;padding:8px}
.hero{min-height:690px;padding-block:86px 115px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.75fr);gap:90px;align-items:center}.eyebrow{color:var(--blue-dark);font:700 12px/1.3 "Manrope",sans-serif;letter-spacing:.16em;text-transform:uppercase;display:flex;align-items:center;gap:10px;margin-bottom:24px}.eyebrow span{width:26px;height:2px;background:currentColor}.hero h1,.section-heading h2,.contact-section h2{font:700 clamp(42px,5.5vw,76px)/1.06 "Manrope",sans-serif;letter-spacing:-.055em}.hero h1 em{color:var(--blue-dark);font-style:normal}.hero-lead{max-width:720px;margin-top:30px;color:var(--ink-soft);font-size:19px;line-height:1.7}.hero-actions{display:flex;align-items:center;gap:14px;margin-top:38px;flex-wrap:wrap}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:0 24px;border-radius:4px;font-size:14px;font-weight:700;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px)}.button-primary{color:#fff;background:var(--blue-dark);box-shadow:0 12px 28px rgba(33,116,239,.25)}.button-secondary{border:1px solid var(--line);background:rgba(255,255,255,.5)}.contact-row{display:flex;gap:26px;margin-top:40px;color:var(--ink-soft);font-size:13px;flex-wrap:wrap}.contact-row>*{position:relative}.contact-row>*+*::before{content:"·";position:absolute;left:-15px;color:var(--blue)}
.hero-card{background:var(--dark);color:#fff;min-height:470px;padding:34px;border-radius:4px 40px 4px 4px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.hero-card::after{content:"";width:250px;height:250px;border:1px solid rgba(95,214,179,.22);border-radius:50%;position:absolute;right:-95px;top:80px;box-shadow:0 0 0 35px rgba(95,214,179,.04),0 0 0 70px rgba(95,214,179,.03)}.availability{font-size:11px;letter-spacing:.04em;color:var(--dark-muted);display:flex;gap:8px;align-items:center;position:relative;z-index:1}.availability span{width:7px;height:7px;background:var(--mint);border-radius:50%;box-shadow:0 0 0 5px rgba(95,214,179,.1)}.monogram{height:128px;margin:34px 0 26px;display:flex;align-items:center;color:var(--mint);font:800 108px/1 "Manrope";letter-spacing:-.1em;opacity:.18;position:relative;z-index:1}.hero-card-label{color:var(--mint);font:700 10px/1 "Manrope";letter-spacing:.2em}.hero-card h2{font:700 31px/1.12 "Manrope";letter-spacing:-.04em;margin-top:12px;position:relative;z-index:1}.hero-stats{position:absolute;z-index:1;left:34px;right:34px;bottom:30px;border-top:1px solid rgba(255,255,255,.14);padding-top:21px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.hero-stats div{display:flex;gap:8px;align-items:flex-start}.hero-stats strong{color:var(--mint);font:700 20px/1 "Manrope"}.hero-stats span{color:var(--dark-muted);font-size:9px;line-height:1.35;text-transform:uppercase}
.trust-strip{min-height:86px;background:#fff;border-block:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:clamp(25px,5vw,72px);padding:20px 24px;flex-wrap:wrap;color:#829096;font:700 11px/1 "Manrope";letter-spacing:.12em}.trust-strip span::before{content:"◆";color:var(--blue);margin-right:11px;font-size:8px}.section-heading{display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:80px;margin-bottom:62px}.section-heading h2{font-size:clamp(38px,4.3vw,59px)}.section-heading>p{color:var(--ink-soft);font-size:17px;max-width:500px}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line)}.service-card{min-height:340px;padding:38px;background:rgba(255,255,255,.42);position:relative;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:transform .25s,box-shadow .25s,background .25s}.service-card:nth-child(2n){border-right:0}.service-card:nth-child(n+3){border-bottom:0}.service-card:hover{z-index:2;transform:translateY(-5px);box-shadow:var(--shadow);background:var(--surface)}.service-card.featured{background:var(--surface)}.card-number{position:absolute;right:28px;top:26px;color:#a8b2b4;font:600 11px/1 "Manrope"}.service-icon{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--blue);color:var(--blue-dark);border-radius:50%;font-size:24px;margin-bottom:30px}.service-card h3{font:700 24px/1.25 "Manrope";letter-spacing:-.03em;margin-bottom:16px}.service-card p{color:var(--ink-soft);max-width:470px;font-size:15px}.service-card ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.service-card li,.tags span{font-size:11px;font-weight:600;padding:6px 10px;border:1px solid var(--line);border-radius:99px;color:var(--ink-soft)}
.landscape-section{color:#fff;background:var(--dark);position:relative;overflow:hidden}.landscape-section::before{content:"";position:absolute;inset:0;opacity:.3;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:46px 46px}.landscape-section .section-shell{position:relative}.eyebrow.light{color:var(--mint)}.landscape-heading>p{color:var(--dark-muted)}.map-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:20px}.map-legend{display:flex;gap:22px;flex-wrap:wrap;color:var(--dark-muted);font-size:11px}.legend-dot{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%}.legend-dot.core{background:var(--mint)}.legend-dot.technique{background:var(--yellow)}.legend-dot.platform{background:var(--blue)}.legend-dot.module{background:#bd93ff}.reset-button{color:var(--mint);background:transparent;border:1px solid rgba(95,214,179,.35);border-radius:99px;padding:7px 14px;font-size:11px;cursor:pointer}.cv-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;min-height:560px;border:1px solid rgba(255,255,255,.12);background:rgba(4,20,29,.66);backdrop-filter:blur(8px)}.cv-map{position:relative;min-height:560px;overflow:hidden}#map-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}#map-lines line{stroke:rgba(120,154,165,.35);stroke-width:1.2;transition:opacity .25s,stroke .25s,stroke-width .25s}#map-lines line.active{stroke:var(--mint);stroke-width:2}#map-lines line.dimmed{opacity:.08}.map-node{position:absolute;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.22);background:var(--dark-card);color:#eaf2f3;border-radius:99px;padding:8px 13px;font-size:11px;white-space:nowrap;cursor:pointer;box-shadow:0 6px 15px rgba(0,0,0,.18);transition:opacity .25s,transform .25s,border .25s,background .25s,color .25s;z-index:2}.map-node:hover,.map-node:focus-visible{transform:translate(-50%,-50%) scale(1.08);outline:0;border-color:var(--mint)}.map-node[data-type="core"]{background:var(--mint);border-color:var(--mint);color:#062019;font-weight:800;font-size:13px;padding:12px 18px}.map-node[data-type="technique"]{border-color:rgba(240,205,89,.7)}.map-node[data-type="platform"]{border-color:rgba(75,142,255,.75)}.map-node[data-type="module"]{border-color:rgba(189,147,255,.7)}.map-node.selected{background:#fff;color:#071b26;border-color:#fff;transform:translate(-50%,-50%) scale(1.1);box-shadow:0 0 0 6px rgba(95,214,179,.1)}.map-node.connected{border-color:var(--mint)}.map-node.dimmed{opacity:.18}.node-detail{border-left:1px solid rgba(255,255,255,.12);padding:40px 30px;background:rgba(12,41,53,.7)}.detail-type{color:var(--mint);font:700 10px/1 "Manrope";letter-spacing:.17em;margin-bottom:18px}.node-detail h3{font:700 29px/1.15 "Manrope";letter-spacing:-.03em;margin-bottom:18px}.node-detail>p:not(.detail-type){color:var(--dark-muted);font-size:14px}.detail-connections{border-top:1px solid rgba(255,255,255,.12);margin-top:28px;padding-top:22px;display:flex;flex-wrap:wrap;gap:7px}.detail-connections::before{content:"CONNECTED TO";width:100%;color:#708991;font:700 9px/1 "Manrope";letter-spacing:.14em;margin-bottom:8px}.detail-connections span{border:1px solid rgba(255,255,255,.15);border-radius:99px;color:#d2dfe2;padding:5px 9px;font-size:10px}.map-hint{color:#708991;margin-top:15px;font-size:11px}.map-hint span{color:var(--mint);margin-right:7px}
.experience-section .section-heading{margin-bottom:35px}.timeline{border-top:1px solid var(--line)}.timeline-item{display:grid;grid-template-columns:220px 1fr;padding:46px 20px 46px 0;border-bottom:1px solid var(--line);position:relative}.timeline-item::before{content:"";width:7px;height:7px;background:#a7b4b8;border-radius:50%;position:absolute;left:203px;top:54px}.timeline-item.current::before{background:var(--blue);box-shadow:0 0 0 6px rgba(75,142,255,.12)}.timeline-date{color:var(--ink-soft);font:600 12px/1 "Manrope";letter-spacing:.08em;padding-top:7px}.timeline-content{padding-left:45px;max-width:820px}.company{color:var(--blue-dark);font:700 11px/1 "Manrope";letter-spacing:.14em;margin-bottom:12px}.timeline-content h3{font:700 25px/1.25 "Manrope";letter-spacing:-.03em;margin-bottom:13px}.timeline-content>p:not(.company){color:var(--ink-soft)}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.earlier-roles{border-bottom:1px solid var(--line)}.earlier-roles summary{list-style:none;cursor:pointer;padding:25px 0;color:var(--blue-dark);font-weight:700;display:flex;justify-content:space-between}.earlier-roles summary::-webkit-details-marker{display:none}.earlier-roles[open] summary span{transform:rotate(45deg)}.earlier-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:30px}.earlier-grid article{padding:26px;background:var(--surface)}.earlier-grid time{color:var(--ink-soft);font-size:11px}.earlier-grid p{color:var(--blue-dark);font-size:10px;letter-spacing:.12em;font-weight:700;margin:9px 0 6px}.earlier-grid h3{font:700 17px/1.3 "Manrope";margin-bottom:9px}.earlier-grid article>span{color:var(--ink-soft);font-size:13px}.education-band{background:var(--blue-dark);color:#fff;padding-block:58px}.credentials{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:center}.credentials .eyebrow{margin-bottom:12px;color:#cfe0ff}.credentials h2{font:700 27px/1.25 "Manrope";margin-bottom:7px}.credentials>div>p:last-child{color:#cfe0ff;font-size:14px}.languages{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.languages p{width:100%;color:#cfe0ff;font:700 10px/1 "Manrope";letter-spacing:.15em}.languages span{border:1px solid rgba(255,255,255,.35);padding:6px 12px;border-radius:99px;font-size:12px}.contact-section{padding-block:120px;text-align:center;display:flex;flex-direction:column;align-items:center}.contact-section .eyebrow{justify-content:center}.contact-section h2{font-size:clamp(40px,5vw,65px)}.contact-section>p:not(.eyebrow){color:var(--ink-soft);max-width:630px;font-size:17px;margin:25px auto 32px}.site-footer{min-height:110px;width:min(1320px,calc(100% - 48px));margin-inline:auto;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px;color:var(--ink-soft);font-size:11px}
@media(max-width:950px){.site-nav{display:none}.icon-button{margin-left:auto}.hero{grid-template-columns:1fr;gap:45px;padding-top:55px}.hero-card{min-height:430px}.section-heading{grid-template-columns:1fr;gap:25px}.cv-map-layout{grid-template-columns:1fr}.node-detail{border-left:0;border-top:1px solid rgba(255,255,255,.12);min-height:230px}.timeline-item{grid-template-columns:170px 1fr}.timeline-item::before{left:154px}}
@media(max-width:680px){.section-shell,.site-header,.site-footer{width:min(100% - 30px,1180px)}.section-block{padding-block:75px}.site-header{height:72px}.hero{padding-block:48px 80px}.hero h1{font-size:42px}.hero-lead{font-size:17px}.hero-actions,.hero-actions .button{width:100%}.contact-row{flex-direction:column;gap:8px}.contact-row>*+*::before{display:none}.hero-card{padding:27px}.hero-stats{left:27px;right:27px}.trust-strip{justify-content:flex-start;padding-left:30px}.service-grid{grid-template-columns:1fr}.service-card{border-right:0;border-bottom:1px solid var(--line)!important;padding:28px}.service-card:last-child{border-bottom:0!important}.map-toolbar{align-items:flex-end}.map-legend{gap:8px 14px}.cv-map{min-height:500px}.map-node{font-size:9px;padding:6px 8px}.map-node[data-type="core"]{font-size:11px;padding:9px 12px}.timeline-item{display:block;padding:32px 0}.timeline-item::before{display:none}.timeline-content{padding:15px 0 0}.earlier-grid{grid-template-columns:1fr}.credentials{grid-template-columns:1fr;gap:34px}.site-footer{padding-block:30px;flex-direction:column;text-align:center}}
.hero-stats.two-stats{grid-template-columns:repeat(2,1fr);gap:28px}.hero-stats.two-stats div+div{border-left:1px solid rgba(255,255,255,.14);padding-left:28px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
