:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-card: #1c2128;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #6e7681;--accent: #f0b429;--accent-hover: #f5c542;--accent-dim: rgba(240, 180, 41, .15);--border-color: #30363d;--border-subtle: #21262d;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--container-max: 880px;--container-padding: 1.5rem;--transition: .25s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{font-family:inherit}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}h1,h2,h3,h4{font-weight:700;line-height:1.3;letter-spacing:-.02em}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-dim);color:var(--accent)}.mouse-glow[data-v-42074039]{position:absolute;width:600px;height:600px;pointer-events:none;z-index:0;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(240,180,41,.08) 0%,rgba(240,180,41,.04) 25%,transparent 50%);transition:opacity .6s ease}.portfolio[data-v-42074039]{position:relative;min-height:100vh}.nav[data-v-42074039]{position:fixed;top:0;left:0;right:0;z-index:100;padding:1rem 0;background:transparent;transition:all .35s ease}.nav--scrolled[data-v-42074039]{background:#0d1117e6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.05);padding:.75rem 0}.nav-content[data-v-42074039]{display:flex;align-items:center;justify-content:space-between}.nav-logo[data-v-42074039]{font-size:.95rem;font-weight:600;color:var(--text-primary);letter-spacing:.02em;transition:color .25s ease;font-family:JetBrains Mono,monospace}.nav-logo-bracket[data-v-42074039]{color:#4ade80;font-weight:700;margin-right:6px}.nav-logo[data-v-42074039]:hover{color:var(--accent)}.nav-links[data-v-42074039]{display:flex;gap:2rem}.nav-link[data-v-42074039]{font-size:.82rem;color:var(--text-muted);font-weight:500;letter-spacing:.01em;font-family:JetBrains Mono,monospace;transition:color .25s ease;position:relative}.nav-link[data-v-42074039]:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--accent);transition:width .3s ease}.nav-link[data-v-42074039]:hover{color:var(--text-primary)}.nav-link[data-v-42074039]:hover:after{width:100%}.footer[data-v-42074039]{padding:2rem 0;border-top:1px solid rgba(255,255,255,.06);margin-top:4rem}.footer-content[data-v-42074039]{display:flex;align-items:center;justify-content:space-between}.footer-copy[data-v-42074039]{font-size:.85rem;color:var(--text-muted)}.footer-links[data-v-42074039]{display:flex;gap:1.5rem}.footer-link[data-v-42074039]{font-size:.85rem;color:var(--text-muted);transition:color .25s ease}.footer-link[data-v-42074039]:hover{color:var(--accent)}.page-enter-active[data-v-42074039],.page-leave-active[data-v-42074039]{transition:opacity .3s ease,transform .3s ease}.page-enter-from[data-v-42074039]{opacity:0;transform:translateY(12px)}.page-leave-to[data-v-42074039]{opacity:0;transform:translateY(-8px)}@media(max-width:768px){.nav-links[data-v-42074039]{display:none}.footer-content[data-v-42074039]{flex-direction:column;gap:1rem;text-align:center}}[data-animate][data-v-acfd5ddd]{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}[data-animate].fade-in[data-v-acfd5ddd]{opacity:1;transform:translateY(0)}.terminal-portfolio[data-v-acfd5ddd]{padding:2rem;padding-top:100px;max-width:960px;margin:0 auto}.terminal-chrome[data-v-acfd5ddd]{background:#0c1017;border:1px solid rgba(240,180,41,.12);border-radius:12px;box-shadow:0 24px 80px #0000008c;overflow:hidden}.terminal-titlebar[data-v-acfd5ddd]{background:#161b22;padding:12px 18px;display:flex;align-items:center;gap:14px;border-bottom:1px solid rgba(255,255,255,.05)}.terminal-dots[data-v-acfd5ddd]{display:flex;gap:7px}.dot[data-v-acfd5ddd]{width:12px;height:12px;border-radius:50%}.dot-red[data-v-acfd5ddd]{background:#ff5f57}.dot-yellow[data-v-acfd5ddd]{background:#febc2e}.dot-green[data-v-acfd5ddd]{background:#28c840}.terminal-tab[data-v-acfd5ddd]{font-family:JetBrains Mono,monospace;font-size:.72rem;color:#6e7681}.terminal-screen[data-v-acfd5ddd]{padding:2rem 2.5rem 2.5rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.84rem;line-height:1.65;color:#c9d1d9}.term-block[data-v-acfd5ddd]{margin-bottom:3.5rem}.cmd[data-v-acfd5ddd]{margin-bottom:1rem;color:#e6edf3;font-weight:500}.ps1[data-v-acfd5ddd]{color:#4ade80;margin-right:8px;font-weight:700}.output[data-v-acfd5ddd]{padding-left:1.25rem;border-left:2px solid rgba(240,180,41,.1)}.hero-name[data-v-acfd5ddd]{font-size:1.6rem;font-weight:700;color:#f0b429;margin-bottom:.25rem;letter-spacing:-.02em}.hero-role[data-v-acfd5ddd]{color:#8b949e;margin-bottom:1rem;font-size:.88rem}.hero-summary[data-v-acfd5ddd]{color:#c9d1d9;max-width:600px;margin-bottom:1.25rem;line-height:1.7}.hero-links[data-v-acfd5ddd]{display:flex;gap:1.25rem;flex-wrap:wrap}.hero-links a[data-v-acfd5ddd]{color:#60a5fa;text-decoration:none;font-size:.8rem;display:flex;align-items:center;gap:6px;transition:color .2s}.hero-links a[data-v-acfd5ddd]:hover,.hero-links a i[data-v-acfd5ddd]{color:#f0b429}.fetch-grid[data-v-acfd5ddd]{display:flex;gap:2rem;align-items:flex-start}.fetch-art[data-v-acfd5ddd]{color:#f0b429;font-size:.75rem;line-height:1.3;margin:0;flex-shrink:0}.fetch-info[data-v-acfd5ddd]{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:#c9d1d9}.fetch-info .label[data-v-acfd5ddd]{color:#f0b429;font-weight:600;display:inline-block;min-width:70px}.proj-row[data-v-acfd5ddd]{display:flex;align-items:center;gap:14px;padding:12px 14px;margin:0 -14px;border-radius:8px;cursor:pointer;transition:background .2s}.proj-row[data-v-acfd5ddd]:hover{background:#f0b4290d}.proj-icon[data-v-acfd5ddd]{color:#f0b429;font-size:1rem;width:26px;text-align:center;flex-shrink:0}.proj-info[data-v-acfd5ddd]{flex:1;min-width:0}.proj-name[data-v-acfd5ddd]{color:#e6edf3;font-weight:600;font-size:.84rem;display:block}.proj-sub[data-v-acfd5ddd]{color:#6e7681;font-size:.72rem;display:block}.proj-tags[data-v-acfd5ddd]{display:flex;gap:6px;flex-shrink:0}.tag[data-v-acfd5ddd]{font-size:.65rem;padding:2px 8px;background:#f0b42914;color:#f0b429;border-radius:100px;border:1px solid rgba(240,180,41,.12);white-space:nowrap}.proj-arrow[data-v-acfd5ddd]{color:#6e7681;font-size:.9rem;transition:color .2s,transform .2s}.proj-row:hover .proj-arrow[data-v-acfd5ddd]{color:#f0b429;transform:translate(3px)}.code-block[data-v-acfd5ddd]{font-size:.8rem;line-height:1.7}.brace[data-v-acfd5ddd]{color:#e6edf3;font-weight:700}.json-row[data-v-acfd5ddd]{padding-left:1.5rem}.json-key[data-v-acfd5ddd]{color:#4ade80}.json-vals[data-v-acfd5ddd]{color:#f0b429}.edu-degree[data-v-acfd5ddd]{color:#e6edf3;font-weight:600;font-size:.9rem;margin-bottom:4px}.edu-degree i[data-v-acfd5ddd]{color:#f0b429;margin-right:8px}.edu-inst[data-v-acfd5ddd]{color:#8b949e;font-size:.82rem}.cert-row[data-v-acfd5ddd]{display:flex;align-items:center;gap:12px;padding:4px 0;font-size:.78rem}.cert-name[data-v-acfd5ddd]{color:#c9d1d9}.cert-from[data-v-acfd5ddd]{color:#6e7681;font-size:.7rem}.contact-text[data-v-acfd5ddd]{color:#c9d1d9;margin-bottom:1rem}.contact-links[data-v-acfd5ddd]{display:flex;flex-direction:column;gap:8px}.contact-links a[data-v-acfd5ddd]{color:#60a5fa;text-decoration:none;font-size:.82rem;display:flex;align-items:center;gap:10px;transition:color .2s}.contact-links a[data-v-acfd5ddd]:hover{color:#f0b429}.contact-links a i[data-v-acfd5ddd]{color:#f0b429;width:18px;text-align:center}.about-text[data-v-acfd5ddd]{max-width:720px;line-height:1.75;color:#c9d1d9}.fetch-userline[data-v-acfd5ddd]{font-size:.82rem}.fu[data-v-acfd5ddd]{color:#4ade80;font-weight:700}.fat[data-v-acfd5ddd]{color:#8b949e}.fh[data-v-acfd5ddd]{color:#4ade80;font-weight:700}.fetch-sep[data-v-acfd5ddd]{color:#30363d;margin:2px 0 4px;font-size:.78rem}.fetch-sub-header[data-v-acfd5ddd]{border-bottom:1px solid rgba(255,255,255,.05);margin-bottom:.5rem;padding-bottom:2px}.about-text-small[data-v-acfd5ddd]{font-size:.78rem;color:#c9d1d9;line-height:1.6;max-width:600px;margin-bottom:1rem}.skill-line[data-v-acfd5ddd]{font-size:.76rem;margin-bottom:4px}.json-vals-small[data-v-acfd5ddd]{color:#f0b429}.fetch-colors[data-v-acfd5ddd]{display:flex;gap:4px;margin-top:1.5rem}.fetch-colors span[data-v-acfd5ddd]{width:14px;height:14px;border-radius:3px;border:1px solid rgba(255,255,255,.06)}.interactive-terminal[data-v-acfd5ddd]{border-top:1px solid rgba(240,180,41,.08);padding-top:2rem}.interactive-header[data-v-acfd5ddd]{margin-bottom:1.25rem}.hint[data-v-acfd5ddd]{color:#6e7681;font-size:.78rem}.hint strong[data-v-acfd5ddd]{color:#f0b429}.history-entry[data-v-acfd5ddd]{margin-bottom:1rem}.history-output[data-v-acfd5ddd]{font-family:JetBrains Mono,monospace;font-size:.82rem;white-space:pre-wrap;margin:0}.input-line[data-v-acfd5ddd]{display:flex;align-items:center;gap:0;cursor:text}.cmd-input[data-v-acfd5ddd]{background:none;border:none;outline:none;color:#e6edf3;font-family:JetBrains Mono,monospace;font-size:.84rem;flex:1;caret-color:#f0b429;padding:0}.cmd-input[data-v-acfd5ddd]::placeholder{color:#30363d}@media(max-width:768px){.terminal-portfolio[data-v-acfd5ddd]{padding:.75rem;padding-top:80px}.terminal-screen[data-v-acfd5ddd]{padding:1.25rem 1.25rem 1.5rem;font-size:.78rem}.proj-tags[data-v-acfd5ddd]{display:none}.fetch-grid[data-v-acfd5ddd]{flex-direction:column;gap:1rem}.hero-name[data-v-acfd5ddd]{font-size:1.3rem}}.terminal-detail[data-v-ec678c0c]{padding:1rem;padding-top:100px;max-width:960px;margin:0 auto}@media(max-width:768px){.terminal-detail[data-v-ec678c0c]{padding:.75rem;padding-top:80px}}.terminal-chrome[data-v-ec678c0c]{background:#0c1017;border:1px solid rgba(240,180,41,.15);border-radius:12px;box-shadow:0 20px 60px #0009;overflow:hidden}.terminal-titlebar[data-v-ec678c0c]{background:#161b22;padding:12px 18px;display:flex;align-items:center;gap:14px;border-bottom:1px solid rgba(255,255,255,.06)}.terminal-dots[data-v-ec678c0c]{display:flex;gap:7px}.dot[data-v-ec678c0c]{width:12px;height:12px;border-radius:50%}.dot-red[data-v-ec678c0c]{background:#ff5f57}.dot-yellow[data-v-ec678c0c]{background:#febc2e}.dot-green[data-v-ec678c0c]{background:#28c840}.terminal-tab[data-v-ec678c0c]{font-family:JetBrains Mono,monospace;font-size:.75rem;color:#8b949e}.terminal-screen[data-v-ec678c0c]{padding:2rem 2.5rem;font-family:JetBrains Mono,monospace;font-size:.85rem;line-height:1.6;color:#c9d1d9}@media(max-width:768px){.terminal-screen[data-v-ec678c0c]{padding:1.25rem 1rem;font-size:.75rem}}.detail-section[data-v-ec678c0c]{margin-bottom:2.5rem}.cmd-line[data-v-ec678c0c]{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 10px;margin-bottom:.75rem}@media(max-width:600px){.prompt[data-v-ec678c0c]{width:100%;margin-bottom:2px}}.prompt[data-v-ec678c0c]{word-break:break-all}.prompt-user[data-v-ec678c0c]{color:#4ade80}.prompt-sep[data-v-ec678c0c]{color:#8b949e}.prompt-path[data-v-ec678c0c]{color:#60a5fa}.prompt-dollar[data-v-ec678c0c]{color:#e6edf3}.cmd-text[data-v-ec678c0c]{color:#f0b429;font-weight:500}.cmd-output[data-v-ec678c0c]{padding-left:1.25rem;border-left:2px solid rgba(240,180,41,.1);margin-left:.5rem;overflow-x:auto}@media(max-width:768px){.cmd-output[data-v-ec678c0c]{padding-left:.75rem}}.detail-meta[data-v-ec678c0c]{display:flex;flex-direction:column;gap:4px;margin-bottom:1.5rem}.meta-item[data-v-ec678c0c]{color:#e6edf3}.meta-item .label[data-v-ec678c0c]{color:#f0b429;font-weight:600;min-width:90px;display:inline-block}@media(max-width:480px){.meta-item[data-v-ec678c0c]{display:flex;flex-direction:column;margin-bottom:4px}.meta-item .label[data-v-ec678c0c]{margin-bottom:2px}}.project-desc[data-v-ec678c0c]{max-width:700px;margin-bottom:1.5rem;color:#c9d1d9}.tech-stack[data-v-ec678c0c]{margin-bottom:1.5rem}.tech-stack .label[data-v-ec678c0c]{color:#f0b429;font-weight:600;margin-right:12px}.tech-tags[data-v-ec678c0c]{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tech-tag[data-v-ec678c0c]{font-size:.7rem;padding:2px 10px;background:#f0b4291a;color:#f0b429;border-radius:100px;border:1px solid rgba(240,180,41,.2)}.header-actions[data-v-ec678c0c]{margin-bottom:1.5rem;display:flex;gap:12px;flex-wrap:wrap}.term-btn[data-v-ec678c0c]{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:#f0b42914;color:#f0b429;border:1px solid rgba(240,180,41,.2);border-radius:6px;font-size:.78rem;font-family:JetBrains Mono,monospace;font-weight:500;transition:all .25s ease;cursor:pointer}.term-btn[data-v-ec678c0c]:hover{background:#f0b42926;border-color:#f0b429;color:#f0b429;transform:translateY(-2px);box-shadow:0 4px 12px #f0b42926}.term-btn.live-demo[data-v-ec678c0c]{border-color:#60a5fa4d;color:#60a5fa;background:#60a5fa0d}.term-btn.live-demo[data-v-ec678c0c]:hover{border-color:#60a5fa;color:#60a5fa;background:#60a5fa1a;box-shadow:0 4px 12px #60a5fa26}.term-link[data-v-ec678c0c]{color:#60a5fa;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:#60a5fa4d;transition:all .2s ease}.term-link[data-v-ec678c0c]:hover{color:#f0b429;text-decoration-color:#f0b429}.detail-section-icon[data-v-ec678c0c]{font-size:1.3rem}.features-list[data-v-ec678c0c]{display:flex;flex-direction:column;gap:0}.feature-item[data-v-ec678c0c]{display:flex;gap:1.25rem;padding:1.25rem 0;border-bottom:1px solid var(--border-subtle);align-items:flex-start}.feature-item[data-v-ec678c0c]:last-child{border-bottom:none}.feature-number[data-v-ec678c0c]{font-size:.8rem;font-weight:700;color:var(--accent);font-family:JetBrains Mono,Fira Code,monospace;min-width:28px;margin-top:2px}.feature-text[data-v-ec678c0c]{font-size:.9rem;color:var(--text-secondary);line-height:1.7}.section--dark[data-v-ec678c0c]{background:var(--bg-secondary);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.architecture-flow[data-v-ec678c0c]{display:flex;flex-direction:column;gap:0}.arch-step[data-v-ec678c0c]{display:flex;gap:1.25rem;position:relative}.arch-step-indicator[data-v-ec678c0c]{display:flex;flex-direction:column;align-items:center;min-width:20px}.arch-step-dot[data-v-ec678c0c]{width:14px;height:14px;border-radius:50%;border:3px solid var(--accent);background:var(--bg-secondary);flex-shrink:0;z-index:1}.arch-step-line[data-v-ec678c0c]{width:2px;flex:1;background:var(--border-color);min-height:40px}.arch-step-content[data-v-ec678c0c]{padding-bottom:2rem}.arch-step:last-child .arch-step-content[data-v-ec678c0c]{padding-bottom:0}.arch-step-label[data-v-ec678c0c]{font-size:.95rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.arch-step-desc[data-v-ec678c0c]{font-size:.85rem;color:var(--text-muted);line-height:1.6}.outcomes-grid[data-v-ec678c0c]{display:grid;grid-template-columns:1fr;gap:1rem}.outcome-card[data-v-ec678c0c]{display:flex;gap:1rem;padding:1.25rem 1.5rem;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:12px;align-items:flex-start;transition:all .3s ease}.outcome-card[data-v-ec678c0c]:hover{border-color:#22c55e4d;transform:translate(4px)}.outcome-check[data-v-ec678c0c]{width:32px;height:32px;border-radius:8px;background:#22c55e1a;color:#4ade80;display:flex;align-items:center;justify-content:center;flex-shrink:0}.outcome-text[data-v-ec678c0c]{font-size:.9rem;color:var(--text-secondary);line-height:1.7}.other-projects-grid[data-v-ec678c0c]{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}@media(max-width:900px){.other-projects-grid[data-v-ec678c0c]{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.other-projects-grid[data-v-ec678c0c]{grid-template-columns:1fr}}.other-project-card[data-v-ec678c0c]{padding:1.5rem;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;cursor:pointer;transition:all .3s ease;position:relative}.other-project-card[data-v-ec678c0c]:hover{border-color:#ffffff1a;transform:translateY(-4px);box-shadow:0 12px 40px #0000004d}.other-project-icon[data-v-ec678c0c]{font-size:1.5rem;display:block;margin-bottom:.75rem}.other-project-title[data-v-ec678c0c]{font-size:.95rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.other-project-sub[data-v-ec678c0c]{font-size:.78rem;color:var(--text-muted)}.other-project-arrow[data-v-ec678c0c]{position:absolute;top:1.5rem;right:1.5rem;color:var(--text-muted);font-size:1.2rem;transition:all .3s ease}.other-project-card:hover .other-project-arrow[data-v-ec678c0c]{color:var(--accent);transform:translate(4px)}.cursor-blink[data-v-ec678c0c]{color:#f0b429;animation:blink-ec678c0c 1s step-end infinite}@keyframes blink-ec678c0c{50%{opacity:0}}@media(max-width:768px){.ps-grid[data-v-ec678c0c],.other-projects-grid[data-v-ec678c0c]{grid-template-columns:1fr}.detail-title[data-v-ec678c0c]{font-size:2rem}.section[data-v-ec678c0c]{padding:3rem 0}}
