*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}*{margin:0;padding:0}html,body{height:100%}body{-webkit-font-smoothing:antialiased;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;padding:0}:root{--bg-main:#f9fafb;--bg-surface:#fff;--bg-inset:#f3f4f6;--text-primary:#111827;--text-secondary:#4b5563;--text-tertiary:#6b7280;--accent-primary:#7c3aed;--accent-secondary:#2563eb;--accent-tertiary:#0891b2;--accent-primary-bg:#7c3aed1a;--accent-glow:#7c3aed33;--border-subtle:#e5e7eb;--border-strong:#d1d5db;--border-glow:#7c3aed33;--font-display:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.0625rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:clamp(1.375rem, 3vw, 1.5rem);--text-3xl:clamp(1.5rem, 4vw, 2rem);--text-4xl:clamp(2rem, 5vw, 2.75rem);--leading-tight:1.1;--leading-snug:1.3;--leading-normal:1.6;--leading-loose:1.8;--tracking-tight:-.02em;--tracking-normal:0em;--tracking-wide:.05em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--hero-width-desktop:clamp(320px, 35vw, 400px);--sidebar-width-desktop:clamp(320px, 35vw, 400px);--hero-width-tablet:280px;--max-content-width:1440px;--z-below:-1;--z-base:0;--z-above:10;--z-nav:40;--z-overlay:50}html.dark{--bg-main:#0b0c10;--bg-surface:#13151a;--bg-inset:#1c1e26;--text-primary:#f9fafb;--text-secondary:#d1d5db;--text-tertiary:#9ca3af;--accent-primary:#8b5cf6;--accent-secondary:#3b82f6;--accent-tertiary:#06b6d4;--accent-primary-bg:#8b5cf626;--accent-glow:#8b5cf666;--border-subtle:#22252e;--border-strong:#374151;--border-glow:#8b5cf64d;--shadow-sm:0 4px 12px #00000080;--shadow-md:0 10px 25px -5px #0009, 0 8px 10px -6px #0006}body{font-family:var(--font-body);color:var(--text-primary);font-feature-settings:"cv02", "cv03", "cv04", "cv11";letter-spacing:-.01em}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-primary);letter-spacing:var(--tracking-tight);font-weight:700;line-height:var(--leading-tight)}h1{font-size:var(--text-4xl);font-weight:800}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}p{color:var(--text-secondary);line-height:var(--leading-normal);font-size:var(--text-base)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%;max-width:var(--max-content-width);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.container{padding-inline:var(--space-8)}}.skeleton-box{background-color:var(--bg-inset);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton-box:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);animation:1.5s ease-in-out infinite skeleton-pulse;position:absolute;inset:0;transform:translate(-100%)}html.dark .skeleton-box:after{background:linear-gradient(90deg,#0000,#ffffff0d,#0000)}@keyframes skeleton-pulse{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton-box:after{background:0 0;animation:none;transform:none}}html{scrollbar-gutter:stable}body{background-color:var(--bg-main);transition:background-color var(--transition-base), color var(--transition-base);background-image:radial-gradient(circle at 100% 0,#8b5cf608 0%,#0000 40%),radial-gradient(circle at 0 100%,#06b6d408 0%,#0000 40%);background-attachment:fixed}::selection{background-color:var(--accent-primary-bg);color:var(--accent-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}html{scrollbar-width:thin;scrollbar-color:var(--border-strong) var(--bg-main)}html.dark{scrollbar-color:var(--border-strong) var(--bg-main)}.skip-link{background:var(--accent-primary);color:#fff;z-index:100;padding:8px;transition:top .2s;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:inherit}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.project-card,.focus-card,.social-link-card,.home-exp-item,.timeline-item{transition:transform var(--transition-base) cubic-bezier(.4, 0, .2, 1), box-shadow var(--transition-base) cubic-bezier(.4, 0, .2, 1), background-color var(--transition-base)}.project-card:hover,.focus-card:hover,.social-link-card:hover{transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.project-card:hover,.focus-card:hover,.social-link-card:hover{transform:none}}.fade-up{opacity:0;will-change:opacity, transform;transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1);transform:translateY(16px)}.fade-up.visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.fade-up{opacity:1;transition:none;transform:none}}.site-header[data-astro-cid-naxbfnlv]{z-index:var(--z-nav);width:100%;height:72px;box-shadow:none;transition:background var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), backdrop-filter var(--transition-base);background:0 0;border-bottom:1px solid #0000;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.site-header[data-astro-cid-naxbfnlv].is-scrolled{background:color-mix(in srgb, var(--bg-surface) 80%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}@media (width>=768px){.site-header[data-astro-cid-naxbfnlv]{left:var(--hero-width-tablet);width:calc(100% - var(--hero-width-tablet))}}@media (width>=1024px){.site-header[data-astro-cid-naxbfnlv]{left:var(--hero-width-desktop);width:calc(100% - var(--hero-width-desktop))}}.header-inner[data-astro-cid-naxbfnlv]{width:100%;max-width:1200px;padding:0 var(--space-4);justify-content:flex-end;align-items:center;gap:var(--space-4);margin:0 auto;display:flex}.header-brand[data-astro-cid-naxbfnlv]{font-weight:800;font-size:var(--text-xl);color:var(--text-primary);transition:opacity var(--transition-base);text-decoration:none;display:none}@media (width<=767px){.header-brand[data-astro-cid-naxbfnlv]{display:block}.header-inner[data-astro-cid-naxbfnlv]{justify-content:space-between}}.brand-dot[data-astro-cid-naxbfnlv]{color:var(--accent-primary)}.header-nav[data-astro-cid-naxbfnlv]{align-items:center;gap:var(--space-2);border-radius:var(--radius-full);background:0 0;display:none}@media (width>=768px){.header-nav[data-astro-cid-naxbfnlv]{display:flex}.header-inner[data-astro-cid-naxbfnlv]{padding:0 var(--space-8)}}.header-nav-link[data-astro-cid-naxbfnlv]{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);transition:color var(--transition-base), background-color var(--transition-base), box-shadow var(--transition-base);font-weight:500;text-decoration:none}.header-nav-link[data-astro-cid-naxbfnlv]:hover{color:var(--text-primary);background-color:var(--bg-inset)}.header-nav-link[data-astro-cid-naxbfnlv].active{color:#fff;background:linear-gradient(135deg, var(--accent-tertiary), var(--accent-primary));box-shadow:0 0 10px var(--accent-glow)}.header-actions[data-astro-cid-naxbfnlv]{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.theme-toggle-btn[data-astro-cid-naxbfnlv]{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:hidden}.theme-toggle-btn[data-astro-cid-naxbfnlv]:hover{color:var(--text-primary);background-color:var(--bg-main);border-color:var(--border-subtle)}.theme-toggle-btn[data-astro-cid-naxbfnlv]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.theme-toggle-btn[data-astro-cid-naxbfnlv] svg[data-astro-cid-naxbfnlv]{transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s cubic-bezier(.4,0,.2,1);position:absolute}.icon-sun[data-astro-cid-naxbfnlv]{opacity:0;transform:rotate(90deg)scale(.5)}.icon-moon[data-astro-cid-naxbfnlv],html.dark .icon-sun[data-astro-cid-naxbfnlv]{opacity:1;transform:rotate(0)scale(1)}html.dark .icon-moon[data-astro-cid-naxbfnlv]{opacity:0;transform:rotate(-90deg)scale(.5)}@media (prefers-reduced-motion:reduce){.theme-toggle-btn[data-astro-cid-naxbfnlv] svg[data-astro-cid-naxbfnlv]{transition:none}}.mobile-menu-toggle[data-astro-cid-naxbfnlv]{width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md);transition:background-color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.mobile-menu-toggle[data-astro-cid-naxbfnlv]:hover{background-color:var(--bg-main)}.mobile-menu-toggle[data-astro-cid-naxbfnlv]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.icon-close[data-astro-cid-naxbfnlv]{display:none}.icon-menu[data-astro-cid-naxbfnlv]{display:block}.mobile-menu[data-astro-cid-naxbfnlv]{background-color:var(--bg-surface);z-index:calc(var(--z-nav) - 1);transition:background-color var(--transition-base);display:none;position:fixed;inset:56px 0 0;overflow-y:auto}.mobile-menu[data-astro-cid-naxbfnlv].open{display:block}.mobile-menu[data-astro-cid-naxbfnlv].open~.mobile-menu-toggle[data-astro-cid-naxbfnlv] .icon-menu[data-astro-cid-naxbfnlv],.mobile-menu-toggle[data-astro-cid-naxbfnlv][aria-expanded=true] .icon-menu[data-astro-cid-naxbfnlv]{display:none}.mobile-menu-toggle[data-astro-cid-naxbfnlv][aria-expanded=true] .icon-close[data-astro-cid-naxbfnlv]{display:block}.mobile-menu-inner[data-astro-cid-naxbfnlv]{padding:var(--space-4);gap:var(--space-1);flex-direction:column;display:flex}.mobile-nav-link[data-astro-cid-naxbfnlv]{padding:var(--space-3) var(--space-4);color:var(--text-primary);font-size:var(--text-base);border-radius:var(--radius-md);transition:background-color var(--transition-fast), color var(--transition-fast);align-items:center;font-weight:500;text-decoration:none;display:flex}.mobile-nav-link[data-astro-cid-naxbfnlv]:hover{background-color:var(--bg-main)}.mobile-nav-link[data-astro-cid-naxbfnlv]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.mobile-nav-link[data-astro-cid-naxbfnlv].active{color:var(--accent-primary);background-color:var(--accent-primary-bg)}@media (width>=768px){.header-inner[data-astro-cid-naxbfnlv]{height:64px;padding:0 var(--space-6)}.header-spacer[data-astro-cid-naxbfnlv]{height:64px}.header-nav[data-astro-cid-naxbfnlv]{display:flex}.mobile-menu-toggle[data-astro-cid-naxbfnlv]{display:none}.mobile-menu[data-astro-cid-naxbfnlv]{display:none!important}.header-nav-link[data-astro-cid-naxbfnlv]{font-size:var(--text-base);padding:var(--space-2) var(--space-4)}.theme-toggle-btn[data-astro-cid-naxbfnlv]{width:40px;height:40px}}@media (width>=1024px){.header-inner[data-astro-cid-naxbfnlv]{padding:0 var(--space-8)}.header-nav[data-astro-cid-naxbfnlv]{gap:var(--space-2)}}@media (width>=1440px){.header-inner[data-astro-cid-naxbfnlv]{padding:0 var(--space-12)}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
