@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.lang-container[data-v-2ded24e1]{display:flex;justify-content:flex-end}.flag-btn[data-v-2ded24e1]{background:#a78bfa29;color:var(--accent-purple-soft);border-color:#a78bfa80;border:1px solid #3f3f46;border-radius:12px;padding:10px 16px;display:flex;align-items:center;gap:10px;cursor:pointer;color:#fff;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:1em}.flag-btn[data-v-2ded24e1]:hover{background:#a78bfa3d;transform:translateY(-2px)}.flag-btn[data-v-2ded24e1]:active{transform:translateY(0)}.fi[data-v-2ded24e1]{width:20px;border-radius:2px}.about[data-v-38ff2566]{display:block}.eyebrow[data-v-38ff2566]{color:var(--text-slate-dark);margin:0 0 .75rem}.about-content p[data-v-38ff2566]{line-height:1.75;color:var(--text-tertiary)}.about-highlight[data-v-38ff2566]{border:1px solid rgba(var(--accent-sky-rgb),.28);background:rgba(var(--accent-sky-rgb),.07);border-radius:14px;padding:1rem 1rem .35rem;box-shadow:inset 0 0 0 1px rgba(var(--accent-sky-rgb),.06)}.about-actions[data-v-38ff2566]{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.projects-grid[data-v-6b08d736]{display:grid;gap:2rem;margin-top:2rem}.project-card[data-v-6b08d736]{display:flex;flex-direction:column;border:1px solid rgba(var(--accent-sky-rgb),.2);border-radius:14px;background:var(--bg-surface);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease,transform .55s ease,opacity .55s ease}.project-card[data-v-6b08d736]:hover{border-color:rgba(var(--accent-sky-rgb),.72);box-shadow:inset 0 0 0 1px rgba(var(--accent-sky-rgb),.2)}.spotlight-card[data-v-6b08d736]{position:relative}.spotlight-card[data-v-6b08d736]:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(1000px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(var(--accent-sky-rgb),.08),transparent 40%);opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:10}.spotlight-card[data-v-6b08d736]:hover:before{opacity:1}.project-image-wrapper[data-v-6b08d736]{width:100%;height:250px;overflow:hidden;border-bottom:1px solid var(--border-main);background:var(--bg-surface-alt);position:relative;cursor:zoom-in}.expand-overlay[data-v-6b08d736]{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.expand-overlay span[data-v-6b08d736]{font-size:.8rem;color:#fff;background:#0009;padding:4px 12px;border-radius:20px}.project-image-wrapper:hover .expand-overlay[data-v-6b08d736]{opacity:1}.project-image[data-v-6b08d736]{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card:hover .project-image[data-v-6b08d736]{transform:scale(1.03)}.project-content[data-v-6b08d736]{padding:1.5rem;display:flex;flex-direction:column;flex-grow:1}.project-content h3[data-v-6b08d736]{margin-top:0;margin-bottom:.75rem;font-size:1.25rem;color:var(--text-bright)}.project-description[data-v-6b08d736]{color:var(--text-tertiary);line-height:1.6;margin-bottom:1.5rem;flex-grow:1}.project-actions[data-v-6b08d736]{display:flex;gap:1rem;flex-wrap:wrap}@media(min-width:768px){.projects-grid[data-v-6b08d736]{grid-template-columns:repeat(2,1fr)}}.lightbox-backdrop[data-v-6b08d736]{position:fixed;inset:0;background:#000000e6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.lightbox-content[data-v-6b08d736]{max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center}.lightbox-content img[data-v-6b08d736]{max-width:100%;max-height:80vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 50px #00000080}.lightbox-caption[data-v-6b08d736]{margin-top:1rem;color:#e4e4e7;font-size:1rem;text-align:center}.close-lightbox[data-v-6b08d736]{position:absolute;top:20px;right:30px;background:none;border:none;color:#fff;font-size:2.5rem;cursor:pointer;line-height:1}.fade-enter-active[data-v-6b08d736],.fade-leave-active[data-v-6b08d736]{transition:opacity .3s ease}.fade-enter-from[data-v-6b08d736],.fade-leave-to[data-v-6b08d736]{opacity:0}.tool-sections[data-v-dfb1f74a]{margin-top:1.5rem;display:grid;gap:2rem}.group-title[data-v-dfb1f74a]{margin:0 0 .85rem;font-size:1rem;color:var(--text-slate-light)}.tool-grid[data-v-dfb1f74a]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.tool-card[data-v-dfb1f74a]{position:relative;overflow:hidden;border:1px solid var(--border-main);background:var(--bg-surface);border-radius:14px;padding:1rem;box-shadow:inset 0 0 0 1px rgba(var(--accent-sky-rgb),.05);transition:border-color .2s ease,box-shadow .2s ease}.tool-card[data-v-dfb1f74a]:hover{border-color:rgba(var(--accent-sky-rgb),.72);box-shadow:inset 0 0 0 1px rgba(var(--accent-sky-rgb),.2)}.spotlight-card[data-v-dfb1f74a]:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(var(--accent-sky-rgb),.08),transparent 40%);opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:10}.spotlight-card[data-v-dfb1f74a]:hover:before{opacity:1}.tool-main[data-v-dfb1f74a]{text-align:center}.tool-card img[data-v-dfb1f74a]{width:38px;height:38px;margin-bottom:.6rem}.tool-card h4[data-v-dfb1f74a]{margin:0;font-size:.95rem;color:var(--text-sky-light)}.expand-overlay[data-v-0bbd2ab9]{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.expand-overlay span[data-v-0bbd2ab9]{font-size:.8rem;color:#fff;background:#0009;padding:4px 12px;border-radius:20px}.timeline-image:hover .expand-overlay[data-v-0bbd2ab9]{opacity:1}.timeline-image:hover .timeline-photo[data-v-0bbd2ab9]{transform:scale(1.05)}.lightbox-backdrop[data-v-0bbd2ab9]{position:fixed;inset:0;background:#000000e6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.lightbox-content[data-v-0bbd2ab9]{max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center}.lightbox-content img[data-v-0bbd2ab9]{max-width:100%;max-height:80vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 50px #00000080}.lightbox-caption[data-v-0bbd2ab9]{margin-top:1rem;color:#e4e4e7;font-size:1rem;text-align:center}.close-lightbox[data-v-0bbd2ab9]{position:absolute;top:20px;right:30px;background:none;border:none;color:#fff;font-size:2.5rem;cursor:pointer;line-height:1}.timeline-actions[data-v-0bbd2ab9]{display:flex;justify-content:center}.timeline-buttons[data-v-0bbd2ab9]{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.btn-timeline[data-v-0bbd2ab9]{background:rgba(var(--accent-purple-rgb),.16);color:var(--accent-purple-soft);border-color:rgba(var(--accent-purple-rgb),.5);display:inline-flex;justify-content:center;align-items:center;width:max-content;margin-top:1.5rem}.btn-timeline[data-v-0bbd2ab9]:hover{background:rgba(var(--accent-purple-rgb),.24)}.timeline[data-v-0bbd2ab9]{position:relative;margin-top:4rem;padding-left:2.8rem}.timeline[data-v-0bbd2ab9]:before{content:"";position:absolute;top:0;bottom:0;left:15px;width:1px;background:rgba(var(--accent-sky-rgb),.4)}.timeline-entry[data-v-0bbd2ab9]{position:relative;margin-top:4rem;margin-bottom:4rem}.timeline-point[data-v-0bbd2ab9]{position:absolute;left:-2.8rem;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:10px;border:1px solid rgba(var(--accent-sky-rgb),.45);background:var(--bg-surface-alt);display:grid;place-items:center}.timeline-point img[data-v-0bbd2ab9]{width:16px;height:16px;filter:invert(94%) sepia(4%) saturate(233%) hue-rotate(201deg) brightness(94%) contrast(89%)}.timeline-content[data-v-0bbd2ab9]{position:relative;border:1px solid rgba(var(--accent-sky-rgb),.2);border-radius:14px;background:var(--bg-surface);padding:1rem;transition:border-color .2s ease,box-shadow .2s ease,transform .55s ease,opacity .55s ease}.timeline-entry:hover .timeline-content[data-v-0bbd2ab9],.timeline-entry:focus-within .timeline-content[data-v-0bbd2ab9]{border-color:rgba(var(--accent-sky-rgb),.72);box-shadow:inset 0 0 0 1px rgba(var(--accent-sky-rgb),.2)}.spotlight-card[data-v-0bbd2ab9]:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(var(--accent-sky-rgb),.08),transparent 40%);opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:10}.spotlight-card[data-v-0bbd2ab9]:hover:before{opacity:1}.timeline-date[data-v-0bbd2ab9]{font-size:.86rem;color:var(--text-muted);margin-bottom:.45rem}.timeline-content h3[data-v-0bbd2ab9]{margin-bottom:.5rem}.timeline-content p[data-v-0bbd2ab9]{margin-bottom:0;line-height:1.65;color:var(--text-tertiary)}.timeline-image[data-v-0bbd2ab9]{margin-top:.8rem;border:1px dashed var(--border-muted);border-radius:12px;min-height:115px;height:400px;display:grid;place-items:center;color:var(--text-muted);font-size:.85rem;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:zoom-in}.timeline-photo[data-v-0bbd2ab9]{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.fade-enter-active[data-v-0bbd2ab9],.fade-leave-active[data-v-0bbd2ab9]{transition:opacity .3s ease}.fade-enter-from[data-v-0bbd2ab9],.fade-leave-to[data-v-0bbd2ab9]{opacity:0}@media(max-width:760px){.timeline-image[data-v-0bbd2ab9]{height:auto;aspect-ratio:16 / 9}}.social-card-grid[data-v-097c05fb]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.social-card[data-v-097c05fb]{background:rgba(var(--accent-purple-rgb),.16);color:var(--accent-purple-soft);border-color:rgba(var(--accent-purple-rgb),.5);border-radius:14px;padding:1rem;min-height:120px;text-align:center;text-decoration:none;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;box-shadow:inset 0 0 0 1px rgba(var(--accent-sky-rgb),.05)}.social-card img[data-v-097c05fb]{width:38px;height:38px;margin-bottom:.6rem;filter:invert(94%) sepia(4%) saturate(233%) hue-rotate(201deg) brightness(94%) contrast(89%)}.social-card h4[data-v-097c05fb]{margin:0;font-size:.95rem;color:var(--text-sky-light)}.social-card[data-v-097c05fb]:hover,.social-card[data-v-097c05fb]:focus-visible{box-shadow:inset 0 0 0 1px rgba(var(--accent-purple-rgb),.22);transform:translateY(-2px);background:rgba(var(--accent-purple-rgb),.24)}:root{color-scheme:dark;--accent-sky: #7dd3fc;--accent-sky-soft: #bae6fd;--accent-purple: #a78bfa;--accent-purple-soft: #ddd6fe;--accent-sky-rgb: 125, 211, 252;--accent-purple-rgb: 167, 139, 250;--bg-base: #18181b;--bg-base-rgb: 24, 24, 27;--bg-surface: #27272a;--bg-surface-alt: #1f1f23;--text-main: #f4f4f5;--text-bright: #ffffff;--text-secondary: #e4e4e7;--text-tertiary: #d4d4d8;--text-muted: #a1a1aa;--text-footer-span: #8f8f97;--text-slate-light: #cbd5e1;--text-slate-dark: #94a3b8;--text-sky-light: #e0f2fe;--border-main: #3f3f46;--border-muted: #71717a}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg-base);color:var(--text-main);overflow-x:hidden}.page{min-height:100vh;position:relative;z-index:1}.bg-dots{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.09) 1.5px,transparent 1.5px);background-size:32px 32px;mask-image:radial-gradient(circle at center,black 30%,transparent 80%);-webkit-mask-image:radial-gradient(circle at center,black 30%,transparent 80%)}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:1rem clamp(2rem,2vw,8rem);border-bottom:1px solid var(--border-main);background:rgba(var(--bg-base-rgb),.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{font-weight:700;letter-spacing:.08em;font-size:clamp(1.15rem,2vw,1.7rem);color:var(--accent-sky-soft);text-shadow:0 0 16px rgba(var(--accent-sky-rgb),.12);z-index:31}.menu-toggle{display:flex;flex-direction:column;justify-content:space-around;width:2rem;height:1.5rem;background:transparent;border:none;cursor:pointer;padding:0;z-index:31}.hamburger{width:100%;height:2px;background:var(--text-main);transition:all .3s linear;position:relative;border-radius:10px}.hamburger:before,.hamburger:after{content:"";position:absolute;width:100%;height:2px;background:var(--text-main);transition:all .3s linear;border-radius:10px;left:0}.hamburger:before{top:-8px}.hamburger:after{top:8px}.hamburger.is-active{background:transparent}.hamburger.is-active:before{transform:rotate(45deg);top:0}.hamburger.is-active:after{transform:rotate(-45deg);top:0}.nav-overlay{display:block;position:fixed;inset:0;background:#0009;z-index:25;opacity:0;pointer-events:none;transition:opacity .3s ease}.nav-overlay.is-open{opacity:1;pointer-events:auto}.nav-container{display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);width:280px;background:var(--bg-surface);border-left:1px solid var(--border-main);flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:5rem 2rem 2rem;gap:2rem;z-index:30;transition:transform .3s ease;box-shadow:-10px 0 30px #00000080;overflow-y:auto}.nav-container.is-open{transform:translate(0)}.close-menu{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;color:var(--text-muted);font-size:2.5rem;cursor:pointer;line-height:1;transition:color .2s ease;z-index:40}.close-menu:hover{color:var(--text-bright)}.site-nav{display:flex;flex-direction:column;width:100%}.site-nav a{display:block;width:100%;padding:.75rem 0;border-bottom:1px solid var(--border-main);color:var(--text-secondary);text-decoration:none;font-size:1.25rem;transition:color .2s ease;position:relative}.site-nav a:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background-color:var(--accent-sky-soft);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.site-nav a:hover{color:var(--accent-sky-soft)}.site-nav a:hover:after{transform:scaleX(1)}.section{max-width:1160px;margin:0 auto;padding:clamp(3.5rem,8vw,7rem) clamp(1rem,4vw,2rem)}.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease;will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.06s}.reveal-delay-2{transition-delay:.12s}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.8rem,3vw,2.5rem);margin-bottom:1rem}.name-title{display:inline-block;background:linear-gradient(90deg,var(--text-main),var(--text-bright),var(--text-tertiary));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:nameFadeIn .8s ease-out both,nameGlowShift 4s ease-in-out .8s infinite}h2{font-size:clamp(1.4rem,2.6vw,2rem);margin-bottom:1.25rem;color:var(--accent-sky-soft)}.lead{color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1rem;border-radius:10px;border:1px solid transparent;text-decoration:none;font-size:.9rem;font-weight:500;transition:transform .2s ease,border-color .2s ease,background-color .2s ease,color .2s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:rgba(var(--accent-purple-rgb),.16);color:var(--accent-purple-soft);border-color:rgba(var(--accent-purple-rgb),.5)}.btn-primary:hover{background:rgba(var(--accent-purple-rgb),.24)}.site-footer{text-align:center;padding:2.2rem 1rem 2rem;font-size:.85rem;color:var(--text-muted)}.site-footer span{color:var(--text-footer-span)}@keyframes nameFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes nameGlowShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@media(max-width:760px){.about{grid-template-columns:1fr}.about-photo{margin-top:0;height:auto;aspect-ratio:1 / 1;max-width:240px}.tool-grid,.social-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.tool-grid,.social-card-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal.is-visible{opacity:1;transform:none;transition:none}.name-title{animation:none;color:var(--text-main);background:none}}
