:root{--color-bg:#0b0b0f;--color-bg-secondary:#16161d;--color-text:#e6e6eb;--color-text-secondary:#9a9aa3;--color-accent:#7c5cff;--color-accent-rgb:124, 92, 255;--color-border:#25252f;--color-hover:#1c1c26;--color-tag-bg:#ffffff0d;--radius-sm:6px;--radius-md:12px;--transition-fast:.2s ease;--timeline-left:100px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--color-bg);color:var(--color-text);margin:0;font-family:Inter,sans-serif}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:rgba(var(--color-accent-rgb), .85)}h1,h2,h3{line-height:1.2}h1{font-size:2.5rem;font-weight:600}h2{margin-bottom:1rem;font-size:1.8rem;font-weight:500}h3{margin-bottom:.5rem;font-size:1.3rem;font-weight:500}p{margin-bottom:1rem;font-size:1rem}time{color:var(--color-text-secondary);font-size:.85rem}section{margin-bottom:2rem}article{border-bottom:1px solid var(--color-border);transition:transform var(--transition-fast);margin-bottom:1rem;padding-bottom:1rem}article:hover{transform:translateY(-2px)}main{max-width:800px;margin:0 auto}.card{background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);padding:1.5rem}.card--interactive{transition:background-color var(--transition-fast), transform var(--transition-fast)}.card--interactive:hover{background-color:var(--color-hover);transform:translateY(-2px)}.badge{background-color:var(--color-tag-bg);color:var(--color-text);transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);border:1px solid #0000;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.8rem;font-weight:500;line-height:1;display:inline-flex}.badge--accent{background-color:rgba(var(--color-accent-rgb), .15);border-color:rgba(var(--color-accent-rgb), .3);color:var(--color-accent)}.badge--outline{border-color:var(--color-border);color:var(--color-text-secondary);background-color:#0000}.badge--success{color:#4ade80;background-color:#22c55e1f;border-color:#22c55e4d}.badge--warning{color:#fbbf24;background-color:#f59e0b1f;border-color:#f59e0b4d}.badge--danger{color:#f87171;background-color:#ef44441f;border-color:#ef44444d}.badge--info{color:#60a5fa;background-color:#3b82f61f;border-color:#3b82f64d}.tech-badge{transition:transform var(--transition-fast), border-color var(--transition-fast);border:1px solid #0000;border-radius:999px;align-items:center;padding:.35rem .75rem;font-size:.8rem;font-weight:500;line-height:1;display:inline-flex}.tech-badge:hover{transform:translateY(-1px)}.tech-badge--java{color:#fb923c;background:#f9731626;border-color:#f973164d}.tech-badge--spring{color:#4ade80;background:#22c55e26;border-color:#22c55e4d}.tech-badge--vue{color:#34d399;background:#10b98126;border-color:#10b9814d}.tech-badge--docker{color:#60a5fa;background:#3b82f626;border-color:#3b82f64d}.tech-badge--postgresql{color:#60a5fa;background:#1e40af26;border-color:#1e40af4d}.tech-badge--oracle{color:#f87171;background:#dc262626;border-color:#dc26264d}.tech-badge--redis{color:#f87171;background:#b91c1c26;border-color:#b91c1c4d}.tech-badge--kafka{color:#c084fc;background:#a855f726;border-color:#a855f74d}.tech-badge--jwt{color:#f87171;background:#ef444426;border-color:#ef44444d}.tech-badge--microservices{color:#c4b5fd;background:#7c3aed26;border-color:#7c3aed4d}.tech-badge--odoo{color:#fb7185;background:#7f1d1d26;border-color:#7f1d1d4d}.tech-badge--python{color:#facc15;background:#eab30826;border-color:#eab3084d}.tech-badge--database{color:#d1d5db;background:#6b728026;border-color:#6b72804d}.navbar[data-v-4699a5a9]{z-index:100;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0f172ab8;border:1px solid #ffffff14;border-radius:999px;justify-content:space-between;align-items:center;gap:2rem;max-width:1100px;margin:1rem auto;padding:.85rem 1.25rem;transition:padding .25s,background-color .25s,border-color .25s,box-shadow .25s,transform .25s;display:flex;position:sticky;top:1rem}.navbar--scrolled[data-v-4699a5a9]{background:#0f172ad1;padding:.55rem 1rem;box-shadow:0 8px 30px #0003}.brand[data-v-4699a5a9]{color:inherit;flex-shrink:0;align-items:center;text-decoration:none;display:flex}.brand-name[data-v-4699a5a9]{font-family:monospace;font-size:.95rem;font-weight:600;transition:font-size .25s,letter-spacing .25s;position:relative}.brand-name[data-v-4699a5a9]:after{content:"_";color:var(--color-accent);animation:1.2s infinite blink-4699a5a9}.navbar--scrolled .brand-name[data-v-4699a5a9]{letter-spacing:.05em;font-size:.85rem}.nav[data-v-4699a5a9]{align-items:center;gap:.35rem;display:flex}.nav-link[data-v-4699a5a9]{color:var(--color-text-secondary);transition:padding .25s ease, color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);border-radius:999px;padding:.55rem .9rem;text-decoration:none}.navbar--scrolled .nav-link[data-v-4699a5a9]{padding:.45rem .75rem}.nav-link[data-v-4699a5a9]:hover{color:var(--color-text);background-color:#ffffff0d;transform:translateY(-1px)}.nav-link.router-link-exact-active[data-v-4699a5a9]{color:var(--color-accent);background-color:rgba(var(--color-accent-rgb), .1)}.menu-button[data-v-4699a5a9]{color:var(--color-text);cursor:pointer;background:0 0;border:none;font-size:1.35rem;display:none}@keyframes blink-4699a5a9{50%{opacity:0}}@media (width<=900px){.navbar[data-v-4699a5a9]{border-radius:28px;flex-wrap:wrap;gap:1rem;margin:1rem;padding:.85rem 1rem;position:static}.menu-button[data-v-4699a5a9]{display:block}.nav[data-v-4699a5a9]{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff08;border:1px solid #ffffff14;border-radius:24px;flex-direction:column;gap:.35rem;width:100%;margin-top:.5rem;padding:.75rem;display:none;box-shadow:0 8px 30px #00000040}.nav--open[data-v-4699a5a9]{display:flex}.nav-link[data-v-4699a5a9]{border-radius:16px;width:100%;padding:.85rem 1rem}}.footer[data-v-968cc282]{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;max-width:700px;margin:4rem auto 3rem;padding-top:3rem;display:flex;position:relative}.footer[data-v-968cc282]:before{content:"";background-color:var(--color-border);width:80px;height:1px}.footer-name[data-v-968cc282]{margin:0;font-size:1.6rem;font-weight:700}.footer-role[data-v-968cc282]{color:var(--color-accent);margin:0;font-family:monospace}.footer-description[data-v-968cc282]{max-width:45ch;color:var(--color-text-secondary);margin:0;line-height:1.8}.footer-nav[data-v-968cc282]{flex-wrap:wrap;justify-content:center;gap:.75rem 1.5rem;margin-top:.5rem;display:flex}.footer-nav a[data-v-968cc282]{color:var(--color-text-secondary);transition:color var(--transition-fast), transform var(--transition-fast);text-decoration:none}.footer-nav a[data-v-968cc282]:hover{color:var(--color-accent);transform:translateY(-2px)}.footer-github[data-v-968cc282]{border:1px solid var(--color-border);color:var(--color-text);transition:border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast), color var(--transition-fast);background-color:#ffffff08;border-radius:999px;align-items:center;gap:.75rem;padding:.7rem 1rem;text-decoration:none;display:inline-flex}.footer-github img[data-v-968cc282]{width:16px;height:16px}.footer-github[data-v-968cc282]:hover{border-color:rgba(var(--color-accent-rgb), .3);background-color:rgba(var(--color-accent-rgb), .08);color:var(--color-accent);transform:translateY(-2px)}.footer-note[data-v-968cc282]{color:var(--color-text-secondary);margin:0;font-family:monospace;font-size:.85rem}.footer-note[data-v-968cc282]:before{content:"$ ";color:var(--color-accent)}@media (width<=640px){.footer[data-v-968cc282]{margin:6rem auto 3rem;padding-top:2rem}.footer-nav[data-v-968cc282]{gap:.75rem 1rem}}.main-content[data-v-b5656490]{max-width:800px;margin:0 auto;padding:0 1rem}.about-preview[data-v-df73a874]{flex-direction:column;gap:2rem;display:flex}.section-header[data-v-df73a874]{justify-content:space-between;align-items:end;gap:2rem;display:flex}.section-subtitle[data-v-df73a874]{color:var(--color-text-secondary);margin-top:.5rem}.about-content[data-v-df73a874]{flex-direction:column;gap:2rem;display:flex}.about-block[data-v-df73a874]{flex-direction:column;gap:.75rem;display:flex}.about-label[data-v-df73a874]{letter-spacing:.08em;width:fit-content;color:var(--color-accent);font-family:monospace;font-size:.8rem;font-weight:600}.about-block p[data-v-df73a874]{color:var(--color-text-secondary);margin:0;line-height:1.9}.about-footer[data-v-df73a874]{flex-wrap:wrap;gap:.75rem;padding-top:.5rem;display:flex}.about-footer span[data-v-df73a874]{border:1px solid var(--color-border);color:var(--color-text-secondary);transition:border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);background-color:#ffffff08;border-radius:999px;padding:.35rem .75rem;font-family:monospace;font-size:.85rem}.about-footer span[data-v-df73a874]:hover{border-color:rgba(var(--color-accent-rgb), .3);color:var(--color-text);transform:translateY(-2px)}.about-link[data-v-df73a874]{color:var(--color-text-secondary);white-space:nowrap;transition:color var(--transition-fast), transform var(--transition-fast)}.about-link[data-v-df73a874]:hover{color:var(--color-accent);transform:translate(4px)}@media (width<=640px){.section-header[data-v-df73a874]{flex-direction:column;align-items:start}}.contact-preview[data-v-5bdc08d4]{text-align:center;flex-direction:column;align-items:center;gap:2rem;display:flex}.contact-terminal[data-v-5bdc08d4]{flex-direction:column;gap:.85rem;font-family:monospace;display:flex}.contact-command[data-v-5bdc08d4]{color:var(--color-text-secondary);transition:color var(--transition-fast), transform var(--transition-fast)}.contact-command[data-v-5bdc08d4]:hover{color:var(--color-accent);transform:translate(4px)}.contact-action[data-v-5bdc08d4]{border:1px solid var(--color-border);background-color:rgba(var(--color-accent-rgb), .08);width:fit-content;color:var(--color-text);transition:border-color var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);border-radius:999px;padding:.85rem 1.5rem;font-family:monospace;font-weight:600;text-decoration:none}.contact-action[data-v-5bdc08d4]:hover{border-color:rgba(var(--color-accent-rgb), .35);background-color:rgba(var(--color-accent-rgb), .14);color:var(--color-accent);transform:translateY(-2px)}.contact-description[data-v-5bdc08d4]{max-width:55ch;color:var(--color-text-secondary);margin:0;line-height:1.9}@media (width<=640px){.contact-preview[data-v-5bdc08d4]{gap:1.5rem}}.current-list[data-v-33c1984d]{flex-direction:column;gap:.75rem;margin-top:1.5rem;list-style:none;display:flex}.current-list li[data-v-33c1984d]{border-bottom:1px solid var(--color-border);transition:color var(--transition-fast), transform var(--transition-fast);grid-template-columns:140px 1fr;align-items:center;gap:1rem;padding:.85rem 0;display:grid;position:relative}.current-list li[data-v-33c1984d]:before{content:"";background-color:var(--color-accent);width:2px;height:0;transition:height var(--transition-fast);position:absolute;top:50%;left:-1.5rem;transform:translateY(-50%)}.current-list li[data-v-33c1984d]:hover:before,.current-item--active[data-v-33c1984d]:before{height:60%}.current-label[data-v-33c1984d]{letter-spacing:.08em;color:var(--color-text-secondary);transition:color var(--transition-fast), transform var(--transition-fast);font-size:.75rem;font-weight:600}.current-text[data-v-33c1984d]{color:var(--color-text-secondary);transition:color var(--transition-fast), transform var(--transition-fast)}.current-list li:hover .current-label[data-v-33c1984d],.current-item--active .current-label[data-v-33c1984d]{color:var(--color-accent);transform:translate(6px)}.current-list li:hover .current-text[data-v-33c1984d],.current-item--active .current-text[data-v-33c1984d]{color:var(--color-text);transform:translate(4px)}.featured-project-card[data-v-2b31bf70]{border:1px solid var(--color-border);transition:border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);background:linear-gradient(#ffffff08,#ffffff03);border-radius:28px;flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.featured-project-card[data-v-2b31bf70]:hover{border-color:rgba(var(--color-accent-rgb), .25);background:linear-gradient(180deg, rgba(var(--color-accent-rgb), .08), #ffffff05);transform:translateY(-3px)}.project-prefix[data-v-2b31bf70]{color:var(--color-accent);font-family:monospace;font-size:.8rem}.project-title[data-v-2b31bf70]{margin:0;font-size:1.5rem;line-height:1.2}.project-summary[data-v-2b31bf70]{max-width:55ch;color:var(--color-text-secondary);margin:0;line-height:1.8}.project-badges[data-v-2b31bf70],.project-technologies[data-v-2b31bf70]{flex-wrap:wrap;gap:.5rem;display:flex}.project-link[data-v-2b31bf70]{width:fit-content;color:var(--color-text-secondary);transition:color var(--transition-fast), transform var(--transition-fast);margin-top:auto;font-weight:500;text-decoration:none}.project-link[data-v-2b31bf70]:hover{color:var(--color-accent);transform:translate(3px)}@media (width<=768px){.featured-project-card[data-v-2b31bf70]{padding:1.35rem}.project-title[data-v-2b31bf70]{font-size:1.35rem}.project-summary[data-v-2b31bf70]{font-size:.95rem}}.featured-projects[data-v-185da554]{flex-direction:column;gap:2rem;display:flex}.section-header[data-v-185da554]{justify-content:space-between;align-items:end;gap:2rem;display:flex}.section-subtitle[data-v-185da554]{color:var(--color-text-secondary);margin-top:.5rem}.section-link[data-v-185da554]{color:var(--color-text-secondary);transition:color var(--transition-fast), transform var(--transition-fast)}.section-link[data-v-185da554]:hover{color:var(--color-accent);transform:translate(4px)}.projects-grid[data-v-185da554]{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.5rem;display:grid}@media (width<=640px){.section-header[data-v-185da554]{flex-direction:column;align-items:start}.projects-grid[data-v-185da554]{grid-template-columns:1fr}}.hero[data-v-d2d08d97]{text-align:center;border-bottom:1px solid var(--color-border);flex-direction:column;align-items:center;margin-top:1rem;display:flex;position:relative;overflow:hidden}.hero[data-v-d2d08d97]:before{content:"";background:radial-gradient(circle at 30% 40%, rgba(var(--color-accent-rgb), .2), transparent 60%), radial-gradient(circle at 70% 60%, rgba(var(--color-accent-rgb), .08), transparent 60%);filter:blur(80px);z-index:-1;position:absolute;inset:-120px}.hero h2[data-v-d2d08d97]{max-width:700px;font-size:2.6rem}.hero p[data-v-d2d08d97]{max-width:600px;color:var(--color-text-secondary)}.hero-subtitle[data-v-d2d08d97]{color:var(--color-text-secondary);font-size:1rem}.section-header[data-v-aacc83f9]{justify-content:space-between;align-items:end;gap:2rem;display:flex}.section-prefix[data-v-aacc83f9]{color:var(--color-accent);margin-bottom:.75rem;font-family:monospace;font-size:.85rem;display:block}.section-subtitle[data-v-aacc83f9]{max-width:550px;color:var(--color-text-secondary);margin-top:.5rem}.logs-link[data-v-aacc83f9]{color:var(--color-text-secondary);white-space:nowrap;transition:color var(--transition-fast), transform var(--transition-fast)}.logs-link[data-v-aacc83f9]:hover{color:var(--color-accent);transform:translate(4px)}.logs-grid[data-v-aacc83f9]{gap:1rem;margin-top:2rem;display:grid}.log-preview[data-v-aacc83f9]{border:1px solid var(--color-border);transition:border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);background:linear-gradient(#ffffff08,#ffffff03);border-radius:24px;flex-direction:column;gap:.9rem;padding:1.35rem;text-decoration:none;display:flex}.log-preview[data-v-aacc83f9]:hover{border-color:rgba(var(--color-accent-rgb), .25);background:linear-gradient(180deg, rgba(var(--color-accent-rgb), .08), #ffffff05);transform:translateY(-3px)}.log-meta[data-v-aacc83f9]{justify-content:space-between;align-items:center;display:flex}.log-mood[data-v-aacc83f9]{font-size:1.1rem}.log-info[data-v-aacc83f9]{color:var(--color-text-secondary);font-family:monospace;font-size:.8rem}.log-title[data-v-aacc83f9]{color:var(--color-text);margin:0;font-size:1.05rem;line-height:1.45}.log-excerpt[data-v-aacc83f9]{color:var(--color-text-secondary);margin:0;line-height:1.7}.log-tags[data-v-aacc83f9]{flex-wrap:wrap;gap:.5rem;margin-top:auto;display:flex}.log-tag[data-v-aacc83f9]{color:var(--color-accent);font-family:monospace;font-size:.8rem}@media (width<=640px){.section-header[data-v-aacc83f9]{flex-direction:column;align-items:start}.log-meta[data-v-aacc83f9]{flex-direction:column;align-items:start;gap:.35rem}}
