:root{--bg:#f8f9fb;--surface:#ffffff;--fg:#0f172a;--muted:#526077;--border:#e2e6ee;--accent:#2563eb;--accent-fg:#ffffff;--radius:0.5rem;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--ok:#15803d;--warn:#b45309;--exp:#7c3aed;--off:#64748b}@media(prefers-color-scheme:dark){:root{--bg:#0b0e14;--surface:#121722;--fg:#e6eaf2;--muted:#97a3b8;--border:#232a38;--accent:#60a5fa;--accent-fg:#0b0e14;--ok:#4ade80;--warn:#fbbf24;--exp:#c4b5fd;--off:#94a3b8}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--fg);font-family:var(--font);line-height:1.6}a{color:var(--accent);text-underline-offset:.2em}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:10;background:var(--surface);padding:.5rem 1rem}.wrap{width:100%;max-width:72rem;margin-inline:auto;padding-inline:max(1rem,env(safe-area-inset-left))max(1rem,env(safe-area-inset-right))}main.wrap{flex:1;padding-block:2rem 4rem}.site-header{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.5rem}.crumb{margin:0;font-family:var(--mono);font-size:.9rem;color:var(--muted)}.crumb a{color:var(--muted);text-decoration:none}.crumb a:hover{color:var(--fg)}.crumb .crumb__site{color:var(--accent);font-weight:700}.nav{display:flex;gap:.25rem;margin:0;padding:0;list-style:none}.nav a{display:block;padding:.6rem .75rem;border-radius:var(--radius);color:var(--muted);text-decoration:none;font-size:.95rem}.nav a:hover{color:var(--fg);background:var(--surface)}.nav a[aria-current=page]{color:var(--fg);font-weight:600}.site-footer{border-top:1px solid var(--border);color:var(--muted);font-size:.875rem;padding-bottom:env(safe-area-inset-bottom)}.site-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-block:1.5rem}.site-footer__links{display:flex;gap:1rem}.site-footer a{color:inherit}.hero{margin-bottom:2.5rem;max-width:42rem}.hero h1{margin:0;font-size:clamp(1.75rem,1.3rem + 2.2vw,2.75rem);line-height:1.15;letter-spacing:-.02em}.hero__lead,.hero__lead p{color:var(--muted);font-size:1.1rem}.hero__lead p{margin:.75rem 0 0}.eyebrow{margin:0 0 .5rem;font-family:var(--mono);font-size:.85rem;text-transform:lowercase}.eyebrow a{color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none}.chip{display:inline-flex;align-items:center;gap:.4em;padding:.15rem .55rem;border:1px solid var(--border);border-radius:999px;font-family:var(--mono);font-size:.8rem;color:var(--muted);background:var(--surface);text-decoration:none}.chip span{opacity:.7}.chips--links{margin-top:1.25rem}.chips--links .chip{min-height:2rem;padding-inline:.75rem}.chips--links .chip:hover{border-color:var(--accent);color:var(--accent)}.chips--large .chip{font-size:.95rem;min-height:2.75rem}.app-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr))}.app-card{position:relative;display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color 160ms ease}.app-card:hover{border-color:var(--accent)}.app-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.app-card__title{margin:0;font-family:var(--mono);font-size:1.05rem}.app-card__title a{color:var(--fg);text-decoration:none}.app-card__title a::after{content:"";position:absolute;inset:0;border-radius:inherit}.app-card__desc{margin:0;color:var(--muted);font-size:.95rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-card__foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto}.app-card__repo{position:relative;z-index:1;flex:none;padding:.5rem 0;font-family:var(--mono);font-size:.85rem}.empty{padding:3rem 1rem;border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);list-style:none}.status{flex:none;display:inline-flex;align-items:center;gap:.4em;font-family:var(--mono);font-size:.75rem;color:var(--muted)}.status::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}.status--active{color:var(--ok)}.status--maintenance{color:var(--warn)}.status--experimental{color:var(--exp)}.status--archived{color:var(--off)}.app{display:grid;gap:2rem;grid-template-areas:"head" "meta" "body"}.app__head{grid-area:head;max-width:42rem}.app__head h1{margin:0;font-family:var(--mono);font-size:clamp(1.75rem,1.3rem + 2.2vw,2.5rem);letter-spacing:-.02em}.app__lead{color:var(--muted);font-size:1.15rem;margin:.75rem 0 0}.app__meta{grid-area:meta}.app__body{grid-area:body}.app__meta dl{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 1rem;margin:0;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem}.app__meta dt{color:var(--muted);font-family:var(--mono);font-size:.8rem;padding-top:.15rem}.app__meta dd{margin:0}.app__meta .chips--links{margin:0}@media(min-width:64rem){.app{grid-template-columns:minmax(0,1fr)18rem;grid-template-areas:"head head" "body meta";column-gap:3rem}.app__meta{position:sticky;top:5rem;align-self:start}}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0 0}.button{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1.1rem;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--accent-fg);font-weight:600;text-decoration:none}.button--ghost{background:0 0;color:var(--accent)}.prose{max-width:42rem}.prose h2{margin-top:2.5rem;font-size:1.35rem}.prose h3{margin-top:2rem;font-size:1.1rem}.prose img{max-width:100%;height:auto;border-radius:var(--radius)}.prose code{font-family:var(--mono);font-size:.9em;padding:.1em .35em;border-radius:.25rem;background:var(--surface);border:1px solid var(--border)}.prose pre{overflow-x:auto;padding:1rem;border-radius:var(--radius);border:1px solid var(--border);font-size:.875rem;line-height:1.5}.prose pre code{padding:0;border:0;background:0 0}@media(prefers-reduced-motion:reduce){*{transition:none!important}}