.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-ext-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-ext-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin-ext-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;src:url(/fonts/inter-latin-ext-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;src:url(/fonts/inter-latin-ext-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg-primary: #ffffff;--bg-primary-rgb: 255, 255, 255;--bg-secondary: #f8f9fa;--bg-card: #ffffff;--bg-hero: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--bg-social: #f8f9fa;--text-primary: #333333;--text-secondary: #666666;--text-muted: #888888;--text-inverse: #ffffff;--accent-primary: #6b95c9;--accent-secondary: #764ba2;--accent-hover: #0056b3;--border-color: #e0e0e0;--border-light: #eeeeee;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 25px rgba(0, 0, 0, .15);--btn-primary-bg: #007bff;--btn-primary-text: #ffffff;--btn-secondary-bg: #6c757d;--btn-secondary-text: #ffffff}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-primary-rgb: 26, 26, 26;--bg-secondary: #2d2d2d;--bg-card: #2a2a2a;--bg-hero: linear-gradient(135deg, #4c5aa8 0%, #5a3d7a 100%);--bg-social: #252525;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-muted: #808080;--text-inverse: #1a1a1a;--accent-primary: #7c8be0;--accent-secondary: #9b7bb8;--accent-hover: #4a90e2;--border-color: #404040;--border-light: #333333;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 25px rgba(0, 0, 0, .5);--btn-primary-bg: #4a90e2;--btn-primary-text: #ffffff;--btn-secondary-bg: #5a6268;--btn-secondary-text: #ffffff}html{background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}body{background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease;min-height:100vh;margin:0}html,body,.container,.section,.card,.btn,.theme-btn,.lang-trigger,.lang-menu,.lang-option,.back-link,.github-link,.markdown-content :global(*){transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease,color .3s ease}img,svg,.icon,.social-icon,.theme-icon,.btn-icon{transition:none}h1,h2,h3,h4,h5,h6{font-family:Space Grotesk,sans-serif;font-weight:600}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeInUp .6s ease-out forwards}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.stagger-6{animation-delay:.6s}html,body{margin:0;width:100%;height:100%}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
