@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--base:#050505;--surface:#0d0d0d;--surface-2:#151515;--ink:#f5f5f5;--muted:#a3a3a3;--faint:gray;--line:#292929;--section-line:#505050;--accent:#fff;--accent-soft:#202020;--code:#000;--display:"DM Sans", "Segoe UI", sans-serif;--mono:"IBM Plex Mono", "Cascadia Code", Consolas, monospace;--s-1:.5rem;--s-2:.75rem;--s-3:1rem;--s-4:1.5rem;--s-5:2rem;--s-6:3rem;--s-7:5rem;--s-8:7rem;--radius:4px;--control-height:2.75rem;--control-radius:10px;--shadow:0 18px 42px #1e28251a;--fast:.18s;--normal:.24s}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--base:#fff;--surface:#fafafa;--surface-2:#f1f1f1;--ink:#0a0a0a;--muted:#444;--faint:#303030;--line:#909090;--section-line:#9a9a9a;--accent:#111;--accent-soft:#ededed;--code:#f7f7f7;--shadow:0 18px 42px #00000038}html{scrollbar-gutter:stable;scroll-behavior:smooth;scrollbar-width:auto;scrollbar-color:var(--section-line) transparent;scroll-padding-top:6rem}*{scrollbar-width:auto;scrollbar-color:var(--section-line) transparent}::-webkit-scrollbar{width:.7rem;height:.7rem}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--section-line);background-clip:padding-box;border:.2rem solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--ink);background-clip:padding-box}*,:before,:after{box-sizing:border-box}body{background-color:var(--base);min-width:320px;color:var(--ink);font-family:var(--display);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;transition:background-color var(--normal), color var(--normal);background-image:linear-gradient(#7f7f7f33 1px,#0000 1px),linear-gradient(90deg,#7f7f7f33 1px,#0000 1px);background-size:50px 50px;margin:0;overflow-x:hidden}button,input,textarea{font:inherit}button{cursor:pointer}:is(.hero-link-button,.text-link,.filter-button,.project-link,.modal-link,.contact-link,.theme-toggle,.mobile-menu-toggle,.certificate-card,.modal-close){transition:transform var(--fast) ease, background-color var(--fast) ease, border-color var(--fast) ease, color var(--fast) ease, box-shadow var(--fast) ease}:is(.hero-link-button,.text-link,.filter-button,.project-link,.modal-link,.contact-link,.theme-toggle,.mobile-menu-toggle,.certificate-card,.modal-close):hover{transform:translateY(-2px)}:is(.hero-link-button,.text-link,.filter-button,.project-link,.modal-link,.contact-link,.theme-toggle,.mobile-menu-toggle,.certificate-card,.modal-close):active{transform:translateY(0)scale(.98)}:is(.hero-link-button,.text-link,.filter-button,.project-link,.modal-link,.contact-link,.theme-toggle,.mobile-menu-toggle,.certificate-card,.modal-close):focus-visible{outline:2px solid var(--accent);outline-offset:3px}:is(.hero-link-button,.text-link,.filter-button,.project-link,.modal-link,.contact-link,.theme-toggle,.mobile-menu-toggle,.certificate-card,.modal-close){position:relative;overflow:hidden}:is(.hero-link-button,.text-link,.filter-button,.project-link,.modal-link,.contact-link,.theme-toggle,.mobile-menu-toggle,.certificate-card,.modal-close):after{content:"";background:color-mix(in srgb, var(--base) 34%, transparent);opacity:0;pointer-events:none;width:22%;transition:opacity var(--fast) ease, transform .72s cubic-bezier(.16, 1, .3, 1);position:absolute;inset:-80% auto -80% -35%;transform:rotate(18deg)translate(-240%)}:is(.hero-link-button,.text-link,.filter-button,.project-link,.modal-link,.contact-link,.theme-toggle,.mobile-menu-toggle,.certificate-card,.modal-close):hover:after{opacity:1;transform:rotate(18deg)translate(680%)}.modal-link-download{transition:transform var(--fast) ease, background-color var(--fast) ease, border-color var(--fast) ease, color var(--fast) ease, box-shadow var(--fast) ease;position:relative;overflow:hidden}.modal-link-download:hover{transform:translateY(-2px)}.modal-link-download:active{transform:translateY(0)scale(.98)}.modal-link-download:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.modal-link-download:after{content:"";background:color-mix(in srgb, var(--base) 34%, transparent);opacity:0;pointer-events:none;width:22%;transition:opacity var(--fast) ease, transform .72s cubic-bezier(.16, 1, .3, 1);position:absolute;inset:-80% auto -80% -35%;transform:rotate(18deg)translate(-240%)}.modal-link-download:hover:after{opacity:1;transform:rotate(18deg)translate(680%)}img{max-width:100%;display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}body:before{content:"";pointer-events:none;background:linear-gradient(90deg, var(--base) 0, transparent 12%, transparent 88%, var(--base) 100%);opacity:.65;z-index:-1;position:fixed;inset:0}#root{min-height:100svh}.nav-link-button:hover,[data-theme=light] .nav-link-button:hover{color:var(--ink)}.language-select-wrapper:has(.language-select-trigger:hover):after{color:var(--base);transform:translateY(.1rem)rotate(225deg)}.language-select-wrapper:has(.language-select-trigger:focus-visible):after{color:var(--base);transform:translateY(.1rem)rotate(225deg)}.language-select-wrapper:has(.language-select-trigger[aria-expanded=true]):after{color:var(--base);transform:translateY(.1rem)rotate(225deg)}@media (width<=900px){.navbar{background:color-mix(in srgb, var(--base) 94%, transparent);border-color:var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.navbar-container,.main-content,.footer-container{width:min(100% - 2rem,680px)}.navbar-container{gap:var(--s-2);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.navbar-brand{min-width:0}.navbar-center{padding:var(--s-2);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface);box-shadow:var(--shadow);gap:var(--s-2);opacity:0;visibility:hidden;pointer-events:none;transform-origin:top;transition:opacity var(--normal) ease, transform var(--normal) cubic-bezier(.16, 1, .3, 1), visibility 0s linear var(--normal);flex-direction:column;display:flex;position:absolute;top:calc(100% + .5rem);left:1rem;right:1rem;transform:translateY(-.75rem)scale(.98)}.navbar-center.open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)scale(1)}.navbar-links{flex-direction:column;align-items:stretch;gap:0;width:100%;display:flex}.nav-link-button{text-align:left;text-align:center;justify-content:center;width:100%;padding:.7rem;display:flex}.navbar-center.open .navbar-link{animation:mobile-nav-item-in var(--normal) both;box-sizing:border-box;width:100%}.navbar-center.open .navbar-link:nth-child(2){animation-delay:30ms}.navbar-center.open .navbar-link:nth-child(3){animation-delay:60ms}.navbar-center.open .navbar-link:nth-child(4){animation-delay:90ms}.navbar-center.open .navbar-link:nth-child(5){animation-delay:.12s}.navbar-center.open .navbar-link:nth-child(6){animation-delay:.15s}.mobile-menu-toggle{z-index:20;font-size:1.2rem;display:block;position:relative}.hamburger-line{width:1.2rem;height:2px;transition:transform var(--normal) cubic-bezier(.16, 1, .3, 1), opacity var(--fast) ease;background:currentColor;border-radius:999px;position:absolute;left:50%;transform:translate(-50%)}.hamburger-line:first-child{transform:translate(-50%,-.35rem)}.hamburger-line:nth-child(3){transform:translate(-50%,.35rem)}.mobile-menu-toggle[aria-expanded=true] .hamburger-line:first-child{transform:translate(-50%)rotate(45deg)}.mobile-menu-toggle[aria-expanded=true] .hamburger-line:nth-child(2){opacity:0;transform:translate(-50%)scaleX(.4)}.mobile-menu-toggle[aria-expanded=true] .hamburger-line:nth-child(3){transform:translate(-50%)rotate(-45deg)}.language-select-wrapper{justify-content:center;display:flex}.navbar-actions{gap:var(--s-2);position:static}}@media (width<=520px){.navbar-container{width:calc(100% - 1.5rem)}.language-select-trigger{min-width:4.25rem;padding-inline:.5rem}}@keyframes mobile-nav-item-in{0%{opacity:0;transform:translate(-.5rem)}to{opacity:1;transform:translate(0)}}@media (width>=1025px){.hero-container{grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr)}}@keyframes settle{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=520px){.text-link{align-self:flex-start}}@keyframes graph-pulse{50%{opacity:.45}}@media (width<=1024px){.experience-layout{gap:var(--s-6);grid-template-columns:1fr}.timeline{border-left:none;border-top:1px solid var(--line)}.timeline-item{padding:var(--s-3) 0;border-top:1px solid var(--line);grid-template-columns:1fr;gap:.4rem}.timeline-item:before{display:none}.timeline-period{margin-bottom:-.5rem}.education-item{grid-template-columns:1fr;gap:.2rem}}@media (width<=520px){.experience-section{padding:var(--s-6) 0}.timeline-item h3,.education-item h3{font-size:.95rem}.timeline-item p,.education-item p{font-size:.75rem}.profile-facts span{padding:.3rem .45rem;font-size:.6rem}}@media (width<=1024px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.skills-grid{grid-template-columns:repeat(2,1fr)}.skill-category{min-height:10rem}}@media (width<=520px){.skills-grid{grid-template-columns:1fr}.skill-category{min-height:auto}.category-header{gap:var(--s-2);grid-template-columns:1fr}.category-description{grid-column:1}}.icon-white,[data-theme=light] .icon-black{display:block}[data-theme=light] .icon-white,[data-theme=light] .project-link:hover .icon-black{display:none}[data-theme=light] .project-link:hover .icon-white,[data-theme=dark] .project-link:hover .icon-black{display:block}@media (width<=1024px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.projects-grid{grid-template-columns:repeat(2,1fr)}.project-card,.project-card-featured{min-height:19rem}}@media (width<=520px){.projects-header .section-heading-row{text-align:left;align-items:flex-start}.projects-grid{grid-template-columns:1fr}.project-card,.project-card-featured{min-height:auto}.project-name{font-size:1.3rem}.project-description{max-width:none}}@media (width<=1024px){.certificate-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.certificate-grid{grid-template-columns:repeat(2,1fr)}.certificate-card{text-align:center;gap:var(--s-2);flex-direction:column;min-height:5rem}.certificate-copy{text-align:center}}@media (width<=520px){.certificates-section .section-heading-row{text-align:left;align-items:flex-start}.certificate-grid{grid-template-columns:1fr}.certificate-card{text-align:left;gap:var(--s-3);flex-direction:row}.certificate-copy{text-align:left}}@media (width<=1024px){.contact-section .section-heading-row{text-align:left;justify-content:flex-start;align-items:flex-start}.contact-content{gap:var(--s-6);grid-template-columns:1fr}.contact-side{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:var(--s-4)}}@media (width<=520px){.contact-content{padding:var(--s-4)}.contact-slogan{max-width:none;font-size:clamp(1.1rem,4vw,1.8rem)}.contact-link{text-align:center;flex:45%;justify-content:center}}@keyframes footer-confirmation-in{0%{opacity:0;transform:translateY(.35rem)scale(.5)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=900px){.footer-simple{flex-direction:column;align-items:flex-start}.footer-simple-links{justify-content:flex-start;width:100%}}@media (width<=520px){.footer-bottom{flex-direction:column;align-items:flex-start}.footer-simple-links{gap:var(--s-2);flex-direction:column}.footer-confirmation-message{right:10rem}}.icon-white,[data-theme=light] .icon-black{display:block}[data-theme=light] .icon-white,[data-theme=light] .modal-link:hover .icon-black{display:none}[data-theme=light] .modal-link:hover .icon-white,[data-theme=dark] .modal-link:hover .icon-black{display:block}@media (width<=520px){.project-modal-overlay{padding:var(--s-2)}.project-modal{width:calc(100% - var(--s-2));max-height:calc(100svh - var(--s-4));padding:var(--s-1);border-radius:var(--radius)}.modal-content{padding:var(--s-4)}.modal-title{font-size:2rem}.modal-footer{padding:var(--s-3) var(--s-4)}}@media (width<=1024px){.certificate-modal{width:calc(100vw - 2rem)}}@media (width<=900px){.certificate-modal{width:calc(100vw - 1rem);height:calc(100svh - 1rem);padding:var(--s-1);grid-template-columns:1fr;overflow:auto}.certificate-viewer{height:58svh}.certificate-modal-copy{padding:var(--s-4)}}@media (width<=520px){.certificate-modal{width:calc(100vw - var(--s-4));height:calc(100svh - var(--s-4));padding:var(--s-1);border-radius:var(--radius)}.certificate-viewer{height:50svh}.certificate-modal-copy{padding:var(--s-3)}.certificate-modal-copy h2{font-size:1.75rem}}@media (width<=1024px){.main-content,.footer-container{width:min(100% - 2rem,900px)}.skills-grid,.projects-grid,.certificate-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.main-content,.footer-container{width:min(100% - 2rem,680px)}.hero-section{padding-top:7rem}#main-content>section:not(.hero-section){padding-block:var(--s-6)}.contact-content{gap:var(--s-6)}.hero-name{max-width:none}.hero-visual{justify-items:stretch}.ai-network-graph{width:100%;transform:none}.skills-grid,.projects-grid,.certificate-grid{grid-template-columns:repeat(2,1fr)}.experience-layout{gap:var(--s-6);grid-template-columns:1fr}.timeline{border-left:none;border-top:1px solid var(--line)}.timeline-item{padding:var(--s-3) 0;border-top:1px solid var(--line);grid-template-columns:1fr;gap:.4rem}.timeline-item:before{display:none}.timeline-period{margin-bottom:-.5rem}.education-item{grid-template-columns:1fr;gap:.2rem}.footer-simple{flex-direction:column;align-items:flex-start}.footer-simple-links{justify-content:flex-start}}@media (width<=520px){.main-content,.footer-container{width:100%;padding:0 var(--s-3)}.hero-section{padding-top:6rem;padding-bottom:var(--s-6)}#main-content>section:not(.hero-section){padding-block:var(--s-5)}.hero-name{font-size:clamp(2.8rem,15vw,4rem)}.hero-actions{flex-wrap:wrap;display:flex}.hero-link-button{flex:45%;justify-content:center}.section-heading-row{align-items:start;gap:var(--s-2);flex-direction:column}.skills-grid,.projects-grid,.certificate-grid{grid-template-columns:1fr}.project-card{min-height:19rem}.project-card-featured{min-height:auto}.footer-bottom{flex-direction:column;align-items:flex-start}.modal-content{padding:var(--s-4)}.certificate-modal-copy{padding:var(--s-3)}.certificate-viewer{height:50svh}.contact-content{padding:var(--s-4)}.contact-side{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:var(--s-4)}}.skip-link{left:var(--s-3);z-index:20;padding:var(--s-2) var(--s-3);background:var(--accent);color:var(--base);font:500 .75rem/1 var(--mono);text-decoration:none;position:fixed;top:-4rem}.app{min-height:100svh}.navbar{z-index:10;transition:background-color var(--normal), border-color var(--normal);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.navbar-scrolled{background:color-mix(in srgb, var(--base) 58%, transparent);border-color:color-mix(in srgb, var(--line) 65%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.navbar-container{justify-content:space-between;align-items:center;gap:var(--s-4);width:min(1180px,100% - 3rem);min-height:5rem;margin:auto;display:flex}.brand-button{color:var(--ink);font:600 .9rem var(--mono);background:0 0;border:0;padding:0}.brand-button:before{content:">";color:var(--accent);margin-right:.4rem}.navbar-center{align-items:center;gap:var(--s-4);flex:1;justify-content:center;display:flex}.navbar-actions{align-items:center;gap:var(--s-3);display:flex}.navbar-links{align-items:center;gap:var(--s-4);margin:0;padding:0;list-style:none;display:flex}.nav-link-button{min-height:2.75rem;color:var(--muted);font:500 .75rem var(--mono);text-align:center;transition:color var(--normal) ease;background:0 0;border:0;padding:0;display:flex}.nav-link-button:focus-visible,.brand-button:focus-visible,.mobile-menu-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.nav-link-button:hover,[data-theme=light] .nav-link-button:hover{color:var(--ink)}.theme-toggle{border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface);width:2.75rem;height:2.75rem;color:var(--ink);cursor:pointer;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:var(--accent-soft);border-color:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-icon{width:1.25rem;height:1.25rem;transition:transform var(--normal) cubic-bezier(.34, 1.56, .64, 1);justify-content:center;align-items:center;display:flex}.theme-icon svg{width:100%;height:100%}.theme-icon.sun{opacity:1;transform:rotate(0)scale(1)}.theme-icon.moon{opacity:0;pointer-events:none;position:absolute;transform:rotate(-90deg)scale(.8)}.theme-toggle[data-theme=light] .theme-icon.sun{opacity:0;transform:rotate(90deg)scale(.8)}.theme-toggle[data-theme=light] .theme-icon.moon{opacity:1;transform:rotate(0)scale(1)}.language-select-wrapper{align-items:center;display:flex;position:relative}.language-select-wrapper:after{width:.4rem;height:.4rem;color:var(--muted);content:"";pointer-events:none;transition:transform var(--fast) ease, color var(--fast) ease;border-bottom:1px solid;border-right:1px solid;position:absolute;top:50%;right:.8rem;transform:translateY(-.2rem)rotate(45deg)}.language-select-trigger{min-height:var(--control-height);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--base);color:var(--ink);font:600 .75rem var(--mono);cursor:pointer;appearance:none;text-align:center;min-width:7rem;box-shadow:0 2px 0 var(--line);transition:background var(--normal) ease, color var(--normal) ease, border-color var(--normal) ease, box-shadow var(--normal) ease;padding:0 2rem 0 .9rem}.language-select-trigger:hover,.language-select-trigger:focus-visible,.language-select-trigger[aria-expanded=true]{border-color:var(--ink);background:var(--ink);color:var(--base);box-shadow:0 4px 0 var(--line)}.language-select-wrapper:has(.language-select-trigger:hover):after{color:var(--base);transform:translateY(.1rem)rotate(225deg)}.language-select-wrapper:has(.language-select-trigger:focus-visible):after{color:var(--base);transform:translateY(.1rem)rotate(225deg)}.language-select-wrapper:has(.language-select-trigger[aria-expanded=true]):after{color:var(--base);transform:translateY(.1rem)rotate(225deg)}.language-menu{z-index:25;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface);opacity:0;pointer-events:none;transform-origin:100% 0;min-width:100%;transition:opacity var(--normal) ease, transform var(--normal) cubic-bezier(.16, 1, .3, 1);flex-direction:column;margin:0;padding:.25rem .5rem;list-style:none;display:flex;position:absolute;top:calc(100% + .6rem);right:0;transform:translateY(-.5rem)scale(.96);box-shadow:0 12px 28px #0000002e}.language-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.language-option{border-radius:calc(var(--control-radius) - 3px);width:100%;min-height:2.25rem;color:var(--muted);font:600 .7rem var(--mono);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;margin:.25rem 0;padding:.5rem .6rem;display:flex}.language-option:hover,.language-option.selected{background:var(--ink);color:var(--base);transition:background var(--normal) ease, color var(--normal) ease}.language-option-mark{opacity:.65;font-size:.58rem}.standalone-theme-toggle{display:flex}.mobile-menu-toggle{border:1px solid var(--line);background:var(--surface);width:2.75rem;height:2.75rem;color:var(--ink);border-radius:var(--control-radius);padding:0;display:none}.skip-link{left:var(--s-3);z-index:20;padding:var(--s-2) var(--s-3);background:var(--accent);color:var(--base);font:500 .75rem/1 var(--mono);position:fixed;top:-4rem}.skip-link:focus{top:var(--s-3)}@media (width<=900px){.navbar{background:color-mix(in srgb, var(--base) 94%, transparent);border-color:var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.navbar-container,.main-content,.footer-container{width:min(100% - 2rem,680px)}.navbar-container{gap:var(--s-2);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.navbar-brand{min-width:0}.navbar-center{padding:var(--s-2);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface);box-shadow:var(--shadow);gap:var(--s-2);opacity:0;visibility:hidden;pointer-events:none;transform-origin:top;transition:opacity var(--normal) ease, transform var(--normal) cubic-bezier(.16, 1, .3, 1), visibility 0s linear var(--normal);flex-direction:column;display:flex;position:absolute;top:calc(100% + .5rem);left:1rem;right:1rem;transform:translateY(-.75rem)scale(.98)}.navbar-center.open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)scale(1)}.navbar-links{flex-direction:column;align-items:stretch;gap:0;width:100%;display:flex}.nav-link-button{text-align:left;text-align:center;justify-content:center;width:100%;padding:.7rem;display:flex}.navbar-center.open .navbar-link{animation:mobile-nav-item-in var(--normal) both;box-sizing:border-box;width:100%}.navbar-center.open .navbar-link:nth-child(2){animation-delay:30ms}.navbar-center.open .navbar-link:nth-child(3){animation-delay:60ms}.navbar-center.open .navbar-link:nth-child(4){animation-delay:90ms}.navbar-center.open .navbar-link:nth-child(5){animation-delay:.12s}.navbar-center.open .navbar-link:nth-child(6){animation-delay:.15s}.mobile-menu-toggle{z-index:20;font-size:1.2rem;display:block;position:relative}.hamburger-line{width:1.2rem;height:2px;transition:transform var(--normal) cubic-bezier(.16, 1, .3, 1), opacity var(--fast) ease;background:currentColor;border-radius:999px;position:absolute;left:50%;transform:translate(-50%)}.hamburger-line:first-child{transform:translate(-50%,-.35rem)}.hamburger-line:nth-child(3){transform:translate(-50%,.35rem)}.mobile-menu-toggle[aria-expanded=true] .hamburger-line:first-child{transform:translate(-50%)rotate(45deg)}.mobile-menu-toggle[aria-expanded=true] .hamburger-line:nth-child(2){opacity:0;transform:translate(-50%)scaleX(.4)}.mobile-menu-toggle[aria-expanded=true] .hamburger-line:nth-child(3){transform:translate(-50%)rotate(-45deg)}.language-select-wrapper{justify-content:center;display:flex}.navbar-actions{gap:var(--s-2);position:static}}@media (width<=520px){.navbar-container{width:calc(100% - 1.5rem)}.language-select-trigger{min-width:4.25rem;padding-inline:.5rem}}.main-content{width:min(1180px,100% - 3rem);margin:auto}.hero-section{min-height:100svh;padding:10rem 0 var(--s-8);align-items:center;display:grid}.hero-container{gap:var(--s-8);grid-template-columns:1fr;align-items:center;display:grid}@media (width>=1025px){.hero-container{grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr)}}.eyebrow,.contact-kicker{margin:0 0 var(--s-3);color:var(--accent);font:600 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.hero-name{max-width:9ch;color:var(--ink);font:700 clamp(3.5rem, 8vw, 7.4rem)/.88 var(--display);letter-spacing:-.08em;text-wrap:balance;margin:0}.hero-role{margin:var(--s-4) 0;color:var(--muted);font:500 clamp(1rem, 2vw, 1.35rem)/1.4 var(--mono)}.hero-description{max-width:58ch;color:var(--muted);margin:0;font-size:1.02rem;line-height:1.8}.hero-meta{gap:.6rem var(--s-4);margin-top:var(--s-5);color:var(--faint);font:.72rem var(--mono);flex-wrap:wrap;display:flex}.hero-meta span+span:before{content:"/";margin-right:var(--s-4);color:var(--line)}.hero-actions{gap:var(--s-3);margin-top:var(--s-6);display:flex}.hero-link-button{min-height:var(--control-height);border:1px solid var(--line);background:var(--surface);box-shadow:0 2px 0 var(--line);border-radius:var(--control-radius);color:var(--ink);font:600 .7rem var(--mono);align-items:center;padding:0 .9rem;text-decoration:none;display:inline-flex}.hero-link-button:hover{border-color:var(--ink);background:var(--ink);color:var(--base);box-shadow:0 4px 0 var(--line);transform:translateY(-2px)}.hero-visual{place-items:center;display:grid}.ai-network-graph{background:var(--code);border:1px solid color-mix(in srgb, var(--accent) 44%, var(--code));border-radius:var(--radius);width:min(100%,500px);min-height:450px;box-shadow:0 0 10px #ffffff40, 0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent);animation:.7s cubic-bezier(.16,1,.3,1) both settle;position:relative;overflow:hidden}[data-theme=light] .ai-network-graph{box-shadow:0 0 10px #00000040, 0 0 0 1px color-mix(in srgb, var(--ink) 16%, transparent)}.ai-network-graph-canvas{width:100%;height:100%;display:block}.section-heading-row{justify-content:space-between;align-items:end;gap:var(--s-4);margin-bottom:var(--s-5);display:flex}.section-title{color:var(--ink);font:700 clamp(2.2rem, 5vw, 4.2rem)/1 var(--display);letter-spacing:-.06em;text-wrap:balance;margin:0}.section-aside{color:var(--faint);font:.7rem var(--mono);margin:0}.text-link{border:1px solid var(--line);background:var(--surface);min-height:2.75rem;box-shadow:0 2px 0 var(--line);border-radius:var(--radius);color:var(--ink);font:600 .72rem var(--mono);align-items:center;padding:.6rem .85rem;text-decoration:none;display:inline-flex}@media (width<=520px){.text-link{align-self:flex-start}}.text-link:hover{border-color:var(--ink);background:var(--ink);color:var(--base);box-shadow:0 4px 0 var(--line)}.skills-section{padding:var(--s-8) 0;border-top:2px solid var(--section-line)}.skills-header{max-width:680px;margin-bottom:var(--s-6)}.skills-title{color:var(--ink);font:700 clamp(2.2rem, 5vw, 4.2rem)/1 var(--display);letter-spacing:-.06em;text-wrap:balance;margin:0}.skills-grid{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.skill-category{min-height:12rem;padding:var(--s-4);background:var(--surface)}.category-header{column-gap:var(--s-2);flex-direction:column;display:flex}.category-title{color:var(--ink);font:600 1.1rem var(--display);margin:0}.category-description{color:var(--faint);font:.68rem/1.5 var(--mono);grid-column:2;margin:.2rem 0 0}.skills-list{margin-top:var(--s-4);flex-wrap:wrap;gap:.45rem;display:flex}.skill-item{border:1px solid var(--line);color:var(--muted);font:.67rem var(--mono);padding:.45rem .55rem}@media (width<=1024px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.skills-grid{grid-template-columns:repeat(2,1fr)}.skill-category{min-height:10rem}}@media (width<=520px){.skills-grid{grid-template-columns:1fr}.skill-category{min-height:auto}.category-header{gap:var(--s-2);grid-template-columns:1fr}.category-description{grid-column:1}}.projects-section{padding:var(--s-8) 0;border-top:2px solid var(--section-line)}.projects-filters{margin-top:var(--s-4);margin-bottom:var(--s-4);flex-wrap:wrap;gap:.5rem;display:flex}.filter-button{min-height:var(--control-height);background:var(--surface);cursor:pointer;border:1px solid var(--line);border-radius:var(--control-radius);color:var(--ink);font:600 .68rem var(--mono);padding:.5rem .75rem}.filter-button:hover,.filter-button.active{border-color:var(--ink);background:var(--ink);color:var(--base)}.filter-count{color:var(--muted);margin-left:var(--s-2)}.filter-button:hover .filter-count,.filter-button.active .filter-count{color:var(--base)}.projects-grid{gap:var(--s-3);grid-template-columns:repeat(3,1fr);display:grid}.project-card{border:1px solid var(--line);background:var(--surface);cursor:pointer;min-height:22rem;transition:transform var(--normal), border-color var(--normal), box-shadow var(--normal);flex-direction:column;display:flex;overflow:hidden}.project-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-4px)}.project-footer{justify-content:space-between;align-items:center;gap:var(--s-2);color:var(--faint);font:.64rem var(--mono);display:flex}.project-featured{color:var(--accent)}.project-name{margin:var(--s-3) 0 .45rem;color:var(--ink);font:600 1.15rem var(--display);overflow-wrap:anywhere}.project-description{color:var(--muted);margin:0;font-size:.84rem;line-height:1.55}.project-tags{padding-top:var(--s-3);flex-wrap:wrap;gap:.35rem;margin-top:auto;display:flex}.project-tag{padding:.3rem .4rem;font-size:.6rem}.project-links{gap:.35rem;display:flex}.project-link{border:1px solid var(--line);width:2rem;height:2rem;color:var(--accent);font:.75rem var(--mono);place-items:center;display:grid}.project-link:hover{border-color:var(--ink);background:var(--ink);color:var(--base)}.project-card{padding:var(--s-4);border-radius:10px;min-height:19rem;position:relative}.project-card-featured{background:var(--surface);border-color:var(--accent);min-height:19rem;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent), 0 0 22px color-mix(in srgb, var(--accent) 20%, transparent);grid-column:span 1}.project-card-featured .project-name{font-size:1.65rem}.project-card-featured .project-card-top{padding-top:0}.project-card-top{color:var(--faint);font:.65rem var(--mono);text-transform:uppercase;justify-content:space-between;display:flex}.project-name{margin-top:var(--s-4)}.project-description{max-width:48ch}.project-footer{margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--line)}.project-open{color:var(--accent);font:600 .68rem var(--mono)}.project-links{gap:.5rem}.project-link{border-radius:var(--control-radius);text-align:center;width:2.5rem;height:2.5rem;font-size:.6rem;font-weight:600;text-decoration:none}.icon-white,[data-theme=light] .icon-black{display:block}[data-theme=light] .icon-white,[data-theme=light] .project-link:hover .icon-black{display:none}[data-theme=light] .project-link:hover .icon-white,[data-theme=dark] .project-link:hover .icon-black{display:block}[data-theme=dark] .project-link:hover .icon-white{display:none}.project-link:hover{transform:translateY(-2px)}@media (width<=1024px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.projects-grid{grid-template-columns:repeat(2,1fr)}.project-card,.project-card-featured{min-height:19rem}}@media (width<=520px){.projects-header .section-heading-row{text-align:left;align-items:flex-start}.projects-grid{grid-template-columns:1fr}.project-card,.project-card-featured{min-height:auto}.project-name{font-size:1.3rem}.project-description{max-width:none}}.experience-section{padding:var(--s-8) 0;border-top:2px solid var(--section-line)}.experience-layout{gap:var(--s-8);grid-template-columns:1.2fr .8fr;display:grid}.timeline{border-left:1px solid var(--line);gap:0;display:grid}.timeline-item{gap:var(--s-4);padding:0 0 var(--s-5) var(--s-4);grid-template-columns:8rem minmax(0,1fr);display:grid;position:relative}.timeline-item>div{min-width:0}.timeline-item:before{content:"";border:2px solid var(--accent);background:var(--base);border-radius:50%;width:.5rem;height:.5rem;position:absolute;top:.25rem;left:-.25rem}.timeline-period,.subsection-label{color:var(--accent);font:600 .66rem var(--mono);text-transform:uppercase}.timeline-item h3,.education-item h3{color:var(--ink);font:600 1rem var(--display);margin:0}.timeline-item p,.education-item p{color:var(--muted);margin:.4rem 0 0;font-size:.78rem;line-height:1.55}.timeline-company{color:var(--ink)!important;font:.7rem var(--mono)!important}.education-list{padding:var(--s-4);border:1px solid var(--line);background:var(--surface);border-radius:10px}.subsection-label{margin:0 0 var(--s-4)}.education-item{gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--line);grid-template-columns:5.5rem 1fr;display:grid}.education-item>span{color:var(--faint);font:.65rem var(--mono)}.profile-facts{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line);flex-wrap:wrap;gap:.45rem;display:flex}.profile-facts span{border:1px solid var(--line);color:var(--muted);font:.62rem var(--mono);border-radius:999px;padding:.4rem .5rem}@media (width<=1024px){.experience-layout{gap:var(--s-6);grid-template-columns:1fr}.timeline{border-left:none;border-top:1px solid var(--line)}.timeline-item{padding:var(--s-3) 0;border-top:1px solid var(--line);grid-template-columns:1fr;gap:.4rem}.timeline-item:before{display:none}.timeline-period{margin-bottom:-.5rem}.education-item{grid-template-columns:1fr;gap:.2rem}}@media (width<=520px){.experience-section{padding:var(--s-6) 0}.timeline-item h3,.education-item h3{font-size:.95rem}.timeline-item p,.education-item p{font-size:.75rem}.profile-facts span{padding:.3rem .45rem;font-size:.6rem}}.certificates-section{padding:var(--s-8) 0;border-top:2px solid var(--section-line)}.certificate-grid{gap:var(--s-3);grid-template-columns:repeat(3,1fr);display:grid}.certificate-filters{margin:0 0 var(--s-4);flex-wrap:wrap;gap:.5rem;display:flex}.certificate-card{align-items:center;gap:var(--s-3);min-height:5.3rem;padding:var(--s-3);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;transition:transform var(--normal), border-color var(--normal), background-color var(--normal);border-radius:10px;display:flex}.certificate-card:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-3px)}.certificate-mark{border:1px solid var(--accent);width:2.7rem;height:2.7rem;color:var(--accent);font:600 .6rem var(--mono);border-radius:50%;flex:none;place-items:center;display:grid}.certificate-copy{gap:.3rem;min-width:0;display:grid}.certificate-copy strong{font:600 .9rem var(--display);overflow-wrap:anywhere}.certificate-copy small{color:var(--muted);font:.63rem var(--mono)}@media (width<=1024px){.certificate-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.certificate-grid{grid-template-columns:repeat(2,1fr)}.certificate-card{text-align:center;gap:var(--s-2);flex-direction:column;min-height:5rem}.certificate-copy{text-align:center}}@media (width<=520px){.certificates-section .section-heading-row{text-align:left;align-items:flex-start}.certificate-grid{grid-template-columns:1fr}.certificate-card{text-align:left;gap:var(--s-3);flex-direction:row}.certificate-copy{text-align:left}}.contact-section{padding:var(--s-8) 0;border-top:2px solid var(--section-line)}.contact-content{gap:var(--s-8);padding:var(--s-6);border:1px solid var(--line);background:var(--surface);border-radius:10px;grid-template-columns:1fr .65fr;align-items:end;display:grid}.contact-info{gap:var(--s-4);flex-direction:column;display:flex}.contact-info>*{margin-block:0}.contact-identity{align-items:center;gap:var(--s-3);display:flex}.contact-identity .contact-kicker{margin:0 0 .3rem}.contact-identity .contact-role{margin:0}.contact-monogram{aspect-ratio:1;border:1px solid var(--accent);width:3.4rem;min-width:3.4rem;height:3.4rem;color:var(--accent);font:600 .8rem var(--mono);border-radius:50%;flex:0 0 3.4rem;place-items:center;display:grid}.contact-location{color:var(--faint);font:.68rem var(--mono)}.contact-info-title{max-width:17ch}.contact-role{margin:0 0 var(--s-3);color:var(--muted);font:.72rem var(--mono)}.contact-slogan{letter-spacing:-.04em;max-width:30ch;font-size:clamp(1.2rem,3vw,2rem)}.contact-links{flex-wrap:wrap;gap:.6rem;margin-top:0;display:flex}.contact-link{min-height:var(--control-height);border:1px solid var(--line);background:var(--surface);box-shadow:0 2px 0 var(--line);border-radius:var(--control-radius);color:var(--ink);font:600 .8rem var(--mono);align-items:center;padding:.6rem .85rem;text-decoration:none;display:inline-flex}.contact-link:hover{border-color:var(--ink);background:var(--ink);color:var(--base);box-shadow:0 4px 0 var(--line)}.contact-side{padding-left:var(--s-5);border-left:1px solid var(--line);color:var(--muted);flex-direction:column;justify-content:center;align-self:stretch;display:flex}.contact-side strong{margin-top:var(--s-2);color:var(--ink);font:600 .9rem var(--display)}.contact-side p{max-width:24ch;font:.72rem/1.7 var(--mono);margin:.5rem 0 0}.status-dot{background:var(--accent);width:.45rem;height:.45rem;box-shadow:0 0 0 .2rem color-mix(in srgb, var(--accent) 14%, transparent);border-radius:50%;margin-right:.35rem;display:inline-block}@media (width<=1024px){.contact-section .section-heading-row{text-align:left;justify-content:flex-start;align-items:flex-start}.contact-content{gap:var(--s-6);grid-template-columns:1fr}.contact-side{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:var(--s-4)}}@media (width<=520px){.contact-content{padding:var(--s-4)}.contact-slogan{max-width:none;font-size:clamp(1.1rem,4vw,1.8rem)}.contact-link{text-align:center;flex:45%;justify-content:center}}.footer{padding:var(--s-5) 0;border-top:2px solid var(--section-line)}.footer-container{width:min(1180px,100% - 3rem);margin:auto}.footer-simple{justify-content:space-between;align-items:center;gap:var(--s-5);display:flex}.footer-brand-link{align-items:center;gap:var(--s-3);color:var(--ink);transition:color var(--fast);text-decoration:none;display:flex}.footer-brand-link:hover{color:var(--accent)}.footer-brand-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.footer-github-icon{flex-shrink:0;width:20px;height:20px}.footer-name{color:inherit;font:600 .8rem var(--mono)}.footer-simple-links{justify-content:flex-end;gap:var(--s-4);flex-wrap:wrap;display:flex}.footer-simple-links a{color:var(--muted);font:.68rem var(--mono);text-decoration:underline}.footer-simple-links a:hover{color:var(--accent)}.footer-email-link{display:inline-flex;position:relative}.footer-bottom{justify-content:space-between;align-items:center;gap:var(--s-3);margin-top:var(--s-6);padding-top:var(--s-3);border-top:1px solid var(--line);color:var(--faint);font:.65rem var(--mono);display:flex}.footer-copyright p{margin:0}.footer-confirmation-message{z-index:2;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface);box-shadow:0 4px 0 var(--line);color:var(--ink);font:.65rem var(--mono);white-space:nowrap;animation:footer-confirmation-in var(--normal) cubic-bezier(.16, 1, .3, 1) both;padding:.5rem;position:absolute;bottom:calc(100% + .5rem);right:2rem}@media (width<=900px){.footer-simple{flex-direction:column;align-items:flex-start}.footer-simple-links{justify-content:flex-start;width:100%}}@media (width<=520px){.footer-bottom{flex-direction:column;align-items:flex-start}.footer-simple-links{gap:var(--s-2);flex-direction:column}.footer-confirmation-message{right:10rem}}.project-modal-overlay{z-index:30;padding:var(--s-3);opacity:0;transition:opacity var(--normal);background:#0009;place-items:center;display:grid;position:fixed;inset:0}.project-modal-overlay.visible{opacity:1}.project-modal{width:min(680px,100%);max-height:min(760px,90svh);padding:var(--s-2);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);transition:transform var(--normal);border-radius:10px;overflow:auto;transform:translateY(12px)}.project-modal.visible{transform:translateY(0)}.modal-close{float:right;z-index:1;background:var(--surface);width:2.75rem;height:2.75rem;color:var(--ink);border-radius:var(--control-radius);border:0;font-size:1.4rem;position:sticky;top:0}.modal-content{padding:var(--s-5)}.modal-category,.modal-meta,.tech-tag{font:.68rem var(--mono)}.modal-category{color:var(--accent)}.modal-title{margin:var(--s-3) 0;color:var(--ink);font:700 2.5rem/1 var(--display);letter-spacing:-.05em;overflow-wrap:anywhere}.modal-project-image{width:100%;margin:var(--s-4) 0;border:1px solid var(--line);border-radius:var(--control-radius);object-fit:cover;display:block}.modal-meta{gap:var(--s-3);color:var(--muted);flex-wrap:wrap;display:flex}.modal-section{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--line)}.modal-section-title{margin:0 0 var(--s-2);color:var(--ink);font:600 1rem var(--display)}.modal-description{color:var(--muted);margin:0;line-height:1.7}.tech-stack{flex-wrap:wrap;gap:.4rem;display:flex}.tech-tag{border:1px solid var(--line);color:var(--muted);padding:.4rem .5rem}.modal-footer{padding:var(--s-4) var(--s-5);border-top:1px solid var(--line)}.modal-links{flex-direction:row;gap:.5rem;display:flex}.modal-link{max-width:3rem;min-height:var(--control-height);border:1px solid var(--line);background:var(--surface);box-shadow:0 2px 0 var(--line);border-radius:var(--control-radius);color:var(--ink);font:.7rem var(--mono);place-items:center;padding:.65rem .75rem;text-decoration:none}.modal-link:hover{border-color:var(--ink);background:var(--ink);color:var(--base);box-shadow:0 4px 0 var(--line)}.icon{object-fit:contain;flex:none;width:1.5rem;height:1.5rem;display:block}.icon-black{display:none}.icon-white,[data-theme=light] .icon-black{display:block}[data-theme=light] .icon-white,[data-theme=light] .modal-link:hover .icon-black{display:none}[data-theme=light] .modal-link:hover .icon-white,[data-theme=dark] .modal-link:hover .icon-black{display:block}[data-theme=dark] .modal-link:hover .icon-white{display:none}@media (width<=520px){.project-modal-overlay{padding:var(--s-2)}.project-modal{width:calc(100% - var(--s-2));max-height:calc(100svh - var(--s-4));padding:var(--s-1);border-radius:var(--radius)}.modal-content{padding:var(--s-4)}.modal-title{font-size:2rem}.modal-footer{padding:var(--s-3) var(--s-4)}}.certificate-modal-overlay{z-index:30;padding:var(--s-3);background:#0009;place-items:center;display:grid;position:fixed;inset:0}.certificate-modal{width:min(960px,100vw - 2rem);height:min(760px,100svh - 2rem);padding:var(--s-2);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;grid-template-columns:1fr 1fr;display:grid;position:relative;overflow:hidden}.certificate-modal-copy{padding:var(--s-6)}.certificate-modal-copy h2{color:var(--ink);font:700 2rem/1.05 var(--display);letter-spacing:-.05em;margin:0}.certificate-modal-copy>p:not(.eyebrow){color:var(--muted);font:.75rem/1.6 var(--mono)}.certificate-description{margin:var(--s-5) 0}.certificate-viewer{background:#fff;border:0;width:100%;height:100%;min-height:0}.modal-close{top:var(--s-3);right:var(--s-3);z-index:1;background:var(--surface);width:2.75rem;height:2.75rem;color:var(--ink);border-radius:var(--control-radius);cursor:pointer;border:0;font-size:1.4rem;position:absolute}.modal-link-download{min-height:var(--control-height);border:1px solid var(--line);background:var(--surface);width:100%;box-shadow:0 2px 0 var(--line);border-radius:var(--control-radius);color:var(--ink);font:.7rem var(--mono);align-items:center;padding:.65rem .75rem;text-decoration:none;display:inline-flex}.modal-link-download:hover{border-color:var(--ink);background:var(--ink);color:var(--base);box-shadow:0 4px 0 var(--line)}@media (width<=1024px){.certificate-modal{width:calc(100vw - 2rem)}}@media (width<=900px){.certificate-modal{width:calc(100vw - 1rem);height:calc(100svh - 1rem);padding:var(--s-1);grid-template-columns:1fr;overflow:auto}.certificate-viewer{height:58svh}.certificate-modal-copy{padding:var(--s-4)}}@media (width<=520px){.certificate-modal{width:calc(100vw - var(--s-4));height:calc(100svh - var(--s-4));padding:var(--s-1);border-radius:var(--radius)}.certificate-viewer{height:50svh}.certificate-modal-copy{padding:var(--s-3)}.certificate-modal-copy h2{font-size:1.75rem}}
