.logo-mark{width:32px;height:32px;border-radius:9px;background:conic-gradient(from 180deg,var(--violet),var(--cyan),var(--pink),var(--violet));position:relative;animation:spin 8s linear infinite;flex-shrink:0}.logo-mark:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:5px;background:var(--bg-2)}@keyframes spin{to{transform:rotate(360deg)}}header.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:all .4s var(--ease)}header.site-header nav{display:flex;align-items:center;justify-content:space-between;padding:18px 26px;margin:16px auto 0;width:min(92%,var(--maxw));border-radius:100px;background:#0a061880;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:all .4s var(--ease)}header.site-header.scrolled nav{background:#0a0618d9;box-shadow:0 10px 40px #0006}.logo{display:flex;align-items:center;gap:11px;font-family:Space Grotesk;font-weight:700;font-size:1.25rem}.nav-links{display:flex;gap:34px}.nav-links a{color:var(--muted);font-size:.94rem;font-weight:500;transition:color .2s;position:relative}.nav-links a:after{content:"";position:absolute;left:0;bottom:-5px;height:2px;width:0;background:var(--violet);transition:width .25s var(--ease)}.nav-links a:hover{color:var(--ink)}.nav-links a:hover:after{width:100%}.nav-cta{display:flex;align-items:center;gap:14px}.mobile-toggle{display:none;background:none;border:none;color:var(--ink);cursor:pointer}.mobile-menu{display:none}.hero{padding-top:200px;padding-bottom:100px;text-align:center}.hero h1{font-size:clamp(2.8rem,8vw,6.2rem);margin:28px 0 24px}.hero p.lead{font-size:clamp(1.05rem,2vw,1.3rem);color:var(--muted);max-width:680px;margin:0 auto 40px}.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:56px}.hero-meta{display:flex;gap:36px;justify-content:center;flex-wrap:wrap;color:var(--muted-2);font-size:.9rem}.hero-meta b{color:var(--ink);font-family:Space Grotesk;display:block;font-size:1.05rem}.hero-meta .mlabel{font-size:.82rem}.float-badges{position:relative;height:0}.fb{position:absolute;padding:10px 16px;border-radius:14px;background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-size:.82rem;font-weight:500;display:flex;align-items:center;gap:8px;white-space:nowrap;animation:floaty 6s ease-in-out infinite}.fb svg{width:16px;height:16px}.fb-1{top:-320px;left:2%;animation-delay:0s}.fb-2{top:-240px;right:1%;animation-delay:1.2s}.fb-3{top:-80px;left:6%;animation-delay:2.4s}.fb-4{top:-140px;right:5%;animation-delay:.6s}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.mockup{margin-top:70px;border-radius:18px;border:1px solid var(--glass-border);background:linear-gradient(180deg,#140e28e6,#080512f2);box-shadow:0 40px 120px #0009,inset 0 1px #ffffff0f;overflow:hidden;position:relative;transform:perspective(1600px) rotateX(8deg);transition:transform .6s var(--ease);text-align:left}.mockup:hover{transform:perspective(1600px) rotateX(2deg)}.mockup-bar{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--glass-border)}.mockup-bar .dots{display:flex;gap:7px}.mockup-bar .dots i{width:11px;height:11px;border-radius:50%;display:block}.mockup-bar .dots i:nth-child(1){background:#ff5f57}.mockup-bar .dots i:nth-child(2){background:#febc2e}.mockup-bar .dots i:nth-child(3){background:#28c840}.mockup-bar .addr{margin-left:14px;font-family:JetBrains Mono;font-size:.78rem;color:var(--muted-2);background:#0000004d;padding:5px 14px;border-radius:8px;flex:1}.terminal{padding:24px 26px;font-family:JetBrains Mono,monospace;font-size:.86rem;line-height:1.9;min-height:260px}.terminal .prompt{color:var(--lime)}.terminal .cmd{color:var(--ink)}.terminal .out{color:var(--muted)}.terminal .k{color:var(--pink)}.terminal .s{color:var(--lime)}.terminal .f{color:var(--cyan)}.terminal .c{color:var(--muted-2)}.terminal .caret{display:inline-block;width:9px;height:1.05em;background:var(--cyan);vertical-align:text-bottom;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.marquee-wrap{padding:50px 0;border-block:1px solid var(--glass-border);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.marquee-label{text-align:center;color:var(--muted-2);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:28px;font-family:JetBrains Mono}.marquee{display:flex;gap:64px;width:max-content;animation:scroll 32s linear infinite}.marquee span{font-family:Space Grotesk;font-weight:600;font-size:1.4rem;color:var(--muted-2);opacity:.6;transition:opacity .3s,color .3s;white-space:nowrap}.marquee span:hover{opacity:1;color:var(--ink)}@keyframes scroll{to{transform:translate(-50%)}}.about-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;margin-top:60px;align-items:stretch}.about-card{border-radius:var(--radius);border:1px solid var(--glass-border);background:var(--glass);padding:36px}.about-card p{color:var(--muted);font-size:1.05rem}.about-card p+p{margin-top:18px}.about-card .hl{color:var(--ink);font-weight:600}.skill-groups{display:grid;grid-template-columns:1fr 1fr;gap:22px}.skill-group h4{font-family:JetBrains Mono;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);margin-bottom:14px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:.82rem;color:var(--muted);padding:6px 13px;border-radius:100px;border:1px solid var(--glass-border);background:#ffffff05;transition:all .25s var(--ease)}.chip:hover{color:var(--ink);border-color:#8b5cf680;transform:translateY(-2px)}.timeline{margin-top:60px;display:flex;flex-direction:column;gap:18px}.xp{position:relative;border-radius:var(--radius);border:1px solid var(--glass-border);background:var(--glass);padding:30px;transition:transform .4s var(--ease),border-color .4s,background .4s;overflow:hidden}.xp:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius);background:radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),rgba(139,92,246,.12),transparent 40%);opacity:0;transition:opacity .4s;pointer-events:none}.xp:hover{transform:translateY(-4px);border-color:#8b5cf666;background:#8b5cf60d}.xp:hover:before{opacity:1}.xp-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}.xp h3{font-size:1.35rem}.xp .company{display:inline-flex;align-items:center;gap:8px;color:var(--violet);font-weight:600;font-size:1rem;margin-top:4px}.xp .company:hover{color:var(--cyan)}.xp .meta{text-align:right;flex-shrink:0}.xp .period{font-family:JetBrains Mono;font-size:.8rem;color:var(--muted);white-space:nowrap}.xp .where{font-size:.82rem;color:var(--muted-2);margin-top:4px}.xp .tag{display:inline-block;font-family:JetBrains Mono;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);border:1px solid var(--glass-border);padding:3px 9px;border-radius:100px;margin-top:8px}.xp ul.bullets{margin:18px 0 0;display:flex;flex-direction:column;gap:9px}.xp ul.bullets li{position:relative;padding-left:20px;color:var(--muted);font-size:.96rem}.xp ul.bullets li:before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:2px;background:var(--violet)}.xp .skills{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:60px}.tile{border-radius:var(--radius);border:1px solid var(--glass-border);background:var(--glass);padding:30px;position:relative;overflow:hidden;transition:transform .4s var(--ease),border-color .4s,background .4s;display:flex;flex-direction:column}.tile:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius);background:radial-gradient(400px circle at var(--mx, 50%) var(--my, 50%),rgba(139,92,246,.14),transparent 40%);opacity:0;transition:opacity .4s;pointer-events:none}.tile:hover{transform:translateY(-6px);border-color:#8b5cf666;background:#8b5cf60d}.tile:hover:before{opacity:1}.tile-icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#8b5cf640,#22d3ee26);border:1px solid var(--glass-border);margin-bottom:18px}.tile-icon svg{width:22px;height:22px;color:var(--cyan)}.tile h3{font-size:1.3rem;margin-bottom:10px}.tile p.desc{color:var(--muted);font-size:.96rem}.tile .tile-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.tile .tile-links{display:flex;gap:16px;margin-top:auto;padding-top:20px}.tile .tile-links a{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;color:var(--muted);font-weight:500;transition:color .2s}.tile .tile-links a:hover{color:var(--cyan)}.tile.wide{grid-column:span 4}.tile.tall{grid-column:span 2}.tile.normal{grid-column:span 3}.blog-band{margin-top:60px;border-radius:var(--radius);border:1px solid var(--glass-border);background:linear-gradient(135deg,#22d3ee14,#8b5cf61a);padding:44px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.blog-band h3{font-size:1.5rem;margin-bottom:8px}.blog-band p{color:var(--muted);max-width:460px}.cta-band{text-align:center;border-radius:32px;padding:80px 40px;position:relative;overflow:hidden;border:1px solid var(--glass-border);background:linear-gradient(135deg,#8b5cf62e,#22d3ee14)}.cta-band:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(600px circle at 50% 0%,rgba(139,92,246,.3),transparent 60%);pointer-events:none}.cta-band h2{font-size:clamp(2rem,5vw,3.4rem);position:relative;margin-bottom:18px}.cta-band p{color:var(--muted);position:relative;max-width:540px;margin:0 auto 34px;font-size:1.1rem}.cta-band .hero-cta{margin-bottom:0;position:relative}footer.site-footer{border-top:1px solid var(--glass-border);padding:60px 0 40px}.foot-bottom{display:flex;justify-content:space-between;align-items:center;color:var(--muted-2);font-size:.85rem;flex-wrap:wrap;gap:16px}.socials{display:flex;gap:14px}.socials a{width:38px;height:38px;border-radius:10px;border:1px solid var(--glass-border);display:grid;place-items:center;transition:all .3s}.socials a:hover{background:var(--glass);border-color:var(--violet);transform:translateY(-2px)}.socials svg{width:18px;height:18px}@media (max-width: 900px){.nav-links,.nav-cta .btn-ghost{display:none}.mobile-toggle{display:block}.mobile-menu.open{display:flex;flex-direction:column;gap:6px;width:min(92%,var(--maxw));margin:10px auto 0;padding:14px;border-radius:20px;background:#0a0618f2;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.mobile-menu.open a{padding:12px 16px;border-radius:12px;color:var(--muted)}.mobile-menu.open a:hover{background:var(--glass);color:var(--ink)}.about-grid,.bento{grid-template-columns:1fr}.tile.wide,.tile.tall,.tile.normal{grid-column:span 1}.mockup{transform:none}.float-badges{display:none}.hero{padding-top:150px}}@media (max-width: 560px){.skill-groups{grid-template-columns:1fr}.xp-top{flex-direction:column}.xp .meta{text-align:left}}.contact-form{position:relative;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:16px;text-align:left}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field>span{font-family:JetBrains Mono;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.field input,.field textarea{font-family:Inter;font-size:.96rem;color:var(--ink);background:#00000040;border:1px solid var(--glass-border);border-radius:14px;padding:13px 16px;transition:border-color .25s var(--ease),background .25s;width:100%;resize:vertical}.field textarea{min-height:120px}.field input::placeholder,.field textarea::placeholder{color:var(--muted-2)}.field input:focus,.field textarea:focus{outline:none;border-color:#8b5cf699;background:#8b5cf60f}.contact-form .btn-primary{align-self:center;margin-top:6px;min-width:220px;justify-content:center}.contact-form .btn-primary:disabled{opacity:.6;cursor:default}.form-error{color:#ff8095;font-size:.9rem;margin:0}.form-note{position:relative;margin:26px 0 0;font-size:.9rem;color:var(--muted-2)}.form-success{position:relative;max-width:520px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:10px}.form-success .check{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--violet),var(--cyan));margin-bottom:6px;animation:pop .45s var(--ease)}.form-success .check svg{width:26px;height:26px;color:#fff}.form-success h3{font-size:1.5rem}.form-success p{margin:0 0 14px}@keyframes pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.resume-page{padding-top:120px;padding-bottom:100px}.resume-wrap{width:min(92%,880px)}.resume-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px;flex-wrap:wrap}.resume-doc{border-radius:var(--radius);border:1px solid var(--glass-border);background:#0a06188c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:48px clamp(24px,5vw,56px);box-shadow:0 30px 90px #00000073}.resume-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;padding-bottom:24px;border-bottom:1px solid var(--glass-border)}.resume-name{font-size:clamp(2rem,5vw,2.8rem)}.resume-role{color:var(--violet);font-weight:600;font-size:1.1rem;margin-top:4px}.resume-contacts{display:flex;flex-direction:column;gap:7px;font-size:.88rem;color:var(--muted)}.resume-contacts li{display:flex;align-items:center;gap:9px}.resume-contacts svg{width:15px;height:15px;color:var(--cyan);flex-shrink:0}.resume-contacts a:hover{color:var(--ink)}.resume-summary{color:var(--muted);font-size:1.02rem;margin:24px 0 4px}.resume-summary .hl{color:var(--ink)}.resume-section{margin-top:64px;padding:0}.resume-h2{font-family:JetBrains Mono;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);padding-bottom:12px;margin-bottom:22px;border-bottom:1px solid var(--glass-border)}.resume-list{display:flex;flex-direction:column;gap:44px}.resume-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.resume-item-head h3{font-size:1.2rem}.resume-item-head .company{color:var(--violet);font-weight:600;font-size:.96rem}.resume-item-head .company:hover{color:var(--cyan)}.resume-major{color:var(--muted);font-size:.9rem;margin-top:3px}.resume-item-meta{text-align:right;flex-shrink:0}.resume-item-meta .period{display:block;font-family:JetBrains Mono;font-size:.8rem;color:var(--muted)}.resume-item-meta .where{display:block;font-size:.8rem;color:var(--muted-2);margin-top:3px}.resume-item .bullets{margin:14px 0 0;display:flex;flex-direction:column;gap:8px}.resume-item .bullets li{position:relative;padding-left:20px;color:var(--muted);font-size:.94rem}.resume-item .bullets li:before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:2px;background:var(--violet)}.resume-item .skills{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.resume-skills{display:grid;grid-template-columns:1fr 1fr;gap:22px}.chip.lang b{color:var(--ink);font-family:JetBrains Mono;font-size:.72rem;margin-right:4px}.chip.lang.lvl-native{border-color:#a3e63566}.chip.lang.lvl-fluent{border-color:#8b5cf666}.chip.lang.lvl-good{border-color:#22d3ee66}@media (max-width: 560px){.field-row,.resume-skills{grid-template-columns:1fr}.resume-contacts{flex-direction:row;flex-wrap:wrap;gap:12px 18px}.resume-item-meta{text-align:left}}:root{--bg: #05030c;--bg-2: #0a0618;--ink: #f4f1ff;--muted: #a39bc4;--muted-2: #6f6790;--violet: #8b5cf6;--indigo: #6366f1;--cyan: #22d3ee;--pink: #ec4899;--lime: #a3e635;--glass: rgba(255, 255, 255, .04);--glass-border: rgba(255, 255, 255, .08);--radius: 20px;--maxw: 1200px;--ease: cubic-bezier(.22, 1, .36, 1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}body.custom-cursor,body.custom-cursor a,body.custom-cursor button,body.custom-cursor .interactive{cursor:none}::selection{background:var(--violet);color:#fff}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul{list-style:none}button{font-family:inherit}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:9999;mix-blend-mode:difference}.cursor-dot{width:7px;height:7px;background:#fff;transform:translate(-50%,-50%)}.cursor-ring{width:34px;height:34px;border:1.5px solid rgba(255,255,255,.6);transform:translate(-50%,-50%);transition:width .25s var(--ease),height .25s var(--ease),background .25s}.cursor-ring.hovering{width:56px;height:56px;background:#ffffff14;border-color:transparent}@media (hover: none){.cursor-dot,.cursor-ring{display:none}}.bg-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-3;background:radial-gradient(900px 600px at 75% -10%,rgba(139,92,246,.22),transparent 60%),radial-gradient(800px 700px at 10% 20%,rgba(34,211,238,.12),transparent 55%),radial-gradient(700px 600px at 90% 80%,rgba(236,72,153,.14),transparent 55%),var(--bg)}.grid-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse 100% 60% at 50% 0%,#000 30%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse 100% 60% at 50% 0%,#000 30%,transparent 80%)}.noise{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.04;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.orb{position:fixed;border-radius:50%;filter:blur(80px);opacity:.5;z-index:-2;pointer-events:none;will-change:transform}.orb-1{width:420px;height:420px;background:var(--violet);top:-120px;left:-80px}.orb-2{width:360px;height:360px;background:var(--cyan);top:40%;right:-120px;opacity:.3}.orb-3{width:300px;height:300px;background:var(--pink);bottom:-100px;left:30%;opacity:.35}.wrap{width:min(92%,var(--maxw));margin-inline:auto}section{position:relative;padding:120px 0}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);padding:7px 14px;border:1px solid var(--glass-border);border-radius:100px;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px var(--lime);animation:pulse 1.6s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}h1,h2,h3{font-family:Space Grotesk,sans-serif;font-weight:700;line-height:1.05;letter-spacing:-.02em}.gradient-text{background:linear-gradient(120deg,#fff 0%,var(--violet) 40%,var(--cyan) 75%,var(--pink) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.section-head{text-align:center;display:flex;flex-direction:column;align-items:center}.section-title{font-size:clamp(2rem,5vw,3.6rem);margin:18px 0}.section-sub{color:var(--muted);font-size:1.1rem;max-width:620px}.btn{font-family:Inter;font-weight:600;font-size:.94rem;padding:12px 24px;border-radius:100px;border:none;transition:all .3s var(--ease);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--glass-border)}.btn-ghost:hover{background:var(--glass);border-color:#fff3}.btn-primary{background:linear-gradient(120deg,var(--violet),var(--indigo));color:#fff;box-shadow:0 8px 30px #8b5cf666;position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,var(--cyan),var(--pink));opacity:0;transition:opacity .3s}.btn-primary span{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 40px #8b5cf68c}.btn-primary:hover:before{opacity:1}.btn-lg{padding:16px 32px;font-size:1.02rem}.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}*{scroll-behavior:auto!important}}@media (max-width: 900px){section{padding:80px 0}}
