@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-bg: #FFFFFF;--color-bg-muted: #F5F5F7;--color-fg: #1D1D1F;--color-fg-muted: #6E6E73;--color-fg-subtle: #6E6E73;--color-border: #D2D2D7;--color-black: #000000;--color-white: #FFFFFF;--color-accent: #0071E3;--color-accent-light: #EAF3FE;--color-accent-hover: #0062C4;--color-card-from: #48484A;--color-card-to: #2C2C2E;--color-card-fg: #F5F5F7;--color-card-fg-muted: #BFBFC4;--color-card-border: rgba(255, 255, 255, .14);--color-card-frame: rgba(255, 255, 255, .09);--color-accent-text: #0062C4;--color-accent-text-hover: #0059B0;--contribution-0: #E6E3F5;--contribution-1: #8B7BE8;--contribution-2: #5B4BD6;--contribution-3: #3E2CA8;--contribution-4: #241663;--brand-email-from: #7A3FD1;--brand-email-to: #4C1D9E;--brand-github-from: #2A3138;--brand-github-to: #0A0D10;--brand-linkedin-from: #0A66C2;--brand-linkedin-to: #07427E;--color-text-primary: var(--color-fg);--color-text-secondary: var(--color-fg-muted);--color-text-tertiary: var(--color-fg-subtle);--color-background: var(--color-bg);--color-background-muted: var(--color-bg-muted);--color-border-default: var(--color-border);--color-interactive: var(--color-accent);--color-interactive-hover: var(--color-accent-hover);--space-0: 0;--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;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", "Fira Mono", Menlo, Consolas, monospace;--text-display-hero: clamp(3.5rem, 8vw, 7rem);--text-display-section: clamp(2.5rem, 5vw, 4.5rem);--text-display-project: clamp(2rem, 4vw, 3.5rem);--text-large-subtitle: clamp(1.25rem, 2vw, 1.75rem);--text-body: 1rem;--text-secondary: .875rem;--text-label: .75rem;--text-card-title: clamp(1.75rem, 4vw, 3rem);--text-card-body: 1.0625rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.05;--line-height-snug: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-display: 1;--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-focus: 0 0 0 3px var(--color-accent);--shadow-card: 0 2px 8px rgba(0, 0, 0, .04), 0 12px 32px rgba(0, 0, 0, .08);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .06), 0 24px 56px rgba(0, 0, 0, .12);--transition-fast: .12s ease-out;--transition-normal: .2s ease-out;--transition-slow: .3s ease-out;--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .3s;--duration-marquee: 80s;--ease-out: ease-out;--ease-in-out: ease-in-out;--ease-spring: cubic-bezier(.16, 1, .3, 1);--bp-mobile: 768px;--bp-tablet: 1024px;--bp-desktop: 1280px;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms;--transition-normal: 0ms;--transition-slow: 0ms;--duration-fast: 0ms;--duration-normal: 0ms;--duration-slow: 0ms}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:64px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}:where(a){color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}:where(a:hover){color:var(--color-accent)}:where(a:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background-color:var(--color-accent);color:var(--color-white)}.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}.skip-link{position:absolute;top:-100%;left:50%;transform:translate(-50%);padding:var(--space-3) var(--space-4);background:var(--color-accent);color:var(--color-white);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);z-index:var(--z-toast);transition:top var(--transition-fast)}.skip-link:focus{top:var(--space-4)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-muted)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-fg-subtle)}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media print{.no-print{display:none!important}}@keyframes marqueeScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in-up{animation:fadeInUp var(--duration-normal) var(--ease-out) forwards}.animate-fade-in{animation:fadeIn var(--duration-normal) var(--ease-out) forwards}.animate-slide-in-left{animation:slideInLeft var(--duration-normal) var(--ease-out) forwards}.animate-slide-in-right{animation:slideInRight var(--duration-normal) var(--ease-out) forwards}.animate-scale-in{animation:scaleIn var(--duration-normal) var(--ease-out) forwards}.animate-stagger-container{opacity:0}.animate-stagger-container.is-visible{opacity:1}.animate-stagger-item{opacity:0;animation:fadeInUp var(--duration-normal) var(--ease-out) forwards}.animate-stagger-container.is-visible .stagger-0{animation-delay:0ms}.animate-stagger-container.is-visible .stagger-1{animation-delay:.1s}.animate-stagger-container.is-visible .stagger-2{animation-delay:.2s}.animate-stagger-container.is-visible .stagger-3{animation-delay:.3s}.animate-stagger-container.is-visible .stagger-4{animation-delay:.4s}.animate-stagger-container.is-visible .stagger-5{animation-delay:.5s}.animate-stagger-container.is-visible .stagger-6{animation-delay:.6s}.animate-stagger-container.is-visible .stagger-7{animation-delay:.7s}.animate-stagger-container.is-visible .stagger-8{animation-delay:.8s}.animate-stagger-container.is-visible .stagger-9{animation-delay:.9s}@media (prefers-reduced-motion: reduce){.animate-fade-in-up,.animate-fade-in,.animate-slide-in-left,.animate-slide-in-right,.animate-scale-in,.animate-stagger-item{animation:none!important;opacity:1!important;transform:none!important}.animate-stagger-container{opacity:1}}.hover-scale{transition:transform var(--transition-fast),opacity var(--transition-fast)}.hover-scale:hover{transform:scale(1.02)}.hover-opacity{transition:opacity var(--transition-fast)}.hover-opacity:hover{opacity:.7}@media (prefers-reduced-motion: reduce){.hover-scale:hover,.hover-opacity:hover{transform:none;opacity:1}}
