:root{--bg:#070b16;--panel:#0f1729;--line:#ffffff17;--text:#eef3ff;--muted:#9aa8c2;--mint:#63ead7;--blue:#7aa8ff;--amber:#ffbd7c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{background:var(--bg);color:var(--text);margin:0;font:400 1rem/1.6 Figtree,system-ui,sans-serif}h1,h2,h3,.brand{margin:0;font-family:Bricolage Grotesque,Figtree,sans-serif}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--mint);outline-offset:3px;border-radius:6px}.shell{width:min(1180px,100% - 40px);margin-inline:auto}.fx{z-index:-1;pointer-events:none;background:radial-gradient(38% 34% at 16% 11%, #7aa8ff29, transparent 70%), radial-gradient(34% 34% at 87% 30%, #63ead71c, transparent 70%), var(--bg);position:fixed;inset:0;overflow:hidden}.fx:after{content:"";background-image:radial-gradient(#ffffff12 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}#bar{z-index:80;transform-origin:0;background:linear-gradient(90deg, var(--mint), var(--blue), var(--amber));height:3px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}.hdr{z-index:70;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#070b16cc;position:sticky;top:0}.hdr-in{justify-content:space-between;align-items:center;gap:18px;min-height:72px;display:flex}.brand{letter-spacing:-.03em;font-size:1.3rem;font-weight:800}.brand span{color:var(--mint)}.nav{gap:28px;display:flex}.nav a{color:var(--muted);font-size:.92rem;font-weight:600;transition:color .2s;position:relative}.nav a:hover,.nav a[aria-current=page]{color:#fff}.nav a:after{content:"";background:var(--mint);height:2px;transition:transform .25s;position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}.nav a:hover:after,.nav a[aria-current=page]:after{transform:scaleX(1)}.hdr-r{align-items:center;gap:8px;display:flex}.ico{border:1px solid var(--line);border-radius:10px;place-items:center;width:40px;height:40px;transition:transform .2s,border-color .2s,color .2s;display:grid}.ico:hover{border-color:var(--mint);color:var(--mint);transform:translateY(-3px)}.ico svg,.fl svg{fill:currentColor;width:18px;height:18px}.btn{border:1px solid var(--line);border-radius:11px;align-items:center;gap:8px;min-height:44px;padding:10px 18px;font-size:.9rem;font-weight:700;transition:transform .2s,border-color .2s,color .2s;display:inline-flex}.btn:hover{transform:translateY(-3px)}.btn-p{background:var(--mint);color:#04211c;border-color:#0000;box-shadow:0 10px 30px -10px #63ead7b3}.btn-o:hover{border-color:var(--mint);color:var(--mint)}.menu{border:1px solid var(--line);background:var(--panel);color:#fff;cursor:pointer;border-radius:10px;width:42px;height:42px;font-size:1.3rem;display:none}.mnav{flex-direction:column;gap:16px;padding:6px 20px 22px;display:none}.mnav.open{display:flex}.mnav a{color:var(--muted);font-weight:600}.mnav .row{flex-wrap:wrap;gap:8px;display:flex}.tag{color:#a8f5ea;background:#63ead712;border:1px solid #63ead740;border-radius:7px;padding:4px 10px;font-size:.72rem;font-weight:700;display:inline-block}.hero{grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);align-items:center;gap:clamp(35px,6vw,78px);padding-block:70px 84px;display:grid}.hero h1{letter-spacing:-.052em;max-width:760px;margin:22px 0;font-size:clamp(3rem,5.3vw,5.15rem);font-weight:800;line-height:1.02}.gradient{background:linear-gradient(90deg, var(--mint), var(--blue), var(--amber));color:#0000;-webkit-background-clip:text;background-clip:text}.hero p{max-width:680px;color:var(--muted);margin:0;font-size:1.13rem;line-height:1.85}.hero p strong,.story p strong{color:var(--text)}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:29px;display:flex}.portrait{aspect-ratio:1;isolation:isolate;justify-self:end;width:100%;max-width:360px;position:relative}.portrait:before{content:"";z-index:-1;background:linear-gradient(145deg, var(--mint), var(--blue), var(--amber));-webkit-mask-composite:xor;opacity:.85;border-radius:50%;padding:2px;position:absolute;inset:-8px;box-shadow:0 0 34px #63ead733;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.portrait img{aspect-ratio:1;object-fit:cover;object-position:center 24%;border:0;border-radius:50%;width:100%;height:100%;display:block;position:relative;overflow:hidden}.sec{padding-block:90px}.section-intro{justify-content:space-between;align-items:end;gap:28px;margin-bottom:37px;display:flex}.section-intro h2{letter-spacing:-.045em;margin-top:12px;font-size:clamp(2.15rem,4.3vw,3.7rem);font-weight:800;line-height:1.08}.section-intro>p{max-width:390px;color:var(--muted);margin:0}.story{border-block:1px solid var(--line);background:#0f172961}.story-grid{grid-template-columns:.7fr 1.3fr;gap:70px;display:grid}.story-copy p{color:var(--muted);margin:0 0 21px;font-size:1.07rem;line-height:1.9}.story-copy p:last-child{margin-bottom:0}.timeline{gap:16px;margin-left:11px;padding-left:35px;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(var(--mint), #63ead738);transform-origin:top;width:1px;transition:transform .9s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0 auto 0 0;transform:scaleY(0)}.timeline.in-view:before{transform:scaleY(1)}.role{border:1px solid var(--line);background:#0f1729d1;border-radius:17px;grid-template-columns:62px 1fr;gap:18px;padding:23px;display:grid;position:relative}.role:before{content:"";border:3px solid var(--bg);background:var(--mint);width:13px;height:13px;box-shadow:0 0 0 1px var(--mint);opacity:0;border-radius:50%;transition:opacity .45s,transform .45s;position:absolute;top:38px;left:-43px;transform:scale(.55)}.timeline.in-view .role:before{opacity:1;transform:scale(1)}.logo{width:62px;height:62px;color:var(--mint);text-align:center;background:#16243b;border:1px solid #7aa8ff4d;border-radius:13px;place-items:center;font-family:Bricolage Grotesque,sans-serif;font-size:.88rem;font-weight:800;display:grid;overflow:hidden}.logo img{object-fit:contain;width:85%;height:85%;display:block}.role-date{color:var(--mint);letter-spacing:.02em;margin-bottom:5px;font-size:.79rem;font-weight:700;display:inline-block}.role h3{font-size:1.3rem}.role-company{color:var(--muted);margin:3px 0 0;font-size:.92rem}.role ul{color:#cbd5e6;margin:16px 0 0;padding-left:19px;font-size:.91rem;line-height:1.8}.role li+li{margin-top:5px}.role-note{color:var(--muted);margin:13px 0 0;font-size:.91rem;line-height:1.7}.education{border-block:1px solid var(--line);background:#0f172961}.education-card{border:1px solid var(--line);background:var(--panel);border-radius:18px;grid-template-columns:68px 1fr auto;align-items:center;gap:23px;padding:29px;display:grid}.education-card .logo{width:68px;height:68px}.education-card h3{font-size:1.32rem}.education-card p{color:var(--muted);margin:5px 0 0}.education-date{color:var(--mint);white-space:nowrap;border:1px solid #63ead740;border-radius:9px;padding:7px 12px;font-size:.85rem;font-weight:700}.cert-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.skills-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.mini-card{border:1px solid var(--line);background:var(--panel);border-radius:17px;padding:23px}.skill-group{min-height:290px;padding:30px;transition:transform .25s,border-color .25s,box-shadow .25s}.skill-group:hover{border-color:#63ead773;transform:translateY(-5px);box-shadow:0 18px 38px -25px #63ead780}.skill-group h3{margin:11px 0 8px;font-size:1.45rem}.skill-group>p{color:var(--muted);font-size:.94rem;line-height:1.7}.skill-list{flex-wrap:wrap;gap:9px;margin-top:24px;display:flex}.skill-chip{border:1px solid var(--line);color:#dbe4f0;background:#ffffff0a;border-radius:10px;align-items:center;gap:8px;min-height:38px;padding:6px 11px 6px 7px;font-size:.84rem;font-weight:600;display:inline-flex}.skill-chip img,.skill-icon-fallback{flex:none;width:24px;height:24px}.skill-chip img{object-fit:contain}.skill-icon-fallback{background:linear-gradient(135deg, var(--blue), var(--mint));color:#06111f;border-radius:7px;place-items:center;font-family:Bricolage Grotesque,sans-serif;font-size:.68rem;font-weight:800;display:grid}.mini-card h3{margin:12px 0 8px;font-size:1.11rem}.mini-card p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.75}.cert-card,.article-card{padding:0;transition:transform .25s,border-color .25s,box-shadow .25s;overflow:hidden}.cert-card:hover,.article-card:hover{border-color:#63ead773;transform:translateY(-4px);box-shadow:0 18px 38px -24px #63ead773}.cert-media,.article-media{background:#16243b;place-items:center;display:grid;overflow:hidden}.cert-media{aspect-ratio:4/3;padding:14px}.article-media{aspect-ratio:16/9}.cert-media img,.article-media img{width:100%;height:100%;display:block}.cert-media img{object-fit:contain}.article-media img{object-fit:cover;transition:transform .5s}.article-card:hover .article-media img{transform:scale(1.04)}.image-fallback{color:#cbd5e6;text-align:center;place-items:center;width:100%;height:100%;padding:24px;font-family:Bricolage Grotesque,sans-serif;font-size:1rem;font-weight:700;line-height:1.3;display:grid}.card-copy{padding:22px}.card-copy h3{margin:10px 0 8px;font-size:1.16rem}.card-copy p{margin:0}.card-meta{color:var(--muted);font-size:.86rem}.card-copy .btn{margin-top:18px}.article-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.mini-label{color:var(--mint);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.cert-note{color:var(--muted);margin:21px 0 0;font-size:.88rem}.direction{border-top:1px solid var(--line);background:#0f172961}.direction-grid{grid-template-columns:.8fr 1.2fr;align-items:center;gap:70px;display:grid}.direction-copy{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:30px}.direction-copy p{color:var(--muted);margin:0;font-size:1.06rem;line-height:1.85}.direction-copy strong{color:var(--text)}.direction-copy .hero-actions{margin-top:23px}.ftr{border-top:1px solid var(--line);background:#0a1120;padding:72px 0 24px}.ft{flex-wrap:wrap;justify-content:space-between;gap:34px;display:flex}.ft h2{letter-spacing:-.045em;margin:14px 0 10px;font-size:clamp(2rem,4vw,3.3rem);font-weight:800}.ft p{max-width:460px;color:var(--muted);margin:0}.fl{flex-wrap:wrap;align-content:start;gap:10px;max-width:420px;display:flex}.fl .btn{gap:9px}.fb{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:14px;margin-top:56px;padding-top:20px;font-size:.8rem;display:flex}.rv{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(22px)}.rv.in{opacity:1;transform:none}@media (width<=900px){.nav,.hdr .hide-m{display:none}.menu{display:block}.story-grid,.direction-grid{grid-template-columns:1fr;gap:27px}.cert-grid,.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.shell{width:calc(100% - 32px)}.hero{grid-template-columns:1fr;gap:40px;padding-block:53px 67px}.portrait{justify-self:center;max-width:325px}.sec{padding-block:70px}.section-intro{display:block}.section-intro>p{margin-top:13px}.cert-grid,.skills-grid,.article-grid{grid-template-columns:1fr}.timeline{padding-left:24px}.role{grid-template-columns:48px 1fr;gap:13px;padding:17px}.role:before{left:-32px}.role .logo{width:48px;height:48px;font-size:.68rem}.education-card{grid-template-columns:56px 1fr;gap:13px}.education-card .logo{width:56px;height:56px}.education-date{grid-column:2;justify-self:start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.rv{opacity:1;transform:none}.timeline:before{transition:none;transform:scaleY(1)}.timeline .role:before{opacity:1;transition:none;transform:none}}
