@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/hanken-grotesk-latin-400-normal-BG6hkEXj.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-400-normal-CjyVwvJV.woff) format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/hanken-grotesk-latin-500-normal-DrDcrrxK.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-500-normal-Bo-NxEKf.woff) format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/hanken-grotesk-latin-600-normal-CIXX6EOa.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-600-normal-NEn2C4Q3.woff) format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/hanken-grotesk-latin-700-normal-CeQ8H3UY.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-700-normal-6IGCzoPh.woff) format("woff")}@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")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@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")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff) format("woff")}:root{--surface-low: #f2f4f6;--outline: #d8dbe5}html{scroll-behavior:smooth}.app-shell{min-height:100vh;overflow-x:hidden;background-color:#f7f9fb;background-image:linear-gradient(rgba(0,62,167,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,62,167,.035) 1px,transparent 1px);background-size:40px 40px}.site-nav{border-bottom:1px solid var(--outline);background:#fffffff0!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.site-container.MuiContainer-root{width:100%;padding-inline:clamp(1rem,3vw,3.5rem)}.language-select .MuiOutlinedInput-root{border-radius:999px;background:#fffc;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:600}.language-select .MuiSelect-select{display:flex;align-items:center;padding-block:9px}.section-anchor{scroll-margin-top:82px}.section-space{padding-block:clamp(3.5rem,5.5vw,5rem)}.hero-section{padding-block:clamp(7rem,9vw,9rem) clamp(4rem,6vw,5.5rem)}.portrait-wrap{position:relative;width:clamp(290px,32vw,460px);aspect-ratio:1}.portrait-glow{position:absolute;top:-7%;right:-7%;bottom:-7%;left:-7%;border-radius:50%;background:#003ea71f;filter:blur(34px)}.portrait.MuiAvatar-root{width:100%;height:100%;border:5px solid #fff;box-shadow:0 18px 45px #191c1e2e;filter:grayscale(1);-webkit-user-select:none;user-select:none;pointer-events:none}.portrait img{object-position:50% 21%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.portrait-badge.MuiPaper-root{position:absolute;z-index:2;display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--outline);border-radius:16px}.badge-code{top:0;right:-12px}.badge-server{bottom:13%;left:-20px}.timeline{position:relative;max-width:1120px;margin-inline:auto}.timeline:before{content:"";position:absolute;top:24px;bottom:24px;left:50%;width:2px;background:#d5e3fc;transform:translate(-1px)}.timeline-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:start;margin-bottom:48px}.timeline-row:last-child{margin-bottom:0}.timeline-meta{grid-column:1;padding:16px 26px 0 0;text-align:right}.timeline-location{justify-content:flex-end;margin-top:4px}.timeline-dot{position:relative;z-index:1;grid-column:2;justify-self:center;width:16px;height:16px;margin-top:24px;border:4px solid #f7f9fb;border-radius:50%;background:#003ea7;box-sizing:content-box}.timeline-dot.secondary{background:#515f74}.timeline-card{grid-column:3;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.timeline-card:hover{border-color:#003ea759;box-shadow:0 12px 34px #191c1e17;transform:translateY(-2px)}.timeline-reverse .timeline-meta{grid-column:3;padding:16px 0 0 26px;text-align:left}.timeline-reverse .timeline-location{justify-content:flex-start}.timeline-reverse .timeline-card{grid-column:1;grid-row:1}.projects-section{position:relative;border-block:1px solid rgba(216,219,229,.8);background:linear-gradient(110deg,#f2f4f6,#f7f9fb 60%,#edf2fb)}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.skill-card.MuiPaper-root{min-width:0;max-width:100%;overflow:hidden;padding:30px;border-radius:20px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease}.skill-card.MuiPaper-root:hover,.skill-card.MuiPaper-root:focus-visible{transform:translateY(-5px);border-color:#003ea773;background:#fbfcff;box-shadow:0 16px 38px #191c1e1c;outline:none}.skill-chips{display:flex;min-width:0;max-width:100%;flex-wrap:wrap;gap:10px}.skill-chips .MuiChip-root{max-width:100%;height:auto;min-height:32px}.skill-chips .MuiChip-label{display:block;padding-block:6px;overflow-wrap:anywhere;white-space:normal}.project-card{overflow:hidden;background:#fff;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.project-card:hover{transform:translateY(-3px);border-color:#003ea759;box-shadow:0 18px 44px #191c1e1a}.project-visual{position:relative;display:grid;place-items:center;min-height:180px;overflow:hidden;color:#003ea729;border-bottom:1px solid var(--outline);background-color:var(--surface-low);background-image:linear-gradient(rgba(0,62,167,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,62,167,.05) 1px,transparent 1px);background-size:32px 32px}.project-visual:after{content:"";position:absolute;top:38%;right:0;bottom:0;left:0;background:linear-gradient(transparent,#fff)}.project-label{position:absolute!important;z-index:1;bottom:18px;left:24px}.contact-panel.MuiPaper-root{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:clamp(2rem,6vw,5rem);overflow:hidden;padding:clamp(2rem,5vw,4.5rem);color:#fff;border-radius:28px;background:radial-gradient(circle at 95% 0%,rgba(0,83,218,.42),transparent 38%),#191c1e}.contact-copy{display:flex;flex-direction:column;justify-content:space-between;gap:48px}.contact-icon.MuiAvatar-root,.social-button.MuiIconButton-root{color:#fff;border:1px solid rgba(255,255,255,.22);background:#ffffff14}.contact-form.MuiPaper-root{display:flex;flex-direction:column;gap:18px;padding:clamp(1.25rem,3vw,2rem);border-radius:16px;background:#fff}.site-footer{border-top:1px solid var(--outline);background:var(--surface-low);padding-block:clamp(3rem,5vw,4.5rem)}.footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:32px}.footer-brand{font-size:1.45rem!important;font-weight:700!important}.footer-links{justify-self:center;font-size:1rem}.footer-copyright{justify-self:end;text-align:right;font-size:.95rem!important}@media (max-width: 899px){.timeline:before{left:11px}.timeline-row,.timeline-reverse{grid-template-columns:22px minmax(0,1fr);gap:18px;margin-bottom:44px}.timeline-dot,.timeline-reverse .timeline-dot{grid-column:1;grid-row:1;width:12px;height:12px;margin-top:7px;border-width:3px}.timeline-meta,.timeline-reverse .timeline-meta{grid-column:2;grid-row:1;padding:0 0 12px;text-align:left}.timeline-location,.timeline-reverse .timeline-location{justify-content:flex-start}.timeline-card,.timeline-reverse .timeline-card{grid-column:2;grid-row:2}.contact-panel.MuiPaper-root{grid-template-columns:1fr}.skills-grid{grid-template-columns:1fr;gap:24px}.footer-grid{grid-template-columns:1fr;justify-items:center;gap:24px;text-align:center}.footer-links,.footer-copyright{justify-self:center;text-align:center}}@media (max-width: 599px){.section-space{padding-block:48px}.hero-section{padding-block:96px 52px}.portrait-wrap{width:min(76vw,310px)}.portrait-badge.MuiPaper-root{width:44px;height:44px;border-radius:13px}.badge-code{right:-6px}.badge-server{left:-8px}.contact-panel.MuiPaper-root{margin-inline:-8px;border-radius:20px}.contact-copy{gap:36px}.skills-container.MuiContainer-root{padding-inline:12px}.skill-card.MuiPaper-root{width:100%;padding:20px 18px;border-radius:18px}.skill-chips{gap:8px}.footer-links{flex-wrap:wrap;justify-content:center}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}::selection{color:#fff;background:#003ea7}
