.github-surface{--gh-ink:#352244;--gh-muted:#655870;--gh-paper:#f8f4ed;--gh-line:#ddd4e2;--gh-accent:#f5c242;background:var(--gh-paper);color:var(--gh-ink);font-size:16px;line-height:1.7;min-height:100vh}.github-surface ::selection{background:#eed688;color:#251235}.github-surface :focus-visible{outline:3px solid #8260aa;outline-offset:4px}.github-surface button,.github-surface input,.github-surface select{font:inherit}.github-surface a,.github-surface button,.github-surface select{touch-action:manipulation}.github-surface button{cursor:pointer}.github-surface button:disabled{cursor:default;opacity:.45}.github-surface input,.github-surface select{color-scheme:light}.github-container{max-width:1320px;margin:0 auto;padding-left:28px;padding-right:28px}.github-header{background:#291343;color:#fff;padding:82px 28px 28px}.github-subnav{max-width:1264px;margin:0 auto;display:flex;gap:24px;justify-content:space-between;align-items:center;border-bottom:1px solid #60486e;padding:8px 0 12px}.github-subnav>a{display:flex;align-items:center;gap:10px;font-weight:700;flex-shrink:0}.github-subnav>div{display:flex;gap:24px;flex-wrap:wrap}.github-subnav a{min-height:44px;display:inline-flex;align-items:center;color:#e6dfee;font-size:14px}.github-subnav a:hover{color:var(--gh-accent)}.github-heading{max-width:1264px;margin:22px auto 0}.github-heading h1{font-size:clamp(30px,3.4vw,42px);font-weight:750;line-height:1.2;letter-spacing:-.035em;text-wrap:balance}.github-heading p{max-width:760px;color:#d9d2e9;margin-top:12px;line-height:1.9}.github-intro{display:grid;grid-template-columns:1fr 1.1fr;gap:32px;align-items:center;margin-top:24px}.github-intro h2{font-size:24px;line-height:1.5;font-weight:700}.github-intro p{color:var(--gh-muted);margin:12px 0 0;max-width:65ch}.github-source-status{border:1px solid var(--gh-line);padding:14px 20px;border-radius:12px;font-size:13px}.github-source-status strong{display:block;margin-bottom:7px}.github-source-status a{display:inline-flex;min-height:44px;align-items:center;text-decoration:underline;text-underline-offset:4px}.github-directory{padding-top:34px;padding-bottom:48px;scroll-margin-top:100px}.github-search{gap:14px;background:#fff;border:1px solid #bcb0c6;border-radius:12px;padding:8px 8px 8px 20px;margin-bottom:30px}.github-search,.github-search label{display:flex;align-items:center}.github-search input{width:100%;min-width:0;min-height:48px;background:none;border:0;outline:none!important;caret-color:#724790}.github-search:focus-within{outline:3px solid #8260aa;outline-offset:3px}.github-button,.github-search button{background:#352244;color:#fff;border-radius:8px;padding:12px 18px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;font-weight:600}.github-directory-grid{display:grid;grid-template-columns:206px minmax(0,1fr);gap:32px}.github-filters h2{font-size:15px;font-weight:700;margin-bottom:12px}.github-filter-body{position:sticky;top:94px;max-height:calc(100vh - 114px);overflow-y:auto;padding-right:12px;scrollbar-color:#bca8ca transparent;scrollbar-width:thin}.github-filter-body>button{display:flex;justify-content:space-between;align-items:center;text-align:left;width:100%;gap:8px;min-height:44px;padding:7px 10px;font-size:14px;border-radius:6px}.github-filter-body>button>span{font-variant-numeric:tabular-nums;color:var(--gh-muted);font-size:12px}.github-filter-body>button:hover{background:#eae2ee}.github-filter-body>button.is-active{background:#352244;color:#fff}.github-filter-body>button.is-active>span{color:#e4d8ee}.github-filter-body>a{font-size:13px;text-decoration:underline;display:flex;min-height:48px;align-items:center}.github-mobile-filter{display:none}.github-result-heading{display:flex;gap:16px;justify-content:space-between;align-items:baseline;margin-bottom:16px}.github-result-heading h2{font-weight:700;font-size:22px;line-height:1.4}.github-result-heading p{font-size:13px;white-space:nowrap;color:var(--gh-muted)}.github-filter-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.github-filter-controls label{font-size:12px;color:var(--gh-muted)}.github-filter-controls select{display:block;width:100%;min-height:44px;margin-top:4px;border:1px solid #c8bccf;border-radius:6px;background:#fff;color:var(--gh-ink);padding:7px;font-size:13px}.github-filter-toggles{display:flex;gap:12px 20px;align-items:center;flex-wrap:wrap;margin:12px 0 22px;font-size:12px}.github-filter-toggles label{display:flex;gap:7px;align-items:center;min-height:40px}.github-filter-toggles input{width:16px;height:16px;accent-color:#624078}.github-filter-toggles button{min-height:40px;text-decoration:underline;text-underline-offset:4px}.github-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.github-project{min-width:0;background:#fff;border:1px solid var(--gh-line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.github-project-preview{display:block;background:#fff;aspect-ratio:2/1;overflow:hidden;border-bottom:1px solid #eee8f1}.github-project-preview img{width:100%;height:100%;object-fit:contain;color:var(--gh-muted);font-size:12px}.github-project-content{padding:18px;display:flex;flex:1;flex-direction:column}.github-project-meta{display:flex;gap:8px;justify-content:space-between;color:#675373;font-size:11px;line-height:1.5;margin-bottom:10px}.github-project-meta>span:last-child{display:flex;align-items:center;gap:4px;white-space:nowrap;font-variant-numeric:tabular-nums}.github-project h3{font-weight:700;font-size:18px;line-height:1.4;overflow-wrap:anywhere}.github-project h3 a{display:flex;justify-content:space-between;gap:8px}.github-project h3 svg{flex-shrink:0;margin-top:4px}.github-repo-id{font-size:11px;color:var(--gh-muted);overflow-wrap:anywhere;margin:6px 0 12px}.github-project-description{font-size:13px;line-height:1.8;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:16px}.github-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;margin-bottom:12px}.github-tags span{background:#f4eef6;color:#604b6e;padding:3px 6px;border-radius:4px;font-size:10px;overflow-wrap:anywhere}.github-project-actions{border-top:1px solid #e9e2ed;display:flex;gap:12px;font-size:11px;align-items:center;padding-top:8px}.github-project-actions a{margin-right:auto;min-height:36px;display:flex;align-items:center;font-weight:600}.github-project-actions button{min-height:36px;flex-shrink:0}.github-project-actions button[aria-pressed=true]{color:#68458a;font-weight:700}.github-pagination{display:flex;justify-content:center;gap:20px;align-items:center;margin-top:35px;font-size:14px}.github-pagination button{padding:9px 14px;border:1px solid #bfb0c9;border-radius:7px;min-height:44px}.github-empty{padding:60px 25px;text-align:center;background:#fff}.github-empty h3{font-size:22px;font-weight:700}.github-empty p{margin:14px auto;max-width:65ch;color:var(--gh-muted)}.github-empty button{text-decoration:underline;min-height:44px}.github-notice{font-size:13px;color:#594168;min-height:26px;margin-top:12px}.github-compare-tray{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:80;background:#352244;color:#fff;padding:12px 18px;border-radius:12px;display:flex;gap:25px;align-items:center;box-shadow:0 8px 24px #26143633;max-width:calc(100% - 32px);font-size:14px;white-space:nowrap}.github-compare-tray a{background:var(--gh-accent);color:#352244;padding:8px 12px;border-radius:6px;font-weight:700}.github-compare-tray button{min-height:44px;min-width:32px}.github-bottom{border-top:1px solid var(--gh-line);max-width:1264px;margin:0 auto;padding:35px 0;display:flex;justify-content:space-between;gap:24px;font-size:14px}.github-bottom>div{display:flex;gap:16px;align-items:center}.github-bottom span{display:block;font-size:12px;color:var(--gh-muted)}.github-bottom>a{display:flex;align-items:center;gap:8px;min-height:44px}.github-section{padding-top:44px;padding-bottom:44px}.github-section h2{font-size:26px;line-height:1.4;font-weight:700;margin:0 0 20px}.github-section p{max-width:75ch}.github-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}.github-tile{border-bottom:1px solid var(--gh-line);padding:24px 0;min-width:0}.github-tile h2,.github-tile h3{font-size:20px;margin:0 0 8px;font-weight:700}.github-tile p{color:var(--gh-muted);font-size:14px}.github-tile a{display:flex;align-items:center;gap:8px;min-height:44px;margin-top:10px;font-size:14px;font-weight:600}.github-tile small{color:var(--gh-muted)}.github-rank-tabs{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.github-rank-tabs a{padding:10px 20px;border:1px solid #c3b4cb;border-radius:8px;min-height:44px}.github-rank-tabs a[aria-current=page]{background:#352244;color:#fff}.github-table-wrap{overflow-x:auto}.github-table{width:100%;border-collapse:collapse;background:#fff;font-size:14px}.github-table td,.github-table th{text-align:left;border-bottom:1px solid var(--gh-line);padding:18px 20px;vertical-align:top}.github-table th{background:#eee6f2;font-size:12px;color:#604b6e;font-weight:600}.github-ranking-table td:nth-child(3),.github-ranking-table td:nth-child(4){font-variant-numeric:tabular-nums;white-space:nowrap}.github-table a{display:inline-flex;min-height:35px;align-items:center;gap:6px;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.github-table small{display:block;font-size:12px;color:var(--gh-muted);max-width:550px}.github-table .github-gain{color:#247144;font-weight:700}.github-data-note{font-size:13px;line-height:1.9;color:var(--gh-muted);margin:20px 0}.github-data-note a{text-decoration:underline;text-underline-offset:3px}.github-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px}.github-detail-image{aspect-ratio:2/1;background:#fff;border:1px solid var(--gh-line);border-radius:12px;width:100%;object-fit:contain}.github-detail figcaption{font-size:12px;color:var(--gh-muted);margin:8px 0 28px}.github-detail h2{margin-top:35px}.github-detail h3{font-size:18px;font-weight:650;margin:18px 0 10px}.github-detail p{margin:14px 0;overflow-wrap:anywhere}.github-detail ol,.github-detail ul,.github-prose ul{padding-left:24px;list-style:disc;line-height:2}.github-detail ol{list-style:decimal}.github-detail a,.github-prose a{color:#65417c;text-decoration:underline;text-underline-offset:4px}.github-facts{border-top:1px solid var(--gh-line);font-size:14px}.github-facts>div{padding:13px 0;border-bottom:1px solid var(--gh-line)}.github-facts dt{color:var(--gh-muted);font-size:12px}.github-facts dd{overflow-wrap:anywhere}.github-detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.github-detail-actions a{min-height:44px;padding:9px 15px;border:1px solid #b3a2bf;border-radius:6px;font-size:14px;text-decoration:none}.github-detail-actions a:first-child{background:#352244;color:#fff}.github-prose{max-width:850px}.github-prose h2{margin-top:38px}.github-prose p{margin:16px 0;color:#5a4868;line-height:1.95}.github-updated{font-size:13px;color:var(--gh-muted)}@media(min-width:1500px){.github-container{max-width:1440px}.github-heading,.github-subnav{max-width:1384px}}@media(max-width:1150px){.github-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.github-directory-grid{grid-template-columns:185px minmax(0,1fr);gap:24px}.github-filter-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.github-header{padding-top:130px}.github-detail{grid-template-columns:minmax(0,1fr) 250px;gap:30px}}@media(max-width:760px){.github-container{padding-left:18px;padding-right:18px}.github-header{padding:124px 18px 30px}.github-subnav{display:block;padding-top:8px}.github-subnav>div{gap:2px 17px;margin-top:6px}.github-heading{margin-top:25px}.github-heading h1{font-size:32px;line-height:1.35}.github-heading p{font-size:14px;margin-top:14px}.github-intro{grid-template-columns:1fr;gap:20px;margin-top:25px}.github-intro h2{font-size:21px}.github-intro p{font-size:14px}.github-directory{padding-top:24px}.github-directory-grid{display:block}.github-mobile-filter{display:flex;gap:8px;align-items:center;min-height:48px;font-size:14px;font-weight:650;width:100%;border-bottom:1px solid var(--gh-line);margin-bottom:20px}.github-filter-body{display:none;position:static;max-height:340px;margin-bottom:24px}.github-filter-body.is-open,.github-result-heading{display:block}.github-result-heading h2{font-size:21px}.github-result-heading p{margin-top:5px}.github-search{padding-left:12px;gap:8px;margin-bottom:16px}.github-search input{font-size:13px}.github-search button{font-size:12px;padding:12px}.github-search button svg{display:none}.github-project-grid{gap:14px}.github-project-content{padding:13px}.github-project h3{font-size:16px}.github-project-meta{font-size:10px}.github-project-actions{gap:8px;flex-wrap:wrap}.github-project-actions a{width:100%;min-height:30px}.github-project-description{font-size:12px;-webkit-line-clamp:4}.github-tags span{font-size:9px}.github-bottom{margin:0 18px;display:block}.github-bottom>a{margin-top:15px}.github-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.github-tile h2,.github-tile h3{font-size:18px}.github-detail{display:flex;flex-direction:column}.github-detail aside{order:-1}.github-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.github-table td,.github-table th{padding:13px 10px}.github-table{font-size:12px;min-width:600px}.github-section{padding-top:30px;padding-bottom:30px}.github-section h2{font-size:23px}.github-rank-tabs{gap:8px}.github-rank-tabs a{font-size:13px;padding:9px 12px}}@media(max-width:420px){.github-project-grid{grid-template-columns:1fr}.github-project-preview{aspect-ratio:2.4/1}.github-project-actions a{width:auto}.github-tiles{grid-template-columns:1fr}.github-compare-tray{gap:12px;font-size:12px}.github-search input{font-size:12px}}@media(prefers-reduced-motion:reduce){.github-surface *{scroll-behavior:auto!important;transition:none!important}}.github-tile-image{width:100%;aspect-ratio:2.2/1;object-fit:contain;background:#fff;border:1px solid var(--gh-line);border-radius:10px;margin-bottom:16px}.github-owner-avatar{object-fit:contain!important;padding:22px;background:#fff}.github-image-unavailable{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;padding:20px;overflow-wrap:anywhere}.github-source-line{font-size:12px;color:var(--gh-muted);padding-top:18px}.github-source-line a{text-decoration:underline;text-underline-offset:3px}.github-source-line+.github-directory{padding-top:18px}@media(max-width:760px){.github-filter-controls,.github-filter-toggles{display:none}.github-filters-open .github-filter-controls{display:grid}.github-filters-open .github-filter-toggles{display:flex}.github-source-line{font-size:11px}.github-header{padding-bottom:22px}.github-heading h1{font-size:30px}.github-source-line+.github-directory{padding-top:16px}}.github-search input::placeholder{color:var(--gh-muted);opacity:1}.github-compare-table{table-layout:fixed;min-width:720px}.github-compare-table th:first-child{width:150px}.github-compare-table td{white-space:normal;overflow-wrap:anywhere}