.line-change-indicator{grid-template-columns:auto auto;justify-content:flex-end;height:1rem;font-size:.975rem;display:grid}.gh-activity{margin-inline:.25rem;font-size:.98765rem;position:relative;& .pr-diff-stats{text-align:right}&.added{color:#28a745}&.removed{color:#f85149}&.added:after{color:#28a745;background-color:#28a745}&.added:after,&.removed:before{content:"";width:4px;height:0;position:absolute;bottom:.5rem}&.removed:before{color:#f85149;background-color:#f85149}&:has(.activity-line:empty){display:none}& .activity-line{border-radius:4px;height:1rem;display:inline-block}}.contrib-grid{--oss-neon-cyan:hsl(var(--neon-cyan,180 100% 50%));--oss-neon-pink:hsl(var(--neon-pink,322 100% 72%));--oss-warm:#ffb86b;--oss-panel:#050c11d1;--oss-panel-strong:#081218f0;--oss-line:#f6fbff1f;--oss-line-muted:#f6fbff1a;--oss-text:#ffffffe6;--oss-muted:#ffffffa3;color:var(--oss-text);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;grid-auto-flow:row;justify-content:stretch;align-items:start;gap:calc(clamp(1rem,2vw,1.35rem));margin-block:1.5rem 2rem;display:grid;& p{color:var(--oss-muted)}}@media (width<=860px){.contrib-grid{grid-template-columns:1fr}}.repo-card{border:1px solid var(--oss-line);min-height:100%;color:var(--oss-text);font-family:var(--font-family,Raleway,Tahoma,Helvetica,sans-serif);perspective:1400px;background:linear-gradient(#0a161cbd,#03080cd1);border-radius:.35rem;grid-template-rows:auto auto auto auto;gap:.75rem;padding:calc(clamp(.75rem,1.6vw,1rem));transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff14,0 18px 40px #0000002e;&:after,&:before{content:"";pointer-events:none;position:absolute}&:before{background:linear-gradient(90deg,var(--oss-warm),transparent);opacity:.55;width:100%;height:1px;inset:0 auto auto 0}&:after{content:none}& :any-link{color:inherit;text-decoration:none;&:hover{text-decoration:underline}}}.repo-card:focus-within,.repo-card:hover{border-color:#ffb86b47;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff1a,0 20px 44px #00000038}.repo-card-github-header{color:#24292f;background:linear-gradient(#fffffffa,#f4f7f9f2);border:1px solid #d0d7de33;border-radius:.28rem;gap:.55rem;padding:.9rem 1rem .85rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;display:grid;box-shadow:inset 0 1px #fffc,0 8px 20px #01040921;& h2{color:#0969da;word-break:break-word;grid-template-columns:2rem 1fr;grid-auto-rows:auto;align-items:center;margin:0;line-height:1.25;display:grid;& :any-link{color:#0969da;font-weight:600}}}.repo-card-body-flip{min-height:10.5rem;transform-style:preserve-3d;border-left:1px solid #ffb86b6b;padding-left:1rem;transition:transform .42s cubic-bezier(.2,.7,.15,1);display:grid;position:relative}.repo-card.has-notes:hover .repo-card-body-flip{transform:rotateY(180deg)}.repo-card-body-face{-webkit-backface-visibility:hidden;backface-visibility:hidden;grid-area:1/1;align-content:start;min-height:10.5rem;display:grid}.repo-card-body-front{transform:rotateY(0)}.repo-card-body-back{border:1px solid var(--oss-line);background:linear-gradient(135deg,#ffb86b17,#28e8df0a 48%,transparent),var(--oss-panel-strong);border-radius:.28rem;align-content:start;gap:.75rem;padding:1rem;position:absolute;inset:0;overflow:auto;transform:rotateY(180deg)}.repo-card-back-label{border:1px solid var(--oss-line);width:fit-content;color:var(--oss-warm);text-transform:uppercase;letter-spacing:.06em;border-radius:.2rem;margin:0;padding:.28rem .5rem;font-size:.72rem;font-weight:800;line-height:1}.dan-notes{color:var(--oss-text);font-size:.92rem;line-height:1.48;& a{color:var(--oss-neon-cyan);font-weight:700}}.gh-icon{fill:currentColor;width:1.5rem;min-width:1rem;height:1.5rem;min-height:1rem;color:var(--clr-muted-500,#a6a6a6);background-position:50%;background-repeat:no-repeat;background-size:contain;margin-inline-end:.35rem;display:inline-block}.corner-stats{color:#57606a;cursor:default;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.45rem .85rem;font-size:.9rem;display:flex;& .gh-icon{margin-bottom:-.18rem;width:1.15rem;min-width:1.15rem;height:1.15rem;min-height:1.15rem;margin-inline:0 .25rem}& .icon-github-star{margin-inline:0 .2rem;margin-bottom:-.26rem;padding-inline:0}}.corner-stats .stat{white-space:nowrap;align-items:center;min-width:0;display:inline-flex}.last-pr-stat{color:#2f5eb8;letter-spacing:.01em;white-space:nowrap;font-size:.78rem;font-weight:800}.pull-requests-list{color:var(--oss-muted);flex-wrap:wrap;align-items:center;gap:.2rem;display:flex;& a{color:var(--oss-text);margin-inline:.12rem}}.repo-inner-card.description{color:#f6fbffc2;margin:0;font-size:.98rem;line-height:1.55}.pr-diff-stats,.repo-stats{border-top:1px solid var(--oss-line-muted);justify-content:space-between;align-items:center;min-width:0;padding-top:.75rem;font-size:.88rem;display:flex}.pr-diff-stats{border-top:0;justify-content:flex-end;padding-top:0}.repo-stats .gh-icon{filter:invert();opacity:.68}.icon-github-reviews{background-image:url("data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-file-pen\" viewBox=\"0 0 24 24\"><path d=\"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5\"/><path d=\"M14 2v4a2 2 0 0 0 2 2h4M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\"/></svg>")}.icon-github-file{background-image:url("data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"lucide lucide-files\" viewBox=\"0 0 24 24\"><path d=\"M20 7h-3a2 2 0 0 1-2-2V2\"/><path d=\"M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z\"/><path d=\"M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8\"/></svg>")}.icon-github-comment{background-image:url("data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" aria-hidden=\"true\" class=\"octicon octicon-comment v-align-middle\" data-view-component=\"true\" viewBox=\"0 0 16 16\"><path d=\"M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.75.75 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z\"/></svg>")}.icon-github-star{background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star-fill starred-button-icon d-inline-block mr-2\"><path d=\"M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Z\"></path></svg>")}.icon-github-octocat{background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" class=\"icon\"><path d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.01.08-2.1 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.09.16 1.9.08 2.1.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.74.54 1.49 0 1.08-.01 1.95-.01 2.22 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\" /></svg>")}.icon-github-issue{background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline\"><path d=\"M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path><path d=\"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z\"></path></svg>")}.icon-github-pull-request{background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline\"><path d=\"M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z\"></path></svg>")}.oss-controls{border-top:1px solid #f6fbff14;border-bottom:1px solid #f6fbff14;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-block:1rem 1.25rem;padding-block:.5rem .75rem;display:flex}.oss-control-group,.oss-filter-bar{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.oss-control-label{color:#ffffff80;letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:900;line-height:1}.oss-filter-chip,.oss-filter-clear,.oss-sort-button{min-height:2.15rem;font:inherit;cursor:pointer;border-radius:.28rem;font-size:.86rem;font-weight:600;line-height:1;transition:border-color .15s,background .15s,color .15s,box-shadow .15s,transform .15s}.oss-sort-button{color:#ffffffd1;background:#ffffff08;border:1px solid #7de9df3d;padding:.48rem .78rem}.oss-filter-chip:hover,.oss-sort-button:hover{color:#fff;box-shadow:none;border-color:#ffb86b99}.oss-sort-button[aria-pressed=true]{color:#fff;box-shadow:none;background:#ffb86b1a;border-color:#ffb86bbd}.oss-filter-chip{color:#ffffffd1;background:#ffffff08;border:1px solid #7de9df2e;align-items:center;gap:.48rem;padding:.42rem .52rem .42rem .72rem;display:inline-flex}.oss-filter-chip span{font-weight:700}.oss-filter-chip[aria-pressed=true]{color:#fff;background:#ffb86b1a;border-color:#ffb86b9e}.oss-filter-count{background:color-mix(in srgb,currentColor 10%,transparent);opacity:.82;border-radius:999px;place-items:center;min-width:1.35rem;height:1.35rem;font-size:.78rem;font-weight:900;display:inline-grid}.oss-filter-clear{color:#ffb86b;background:#ffffff08;border:1px solid #ffb86b99;align-items:center;padding:.48rem .72rem;display:inline-flex}.oss-filter-clear[hidden]{display:none}.oss-filter-clear:hover{color:#fff;background:#ffb86b24}.tech-tags{border-top:1px solid var(--oss-line-muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:1rem;margin-bottom:1rem;padding-top:.85rem;display:flex}.tech-tag{border:1px solid color-mix(in srgb,var(--tag-color) 48%,transparent);background:color-mix(in srgb,var(--tag-color) 12%,transparent);color:color-mix(in srgb,var(--tag-color) 54%,#fff);cursor:default;border-radius:.22rem;justify-content:center;align-items:center;gap:.35rem;padding:.3rem .48rem;font-size:.74rem;font-weight:800;line-height:1;display:inline-flex}.tech-tag-icon{background-color:var(--tag-color);opacity:.78;width:1rem;height:1rem;transition:opacity .2s,transform .2s;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.repo-card:hover .tech-tag{border-color:color-mix(in srgb,var(--tag-color) 76%,#fff)}.repo-card:hover .tech-tag-icon{opacity:1;transform:scale(1.08)}.tech-tag-label{color:inherit;display:inline-block}@media (prefers-reduced-motion:reduce){.oss-filter-chip,.oss-filter-clear,.oss-sort-button,.repo-card-body-flip,.tech-tag-icon{transition:none}.repo-card.has-notes:hover .repo-card-body-flip{transform:none}}.tech-icon-nodejs{-webkit-mask-image:url(/icons/tech/nodejs.svg);mask-image:url(/icons/tech/nodejs.svg)}.tech-icon-python{-webkit-mask-image:url(/icons/tech/python.svg);mask-image:url(/icons/tech/python.svg)}.tech-icon-postgresql{-webkit-mask-image:url(/icons/tech/postgresql.svg);mask-image:url(/icons/tech/postgresql.svg)}.tech-icon-docker{-webkit-mask-image:url(/icons/tech/docker.svg);mask-image:url(/icons/tech/docker.svg)}.tech-icon-typescript{-webkit-mask-image:url(/icons/tech/typescript.svg);mask-image:url(/icons/tech/typescript.svg)}.tech-icon-react{-webkit-mask-image:url(/icons/tech/react.svg);mask-image:url(/icons/tech/react.svg)}.tech-icon-ai{-webkit-mask-image:url(/icons/tech/anthropic.svg);mask-image:url(/icons/tech/anthropic.svg)}.tech-icon-testing{-webkit-mask-image:url(/icons/tech/vitest.svg);mask-image:url(/icons/tech/vitest.svg)}.tech-icon-rust{-webkit-mask-image:url(/icons/tech/rust.svg);mask-image:url(/icons/tech/rust.svg)}.tech-icon-ruby{-webkit-mask-image:url(/icons/tech/ruby.svg);mask-image:url(/icons/tech/ruby.svg)}.icon-github-eye{background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\" class=\"octicon octicon-eye\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"currentColor\" style=\"display: inline-block; user-select: none; vertical-align: text-bottom; overflow: visible;\"><path d=\"M8 2c1.981 0 3.671.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.62 1.62 0 0 1 0 1.798c-.45.678-1.367 1.932-2.637 3.023C11.67 13.008 9.981 14 8 14c-1.981 0-3.671-.992-4.933-2.078C1.797 10.83.88 9.576.43 8.898a1.62 1.62 0 0 1 0-1.798c.45-.677 1.367-1.931 2.637-3.022C4.33 2.992 6.019 2 8 2ZM1.679 7.932a.12.12 0 0 0 0 .136c.411.622 1.241 1.75 2.366 2.717C5.176 11.758 6.527 12.5 8 12.5c1.473 0 2.825-.742 3.955-1.715 1.124-.967 1.954-2.096 2.366-2.717a.12.12 0 0 0 0-.136c-.412-.621-1.242-1.75-2.366-2.717C10.824 4.242 9.473 3.5 8 3.5c-1.473 0-2.825.742-3.955 1.715-1.124.967-1.954 2.096-2.366 2.717ZM8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10Z\"></path></svg>")}main.open-source-journal-page{--oss-shell:calc(min(1180px, 100vw - 2rem));--oss-ink:#f6fbff;--oss-muted-copy:#f6fbffad;--oss-rule:#f6fbff1f;--oss-rust:#ffb86bdb;padding-bottom:calc(clamp(4rem,8vw,7rem));position:relative}main.open-source-journal-page:before{content:none}.oss-hero{margin-top:calc(clamp(1rem,4vw,2.5rem));margin-bottom:calc(clamp(1rem,3vw,2rem))}.oss-hero-inner{width:var(--oss-shell);grid-template-columns:minmax(0,1fr);gap:calc(clamp(1.25rem,3vw,2rem));margin-inline:auto;padding-block:calc(clamp(2rem,6vw,4.25rem)) calc(clamp(1rem,3vw,2rem));display:grid}.oss-eyebrow,.oss-kicker{color:var(--oss-rust);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .85rem;font-size:.78rem;font-weight:850;line-height:1}main.open-source-journal-page .oss-hero h1{max-width:12ch;color:var(--oss-ink);text-shadow:none;text-wrap:balance;margin:0;font-size:calc(clamp(2.8rem,8vw,5.8rem));font-weight:720;line-height:.98}main.open-source-journal-page .oss-hero h1:after{display:none}.oss-subtitle{max-width:42rem;color:var(--oss-muted-copy);margin:calc(clamp(1.1rem,3vw,1.7rem)) 0 0;font-size:calc(clamp(1rem,2vw,1.28rem));line-height:1.55}.oss-quote{color:#f6fbffb8;background:0 0;border:0;border-left:2px solid #ffb86b94;max-width:52rem;margin:0;padding:0 0 0 calc(clamp(.9rem,2vw,1.25rem));font-size:calc(clamp(1rem,1.7vw,1.18rem));line-height:1.6}.contrib-grid,.oss-controls,.oss-ledger{width:var(--oss-shell);margin-inline:auto}.oss-ledger{border-bottom:1px solid var(--oss-rule);color:var(--oss-muted-copy);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:.45rem 1rem;margin-block:0 .75rem;padding-block:0 1rem;font-size:.88rem;line-height:1.4;display:flex}.oss-ledger span:not(:last-child):after{content:"/";color:#f6fbff3d;margin-left:1rem}.oss-ledger span:has(+.oss-ledger-updated):after{content:none}.oss-ledger-updated{color:#f6fbff73;margin-left:auto;font-size:.82rem}.oss-ledger-updated:after{content:none}@media (width<=920px){.oss-hero-inner{grid-template-columns:1fr}}@media (width<=560px){main.open-source-journal-page{--oss-shell:min(100% - 1rem, 1180px)}.oss-ledger{grid-template-columns:1fr 1fr;gap:.25rem .75rem;display:grid}.oss-ledger span:not(:last-child):after{content:none}.oss-ledger-updated{grid-column:1/-1;margin-left:0}}
