.select-wrap[data-v-fc6562f9]{position:relative;display:inline-flex}.theme-select[data-v-fc6562f9]{-moz-appearance:none;appearance:none;-webkit-appearance:none;color-scheme:light;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-mono);font-size:.78rem;padding:8px 26px 8px 12px;cursor:pointer;transition:border-color .2s ease}.theme-select[data-v-fc6562f9]:hover,.theme-select[data-v-fc6562f9]:focus-visible{border-color:var(--accent);outline:none}.theme-select option[data-v-fc6562f9]{background:var(--bg-elevated);color:var(--text)}.caret[data-v-fc6562f9]{position:absolute;top:50%;right:10px;width:9px;height:6px;transform:translateY(-50%);pointer-events:none;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.navbar[data-v-d0fdf399]{position:fixed;top:0;width:100%;z-index:100;height:var(--nav-height)}.navbar[data-v-d0fdf399]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:rgba(var(--bg-rgb),.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 30px -10px #02060fb3;opacity:0;transition:opacity .3s ease}.navbar.scrolled[data-v-d0fdf399]:before{opacity:1}.nav-inner[data-v-d0fdf399]{display:flex;align-items:center;justify-content:space-between;height:100%}.logo[data-v-d0fdf399]{display:flex;align-items:baseline;gap:10px;font-weight:800;font-size:1.6rem;color:var(--heading);letter-spacing:-.02em}.logo-mage[data-v-d0fdf399]{height:1.4em;width:auto;position:relative;top:3px;transition:transform .25s ease}.logo:hover .logo-mage[data-v-d0fdf399]{transform:scale(1.15) rotate(-8deg)}.nav-links[data-v-d0fdf399]{display:flex;align-items:center;gap:32px;list-style:none}.nav-links a[data-v-d0fdf399]:not(.resume-btn){color:var(--text);font-size:.9rem;font-weight:500;transition:color .2s ease}.nav-links a[data-v-d0fdf399]:not(.resume-btn):hover,.nav-links a.active[data-v-d0fdf399]{color:var(--accent)}.nav-links .index[data-v-d0fdf399]{font-family:var(--font-mono);font-size:.75rem;color:var(--accent)}.resume-btn[data-v-d0fdf399]{padding:10px 20px;font-size:.85rem}.menu-toggle[data-v-d0fdf399]{display:none;background:none;border:none;width:32px;height:32px;position:relative;cursor:pointer;z-index:110}.bar[data-v-d0fdf399],.bar[data-v-d0fdf399]:before,.bar[data-v-d0fdf399]:after{content:"";position:absolute;left:4px;width:24px;height:2px;background:var(--accent);transition:transform .25s ease,opacity .25s ease}.bar[data-v-d0fdf399]{top:15px}.bar[data-v-d0fdf399]:before{top:-8px}.bar[data-v-d0fdf399]:after{top:8px}.bar.open[data-v-d0fdf399]{transform:rotate(45deg)}.bar.open[data-v-d0fdf399]:before{opacity:0}.bar.open[data-v-d0fdf399]:after{transform:rotate(-90deg) translate(8px)}@media(max-width:768px){.menu-toggle[data-v-d0fdf399]{display:block}.nav-links[data-v-d0fdf399]{position:fixed;top:0;right:0;bottom:0;left:0;flex-direction:column;justify-content:center;background:rgba(var(--bg-rgb),.97);transform:translate(100%);transition:transform .3s ease}.nav-links.open[data-v-d0fdf399]{transform:translate(0)}.nav-links a[data-v-d0fdf399]:not(.resume-btn){font-size:1.2rem}}.hero[data-v-2584931f]{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding-top:var(--nav-height);background:radial-gradient(ellipse 60% 50% at 70% 20%,rgba(var(--accent-rgb),.08),transparent),radial-gradient(ellipse 50% 40% at 20% 80%,rgba(var(--accent-2-rgb),.06),transparent)}.kicker[data-v-2584931f]{display:flex;align-items:center;line-height:1;font-family:var(--font-mono);color:var(--accent);margin-bottom:20px}h1[data-v-2584931f]{font-size:clamp(2.6rem,7vw,4.5rem);font-weight:800;letter-spacing:-.03em}h2[data-v-2584931f]{font-size:clamp(1.8rem,5vw,3.2rem);font-weight:700;color:var(--text-muted);letter-spacing:-.02em;margin-top:8px}.tagline[data-v-2584931f]{max-width:560px;margin-top:24px;color:var(--text-muted);font-size:1.05rem}.tagline strong[data-v-2584931f]{color:var(--text)}.actions[data-v-2584931f]{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px}.socials[data-v-2584931f]{display:flex;gap:20px;margin-top:40px}.socials a[data-v-2584931f]{color:var(--text-muted);transition:color .2s ease,transform .2s ease}.socials a[data-v-2584931f]:hover{color:var(--accent);transform:translateY(-2px)}.socials svg[data-v-2584931f]{width:24px;height:24px}@media(max-width:480px){.actions[data-v-2584931f]{flex-direction:column;align-items:stretch}.actions .btn[data-v-2584931f]{justify-content:center}}.about-grid[data-v-24f3ef39]{display:grid;grid-template-columns:3fr 2fr;gap:48px;align-items:start}.bio p[data-v-24f3ef39]{color:var(--text-muted);margin-bottom:16px}.photo-wrap[data-v-24f3ef39]{position:relative;border-radius:var(--radius);max-width:300px;justify-self:center}.photo-wrap[data-v-24f3ef39]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--accent);border-radius:var(--radius);transform:translate(14px,14px);z-index:-1;transition:transform .25s ease}.photo-wrap[data-v-24f3ef39]:hover:after{transform:translate(8px,8px)}.photo-wrap img[data-v-24f3ef39]{border-radius:var(--radius);filter:saturate(.9)}.skills[data-v-24f3ef39]{margin-top:56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:24px}.skill-group h3[data-v-24f3ef39]{font-family:var(--font-mono);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:12px}.comment-prefix[data-v-24f3ef39]{color:var(--accent-2);text-transform:none}.chips[data-v-24f3ef39]{display:flex;flex-wrap:wrap;gap:8px}@media(max-width:768px){.about-grid[data-v-24f3ef39]{grid-template-columns:1fr}.photo-wrap[data-v-24f3ef39]{order:-1}}.timeline[data-v-1a5a641c]{list-style:none;position:relative;padding-left:28px}.timeline[data-v-1a5a641c]:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:var(--border)}.entry[data-v-1a5a641c]{position:relative;margin-bottom:32px}.marker[data-v-1a5a641c]{position:absolute;left:-28px;top:30px;width:11px;height:11px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.marker.current[data-v-1a5a641c]{background:var(--accent-2);animation:marker-pulse-1a5a641c 2s ease-in-out infinite}@keyframes marker-pulse-1a5a641c{0%,to{box-shadow:0 0 0 4px var(--accent-2-soft)}50%{box-shadow:0 0 0 8px var(--accent-2-soft)}}.active-badge[data-v-1a5a641c]{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-2);border:1px solid var(--accent-2);border-radius:999px;padding:2px 8px;margin-left:6px}.entry-body[data-v-1a5a641c]{padding:28px}.entry-header[data-v-1a5a641c]{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}h3[data-v-1a5a641c]{font-size:1.15rem}.company[data-v-1a5a641c]{color:var(--accent);font-weight:500;margin-top:2px}.meta[data-v-1a5a641c]{text-align:right}.period[data-v-1a5a641c]{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted)}.location[data-v-1a5a641c]{font-size:.8rem;color:var(--text-muted)}.bullets[data-v-1a5a641c]{margin:16px 0 0 18px;color:var(--text-muted)}.bullets li[data-v-1a5a641c]{margin-bottom:10px;font-size:.95rem}.chips[data-v-1a5a641c]{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.resume-cta[data-v-1a5a641c]{margin-top:40px;text-align:center}@media(max-width:600px){.meta[data-v-1a5a641c]{text-align:left}.timeline[data-v-1a5a641c]{padding-left:20px}.marker[data-v-1a5a641c]{left:-20px;width:9px;height:9px}.entry-body[data-v-1a5a641c]{padding:20px}.bullets[data-v-1a5a641c]{margin-left:16px}}@media(prefers-reduced-motion:reduce){.marker.current[data-v-1a5a641c]{animation:none}}.grid[data-v-d1f10832]{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:24px}.project[data-v-d1f10832]{display:flex;flex-direction:column;overflow:hidden;color:inherit}.thumb[data-v-d1f10832]{position:relative;aspect-ratio:16 / 9;overflow:hidden;border-bottom:1px solid var(--border)}.thumb img[data-v-d1f10832]{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project:hover .thumb img[data-v-d1f10832]{transform:scale(1.04)}.level-badge[data-v-d1f10832]{position:absolute;top:10px;left:10px;z-index:1;font-family:var(--font-mono);font-size:.7rem;font-weight:600;color:var(--bg);background:var(--accent-2);padding:3px 8px;border-radius:4px;letter-spacing:.04em}.thumb[data-v-d1f10832]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 0%,rgba(var(--accent-2-rgb),.15) 50%,transparent 100%);transform:translateY(-100%);transition:transform .5s ease;pointer-events:none}.project:hover .thumb[data-v-d1f10832]:after{transform:translateY(100%)}.body[data-v-d1f10832]{display:flex;flex-direction:column;flex:1;padding:22px}.title-row[data-v-d1f10832]{display:flex;justify-content:space-between;align-items:center;gap:12px}h3[data-v-d1f10832]{font-size:1.1rem}.project:hover h3[data-v-d1f10832]{color:var(--accent)}.ext[data-v-d1f10832]{width:18px;height:18px;color:var(--text-muted);flex-shrink:0}.project:hover .ext[data-v-d1f10832]{color:var(--accent)}.body p[data-v-d1f10832]{color:var(--text-muted);font-size:.92rem;margin:12px 0 18px;flex:1}.chips[data-v-d1f10832]{display:flex;flex-wrap:wrap;gap:8px}@media(prefers-reduced-motion:reduce){.project:hover .thumb img[data-v-d1f10832]{transform:none}.thumb[data-v-d1f10832]:after{display:none}}.narrow[data-v-898c39b6]{max-width:720px}.blurb[data-v-898c39b6]{color:var(--text-muted);margin-bottom:40px}.contact-form[data-v-898c39b6]{display:flex;flex-direction:column;gap:20px}.row[data-v-898c39b6]{display:grid;grid-template-columns:1fr 1fr;gap:20px}label[data-v-898c39b6]{display:flex;flex-direction:column;gap:8px}label span[data-v-898c39b6]{font-size:.85rem;font-weight:500;color:var(--text-muted)}input[data-v-898c39b6],textarea[data-v-898c39b6]{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:13px 16px;color:var(--text);font-family:inherit;font-size:.95rem;transition:border-color .2s ease;resize:vertical}input[data-v-898c39b6]:focus,textarea[data-v-898c39b6]:focus{outline:none;border-color:var(--accent)}button[type=submit][data-v-898c39b6]{align-self:flex-start}button[data-v-898c39b6]:disabled{opacity:.6;cursor:default}.feedback.success[data-v-898c39b6]{color:var(--accent)}.feedback.error[data-v-898c39b6]{color:#f87171}.direct[data-v-898c39b6]{margin-top:36px;color:var(--text-muted)}@media(max-width:600px){.row[data-v-898c39b6]{grid-template-columns:1fr}}.footer[data-v-0906bdee]{padding:40px 24px;text-align:center;border-top:1px solid var(--border)}.socials[data-v-0906bdee]{display:flex;justify-content:center;gap:20px;margin-bottom:16px}.socials a[data-v-0906bdee]{color:var(--text-muted);transition:color .2s ease}.socials a[data-v-0906bdee]:hover{color:var(--accent)}.socials svg[data-v-0906bdee]{width:20px;height:20px}p[data-v-0906bdee]{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}:root,:root[data-theme=ff]{--bg: #05070f;--bg-rgb: 5, 7, 15;--bg-elevated: #0b1230;--surface: rgba(35, 46, 130, .55);--border: rgba(217, 226, 255, .55);--text: #eef2ff;--text-muted: #93a4d9;--heading: #ffffff;--accent: #4fd8ff;--accent-rgb: 79, 216, 255;--accent-soft: rgba(79, 216, 255, .16);--accent-hover: #8ce9ff;--accent-2: #ffcf4d;--accent-2-rgb: 255, 207, 77;--accent-2-soft: rgba(255, 207, 77, .16);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--nav-height: 72px;--radius: 3px;--container: 1080px}:root[data-theme=teal]{--bg: #0a1120;--bg-rgb: 10, 17, 32;--bg-elevated: #101a30;--surface: rgba(148, 163, 184, .06);--border: rgba(148, 163, 184, .14);--text: #e2e8f0;--text-muted: #94a3b8;--heading: #f1f5f9;--accent: #2dd4bf;--accent-rgb: 45, 212, 191;--accent-soft: rgba(45, 212, 191, .12);--accent-hover: #5eead4;--accent-2: #fbbf24;--accent-2-rgb: 251, 191, 36;--accent-2-soft: rgba(251, 191, 36, .14);--radius: 12px}:root[data-theme=solarpunk]{--bg: #070d09;--bg-rgb: 7, 13, 9;--bg-elevated: #0c1611;--surface: rgba(163, 184, 168, .06);--border: rgba(163, 184, 168, .14);--text: #e3e8e1;--text-muted: #93a397;--heading: #f1f5ef;--accent: #4ade80;--accent-rgb: 74, 222, 128;--accent-soft: rgba(74, 222, 128, .12);--accent-hover: #86efac;--accent-2: #fbbf24;--accent-2-rgb: 251, 191, 36;--accent-2-soft: rgba(251, 191, 36, .14);--radius: 12px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-soft);color:var(--accent)}h1,h2,h3,h4{color:var(--heading);line-height:1.2;font-weight:700}a{color:var(--accent);text-decoration:none}img{max-width:100%;display:block}section{scroll-margin-top:var(--nav-height)}.container{max-width:var(--container);margin:0 auto;padding:0 24px}@media(max-width:480px){.container{padding:0 18px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.section{padding:clamp(64px,10vw,96px) 0}.section-title{display:flex;align-items:center;gap:16px;font-size:clamp(1.5rem,3vw,1.9rem);margin-bottom:40px;white-space:nowrap}.section-title .index{font-family:var(--font-mono);font-size:.9em;color:var(--accent);font-weight:400}.section-title:after{content:"";height:1px;width:100%;background:var(--border)}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .2s ease,background-color .2s ease,border-color .2s ease;border:1px solid transparent}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{background:var(--accent-hover)}.btn-outline{border-color:var(--accent);color:var(--accent);background:transparent}.btn-outline:hover{background:var(--accent-soft)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .25s ease,border-color .25s ease}.card:hover{transform:translateY(-4px);border-color:rgba(var(--accent-rgb),.4)}.chip{font-family:var(--font-mono);font-size:.75rem;color:var(--accent);background:var(--accent-soft);padding:5px 12px;border-radius:999px;white-space:nowrap}.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.reveal.revealed{opacity:1;transform:none}.terminal-cursor{display:inline-block;width:.55em;height:1em;margin-left:2px;background:var(--accent-2);vertical-align:text-bottom;animation:cursor-blink 1s steps(1) infinite}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.glitch-hover{position:relative;display:inline-block}.glitch-hover:hover{animation:glitch-shift .3s steps(2,end) 1}.glitch-hover:hover:before,.glitch-hover:hover:after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;overflow:hidden;opacity:.7}.glitch-hover:hover:before{color:var(--accent);transform:translate(-2px);clip-path:polygon(0 0,100% 0,100% 45%,0 45%)}.glitch-hover:hover:after{color:var(--accent-2);transform:translate(2px);clip-path:polygon(0 55%,100% 55%,100% 100%,0 100%)}@keyframes glitch-shift{0%{transform:translate(0)}50%{transform:translate(-1px,1px)}to{transform:translate(0)}}:root:not([data-theme]) .card,[data-theme=ff] .card{border-width:2px;-webkit-backdrop-filter:none;backdrop-filter:none}:root:not([data-theme]) .chip,:root:not([data-theme]) input,:root:not([data-theme]) textarea,[data-theme=ff] .chip,[data-theme=ff] input,[data-theme=ff] textarea{border-radius:3px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn:hover,.card:hover{transform:none}.terminal-cursor,.glitch-hover:hover{animation:none}.glitch-hover:hover:before,.glitch-hover:hover:after{content:none}}
