@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;500;600;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;500;600;700&display=swap");:root{--convex-dark-blue:#0F206C;--convex-medium-blue:#416BA9;--convex-light-blue:#6AAAE4;--convex-sky-blue:#bBd7FF;--convex-white:#F5F7FD;--color-primary:var(--convex-dark-blue);--color-secondary:var(--convex-medium-blue);--color-accent:var(--convex-light-blue);--color-tint:var(--convex-sky-blue);--color-background:var(--convex-white);--color-text:var(--convex-dark-blue);--color-text-secondary:var(--convex-medium-blue);--color-background-system:#ffffff;--color-foreground-system:#000000;--color-border:var(--convex-medium-blue);--font-sans:"Source Sans 3",system-ui,-apple-system,sans-serif;--font-heading:"Inter",system-ui,-apple-system,sans-serif;--font-mono:"Space Mono",monospace;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--leading-tight:1.2;--leading-normal:1.3;--leading-relaxed:1.4;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--main-padding:0.5rem;--container-padding:1rem;--container-gap:1rem;font-size:12;--font-size-base:clamp(1rem,calc(0.7rem + 0.6vw),2rem);font-size:var(--font-size-base)}.dark{--color-primary:var(--convex-sky-blue);--color-secondary:var(--convex-medium-blue);--color-accent:var(--convex-light-blue);--color-tint:var(--convex-dark-blue);--color-background:#000000;--color-text:var(--convex-light-blue);--color-text-secondary:var(--convex-light-blue);--color-background-system:#000;--color-foreground-system:#fff}*{margin:0;padding:0;box-sizing:border-box;text-decoration:none}.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}html{background:var(--color-background);color:var(--color-text);font-family:var(--font-sans);line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{min-height:100vh}body{margin:0;display:flex;flex-direction:column;line-height:1.3}main{padding:var(--main-padding);flex:1;margin-left:auto;margin-right:auto;width:100%}@media (min-width:640px){.app-content{padding:0 1.5rem}}@media (min-width:1024px){.app-content{padding:0 2rem}}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word;text-wrap:pretty;text-wrap:balance}p+p,ul+p{margin-block-start:.5rem}h1,h2,h3,h4,h5,h6{color:var(--color-text);font-family:var(--font-heading);font-weight:700;line-height:var(--leading-tight);margin-bottom:var(--space-md)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}p{color:var(--color-text)}a{color:var(--color-secondary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-primary)}.nav-title{color:var(--color-text-secondary);text-decoration:none;transition:color .2s ease}.nav-title:hover{color:var(--color-primary)}ol,ul{padding-left:1.5rem}nav{justify-content:space-between;padding:var(--main-padding)}nav,nav>div{display:flex;align-items:center}nav>div{gap:var(--space-md);vertical-align:middle}nav .logo{display:block;height:auto;width:auto}.dark nav .logo{filter:invert(64%) sepia(35%) saturate(628%) hue-rotate(179deg) brightness(95%) contrast(92%)}button,input,select,textarea{font:inherit}.container{display:flex;flex-direction:column;max-width:56rem;gap:var(--space-md);margin-left:auto;margin-right:auto}.hero-section{text-align:center;margin-bottom:var(--space-md)}.hero-section h1{color:var(--color-primary)}.hero-section p{color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.button-group{display:flex;flex-direction:column;gap:var(--space-lg);justify-content:center}@media (min-width:640px){.button-group{flex-direction:row}}.button{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-md) var(--space-lg);border:1px solid transparent;font-size:var(--text-base);font-weight:500;border-radius:var(--radius-md);background:var(--convex-dark-blue);color:white;text-decoration:none;transition:all .2s ease}.button:hover{background:var(--color-secondary);color:white}.button img{margin-left:var(--space-sm)}.intro-text{font-size:var(--text-xl);margin-bottom:var(--space-xl)}.description-text,.intro-text,.role-text{color:var(--color-text-secondary)}.role-text{font-weight:500}.glass-effect{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}footer{background:linear-gradient(135deg,var(--convex-medium-blue) 0,#1a2d5a 100%);color:white;position:relative;overflow:hidden}footer>div{max-width:80rem;margin:0 auto;padding:var(--space-xl) var(--space-lg) var(--space-2xl);position:relative}@media (min-width:640px){footer>div>div{grid-template-columns:2fr 1fr 1fr;gap:var(--space-3xl)}}footer h3{color:var(--convex-white);font-size:var(--text-lg);position:relative}footer ul{display:flex;flex-direction:column;gap:var(--space-xs);margin:0;padding:0;list-style:none}footer ul li::marker{content:""}footer a{color:var(--convex-sky-blue);text-decoration:none;font-size:var(--text-sm);font-weight:400;transition:color .3s ease;display:inline-flex;align-items:center}footer a:hover{color:white}footer img{margin-left:var(--space-sm);opacity:.8;transition:opacity .3s ease}footer a:hover img{opacity:1}footer .footer-links{display:flex;flex-direction:column}@media (min-width:640px){footer .footer-links{flex-direction:row;gap:var(--space-2xl)}}.card{background:white;padding:var(--container-padding);border-radius:var(--radius-lg);box-shadow:0 1px 3px rgba(0,0,0,.1);border:1px solid var(--color-border);transition:all .3s ease}.card:hover{border-color:var(--color-secondary);box-shadow:0 4px 6px rgba(0,0,0,.1)}.card-links{margin-top:var(--space-sm);display:flex;flex-wrap:wrap;gap:var(--space-sm)}.card-link{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:var(--text-sm);color:var(--color-secondary);background-color:rgba(106,170,228,.12);border-radius:var(--radius-sm);transition:background-color .2s ease,color .2s ease}.card-link:hover{color:var(--color-primary);background-color:rgba(106,170,228,.2)}.dark .card{background:#111827;border-color:#374151;box-shadow:0 1px 3px rgba(0,0,0,.3)}.dark .card:hover{border-color:var(--color-secondary);box-shadow:0 4px 6px rgba(0,0,0,.4)}.dark .card-link{color:var(--convex-light-blue);background-color:rgba(65,107,169,.2)}.dark .card-link:hover{color:var(--convex-sky-blue);background-color:rgba(65,107,169,.3)}.slide{background-color:white;margin:var(--container-padding)}.auto-grid,.slide{padding:var(--container-padding)}.auto-grid{display:grid;gap:var(--container-gap);grid-template-columns:repeat(auto-fit,minmax(min(16rem,100%),1fr))}table{width:auto;margin:var(--container-padding);border-collapse:collapse}td,th{padding:.75rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-tint)}th{font-weight:600}tbody tr:hover,th{background-color:var(--color-background)}.tools-grid{display:grid;grid-template-columns:1fr;gap:var(--space-xl);padding:var(--container-padding)}@media (min-width:768px){.tools-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1200px){.tools-grid{grid-template-columns:repeat(3,1fr)}}.ecosystem-grid{display:grid;grid-template-columns:1fr;gap:var(--container-gap)}@media (min-width:768px){.ecosystem-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1200px){.ecosystem-grid{grid-template-columns:repeat(3,1fr)}}.tool-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-md)}.tool-header h3{color:var(--color-primary);font-size:var(--text-xl);font-weight:600;margin:0}.tool-icon{margin-left:var(--space-md)}.tool-footer{margin-top:var(--space-md);display:flex;align-items:center;color:var(--color-secondary);font-size:var(--text-sm)}.external-link-icon{margin-left:var(--space-xs)}.code-block{background:var(--color-background);color:var(--color-text);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);position:relative}.code-block pre{font-size:.875rem;line-height:1.5;white-space:pre-wrap;margin:0}.code-block pre,.code-text{font-family:var(--font-mono)}.code-text{font-size:var(--text-sm);color:var(--color-primary)}.code-block code{font-family:var(--font-mono);font-size:.875rem}.code-language{position:absolute;top:var(--space-xs);right:var(--space-sm);background:var(--color-primary);color:var(--color-tint);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-transform:uppercase}.code-section{margin-bottom:var(--space-lg)}.code-section h4{font-size:.875rem;font-weight:500;color:var(--color-primary);margin-bottom:var(--space-sm)}.method-badge{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-transform:uppercase}.method-get,.method-post{background:var(--color-background);color:var(--color-text)}.method-put{background:#fef3c7;color:#92400e}.method-delete{background:#fee2e2;color:#991b1b}.endpoint-path{font-family:var(--font-mono);color:inherit;background:transparent;font-size:.875rem}.endpoint-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-md)}.endpoint-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.endpoints-list{display:flex;flex-direction:column;gap:var(--space-xl)}.ecosystem-box,.ecosystem-box:hover{text-decoration:none}.color-mode-toggle{border:0;background:none;padding:var(--space-xs);color:var(--color-secondary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.color-mode-toggle:hover{color:var(--color-primary);border-color:var(--color-primary)}.dark .color-mode-toggle{border-color:var(--color-secondary);color:var(--color-secondary)}.dark .color-mode-toggle:hover{color:var(--convex-white);border-color:var(--convex-primary)}@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}