.navbar:where(.astro-3jnlcb6b){background:#fff;border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-subtle)}.navbar-container:where(.astro-3jnlcb6b){max-width:1280px;margin:0 auto;padding:0 var(--spacing-6);display:flex;align-items:center;justify-content:space-between;height:64px}.navbar-logo:where(.astro-3jnlcb6b){display:flex;align-items:center;gap:var(--spacing-2);font-weight:700;font-size:var(--text-lg);color:var(--fraise-500);text-decoration:none;white-space:nowrap}.navbar-logo:where(.astro-3jnlcb6b):hover{color:var(--fraise-700)}.navbar-logo-emoji:where(.astro-3jnlcb6b){font-size:1.25rem}.navbar-menu:where(.astro-3jnlcb6b){display:none;flex:1;margin-left:var(--spacing-12)}.nav-items:where(.astro-3jnlcb6b){list-style:none;padding:0;margin:0;display:flex;gap:var(--spacing-8)}.nav-link:where(.astro-3jnlcb6b){color:var(--color-text);text-decoration:none;font-weight:500;transition:color var(--transition-fast);position:relative;display:inline-flex;align-items:center;gap:var(--spacing-1)}.external-icon:where(.astro-3jnlcb6b){font-size:.75em;opacity:.7}.nav-link:where(.astro-3jnlcb6b):hover{color:var(--fraise-500)}.nav-link:where(.astro-3jnlcb6b).active{color:var(--fraise-500)}.nav-link:where(.astro-3jnlcb6b).active:after{content:"";position:absolute;bottom:-8px;left:0;right:0;height:3px;background:var(--fraise-500);border-radius:2px}.navbar-actions:where(.astro-3jnlcb6b){display:flex;align-items:center;gap:var(--spacing-4)}.persona-selector:where(.astro-3jnlcb6b){position:relative}.persona-btn:where(.astro-3jnlcb6b){background:none;border:1px solid var(--color-border);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);cursor:pointer;font-weight:500;color:var(--color-text);transition:all var(--transition-fast);font-size:var(--text-sm)}.persona-btn:where(.astro-3jnlcb6b):hover{border-color:var(--fraise-500);color:var(--fraise-500)}.persona-menu:where(.astro-3jnlcb6b){position:absolute;top:100%;right:0;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);list-style:none;padding:var(--spacing-2);margin:0;min-width:200px;display:none;flex-direction:column;gap:0;box-shadow:var(--shadow-lg);z-index:1000}.persona-selector:where(.astro-3jnlcb6b):hover .persona-menu:where(.astro-3jnlcb6b){display:flex}.persona-link:where(.astro-3jnlcb6b){display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);color:var(--color-text);text-decoration:none;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.persona-link:where(.astro-3jnlcb6b):hover{background:var(--color-gray-100);color:var(--fraise-500)}.github-link:where(.astro-3jnlcb6b){color:var(--color-text);transition:color var(--transition-fast)}.github-link:where(.astro-3jnlcb6b):hover{color:var(--fraise-500)}.mobile-menu-btn:where(.astro-3jnlcb6b){display:none;flex-direction:column;background:none;border:none;cursor:pointer;gap:4px;padding:var(--spacing-2)}.mobile-menu-btn:where(.astro-3jnlcb6b) span:where(.astro-3jnlcb6b){width:24px;height:2px;background:var(--color-text);border-radius:1px;transition:all var(--transition-fast)}@media(min-width:769px){.navbar-menu:where(.astro-3jnlcb6b){display:block}}@media(max-width:768px){.mobile-menu-btn:where(.astro-3jnlcb6b){display:flex}.navbar-container:where(.astro-3jnlcb6b){padding:0 var(--spacing-4)}.persona-menu:where(.astro-3jnlcb6b){right:auto;left:0}}.footer:where(.astro-yyiefoc7){background:var(--color-gray-50);border-top:1px solid var(--color-border);margin-top:var(--spacing-32);color:var(--color-text)}.footer-container:where(.astro-yyiefoc7){max-width:1280px;margin:0 auto;padding:var(--spacing-16) var(--spacing-6);display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:var(--spacing-8)}.footer-brand:where(.astro-yyiefoc7){padding-right:var(--spacing-4)}.brand-title:where(.astro-yyiefoc7){margin:0 0 var(--spacing-3) 0;font-size:var(--text-xl);color:var(--fraise-500)}.brand-description:where(.astro-yyiefoc7){font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin:0 0 var(--spacing-4) 0}.social-links:where(.astro-yyiefoc7){display:flex;gap:var(--spacing-3)}.social-link:where(.astro-yyiefoc7){display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:#fff;color:var(--color-text);border:1px solid var(--color-border);transition:all var(--transition-fast)}.social-link:where(.astro-yyiefoc7):hover{background:var(--fraise-500);color:#fff;border-color:var(--fraise-500)}.footer-section:where(.astro-yyiefoc7){display:flex;flex-direction:column}.footer-section-title:where(.astro-yyiefoc7){margin:0 0 var(--spacing-3) 0;font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.footer-links:where(.astro-yyiefoc7){list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-2)}.footer-link:where(.astro-yyiefoc7){color:var(--color-text-muted);text-decoration:none;font-size:var(--text-sm);transition:color var(--transition-fast);display:flex;align-items:center;gap:var(--spacing-2)}.footer-link:where(.astro-yyiefoc7):hover{color:var(--fraise-500)}.external-icon:where(.astro-yyiefoc7){font-size:.75em;opacity:.6}.footer-bottom:where(.astro-yyiefoc7){max-width:1280px;margin:0 auto;padding:var(--spacing-6);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm);color:var(--color-text-muted)}.footer-copyright:where(.astro-yyiefoc7){margin:0}.footer-badges:where(.astro-yyiefoc7){display:flex;gap:var(--spacing-3)}.badge:where(.astro-yyiefoc7){display:inline-block;padding:var(--spacing-1) var(--spacing-3);background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.75rem;font-weight:600;color:var(--fraise-500)}@media(max-width:1024px){.footer-container:where(.astro-yyiefoc7){grid-template-columns:repeat(3,1fr)}.footer-brand:where(.astro-yyiefoc7){grid-column:1 / -1;padding-right:0}}@media(max-width:640px){.footer-container:where(.astro-yyiefoc7){grid-template-columns:repeat(2,1fr);gap:var(--spacing-6);padding:var(--spacing-8) var(--spacing-4)}.footer-bottom:where(.astro-yyiefoc7){flex-direction:column;gap:var(--spacing-4);text-align:center}.footer-badges:where(.astro-yyiefoc7){justify-content:center;flex-wrap:wrap}}:root{--fraise-50: #fff5f5;--fraise-100: #ffe3e3;--fraise-200: #ffc9c9;--fraise-300: #ffa8a8;--fraise-400: #ff8787;--fraise-500: #e03131;--fraise-600: #c92a2a;--fraise-700: #a51d1d;--fraise-800: #7a1616;--fraise-900: #5c1010;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-gray-950: #030712;--color-primary: var(--fraise-500);--color-primary-dark: var(--fraise-700);--color-secondary: var(--color-gray-800);--color-background: white;--color-surface: var(--color-gray-50);--color-border: var(--color-gray-200);--color-text: var(--color-gray-900);--color-text-muted: var(--color-gray-600);--color-text-light: var(--color-gray-500);--gradient-hero: linear-gradient(90deg, #e03131 0%, #ff6b6b 100%);--gradient-subtle: linear-gradient(135deg, #fff5f5 0%, #fff 100%);--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Fira Code", monospace;--spacing-0: 0;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-20: 5rem;--spacing-24: 6rem;--spacing-32: 8rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--shadow-subtle: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 48px;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--code-bg: #1e1e1e;--code-fg: #d4d4d4}html{font-size:16px;scroll-behavior:smooth}body{margin:0;padding:0;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-background);line-height:var(--leading-normal)}:focus-visible{outline:2px solid var(--fraise-500);outline-offset:2px}::selection{background-color:var(--fraise-500);color:#fff}h1{font-size:var(--text-5xl);font-weight:700;line-height:var(--leading-tight);margin:var(--spacing-8) 0 var(--spacing-6) 0}h2{font-size:var(--text-4xl);font-weight:700;line-height:var(--leading-tight);margin:var(--spacing-8) 0 var(--spacing-4) 0}h3{font-size:var(--text-2xl);font-weight:600;line-height:var(--leading-tight);margin:var(--spacing-6) 0 var(--spacing-3) 0}h4{font-size:var(--text-lg);font-weight:600;line-height:var(--leading-normal);margin:var(--spacing-4) 0 var(--spacing-2) 0}p{margin:0 0 var(--spacing-4) 0;line-height:var(--leading-relaxed)}a{color:var(--fraise-500);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--fraise-700);text-decoration:underline}a:focus-visible{outline:2px solid var(--fraise-500);outline-offset:2px;border-radius:var(--radius-sm)}code{font-family:var(--font-mono);font-size:.875em;background-color:var(--color-gray-100);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);color:var(--fraise-700)}pre{background-color:var(--code-bg);color:var(--code-fg);padding:var(--spacing-4);border-radius:var(--radius-lg);overflow-x:auto;font-family:var(--font-mono);font-size:.875rem;line-height:var(--leading-relaxed);margin:var(--spacing-4) 0;box-shadow:var(--shadow-md);white-space:pre}pre code{background-color:transparent;color:inherit;padding:0;border-radius:0}ul,ol{margin:var(--spacing-4) 0;padding-left:var(--spacing-6)}li{margin-bottom:var(--spacing-2)}.card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.btn{display:inline-block;padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);border:none}.btn-primary{background-color:var(--fraise-500);color:#fff}.btn-primary:hover{background-color:var(--fraise-700);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--color-gray-100);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-gray-200)}.grid{display:grid;gap:var(--spacing-6)}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}@media(max-width:768px){.grid-cols-2{grid-template-columns:1fr}.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 var(--spacing-6)}@media(max-width:768px){.container{padding:0 var(--spacing-4)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.gradient-hero{background:var(--gradient-hero)}.text-gradient{background:var(--gradient-hero);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#f92672}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a6e22e}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#f8f8f2}.token.atrule,.token.keyword{color:#66d9ef}.token.function,.token.class-name{color:#e6db74}.token.regex,.token.important,.token.variable{color:#fd971f}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.language-graphql .token.field{color:#61dafb;font-weight:500}.language-graphql .token.punctuation{color:#f8f8f2;opacity:.8}.language-sql .token.keyword{color:#ff79c6;font-weight:600}.language-sql .token.identifier{color:#8be9fd;font-weight:500}main{min-height:calc(100vh - 200px)}
