@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Inter,system-ui,sans-serif;color:#101a37;background:#f8faff;font-synthesis:none;font-weight:400;--blue:#075bfa;--muted:#5e6b86;--line:#dce5f2;--surface:rgba(255,255,255,.75)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}:focus-visible{outline:3px solid #075bfa;outline-offset:5px}button svg,a svg{flex-shrink:0}p{color:var(--muted);line-height:1.7}h1,h2,h3,h4,p{margin-top:0}h1,h2{letter-spacing:-.055em;line-height:1.1}h1 span:not(.word),h2 span:not(.word),.journey-end span{color:var(--blue)}h1{font-size:clamp(44px,4.5vw,68px);margin-bottom:24px}h2{font-size:clamp(34px,3.4vw,48px);margin-bottom:20px}h3{font-size:21px;line-height:1.35;letter-spacing:-.035em;margin-bottom:9px}h4{font-size:18px;line-height:1.4;letter-spacing:-.025em}.container{max-width:1240px;width:calc(100% - 96px);margin-inline:auto}.site-header{position:sticky;top:0;z-index:30;background:#f8faffe6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgba(220,229,242,.55)}.nav-wrap{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:17px}.monogram{display:grid;place-items:center;background:var(--blue);color:#fff;width:48px;height:48px;border-radius:50%;font-size:17px;font-weight:600}.brand strong{font-size:19px;letter-spacing:-.04em}.brand small{display:block;font-size:9px;letter-spacing:2.7px;margin-top:6px;color:#526386}.site-header nav{display:flex;gap:27px;font-size:14px}.site-header nav a{padding:12px 0;transition:color .2s}.site-header nav a:hover{color:var(--blue)}.menu-button{display:none;background:none;border:0;color:inherit}.hero{min-height:565px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:36px;padding-block:45px 50px}.section-label{display:flex;align-items:center;gap:16px;letter-spacing:2.5px;font-size:11px;font-weight:600;color:#5c6d91;margin-bottom:28px}.section-label span{color:#17284c;letter-spacing:0}.section-label i{width:40px;height:1px;background:#a6b7d2}.hero-copy>p{font-size:21px;max-width:470px;line-height:1.6;margin-bottom:30px}.actions{display:flex;gap:16px;flex-wrap:wrap}.button{padding:16px 24px;display:inline-flex;align-items:center;justify-content:center;gap:24px;border-radius:11px;font-size:15px;font-weight:500;border:1px solid transparent;transition:transform .2s,box-shadow .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--blue);color:#fff;box-shadow:0 9px 25px #075bfa1a}.primary:hover{background:#004bdc;box-shadow:0 12px 30px #075bfa29}.secondary{border-color:#c9d5e8;background:#ffffff50}.hero-location{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;margin-top:27px}.hero-visual{position:relative;height:452px;border:1px solid white;border-radius:30px;background:#edf4ff;box-shadow:0 18px 65px #397fdd14}.portrait{width:100%;height:100%;object-fit:cover;object-position:center 30%;border-radius:30px}.hud{position:absolute;display:flex;align-items:center;gap:10px;font-size:12px;background:#fbfdffde;border:1px solid white;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;padding:17px;color:#223a62;box-shadow:0 12px 35px #153d7610;animation:float 7s ease-in-out infinite}.hud svg{color:var(--blue)}.hud-one{left:-25px;top:48px}.hud-two{right:-20px;bottom:75px;animation-delay:-3s}.portrait-note{position:absolute;right:18px;bottom:15px;background:#ffffffc9;padding:5px 8px;border-radius:5px;font-size:9px;letter-spacing:1.5px;color:#41516e}.metrics-wrap{border-block:1px solid var(--line);background:#ffffff65}.metrics{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:136px}.metrics small{font-size:10px;letter-spacing:2.7px;line-height:1.8;color:#62718c}.metrics>div{display:flex;align-items:center;gap:23px;border-left:1px solid var(--line);padding-left:40px}.metrics svg{width:35px;height:35px;color:#26487d}.metrics strong{font-size:33px;letter-spacing:-1px}.metrics strong span{display:block;font-size:15px;font-weight:400;letter-spacing:0;margin-top:4px;color:var(--muted)}.section{padding-block:90px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:28px}.section-heading p{font-size:15px;margin-bottom:23px}.mobile-break{display:none}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.project-card{border:1px solid white;border-radius:22px;overflow:hidden;background:var(--surface);box-shadow:0 10px 35px #233c6506}.project-art{height:215px;position:relative;overflow:hidden;background:#eaf2ff}.project-art img{width:100%;height:100%;object-fit:cover}.art-1 img{transform:scaleX(-1)}.project-art>span{position:absolute;left:25px;top:26px;color:#3c547f;font-size:10px;letter-spacing:2px}.project-art>svg{position:absolute;left:25px;bottom:25px;color:#075bfa}.project-body{padding:27px}.project-body>p{font-size:15px;margin-bottom:16px}.project-body .tech{color:#52678c;margin-bottom:12px}.project-body details{border-top:1px solid var(--line);padding-top:15px;margin-top:20px}.project-body summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;color:#184fb0;font-size:14px;list-style:none}.project-body summary::-webkit-details-marker{display:none}.project-body details[open] summary svg{transform:rotate(180deg)}.project-body details p{font-size:14px;margin:17px 0 0}.repo-heading{display:flex;justify-content:space-between;align-items:center;margin:43px 0 20px}.repo-heading h3{margin:0}.text-link{display:inline-flex;align-items:center;gap:8px;color:#31588a;font-size:14px}.text-link svg{width:16px}.repo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.repo-card{border-top:1px solid #cbd7ea;padding:25px 4px 10px;transition:transform .2s}.repo-card:hover{transform:translateY(-4px)}.repo-card>svg{color:#335b96;margin-bottom:15px}.repo-card h4{margin-bottom:9px}.repo-card p{font-size:14px;margin-bottom:18px}.repo-card>span{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#526a8d}.journey-section{padding:85px 0;background:#eff5fd;border-block:1px solid #e7eef8}.center-heading{text-align:center}.center-heading .section-label{justify-content:center}.center-heading p{font-size:18px}.timeline{position:relative;margin-top:55px;padding:10px 0 25px}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#8db6ff}.timeline-item{display:grid;grid-template-columns:1fr 1fr;gap:110px;position:relative;margin-bottom:24px;align-items:center}.timeline-item:before{content:"";position:absolute;left:calc(50% - 8px);top:50%;width:16px;height:16px;border:4px solid #eff5fd;border-radius:50%;background:var(--blue);box-shadow:0 0 0 1px #b4cdf4}.timeline-item:after{content:"";position:absolute;width:48px;left:calc(50% - 55px);top:calc(50% + 8px);height:1px;background:#85b1ff}.timeline-card{display:flex;gap:20px;background:#ffffffb8;border:1px solid white;border-radius:22px;padding:30px;box-shadow:0 12px 35px #224b8105}.timeline-card small{font-size:10px;letter-spacing:2.5px;color:#586c93;font-weight:600}.timeline-card h3{margin:13px 0 7px}.timeline-card p{font-size:14px;margin-bottom:15px}.icon-box{width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:13px;background:#e8f0ff;color:var(--blue)}.timeline-item time{font-size:14px;color:#3c5480}.timeline-item.right .timeline-card{grid-column:2;grid-row:1}.timeline-item.right time{grid-column:1;grid-row:1;text-align:right}.timeline-item.right:after{left:calc(50% + 9px)}.pill{display:inline-block;background:#edf2fa;padding:9px 13px;border-radius:10px;color:#536482;font-size:12px;line-height:1.5}.pill.blue{background:#e1edff;color:#075bfa}.timeline-card ul{padding:18px 0 0 17px;border-top:1px solid var(--line);font-size:14px;color:#5e6b86;line-height:1.7;margin:17px 0 0}.timeline-card li{padding-left:3px;margin-bottom:7px}.timeline-card li::marker{color:var(--blue)}.mobile-date{display:none}.journey-end{text-align:center;color:#61759d;letter-spacing:2px;font-size:12px;margin:25px 0 0}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:23px}.tool-card{background:var(--surface);border:1px solid white;border-radius:21px;padding:28px}.tool-card .icon-box{margin-bottom:20px}.tool-card h3{font-size:19px}.tool-card p{font-size:14px;margin-bottom:20px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{background:#edf2f9;color:#405475;font-size:12px;padding:8px 11px;border-radius:8px;line-height:1.4}.credentials-section{padding:75px 0;background:#f0f5fc;border-block:1px solid #e5edf8}.intro{margin-bottom:30px}.credential-list{border:1px solid white;border-radius:24px;background:#ffffffb8;padding:9px 32px}.credential{display:flex;gap:23px;align-items:center;padding:27px 0;border-bottom:1px solid var(--line)}.credential:last-child{border:0}.credential h3{font-size:18px;margin-bottom:6px}.credential p{font-size:14px;margin-bottom:0}.credential time{margin-left:auto;white-space:nowrap;font-size:14px;color:#63759a}.about{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:center}.about h2{font-size:40px}.about>div>p{font-size:16px}.about-tags{display:inline-flex;align-items:center;gap:16px;font-size:13px;color:#4b648e}.about-tags i{height:3px;width:3px;background:#7491bf;border-radius:50%}.contact{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;padding:44px;border:1px solid white;border-radius:26px;background:#edf4ff;box-shadow:0 18px 65px #2e71d00a}.contact h2{font-size:37px}.contact p{font-size:14px;margin:0}.contact .section-label{font-size:10px}.contact-actions{border-left:1px solid #d6e2f4;padding-left:35px}.email{gap:14px;font-size:14px;padding:17px}.socials{display:flex;gap:15px;flex-wrap:wrap;margin-top:18px}.socials a,.socials button{display:inline-flex;align-items:center;gap:7px;font-size:12px;background:#ffffff8c;border:1px solid #dbe6f4;padding:10px;border-radius:9px}.socials svg{width:17px;height:17px}.location{display:flex;align-items:center;gap:7px;margin-top:18px!important}footer{display:flex;align-items:center;justify-content:space-between;padding-block:35px;color:#6b7c98;font-size:12px}footer a{display:flex;gap:8px;align-items:center}.skip{position:absolute;top:-100px;left:20px;background:#fff;padding:15px;z-index:100}.skip:focus{top:10px}@keyframes float{50%{transform:translateY(-6px)}}@media(min-width:1500px){.hero{min-height:640px}.hero-visual{height:490px}}@media(max-width:1000px){.container{width:calc(100% - 48px)}.brand small{font-size:8px;letter-spacing:1.7px}.site-header nav{gap:16px}.hero{gap:25px}.hero h1{font-size:47px}.hero-copy>p{font-size:18px}.hero-visual{height:400px}.hud{font-size:10px;padding:12px}.hud-one{left:-10px}.hud-two{right:-10px}.metrics>div{padding-left:25px}.timeline-item{gap:65px}.timeline-card{padding:23px;gap:15px}.timeline-card .icon-box{width:40px;height:40px}.timeline-item:after{width:26px;left:calc(50% - 33px)}.tool-card{padding:23px}.contact{padding:30px;gap:25px}.contact-actions{padding-left:24px}.email{font-size:12px;gap:8px}.about{gap:30px}}@media(max-width:760px){.container{width:calc(100% - 40px)}.nav-wrap{min-height:78px}.brand strong{font-size:16px}.monogram{width:40px;height:40px;font-size:15px}.brand{gap:11px}.brand small{font-size:7px;letter-spacing:1.5px}.menu-button{display:block}.site-header nav{display:none;position:absolute;left:0;right:0;top:78px;background:#f8faff;border-bottom:1px solid var(--line);padding:20px;box-shadow:0 15px 20px #18395b0a;flex-direction:column;gap:0}.site-header nav.open{display:flex}.hero{grid-template-columns:1fr;gap:35px;padding-block:35px}.hero h1{font-size:48px}.hero-copy>p{max-width:100%;font-size:18px}.hero-visual{height:370px;margin-inline:12px}.hero .section-label{font-size:9px;letter-spacing:1.5px;gap:9px;margin-bottom:27px}.hero .section-label i{width:25px}.hero-location{display:none}.hud{font-size:11px}.hud-two{bottom:50px}.portrait-note{font-size:8px}.metrics{min-height:112px;gap:10px}.metrics>small{display:none}.metrics>div{border:0;padding-left:0;gap:12px}.metrics>div+div{border-left:1px solid var(--line);padding-left:20px}.metrics strong{font-size:28px}.metrics strong span{font-size:11px}.metrics svg{width:25px}.section{padding-block:60px}.section-label{font-size:9px;margin-bottom:20px;letter-spacing:2px}.section-heading{display:block;margin-bottom:24px}.section-heading h2{font-size:37px}.section-heading p{font-size:14px}.project-grid,.repo-grid,.tool-grid{grid-template-columns:1fr}.project-art{height:195px}.project-body{padding:24px}.repo-grid{gap:10px}.repo-card{padding-bottom:18px}.journey-section{padding:60px 0}.center-heading h2{font-size:43px}.center-heading p{font-size:16px}.center-heading .section-label{font-size:9px;gap:8px}.timeline{margin-top:35px;padding-left:25px}.timeline:before{left:7px}.timeline-item{display:block;margin-bottom:23px}.timeline-item:before{left:-25px;top:30px}.timeline-item:after,.timeline-item.right:after{left:-10px;top:38px;width:10px}.timeline-item time{display:none}.timeline-card{padding:23px 18px;gap:13px}.timeline-card h3{font-size:18px}.timeline-card .icon-box{width:35px;height:35px;border-radius:10px}.timeline-card .icon-box svg{width:22px}.timeline-card small{font-size:9px;letter-spacing:1.8px}.timeline-card p{font-size:13px}.mobile-date{display:block;font-size:12px;color:#075bfa;margin-bottom:15px}.timeline-card ul{font-size:13px}.journey-end{font-size:10px;letter-spacing:1.3px}.tool-grid{grid-template-columns:1fr 1fr;gap:12px}.tool-card{padding:20px 16px}.tool-card h3{font-size:17px}.tool-card p{font-size:13px}.chips{gap:6px}.chips span{font-size:11px;padding:6px 8px}.credentials-section{padding:55px 0}.credential-list{padding:0 18px}.credential{align-items:flex-start;gap:13px;flex-wrap:wrap;padding:23px 0}.credential .icon-box{width:38px;height:38px}.credential .icon-box svg{width:23px}.credential>div{width:calc(100% - 51px)}.credential h3{font-size:16px}.credential p{font-size:12px}.credential time{margin-left:51px;font-size:12px}.about{grid-template-columns:1fr;gap:13px}.about h2{font-size:34px}.contact{grid-template-columns:1fr;padding:25px;gap:27px}.contact h2{font-size:32px}.contact-actions{border-left:0;padding-left:0}.email{font-size:13px;gap:12px;padding:15px;width:100%}.socials{gap:7px}.socials a,.socials button{font-size:11px;padding:9px}footer{font-size:10px;gap:15px}.button{padding:15px 20px;font-size:14px}}@media(max-width:380px){.hero h1{font-size:41px}.tool-grid{grid-template-columns:1fr}.button{gap:14px;padding:14px 17px}.hero-visual{height:330px}.metrics>div+div{padding-left:12px}.metrics strong{font-size:24px}.email{font-size:11px;gap:9px}}@media(max-width:760px){.actions{gap:10px}.actions .button{padding:14px 16px;gap:15px;font-size:13px}}@media(min-width:1001px){.hero{min-height:490px;padding-block:35px 40px}.hero-visual{height:420px}.hero h1{font-size:clamp(54px,4.8vw,68px)}.center-heading h2{font-size:60px}.timeline-card h3{max-width:340px}}.journey-section{position:relative;isolation:isolate;overflow:hidden}.journey-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/abstract.png) center/cover;opacity:.08;z-index:-1}.hero-visual{background:none;border:0;border-radius:0;box-shadow:none}.portrait{display:block;width:auto;max-width:100%;height:100%;margin-inline:auto;object-fit:contain;object-position:center bottom;padding-top:14px;border-radius:0;filter:none;mask-image:linear-gradient(to bottom,#000 0%,#000 72%,transparent 100%),linear-gradient(to right,transparent 0%,#000 9%,#000 91%,transparent 100%);mask-composite:intersect;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 72%,transparent 100%),linear-gradient(to right,transparent 0%,#000 9%,#000 91%,transparent 100%);-webkit-mask-composite:source-in}.hud-one{top:32px;left:-18px}.hud-two{bottom:28px;right:-14px}@media(max-width:760px){.hud-one{left:-12px;top:22px}.hud-two{right:-12px;bottom:20px}.portrait{padding-top:12px}}.portrait{--portrait-mask:linear-gradient(to bottom,#000 0%,#000 57%,rgba(0,0,0,.97) 64%,rgba(0,0,0,.84) 72%,rgba(0,0,0,.58) 80%,rgba(0,0,0,.27) 88%,rgba(0,0,0,.06) 95%,transparent 100%),linear-gradient(to right,transparent 0%,rgba(0,0,0,.2) 3%,rgba(0,0,0,.65) 7%,#000 15%,#000 85%,rgba(0,0,0,.65) 93%,rgba(0,0,0,.2) 97%,transparent 100%);-webkit-mask-image:var(--portrait-mask);mask-image:var(--portrait-mask)}.hero-visual .hud{animation:none}@media(hover:hover)and (pointer:fine){.portrait{transform:perspective(1100px) translate3d(calc(var(--pointer-x,0)*5px),calc(var(--pointer-y,0)*3px),0) rotateX(calc(var(--pointer-y,0)*-2deg)) rotateY(calc(var(--pointer-x,0)*3deg));transform-origin:50% 55%;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.hero-visual .hud{transform:perspective(1100px) translate3d(calc(var(--pointer-x,0)*var(--depth-x)),calc(var(--pointer-y,0)*var(--depth-y)),0) rotateX(calc(var(--pointer-y,0)*-3deg)) rotateY(calc(var(--pointer-x,0)*4deg));transition:transform .8s cubic-bezier(.2,.7,.2,1)}.hud-one{--depth-x:12px;--depth-y:8px}.hud-two{--depth-x:18px;--depth-y:12px}}.timeline{--timeline-half-gap:55px}.timeline:before{transform:translate(-50%)}.timeline-item:before{left:50%;top:50%;transform:translate(-50%,-50%);z-index:1}.timeline-item:after{left:calc(50% - var(--timeline-half-gap));top:50%;width:var(--timeline-half-gap);transform:translateY(-50%)}.timeline-item.right:after{left:50%}@media(min-width:761px)and (max-width:1000px){.timeline{--timeline-half-gap:32.5px}}@media(max-width:760px){.timeline-item:before{left:-18px;top:38px}.timeline-item:after,.timeline-item.right:after{left:-18px;top:38px;width:18px}}.hero-intro{font-size:15px;font-weight:600;color:#173661;margin-bottom:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.hero-intro span{font-size:11px;font-weight:500;color:#526386;border-left:1px solid #c9d5e8;padding-left:12px}.hero .section-label{margin-bottom:20px}.snapshot-note{text-align:center;font-size:10px;letter-spacing:1px;margin:-14px 0 14px}.project-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:10px 0 28px}.project-filters{display:flex;flex-wrap:wrap;gap:8px}.project-filters button{border:1px solid #d8e3f3;background:#fff;color:#536380;border-radius:30px;padding:10px 17px;font-size:12px;transition:background .2s,color .2s}.project-filters button[aria-pressed=true]{background:#0b56e8;border-color:#0b56e8;color:#fff;box-shadow:0 5px 14px #075bfa20}.project-filters button:hover{border-color:#075bfa}.project-count{font-size:12px;color:#5e6b86;white-space:nowrap}.public-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.public-project{display:flex;flex-direction:column;padding:32px;border:1px solid #dce6f5;border-radius:23px;background:#fff;box-shadow:0 6px 24px #17325a05;transition:transform .25s,box-shadow .25s,border-color .25s}.project-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.project-category{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:#526386}.public-project h3{font-size:25px;max-width:340px;margin-bottom:14px}.public-project>p{font-size:14px;line-height:1.8;margin-bottom:24px}.public-project .chips{margin-top:auto;margin-bottom:24px}.repository-link{display:flex;align-items:center;gap:9px;border-top:1px solid #e5ebf5;padding-top:20px;font-size:12px;color:#144ca8;font-weight:500}.repository-link span{overflow-wrap:anywhere;min-width:0}.repository-link>svg:last-child{margin-left:auto}.public-project>small{margin:12px 0 0 28px;font-size:10px;color:#6a7892}.github-footnote{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:26px}.github-footnote p{font-size:11px;margin:0}.tool-card,.timeline-card,.credential{transition:transform .25s,box-shadow .25s,border-color .25s}.tool-card{border-color:#e0e9f6}.tool-card .icon-box{transition:transform .25s}.learning-note{display:flex;align-items:center;gap:10px;color:#1c55a0;font-size:13px;margin:23px 0}.contact{background:#eaf2ff;border-color:#d7e5fa}.site-header nav a{position:relative}.site-header nav a:after{content:"";position:absolute;bottom:5px;left:0;width:100%;height:2px;background:#075bfa;transform:scaleX(0);transform-origin:left;transition:transform .2s}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{transform:scaleX(1)}@media(hover:hover){.public-project:hover,.public-project:focus-within{transform:translateY(-5px);border-color:#a6c6fa;box-shadow:0 18px 40px #17325a0e}.tool-card:hover{transform:translateY(-4px);box-shadow:0 14px 35px #17325a0b}.tool-card:hover .icon-box{transform:rotate(-5deg)}.timeline-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #17325a0b}}@media all{.reveal{opacity:0;transform:translateY(16px);transition:opacity .65s,transform .65s}.reveal.is-visible{opacity:1;transform:translateY(0)}}@media(max-width:760px){.public-project-grid{grid-template-columns:1fr;gap:18px}.public-project{padding:25px}.public-project h3{font-size:24px}.project-toolbar{align-items:flex-start}.project-filters{gap:7px}.project-filters button{padding:9px 12px;font-size:11px}.project-count{display:none}.github-footnote{align-items:flex-start;flex-direction:column;gap:12px}.metrics>.text-link{display:none}.snapshot-note{margin:-8px 0 12px}.hero-intro{font-size:14px}}.actions{align-items:flex-start}.resume-pending{display:flex;flex-direction:column;align-items:center;gap:7px}.resume-download{gap:10px}.resume-download:disabled{color:#63718b;border-color:#d6dfed;background:#f0f4fa;cursor:not-allowed;box-shadow:none;transform:none}.resume-pending>span{font-size:10px;letter-spacing:.4px;color:#62718b}@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.site-header{background:#f8faffc7;-webkit-backdrop-filter:blur(22px) saturate(125%);backdrop-filter:blur(22px) saturate(125%)}.hero-visual .hud{background:#fbfdffb8;-webkit-backdrop-filter:blur(20px) saturate(120%);backdrop-filter:blur(20px) saturate(120%);box-shadow:0 10px 32px #153d7610,inset 0 1px #ffffffb3}.timeline-card{background:#ffffffb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.button svg,.repository-link>svg:last-child,.text-link>svg{transition:translate .25s ease}@media all{.hero-copy>*{animation:soft-arrival .65s cubic-bezier(.2,.7,.2,1) both}.hero-copy>:nth-child(2){animation-delay:50ms}.hero-copy>:nth-child(3){animation-delay:.1s}.hero-copy>:nth-child(4){animation-delay:.15s}.hero-copy>:nth-child(5){animation-delay:.2s}.hero-copy>:nth-child(6){animation-delay:.25s}.public-project{animation:card-arrival .45s cubic-bezier(.2,.7,.2,1) backwards}.public-project:nth-child(2n){animation-delay:65ms}.reveal{filter:blur(2px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1),filter .65s ease}.reveal.is-visible,.reveal:focus-within{opacity:1;transform:translateY(0);filter:none}.site-header nav.open{animation:soft-arrival .25s ease both}}@media(hover:hover){a.button:hover svg,.repository-link:hover>svg:last-child,.text-link:hover>svg{translate:2px -1px}.project-filters button{transition:background .2s,color .2s,box-shadow .2s,translate .2s}.project-filters button:hover{translate:0 -2px}.hero-visual .hud{transition:transform .8s cubic-bezier(.2,.7,.2,1),box-shadow .3s,background .3s}.hero-visual .hud:hover{background:#ffffffe0;box-shadow:0 14px 36px #153d761a,inset 0 1px #fff}}@keyframes soft-arrival{0%{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}@keyframes card-arrival{0%{opacity:.5;translate:0 8px}to{opacity:1;translate:0 0}}.reveal{filter:none}@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.site-header:after{content:"";position:absolute;top:100%;left:0;right:0;height:72px;pointer-events:none;opacity:var(--scroll-blur-opacity,0);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.7) 30%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.7) 30%,transparent 100%)}}@media(max-width:760px){.site-header:after{height:52px}}@media all{.icon-box{transition:background .3s ease,box-shadow .3s ease,transform .3s ease}.icon-box svg,.socials svg{transition:transform .3s cubic-bezier(.2,.7,.2,1)}.public-project:focus-within .icon-box{background:#dceaff;box-shadow:0 6px 18px #075bfa12}.public-project:focus-within .icon-box svg{transform:translateY(-2px) rotate(-5deg) scale(1.04)}.socials a:focus-visible svg:first-child{transform:translateY(-2px) rotate(-4deg)}}@media(hover:hover)and (pointer:fine){.public-project,.tool-card,.timeline-card,.credential{transition:opacity .65s ease,transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,border-color .3s ease,background .3s ease}.tool-card.is-visible:hover{transform:translateY(-4px)}.timeline-card.is-visible:hover{transform:translateY(-3px)}.credential.is-visible:hover{transform:translate(3px)}:is(.public-project,.tool-card,.timeline-card,.credential):hover .icon-box{background:#dceaff;box-shadow:0 6px 18px #075bfa12}:is(.public-project,.timeline-card,.credential):hover .icon-box svg{transform:translateY(-2px) rotate(-5deg) scale(1.04)}.tool-card:hover .icon-box svg{transform:translateY(-2px) scale(1.04)}.hud:hover>svg{animation:icon-nod .55s ease both}.socials a:hover svg:first-child{transform:translateY(-2px) rotate(-4deg)}}@keyframes icon-nod{0%,to{transform:rotate(0)}40%{transform:rotate(-7deg) translateY(-2px)}70%{transform:rotate(3deg)}}.menu-backdrop{display:none}@media(max-width:760px){.menu-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:#15274824;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);cursor:default}.site-header.menu-open{background:#f8faff;backdrop-filter:none;-webkit-backdrop-filter:none}.site-header.menu-open:after{display:none}.site-header nav.open{max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain}}.avatar-logo{position:relative;isolation:isolate;flex-shrink:0}.avatar-initials{position:relative;z-index:1}.avatar-window{position:absolute;left:-10px;right:-10px;top:-18px;bottom:0;overflow:hidden;border-radius:0 0 28px 28px;pointer-events:none;z-index:2}.greeting-avatar{position:absolute;left:0;bottom:-3px;width:100%;height:100%;object-fit:contain;object-position:center bottom;transform:translateY(110%);opacity:0}.avatar-hello{position:absolute;z-index:3;left:calc(100% - 3px);top:-15px;border:1px solid #dce6f5;border-radius:10px 10px 10px 2px;background:#fff;color:#1450b2;box-shadow:0 4px 14px #17325a12;padding:4px 8px;font-size:11px;font-weight:600;line-height:1.2;white-space:nowrap;opacity:0;transform:translateY(4px) scale(.9);pointer-events:none}@media all{.is-greeting .greeting-avatar{animation:avatar-peek 3.8s cubic-bezier(.22,.7,.2,1) both}.is-greeting .avatar-hello{animation:avatar-say-hi 3.8s ease both}}@keyframes avatar-peek{0%,8%{transform:translateY(110%);opacity:0}22%{transform:translateY(-3px) rotate(-3deg);opacity:1}30%,63%{transform:translateY(0) rotate(0);opacity:1}70%{transform:translateY(-2px) rotate(3deg);opacity:1}88%,to{transform:translateY(110%);opacity:0}}@keyframes initials-hide{0%,8%,92%,to{opacity:1}18%,80%{opacity:0}}@keyframes avatar-say-hi{0%,25%,78%,to{opacity:0;transform:translateY(4px) scale(.9)}35%,66%{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:760px){.avatar-window{top:-15px;left:-8px;right:-8px}.avatar-hello{top:-13px;font-size:10px;padding:3px 6px}}@media all{.is-greeting .greeting-avatar{animation:avatar-pop-3d 3.8s cubic-bezier(.22,.7,.2,1) both;transform-origin:50% 90%;filter:drop-shadow(0 3px 2px #17325a24)}.is-greeting .avatar-hello{animation:avatar-bubble-pop 3.8s ease both}}@keyframes avatar-pop-3d{0%,6%{transform:translateY(110%) scale(.65,.85);opacity:0}19%{transform:translateY(-5px) scale(1.05,1.08) rotate(-7deg);opacity:1}27%{transform:translateY(2px) scale(1.06,.94) rotate(3deg);opacity:1}36%{transform:translateY(-1px) scale(1) rotate(-4deg);opacity:1}46%{transform:translateY(0) scale(1) rotate(4deg);opacity:1}56%{transform:translateY(-1px) scale(1) rotate(-3deg);opacity:1}66%{transform:translateY(0) scale(1) rotate(0);opacity:1}75%{transform:translateY(-4px) scale(1.02) rotate(3deg);opacity:1}91%,to{transform:translateY(110%) scale(.7,.9);opacity:0}}@keyframes avatar-bubble-pop{0%,23%,80%,to{opacity:0;transform:translateY(5px) scale(.65)}32%{opacity:1;transform:translateY(-1px) scale(1.12)}40%,65%{opacity:1;transform:translateY(0) scale(1)}}.avatar-preload{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.avatar-rig{overflow:visible}.is-ready .avatar-rig{transform:translateY(0) scale(1);opacity:1}.is-ready .avatar-initials{opacity:0}.avatar-head{transform-origin:670px 850px}.avatar-hand{transform-origin:190px 935px}@media all{.is-greeting .avatar-head{animation:avatar-head-nod 4.8s ease-in-out both}.is-greeting .avatar-hand{animation:avatar-hand-wave 4.8s ease-in-out both}.is-greeting .avatar-hello{animation-duration:4.8s}.is-greeting .avatar-rig{animation:avatar-rig-peek 4.8s cubic-bezier(.4,0,.2,1) both}.is-greeting.is-replaying .avatar-rig{animation-name:avatar-rig-replay}}@keyframes avatar-head-nod{0%,22%,76%,to{transform:rotate(0)}34%{transform:rotate(-3deg)}46%{transform:rotate(2deg)}58%{transform:rotate(-2deg)}68%{transform:rotate(0)}}@keyframes avatar-hand-wave{0%,23%,76%,to{transform:rotate(0)}32%{transform:rotate(-12deg)}41%{transform:rotate(10deg)}50%{transform:rotate(-12deg)}59%{transform:rotate(10deg)}68%{transform:rotate(0)}}@keyframes avatar-rig-peek{0%{transform:translateY(110%) scale(.94);opacity:0}26%{transform:translateY(-2px) scale(1.015);opacity:1}40%,to{transform:translateY(0) scale(1);opacity:1}}@keyframes avatar-rig-replay{0%,44%,to{transform:translateY(0) scale(1);opacity:1}12%{transform:translateY(65%) scale(.96);opacity:1}32%{transform:translateY(-3px) scale(1.015);opacity:1}}.technology-showcase{margin:0 0 36px;padding:30px 24px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(125deg,#e4f2ffb3,#fffc)}.technology-showcase h3{margin:0 0 26px;font-size:22px;letter-spacing:-.6px;color:#101a37}.technology-showcase h3>span{color:var(--blue)}.technology-category+.technology-category{margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}.technology-category h4{margin:0 0 18px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#415778}.technology-logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:24px 12px;padding:0;margin:0;list-style:none}.technology-logos li{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:0;min-height:70px;text-align:center}.technology-logos img{width:38px;height:38px;object-fit:contain}.technology-logos li>span{font-size:11px;line-height:1.4;color:var(--muted)}.technology-logos li>.technology-name-only{font-size:14px;font-weight:600;color:#34486a;max-width:100%;overflow-wrap:anywhere}@media(hover:hover){.technology-logos img{transition:transform .25s ease}.technology-logos li:hover img{transform:translateY(-3px)}}@media(max-width:760px){.technology-showcase{padding:24px 16px;border-radius:18px}.technology-showcase h3{font-size:20px}.technology-logos{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 8px}.technology-logos img{width:32px;height:32px}.technology-logos li>span{font-size:10px}}.technology-showcase{padding:0;border:0;background:none;border-radius:0}.technology-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.technology-category{padding:26px 22px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 8px 26px #17325a05}.technology-category+.technology-category{margin:0;padding:26px 22px;border-top:1px solid var(--line)}.technology-category h4{margin-bottom:22px}.technology-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 12px}.technology-logos li{min-height:78px}.technology-logos img.technology-brand-logo{width:86px;max-width:100%;height:38px}@media(hover:hover){.technology-category{transition:transform .25s ease,box-shadow .25s ease}.technology-category:hover{transform:translateY(-3px);box-shadow:0 14px 35px #17325a0b}}@media(max-width:760px){.technology-showcase{padding:0}.technology-categories{grid-template-columns:1fr;gap:16px}.technology-category,.technology-category+.technology-category{padding:24px 18px;border-radius:20px}.technology-logos li>span{font-size:11px}}.technology-brand-okta,.technology-brand-okta-workflows{filter:brightness(0)}.technology-brand-midpoint{filter:brightness(0) saturate(100%)}.technology-category-accent{background:#eaf2ff;border-color:#d7e5fa}.credential-verification{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;color:#075bfa}.credential-verification.pending{color:var(--muted)}.technology-categories{grid-template-columns:minmax(0,1fr)}.technology-logos{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}@media(max-width:760px){.technology-logos{grid-template-columns:repeat(3,minmax(0,1fr))}}.motion-revealing{transition:none!important}.public-project.motion-project{transition:box-shadow .3s ease,border-color .3s ease,background .3s ease}.public-project.motion-project:hover{transform:none}.site-header{top:16px;width:min(1120px,calc(100% - 40px));margin:16px auto 0;border:1px solid rgba(255,255,255,.65);border-radius:999px;background:#e1e9f694;-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%);box-shadow:0 8px 32px #14264b14,inset 0 1px #ffffffb0}.site-header .nav-wrap{width:100%;min-height:76px;padding:8px 14px 8px 20px;gap:18px}.site-header nav{gap:20px;align-items:center}.site-header nav a[href="#contact"]{padding:14px 23px;background:#fff;border-radius:999px;color:#101a37;box-shadow:0 3px 12px #14264b0a}.site-header nav a[href="#contact"]:after{display:none}.site-header .brand strong{font-size:17px}.site-header .brand small{font-size:8px;letter-spacing:1.7px}.hero-copy>*{animation:none!important}@media(max-width:1000px)and (min-width:761px){.site-header nav{gap:13px;font-size:12px}.site-header .brand small{display:none}.site-header .brand strong{font-size:15px}}@media(max-width:760px){.site-header{top:10px;width:calc(100% - 24px);margin-top:10px}.site-header .nav-wrap{min-height:70px;padding:6px 18px 6px 12px}.site-header .brand strong{font-size:14px}.site-header .brand small{font-size:6px;letter-spacing:1px}.site-header nav{top:calc(100% + 10px);border:1px solid #ffffffb0;border-radius:26px;background:#f0f5fff0;padding:16px;align-items:stretch;gap:2px;box-shadow:0 15px 40px #14264b1c}.site-header nav a{padding:13px 16px}.site-header nav.open{max-height:calc(100dvh - 110px)}.site-header.menu-open{background:#ebf2fdf2;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}}.site-header{background:#adbbd37a;box-shadow:0 8px 24px #14264b2e,inset 0 1px #ffffffa6}html.lenis,html.lenis body{height:auto}html.lenis{scroll-behavior:auto!important}.site-header,.site-header.menu-open{background:#414141c4;color:#fff;border-color:#ffffff2e;box-shadow:0 9px 28px #0003,inset 0 1px #ffffff1f}.site-header .brand small{color:#ffffffc7}.site-header nav a:hover,.site-header nav a:focus-visible{color:#fff}.site-header nav a:after{background:#fff}.site-header nav a[href="#contact"],.site-header nav a[href="#contact"]:hover{color:#191919;background:#fff}.site-header :focus-visible{outline-color:#fff}@media(max-width:760px){.site-header nav{background:#414141f5;border-color:#ffffff2e;color:#fff}}:root{--card-blue:#075bfa;--card-frame:#f3f3f4}.public-project-grid,.tool-grid{background:var(--card-frame);padding:10px;border:1px solid #e7e7ea;border-radius:38px;gap:10px}.public-project{border:0;border-radius:30px;background:#fff;padding:10px 26px 26px;box-shadow:none}.public-project .project-top{margin:0 -16px 24px;padding:24px 22px;border-radius:25px;background:var(--card-blue);color:#fff;min-height:100px}.public-project .project-category{color:#fff}.public-project .project-top .icon-box{background:#ffffff1f;color:#fff}.public-project:hover .project-top .icon-box{background:#ffffff30;color:#fff}.public-project h3{font-size:24px}.tool-card{background:#fff;border:0;border-radius:30px;padding:28px}.tool-card .icon-box{background:var(--card-blue);color:#fff;border-radius:16px}.technology-category,.technology-category+.technology-category{padding:9px;background:var(--card-frame);border:1px solid #e7e7ea;border-radius:38px;box-shadow:none}.category-banner{display:flex;align-items:center;gap:28px;padding:28px 32px;min-height:140px;border-radius:30px;background:var(--card-blue);color:#fff;margin-bottom:9px}.category-number{font-size:72px;font-weight:600;line-height:1;letter-spacing:-.07em}.category-banner h4{margin:0 0 8px;color:#fff;text-transform:none;letter-spacing:-.035em;font-size:25px}.category-banner p{margin:0;color:#ffffffd9;font-size:14px}.technology-category .technology-logos{background:#fff;border-radius:30px;padding:26px 20px;margin:0;gap:22px}.credential-list{padding:9px;background:var(--card-frame);border:1px solid #e7e7ea;border-radius:38px}.credential,.credential:last-child{padding:26px;background:#fff;border:0;border-radius:30px;margin-bottom:9px}.credential:last-child{margin-bottom:0}.credential .icon-box{background:var(--card-blue);color:#fff}.timeline-card{border:8px solid var(--card-frame);border-radius:32px;background:#fff;box-shadow:0 0 0 1px #e7e7ea;padding:25px}@media(max-width:760px){.public-project-grid,.tool-grid,.credential-list{padding:7px;border-radius:29px;gap:9px}.public-project,.tool-card,.credential{border-radius:23px}.public-project{padding:8px 22px 24px}.public-project .project-top{margin-inline:-14px;border-radius:20px;padding:20px}.technology-category,.technology-category+.technology-category{padding:7px;border-radius:29px}.category-banner{border-radius:23px;padding:23px 20px;gap:20px;min-height:116px}.category-number{font-size:54px}.category-banner h4{font-size:21px}.category-banner p{font-size:12px}.technology-category .technology-logos{border-radius:23px;padding:22px 10px;gap:18px 10px}.credential{padding:22px 18px}.timeline-card{padding:20px 15px;border-width:6px;border-radius:26px}}:is(.tool-card,.credential):hover .icon-box{background:var(--card-blue);color:#fff}.public-project:focus-within .project-top .icon-box{background:#ffffff30;color:#fff}.public-project.motion-project{animation:none;translate:none}@keyframes track-fill{0%{scale:1 0}to{scale:1 1}}@media all{@supports (animation-timeline:view()){.timeline:after{content:"";position:absolute;top:0;left:50%;width:1px;height:100%;transform:translate(-50%);transform-origin:top;background:var(--blue);scale:1 0;animation:track-fill linear both;animation-timeline:view();animation-range:cover 8% cover 62%}@media(max-width:760px){.timeline:after{left:7px}}}html[data-motion] :is(.tool-card,.technology-category,.timeline-card,.credential,.public-project-grid) :is(.chips span,.technology-logos li,.timeline-card ul li){opacity:0;translate:0 7px;transition-property:opacity,translate;transition-duration:.55s;transition-timing-function:ease,cubic-bezier(.22,1,.36,1)}html[data-motion] :is(.is-visible,.is-visible .public-project) :is(.chips span,.technology-logos li,.timeline-card ul li){opacity:1;translate:0 0}:is(.chips span,.technology-logos li,.timeline-card ul li):nth-child(2){transition-delay:45ms}:is(.chips span,.technology-logos li,.timeline-card ul li):nth-child(3){transition-delay:90ms}:is(.chips span,.technology-logos li,.timeline-card ul li):nth-child(4){transition-delay:135ms}:is(.chips span,.technology-logos li,.timeline-card ul li):nth-child(5){transition-delay:.18s}:is(.chips span,.technology-logos li,.timeline-card ul li):nth-child(6){transition-delay:225ms}:is(.chips span,.technology-logos li,.timeline-card ul li):nth-child(7){transition-delay:.26s}:is(.chips span,.technology-logos li):nth-child(n+8){transition-delay:.29s}.metrics strong{font-variant-numeric:tabular-nums}}@media(hover:hover)and (pointer:fine){.chips span{transition-property:opacity,translate,background,color;transition-duration:.55s,.55s,.25s,.25s;transition-timing-function:ease,cubic-bezier(.22,1,.36,1),ease,ease}.chips span:hover{background:#dceaff;color:#184fb0}.technology-logos li{transition:translate .3s cubic-bezier(.22,1,.36,1)}.technology-logos li:hover{translate:0 -3px}.socials a,.socials button{transition:background .25s ease,border-color .25s ease,translate .25s cubic-bezier(.22,1,.36,1)}.socials a:hover,.socials button:hover{translate:0 -2px;border-color:#a6c6fa;background:#fff}.credential time{transition:color .25s ease}.credential:hover time{color:var(--blue)}}.credential-badge{width:56px;height:56px;object-fit:contain;flex-shrink:0}@media(max-width:760px){.credential-badge{width:42px;height:42px}}.learning-track{position:relative;list-style:none;margin:30px 0 0;padding:0}.learning-track:before{content:"";position:absolute;top:12px;bottom:12px;left:104px;width:1px;background:#8db6ff}.learning-item{position:relative;display:grid;grid-template-columns:84px 1fr;gap:40px;align-items:center;margin-bottom:14px}.learning-item:last-child{margin-bottom:0}.learning-item:before{content:"";position:absolute;left:104px;top:50%;width:14px;height:14px;transform:translate(-50%,-50%);border:4px solid #f0f5fc;border-radius:50%;background:var(--blue);box-shadow:0 0 0 1px #b4cdf4;z-index:1}.learning-year{text-align:right;font-size:13px;color:#3c5480;white-space:nowrap}.learning-card.credential{margin:0;width:100%}@media(max-width:760px){.learning-track{margin-top:22px}.learning-track:before{left:7px}.learning-item{grid-template-columns:1fr;gap:8px;padding-left:30px;margin-bottom:12px}.learning-item:before{left:7px;top:22px}.learning-year{text-align:left;font-size:12px}}.word{display:inline-block;opacity:0;translate:0 .45em;transition:opacity .55s ease,translate .6s cubic-bezier(.22,1,.36,1)}.words-in .word,.is-visible .word,h2.is-visible .word{opacity:1;translate:0 0}@media(hover:hover)and (pointer:fine){.tool-card,.learning-card,.technology-category{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s ease}.tool-card:hover,.learning-card:hover,.technology-category:hover{box-shadow:0 20px 48px #17325a14}}@keyframes bg-drift{0%,to{transform:scale(1.04) translateZ(0)}50%{transform:scale(1.1) translate3d(0,-1.5%,0)}}@keyframes sheen{0%,to{opacity:.5;transform:translate3d(-6%,0,0)}50%{opacity:.9;transform:translate3d(6%,0,0)}}.journey-section:before{animation:bg-drift 30s ease-in-out infinite both}.credentials-section{position:relative;isolation:isolate;overflow:hidden}.credentials-section:after{content:"";position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;z-index:-1;pointer-events:none;background:radial-gradient(42% 46% at 22% 28%,#dbe9ff 0%,transparent 62%),radial-gradient(38% 42% at 78% 72%,#e4efff 0%,transparent 60%);animation:sheen 24s ease-in-out infinite both}html{overflow-x:clip}.contact-feedback{min-height:18px;margin:12px 0 0!important;font-size:12px;color:#1c55a0}.contact-feedback:empty{min-height:0;margin:0!important}.socials button{cursor:pointer;color:inherit}.location a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:#c9d5e8}.location a:hover{color:var(--blue);text-decoration-color:currentColor}@media(max-width:760px){.location a{display:inline-flex;align-items:center;min-height:40px;padding:2px 0}footer a{min-height:40px;align-items:center}footer{gap:10px}}
