@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";
@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.f19e4721.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:85.83%;descent-override:20.53%;line-gap-override:9.33%;size-adjust:107.19%}.geistsans_d5a4f12f-module__Ur3q_a__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__Ur3q_a__variable{--font-geist-sans:"GeistSans","GeistSans Fallback"}
*{box-sizing:border-box;margin:0;padding:0}:root{--font-heading:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-body:var(--font-geist-sans),"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"JetBrains Mono",monospace;--mint:#47b590;--coral:#ff6b47;--electric:#00d4ff;--black:#0e0e0e;--bg:#0a0a0a;--surface:#ffffff08;--border:#ffffff14;--text:#e5e7eb;--text-muted:#9ca3af;--text-bright:#f9fafb;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition-base:.25s cubic-bezier(.4,0,.2,1);--transition-slow:.35s cubic-bezier(.4,0,.2,1)}[data-theme=light]{--bg:#f8fafc;--surface:#00000005;--border:#00000014;--text:#1f2937;--text-muted:#6b7280;--text-bright:#0e0e0e}html{scroll-behavior:smooth;overflow-x:hidden}*{scroll-margin-top:80px}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;transition:background var(--transition-base),color var(--transition-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-bright);font-weight:700;line-height:1.2}h1{letter-spacing:-.02em;font-size:clamp(2.5rem,5vw,4rem)}h2{letter-spacing:-.01em;font-size:clamp(2rem,4vw,3rem)}h3{font-size:clamp(1.5rem,3vw,2rem)}p{color:var(--text);line-height:1.7}a{color:inherit;transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--mint)}code{font-family:var(--font-mono);background:var(--surface);border-radius:var(--radius-sm);padding:.25rem .5rem;font-size:.875em}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--surface);border-radius:var(--radius-lg);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--border)}::selection{background:var(--mint);color:var(--black)}:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.container{width:100%;max-width:1200px;padding:0 var(--spacing-lg);margin:0 auto}.text-gradient{background:linear-gradient(135deg,var(--mint)0%,var(--coral)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gradient-bg{z-index:0;background:linear-gradient(135deg,#47b5900d 0%,#ff6b470d 50%,#47b59008 100%);width:100%;height:100%;animation:15s infinite gradientShift;position:fixed;top:0;left:0}@keyframes gradientShift{0%,to{opacity:.4;transform:scale(1)rotate(0)}50%{opacity:.6;transform:scale(1.05)rotate(2deg)}}.particles{z-index:1;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:768px){.gradient-bg{animation:none}[class*=blob],[class*=keycap],[class*=swipe],[class*=floating]{backface-visibility:hidden;perspective:1000px;transform:translateZ(0)}::-webkit-scrollbar{width:4px}*{animation-timing-function:linear!important}}.gpu-accelerated{will-change:transform,opacity;backface-visibility:hidden;transform:translateZ(0)}
