.footer[data-v-9d18e7a7]{width:100%;padding:3rem 2rem 2rem;border-top:1px solid var(--color-border)}.container[data-v-9d18e7a7]{max-width:1100px;margin:0 auto}.footer-cta[data-v-9d18e7a7]{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.footer-badge[data-v-9d18e7a7]{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .875rem;background:var(--primary-color-alpha);border:1px solid var(--primary-color);border-radius:2rem;color:var(--primary-color);font-size:.875rem;font-weight:500}.footer-badge__dot[data-v-9d18e7a7]{width:7px;height:7px;border-radius:50%;background:var(--primary-color);box-shadow:0 0 6px var(--primary-color);animation:pulse-9d18e7a7 2s infinite;flex-shrink:0}.footer-email-btn[data-v-9d18e7a7]{display:inline-flex;align-items:center;padding:.4rem 1rem;border:1px solid var(--color-border);border-radius:2rem;color:var(--color-text);font-size:.875rem;font-weight:500;text-decoration:none;transition:border-color .2s ease,color .2s ease,background .2s ease}.footer-email-btn[data-v-9d18e7a7]:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-color-alpha)}.footer-bottom[data-v-9d18e7a7]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.footer-text[data-v-9d18e7a7]{color:var(--color-text);font-size:.875rem;opacity:.5;margin:0}.social-links[data-v-9d18e7a7]{display:flex;gap:1rem;align-items:center}.social-link[data-v-9d18e7a7]{color:var(--color-text);opacity:.5;transition:color .2s ease,opacity .2s ease}.social-link[data-v-9d18e7a7]:hover{color:var(--primary-color);opacity:1}.icon[data-v-9d18e7a7]{width:1.375rem;height:1.375rem}@keyframes pulse-9d18e7a7{0%{transform:scale(.95);box-shadow:0 0 0 0 var(--primary-color)}70%{transform:scale(1);box-shadow:0 0 0 5px transparent}to{transform:scale(.95);box-shadow:0 0 0 0 transparent}}:root{--nav-text-color: var(--color-text);--nav-hover-color: var(--primary-color);--nav-active-color: var(--primary-color)}nav{padding:30px;color:var(--nav-text-color)}nav a,nav .router-link{font-weight:700;text-decoration:none;margin:10px;cursor:pointer;color:var(--nav-text-color);transition:color .3s ease}nav a:hover,nav .router-link:hover{color:var(--nav-hover-color)}nav a.router-link-exact-active,nav .router-link.router-link-exact-active{color:var(--nav-active-color)}.nav-controls{display:flex;align-items:center;gap:8px}.theme-toggle{position:relative;margin-left:4px}.theme-button{background:none;border:none;cursor:pointer;padding:8px;position:relative;width:40px;height:40px;border-radius:50%;color:var(--color-text);transition:background-color .3s ease}.theme-button:hover{background-color:var(--color-background-soft)}.sun-icon,.moon-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.2rem;transition:opacity .3s ease}.sun-icon{opacity:1}.moon-icon{opacity:0}.sun-icon.active,.moon-icon.active{opacity:1}.logo-link{display:flex;align-items:center;padding:.5rem;text-decoration:none;transition:all .3s ease}.logo-text{font-family:Cookie,cursive;font-size:2.5rem;color:var(--color-heading);text-decoration:none;transition:transform .3s ease,color .3s ease}.logo-link:hover .logo-text{transform:scale(1.05);color:var(--primary-color)}.desktop-links{display:flex;gap:0}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:8px;width:40px;height:40px}.ham-bar{display:block;width:22px;height:2px;background:var(--color-text);border-radius:2px;transition:transform .3s ease,opacity .3s ease}.ham-bar:nth-child(1).open{transform:translateY(7px) rotate(45deg)}.ham-bar:nth-child(2).open{opacity:0}.ham-bar:nth-child(3).open{transform:translateY(-7px) rotate(-45deg)}.mobile-menu{display:none;flex-direction:column;background:var(--color-background);border-bottom:1px solid var(--color-border);max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.mobile-menu.open{max-height:400px;padding:.5rem 0}.mobile-link{display:block;padding:.875rem 1.5rem;color:var(--nav-text-color);text-decoration:none;font-weight:500;border-bottom:1px solid var(--color-border);transition:color .2s ease,background .2s ease}.mobile-link:last-child{border-bottom:none}.mobile-link:hover{color:var(--nav-hover-color);background:var(--color-background-soft)}.mobile-link.router-link-exact-active{color:var(--nav-active-color)}@media (max-width: 768px){.logo-text{font-size:2rem}.desktop-links{display:none}.hamburger,.mobile-menu{display:flex}}.page-enter-active,.page-leave-active{transition:opacity .2s ease,transform .2s ease}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-8px)}.metrics-section[data-v-87550b88]{padding:5rem 2rem;max-width:1200px;margin:0 auto}.metrics-grid[data-v-87550b88]{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;max-width:900px;margin:0 auto}@media (max-width: 768px){.metrics-grid[data-v-87550b88]{grid-template-columns:repeat(2,1fr)}}.metric-card[data-v-87550b88]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.75rem 1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:.75rem;text-align:center;cursor:default;opacity:0;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.metric-card[data-v-87550b88]:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--primary-color);border-color:var(--primary-color)}.metric-value[data-v-87550b88]{font-size:clamp(2rem,4vw,2.75rem);font-weight:700;color:var(--primary-color);line-height:1}.metric-label[data-v-87550b88]{font-size:.8rem;color:var(--color-text);opacity:.7;text-align:center;line-height:1.4}.featured-section[data-v-42397484]{padding:0 2rem 5rem}.featured-inner[data-v-42397484]{max-width:1100px;margin:0 auto}.featured-header[data-v-42397484]{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.featured-title[data-v-42397484]{font-size:1.75rem;font-weight:700;color:var(--color-heading);margin:0}.all-link[data-v-42397484]{color:var(--primary-color);text-decoration:none;font-size:.9375rem;font-weight:500;transition:opacity .2s}.all-link[data-v-42397484]:hover{opacity:.7}.featured-grid[data-v-42397484]{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}@media (max-width: 900px){.featured-grid[data-v-42397484]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.featured-grid[data-v-42397484]{grid-template-columns:1fr}}.featured-card[data-v-42397484]{position:relative;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:1rem;padding:1.75rem;cursor:pointer;display:flex;flex-direction:column;gap:.75rem;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.featured-card[data-v-42397484]:hover{transform:translateY(-4px);box-shadow:0 8px 30px #00000014;border-color:var(--primary-color)}.live-badge[data-v-42397484]{position:absolute;top:1.25rem;right:1.25rem;display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .5rem;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.35);border-radius:999px;font-size:.6rem;font-weight:700;letter-spacing:.08em;color:#16a34a;text-transform:uppercase}.live-badge__dot[data-v-42397484]{width:5px;height:5px;border-radius:50%;background:#22c55e;animation:live-pulse-42397484 1.8s ease-in-out infinite}@keyframes live-pulse-42397484{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.15)}}[data-theme=dark] .live-badge[data-v-42397484]{color:#4ade80}[data-theme=dark] .live-badge .live-badge__dot[data-v-42397484]{background:#4ade80}.card-name[data-v-42397484]{font-size:1.25rem;font-weight:600;color:var(--color-heading);margin:0;padding-right:3rem}.card-desc[data-v-42397484]{font-size:.9375rem;color:var(--color-text);opacity:.8;line-height:1.6;margin:0;flex:1}.card-tech[data-v-42397484]{display:flex;flex-wrap:wrap;gap:.375rem}.tech-tag[data-v-42397484]{font-size:.75rem;color:var(--color-text);opacity:.55}.card-links[data-v-42397484]{display:flex;gap:.5rem;margin-top:.25rem}.card-link[data-v-42397484]{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:.375rem;font-size:.8rem;font-weight:500;text-decoration:none;color:#fff;transition:opacity .2s}.card-link[data-v-42397484]:hover{opacity:.85}.card-link--github[data-v-42397484]{background:#24292f}.card-link--npm[data-v-42397484]{background:#cb3837}.terminal-section[data-v-77edc8e5]{padding:0 2rem 6rem}.terminal-inner[data-v-77edc8e5]{max-width:700px;margin:0 auto}.terminal-card[data-v-77edc8e5]{background:#0d1117;border-radius:1rem;border:1px solid rgba(255,255,255,.08);overflow:hidden;display:flex;flex-direction:column}.terminal-header[data-v-77edc8e5]{background:#161b22;padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.terminal-dots[data-v-77edc8e5]{display:flex;gap:.4rem}.dot[data-v-77edc8e5]{width:12px;height:12px;border-radius:50%;display:block}.terminal-title[data-v-77edc8e5]{font-family:Fira Code,monospace;font-size:.8rem;color:#8b949e}.terminal-body[data-v-77edc8e5]{padding:1.25rem 1.5rem;font-family:Fira Code,monospace;font-size:.8125rem;line-height:1.75;overflow-y:auto;max-height:420px;flex:1;scroll-behavior:smooth}.boot-line[data-v-77edc8e5]{color:#8b949e;white-space:pre-wrap}.chips-row[data-v-77edc8e5]{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.chip[data-v-77edc8e5]{font-family:Fira Code,monospace;font-size:.75rem;padding:.25rem .6rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:.375rem;color:var(--primary-color);cursor:pointer;transition:background .15s ease,border-color .15s ease}.chip[data-v-77edc8e5]:hover{background:var(--primary-color-alpha);border-color:var(--primary-color)}.history-entry[data-v-77edc8e5]{margin-top:.75rem}.user-line[data-v-77edc8e5]{color:#e6edf3;font-weight:500}.bot-line[data-v-77edc8e5]{color:#8b949e;white-space:pre-wrap;margin-top:.2rem}.reply-part[data-v-77edc8e5]{display:inline}.loading-line[data-v-77edc8e5]{margin-top:.5rem;color:var(--primary-color);font-family:Fira Code,monospace;font-size:.8125rem}.loading-text[data-v-77edc8e5]{color:#8b949e}.cursor-row[data-v-77edc8e5]{margin-top:.25rem}.cursor[data-v-77edc8e5]{color:var(--primary-color)}.cursor.blink[data-v-77edc8e5]{animation:blink-77edc8e5 1s step-end infinite}@keyframes blink-77edc8e5{0%,to{opacity:1}50%{opacity:0}}.contact-mode[data-v-77edc8e5]{margin-top:.75rem}.contact-field[data-v-77edc8e5]{display:flex;align-items:flex-start;gap:.5rem;margin-top:.5rem}.field-label[data-v-77edc8e5]{color:var(--primary-color);white-space:nowrap;font-size:.8125rem;padding-top:.2rem}.field-input[data-v-77edc8e5]{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:.3rem;color:#e6edf3;font-family:Fira Code,monospace;font-size:.8125rem;padding:.25rem .5rem;flex:1;outline:none;transition:border-color .15s ease}.field-input[data-v-77edc8e5]:focus{border-color:var(--primary-color)}.field-input[data-v-77edc8e5]:disabled{opacity:.5}.field-textarea[data-v-77edc8e5]{resize:vertical;min-height:64px}.contact-actions[data-v-77edc8e5]{display:flex;gap:.5rem;margin-top:.75rem}.send-btn[data-v-77edc8e5]{font-family:Fira Code,monospace;font-size:.8125rem;padding:.35rem .9rem;background:var(--primary-color);color:#0d1117;border:none;border-radius:.375rem;cursor:pointer;font-weight:600;transition:opacity .15s ease}.send-btn[data-v-77edc8e5]:hover:not(:disabled){opacity:.85}.send-btn[data-v-77edc8e5]:disabled{opacity:.5;cursor:not-allowed}.cancel-btn[data-v-77edc8e5]{font-family:Fira Code,monospace;font-size:.8125rem;padding:.35rem .9rem;background:transparent;color:#8b949e;border:1px solid rgba(255,255,255,.1);border-radius:.375rem;cursor:pointer;transition:border-color .15s ease,color .15s ease}.cancel-btn[data-v-77edc8e5]:hover{border-color:#8b949e;color:#e6edf3}.success-line[data-v-77edc8e5]{color:#4ade80!important}.error-line[data-v-77edc8e5]{color:#f87171!important}.input-bar[data-v-77edc8e5]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-top:1px solid rgba(255,255,255,.06);background:#0d1117;flex-shrink:0}.prompt-prefix[data-v-77edc8e5]{color:var(--primary-color);font-family:Fira Code,monospace;font-size:.875rem;font-weight:600;flex-shrink:0}.cmd-input[data-v-77edc8e5]{flex:1;background:transparent;border:none;outline:none;color:#e6edf3;font-family:Fira Code,monospace;font-size:.875rem;caret-color:var(--primary-color)}.cmd-input[data-v-77edc8e5]::placeholder{color:#8b949e80}.cmd-input[data-v-77edc8e5]:disabled{opacity:.5}.enter-btn[data-v-77edc8e5]{font-family:Fira Code,monospace;font-size:.875rem;padding:.25rem .6rem;background:var(--primary-color-alpha);border:1px solid var(--primary-color);border-radius:.3rem;color:var(--primary-color);cursor:pointer;transition:background .15s ease;flex-shrink:0}.enter-btn[data-v-77edc8e5]:hover:not(:disabled){background:var(--primary-color-alpha);filter:brightness(1.15)}.enter-btn[data-v-77edc8e5]:disabled{opacity:.35;cursor:not-allowed}@media (max-width: 600px){.terminal-section[data-v-77edc8e5]{padding:0}.terminal-body[data-v-77edc8e5]{padding:1rem;font-size:.75rem;max-height:260px}.terminal-header[data-v-77edc8e5]{padding:.5rem .75rem}.cmd-input[data-v-77edc8e5],.prompt-prefix[data-v-77edc8e5]{font-size:.8rem}.chips-row[data-v-77edc8e5]{gap:.375rem}.chip[data-v-77edc8e5]{font-size:.7rem;padding:.2rem .5rem}}.highlight-wrapper[data-v-a3c4aa19]{display:inline-block;min-width:340px;position:relative;text-align:left;height:1.2em}.highlight[data-v-a3c4aa19]{display:inline-block;position:absolute;top:0;left:0;width:100%}.slide-up-enter-active[data-v-a3c4aa19],.slide-up-leave-active[data-v-a3c4aa19]{transition:all .6s cubic-bezier(.23,1,.32,1)}.slide-up-enter-from[data-v-a3c4aa19]{opacity:0;transform:translateY(20px);filter:blur(4px)}.slide-up-leave-to[data-v-a3c4aa19]{opacity:0;transform:translateY(-20px);filter:blur(4px)}.hero-section[data-v-a3c4aa19]{position:relative;min-height:100vh;width:100%;display:flex;flex-direction:column;justify-content:center;padding-top:80px;overflow:hidden}.hero-container[data-v-a3c4aa19]{display:flex;flex-direction:column;height:100%;justify-content:center}.hero-content[data-v-a3c4aa19]{display:flex;align-items:center;gap:4rem;margin-bottom:4rem}@media (max-width: 968px){.hero-content[data-v-a3c4aa19]{flex-direction:column;text-align:center;gap:3rem}}.hero-text[data-v-a3c4aa19]{flex:1;z-index:2}.badge[data-v-a3c4aa19]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--primary-color-alpha);border:1px solid var(--primary-color);border-radius:2rem;color:var(--primary-color);font-size:.875rem;font-weight:500;margin-bottom:1.5rem}.status-dot[data-v-a3c4aa19]{width:8px;height:8px;background-color:var(--primary-color);border-radius:50%;box-shadow:0 0 8px var(--primary-color);animation:pulse-a3c4aa19 2s infinite}.title-line.greeting[data-v-a3c4aa19]{font-size:clamp(1.75rem,3vw,2.25rem);font-weight:500;opacity:.85;letter-spacing:-.01em}.hero-title[data-v-a3c4aa19]{font-size:3.5rem;line-height:1.1;margin-bottom:1.5rem;font-weight:700;letter-spacing:-.02em;display:flex;flex-direction:column;gap:.2rem}@media (max-width: 768px){.hero-title[data-v-a3c4aa19]{font-size:2.5rem;align-items:center}}.hero-title .title-line[data-v-a3c4aa19]{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;justify-content:center}@media (min-width: 969px){.hero-title .title-line[data-v-a3c4aa19]{justify-content:flex-start}}.hero-title .highlight[data-v-a3c4aa19]{color:var(--primary-color);position:absolute;top:0;left:0;width:100%;white-space:nowrap}.hero-title .highlight[data-v-a3c4aa19]:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:30%;background:var(--primary-color-alpha);z-index:-1;transform:skew(-10deg)}.hero-description[data-v-a3c4aa19]{font-size:1.125rem;color:var(--color-text);margin-bottom:2rem;max-width:540px;line-height:1.6;opacity:.9}@media (max-width: 968px){.hero-description[data-v-a3c4aa19]{margin-left:auto;margin-right:auto}}.hero-actions[data-v-a3c4aa19]{display:flex;gap:1rem;align-items:center}@media (max-width: 968px){.hero-actions[data-v-a3c4aa19]{justify-content:center}}.btn-glow[data-v-a3c4aa19]{display:inline-flex;align-items:center;gap:.75rem;padding:.875rem 1.5rem;background:var(--primary-color);color:#fff;border-radius:2rem;font-weight:600;text-decoration:none;transition:all .3s ease;box-shadow:0 0 20px var(--primary-color-alpha)}.btn-glow[data-v-a3c4aa19]:hover{transform:translateY(-2px);box-shadow:0 0 30px var(--primary-color-alpha);filter:brightness(1.1)}.btn-outline[data-v-a3c4aa19]{display:inline-flex;align-items:center;gap:.75rem;padding:.875rem 1.5rem;background:transparent;color:var(--color-text);border:1px solid var(--border-color);border-radius:2rem;font-weight:500;text-decoration:none;transition:all .3s ease}.btn-outline[data-v-a3c4aa19]:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--primary-color-alpha)}.hero-terminal[data-v-a3c4aa19]{flex:1;display:flex;align-items:center;min-width:0}.hero-terminal[data-v-a3c4aa19] .terminal-section{padding:0;width:100%}.hero-terminal[data-v-a3c4aa19] .terminal-card{height:480px}@media (max-width: 600px){.hero-terminal[data-v-a3c4aa19] .terminal-card{height:360px}}.tech-ticker[data-v-a3c4aa19]{margin-top:auto;width:100%;overflow:hidden;text-align:center;padding-bottom:4rem;mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}.ticker-wrapper[data-v-a3c4aa19]{width:100%;overflow:hidden}.ticker-track[data-v-a3c4aa19]{display:flex;gap:6rem;width:max-content;animation:scroll-a3c4aa19 40s linear infinite;padding-left:6rem;align-items:center}.ticker-track[data-v-a3c4aa19]:hover{animation-play-state:paused}.company-logo-item[data-v-a3c4aa19]{display:flex;align-items:center;justify-content:center;gap:.75rem;min-width:140px;height:50px}.company-logo-item .tech-icon-logo[data-v-a3c4aa19]{width:32px;height:32px;object-fit:contain;filter:grayscale(100%) brightness(.8) contrast(.8);opacity:.6;transition:all .3s ease}.company-logo-item .company-logo-img[data-v-a3c4aa19]{max-width:140px;max-height:50px;width:auto;height:auto;object-fit:contain;filter:grayscale(100%) brightness(.8) contrast(.8);opacity:.6;transition:all .3s ease}.company-logo-item .company-name[data-v-a3c4aa19]{font-size:1.1rem;font-weight:600;color:var(--color-heading);opacity:.5;white-space:nowrap;transition:opacity .3s ease}.company-logo-item:hover .tech-icon-logo[data-v-a3c4aa19],.company-logo-item:hover .company-logo-img[data-v-a3c4aa19]{filter:grayscale(0%) brightness(1) contrast(1);opacity:1}.company-logo-item:hover .company-name[data-v-a3c4aa19]{opacity:.9;color:var(--primary-color)}@keyframes scroll-a3c4aa19{0%{transform:translate(0)}to{transform:translate(calc(-33.33% - 1.33rem))}}@keyframes pulse-a3c4aa19{0%{transform:scale(.95);box-shadow:0 0 0 0 var(--primary-color)}70%{transform:scale(1);box-shadow:0 0 0 6px transparent}to{transform:scale(.95);box-shadow:0 0 0 0 transparent}}.nav-dots[data-v-a3c4aa19]{position:fixed;right:2rem;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;gap:1rem}.nav-dot[data-v-a3c4aa19]{width:12px;height:12px;border-radius:50%;background:var(--color-background-mute);border:2px solid var(--color-border);cursor:pointer;transition:all .3s ease}.nav-dot.active[data-v-a3c4aa19]{background:var(--primary-color);border-color:var(--primary-color);transform:scale(1.2)}@media (max-width: 768px){.hero-title[data-v-a3c4aa19]{font-size:2.5rem}.hero-section[data-v-a3c4aa19]{padding-top:100px}}.projects-page[data-v-35a2c875]{min-height:100vh;padding:3rem 2rem;position:relative}.projects-page[data-v-35a2c875]:before{content:"";position:absolute;top:0;left:0;right:0;height:400px;background:radial-gradient(ellipse at 50% 0%,var(--primary-color-alpha) 0%,transparent 70%);pointer-events:none}.container[data-v-35a2c875]{max-width:1100px;margin:0 auto;position:relative}.header-section[data-v-35a2c875]{margin-bottom:4rem;text-align:center}.page-title[data-v-35a2c875]{font-size:clamp(2.5rem,5vw,3.5rem);font-weight:700;color:var(--color-heading);margin-bottom:1rem;letter-spacing:-.02em}.page-subtitle[data-v-35a2c875]{font-size:1.125rem;line-height:1.6;color:var(--color-text);opacity:.8;max-width:600px;margin:0 auto}.projects-grid[data-v-35a2c875]{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}@media (max-width: 900px){.projects-grid[data-v-35a2c875]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.projects-grid[data-v-35a2c875]{grid-template-columns:1fr}}.project-card[data-v-35a2c875]{position:relative;padding:1.75rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:1rem;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column;cursor:pointer}.project-card[data-v-35a2c875]:hover{transform:translateY(-4px);box-shadow:0 8px 30px #00000014;border-color:var(--primary-color)}.live-badge[data-v-35a2c875]{position:absolute;top:1.25rem;right:1.25rem;display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.35);border-radius:999px;font-size:.65rem;font-weight:700;letter-spacing:.08em;color:#16a34a;text-transform:uppercase}.live-badge__dot[data-v-35a2c875]{width:6px;height:6px;border-radius:50%;background:#22c55e;animation:live-pulse-35a2c875 1.8s ease-in-out infinite;flex-shrink:0}@keyframes live-pulse-35a2c875{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #22c55e80}50%{opacity:.8;transform:scale(1.15);box-shadow:0 0 0 4px #22c55e00}}[data-theme=dark] .live-badge[data-v-35a2c875]{background:rgba(34,197,94,.1);border-color:#22c55e40;color:#4ade80}[data-theme=dark] .live-badge .live-badge__dot[data-v-35a2c875]{background:#4ade80}.project-title[data-v-35a2c875]{font-size:1.25rem;font-weight:600;color:var(--color-heading);margin-bottom:.75rem;line-height:1.3;padding-right:3rem}.view-button[data-v-35a2c875]{display:inline-flex;align-items:center;padding:.5rem .875rem .375rem;background:transparent;color:var(--primary-color);border:1px solid var(--primary-color);border-radius:.375rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin-top:auto;width:fit-content;align-self:flex-start}.view-button[data-v-35a2c875]:hover{background:var(--primary-color);color:#fff}.project-description[data-v-35a2c875]{font-size:.9375rem;line-height:1.6;color:var(--color-text);opacity:.8;flex:1;margin-bottom:0}.project-tech[data-v-35a2c875]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tech-tag[data-v-35a2c875]{font-size:.75rem;color:var(--color-text);opacity:.6;font-weight:400}.project-details-page[data-v-db61d81b]{min-height:100vh;padding:6rem 2rem 4rem}.container[data-v-db61d81b]{max-width:900px;margin:0 auto}.back-button[data-v-db61d81b]{display:inline-flex;align-items:center;background:transparent;color:var(--primary-color);border:none;font-size:.9375rem;font-weight:500;cursor:pointer;margin-bottom:2rem;padding:0;transition:opacity .3s ease}.back-button[data-v-db61d81b]:hover{opacity:.7}.project-header[data-v-db61d81b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--color-border)}@media (max-width: 768px){.project-header[data-v-db61d81b]{flex-direction:column;align-items:flex-start;gap:1.5rem}}.project-title[data-v-db61d81b]{font-size:clamp(2rem,4vw,2.5rem);font-weight:700;color:var(--color-heading);letter-spacing:-.02em;margin:0}.project-link[data-v-db61d81b]{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--primary-color);color:#fff;text-decoration:none;border-radius:.5rem;font-size:.9375rem;font-weight:500;transition:all .3s ease;white-space:nowrap}.project-link[data-v-db61d81b]:hover{background:var(--primary-color-dark)}.project-links[data-v-db61d81b]{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}@media (max-width: 768px){.project-links[data-v-db61d81b]{width:100%}}.project-link--github[data-v-db61d81b]{background:#24292f}.project-link--github[data-v-db61d81b]:hover{background:#1c2128}.project-link--npm[data-v-db61d81b]{background:#cb3837}.project-link--npm[data-v-db61d81b]:hover{background:#a02d2c}.project-carousel[data-v-db61d81b]{margin-bottom:3rem;position:relative}.project-carousel .carousel-container[data-v-db61d81b]{position:relative;border-radius:1rem;overflow:hidden;border:1px solid var(--color-border);background:var(--color-background-soft);display:flex;align-items:center;justify-content:center;aspect-ratio:16/9}@media (max-width: 768px){.project-carousel .carousel-container[data-v-db61d81b]{aspect-ratio:4/3}}.project-carousel .carousel-slide[data-v-db61d81b]{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.project-carousel .carousel-slide img[data-v-db61d81b]{max-width:100%;max-height:100%;object-fit:contain;display:block}.project-carousel .carousel-fade-enter-active[data-v-db61d81b],.project-carousel .carousel-fade-leave-active[data-v-db61d81b]{transition:all .3s ease-in}.project-carousel .carousel-fade-enter-from[data-v-db61d81b]{opacity:0;transform:scale(.98);filter:blur(4px)}.project-carousel .carousel-fade-leave-to[data-v-db61d81b]{opacity:0;transform:scale(1.02);filter:blur(4px)}.project-carousel .carousel-control[data-v-db61d81b]{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.3);color:#fff;border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.project-carousel .carousel-control[data-v-db61d81b]:hover{background:var(--primary-color);transform:translateY(-50%) scale(1.1)}.project-carousel .carousel-control.prev[data-v-db61d81b]{left:1rem}.project-carousel .carousel-control.next[data-v-db61d81b]{right:1rem}@media (max-width: 768px){.project-carousel .carousel-control[data-v-db61d81b]{width:32px;height:32px;font-size:.8rem}}.project-carousel .carousel-indicators[data-v-db61d81b]{display:flex;justify-content:center;gap:.5rem;margin-top:1rem}.project-carousel .carousel-indicators .indicator-dot[data-v-db61d81b]{width:8px;height:8px;border-radius:50%;background:var(--color-border);border:none;padding:0;cursor:pointer;transition:all .3s ease}.project-carousel .carousel-indicators .indicator-dot.active[data-v-db61d81b]{background:var(--primary-color);width:24px;border-radius:4px}.project-carousel .carousel-indicators .indicator-dot[data-v-db61d81b]:hover:not(.active){background:var(--color-text);opacity:.5}.project-content[data-v-db61d81b]{display:flex;flex-direction:column;gap:3rem}.project-description[data-v-db61d81b]{font-size:1.0625rem;line-height:1.8;color:var(--color-text)}.project-description[data-v-db61d81b] a{color:var(--primary-color);text-decoration:none;font-weight:500}.project-description[data-v-db61d81b] a:hover{text-decoration:underline}.project-description[data-v-db61d81b] strong{color:var(--color-heading);font-weight:600}.project-description[data-v-db61d81b] br{display:block;content:"";margin-top:1rem}.project-article-link[data-v-db61d81b]{padding:1.25rem 1.5rem;border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-background-soft)}.project-article-link a[data-v-db61d81b]{display:inline-flex;align-items:center;gap:.5rem;color:var(--primary-color);text-decoration:none;font-weight:500;font-size:.9375rem}.project-article-link a[data-v-db61d81b]:hover{text-decoration:underline}.project-tech-section[data-v-db61d81b]{padding-top:2rem;border-top:1px solid var(--color-border)}.tech-title[data-v-db61d81b]{font-size:1.25rem;font-weight:600;color:var(--color-heading);margin-bottom:1.5rem}.tech-list[data-v-db61d81b]{display:flex;flex-wrap:wrap;gap:.75rem}.tech-tag[data-v-db61d81b]{padding:.5rem 1rem;background:var(--color-background-mute);border:1px solid var(--color-border);border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--color-text);transition:all .3s ease}.tech-tag[data-v-db61d81b]:hover{background:var(--color-background-soft);border-color:var(--primary-color)}[data-theme=dark] .project-header[data-v-db61d81b],[data-theme=dark] .project-tech-section[data-v-db61d81b],[data-theme=dark] .project-article-link[data-v-db61d81b],[data-theme=dark] .project-carousel .carousel-container[data-v-db61d81b]{border-color:#ffffff1a}[data-theme=light] .project-header[data-v-db61d81b],[data-theme=light] .project-tech-section[data-v-db61d81b],[data-theme=light] .project-article-link[data-v-db61d81b],[data-theme=light] .project-carousel .carousel-container[data-v-db61d81b]{border-color:#0000001a}.about-page[data-v-a8b6148b]{min-height:100vh;padding:3rem 2rem;position:relative}.about-page[data-v-a8b6148b]:before{content:"";position:absolute;top:0;left:0;right:0;height:400px;background:radial-gradient(ellipse at 50% 0%,var(--primary-color-alpha) 0%,transparent 70%);pointer-events:none}.container[data-v-a8b6148b]{max-width:1100px;margin:0 auto;position:relative}.page-title[data-v-a8b6148b]{font-size:clamp(2.5rem,5vw,3.5rem);font-weight:700;color:var(--color-heading);margin-bottom:2.5rem;letter-spacing:-.02em}.about-intro[data-v-a8b6148b]{display:grid;grid-template-columns:1fr 280px;gap:4rem;align-items:start}@media (max-width: 768px){.about-intro[data-v-a8b6148b]{grid-template-columns:1fr;gap:3rem}}.about-text p[data-v-a8b6148b]{font-size:1.0625rem;line-height:1.8;color:var(--color-text);margin-bottom:1.5rem}.about-text p[data-v-a8b6148b]:last-child{margin-bottom:0}.about-text p a[data-v-a8b6148b]{color:var(--primary-color);text-decoration:none;font-weight:500}.about-text p a[data-v-a8b6148b]:hover{text-decoration:underline}.about-text .lead[data-v-a8b6148b]{font-size:1.1875rem;font-weight:500;color:var(--color-heading)}.about-text .cta-line[data-v-a8b6148b]{font-style:italic;opacity:.85}.about-text .cta-line a[data-v-a8b6148b]{opacity:1;color:var(--primary-color)}.avatar-wrapper[data-v-a8b6148b]{border-radius:1rem;overflow:hidden;border:1px solid var(--color-border)}.avatar-img[data-v-a8b6148b]{width:100%;height:280px;object-fit:cover;object-position:center top;display:block}.about-stats[data-v-a8b6148b]{display:flex;flex-direction:column;gap:1rem;position:sticky;top:6rem}@media (max-width: 768px){.about-stats[data-v-a8b6148b]{flex-direction:row;flex-wrap:wrap;position:static}}.stat-card[data-v-a8b6148b]{padding:1.25rem 1.5rem;border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-background-soft);opacity:0}@media (max-width: 768px){.stat-card[data-v-a8b6148b]{flex:1 1 calc(50% - .5rem)}}.stat-number[data-v-a8b6148b]{display:block;font-size:2rem;font-weight:700;color:var(--primary-color);line-height:1;margin-bottom:.375rem}.stat-label[data-v-a8b6148b]{font-size:.8125rem;color:var(--color-text);opacity:.7;font-weight:500;text-transform:uppercase;letter-spacing:.05em}[data-theme=dark] .stat-card[data-v-a8b6148b]{border-color:#ffffff14}[data-theme=light] .stat-card[data-v-a8b6148b]{border-color:#00000014}.experience-timeline-page[data-v-0eda9a02]{padding:3rem 2rem;background:transparent;color:var(--color-text);min-height:100vh}.page-title[data-v-0eda9a02]{text-align:center;font-size:clamp(2.5rem,5vw,3.5rem);color:var(--color-heading);margin-bottom:3rem;font-weight:700}.timeline-container[data-v-0eda9a02]{display:grid;gap:2rem;max-width:1100px;margin:0 auto}.experience-card[data-v-0eda9a02]{background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:1rem;padding:2rem;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;text-align:left}.experience-card[data-v-0eda9a02]:hover{transform:translateY(-4px);box-shadow:0 8px 30px #00000014;border-color:var(--primary-color)}.card-header[data-v-0eda9a02]{display:flex;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.company-logo[data-v-0eda9a02]{width:60px;height:60px;object-fit:contain;border-radius:.5rem;background-color:var(--color-background);padding:5px;border:1px solid var(--color-border);flex-shrink:0}.header-text[data-v-0eda9a02]{display:flex;flex-direction:column;gap:.25rem}.job-title[data-v-0eda9a02]{font-size:clamp(1.25rem,3vw,1.5rem);font-weight:600;color:var(--color-heading);margin:0}.company-name[data-v-0eda9a02]{font-size:clamp(1rem,2.5vw,1.1rem);color:var(--primary-color);font-weight:500;margin:0}.job-duration[data-v-0eda9a02]{font-size:clamp(.85rem,2vw,.9rem);color:var(--color-text);opacity:.8;margin:0}.job-description[data-v-0eda9a02]{font-size:clamp(.9rem,2.2vw,1rem);line-height:1.7;color:var(--color-text)}.key-achievements[data-v-0eda9a02]{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.key-achievements .achievements-title[data-v-0eda9a02]{font-size:clamp(1rem,2.5vw,1.1rem);font-weight:600;color:var(--color-heading);margin-bottom:.75rem}.key-achievements ul[data-v-0eda9a02]{list-style-type:disc;padding-left:20px;margin:0;color:var(--color-text)}.key-achievements ul li[data-v-0eda9a02]{font-size:clamp(.85rem,2vw,.95rem);line-height:1.6;margin-bottom:.5rem}.key-achievements ul li[data-v-0eda9a02]:last-child{margin-bottom:0}@media (max-width: 768px){.experience-timeline-page[data-v-0eda9a02]{padding:3rem 1.25rem 2rem}.page-title[data-v-0eda9a02]{font-size:2rem;margin-bottom:2rem}.experience-card[data-v-0eda9a02]{padding:1.5rem}.card-header[data-v-0eda9a02]{gap:1rem;align-items:center}.company-logo[data-v-0eda9a02]{width:50px;height:50px}.job-title[data-v-0eda9a02]{font-size:1.15rem}.company-name[data-v-0eda9a02]{font-size:1rem}}@media (max-width: 480px){.page-title[data-v-0eda9a02]{font-size:1.8rem}.card-header[data-v-0eda9a02]{flex-direction:column;align-items:flex-start}.company-logo[data-v-0eda9a02]{margin-bottom:.5rem}}.experience-view[data-v-567ae8e6]{text-align:center;position:relative;min-height:100vh;overflow:hidden}.background-global[data-v-567ae8e6]{position:absolute;background:var(--color-background);z-index:-1}.gradient-overlay[data-v-567ae8e6]{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 0%,var(--primary-color-alpha) 0%,transparent 70%);opacity:.7}.pattern-overlay[data-v-567ae8e6]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.4;background-size:50px 50px;background-image:linear-gradient(var(--grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color) 1px,transparent 1px)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,system-ui,-apple-system,sans-serif;line-height:1.6;min-height:100vh;color:var(--color-text);background-color:var(--color-background);background-image:radial-gradient(circle at 50% 0%,var(--primary-color-alpha),transparent 70%),linear-gradient(var(--grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);background-size:100% 100vh,50px 50px,50px 50px;background-repeat:no-repeat,repeat,repeat;transition:color .3s ease,background-color .3s ease}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}.margin-sm{margin:.5rem}.margin-md{margin:1rem}.margin-lg{margin:2rem}.padding-sm{padding:.5rem}.padding-md{padding:1rem}.padding-lg{padding:2rem}h1,h2,h3,h4,h5,h6{margin-bottom:1rem;font-weight:700;color:var(--color-heading)}p{margin-bottom:1rem;color:var(--color-text)}.btn{display:inline-block;padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;transition:all .3s ease}.btn-primary{background-color:var(--primary-color);color:var(--color-text)}.btn-primary:hover{filter:brightness(90%)}.btn-secondary{background-color:var(--color-background-soft);color:var(--color-text)}.btn-secondary:hover{filter:brightness(90%)}.flex{display:flex}.flex-center{justify-content:center;align-items:center}.flex-between{justify-content:space-between}.flex-column{flex-direction:column}.grid{display:grid;gap:1rem}.hero-section,.content-section{height:100vh;overflow:hidden;color:var(--color-text)}.content-section{background-color:var(--color-background-soft);display:flex;align-items:center}.hero-image{width:75%;height:auto;object-fit:cover;margin:0 auto}:root{--primary-color: #42b983;--primary-color-dark: #3aa876;--primary-color-alpha: rgba(66, 185, 131, .2);--font-family: "Poppins", system-ui, -apple-system, sans-serif;--error-color: #ef4444;--error-bg: #fef2f2;--error-color-alpha: rgba(239, 68, 68, .2);--success-color: #22c55e;--success-bg: #f0fdf4;--border-color: var(--color-border);--border-hover-color: var(--color-border-hover);--grid-color: rgba(0, 0, 0, .04)}
