.theme-toggle[data-v-83e22dce]{background:var(--bg-card);border:2px solid var(--accent);border-radius:50px;cursor:pointer;padding:.4rem .6rem;display:flex;align-items:center;gap:.3rem;transition:all .3s ease;position:relative;overflow:hidden}.theme-toggle[data-v-83e22dce]:hover{background:var(--accent);transform:translateY(-2px)}.theme-toggle[data-v-83e22dce]:focus{outline:2px solid var(--accent);outline-offset:2px}.theme-icon[data-v-83e22dce]{font-size:1rem;transition:all .3s ease;opacity:.3;transform:scale(.8)}.theme-icon.active[data-v-83e22dce]{opacity:1;transform:scale(1)}.sun[data-v-83e22dce]{filter:grayscale(100%)}.sun.active[data-v-83e22dce],.moon.active[data-v-83e22dce]{filter:grayscale(0%)}header[data-v-08473465]{position:fixed;top:0;width:100%;background:#1a1a2ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;padding:1rem 0;transition:all .3s ease}header.scrolled[data-v-08473465]{background:#1a1a2efa;box-shadow:0 2px 20px #0000004d}nav[data-v-08473465]{display:flex;justify-content:space-between;align-items:center}.logo[data-v-08473465]{font-size:1.5rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none}.nav-links[data-v-08473465]{display:flex;list-style:none;gap:2rem;align-items:center}.nav-links a[data-v-08473465]{color:var(--text-secondary);text-decoration:none;transition:color .3s ease;font-weight:500}.nav-links a[data-v-08473465]:hover{color:var(--accent)}.nav-links a.nav-launcher[data-v-08473465]{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem 1rem;border-radius:25px;background:var(--gradient);color:#fff;font-weight:600;white-space:nowrap}.nav-links a.nav-launcher[data-v-08473465]:hover{color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.nav-links a.nav-launcher[data-v-08473465]:after{content:none}.lang-dropdown-wrapper[data-v-08473465]{position:relative;display:flex;align-items:center}.lang-switch[data-v-08473465]{background:var(--bg-card);border:2px solid var(--accent);color:var(--text-primary);padding:.5rem 1rem;border-radius:25px;cursor:pointer;transition:all .3s ease;font-weight:600;display:flex;align-items:center;gap:.5rem}.dropdown-icon[data-v-08473465]{font-size:.8rem;transition:transform .3s ease}.dropdown-icon.up[data-v-08473465]{transform:rotate(180deg)}.dropdown-menu[data-v-08473465]{position:absolute;top:calc(100% + 10px);right:0;background:var(--bg-card);border:1px solid var(--accent);border-radius:12px;list-style:none;padding:.5rem;min-width:80px;box-shadow:0 4px 15px #0003;display:flex;flex-direction:column;gap:.2rem;z-index:1001}.dropdown-menu li button[data-v-08473465]{width:100%;padding:.5rem 1rem;background:transparent;border:none;color:var(--text-primary);font-weight:600;cursor:pointer;border-radius:8px;transition:all .2s ease;text-align:center}.dropdown-menu li button[data-v-08473465]:not(:disabled):hover{background:rgba(var(--accent-rgb),.1);color:var(--accent)}.dropdown-menu li button.active[data-v-08473465]{background:var(--accent);color:#fff;cursor:default;opacity:.8}.lang-switch[data-v-08473465]:hover{background:var(--accent);transform:translateY(-2px)}.lang-switch[data-v-08473465]:focus{outline:2px solid var(--accent);outline-offset:2px}.nav-actions[data-v-08473465]{display:flex;align-items:center;gap:.75rem}.nav-links a.active-link[data-v-08473465]{color:var(--accent);position:relative}.nav-links a.active-link[data-v-08473465]:after{content:"";position:absolute;bottom:-5px;left:0;width:100%;height:2px;background:var(--accent);border-radius:1px}.mobile-menu-btn[data-v-08473465]{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:5px}.mobile-menu-btn span[data-v-08473465]{width:25px;height:3px;background:var(--text-primary);border-radius:2px;transition:all .3s ease}@media (max-width: 768px){.mobile-menu-btn[data-v-08473465]{display:flex}.nav-links[data-v-08473465]{position:fixed;top:70px;left:0;right:0;background:#1a1a2efa;flex-direction:column;padding:2rem;gap:1.5rem;transform:translateY(-150%);transition:transform .3s ease}.nav-links.active[data-v-08473465]{transform:translateY(0)}}footer[data-v-9aa2fee0]{background:var(--bg-primary);text-align:center;padding:2rem 0;border-top:1px solid var(--bg-card)}footer .container[data-v-9aa2fee0]{display:flex;flex-direction:column;align-items:center;gap:.75rem}footer p[data-v-9aa2fee0]{color:var(--text-secondary)}.footer-links[data-v-9aa2fee0]{display:flex;gap:.5rem;align-items:center}.separator[data-v-9aa2fee0]{color:var(--text-secondary);opacity:.5;font-size:.85rem}.footer-link[data-v-9aa2fee0]{color:var(--text-secondary);font-size:.85rem;text-decoration:none;transition:color .2s ease}.footer-link[data-v-9aa2fee0]:hover{color:var(--accent)}.scroll-progress-container[data-v-07685ee0]{position:fixed;top:0;left:0;width:100%;height:3px;background:transparent;z-index:1001}.scroll-progress-bar[data-v-07685ee0]{height:100%;background:var(--gradient);transition:width .1s ease-out;box-shadow:0 0 10px #667eea80}.back-to-top[data-v-8c06e9f2]{position:fixed;bottom:2rem;right:2rem;width:50px;height:50px;border-radius:50%;background:var(--gradient);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #667eea66;transition:all .3s ease;z-index:999}.back-to-top[data-v-8c06e9f2]:hover{transform:translateY(-5px) scale(1.1);box-shadow:0 8px 30px #667eea80}.back-to-top[data-v-8c06e9f2]:focus{outline:2px solid var(--accent);outline-offset:2px}.arrow[data-v-8c06e9f2]{font-size:1.5rem;color:#fff;font-weight:700}.fade-slide-enter-active[data-v-8c06e9f2],.fade-slide-leave-active[data-v-8c06e9f2]{transition:all .3s ease}.fade-slide-enter-from[data-v-8c06e9f2],.fade-slide-leave-to[data-v-8c06e9f2]{opacity:0;transform:translateY(20px)}@media (max-width: 768px){.back-to-top[data-v-8c06e9f2]{bottom:1.5rem;right:1.5rem;width:45px;height:45px}}.skip-to-content[data-v-7b05fc87]{position:fixed;top:-100%;left:50%;transform:translate(-50%);background:var(--accent);color:var(--bg-primary);padding:1rem 2rem;border-radius:0 0 10px 10px;z-index:9999;text-decoration:none;font-weight:600;transition:top .3s ease}.skip-to-content[data-v-7b05fc87]:focus{top:0;outline:2px solid var(--text-primary);outline-offset:2px}.toast-container[data-v-7d42979c]{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:10000;display:flex;flex-direction:column;gap:.5rem;max-width:90%}.toast[data-v-7d42979c]{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:10px;background:var(--bg-card);box-shadow:0 10px 30px #0000004d;border-left:4px solid var(--accent);min-width:250px}.toast.success[data-v-7d42979c]{border-left-color:#10b981}.toast.success .toast-icon[data-v-7d42979c]{color:#10b981}.toast.error[data-v-7d42979c]{border-left-color:#ef4444}.toast.error .toast-icon[data-v-7d42979c]{color:#ef4444}.toast.warning[data-v-7d42979c]{border-left-color:#f59e0b}.toast.warning .toast-icon[data-v-7d42979c]{color:#f59e0b}.toast.info[data-v-7d42979c]{border-left-color:var(--accent)}.toast.info .toast-icon[data-v-7d42979c]{color:var(--accent)}.toast-icon[data-v-7d42979c]{font-size:1.25rem;font-weight:700}.toast-message[data-v-7d42979c]{flex:1;color:var(--text-primary)}.toast-close[data-v-7d42979c]{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.25rem;padding:0;line-height:1;transition:color .2s ease}.toast-close[data-v-7d42979c]:hover{color:var(--text-primary)}.toast-enter-active[data-v-7d42979c],.toast-leave-active[data-v-7d42979c]{transition:all .3s ease}.toast-enter-from[data-v-7d42979c]{opacity:0;transform:translateY(20px)}.toast-leave-to[data-v-7d42979c]{opacity:0;transform:translate(100%)}.cookie-banner[data-v-063b5f18]{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--accent);padding:1rem;z-index:9999;box-shadow:0 -4px 20px #0000004d}.cookie-content[data-v-063b5f18]{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.cookie-text[data-v-063b5f18]{display:flex;align-items:center;gap:.75rem;flex:1;min-width:280px}.cookie-icon[data-v-063b5f18]{font-size:1.5rem;flex-shrink:0}.cookie-text p[data-v-063b5f18]{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:0}.cookie-link[data-v-063b5f18]{color:var(--accent);text-decoration:underline;transition:color .2s ease}.cookie-link[data-v-063b5f18]:hover{color:var(--accent-hover)}.cookie-btn[data-v-063b5f18]{background:var(--gradient);color:#fff;border:none;padding:.6rem 1.5rem;border-radius:25px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;white-space:nowrap}.cookie-btn[data-v-063b5f18]:hover{transform:translateY(-2px);box-shadow:0 4px 15px #00d4ff4d}.slide-up-enter-active[data-v-063b5f18],.slide-up-leave-active[data-v-063b5f18]{transition:transform .4s ease,opacity .4s ease}.slide-up-enter-from[data-v-063b5f18],.slide-up-leave-to[data-v-063b5f18]{transform:translateY(100%);opacity:0}@media (max-width: 600px){.cookie-content[data-v-063b5f18]{flex-direction:column;text-align:center}.cookie-text[data-v-063b5f18]{flex-direction:column;gap:.5rem}.cookie-btn[data-v-063b5f18]{width:100%}}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.hero[data-v-17eeb403]{min-height:100vh;display:flex;align-items:center;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);position:relative;overflow:hidden;padding-top:80px}.hero-bg-animation[data-v-17eeb403]{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(-45deg,var(--bg-primary),var(--bg-secondary),#1a1a3e,#0a0a2e);background-size:400% 400%;animation:gradientShift-17eeb403 15s ease infinite;opacity:.7}@keyframes gradientShift-17eeb403{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.hero[data-v-17eeb403]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="%23334155" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');opacity:.1;z-index:1}.hero-content[data-v-17eeb403]{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:4rem;align-items:center;width:100%}.hero-text[data-v-17eeb403]{max-width:600px}.hero-image[data-v-17eeb403]{width:300px;height:300px;border-radius:50%;overflow:hidden;border:4px solid var(--accent);box-shadow:0 20px 40px #00d4ff4d;transition:transform .3s ease;background:var(--bg-card);display:flex;align-items:center;justify-content:center}.hero-image[data-v-17eeb403]:hover{transform:scale(1.05)}.hero-image img[data-v-17eeb403]{width:100%;height:100%;object-fit:cover}.fallback-emoji[data-v-17eeb403]{font-size:6rem}.hero h1[data-v-17eeb403]{font-size:3.5rem;margin-bottom:1rem;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fadeInUp 1s ease}.hero .subtitle[data-v-17eeb403]{font-size:1.5rem;color:var(--accent);margin-bottom:1rem;animation:fadeInUp 1s ease .2s both;min-height:2.5rem}.typing-text[data-v-17eeb403]{display:inline}.cursor[data-v-17eeb403]{display:inline-block;color:var(--accent);font-weight:400;animation:none;margin-left:2px}.cursor-hidden[data-v-17eeb403]{opacity:0}.hero .description[data-v-17eeb403]{font-size:1.1rem;color:var(--text-secondary);margin-bottom:2rem;animation:fadeInUp 1s ease .4s both}.cta-buttons[data-v-17eeb403]{display:flex;flex-wrap:wrap;gap:1rem;animation:fadeInUp 1s ease .6s both}.btn-launcher[data-v-17eeb403]{display:inline-flex;align-items:center;gap:.6rem;background:var(--bg-card);color:var(--text-primary);border:2px solid transparent;background-image:linear-gradient(var(--bg-card),var(--bg-card)),var(--gradient);background-origin:border-box;background-clip:padding-box,border-box;box-shadow:var(--shadow)}.btn-launcher[data-v-17eeb403]:hover{transform:translateY(-3px);box-shadow:0 15px 40px #667eea59}@media (max-width: 768px){.hero h1[data-v-17eeb403]{font-size:2.5rem}.hero .subtitle[data-v-17eeb403]{font-size:1.2rem}.hero-content[data-v-17eeb403]{grid-template-columns:1fr;text-align:center}.hero-image[data-v-17eeb403]{width:200px;height:200px;margin:0 auto;order:-1}.cta-buttons[data-v-17eeb403]{flex-direction:column;align-items:center}.btn-launcher[data-v-17eeb403]{justify-content:center}}.about[data-v-6145f198]{background:var(--bg-secondary)}.about-content[data-v-6145f198]{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}.about-text[data-v-6145f198]{font-size:1.1rem;line-height:1.8}.about-text p[data-v-6145f198]{margin-bottom:1.5rem}.stats[data-v-6145f198]{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.stat-item[data-v-6145f198]{text-align:center;padding:2rem;background:var(--bg-card);border-radius:15px;transition:transform .3s ease}.stat-item[data-v-6145f198]:hover{transform:translateY(-5px)}.stat-number[data-v-6145f198]{font-size:2.5rem;font-weight:700;color:var(--accent);display:block}@media (max-width: 768px){.about-content[data-v-6145f198],.stats[data-v-6145f198]{grid-template-columns:1fr}}.skills[data-v-c7f99401]{position:relative;overflow:hidden;background:var(--bg-secondary)}.skills-intro[data-v-c7f99401]{position:relative;z-index:1;display:grid;justify-items:center;gap:1rem;margin-bottom:2.5rem}.skills-subtitle[data-v-c7f99401]{max-width:720px;text-align:center;color:var(--text-secondary);font-size:1.05rem}.skills-stats[data-v-c7f99401]{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem}.stat-pill[data-v-c7f99401]{display:inline-flex;align-items:center;gap:.6rem;padding:.45rem .95rem;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.stat-value[data-v-c7f99401]{color:var(--accent);font-weight:700}.stat-label[data-v-c7f99401]{color:var(--text-secondary);font-size:.9rem}.skills-grid[data-v-c7f99401]{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.skill-category[data-v-c7f99401]{position:relative;background:linear-gradient(180deg,#ffffff0a,#ffffff04);border:1px solid rgba(255,255,255,.12);padding:1.6rem;border-radius:18px;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;min-height:100%}.skill-category[data-v-c7f99401]:hover{transform:translateY(-8px);border-color:#00d4ff73;box-shadow:0 14px 30px #00000038}.category-head[data-v-c7f99401]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.skill-category h3[data-v-c7f99401]{color:var(--accent);font-size:1.25rem;letter-spacing:.02em}.category-count[data-v-c7f99401]{display:inline-grid;place-items:center;min-width:2rem;height:2rem;padding:0 .5rem;border-radius:999px;color:var(--text-primary);background:#00d4ff33;border:1px solid rgba(0,212,255,.55);font-size:.85rem;font-weight:700}.skill-list[data-v-c7f99401]{list-style:none;display:flex;flex-wrap:wrap;gap:.65rem}.skill-list li[data-v-c7f99401]{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .72rem;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#ffffff08;color:var(--text-primary);font-size:.95rem}.skill-dot[data-v-c7f99401]{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px #00d4ffbf}@media (max-width: 768px){.skills-subtitle[data-v-c7f99401]{font-size:.98rem;padding:0 .5rem}.skills-grid[data-v-c7f99401]{gap:1rem}.skill-category[data-v-c7f99401]{padding:1.2rem}}.tech-tag[data-tech=godot][data-v-690d900d],.tech-tag[data-tech="godot 4"][data-v-690d900d]{background:linear-gradient(135deg,#8eaac0,#3d7eaa);color:#fff;border:none}.tech-tag[data-tech=gdscript][data-v-690d900d]{background:linear-gradient(135deg,#5a8cd8,#4a7bc8);color:#fff;border:none}.tech-tag[data-tech=ue5][data-v-690d900d],.tech-tag[data-tech=unreal][data-v-690d900d],.tech-tag[data-tech="unreal engine"][data-v-690d900d],.tech-tag[data-tech="unreal engine 5"][data-v-690d900d]{background:linear-gradient(135deg,#1916d3,#24bae7);color:#fff;border:1px solid #444}.tech-tag[data-tech=gas][data-v-690d900d]{background:linear-gradient(135deg,#0f2a6b,#1d6fd1);color:#fff;border:none}.tech-tag[data-tech=c][data-v-690d900d],.tech-tag[data-tech="c++"][data-v-690d900d]{background:linear-gradient(135deg,#0e6e33,#007e82);color:#fff;border:none}.tech-tag[data-tech=cross-platform][data-v-690d900d]{background:linear-gradient(135deg,#1851bb,#03244e);color:#fff;border:none}.tech-tag[data-tech=lumen][data-v-690d900d]{background:linear-gradient(135deg,#b9af19,#4f5004);color:#fff;border:none}.tech-tag[data-tech=nanite][data-v-690d900d]{background:linear-gradient(135deg,#3b3ed8,#c8c9c6);color:#fff;border:none}.tech-tag[data-tech=raycasting][data-v-690d900d]{background:linear-gradient(135deg,#b9af19,#4f5004);color:#fff;border:none}.tech-tag[data-tech="dda algorithm"][data-v-690d900d]{background:linear-gradient(135deg,#3b3ed8,#c8c9c6);color:#fff;border:none}.tech-tag[data-tech=multiplayer][data-v-690d900d]{background:linear-gradient(135deg,#c78648,#4f5004);color:#fff;border:none}.tech-tag[data-tech="procedural generation"][data-v-690d900d]{background:linear-gradient(135deg,#19b94e,#4f5004);color:#fff;border:none}.tech-tag[data-tech=java][data-v-690d900d]{background:linear-gradient(135deg,#1c817c,#03ca0d);color:#fff;border:none}.tech-tag[data-tech=javafx][data-v-690d900d]{background:linear-gradient(135deg,#459ce2,#fff);color:#1a1a2e;border:none}.tech-tag[data-tech=python][data-v-690d900d]{background:linear-gradient(135deg,#3776ab,#ffd43b);color:#1a1a2e;border:none}.tech-tag[data-tech=fastapi][data-v-690d900d]{background:linear-gradient(135deg,#009688,#05998b);color:#fff;border:none}.tech-tag[data-tech="ai programming"][data-v-690d900d],.tech-tag[data-tech=ai][data-v-690d900d]{background:linear-gradient(135deg,#4a4779,#0c3564);color:#fff;border:none}.tech-tag[data-tech=physics][data-v-690d900d]{background:linear-gradient(135deg,#ff5722,#e64a19);color:#fff;border:none}.tech-tag[data-tech="game design"][data-v-690d900d]{background:linear-gradient(135deg,#6c2da0,#3d3c3d);color:#fff;border:none}.tech-tag[data-tech=javascript][data-v-690d900d],.tech-tag[data-tech=js][data-v-690d900d]{background:linear-gradient(135deg,#f7df1e,#e5cd1b);color:#1a1a2e;border:none}.tech-tag[data-tech=vue][data-v-690d900d],.tech-tag[data-tech="vue.js"][data-v-690d900d],.tech-tag[data-tech="vue 3"][data-v-690d900d]{background:linear-gradient(135deg,#42b883,#35495e);color:#fff;border:none}.tech-tag[data-tech=blueprints][data-v-690d900d]{background:linear-gradient(135deg,#0074e4,#005bb5);color:#fff;border:none}.tech-tag[data-tech=socket][data-v-690d900d],.tech-tag[data-tech="socket.io"][data-v-690d900d]{background:linear-gradient(135deg,#010101,#252525);color:#fff;border:none}.tech-tag[data-tech="node.js"][data-v-690d900d]{background:linear-gradient(135deg,#393,#6c3);color:#fff;border:none}.tech-tag[data-tech=docker][data-v-690d900d]{background:linear-gradient(135deg,#2496ed,#0db7ed);color:#fff;border:none}.tech-tag[data-tech=https][data-v-690d900d]{background:linear-gradient(135deg,#9e9844,#e96cd4);color:#fff;border:none}.tech-tag[data-tech=perforce][data-v-690d900d]{background:linear-gradient(135deg,#1a5fad,#24dae7);color:#fff;border:none}.project-card[data-v-690d900d]{background:var(--bg-card);border-radius:15px;overflow:hidden;transition:all .3s ease;cursor:pointer;display:flex;flex-direction:column}.project-card[data-v-690d900d]:hover{transform:translateY(-10px);box-shadow:0 20px 40px #00d4ff33}.project-card.is-highlighted[data-v-690d900d]{border:2px solid var(--accent);box-shadow:0 0 15px #00d4ff1a;position:relative}.project-card.is-highlighted[data-v-690d900d]:hover{box-shadow:0 20px 40px #00d4ff4d,0 0 20px #00d4ff33}.project-image[data-v-690d900d]{height:200px;background:var(--gradient);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.project-image.has-preview[data-v-690d900d]{background:var(--bg-secondary)}.preview-img[data-v-690d900d]{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card:hover .preview-img[data-v-690d900d]{transform:scale(1.05)}.project-emoji[data-v-690d900d]{font-size:4rem}.project-highlight-badge[data-v-690d900d]{position:absolute;top:1rem;left:1rem;background:var(--accent);color:var(--bg-primary);padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:700;z-index:2;box-shadow:0 2px 10px #0000004d}.project-type[data-v-690d900d]{position:absolute;top:1rem;right:1rem;background:#000000b3;color:#fff;padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:600}.project-type.playable[data-v-690d900d]{background:#00c853cc}.project-type.in-development[data-v-690d900d]{background:#ff9800cc}.project-type.preview[data-v-690d900d]{background:#9c27b0cc}.project-content[data-v-690d900d]{padding:2rem;flex:1;display:flex;flex-direction:column}.project-title[data-v-690d900d]{font-size:1.5rem;margin-bottom:1rem;color:var(--accent)}.project-description[data-v-690d900d]{color:var(--text-secondary);margin-bottom:1rem;flex:1;line-height:1.6}.project-tech[data-v-690d900d]{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tech-tag[data-v-690d900d]{padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:600;transition:transform .2s ease}.tech-tag[data-v-690d900d]:hover{transform:scale(1.05)}.tech-tag[data-v-690d900d]:not([data-tech]){background:var(--accent);color:var(--bg-primary)}.project-actions[data-v-690d900d]{display:flex;gap:.5rem;margin-top:auto}.project-btn[data-v-690d900d]{flex:1;padding:.75rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none;text-align:center;font-size:.9rem}.btn-details[data-v-690d900d]{background:var(--accent);color:#fff}.btn-details[data-v-690d900d]:hover{background:var(--accent-hover);transform:translateY(-2px)}.btn-code[data-v-690d900d]{background:transparent;color:var(--text-primary);border:2px solid var(--text-secondary)}.btn-code[data-v-690d900d]:hover{border-color:var(--accent);color:var(--accent)}.tech-tag[data-tech=godot][data-v-e770f93d],.tech-tag[data-tech="godot 4"][data-v-e770f93d]{background:linear-gradient(135deg,#8eaac0,#3d7eaa);color:#fff;border:none}.tech-tag[data-tech=gdscript][data-v-e770f93d]{background:linear-gradient(135deg,#5a8cd8,#4a7bc8);color:#fff;border:none}.tech-tag[data-tech=ue5][data-v-e770f93d],.tech-tag[data-tech=unreal][data-v-e770f93d],.tech-tag[data-tech="unreal engine"][data-v-e770f93d],.tech-tag[data-tech="unreal engine 5"][data-v-e770f93d]{background:linear-gradient(135deg,#1916d3,#24bae7);color:#fff;border:1px solid #444}.tech-tag[data-tech=gas][data-v-e770f93d]{background:linear-gradient(135deg,#0f2a6b,#1d6fd1);color:#fff;border:none}.tech-tag[data-tech=c][data-v-e770f93d],.tech-tag[data-tech="c++"][data-v-e770f93d]{background:linear-gradient(135deg,#0e6e33,#007e82);color:#fff;border:none}.tech-tag[data-tech=cross-platform][data-v-e770f93d]{background:linear-gradient(135deg,#1851bb,#03244e);color:#fff;border:none}.tech-tag[data-tech=lumen][data-v-e770f93d]{background:linear-gradient(135deg,#b9af19,#4f5004);color:#fff;border:none}.tech-tag[data-tech=nanite][data-v-e770f93d]{background:linear-gradient(135deg,#3b3ed8,#c8c9c6);color:#fff;border:none}.tech-tag[data-tech=raycasting][data-v-e770f93d]{background:linear-gradient(135deg,#b9af19,#4f5004);color:#fff;border:none}.tech-tag[data-tech="dda algorithm"][data-v-e770f93d]{background:linear-gradient(135deg,#3b3ed8,#c8c9c6);color:#fff;border:none}.tech-tag[data-tech=multiplayer][data-v-e770f93d]{background:linear-gradient(135deg,#c78648,#4f5004);color:#fff;border:none}.tech-tag[data-tech="procedural generation"][data-v-e770f93d]{background:linear-gradient(135deg,#19b94e,#4f5004);color:#fff;border:none}.tech-tag[data-tech=java][data-v-e770f93d]{background:linear-gradient(135deg,#1c817c,#03ca0d);color:#fff;border:none}.tech-tag[data-tech=javafx][data-v-e770f93d]{background:linear-gradient(135deg,#459ce2,#fff);color:#1a1a2e;border:none}.tech-tag[data-tech=python][data-v-e770f93d]{background:linear-gradient(135deg,#3776ab,#ffd43b);color:#1a1a2e;border:none}.tech-tag[data-tech=fastapi][data-v-e770f93d]{background:linear-gradient(135deg,#009688,#05998b);color:#fff;border:none}.tech-tag[data-tech="ai programming"][data-v-e770f93d],.tech-tag[data-tech=ai][data-v-e770f93d]{background:linear-gradient(135deg,#4a4779,#0c3564);color:#fff;border:none}.tech-tag[data-tech=physics][data-v-e770f93d]{background:linear-gradient(135deg,#ff5722,#e64a19);color:#fff;border:none}.tech-tag[data-tech="game design"][data-v-e770f93d]{background:linear-gradient(135deg,#6c2da0,#3d3c3d);color:#fff;border:none}.tech-tag[data-tech=javascript][data-v-e770f93d],.tech-tag[data-tech=js][data-v-e770f93d]{background:linear-gradient(135deg,#f7df1e,#e5cd1b);color:#1a1a2e;border:none}.tech-tag[data-tech=vue][data-v-e770f93d],.tech-tag[data-tech="vue.js"][data-v-e770f93d],.tech-tag[data-tech="vue 3"][data-v-e770f93d]{background:linear-gradient(135deg,#42b883,#35495e);color:#fff;border:none}.tech-tag[data-tech=blueprints][data-v-e770f93d]{background:linear-gradient(135deg,#0074e4,#005bb5);color:#fff;border:none}.tech-tag[data-tech=socket][data-v-e770f93d],.tech-tag[data-tech="socket.io"][data-v-e770f93d]{background:linear-gradient(135deg,#010101,#252525);color:#fff;border:none}.tech-tag[data-tech="node.js"][data-v-e770f93d]{background:linear-gradient(135deg,#393,#6c3);color:#fff;border:none}.tech-tag[data-tech=docker][data-v-e770f93d]{background:linear-gradient(135deg,#2496ed,#0db7ed);color:#fff;border:none}.tech-tag[data-tech=https][data-v-e770f93d]{background:linear-gradient(135deg,#9e9844,#e96cd4);color:#fff;border:none}.tech-tag[data-tech=perforce][data-v-e770f93d]{background:linear-gradient(135deg,#1a5fad,#24dae7);color:#fff;border:none}.project-card[data-v-e770f93d]{background:var(--bg-card);border-radius:15px;overflow:hidden;transition:all .3s ease;cursor:pointer;display:flex;flex-direction:column}.project-card[data-v-e770f93d]:hover{transform:translateY(-10px);box-shadow:0 20px 40px #00d4ff33}.project-card.is-highlighted[data-v-e770f93d]{border:2px solid var(--accent);box-shadow:0 0 15px #00d4ff1a;position:relative}.project-card.is-highlighted[data-v-e770f93d]:hover{box-shadow:0 20px 40px #00d4ff4d,0 0 20px #00d4ff33}.project-image[data-v-e770f93d]{height:200px;background:var(--gradient);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.project-image.has-preview[data-v-e770f93d]{background:var(--bg-secondary)}.preview-img[data-v-e770f93d]{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card:hover .preview-img[data-v-e770f93d]{transform:scale(1.05)}.project-emoji[data-v-e770f93d]{font-size:4rem}.project-highlight-badge[data-v-e770f93d]{position:absolute;top:1rem;left:1rem;background:var(--accent);color:var(--bg-primary);padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:700;z-index:2;box-shadow:0 2px 10px #0000004d}.project-type[data-v-e770f93d]{position:absolute;top:1rem;right:1rem;background:#000000b3;color:#fff;padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:600}.project-type.playable[data-v-e770f93d]{background:#00c853cc}.project-type.in-development[data-v-e770f93d]{background:#ff9800cc}.project-type.preview[data-v-e770f93d]{background:#9c27b0cc}.project-content[data-v-e770f93d]{padding:2rem;flex:1;display:flex;flex-direction:column}.project-title[data-v-e770f93d]{font-size:1.5rem;margin-bottom:1rem;color:var(--accent)}.project-description[data-v-e770f93d]{color:var(--text-secondary);margin-bottom:1rem;flex:1;line-height:1.6}.project-tech[data-v-e770f93d]{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tech-tag[data-v-e770f93d]{padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:600;transition:transform .2s ease}.tech-tag[data-v-e770f93d]:hover{transform:scale(1.05)}.tech-tag[data-v-e770f93d]:not([data-tech]){background:var(--accent);color:var(--bg-primary)}.project-actions[data-v-e770f93d]{display:flex;gap:.5rem;margin-top:auto}.project-btn[data-v-e770f93d]{flex:1;padding:.75rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none;text-align:center;font-size:.9rem}.btn-details[data-v-e770f93d]{background:var(--accent);color:#fff}.btn-details[data-v-e770f93d]:hover{background:var(--accent-hover);transform:translateY(-2px)}.btn-code[data-v-e770f93d]{background:transparent;color:var(--text-primary);border:2px solid var(--text-secondary)}.btn-code[data-v-e770f93d]:hover{border-color:var(--accent);color:var(--accent)}.projects[data-v-ba4fd441]{background:var(--bg-primary)}.project-tabs[data-v-ba4fd441]{display:flex;justify-content:center;gap:1rem;margin-bottom:3rem}.tab-btn[data-v-ba4fd441]{padding:1rem 2rem;background:var(--bg-card);border:2px solid transparent;border-radius:50px;color:var(--text-secondary);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.tab-btn[data-v-ba4fd441]:hover{border-color:var(--accent);color:var(--text-primary)}.tab-btn.active[data-v-ba4fd441]{background:var(--gradient);color:#fff;border-color:transparent}.projects-grid[data-v-ba4fd441]{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}@media (max-width: 768px){.project-tabs[data-v-ba4fd441]{flex-direction:column;align-items:stretch}.projects-grid[data-v-ba4fd441]{grid-template-columns:1fr}}.experience[data-v-d0e926de]{background:var(--bg-primary)}.experience-timeline[data-v-d0e926de]{position:relative}.experience-timeline[data-v-d0e926de]:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--accent);transform:translate(-50%)}.timeline-item[data-v-d0e926de]{display:flex;margin-bottom:3rem;position:relative}.timeline-item.even[data-v-d0e926de]{flex-direction:row-reverse}.timeline-content[data-v-d0e926de]{flex:1;max-width:45%;background:var(--bg-card);padding:2rem;border-radius:15px;position:relative}.timeline-item:not(.even) .timeline-content[data-v-d0e926de]{margin-right:3rem}.timeline-item.even .timeline-content[data-v-d0e926de]{margin-left:3rem}.timeline-date[data-v-d0e926de]{color:var(--accent);font-weight:600;margin-bottom:.5rem}.timeline-title[data-v-d0e926de]{font-size:1.3rem;margin-bottom:1rem;color:var(--text-primary)}.timeline-description[data-v-d0e926de]{color:var(--text-secondary);line-height:1.6}.timeline-marker[data-v-d0e926de]{position:absolute;left:50%;width:50px;height:50px;background:var(--bg-card);border:3px solid var(--accent);border-radius:50%;transform:translate(-50%);top:1.5rem;display:flex;align-items:center;justify-content:center;z-index:1;box-shadow:0 4px 15px #00d4ff4d;transition:all .3s ease}.timeline-marker[data-v-d0e926de]:hover{transform:translate(-50%) scale(1.1);box-shadow:0 6px 20px #00d4ff80}.timeline-icon[data-v-d0e926de]{font-size:1.5rem}@media (max-width: 768px){.timeline-item[data-v-d0e926de],.timeline-item.even[data-v-d0e926de]{flex-direction:column}.timeline-content[data-v-d0e926de]{max-width:100%;margin:0 0 0 60px!important}.experience-timeline[data-v-d0e926de]:before{left:25px}.timeline-marker[data-v-d0e926de]{left:25px;width:40px;height:40px}.timeline-icon[data-v-d0e926de]{font-size:1.2rem}}.contact[data-v-6f2e44eb]{background:var(--bg-secondary);text-align:center}.contact-subtitle[data-v-6f2e44eb]{color:var(--text-secondary);margin-bottom:3rem;font-size:1.1rem}.contact-info[data-v-6f2e44eb]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:3rem}.contact-item[data-v-6f2e44eb]{background:var(--bg-card);padding:2rem;border-radius:15px;transition:transform .3s ease}.contact-item[data-v-6f2e44eb]:hover{transform:translateY(-5px)}.contact-icon[data-v-6f2e44eb]{font-size:2.5rem;margin-bottom:1rem}.contact-item h3[data-v-6f2e44eb]{color:var(--accent);margin-bottom:.5rem}.contact-item p[data-v-6f2e44eb]{color:var(--text-secondary)}.contact-item a[data-v-6f2e44eb]{color:var(--text-secondary);text-decoration:none;transition:color .3s ease}.contact-item a[data-v-6f2e44eb]:hover{color:var(--accent)}.social-links[data-v-6f2e44eb]{display:flex;justify-content:center;gap:1rem;margin-top:2rem}.social-links a[data-v-6f2e44eb]{display:flex;width:50px;height:50px;background:var(--accent);color:#fff;text-decoration:none;border-radius:50%;align-items:center;justify-content:center;transition:all .3s ease}.social-links a[data-v-6f2e44eb]:hover{background:var(--accent-hover);transform:translateY(-3px)}.cv-download[data-v-6f2e44eb]{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--bg-card)}.cv-buttons[data-v-6f2e44eb]{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.cv-btn[data-v-6f2e44eb]{display:inline-flex;align-items:center;gap:.75rem;font-size:1.1rem}.cv-icon[data-v-6f2e44eb]{font-size:1.3rem}.cv-hint[data-v-6f2e44eb]{margin-top:1rem;font-size:.9rem;color:var(--text-secondary);opacity:.7}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a0f;--bg-secondary: #1a1a2e;--bg-card: #16213e;--accent: #00d4ff;--accent-hover: #0abde3;--text-primary: #ffffff;--text-secondary: #b8b8b8;--gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-rainbow: linear-gradient(90deg, #667eea, #764ba2, #f093fb, #f5576c);--shadow: 0 10px 30px rgba(0, 0, 0, .3)}[data-theme=light]{--bg-primary: #f5f7fa;--bg-secondary: #e8ecf1;--bg-card: #ffffff;--accent: #0077cc;--accent-hover: #005fa3;--text-primary: #1a1a2e;--text-secondary: #4a5568;--shadow: 0 10px 30px rgba(0, 0, 0, .1)}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden;transition:background-color .3s ease,color .3s ease}.container{max-width:1200px;margin:0 auto;padding:0 20px}.btn{padding:1rem 2rem;border:none;border-radius:50px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-block;text-align:center}.btn-primary{background:var(--gradient);color:#fff;box-shadow:var(--shadow)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 15px 40px #00d4ff4d}.btn-secondary{background:transparent;color:var(--text-primary);border:2px solid var(--accent)}.btn-secondary:hover{background:var(--accent);transform:translateY(-3px)}section{padding:5rem 0}.section-title{text-align:center;font-size:2.5rem;margin-bottom:3rem;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.highlight{color:var(--accent);font-weight:600}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .6s ease forwards}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-hover)}@media (max-width: 768px){.container{padding:0 15px}section{padding:3rem 0}.section-title{font-size:2rem}}.animate-on-scroll{opacity:0;transition:opacity .6s ease,transform .6s ease}.animate-on-scroll.is-visible{opacity:1}.animate-fade-up{transform:translateY(30px)}.animate-fade-up.is-visible{transform:translateY(0)}.animate-fade-left{transform:translate(-30px)}.animate-fade-left.is-visible{transform:translate(0)}.animate-fade-right{transform:translate(30px)}.animate-fade-right.is-visible{transform:translate(0)}.animate-scale{transform:scale(.9)}.animate-scale.is-visible{transform:scale(1)}.stagger-children>*{opacity:0;transform:translateY(20px);transition:opacity .4s ease,transform .4s ease}.stagger-children.is-visible>*:nth-child(1){transition-delay:0s;opacity:1;transform:translateY(0)}.stagger-children.is-visible>*:nth-child(2){transition-delay:.1s;opacity:1;transform:translateY(0)}.stagger-children.is-visible>*:nth-child(3){transition-delay:.2s;opacity:1;transform:translateY(0)}.stagger-children.is-visible>*:nth-child(4){transition-delay:.3s;opacity:1;transform:translateY(0)}.stagger-children.is-visible>*:nth-child(5){transition-delay:.4s;opacity:1;transform:translateY(0)}.stagger-children.is-visible>*:nth-child(6){transition-delay:.5s;opacity:1;transform:translateY(0)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.animate-on-scroll{opacity:1;transform:none}}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-secondary) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:40px;height:40px;border:3px solid var(--bg-card);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
