:root{--portfolio-text:#171725;--portfolio-muted:#676678;--portfolio-primary:#5b4ff7;--portfolio-primary-dark:#3d32cc;--portfolio-primary-soft:#eceafe;--portfolio-border:#dedde5;--portfolio-paper:#fff;--portfolio-surface:#efeee9;--portfolio-background:#f8f7f3;--portfolio-dark:#14131d;color:var(--portfolio-text);background:var(--portfolio-background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--portfolio-background);margin:0;overflow-x:hidden}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}.site-shell{min-height:100vh}.site-header{color:#fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid #ffffff24;background-color:#4b3edcf0!important}.site-toolbar{justify-content:space-between;gap:30px;min-height:78px}.site-header .wordmark{flex-direction:column;flex-shrink:0;align-items:flex-start;gap:2px;display:flex;color:#fff!important}.wordmark-name{color:#fff;letter-spacing:-.025em;font-size:.94rem;font-weight:780;line-height:1.15}.wordmark-role{color:#ffffffe0;letter-spacing:.035em;font-size:.64rem;font-weight:650;line-height:1.2}.desktop-navigation{justify-content:center;gap:clamp(15px,1.8vw,27px);margin-left:auto;display:flex}.desktop-navigation a{color:#ffffffdb;padding-block:8px;font-size:.84rem;font-weight:650;transition:color .16s;position:relative}.desktop-navigation a:after{content:"";transform-origin:100%;background:#fff;height:1.5px;transition:transform .18s;position:absolute;bottom:2px;left:0;right:0;transform:scaleX(0)}.desktop-navigation a:hover,.desktop-navigation a:focus-visible{color:#fff}.desktop-navigation a:hover:after,.desktop-navigation a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.header-actions{align-items:center;display:flex}.language-picker{background:#ffffff1c;border:1px solid #ffffff3d;border-radius:999px;padding:3px}.language-picker .MuiToggleButton-root{color:#ffffffc2;border:0;min-width:39px;height:30px;padding:0 9px;font-size:.7rem;font-weight:800;border-radius:999px!important}.language-picker .MuiToggleButton-root.Mui-selected{color:var(--portfolio-primary-dark);background:#fff}.language-picker .MuiToggleButton-root.Mui-selected:hover{background:#fff}.site-header .menu-button{color:#fff;display:none!important}.menu-icon{gap:4px;width:22px;display:grid}.menu-icon span{background:currentColor;border-radius:2px;height:2px;display:block}.mobile-menu{background:linear-gradient(#fffffff2, #fffffff2), linear-gradient(135deg, var(--portfolio-primary-soft), transparent);width:min(86vw,360px);min-height:100%;padding:24px}.mobile-wordmark{color:var(--portfolio-text);gap:2px;display:grid}.mobile-wordmark .MuiTypography-caption{color:var(--portfolio-muted);font-size:.65rem}.mobile-menu .language-picker{background:var(--portfolio-primary-soft);border-color:#5b4ff72e}.mobile-menu .language-picker .MuiToggleButton-root{color:var(--portfolio-primary-dark)}.mobile-menu .language-picker .MuiToggleButton-root.Mui-selected{color:#fff;background:var(--portfolio-primary)}.mobile-menu .language-picker .MuiToggleButton-root.Mui-selected:hover{background:var(--portfolio-primary)}.mobile-navigation{gap:2px;margin-block:44px;display:grid}.mobile-navigation a{color:var(--portfolio-text);border-bottom:1px solid var(--portfolio-border);padding-block:12px;font-size:1.22rem;font-weight:700}.hero-section{align-items:center;min-height:calc(100svh - 79px);padding-block:clamp(76px,10vw,128px);display:flex;position:relative;overflow:hidden}.hero-section:before{z-index:-1;content:"";background-image:linear-gradient(#1717250a 1px,#0000 1px),linear-gradient(90deg,#1717250a 1px,#0000 1px);background-size:68px 68px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000008c,#0000 88%);mask-image:linear-gradient(#0000008c,#0000 88%)}.hero-section:after{z-index:-1;aspect-ratio:1;content:"";background:radial-gradient(circle,#5b4ff721,#0000 68%);width:min(55vw,740px);position:absolute;top:-20%;right:-12%}.hero-layout{grid-template-columns:minmax(0,1.08fr) minmax(390px,.72fr);align-items:center;gap:clamp(56px,7vw,104px);display:grid}.hero-copy{z-index:1;position:relative}.hero-eyebrow{color:var(--portfolio-primary);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;font-size:.78rem;font-weight:800;display:flex}.hero-eyebrow>span{background:var(--portfolio-primary);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #5b4ff71c}.hero-actions .MuiButton-contained{box-shadow:0 12px 28px #5b4ff738}.hero-actions .MuiButton-contained span{margin-left:10px;font-size:1.05rem}.hero-actions .MuiButton-outlined{color:var(--portfolio-text);background:#ffffff6b;border-color:#17172540}.hero-meta{gap:28px;padding-top:10px;display:flex}.hero-meta p{color:var(--portfolio-muted);font-size:.8rem;font-weight:650;position:relative}.hero-meta p+p:before{background:var(--portfolio-primary);content:"";border-radius:50%;width:3px;height:3px;position:absolute;top:50%;left:-15px}.hero-visual{aspect-ratio:1;width:100%;max-width:490px;margin-left:auto;position:relative}.visual-grid{background:linear-gradient(#ffffffd1, #ffffffd1), linear-gradient(135deg, var(--portfolio-primary-soft), transparent 60%);border:1px solid #1717251f;border-radius:34px;position:absolute;inset:4%;overflow:hidden;transform:rotate(3deg);box-shadow:0 30px 80px #1e1b4b1f,inset 0 0 0 10px #ffffff61}.visual-grid:before{content:"";background-image:linear-gradient(#5b4ff714 1px,#0000 1px),linear-gradient(90deg,#5b4ff714 1px,#0000 1px);background-size:36px 36px;position:absolute;inset:0}.visual-grid:after{content:"";border:1px dashed #5b4ff740;border-radius:50%;position:absolute;inset:17%}.visual-orbit{border:1px solid #17172521;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.visual-orbit--outer{width:68%;height:68%}.visual-orbit--inner{border-color:#5b4ff752;width:39%;height:39%;box-shadow:0 0 50px #5b4ff71a}.visual-core{z-index:2;color:#fff;background:var(--portfolio-text);letter-spacing:-.05em;border:7px solid #fffc;border-radius:26px;place-items:center;width:86px;height:86px;font-size:1.2rem;font-weight:800;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-3deg);box-shadow:0 18px 38px #17172540}.tech-node{z-index:3;color:var(--portfolio-text);background:#ffffffeb;border:1px solid #17172521;border-radius:999px;padding:8px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.68rem;font-weight:700;position:absolute;transform:rotate(-3deg);box-shadow:0 8px 22px #1717251a}.tech-node:before{background:var(--portfolio-primary);content:"";border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.tech-node--python{top:19%;left:17%}.tech-node--aws{top:20%;right:16%}.tech-node--iot{bottom:20%;right:14%}.tech-node--react{bottom:18%;left:15%}.visual-coordinate{z-index:2;color:#1717257a;letter-spacing:.12em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.58rem;font-weight:700;position:absolute;transform:rotate(-3deg)}.visual-coordinate--top{top:7%;left:7%}.visual-coordinate--bottom{bottom:7%;right:7%}.content-section{padding-block:clamp(86px,10vw,132px);scroll-margin-top:78px;position:relative}.content-section--muted{background:var(--portfolio-surface);border-block:1px solid #17172512}.section-heading{align-items:center;gap:17px;margin-bottom:clamp(42px,6vw,70px);display:flex}.section-kicker{background:var(--portfolio-primary);border-radius:999px;width:42px;height:3px}.section-title{margin:0}.section-introduction{max-width:720px;margin-top:-38px;margin-bottom:46px}.about-copy{max-width:900px}.skills-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;display:grid}.skill-group{background:var(--portfolio-paper);border:1px solid var(--portfolio-border);border-radius:20px;grid-column:span 2;min-height:190px;padding:26px;transition:transform .18s,border-color .18s,box-shadow .18s}.skill-group:nth-child(4),.skill-group:nth-child(5){grid-column:span 3}.skill-group:hover{border-color:#5b4ff759;transform:translateY(-4px);box-shadow:0 18px 45px #17172512}.chip-list{flex-wrap:wrap;gap:7px;margin-top:20px;display:flex}.chip-list .MuiChip-root{height:28px;color:var(--portfolio-muted);background:#f8f7f3cc;border-color:#1717251a;border-radius:8px;font-size:.72rem;font-weight:650}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.project-card{background:var(--portfolio-paper);border:1px solid #1717251a;border-radius:24px;min-height:390px;padding:30px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden}.project-card:after{background:var(--portfolio-primary-soft);content:"";opacity:0;border-radius:50%;width:150px;height:150px;transition:opacity .18s;position:absolute;top:-70px;right:-70px}.project-card:hover{transform:translateY(-5px);box-shadow:0 22px 55px #17172514}.project-card:hover:after{opacity:1}.project-card--featured{border-color:#5b4ff73d}.project-card--lead{color:#fff;background:radial-gradient(circle at 85% 15%,#7c6fff57,#0000 30%),linear-gradient(135deg,#171725 0%,#24213f 100%);border:0;grid-column:1/-1;min-height:430px;padding:clamp(32px,5vw,54px)}.project-card--lead:before{content:"";background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 30%,#000);mask-image:linear-gradient(90deg,#0000 30%,#000)}.project-card--lead:after{opacity:1;background:0 0;border:1px solid #ffffff1f;width:420px;height:420px;top:auto;bottom:-150px;right:-100px;box-shadow:0 0 0 55px #ffffff08,0 0 0 110px #ffffff05}.project-card--lead .MuiTypography-root{z-index:1;color:#ffffffb8;position:relative}.project-card--lead h3.MuiTypography-root{color:#fff;max-width:620px;font-size:clamp(1.8rem,4vw,2.75rem)}.project-card--lead .project-description{max-width:710px}.project-card--lead .chip-list{max-width:760px}.project-card--lead .MuiChip-root{color:#ffffffc7;background:#ffffff12;border:1px solid #ffffff1c}.project-card--lead .project-link{color:#fff}.project-description{z-index:1;margin:0;padding-left:19px;position:relative}.project-description li{padding-left:4px}.project-description li::marker{color:var(--portfolio-primary)}.project-link{z-index:1;color:var(--portfolio-text);text-underline-offset:5px;font-size:.85rem;font-weight:750;text-decoration-color:#5b4ff773;position:relative}.project-link span{margin-left:3px;transition:transform .16s;display:inline-block}.project-link:hover span{transform:translate(2px,-2px)}.education-card{background:var(--portfolio-paper);border:1px solid var(--portfolio-border);border-radius:24px;padding:clamp(30px,5vw,48px);position:relative;overflow:hidden;box-shadow:0 18px 50px #1717250d}.education-mark{background:linear-gradient(var(--portfolio-primary), #8f85ff);width:5px;position:absolute;top:0;bottom:0;left:0}.education-meta{text-align:right;flex-shrink:0}.languages-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.language-card{background:var(--portfolio-paper);border:1px solid var(--portfolio-border);border-radius:20px;min-height:200px;padding:28px;position:relative;overflow:hidden}.language-card:after{background:var(--portfolio-primary-soft);content:"";border-radius:50%;width:110px;height:110px;position:absolute;bottom:-38px;right:-38px}.site-footer{color:#fff;background:var(--portfolio-dark);padding-block:clamp(86px,10vw,124px) 34px;scroll-margin-top:78px;position:relative;overflow:hidden}.site-footer:before{content:"";background:radial-gradient(circle,#5b4ff73d,#0000 66%);width:600px;height:600px;position:absolute;top:-250px;right:-180px}.site-footer:after{content:"";background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:54px 54px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000);mask-image:linear-gradient(90deg,#0000,#000)}.site-footer .MuiContainer-root{z-index:1;position:relative}.site-footer h2{color:#fff}.footer-message{color:#d9d7e5;line-height:1.75}.footer-content{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:80px;display:grid}.footer-links{align-content:start;gap:32px;padding-top:8px;display:grid}.footer-label{color:#bdb9d2;letter-spacing:.13em;text-transform:uppercase;margin-bottom:10px;font-size:.67rem;font-weight:800}.footer-email{color:#fff;text-underline-offset:6px;font-size:clamp(1rem,2vw,1.25rem);font-weight:700;text-decoration-color:#a9a0ff9e}.footer-social{color:#d9d7e5;font-size:.88rem;font-weight:700;text-decoration:none;transition:color .16s}.footer-social:hover{color:#fff}.copyright{padding-top:72px;font-size:.78rem;color:#aaa6bd!important}@media (width<=820px){.desktop-navigation,.desktop-language-picker{display:none}.site-header .menu-button{display:inline-flex!important}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-group,.skill-group:nth-child(4),.skill-group:nth-child(5){grid-column:auto}.skill-group:last-child{grid-column:1/-1}.hero-layout{grid-template-columns:1fr}.hero-copy{max-width:710px}.hero-visual{width:min(100%,480px);margin:18px auto 0}.projects-grid{grid-template-columns:1fr}.project-card--lead{grid-column:auto}.footer-content{grid-template-columns:1fr;gap:54px}}@media (width<=700px){.site-toolbar{min-height:68px}.hero-section{min-height:auto;padding-block:72px 84px}.hero-section:before{background-size:48px 48px}.hero-meta{flex-direction:column;gap:7px}.hero-meta p+p:before{display:none}.content-section,.site-footer{scroll-margin-top:68px}.section-introduction{margin-top:-24px}.skills-grid,.languages-grid{grid-template-columns:1fr}.skill-group:last-child{grid-column:auto}.education-meta{text-align:left}}@media (width<=520px){.wordmark{max-width:230px}.hero-visual{width:110%;margin-left:-5%}.visual-grid{border-radius:26px}.visual-coordinate{display:none}.tech-node{padding:6px 9px;font-size:.6rem}.visual-core{border-radius:22px;width:72px;height:72px}.section-heading{gap:12px}.section-kicker{width:28px}.project-card,.project-card--lead,.skill-group,.education-card,.language-card{border-radius:20px;padding:24px}.project-card{min-height:auto}.project-card .MuiStack-root:first-child>div:first-child>.MuiStack-root{flex-direction:column}.footer-email{overflow-wrap:anywhere}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
