@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_2ae47f08-module__h69qWW__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_2ae47f08-module__h69qWW__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_eb58308d-module__w_p2Lq__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_eb58308d-module__w_p2Lq__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
[data-theme=light]{--body-bg:#f4f5fa;--body-color:#1a1d2b}[data-theme=light] .portfolio{--bg:#f4f5fa;--bg2:#eaecf4;--surface:#fff;--text:#1a1d2b;--muted:#4e5468;--accent:#5b47d6;--accent2:#0f9b72;--line:#00000017;--shadowDark:#0000001a;--shadowLight:#fff;background:radial-gradient(circle at 12% 8%, #5b47d614 0%, transparent 28%), radial-gradient(circle at 88% 4%, #0f9b720f 0%, transparent 24%), var(--bg)}[data-theme=light] .themeToggle,[data-theme=light] .langSwitch{background:#ffffffeb;border-color:#0000001a}[data-theme=light] .langSwitch button{color:var(--muted)}[data-theme=light] .langSwitch button.active{color:#fff}[data-theme=light] .hero{background:linear-gradient(160deg,#fffffff2,#f0f2fafa);border-color:#00000014;box-shadow:0 4px 24px #00000014,0 1px 3px #0000000f}[data-theme=light] .blob{opacity:.18}[data-theme=light] .nameFirst{background-image:linear-gradient(135deg, #1a1d2b, var(--accent))}[data-theme=light] .nameLast{background-image:linear-gradient(135deg, var(--accent), var(--accent2))}[data-theme=light] .heroAvatar{background:var(--bg2);box-shadow:4px 4px 14px #0000001a,-4px -4px 14px #fff}[data-theme=light] .avatarCircuit{border-color:#5b47d64d;box-shadow:0 0 18px #5b47d61f,inset 0 0 12px #0f9b720f}[data-theme=light] .avatarOrbit{background:var(--surface);border-color:#00000014;box-shadow:2px 2px 8px #00000014,-2px -2px 8px #fff}[data-theme=light] .portfolio h2{background-image:linear-gradient(135deg, #1a1d2b, var(--accent))}[data-theme=light] .stat{background:#fffc;border-color:#00000012;box-shadow:inset 1px 1px 4px #0000000a,inset -1px -1px 4px #fffc}[data-theme=light] .statLabel{color:var(--muted)}[data-theme=light] .card,[data-theme=light] .timelineCard{background:linear-gradient(160deg,#fffffffa,#f5f6fcfa);box-shadow:0 2px 12px #0000000f,0 1px 3px #0000000a}[data-theme=light] .tags span{color:var(--muted);background:#5b47d60f;border-color:#0000000f}[data-theme=light] .heroActions a,[data-theme=light] .projectLink,[data-theme=light] .contact a{color:var(--text);background:linear-gradient(160deg,#fffffff2,#f0f2faf2);box-shadow:2px 2px 8px #0000000f,-2px -2px 6px #ffffffe6}[data-theme=light] .contactForm{background:linear-gradient(160deg,#fffffffa,#f5f6fcfa);box-shadow:0 2px 12px #0000000f,0 1px 3px #0000000a}[data-theme=light] .contactForm label{color:#2a2e3e}[data-theme=light] .contactForm input,[data-theme=light] .contactForm textarea{background:var(--bg);color:var(--text);border-color:#0000001f}[data-theme=light] .cvBtn{box-shadow:0 2px 10px #5b47d633}[data-theme=light] .modalOverlay{background:#00000059}[data-theme=light] .modalBox{background:linear-gradient(160deg,#fffffffc,#f5f6fcfc);box-shadow:0 8px 40px #00000026}[data-theme=light] .modalBox h3{background-image:linear-gradient(135deg, #1a1d2b, var(--accent2))}[data-theme=light] .modalBox label{color:#2a2e3e}[data-theme=light] .modalBox input{background:var(--bg);color:var(--text);border-color:#0000001f}[data-theme=light] .footerSelfHosted{color:var(--muted)!important}[data-theme=light] .footerStack,[data-theme=light] .footerCopy{color:#6b7190!important}
.topControls{z-index:20;align-items:center;gap:10px;width:fit-content;margin:0 0 22px auto;display:flex;position:sticky;top:12px}.topControlsRtl{margin:0 auto 22px 0}.themeToggle{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:38px;height:38px;color:var(--muted);cursor:pointer;background:#1a1e2eb3;border-radius:50%;justify-content:center;align-items:center;transition:color .25s,background .25s,border-color .25s;display:flex}.themeToggle:hover{color:var(--accent)}.langSwitch{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1a1e2eb3;border-radius:999px;gap:8px;padding:6px;display:flex}.langSwitch button{color:var(--muted);letter-spacing:.04em;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 11px;font-size:.76rem;font-weight:700}.langSwitch button.active{color:#fff;background:linear-gradient(135deg, var(--accent), #5a4fd6)}.portfolio section{border:1px solid #fb923c;border-radius:16px;width:100%;max-width:1100px;margin:0 auto 56px;padding:24px}.hero{border:1px solid var(--line);box-shadow:10px 10px 28px var(--shadowDark), -6px -6px 18px var(--shadowLight);background:linear-gradient(160deg,#1f253be6,#1a1e2ef2);border-radius:58px;margin-bottom:72px;padding:100px;position:relative}.heroBlobs{pointer-events:none;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.blob{filter:blur(70px);opacity:.28;border-radius:999px;animation:8s ease-in-out infinite alternate blobFloat;position:absolute}.blob1{background:var(--accent);width:300px;height:300px;top:-60px;right:-20px}.blob2{background:var(--accent2);width:240px;height:240px;animation-duration:11s;bottom:-80px;left:-80px}.blob3{background:#f06dfa;width:170px;height:170px;animation-duration:10s;top:45%;left:42%}.heroContent{z-index:2;align-items:center;gap:54px;display:flex;position:relative}.heroAvatar{background:var(--bg2);width:200px;min-width:200px;height:200px;box-shadow:6px 6px 16px var(--shadowDark), -4px -4px 12px var(--shadowLight);border:1px solid var(--line);border-radius:50%;margin:80px auto 30px;position:relative}.avatarImage{object-fit:cover;object-position:100% right;border-radius:50%;width:100%;height:100%}.avatarCircuit{border:1px dashed #7c6dfa99;border-radius:50%;width:244px;height:244px;position:absolute;top:-22px;left:-22px;box-shadow:0 0 26px #7c6dfa40,inset 0 0 18px #5ef6c81a}.avatarOrbit{width:40px;height:40px;color:var(--text);background:var(--surface);border:1px solid var(--line);box-shadow:4px 4px 10px var(--shadowDark), -2px -2px 8px var(--shadowLight);border-radius:50%;place-items:center;margin:-20px 0 0 -20px;animation:90s linear infinite orbitSpin,2.2s ease-in-out infinite orbitPulse;display:grid;position:absolute;top:50%;left:50%}.avatarOrbit svg{display:block}.avatarOrbit:hover{animation-play-state:paused}.orbitLinkedin{--start:0deg;color:#0a66c2}.orbitGithub{--start:90deg}.orbitEmail{--start:180deg;color:var(--accent2)}.orbitCv{--start:270deg;color:var(--accent);cursor:pointer}.heroText{max-width:740px}.heroGreeting{color:var(--muted);margin-bottom:6px;font-size:.95rem}.heroName{margin-bottom:8px;font-size:clamp(2.4rem,6vw,4rem);line-height:1.04}.nameFirst,.nameLast{color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:block}.nameFirst{background-image:linear-gradient(135deg, #f4f6fb, var(--accent))}.nameLast{background-image:linear-gradient(135deg, var(--accent), var(--accent2))}.heroRoles{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;min-height:28px;margin-bottom:10px;font-size:1.04rem;display:flex}.typedText{color:var(--accent2);font-weight:700}.portfolio h2{letter-spacing:-.02em;background-image:linear-gradient(135deg, #f4f6fb, var(--accent2));color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:16px;font-size:clamp(1.5rem,2.6vw,2.1rem)}.portfolio h3{text-transform:capitalize;margin-bottom:8px;font-size:1.08rem}.portfolio p{color:var(--muted);line-height:1.6}.lead{max-width:740px;color:var(--muted);margin-bottom:10px;font-size:clamp(1.02rem,2.3vw,1.22rem)}.lead strong{color:var(--text)}.meta{color:var(--accent);margin-bottom:20px;font-weight:600}.heroActions{flex-wrap:wrap;gap:10px;display:flex}.heroStats{flex-wrap:wrap;gap:12px;margin-top:14px;display:flex}.stat{border:1px solid var(--line);min-width:102px;box-shadow:inset 2px 2px 8px var(--shadowDark), inset -2px -2px 6px #414c7833;background:#111523b3;border-radius:12px;padding:12px 14px}.statNum{color:var(--accent);font-size:1.5rem;font-weight:700;display:block}.statLabel{color:#7480a8;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;display:block}.portfolio a{color:var(--accent)}.heroActions a,.projectLink,.contact a{border:1px solid var(--line);color:var(--text);box-shadow:4px 4px 10px var(--shadowDark), -2px -2px 8px #414c7833;background:linear-gradient(160deg,#21273df2,#181c2bf2);border-radius:12px;justify-content:center;align-items:center;padding:10px 14px;transition:transform .2s,border-color .2s;display:inline-flex}.heroActions a:hover,.projectLink:hover,.contact a:hover{border-color:var(--accent);transform:translateY(-1px)}.grid{gap:14px;display:grid}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.four{grid-template-columns:repeat(4,minmax(0,1fr))}.stack{gap:12px;display:grid}.card,.timelineCard{border:1px solid var(--line);box-shadow:6px 6px 18px var(--shadowDark), -4px -4px 14px #414c782e;background:linear-gradient(160deg,#1f253bf2,#1a1e2ef2);border-radius:16px;padding:24px}.timelineTop{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.timelineTop span,.projectPeriod{color:var(--muted);font-size:.9rem}.company{color:var(--text);margin-bottom:4px;font-weight:600}.tags{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.tags span{border:1px solid var(--line);color:#cfd4e8;background:#ffffff08;border-radius:999px;padding:6px 10px;font-size:.86rem}.skillGroups{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.contact{margin-bottom:0;padding-bottom:8px}.contact p{margin-bottom:12px}.contactForm{border:1px solid var(--line);box-shadow:6px 6px 18px var(--shadowDark), -4px -4px 14px #414c782e;background:linear-gradient(160deg,#1f253bf2,#1a1e2ef2);border-radius:16px;gap:8px;margin-top:18px;padding:24px;display:grid}.contactForm label{color:#d7dcee;font-size:.9rem;font-weight:600}.contactForm input,.contactForm textarea{width:100%;color:var(--text);font-family:inherit;font-size:inherit;background:#0c0f1aa6;border:1px solid #ffffff24;border-radius:10px;outline:none;padding:10px 12px}.contactForm input:focus,.contactForm textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7c6dfa33}.sendBtn{border:1px solid var(--line);color:#fff;width:fit-content;font-family:inherit;font-size:inherit;background:linear-gradient(135deg, var(--accent), #5a4fd6);box-shadow:4px 4px 10px var(--shadowDark), -2px -2px 8px #414c7833;cursor:pointer;border-radius:10px;margin-top:4px;padding:10px 16px}.formFeedback{min-height:22px;color:var(--muted);margin-top:4px;font-size:.9rem}.formFeedback.success{color:#5ef6c8}.formFeedback.error{color:#ff6f91}.cvBtn{border:1px solid var(--line);color:#fff;background:linear-gradient(135deg, var(--accent), #5a4fd6);box-shadow:4px 4px 10px var(--shadowDark), -2px -2px 8px #414c7833;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;margin-top:10px;padding:11px 22px;font-size:.95rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:inline-flex}.cvBtn:hover{box-shadow:4px 4px 14px var(--shadowDark), -2px -2px 10px #414c784d, 0 0 16px #7c6dfa4d;transform:translateY(-2px)}.modalOverlay{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080c1ccc;place-items:center;display:grid;position:fixed;inset:0}.modalBox{border:1px solid var(--line);width:92%;max-width:420px;box-shadow:10px 10px 28px var(--shadowDark), -6px -6px 18px var(--shadowLight);background:linear-gradient(160deg,#1f253bfa,#1a1e2efa);border-radius:18px;padding:28px 24px;position:relative}.modalBox h3{background-image:linear-gradient(135deg, #f4f6fb, var(--accent2));color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-size:1.3rem}.modalDesc{color:var(--muted);margin-bottom:16px;font-size:.9rem}.modalClose{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1.5rem;line-height:1;position:absolute;top:12px;right:14px}.modalClose:hover{color:var(--text)}.modalBox form{gap:8px;display:grid}.modalBox label{color:#d7dcee;font-size:.88rem;font-weight:600}.modalBox input{width:100%;color:var(--text);background:#0c0f1aa6;border:1px solid #ffffff24;border-radius:10px;outline:none;padding:10px 12px;font-size:1rem}.modalBox input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7c6dfa33}.modalSubmit{border:1px solid var(--line);color:#fff;background:linear-gradient(135deg, var(--accent), #5a4fd6);box-shadow:4px 4px 10px var(--shadowDark), -2px -2px 8px #414c7833;cursor:pointer;border-radius:10px;margin-top:6px;padding:10px 16px;font-weight:600}.modalSubmit:disabled{opacity:.6;cursor:not-allowed}.modalMsg{text-align:center;margin-top:10px;font-size:.88rem}.modalMsg.success{color:#5ef6c8}.modalMsg.error{color:#ff6f91}.footer{border-top:1px solid var(--line);text-align:center;width:100%;max-width:1100px;margin:48px auto 0;padding:24px}.footerInner p{color:var(--muted);margin:0 0 6px;font-size:.88rem;line-height:1.6}.footerInner strong{color:var(--text)}.heart{color:#ff6b6b;animation:1.4s ease-in-out infinite heartBeat}.footerSelfHosted{font-style:italic;color:#7480a8!important;font-size:.8rem!important}.footerStack{letter-spacing:.02em;color:#5a6382!important;font-size:.75rem!important}.footerCopy{color:#5a6382!important;font-size:.78rem!important}@keyframes blobFloat{0%{transform:translate(0)scale(1)}to{transform:translate(25px,18px)scale(1.08)}}@keyframes orbitSpin{0%{transform:rotate(calc(var(--start) + 0deg)) translateX(120px) rotate(calc(-1 * (var(--start) + 0deg)))}to{transform:rotate(calc(var(--start) + 360deg)) translateX(110px) rotate(calc(-1 * (var(--start) + 360deg)))}}@keyframes orbitPulse{0%,to{box-shadow:4px 4px 10px var(--shadowDark), -2px -2px 8px var(--shadowLight), 0 0 0 0 #fb923c66}50%{box-shadow:4px 4px 10px var(--shadowDark), -2px -2px 8px var(--shadowLight), 0 0 0 8px #fb923c00}}@keyframes heartBeat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;font-family:var(--font-geist-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--body-bg,#1a1e2e);color:var(--body-color,#e8eaf0);flex-direction:column;display:flex}a{color:inherit;text-decoration:none}.portfolio{--bg:#1a1e2e;--bg2:#1f2439;--surface:#1f253b;--text:#e8eaf0;--muted:#9fa5bd;--accent:#7c6dfa;--accent2:#5ef6c8;--line:#ffffff14;--shadowDark:#080c1cbf;--shadowLight:#414c7859;background:radial-gradient(circle at 12% 8%, #7c6dfa33 0%, transparent 28%), radial-gradient(circle at 88% 4%, #5ef6c824 0%, transparent 24%), var(--bg);min-height:100vh;color:var(--text);padding:36px 20px 96px}@media (max-width:980px){.heroContent{text-align:center;flex-direction:column;gap:36px}.heroRoles,.heroActions,.heroStats{justify-content:center}.sendBtn{width:100%}.four,.three,.skillGroups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.portfolio{padding-top:24px}.hero{padding:80px 40px}.heroAvatar{width:170px;min-width:170px;height:170px}.avatarCircuit{width:206px;height:206px;top:-18px;left:-18px}.four,.three,.skillGroups{grid-template-columns:1fr}}
