footer[data-v-62a9c56d]{margin:var(--space-12) 0 0;padding:var(--space-3) var(--space-6);color:var(--text-muted);font-size:var(--fs-sm);justify-content:space-between;align-items:center;gap:var(--space-4);background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--surface-border);flex-direction:row;display:flex}footer>div#links[data-v-62a9c56d]{justify-content:center;align-items:center;gap:var(--space-2);flex-direction:row;display:flex}footer>div#links>a[data-v-62a9c56d]{color:var(--text);border-radius:var(--radius-md);width:2.25rem;height:2.25rem;transition:color .25s var(--ease), background-color .25s var(--ease), transform .25s var(--ease);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}footer>div#links>a[data-v-62a9c56d]:hover{color:var(--accent);background:#ffffff14;transform:translateY(-2px)}footer>p[data-v-62a9c56d]{margin:0}footer>p>a[data-v-62a9c56d]{color:var(--text)}@media (max-width:600px){footer[data-v-62a9c56d]{text-align:center;gap:var(--space-2);flex-direction:column}}header[data-v-aa18fbf7]{z-index:10;background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--surface-border);flex-direction:row;justify-content:space-between;align-items:center;margin:0;display:flex;position:sticky;top:0}header>h1[data-v-aa18fbf7]{font-size:var(--fs-lg);padding:var(--space-3) var(--space-4);margin:0;font-weight:700}header>nav[data-v-aa18fbf7]{justify-content:center;align-items:center;gap:var(--space-2);margin:0 var(--space-3);display:flex}header>nav>a[data-v-aa18fbf7]{color:var(--text);border-radius:var(--radius-md);width:2.5rem;height:2.5rem;transition:color .25s var(--ease), background-color .25s var(--ease);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}header>nav>a[data-v-aa18fbf7]:hover{color:var(--accent);background:#ffffff14}header>nav>a.router-link-exact-active[data-v-aa18fbf7]{color:var(--cyan-300);background:#00f7ff1f}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}.glass-card[data-v-1009c2fc]{background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.icon-badge[data-v-ba50d518]{background-color:#ffffff40;border-radius:.5rem;justify-content:center;align-items:center;width:auto;min-width:2.5rem;height:2.5rem;padding:.35rem;display:inline-flex}.icon-badge--square[data-v-ba50d518]{width:2.5rem}img[data-v-ba50d518]{object-fit:contain;object-position:center;width:auto;height:100%}.icon-badge--square img[data-v-ba50d518]{width:100%}.about-page[data-v-4ccab975]{width:min(48rem,100% - 2rem);margin:var(--space-8) auto var(--space-12);gap:var(--space-6);flex-direction:column;display:flex}.intro[data-v-4ccab975]{align-items:center;gap:var(--space-6);padding:var(--space-8);display:flex}.avatar[data-v-4ccab975]{object-fit:cover;border:2px solid #ffffff40;border-radius:50%;flex-shrink:0;width:8rem;height:8rem}.intro-text[data-v-4ccab975]{gap:var(--space-2);flex-direction:column;display:flex}.intro-text>h1[data-v-4ccab975]{font-size:var(--fs-2xl);margin:0}.role[data-v-4ccab975]{color:var(--text-muted);font-size:var(--fs-lg);margin:0}.cv-btn[data-v-4ccab975]{margin-top:var(--space-2);align-self:flex-start;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);background:linear-gradient(180deg, var(--blue-500), var(--accent-strong));color:#fff;box-shadow:var(--shadow-md);transition:transform .25s var(--ease), filter .25s var(--ease);border:1px solid #ffffff2e;padding:.5rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.cv-btn[data-v-4ccab975]:hover{filter:brightness(1.08);transform:translateY(-2px)}.stats[data-v-4ccab975]{padding:var(--space-6);text-align:center;grid-template-columns:repeat(3,1fr);display:grid}.stat[data-v-4ccab975]{gap:var(--space-1);flex-direction:column;display:flex}.stat+.stat[data-v-4ccab975]{border-left:1px solid var(--surface-border)}.stat-value[data-v-4ccab975]{font-size:var(--fs-2xl);color:var(--text);font-weight:700}.stat-label[data-v-4ccab975]{color:var(--text-muted);font-size:var(--fs-sm)}.section[data-v-4ccab975]{padding:var(--space-8)}.section>h2[data-v-4ccab975]{margin:0 0 var(--space-4);font-size:var(--fs-xl)}.section>p[data-v-4ccab975]{margin:0 0 var(--space-4);color:var(--text-muted)}.section>p[data-v-4ccab975]:last-child{margin-bottom:0}.timeline-title[data-v-4ccab975]{margin:var(--space-6) 0 var(--space-3);font-size:var(--fs-lg)}.timeline-title[data-v-4ccab975]:first-of-type{margin-top:0}.timeline[data-v-4ccab975]{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline-item[data-v-4ccab975]{gap:var(--space-4);grid-template-columns:11rem 1fr;align-items:baseline;display:grid}.timeline-period[data-v-4ccab975]{color:var(--cyan-300);font-size:var(--fs-sm);font-weight:600}.timeline-heading[data-v-4ccab975]{margin:0;font-weight:600}.timeline-detail[data-v-4ccab975]{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.skill-groups[data-v-4ccab975]{gap:var(--space-6);flex-direction:column;display:flex}.skill-group>h3[data-v-4ccab975]{margin:0 0 var(--space-3);font-size:var(--fs-base);color:var(--text-muted)}.skills[data-v-4ccab975]{gap:var(--space-3);flex-wrap:wrap;display:flex}.contacts[data-v-4ccab975]{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));margin:0;padding:0;list-style:none;display:grid}.contact[data-v-4ccab975]{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--surface-border);color:var(--text);transition:background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);text-decoration:none;display:flex}.contact[data-v-4ccab975]:hover{border-color:var(--surface-border-hover);background:#ffffff0f;transform:translateY(-2px)}.colophon[data-v-4ccab975]{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);margin:0}@media (max-width:600px){.intro[data-v-4ccab975]{text-align:center;flex-direction:column}.intro-text[data-v-4ccab975]{align-items:center}.cv-btn[data-v-4ccab975]{align-self:center}.timeline-item[data-v-4ccab975]{gap:var(--space-1);grid-template-columns:1fr}}div#container[data-v-b6182e13]{justify-content:center;align-items:center;gap:var(--space-8);margin:var(--space-12) 0;flex-direction:row;display:flex}div#me[data-v-b6182e13]{height:fit-content;position:relative}div#me[data-v-b6182e13]:before{content:"";filter:blur(24px);z-index:-1;background:radial-gradient(circle at 50% 40%,#00f7ff59,#0000 70%);border-radius:50%;position:absolute;inset:-8%}div#me>img[data-v-b6182e13]{content:url(/assets/me-sjBGTWsd.png);width:100%;max-width:22rem;box-shadow:var(--shadow-lg);border:2px solid #ffffff40;border-radius:50%;animation:2.5s ease-in-out infinite alternate mover-b6182e13;display:block}@keyframes mover-b6182e13{0%{transform:translateY(.9rem)}to{transform:translateY(-.9rem)}}div#presentation p[data-v-b6182e13]{font-size:var(--fs-lg);color:var(--text-muted);text-align:center;margin:0}div#presentation>p#name[data-v-b6182e13]{font-size:var(--fs-3xl);letter-spacing:-.02em;color:var(--text);margin:var(--space-2) 0;font-weight:700}@media (max-width:600px){div#container[data-v-b6182e13]{gap:var(--space-6);margin:var(--space-8) 0;flex-direction:column}div#me>img[data-v-b6182e13]{max-width:11rem}}.btn[data-v-bc8fce05]{border-radius:var(--radius-md);background:linear-gradient(180deg, var(--blue-500), var(--accent-strong));color:#fff;font-size:var(--fs-base);cursor:pointer;box-shadow:var(--shadow-md);transition:transform .25s var(--ease), box-shadow .25s var(--ease), filter .25s var(--ease);border:1px solid #ffffff2e;padding:.6rem 1.25rem;font-weight:600}.btn[data-v-bc8fce05]:hover{filter:brightness(1.08);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn[data-v-bc8fce05]:active{transform:translateY(0)}.btn[data-v-bc8fce05]>*{color:#fff;text-decoration:none}.home[data-v-1040e45f]{align-items:center;gap:var(--space-12);padding:0 var(--space-4) var(--space-12);flex-direction:column;display:flex}.hero[data-v-1040e45f]{text-align:center;min-height:calc(100dvh - 3.5rem);padding-bottom:var(--space-12);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.scroll-cue[data-v-1040e45f]{bottom:var(--space-4);border:1px solid var(--surface-border);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:2.75rem;height:2.75rem;color:var(--text);cursor:pointer;animation:scroll-bounce-1040e45f 1.8s var(--ease) infinite;transition:background .25s var(--ease);border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.scroll-cue[data-v-1040e45f]:hover{background:var(--accent-strong)}@keyframes scroll-bounce-1040e45f{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(6px)}}.tagline[data-v-1040e45f]{max-width:40rem;color:var(--text-muted);font-size:var(--fs-lg);margin:0 auto}.buttons[data-v-1040e45f]{margin-top:var(--space-8);flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.section[data-v-1040e45f]{flex-direction:column;align-items:center;width:min(70rem,100%);display:flex}.section>h2[data-v-1040e45f]{font-size:var(--fs-xl);margin:0 0 var(--space-8);text-align:center}.tech-grid[data-v-1040e45f]{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.recent[data-v-1040e45f]{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));width:100%;display:grid}.recent-link[data-v-1040e45f]{color:inherit;text-decoration:none}.recent-card[data-v-1040e45f]{height:100%;padding:var(--space-6);transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease)}.recent-link:hover .recent-card[data-v-1040e45f]{border-color:var(--surface-border-hover);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.recent-card>h3[data-v-1040e45f]{margin:0 0 var(--space-2);font-size:var(--fs-lg)}.recent-subtitle[data-v-1040e45f]{color:var(--text-muted);font-size:var(--fs-sm);margin:0}.recent-date[data-v-1040e45f]{margin:var(--space-3) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.see-all[data-v-1040e45f]{margin-top:var(--space-8)}section[data-v-450a1408]{text-align:center;color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:1rem;height:100%;padding:2rem;display:flex}h2[data-v-450a1408],h3[data-v-450a1408]{margin:0}h2[data-v-450a1408]{font-size:2rem;font-weight:bolder}h3[data-v-450a1408]{font-size:1.5rem;font-weight:400}p[data-v-450a1408]>*{color:#fff}img#compass[data-v-450a1408]{height:8rem}.timeline[data-v-b594e245]{place-content:center;place-items:center;gap:0 var(--space-4);grid-template-columns:repeat(3,auto);display:grid}.timeline>.bar[data-v-b594e245]{grid-column:2;grid-row:1 / span var(--v1e2518ce);content:"";background:linear-gradient(180deg, var(--blue-400), var(--blue-500));border-radius:.25rem;width:.4rem;height:95%;margin:5%}.timeline>.container[data-v-b594e245]{color:#fff;justify-content:center;align-items:center;gap:1rem;width:28rem;margin-bottom:-4rem;text-decoration:none;display:flex}.timeline>.container[data-v-b594e245]:last-child{margin-bottom:0}.timeline>.container.left[data-v-b594e245]{flex-direction:row;justify-content:end}.timeline>.left[data-v-b594e245]{grid-column:1/span 2;align-content:end}.timeline>.container.right[data-v-b594e245]{flex-direction:row-reverse;justify-content:start}.timeline>.right[data-v-b594e245]{grid-column:2/span 2;align-content:start}.bubble[data-v-b594e245]{background:var(--cyan-300);width:1.1rem;height:1.1rem;transition:transform .25s var(--ease);border:2px solid #fff;border-radius:50%;position:relative;box-shadow:0 0 0 4px #00123366}.timeline>.container.right>.bubble[data-v-b594e245]{transform:translate(calc(.2rem - 50%))}.timeline>.container.left>.bubble[data-v-b594e245]{transform:translate(calc(50% - .2rem))}.timeline>.container.right:hover>.bubble[data-v-b594e245]{transform:translate(calc(.2rem - 50%))scale(1.6)}.timeline>.container.left:hover>.bubble[data-v-b594e245]{transform:translate(calc(50% - .2rem))scale(1.6)}.content[data-v-b594e245]{padding:var(--space-6);max-width:20rem;transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease)}.timeline>.container:hover .content[data-v-b594e245]{border-color:var(--surface-border-hover);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.content>h2[data-v-b594e245]{margin:0 0 var(--space-2);font-size:var(--fs-lg)}.content>p[data-v-b594e245]{margin:var(--space-2) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}@media (max-width:900px){.timeline[data-v-b594e245]{gap:.5rem 0}.timeline>.container[data-v-b594e245]{width:100%;margin-bottom:0}.timeline>.container.right>.bubble[data-v-b594e245]{transform:translate(calc(50% - .2rem))}.timeline>.container.right:hover>.bubble[data-v-b594e245]{transform:translate(calc(50% - .2rem))scale(1.6)}.timeline>.container.right[data-v-b594e245]{flex-direction:row;justify-content:end}.timeline>.right[data-v-b594e245]{grid-column:1/span 2;align-content:end}}@media (max-width:600px){.content[data-v-b594e245]{max-width:15rem}.timeline>.container[data-v-b594e245]{max-width:20rem}}#content[data-v-22be45a9]{padding:0 var(--space-4);flex-direction:column;justify-content:center;align-items:center;display:flex}#content>h2[data-v-22be45a9]{font-size:var(--fs-xl);margin:var(--space-8) 0 var(--space-12);text-align:center}:root{--blue-950:#001233;--blue-900:#001d47;--blue-800:#002a6b;--blue-700:#004094;--blue-500:#268fff;--blue-400:#09f;--cyan-400:#00c8d6;--cyan-300:#00f7ff;--accent:var(--blue-400);--accent-strong:var(--blue-500);--text:#fff;--text-muted:#ffffffb8;--surface:#00275a73;--surface-strong:#00275aad;--surface-border:#ffffff24;--surface-border-hover:#00f7ff73;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--fs-sm:clamp(.8rem, .75rem + .2vw, .9rem);--fs-base:clamp(1rem, .95rem + .3vw, 1.1rem);--fs-lg:clamp(1.15rem, 1rem + .6vw, 1.4rem);--fs-xl:clamp(1.5rem, 1.2rem + 1.2vw, 2rem);--fs-2xl:clamp(2rem, 1.5rem + 2.4vw, 3.25rem);--fs-3xl:clamp(2.5rem, 1.8rem + 3.6vw, 4.5rem);--shadow-md:0 8px 24px #00123359;--shadow-lg:0 16px 48px #00123373;--ease:cubic-bezier(.22, 1, .36, 1);--phone-width:600px;color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Fira Sans,system-ui,sans-serif}*,:before,:after{box-sizing:border-box}body{min-height:100vh;font-size:var(--fs-base);background:radial-gradient(1100px 700px at 12% 8%, #00f7ff29, transparent 60%), radial-gradient(900px 600px at 90% 100%, #268fff2e, transparent 55%), linear-gradient(145deg, var(--blue-950) 0%, var(--blue-700) 48%, #0a6ea8 76%, var(--cyan-400) 100%);background-repeat:no-repeat;background-attachment:fixed;margin:0;line-height:1.6}div#app{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}a{color:var(--accent)}.animated-link{color:var(--text);background-image:linear-gradient(var(--cyan-400), var(--cyan-400));transition:background-size .4s var(--ease);background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;border-bottom:1px solid #fff9;text-decoration:none}.animated-link:hover{background-size:100% 2px}::selection{background:#00f7ff4d}:focus-visible{outline:2px solid var(--cyan-300);outline-offset:2px;border-radius:var(--radius-sm)}h1,h2,h3{letter-spacing:-.02em;line-height:1.15}main{view-transition-name:page-content}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition-old(page-content){animation:vt-leave .15s var(--ease) both}::view-transition-new(page-content){animation:vt-enter .22s 80ms var(--ease) both}@keyframes vt-leave{to{opacity:0;transform:translateY(-8px)}}@keyframes vt-enter{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}
