:root{--bg:#0f0e0c;--bg-soft:#17150f;--card:#1b1813;--card-hover:#221e17;--border:#2c271e;--border-soft:#241f18;--text:#ece6da;--muted:#a59c8a;--faint:#6f6857;--accent:#d97757;--accent-soft:#e89a80;--accent-bg:#d977571f;--radius:12px;--maxw:1120px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.55}a{color:inherit;text-decoration:none}a:hover{color:var(--accent-soft)}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.site-header{z-index:50;-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);border-bottom:1px solid var(--border);background:#0f0e0cd9;position:sticky;top:0}.site-header .row{align-items:center;gap:28px;height:60px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:9px;font-size:16px;font-weight:700;display:flex}.brand .dot{background:var(--accent);border-radius:3px;width:11px;height:11px;display:inline-block}.nav{color:var(--muted);gap:22px;font-size:14.5px;display:flex}.nav a.active,.nav a:hover{color:var(--text)}.nav-spacer{flex:1}.mobile-menu{display:none;position:relative}.hamburger{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:9px;width:40px;height:40px;font-size:18px;line-height:1}.hamburger:hover{border-color:var(--accent);color:var(--accent-soft)}.mobile-sheet{z-index:60;background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;min-width:200px;padding:8px;display:flex;position:absolute;top:48px;right:0;box-shadow:0 12px 40px #00000080}.mobile-sheet a{color:var(--text);border-radius:8px;padding:11px 14px;font-size:15px}.mobile-sheet a:hover{background:var(--card-hover);color:var(--accent-soft)}.hero{border-bottom:1px solid var(--border-soft);padding:64px 0 36px}.hero h1{letter-spacing:-.025em;max-width:760px;margin:0 0 14px;font-size:40px;line-height:1.12}.hero p{color:var(--muted);max-width:620px;margin:0;font-size:17.5px}.hero .accent{color:var(--accent)}.sect-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:28px 0;display:grid}.sect-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color .15s,background .15s;display:block}.sect-card:hover{border-color:var(--accent);background:var(--card-hover)}.sect-card .n{letter-spacing:-.02em;font-size:28px;font-weight:700}.sect-card .label{color:var(--muted);margin-top:2px;font-size:14.5px}.sect-card .desc{color:var(--faint);margin-top:8px;font-size:13px}.page-head{padding:40px 0 22px}.page-head h1{letter-spacing:-.02em;margin:0 0 6px;font-size:30px}.page-head p{color:var(--muted);margin:0}.crumbs{color:var(--faint);margin-bottom:14px;font-size:13px}.crumbs a:hover{color:var(--accent-soft)}.grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;min-height:132px;padding:18px;transition:border-color .15s,transform .12s;display:flex}.card:hover{border-color:var(--accent);transform:translateY(-1px)}.card-head{align-items:center;gap:11px;display:flex}.card-headtext{flex:1;min-width:0}.card-headtext .repo{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card .title{letter-spacing:-.01em;font-size:16px;font-weight:650}.card .title .name-ru{color:var(--muted);letter-spacing:0;font-size:13px;font-weight:400}.card .repo{font-family:var(--mono);color:var(--faint);font-size:12px}.card .desc{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;font-size:13.5px;display:-webkit-box;overflow:hidden}.card .meta{color:var(--faint);gap:14px;font-size:12.5px;display:flex}.card .meta b{color:var(--muted);font-weight:600}.chip{background:var(--accent-bg);color:var(--accent-soft);border:1px solid #0000;border-radius:20px;padding:3px 10px;font-size:12px;display:inline-block}.chip.kind{background:var(--bg-soft);color:var(--muted);border-color:var(--border);font-family:var(--mono)}.avatar{border:1px solid var(--border);border-radius:9px;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.avatar-mono{color:#fff;font-weight:700;line-height:1}.badge-official{letter-spacing:.02em;text-transform:uppercase;vertical-align:middle;background:var(--accent-bg);color:var(--accent-soft);border:1px solid #0000;border-radius:6px;margin-left:8px;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-block}.detail-head{align-items:center;gap:14px;margin-bottom:6px;display:flex}.detail-head .avatar{border-radius:12px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;display:flex}.catselect select{background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a59c8a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;border-radius:20px;outline:none;padding:7px 32px 7px 13px;font-size:13px}.catselect select:hover{border-color:var(--accent)}.filterchips{flex-wrap:wrap;gap:8px;margin:0;display:flex}.filterchips a{color:var(--muted);border:1px solid var(--border);background:var(--card);border-radius:20px;padding:6px 14px;font-size:13px;transition:border-color .15s,color .15s}.filterchips a:hover{border-color:var(--accent);color:var(--text)}.filterchips a.on{background:var(--accent);color:#1a120d;border-color:#0000;font-weight:600}.hero-search{margin-top:24px}.hero-search .searchbar{margin:0}.hero-search .searchbar input{max-width:560px;padding:13px 16px;font-size:15px}.cat-cloud{flex-wrap:wrap;gap:10px;display:flex}.cat-pill{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:22px;align-items:center;gap:8px;padding:9px 15px;font-size:14px;transition:border-color .15s,background .15s;display:inline-flex}.cat-pill:hover{border-color:var(--accent);background:var(--card-hover);color:var(--text)}.cat-pill span{color:var(--faint);font-variant-numeric:tabular-nums;font-size:12.5px}.searchbar{margin:6px 0 22px}.searchbar input{background:var(--bg-soft);border:1px solid var(--border);width:100%;max-width:460px;color:var(--text);border-radius:10px;outline:none;padding:11px 14px;font-size:14.5px}.searchbar input:focus{border-color:var(--accent)}.sorttabs{flex-wrap:wrap;gap:8px;margin:0 0 20px;display:flex}.sorttabs a{color:var(--muted);border:1px solid var(--border);background:var(--card);border-radius:20px;padding:6px 13px;font-size:13px}.sorttabs a:hover{border-color:var(--accent);color:var(--text)}.sorttabs a.on{background:var(--accent-bg);color:var(--accent-soft);border-color:#0000}.pager{color:var(--muted);justify-content:center;align-items:center;gap:10px;margin:32px 0;font-size:14px;display:flex}.pager a,.pager span.cur{border:1px solid var(--border);background:var(--card);border-radius:8px;padding:7px 14px}.pager a:hover{border-color:var(--accent)}.pager .disabled{opacity:.4;pointer-events:none}.detail{grid-template-columns:minmax(0,1fr) 300px;gap:40px;padding:34px 0 70px;display:grid}.detail h1{letter-spacing:-.02em;margin:0 0 8px;font-size:30px}.detail h1 .h1-subtitle{color:var(--muted);letter-spacing:0;margin-top:4px;font-size:16px;font-weight:400;display:block}.detail .lede{color:var(--muted);margin:0 0 24px;font-size:17px}.kw-tags{flex-wrap:wrap;gap:6px;margin:-8px 0 20px;display:flex}.kw-tag{background:var(--surface);border:1px solid var(--border);color:var(--faint);border-radius:20px;padding:3px 10px;font-size:12px}.install{border:1px solid var(--border);font-family:var(--mono);color:var(--accent-soft);white-space:pre-wrap;word-break:break-all;background:#0b0a08;border-radius:10px;padding:14px 16px;font-size:13px;overflow-x:auto}.block-label{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin:0 0 10px;font-size:12px}.installbox{align-items:stretch;gap:8px;display:flex}.installbox .install{flex:1;margin:0}.copybtn{background:var(--card);color:var(--muted);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:9px;flex:none;padding:0 14px;font-size:13px;transition:border-color .15s,color .15s}.copybtn:hover{border-color:var(--accent);color:var(--accent-soft)}.aside{flex-direction:column;gap:14px;display:flex}.aside .box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.aside .box h4{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin:0 0 10px;font-size:12px}.aside .kv{justify-content:space-between;padding:4px 0;font-size:14px;display:flex}.aside .kv span{color:var(--muted)}.btn{text-align:center;background:var(--accent);color:#1a120d;border-radius:9px;padding:10px 14px;font-size:14px;font-weight:650;display:inline-block}.btn:hover{background:var(--accent-soft);color:#1a120d}.btn.ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn.ghost:hover{border-color:var(--accent);color:var(--accent-soft)}.prose{color:var(--text);max-width:760px;font-size:15.5px;line-height:1.7}.prose h2{letter-spacing:-.01em;margin:32px 0 10px;font-size:22px}.prose h3{margin:24px 0 8px;font-size:18px}.prose p{color:#d6cfc1;margin:0 0 14px}.prose a{color:var(--accent-soft);text-underline-offset:2px;text-decoration:underline}.prose ul,.prose ol{margin:0 0 14px;padding-left:22px}.prose li{color:#d6cfc1;margin:4px 0}.prose code{font-family:var(--mono);background:var(--bg-soft);border-radius:5px;padding:1px 6px;font-size:13px}.prose pre{border:1px solid var(--border);background:#0b0a08;border-radius:8px;padding:14px;overflow-x:auto}.prose img{border-radius:8px;max-width:100%}.site-footer{border-top:1px solid var(--border);color:var(--faint);margin-top:40px;padding:28px 0;font-size:13px}.site-footer a:hover{color:var(--accent-soft)}.empty{color:var(--faint);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);padding:40px 0}.skel{background:linear-gradient(90deg, var(--card) 0%, var(--card-hover) 50%, var(--card) 100%);background-size:200% 100%;border-radius:6px;height:13px;margin:6px 0;animation:1.3s ease-in-out infinite shimmer}.skel-title{width:240px;height:28px;margin-bottom:10px}.skel-line{height:13px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width:820px){.detail{grid-template-columns:1fr}.hero h1{font-size:32px}.nav{display:none}.mobile-menu{display:block}.grid{grid-template-columns:1fr}}
