@import url("https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap");:root{--font-sans:"Geist",system-ui,sans-serif;--font-mono:"Geist Mono",ui-monospace,monospace;--color-bg:#09090b;--color-surface:#18181b;--color-surface-2:#1f1f23;--color-border:#27272a;--color-border-2:#3f3f46;--color-dim:#52525b;--color-muted:#a1a1aa;--color-text:#fafafa;--color-accent:#dc143c;--color-accent-dim:#7f0a22;--color-success:#22c55e;--color-warning:#f59e0b;--color-error:#ef4444}html{font-family:var(--font-sans)}html:not(.dark){--nextra-bg:var(--color-bg)!important}html.dark{--nextra-bg:var(--color-bg)}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans)}:root,html.dark{--nextra-primary-hue:348;--nextra-primary-saturation:83%}code,kbd,pre{font-family:var(--font-mono)}.cyclemetry-navbar-logo{align-items:center;display:flex;font-weight:600;gap:.5rem}.cyclemetry-navbar-logo-mark{display:block;flex:0 0 auto;height:1.5rem;width:1.5rem}.cyclemetry-navbar-link{font-size:.875rem;order:1}.cyclemetry-github-link,.cyclemetry-navbar-link{color:var(--color-muted);text-decoration:none;transition:color .15s ease;white-space:nowrap}.cyclemetry-github-link{align-items:center;display:inline-flex;gap:.35rem;line-height:1;order:3}.cyclemetry-github-icon{height:1.5rem;width:1.5rem}.cyclemetry-github-stars{font-family:var(--font-mono);font-size:.75rem;font-weight:600}.nextra-navbar nav>div:has(.nextra-search){order:2}.nextra-navbar nav>a[href^="https://github.com/"]{order:3}.nextra-navbar .nextra-hamburger{order:4}@media (hover:hover) and (pointer:fine){.cyclemetry-github-link:hover,.cyclemetry-navbar-link:hover{color:var(--color-text)}}.blog-meta{font-family:var(--font-mono);font-size:.8rem;color:var(--color-muted);letter-spacing:.02em;margin-bottom:1.5rem}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px;margin:1.5rem 0}.feature-card{align-items:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;display:flex;gap:14px;padding:16px;transition:background-color .18s cubic-bezier(.23,1,.32,1),border-color .18s cubic-bezier(.23,1,.32,1)}@media (hover:hover) and (pointer:fine){.feature-card:hover{background-color:var(--color-surface-2);border-color:var(--color-border-2)}}.feature-card-icon{color:var(--color-accent);flex:0 0 auto;margin-top:1px}.feature-card-icon svg{width:1.25rem;height:1.25rem}.feature-card-body{display:flex;flex-direction:column;gap:4px}.feature-card-title{color:var(--color-text);font-size:.95rem;font-weight:600;letter-spacing:-.01em;line-height:1.2}.feature-card-desc{color:var(--color-muted);font-size:.85rem;line-height:1.55}.showcase-page{margin:0 auto;padding:3rem 0 4.5rem;width:100%}.showcase-page-wide{max-width:72rem}.showcase-page-narrow{max-width:46rem}.showcase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));grid-gap:18px;gap:18px;margin:2rem 0}.showcase-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;transition:background-color .18s cubic-bezier(.23,1,.32,1),border-color .18s cubic-bezier(.23,1,.32,1),transform .16s cubic-bezier(.23,1,.32,1)}@media (hover:hover) and (pointer:fine){.showcase-card:hover{background-color:var(--color-surface-2);border-color:var(--color-border-2);transform:translateY(-2px)}}.showcase-card-video{position:relative;width:100%;padding-top:56.25%;background:#050506}.showcase-card-video img{border:0;display:block;height:100%;object-fit:cover;position:absolute;width:100%;top:0;left:0}.showcase-card-video a{display:block}.showcase-play-icon{align-items:center;background:rgba(0,0,0,.72);border-radius:50%;color:#fff;display:flex;height:3rem;justify-content:center;opacity:0;position:absolute;top:50%;transition:opacity .15s ease-out;width:3rem;transform:translate(-50%,-50%);left:50%}@media (hover:hover) and (pointer:fine){.showcase-card-video a:hover .showcase-play-icon{opacity:1}}.showcase-card-info{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px}.showcase-card-title{color:var(--color-text);font-size:.9rem;font-weight:600;line-height:1.3}.showcase-card-author{color:var(--color-muted);font-size:.8rem;line-height:1.3}.showcase-submit{color:var(--color-muted);font-size:.95rem;margin:1.5rem 0}.showcase-content a,.showcase-submit a{color:var(--color-accent);font-weight:600;text-decoration:none;transition:opacity .15s ease}@media (hover:hover) and (pointer:fine){.showcase-content a:hover,.showcase-submit a:hover{opacity:.8}}.showcase-submit-panel{align-items:center;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0)),var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:flex;gap:1.25rem;justify-content:space-between;margin:2.25rem 0 0;padding:18px}.showcase-submit-panel h2{color:var(--color-text);font-size:1.05rem;font-weight:650;letter-spacing:0;line-height:1.25;margin:0 0 .35rem}.showcase-submit-panel p{color:var(--color-muted);font-size:.9rem;line-height:1.5;margin:0}.showcase-submit-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.625rem}.showcase-button{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);display:inline-flex;gap:.5rem;font-size:.9rem;font-weight:600;line-height:1;min-height:2.5rem;padding:.7rem .95rem;text-decoration:none;transition:background-color .18s cubic-bezier(.23,1,.32,1),border-color .18s cubic-bezier(.23,1,.32,1),transform .16s cubic-bezier(.23,1,.32,1)}.showcase-button-primary{border-color:rgba(220,20,60,.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.showcase-button:active{transform:scale(.98)}@media (hover:hover) and (pointer:fine){.showcase-button:hover{background-color:var(--color-surface-2);border-color:var(--color-border-2);color:var(--color-text);opacity:1;transform:translateY(-1px)}.showcase-button-primary:hover{border-color:var(--color-accent)}}.showcase-button svg{color:var(--color-accent);flex:0 0 auto}.showcase-hero{margin-bottom:2.25rem;max-width:52rem}.showcase-hero-kicker{color:var(--color-accent);font-family:var(--font-mono);font-size:.8rem;font-weight:600;letter-spacing:.1em;margin-bottom:.75rem;text-transform:uppercase}.showcase-hero-title{color:var(--color-text);font-size:clamp(2.25rem,5vw,3.65rem);font-weight:700;letter-spacing:0;line-height:1.1;margin:0 0 .75rem}.showcase-hero-desc{color:var(--color-muted);font-size:1.05rem;line-height:1.6;max-width:48rem}.showcase-content{max-width:100%}.showcase-content h2{color:var(--color-text);font-size:1.35rem;font-weight:600;letter-spacing:-.01em;margin:2.25rem 0 .75rem}.showcase-content h2:first-child{margin-top:0}.showcase-content ol,.showcase-content p,.showcase-content ul{color:var(--color-muted);font-size:.95rem;line-height:1.65;margin:0 0 1rem}.showcase-content li{margin-bottom:.5rem}.showcase-content code{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;font-family:var(--font-mono);font-size:.85rem;padding:2px 6px}.showcase-code-block{background:#0d0d10;border:1px solid var(--color-border);border-radius:8px;margin:1rem 0 1.5rem;overflow-x:auto;padding:1rem}.showcase-code-block code{background:none;border:none;font-family:var(--font-mono);font-size:.875rem;padding:0}.showcase-steps{counter-reset:step;list-style:none;padding:0}.showcase-steps li{counter-increment:step;display:flex;gap:14px;margin-bottom:1rem}.showcase-steps li:before{background:rgba(220,20,60,.12);border:1px solid rgba(220,20,60,.45);border-radius:50%;color:var(--color-text);flex:0 0 auto;font-size:.75rem;font-weight:700;height:1.75rem;line-height:1.65rem;text-align:center;width:1.75rem;content:counter(step)}.showcase-steps li strong{color:var(--color-text)}.showcase-callout{align-items:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:flex;gap:12px;margin:2rem 0;padding:16px}.showcase-callout-icon{color:var(--color-accent);flex:0 0 auto;margin-top:1px}.showcase-callout-text{color:var(--color-muted);font-size:.9rem;line-height:1.6}.showcase-callout-text a{color:var(--color-accent);font-weight:600;text-decoration:none;transition:opacity .15s ease}@media (hover:hover) and (pointer:fine){.showcase-callout-text a:hover{opacity:.8}}.showcase-callout-text strong{color:var(--color-text)}.showcase-list{list-style:none;padding:0}.showcase-list li{padding-left:1.25rem;position:relative}.showcase-list li:before{color:var(--color-accent);content:"—";left:0;position:absolute}@media (max-width:400px){.showcase-page{padding-top:2rem}.showcase-submit-panel{align-items:stretch;flex-direction:column}}.install-download-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(13.75rem,1fr));margin:1.5rem 0 1rem}.install-download-button{align-items:center;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0)),var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);display:flex;gap:.875rem;justify-content:flex-start;line-height:1;min-height:5.25rem;padding:.95rem 1rem;text-decoration:none;transition:background-color .18s cubic-bezier(.23,1,.32,1),border-color .18s cubic-bezier(.23,1,.32,1),transform .16s cubic-bezier(.23,1,.32,1)}.install-download-button-primary,.install-download-button-recommended{border-color:rgba(220,20,60,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.install-download-button-inline{display:inline-flex;margin:.75rem 0 .5rem;min-height:4.6rem;min-width:min(100%,24rem);padding-inline:1.35rem}.install-download-icon{flex:0 0 auto;height:1.35rem;width:1.35rem}.install-download-icon-shell{align-items:center;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.075);border-radius:7px;color:var(--color-text);display:inline-flex;flex:0 0 auto;height:2.55rem;justify-content:center;width:2.55rem}.install-download-copy{display:flex;flex:1 1 auto;flex-direction:column;gap:.35rem;min-width:0}.install-download-title{color:var(--color-text);font-size:.95rem;font-weight:650;letter-spacing:0;line-height:1.2}.install-download-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:.45rem}.install-download-badge{background:rgba(220,20,60,.14);border:1px solid rgba(220,20,60,.34);border-radius:999px;color:color-mix(in srgb,var(--color-accent) 82%,white);flex:0 0 auto;font-size:.62rem;font-weight:700;letter-spacing:0;line-height:1;padding:.25rem .42rem;text-transform:uppercase}.install-download-subtitle{color:var(--color-muted);font-size:.78rem;font-weight:450;line-height:1.25}.install-download-arrow{flex:0 0 auto;height:1.2rem;margin-left:auto;opacity:.72;transition:opacity .18s cubic-bezier(.23,1,.32,1),transform .18s cubic-bezier(.23,1,.32,1);width:1.2rem}.install-download-note{color:var(--color-muted);font-size:.9rem;line-height:1.6;margin:0 0 2.5rem}.install-download-button:active{transform:scale(.985)}@media (hover:hover) and (pointer:fine){.install-download-button:hover{background-color:var(--color-surface-2);border-color:var(--color-border-2);color:var(--color-text);transform:translateY(-1px)}.install-download-button-primary:hover,.install-download-button-recommended:hover{border-color:var(--color-accent)}.install-download-button:hover .install-download-arrow{opacity:1;transform:translateX(2px)}}@media (max-width:860px){.install-download-grid{grid-template-columns:1fr}}@media (max-width:520px){.install-download-button{min-height:4.9rem;padding:.85rem}}.not-found-page{max-width:42rem;padding:4rem 1.5rem 6rem}.not-found-kicker{color:var(--color-accent);font-family:var(--font-mono);font-size:.875rem;font-weight:600;margin-bottom:.75rem;text-transform:uppercase}.not-found-page h1{color:var(--color-text);font-size:2.25rem;font-weight:700;line-height:1.1;margin:0 0 1rem}.not-found-page p{color:var(--color-muted);font-size:1rem;line-height:1.7;margin:0}.not-found-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}.not-found-actions a{border:1px solid var(--color-border-2);border-radius:6px;color:var(--color-text);font-size:.9rem;font-weight:600;padding:.55rem .85rem;text-decoration:none;transition:border-color .15s ease,color .15s ease}.not-found-actions a:hover{border-color:var(--color-accent);color:var(--color-accent)}