:root{color-scheme:dark;--primary: #6366f1;--primary-hover: #4f46e5;--primary-strong: #5558e8;--accent: #10b981;--bg-dark: #08080a;--bg-alt: #141417;--text-main: #fafafa;--text-muted: #a1a1aa;--glass: rgba(30, 30, 34, .7);--glass-border: rgba(255, 255, 255, .1);--container-max: 1100px;--nav-height: 80px;--section-padding: 100px 0;--transition: all .3s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-padding-top:var(--nav-height)}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}body{font-family:Inter,sans-serif;background-color:var(--bg-dark);color:var(--text-main);line-height:1.6;overflow-x:hidden;position:relative}body.no-scroll{overflow:hidden}#particles-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.5}h1,h2,h3,.logo{font-family:Outfit,sans-serif}.container{max-width:var(--container-max);margin:0 auto;padding:0 20px}.text-muted{color:var(--text-muted)}.gradient-text{background:linear-gradient(135deg,#818cf8,#6366f1);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}#navbar{height:var(--nav-height);position:fixed;top:0;left:0;width:100%;z-index:1000;display:flex;align-items:center;border-bottom:1px solid transparent;transition:background .3s cubic-bezier(.4,0,.2,1),border-color .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1)}#navbar.scrolled{background:linear-gradient(180deg,#101013eb,#0c0c0fdb);border-bottom-color:var(--glass-border);height:70px}.nav-content{display:flex;justify-content:space-between;align-items:center;width:100%}.logo{font-size:1.5rem;font-weight:800;text-decoration:none;color:var(--text-main);position:relative;transition:color .2s ease,text-shadow .2s ease}.logo span{color:var(--primary)}.logo:after{content:"";position:absolute;right:0;bottom:-6px;left:0;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,var(--primary),var(--accent),transparent);opacity:0;transform:scaleX(.55);transition:opacity .2s ease,transform .2s ease}.logo:hover,.logo:focus-visible{color:#fff;text-shadow:0 0 22px rgba(129,140,248,.35)}.logo:hover:after,.logo:focus-visible:after{opacity:1;transform:scaleX(1)}.nav-links{display:flex;list-style:none;gap:32px;align-items:center}.nav-actions{display:flex;align-items:center;gap:16px}.menu-toggle{display:none;background:var(--glass);border:1px solid var(--glass-border);width:44px;height:44px;border-radius:12px;position:relative;cursor:pointer;z-index:2000;padding:0;transition:var(--transition)}.menu-toggle:hover{background:#6366f11a;border-color:var(--primary)}.hamburger{display:block;width:20px;height:2px;background:var(--text-main);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transition:var(--transition)}.hamburger:before,.hamburger:after{content:"";position:absolute;width:20px;height:2px;background:var(--text-main);transition:var(--transition)}.hamburger:before{top:-6px}.hamburger:after{top:6px}.menu-active .hamburger{background:transparent}.menu-active .hamburger:before{top:0;transform:rotate(45deg)}.menu-active .hamburger:after{top:0;transform:rotate(-45deg)}.nav-links a{text-decoration:none;color:var(--text-muted);font-weight:500;transition:var(--transition);font-size:.95rem;position:relative;padding:4px 0}.nav-links a:not(.github-link):after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--primary);transform:scaleX(0);transform-origin:left center;transition:transform .25s cubic-bezier(.22,.61,.36,1)}.nav-links a:hover,.nav-links a.active{color:var(--text-main)}.nav-links a:not(.github-link):hover:after,.nav-links a:not(.github-link).active:after{transform:scaleX(1)}.nav-links a.active{font-weight:600}.github-link{background:var(--primary);color:#fff!important;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--transition);padding:0;flex-shrink:0}.github-link svg{width:24px;height:24px}.tooltip-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center}.tooltip-trigger:after{content:attr(data-username);position:absolute;top:100%;left:50%;transform:translate(-50%) translateY(0);background:#101013f2;background-clip:padding-box;color:#fff;padding:8px 16px;border-radius:10px;font-size:.85rem;font-weight:600;white-space:nowrap;opacity:0;visibility:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid var(--glass-border);border-top:15px solid transparent;box-shadow:0 10px 25px #0006;z-index:1000;letter-spacing:.5px}.tooltip-trigger:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%) translateY(0);border-width:6px;border-style:solid;border-color:transparent transparent rgba(16,16,19,.95) transparent;opacity:0;visibility:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1001;margin-top:4px}.tooltip-trigger:hover:after,.tooltip-trigger:hover:before{opacity:1;visibility:visible;transform:translate(-50%) translateY(10px)}.github-link:hover{background:var(--primary-hover)!important;transform:translateY(-2px)}.hero{min-height:92vh;min-height:92svh;display:flex;align-items:center;padding-top:var(--nav-height);position:relative;isolation:isolate;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,rgba(99,102,241,.16) 0%,transparent 32%),linear-gradient(245deg,rgba(16,185,129,.08) 0%,transparent 34%),linear-gradient(180deg,transparent 0%,rgba(16,16,19,.58) 100%);-webkit-mask-image:linear-gradient(180deg,black 0%,black 72%,transparent 100%);mask-image:linear-gradient(180deg,black 0%,black 72%,transparent 100%);pointer-events:none;z-index:0}.hero .container{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center;position:relative;z-index:1}.badge{display:flex;align-items:center;gap:14px;margin-bottom:22px;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#fafafaad}.badge:before{content:"";flex:none;width:30px;height:2px;border-radius:1px;background:var(--primary);box-shadow:0 0 12px #6366f18c}.hero h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1.1;font-weight:800;margin-bottom:24px}.subtitle{font-size:1.25rem;margin-bottom:40px;max-width:500px}.btn{display:inline-block;padding:14px 28px;border-radius:12px;font-weight:600;text-decoration:none;transition:var(--transition);cursor:pointer}.btn-primary{background:var(--primary-strong);color:#fff;border:none}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-3px);box-shadow:0 10px 20px #6366f14d}.btn-outline{background:transparent;color:var(--text-main);border:1px solid var(--glass-border)}.btn-outline:hover{background:var(--glass-border);transform:translateY(-3px)}.hero-visual{position:relative;min-height:460px;display:flex;align-items:center;justify-content:center}.hero-visual:before,.hero-visual:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.hero-visual:before{width:min(44vw,560px);aspect-ratio:1;background:radial-gradient(circle at 42% 40%,rgba(99,102,241,.3),transparent 58%),radial-gradient(circle at 65% 62%,rgba(16,185,129,.18),transparent 52%);opacity:.84;animation:hero-orbit-glow 11s ease-in-out infinite alternate}.hero-visual:after{width:min(34vw,430px);aspect-ratio:1;border:1px solid rgba(199,210,254,.08);box-shadow:inset 0 0 46px #6366f11a,0 0 60px #10b98114;transform:rotateX(68deg) rotate(-18deg);opacity:.86}.hero-3d-canvas{position:relative;z-index:1;width:min(100%,560px);height:min(52vw,500px);min-height:410px;display:block;touch-action:none}.hero-visual:after{box-shadow:0 24px 54px #00000052}@keyframes hero-orbit-glow{0%{transform:translate3d(-18px,12px,0)}to{transform:translate3d(18px,-16px,0)}}.section{padding:var(--section-padding);position:relative;z-index:1}.dark-stage{position:relative;overflow:hidden;isolation:isolate}.dark-stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-3;pointer-events:none;background:linear-gradient(180deg,#05050600,#0505064d 80px,#050506a8,#050506e6 260px,#050506 360px,#050506 calc(100% - 360px),#050506e6 calc(100% - 260px),#050506a8 calc(100% - 170px),#0505064d calc(100% - 80px),#05050600)}.stage-threads{position:absolute;top:0;right:-12%;bottom:0;left:-12%;z-index:-2;pointer-events:none}.stage-threads canvas{display:block;width:100%;height:100%}.stage-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(85% 68% at 50% 52%,rgba(5,5,6,.55) 0%,transparent 78%)}.stage-veil:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.035;-webkit-mask-image:linear-gradient(180deg,transparent 0px,#000 260px,#000 calc(100% - 260px),transparent 100%);mask-image:linear-gradient(180deg,transparent 0px,#000 260px,#000 calc(100% - 260px),transparent 100%);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}.reveal{opacity:0}.reveal.is-visible{opacity:1;animation-name:reveal-rise;animation-duration:var(--reveal-duration, .56s);animation-timing-function:cubic-bezier(.22,.61,.36,1);animation-delay:var(--reveal-delay, 0ms);animation-fill-mode:backwards;will-change:opacity,transform}@keyframes reveal-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.reveal,.reveal.is-visible{opacity:1;animation:none;will-change:auto}}.bg-alt{background-color:var(--bg-alt)}.section-header{margin-bottom:60px}.section-title{font-size:2.5rem;font-weight:700;margin-bottom:16px}.line{width:60px;height:4px;background:var(--primary);border-radius:2px}.section-subtitle{font-size:1.1rem;color:var(--text-muted);max-width:800px;margin-top:24px;line-height:1.6}.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:60px;align-items:center}@media (max-width: 992px){.about-grid{grid-template-columns:1fr;gap:40px;text-align:center}.about-image{margin:0 auto}}.about-image{position:relative;width:100%;max-width:300px}.image-wrapper{position:relative;z-index:1;border-radius:30px;overflow:hidden;aspect-ratio:1;box-shadow:0 20px 40px #0000004d}.gravatar-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.image-wrapper:hover .gravatar-img{transform:scale(1.05)}.image-border{position:absolute;top:-15px;right:-15px;bottom:15px;left:15px;border:3px solid var(--primary);border-radius:30px;z-index:0;opacity:.5;transition:all .5s ease}.about-image:hover .image-border{top:15px;right:15px;bottom:-15px;left:-15px;opacity:1}.about-content{display:flex;flex-direction:column;gap:24px;font-size:1.15rem;max-width:800px}.about-content p{margin:0}.about-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.about-highlight{min-height:104px;padding:18px;border-radius:8px;background:linear-gradient(135deg,#6366f11f,#10b9810a),#1010138c;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;justify-content:space-between}.about-highlight span{color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}.about-highlight strong{color:var(--text-main);font-family:Outfit,sans-serif;font-size:1.05rem;line-height:1.25}.about-note{padding:16px 18px;border-left:3px solid var(--accent);border-radius:8px;background:#10b98114;color:var(--text-main)}.accent-link{color:#c7d2fe;text-decoration:none;font-weight:700;position:relative;white-space:nowrap;transition:color .2s ease,text-shadow .2s ease}.accent-link:after{content:"";position:absolute;right:0;bottom:-3px;left:0;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--accent));transform:scaleX(1);transform-origin:left;transition:height .2s ease,transform .2s ease,opacity .2s ease;opacity:.75}.accent-link:hover,.accent-link:focus-visible{color:var(--text-main);text-shadow:0 0 18px rgba(129,140,248,.35)}.accent-link:hover:after,.accent-link:focus-visible:after{height:3px;transform:scaleX(1.06);opacity:1}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:20px}.skill-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto 1fr auto;grid-template-areas:"icon title" "desc desc" "stack stack";column-gap:16px;row-gap:18px;padding:28px;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:linear-gradient(158deg,#2c2c329e,#16161ac7 45%,#09090bdb);box-shadow:0 22px 48px #0000008c,inset 0 1px #ffffff12;transition:transform .35s cubic-bezier(.4,0,.2,1),border-color .35s ease,box-shadow .35s ease;position:relative;overflow:hidden;isolation:isolate}.skill-card:before{content:"";position:absolute;top:0;right:24px;left:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);opacity:.55;transition:var(--transition);z-index:-1}.skill-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 80% at 0% 0%,rgba(99,102,241,.18),transparent 58%),radial-gradient(90% 70% at 100% 100%,rgba(16,185,129,.12),transparent 60%);opacity:0;transition:opacity .35s ease;pointer-events:none;z-index:-1}.skill-card:hover{transform:translateY(-6px);border-color:#ffffff42;box-shadow:0 30px 64px #000000b3,0 0 34px #818cf829,inset 0 1px #ffffff1f}.skill-card:hover:before{opacity:1}.skill-card:hover:after{opacity:1}.skill-card h3{grid-area:title;align-self:center;margin:0;font-size:1.15rem;line-height:1.3;color:var(--text-main)}.skill-desc{grid-area:desc;margin:0;font-size:.95rem;line-height:1.65;color:var(--text-muted)}.skill-stack{grid-area:stack;display:flex;flex-wrap:wrap;gap:6px;align-self:end;margin:0;padding:16px 0 0;border-top:1px solid rgba(161,161,170,.14);list-style:none}.skill-stack li{padding:4px 10px;border:1px solid rgba(129,140,248,.22);border-radius:99px;background:#6366f11a;color:#c7d2fe;font-size:.72rem;font-weight:600;letter-spacing:.01em;line-height:1.5;white-space:nowrap;transition:var(--transition)}.skill-card:hover .skill-stack li{border-color:#818cf866;background:#6366f129;color:#e0e7ff}.skill-icon{grid-area:icon;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;padding:12px;color:var(--icon-color, var(--primary));background:linear-gradient(158deg,#ffffff1a,#ffffff05),#09090b8c;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px #ffffff14;transition:var(--transition)}.skill-card:hover .skill-icon{border-color:#ffffff38;box-shadow:0 0 26px -6px currentColor,inset 0 1px #ffffff1f;transform:translateY(-2px)}.skill-icon svg{width:100%;height:100%;transition:filter .35s ease}.skill-card:hover .skill-icon svg{filter:drop-shadow(0 0 9px currentColor)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:30px;min-height:300px}.project-card{display:flex;flex-direction:column;gap:18px;padding:28px;border-radius:22px;border:1px solid rgba(255,255,255,.1);background:linear-gradient(158deg,#2c2c3299,#18181cc7 45%,#0d0d10db);box-shadow:0 22px 48px #08080a80,inset 0 1px #ffffff12;transition:transform .35s cubic-bezier(.4,0,.2,1),border-color .35s ease,box-shadow .35s ease;position:relative;overflow:hidden;isolation:isolate}.project-card:before{content:"";position:absolute;top:0;right:22px;left:22px;height:1px;background:linear-gradient(90deg,transparent,var(--project-accent, rgba(255, 255, 255, .5)),transparent);opacity:.5;transition:var(--transition);z-index:-1}.project-card:hover{transform:translateY(-6px);border-color:#ffffff3d;box-shadow:0 30px 64px #08080a9e,0 0 34px #818cf829,inset 0 1px #ffffff1f}.project-card:hover:before{opacity:1}.project-head{display:flex;align-items:center;gap:12px}.project-monogram{width:80px;height:80px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-family:Outfit,sans-serif;font-size:2rem;font-weight:800;line-height:1;color:var(--project-accent, var(--primary));transition:var(--transition)}.project-card:hover .project-monogram{transform:translateY(-2px)}.project-monogram img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 6px 14px rgba(0,0,0,.55))}.project-monogram svg{width:46px;height:46px;display:block;color:var(--text-main);filter:drop-shadow(0 6px 14px rgba(0,0,0,.55))}.project-head h3{flex:1;min-width:0;font-size:1.3rem;line-height:1.2;overflow-wrap:anywhere}.project-desc{margin:0;color:var(--text-muted);font-size:.95rem;overflow-wrap:anywhere}.project-stack{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.project-stack li{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid rgba(255,255,255,.1);border-radius:99px;background:#08080a73;color:var(--text-main);font-size:.75rem;font-weight:600;line-height:1.5;white-space:nowrap}.project-stack .lang-dot{width:8px;height:8px}.project-lang{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--text-muted)}.lang-dot{width:10px;height:10px;border-radius:50%}.project-foot{margin-top:auto;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}.project-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;min-height:24px}.project-stat{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid rgba(255,255,255,.1);border-radius:99px;background:#08080a73;color:var(--text-muted);font-size:.78rem;font-weight:600;line-height:1.5;white-space:nowrap}.project-stat svg{flex-shrink:0}.project-stat-star{color:#fcd34d}.stat-icon-docker{color:#2496ed}.project-links{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.project-btn{flex:1 1 140px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font-size:.92rem;text-align:center}.project-btn svg{transition:transform .25s ease}.project-btn:hover svg{transform:translate(3px)}.project-featured{margin:0}.project-featured-label{display:block;margin-bottom:10px;color:var(--text-muted);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.project-featured-chips{display:flex;flex-wrap:wrap;gap:8px}.featured-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid rgba(99,102,241,.22);border-radius:99px;background:linear-gradient(135deg,#6366f11f,#10b9810d),#10101373;color:var(--text-main);font-size:.8rem;font-weight:600;text-decoration:none;line-height:1;transition:var(--transition)}.featured-chip:hover,.featured-chip:focus-visible{border-color:#6366f18c;background:linear-gradient(135deg,#6366f133,#10b9811a),#1010138c;transform:translateY(-2px);box-shadow:0 8px 20px #00000040,0 0 18px #6366f126}.featured-chip-icon{width:22px;height:22px;border-radius:50%;background:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #00000040}.featured-chip-icon img{width:14px;height:14px;object-fit:contain;display:block}.featured-chip-arrow{color:var(--text-muted);flex-shrink:0;transition:var(--transition)}.featured-chip:hover .featured-chip-arrow,.featured-chip:focus-visible .featured-chip-arrow{color:var(--primary);transform:translate(2px,-2px)}.loader{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.spinner{width:40px;height:40px;border:4px solid var(--bg-alt);border-top:4px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-container{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--glass);border:1px solid var(--glass-border);border-radius:24px;text-align:center;gap:20px;transition:var(--transition)}.error-icon{font-size:3rem;margin-bottom:10px}.error-container p{color:var(--text-muted);font-size:1.1rem;max-width:400px;margin:0 auto}.footer{padding:60px 0;border-top:1px solid var(--glass-border)}.footer-content{display:flex;justify-content:space-between;align-items:center}.social-links{display:flex;gap:20px;align-items:center}.footer-socials a{color:var(--text-muted);transition:var(--transition);display:flex;align-items:center;justify-content:center}.footer-socials a:hover{color:var(--primary);transform:translateY(-3px) scale(1.1)}.footer-socials svg{width:26px;height:26px}.project-link:hover{color:var(--primary-hover)}.contact.section{padding-top:40px;padding-bottom:100px}.contact-card{max-width:880px;margin:0 auto;text-align:center;padding:80px 40px;border-radius:40px}.glass-panel{position:relative;background:linear-gradient(158deg,#40404e57,#1c1c246b 46%,#10101580);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border:1px solid rgba(255,255,255,.09);box-shadow:0 25px 50px -12px #0000008c,inset 0 1px #ffffff24,inset 0 0 60px #818cf80d}.glass-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.07) 0%,transparent 38%)}.contact-card .line{margin-left:auto;margin-right:auto}.contact-subtitle{font-size:1.2rem;color:var(--text-muted);margin:0 auto 48px;max-width:760px;line-height:1.6}.contact-email-link{display:inline-flex;align-items:center;gap:12px;font-family:Outfit,sans-serif;font-size:1.5rem;color:var(--text-main);text-decoration:none;padding:12px 24px;border-radius:16px;background:#6366f10d;border:1px solid rgba(99,102,241,.1);transition:all .4s cubic-bezier(.4,0,.2,1);margin-top:20px;max-width:100%;word-break:break-word}.contact-email-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-email-link:hover{color:var(--primary);background:#6366f11a;border-color:var(--primary);transform:translateY(-4px);box-shadow:0 15px 40px #6366f126}.contact-email-link .icon{color:var(--primary);transition:var(--transition)}.contact-email-link:hover .icon{transform:rotate(-10deg) scale(1.1)}@media (max-width: 968px){.hero{align-items:flex-start;padding-top:calc(var(--nav-height) + 48px)}.hero .container{grid-template-columns:1fr;gap:28px;text-align:center}.badge{justify-content:center}.hero h1{margin:0 auto 24px}.subtitle{margin:0 auto 40px}.hero-visual{min-height:320px}.hero-visual:before{width:min(78vw,430px)}.hero-visual:after{width:min(62vw,340px)}.hero-3d-canvas{width:min(100%,440px);height:320px;min-height:300px}}@media (max-width: 768px){.menu-toggle{display:block}.nav-links{position:fixed;top:0;right:-100%;width:100%;height:100vh;background:#0d0d10fa;flex-direction:column;justify-content:center;gap:40px;transition:.5s cubic-bezier(.4,0,.2,1);z-index:1000;padding:40px}.nav-links.active{right:0}.nav-links li{width:100%;display:flex;justify-content:center}.nav-links a{font-size:1.5rem;font-weight:600}.section-title{font-size:2rem}.about-highlights{grid-template-columns:1fr}.about-highlight{min-height:auto;gap:10px}.footer-content{flex-direction:column;gap:24px;text-align:center}.contact-email-link{font-size:1.1rem;padding:10px 16px;width:100%;justify-content:center}.contact-email-link span{white-space:normal;word-break:break-all}}@media (max-width: 480px){.hero-visual{min-height:250px}.hero-3d-canvas{height:250px;min-height:250px}.contact-card{padding:30px 15px}.contact-subtitle{font-size:1rem}.contact-email-link{font-size:.95rem}}.lang-switch{display:flex;align-items:center;gap:8px;background:var(--glass);padding:6px 12px;border-radius:20px;border:1px solid var(--glass-border)}.lang-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;font-weight:600;transition:var(--transition)}.lang-btn:hover{color:var(--text-main)}.lang-btn.active{color:var(--primary)}.lang-separator{color:var(--glass-border);font-size:.8rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.scroll-cue{position:absolute;bottom:28px;left:50%;z-index:2;width:34px;height:34px;transform:translate(-50%);border-radius:50%;border:1px solid var(--glass-border);background:#1a1a1fb8;display:flex;align-items:center;justify-content:center;color:var(--text-muted);text-decoration:none;transition:var(--transition);animation:scroll-cue-float 2.2s ease-in-out infinite}.scroll-cue span{width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-1px,-1px)}.scroll-cue:hover{color:var(--text-main);border-color:#6366f173;background:#6366f11f;box-shadow:0 0 24px #6366f12e}@keyframes scroll-cue-float{0%,to{transform:translate(-50%) translateY(0);opacity:.7}50%{transform:translate(-50%) translateY(8px);opacity:1}}.soft-glow{position:relative;isolation:isolate}.soft-glow:before{content:"";position:absolute;top:-18px;right:-18px;bottom:-18px;left:-18px;z-index:-1;border-radius:34px;background:radial-gradient(circle at 20% 20%,rgba(99,102,241,.18),transparent 42%),radial-gradient(circle at 80% 80%,rgba(16,185,129,.12),transparent 46%);filter:blur(24px);opacity:.85;pointer-events:none}@media (max-width: 480px){.soft-glow:before{top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:26px;filter:blur(18px);opacity:.65}}@media (prefers-reduced-motion: reduce){.hero-visual:before,.scroll-cue{animation:none}}.project-stat-pulls{font-family:inherit;cursor:help;transition:border-color .2s ease,color .2s ease,background .2s ease}.project-stat-pulls:hover,.project-stat-pulls:focus-visible,.project-stat-pulls.is-open{color:var(--text-main);border-color:#818cf873;background:#6366f124}.project-stat-hint{opacity:.55}.project-stat-pulls:hover .project-stat-hint,.project-stat-pulls.is-open .project-stat-hint{opacity:1}.stat-popover{position:fixed;z-index:1200;width:max-content;max-width:min(300px,calc(100vw - 24px));padding:16px 18px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:linear-gradient(158deg,#26262dfa,#101014fc);box-shadow:0 22px 48px #0009,inset 0 1px #ffffff12;color:var(--text-muted);font-size:.8rem;line-height:1.55;opacity:0;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease;pointer-events:auto}.stat-popover.is-visible{opacity:1;transform:translateY(0)}.stat-popover:after{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}.stat-popover.is-above:after{top:auto;bottom:-12px}.stat-popover:before{content:"";position:absolute;top:-5px;left:var(--arrow-x, 50%);width:9px;height:9px;margin-left:-5px;border-left:1px solid rgba(255,255,255,.1);border-top:1px solid rgba(255,255,255,.1);border-radius:2px 0 0;background:#26262dfa;transform:rotate(45deg)}.stat-popover.is-above:before{top:auto;bottom:-5px;border-left:none;border-top:none;border-right:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);border-radius:0 0 2px;background:#101014fc}.stat-popover-title{margin:0;color:var(--text-main);font-family:Outfit,sans-serif;font-size:.98rem;font-weight:700;letter-spacing:-.01em}.stat-popover-link{display:inline-flex;align-items:center;gap:6px;margin-top:4px;color:#818cf8;font-weight:600;text-decoration:none}.stat-popover-link:hover,.stat-popover-link:focus-visible{text-decoration:underline}.stat-popover-notes{margin:12px 0 0;padding:12px 0 0;border-top:1px solid rgba(255,255,255,.08);list-style:none;display:grid;gap:5px}.stat-popover-notes li{position:relative;padding-left:15px;font-size:.76rem}.stat-popover-notes li:before{content:"";position:absolute;top:.62em;left:3px;width:4px;height:4px;border-radius:50%;background:var(--primary);opacity:.75}.stat-popover-stamp{margin:12px 0 0;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);color:#fafafa73;font-size:.72rem;font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){.stat-popover{transition:none}}.footer-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px}.footer-link{color:var(--text-muted);font-size:.88rem;font-weight:600;text-decoration:none;transition:color .25s ease}.footer-link:hover,.footer-link:focus-visible{color:var(--text-main)}.contact-page{position:relative;z-index:1;padding:calc(var(--nav-height) + 70px) 0 110px}.contact-page-back{display:inline-flex;align-items:center;gap:9px;margin-bottom:34px;color:var(--text-muted);font-size:.85rem;font-weight:600;text-decoration:none;transition:color .25s ease,gap .25s ease}.contact-page-back:before{content:"←";font-size:1rem;line-height:1}.contact-page-back:hover,.contact-page-back:focus-visible{color:var(--text-main);gap:14px}.contact-page-head{max-width:640px;margin-bottom:54px}.contact-page-head h1{font-family:Outfit,sans-serif;font-size:clamp(2.4rem,6vw,3.6rem);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-bottom:20px}.contact-page-head .line{width:62px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--primary),var(--accent));margin-bottom:26px}.contact-page-lede{color:var(--text-muted);font-size:1.06rem;line-height:1.7}.contact-email-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;padding:30px 32px;border-radius:22px;margin-bottom:64px;text-decoration:none;color:inherit;transition:transform .3s cubic-bezier(.4,0,.2,1),border-color .3s ease}.contact-email-card:hover,.contact-email-card:focus-visible{transform:translateY(-4px);border-color:#818cf873}.contact-email-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;border:1px solid rgba(255,255,255,.1);background:#6366f138;color:#c7d2fe}.contact-email-body{display:grid;gap:6px;min-width:0}.contact-email-label{font-family:Outfit,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#fafafa8c}.contact-email-value{font-size:1.22rem;font-weight:600;color:var(--text-main);overflow-wrap:anywhere}.contact-email-arrow{color:var(--text-muted);font-size:1.3rem;transition:transform .3s cubic-bezier(.4,0,.2,1),color .3s ease}.contact-email-card:hover .contact-email-arrow,.contact-email-card:focus-visible .contact-email-arrow{color:var(--text-main);transform:translate(5px)}@media (max-width: 600px){.contact-email-card{padding:24px 20px;gap:16px}.contact-email-value{font-size:.95rem}}.contact-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:20px 48px;padding-top:40px;border-top:1px solid rgba(255,255,255,.08)}.contact-note h2{font-family:Outfit,sans-serif;font-size:1.02rem;font-weight:700;margin-bottom:10px}.contact-note p{color:var(--text-muted);font-size:.92rem;line-height:1.7}@media (max-width: 600px){.contact-page{padding:calc(var(--nav-height) + 40px) 0 80px}}
