:root{--bg:#12141c;--surface:#191c28;--surface-2:#20233252;--text:#e7e4dc;--muted:#8b8d9c;--accent:#f0a868;--accent-2:#5fb3a3;--border:#2a2d3d;--danger:#d50606;--mono:"JetBrains Mono", "Fira Code", ui-monospace, "SFMono-Regular", Menlo, Consolas;--sans:"Inter", ui-sans-serif, -apple-system, "Segoe UI", Roboto}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.cursor,.line.out,.cursor{animation:none!important}a,button{transition:none!important}.reveal,.reveal-border{opacity:1!important;transition:none!important;transform:none!important}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html,body,div#app{height:100vh}body{background:var(--bg);color:var(--text);font-family:var(--sans), sans-serif;-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}div#app{flex-direction:column;display:flex}h1{font-family:var(--mono), monospace;margin-top:0;margin-bottom:2.2rem;font-size:1.6rem;font-weight:600}a{color:inherit;text-decoration:none;transition:color .6s}main>section{max-width:900px;margin:0 auto;padding:6rem 1.5rem}::selection{background:var(--accent);color:var(--bg)}.header-form{flex-direction:column;display:flex}.header-form>div{justify-content:space-between;display:flex}@media (width<=600px){main>section{padding:14rem 1.5rem 3rem!important}}.button[data-v-b5119b17]{cursor:pointer;font-family:var(--mono), monospace;border:1px solid var(--border);border-radius:6px;height:fit-content;padding:.7rem 1.3rem;font-size:.85rem;transition:border-color 1s,color 1s}.button.btn-small[data-v-b5119b17]{padding:.35rem .7rem;font-size:.78rem}.button[data-v-b5119b17]:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.button.btn-primary[data-v-b5119b17]{background:var(--accent);color:#1a1508;border-color:var(--accent);font-weight:600}.button.btn-primary[data-v-b5119b17]:hover{opacity:.9}.button.btn-secondary[data-v-b5119b17]{background:var(--accent-2);color:#1a1508;border-color:var(--accent-2);font-weight:600}.button.btn-secondary[data-v-b5119b17]:hover{opacity:.9}.button.btn-outline-secondary[data-v-b5119b17]{color:var(--accent-2);background:0 0}.button.btn-outline-secondary[data-v-b5119b17]:hover{color:var(--text);border-color:var(--accent-2)}.button.btn-outline-warning[data-v-b5119b17]{color:var(--accent);background:0 0}.button.btn-outline-warning[data-v-b5119b17]:hover{color:var(--text);border-color:var(--accent)}.button.btn-outline-danger[data-v-b5119b17]{color:var(--danger);background:0 0}.button.btn-outline-danger[data-v-b5119b17]:hover{color:var(--text);border-color:var(--danger)}.button-group[data-v-b5119b17]{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.button-group-form[data-v-b5119b17]{flex-wrap:wrap;justify-content:flex-end;gap:1rem;margin-top:1rem;display:flex}nav[data-v-b5119b17]{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#12141c;justify-content:space-between;align-items:center;padding:1.1rem 2rem;display:flex;position:fixed;top:0;left:0;right:0}nav a[data-v-b5119b17]{align-content:center}.logo[data-v-b5119b17]{font-family:var(--mono), monospace;color:var(--accent);font-size:.95rem;font-weight:600}.logo span[data-v-b5119b17]{color:var(--muted)}.nav-links[data-v-b5119b17]{font-family:var(--mono), monospace;color:var(--muted);gap:1.8rem;font-size:.85rem;display:flex}.nav-links a[data-v-b5119b17]:hover,.nav-links a.active[data-v-b5119b17]{color:var(--text)}.nav-divider[data-v-b5119b17]{background:var(--border);width:1px}@media (width<=600px){nav[data-v-b5119b17],.nav-links[data-v-b5119b17]{flex-direction:column}nav[data-v-b5119b17]{align-items:start}nav .logo[data-v-b5119b17]{margin-bottom:1rem}.nav-links[data-v-b5119b17]{gap:.4rem}}footer[data-v-96c9ede1]{text-align:center;font-family:var(--mono), monospace;color:var(--muted);border-top:1px solid var(--border);padding:2.5rem 1.5rem;font-size:.78rem}main[data-v-a68ccdd4]{flex:1}.terminal[data-v-b1cb1253]{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 30px 60px -20px #0009}.terminal-bar[data-v-b1cb1253]{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.7rem 1rem;display:flex}.terminal-title[data-v-b1cb1253]{font-family:var(--mono), monospace;color:var(--muted);margin-left:.6rem;font-size:.78rem}.terminal-body[data-v-b1cb1253]{font-family:var(--mono), monospace;padding:2rem 1.6rem 2.4rem;font-size:.95rem}.line[data-v-b1cb1253]{white-space:pre-wrap;margin-bottom:.5rem}.cmd[data-v-b1cb1253]{color:var(--text)}.prompt[data-v-b1cb1253]{color:var(--accent-2)}.dot[data-v-b1cb1253]{border-radius:50%;width:10px;height:10px}.dot.red[data-v-b1cb1253]{background:#e0605a}.dot.yellow[data-v-b1cb1253]{background:#e0b95a}.dot.green[data-v-b1cb1253]{background:#5ac97a}.button[data-v-b1cb1253]{cursor:pointer;font-family:var(--mono), monospace;border:1px solid var(--border);border-radius:6px;height:fit-content;padding:.7rem 1.3rem;font-size:.85rem;transition:border-color 1s,color 1s}.button.btn-small[data-v-b1cb1253]{padding:.35rem .7rem;font-size:.78rem}.button[data-v-b1cb1253]:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.button.btn-primary[data-v-b1cb1253]{background:var(--accent);color:#1a1508;border-color:var(--accent);font-weight:600}.button.btn-primary[data-v-b1cb1253]:hover{opacity:.9}.button.btn-secondary[data-v-b1cb1253]{background:var(--accent-2);color:#1a1508;border-color:var(--accent-2);font-weight:600}.button.btn-secondary[data-v-b1cb1253]:hover{opacity:.9}.button.btn-outline-secondary[data-v-b1cb1253]{color:var(--accent-2);background:0 0}.button.btn-outline-secondary[data-v-b1cb1253]:hover{color:var(--text);border-color:var(--accent-2)}.button.btn-outline-warning[data-v-b1cb1253]{color:var(--accent);background:0 0}.button.btn-outline-warning[data-v-b1cb1253]:hover{color:var(--text);border-color:var(--accent)}.button.btn-outline-danger[data-v-b1cb1253]{color:var(--danger);background:0 0}.button.btn-outline-danger[data-v-b1cb1253]:hover{color:var(--text);border-color:var(--danger)}.button-group[data-v-b1cb1253]{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.button-group-form[data-v-b1cb1253]{flex-wrap:wrap;justify-content:flex-end;gap:1rem;margin-top:1rem;display:flex}section[data-v-b1cb1253]{flex-direction:column;justify-content:center;display:flex}.out[data-v-b1cb1253]{color:var(--muted);padding-left:0}.out strong[data-v-b1cb1253]{color:var(--text);font-weight:600}.cursor[data-v-b1cb1253]{background:var(--accent);vertical-align:text-bottom;width:8px;height:1.1em;animation:1s step-start infinite blink-b1cb1253;display:inline-block}@keyframes blink-b1cb1253{50%{opacity:0}}.line.out[data-v-b1cb1253]{animation:.4s fadeIn-b1cb1253}@keyframes fadeIn-b1cb1253{0%{opacity:0}to{opacity:1}}.eyebrow[data-v-0e224f3e]{font-family:var(--mono), monospace;color:var(--accent-2);letter-spacing:.03em;margin-bottom:.6rem;font-size:.78rem}.eyebrow[data-v-0e224f3e]:before{content:"// ";color:var(--muted)}.reveal[data-v-0e224f3e],.reveal-border[data-v-0e224f3e]{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translate(-40px)}.reveal-border[data-v-0e224f3e]{background:var(--surface);border:1px solid var(--border);transition:border-color 1s,opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transition-delay:0s, var(--reveal-delay,0s), var(--reveal-delay,0s);border-radius:10px;padding:1.6rem}.reveal-border[data-v-0e224f3e]:hover{border-color:var(--accent-2)}.reveal.is-visible[data-v-0e224f3e],.reveal-border.is-visible[data-v-0e224f3e]{opacity:1;transform:translate(0)}.editor[data-v-0e224f3e]{background:var(--surface);border:1px solid var(--border);font-family:var(--mono), monospace;border-radius:10px;font-size:.92rem;overflow:hidden}.editor-tab[data-v-0e224f3e]{background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--muted);padding:.6rem 1.2rem;font-size:.8rem}.editor-body[data-v-0e224f3e]{display:flex}.editor-gutter[data-v-0e224f3e]{text-align:right;color:#4b4e60;background:var(--surface-2);-webkit-user-select:none;user-select:none;border-right:1px solid var(--border);padding:.625rem .9rem}.code[data-v-0e224f3e]{color:var(--text);width:100%;padding:.625rem 1.4rem}.code .str[data-v-0e224f3e]{color:var(--accent)}.code p[data-v-0e224f3e]{margin:0}.button[data-v-227d5aeb]{cursor:pointer;font-family:var(--mono), monospace;border:1px solid var(--border);border-radius:6px;height:fit-content;padding:.7rem 1.3rem;font-size:.85rem;transition:border-color 1s,color 1s}.button.btn-small[data-v-227d5aeb]{padding:.35rem .7rem;font-size:.78rem}.button[data-v-227d5aeb]:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.button.btn-primary[data-v-227d5aeb]{background:var(--accent);color:#1a1508;border-color:var(--accent);font-weight:600}.button.btn-primary[data-v-227d5aeb]:hover{opacity:.9}.button.btn-secondary[data-v-227d5aeb]{background:var(--accent-2);color:#1a1508;border-color:var(--accent-2);font-weight:600}.button.btn-secondary[data-v-227d5aeb]:hover{opacity:.9}.button.btn-outline-secondary[data-v-227d5aeb]{color:var(--accent-2);background:0 0}.button.btn-outline-secondary[data-v-227d5aeb]:hover{color:var(--text);border-color:var(--accent-2)}.button.btn-outline-warning[data-v-227d5aeb]{color:var(--accent);background:0 0}.button.btn-outline-warning[data-v-227d5aeb]:hover{color:var(--text);border-color:var(--accent)}.button.btn-outline-danger[data-v-227d5aeb]{color:var(--danger);background:0 0}.button.btn-outline-danger[data-v-227d5aeb]:hover{color:var(--text);border-color:var(--danger)}.button-group[data-v-227d5aeb]{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.button-group-form[data-v-227d5aeb]{flex-wrap:wrap;justify-content:flex-end;gap:1rem;margin-top:1rem;display:flex}.eyebrow[data-v-8b871c8a]{font-family:var(--mono), monospace;color:var(--accent-2);letter-spacing:.03em;margin-bottom:.6rem;font-size:.78rem}.eyebrow[data-v-8b871c8a]:before{content:"// ";color:var(--muted)}.button[data-v-8b871c8a]{cursor:pointer;font-family:var(--mono), monospace;border:1px solid var(--border);border-radius:6px;height:fit-content;padding:.7rem 1.3rem;font-size:.85rem;transition:border-color 1s,color 1s}.button.btn-small[data-v-8b871c8a]{padding:.35rem .7rem;font-size:.78rem}.button[data-v-8b871c8a]:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.button.btn-primary[data-v-8b871c8a]{background:var(--accent);color:#1a1508;border-color:var(--accent);font-weight:600}.button.btn-primary[data-v-8b871c8a]:hover{opacity:.9}.button.btn-secondary[data-v-8b871c8a]{background:var(--accent-2);color:#1a1508;border-color:var(--accent-2);font-weight:600}.button.btn-secondary[data-v-8b871c8a]:hover{opacity:.9}.button.btn-outline-secondary[data-v-8b871c8a]{color:var(--accent-2);background:0 0}.button.btn-outline-secondary[data-v-8b871c8a]:hover{color:var(--text);border-color:var(--accent-2)}.button.btn-outline-warning[data-v-8b871c8a]{color:var(--accent);background:0 0}.button.btn-outline-warning[data-v-8b871c8a]:hover{color:var(--text);border-color:var(--accent)}.button.btn-outline-danger[data-v-8b871c8a]{color:var(--danger);background:0 0}.button.btn-outline-danger[data-v-8b871c8a]:hover{color:var(--text);border-color:var(--danger)}.button-group[data-v-8b871c8a]{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.button-group-form[data-v-8b871c8a]{flex-wrap:wrap;justify-content:flex-end;gap:1rem;margin-top:1rem;display:flex}.reveal[data-v-8b871c8a],.reveal-border[data-v-8b871c8a]{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translate(-40px)}.reveal-border[data-v-8b871c8a]{background:var(--surface);border:1px solid var(--border);transition:border-color 1s,opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transition-delay:0s, var(--reveal-delay,0s), var(--reveal-delay,0s);border-radius:10px;padding:1.6rem}.reveal-border[data-v-8b871c8a]:hover{border-color:var(--accent-2)}.reveal.is-visible[data-v-8b871c8a],.reveal-border.is-visible[data-v-8b871c8a]{opacity:1;transform:translate(0)}.skills-grid[data-v-8b871c8a]{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem;display:grid}.skill-card[data-v-8b871c8a]{background:var(--surface);border-radius:10px;flex-direction:column;padding:1.4rem;display:flex}.skill-card h2[data-v-8b871c8a]{font-family:var(--mono), monospace;color:var(--accent-2);margin-top:0;margin-bottom:1rem;font-size:.85rem}.skill-card h2[data-v-8b871c8a]:before{content:"▸ ";color:var(--muted)}.tag-list[data-v-8b871c8a]{flex-wrap:wrap;flex:1;gap:.5rem;display:flex}.tag[data-v-8b871c8a]{font-family:var(--mono), monospace;border:1px solid var(--border);color:var(--muted);border-radius:5px;height:fit-content;padding:.3rem .6rem;font-size:.78rem}.eyebrow[data-v-4da48895]{font-family:var(--mono), monospace;color:var(--accent-2);letter-spacing:.03em;margin-bottom:.6rem;font-size:.78rem}.eyebrow[data-v-4da48895]:before{content:"// ";color:var(--muted)}.button[data-v-4da48895]{cursor:pointer;font-family:var(--mono), monospace;border:1px solid var(--border);border-radius:6px;height:fit-content;padding:.7rem 1.3rem;font-size:.85rem;transition:border-color 1s,color 1s}.button.btn-small[data-v-4da48895]{padding:.35rem .7rem;font-size:.78rem}.button[data-v-4da48895]:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.button.btn-primary[data-v-4da48895]{background:var(--accent);color:#1a1508;border-color:var(--accent);font-weight:600}.button.btn-primary[data-v-4da48895]:hover{opacity:.9}.button.btn-secondary[data-v-4da48895]{background:var(--accent-2);color:#1a1508;border-color:var(--accent-2);font-weight:600}.button.btn-secondary[data-v-4da48895]:hover{opacity:.9}.button.btn-outline-secondary[data-v-4da48895]{color:var(--accent-2);background:0 0}.button.btn-outline-secondary[data-v-4da48895]:hover{color:var(--text);border-color:var(--accent-2)}.button.btn-outline-warning[data-v-4da48895]{color:var(--accent);background:0 0}.button.btn-outline-warning[data-v-4da48895]:hover{color:var(--text);border-color:var(--accent)}.button.btn-outline-danger[data-v-4da48895]{color:var(--danger);background:0 0}.button.btn-outline-danger[data-v-4da48895]:hover{color:var(--text);border-color:var(--danger)}.button-group[data-v-4da48895]{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.button-group-form[data-v-4da48895]{flex-wrap:wrap;justify-content:flex-end;gap:1rem;margin-top:1rem;display:flex}.reveal[data-v-4da48895],.reveal-border[data-v-4da48895]{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translate(-40px)}.reveal-border[data-v-4da48895]{background:var(--surface);border:1px solid var(--border);transition:border-color 1s,opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transition-delay:0s, var(--reveal-delay,0s), var(--reveal-delay,0s);border-radius:10px;padding:1.6rem}.reveal-border[data-v-4da48895]:hover{border-color:var(--accent-2)}.reveal.is-visible[data-v-4da48895],.reveal-border.is-visible[data-v-4da48895]{opacity:1;transform:translate(0)}.project-list[data-v-4da48895]{flex-direction:column;gap:1.2rem;display:flex}.project-head[data-v-4da48895]{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.6rem;display:flex}.project-name[data-v-4da48895]{font-family:var(--mono), monospace;color:var(--text);font-size:1.05rem;font-weight:600}.project-name .ext[data-v-4da48895]{color:var(--muted);font-weight:400}.project-links[data-v-4da48895]{font-family:var(--mono), monospace;gap:1rem;font-size:.78rem;display:flex}.project-links a[data-v-4da48895]{color:var(--accent-2)}.project-links a[data-v-4da48895]:hover{color:var(--accent)}.project-desc[data-v-4da48895]{color:var(--muted);margin-top:0;margin-bottom:1rem;font-size:.95rem}.project-tags[data-v-4da48895]{flex-wrap:wrap;gap:.5rem;display:flex}.project-tags span[data-v-4da48895]{font-family:var(--mono), monospace;color:var(--accent);background:#f0a86814;border-radius:4px;padding:.2rem .55rem;font-size:.72rem}.eyebrow[data-v-09c7db03]{font-family:var(--mono), monospace;color:var(--accent-2);letter-spacing:.03em;margin-bottom:.6rem;font-size:.78rem}.eyebrow[data-v-09c7db03]:before{content:"// ";color:var(--muted)}.terminal[data-v-09c7db03]{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 30px 60px -20px #0009}.terminal-bar[data-v-09c7db03]{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.7rem 1rem;display:flex}.terminal-title[data-v-09c7db03]{font-family:var(--mono), monospace;color:var(--muted);margin-left:.6rem;font-size:.78rem}.terminal-body[data-v-09c7db03]{font-family:var(--mono), monospace;padding:2rem 1.6rem 2.4rem;font-size:.95rem}.line[data-v-09c7db03]{white-space:pre-wrap;margin-bottom:.5rem}.cmd[data-v-09c7db03]{color:var(--text)}.prompt[data-v-09c7db03]{color:var(--accent-2)}.dot[data-v-09c7db03]{border-radius:50%;width:10px;height:10px}.dot.red[data-v-09c7db03]{background:#e0605a}.dot.yellow[data-v-09c7db03]{background:#e0b95a}.dot.green[data-v-09c7db03]{background:#5ac97a}.reveal[data-v-09c7db03],.reveal-border[data-v-09c7db03]{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translate(-40px)}.reveal-border[data-v-09c7db03]{background:var(--surface);border:1px solid var(--border);transition:border-color 1s,opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transition-delay:0s, var(--reveal-delay,0s), var(--reveal-delay,0s);border-radius:10px;padding:1.6rem}.reveal-border[data-v-09c7db03]:hover{border-color:var(--accent-2)}.reveal.is-visible[data-v-09c7db03],.reveal-border.is-visible[data-v-09c7db03]{opacity:1;transform:translate(0)}.contact-list[data-v-09c7db03]{font-family:var(--mono), monospace;flex-direction:column;gap:.8rem;margin-top:1.5rem;font-size:.95rem;display:flex}.contact-list a[data-v-09c7db03]{color:var(--text);gap:.8rem}.contact-list a[data-v-09c7db03]:hover{color:var(--accent)}.contact-list .k[data-v-09c7db03]{color:var(--muted);min-width:90px;display:inline-block}
