@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,600;0,700;1,400&display=swap');
:root{color-scheme:dark;--bg:#111a20;--panel:#16222a;--panel-2:#1b2729;--text:#e4ece7;--muted:#9ba9a6;--soft:#b7c2bc;--amber:#ffb547;--line:#2a3639;--gutter:5.5%}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--bg);color:var(--text);font-family:'JetBrains Mono',monospace}
a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--amber);outline-offset:4px}
h1,h2,h3,p{margin:0}em{font-style:normal;color:var(--amber)}
.shell{max-width:1800px;margin:auto}

.header{height:96px;margin:0 var(--gutter);display:flex;align-items:center;justify-content:space-between}
.brand img{width:142px;display:block}
.header nav{display:flex;align-items:center;gap:42px;font-size:13px;font-weight:600}
.header nav a{transition:color .2s}.header nav a:hover{color:var(--amber)}.header nav span{color:var(--amber);margin-left:5px}
.nav-contact{border:1px solid #5b6258;padding:14px 18px}
.button{padding:15px 20px;display:inline-flex;gap:26px;align-items:center;font-size:13px;font-weight:700}
.primary{background:var(--amber);color:#111a20}.primary:hover{background:#ffd084}

/* index */
.index{padding:0 var(--gutter) 120px}
.index-head{padding:80px 0 70px;display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:end}
.index-head h1,.repo-head h1{font-size:clamp(52px,6vw,96px);line-height:1.01;letter-spacing:-.07em;font-weight:700}
.index-head p{max-width:460px;color:var(--soft);font-size:17px;line-height:1.7}
.index-head p+p{margin-top:28px}
.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}
.card{height:100%;display:flex;flex-direction:column;gap:14px;padding:30px 30px 26px;background:var(--panel);border:1px solid transparent;border-radius:4px;transition:border-color .2s,transform .2s}
.card:hover{border-color:#4d5a52;transform:translateY(-2px)}
.card-slug{font-size:11px;letter-spacing:.08em;color:var(--muted)}
.card h2{font-size:26px;letter-spacing:-.04em;line-height:1.15}
.card p{color:var(--soft);font-size:14px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.card-meta{margin-top:auto;padding-top:14px;display:flex;align-items:center;gap:20px;font-size:12px;color:var(--muted)}
.card-go{margin-left:auto;color:var(--amber);font-size:18px;transition:transform .2s}.card:hover .card-go{transform:translateX(4px)}
.lang{display:inline-flex;align-items:center;gap:8px}.lang-dot{width:9px;height:9px;border-radius:50%;background:var(--c)}
.topics{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.topics li{font-size:11px;padding:5px 9px;border-radius:20px;background:rgba(255,181,71,.1);color:#ffcb78}

/* repo page */
.repo{padding:0 var(--gutter) 120px}
.repo-head{padding:50px 0 60px;max-width:980px}
.crumb{font-size:13px;color:var(--muted)}.crumb:hover{color:var(--amber)}
.repo-head h1{margin:34px 0 26px}
.repo-summary{max-width:760px;color:var(--soft);font-size:18px;line-height:1.7}
.repo-head .topics{margin-top:22px}
.repo-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.clone{display:flex;align-items:center;background:var(--panel);border-radius:2px;max-width:100%}
.clone code{padding:0 18px;font-size:12px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.copy{align-self:stretch;padding:0 18px;border:0;border-left:1px solid var(--line);background:none;color:var(--text);font:600 12px 'JetBrains Mono',monospace;cursor:pointer}.copy:hover{color:var(--amber)}

.repo-body{display:grid;grid-template-columns:260px minmax(0,1fr);gap:70px;align-items:start}
.sidebar{position:sticky;top:28px;display:grid;gap:34px;max-height:calc(100vh - 56px);overflow:auto;padding-right:6px}
.sidebar h3{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;font-weight:600}
.toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.toc a{display:block;padding:6px 0 6px 14px;border-left:2px solid var(--line);font-size:13px;color:var(--soft);line-height:1.4;transition:color .15s,border-color .15s}
.toc .toc-3 a{padding-left:28px;font-size:12px;color:var(--muted)}
.toc a:hover{color:var(--text)}.toc a.active{color:var(--amber);border-left-color:var(--amber)}
.facts{margin:0;display:grid;gap:12px;font-size:12px}.facts div{display:flex;justify-content:space-between;gap:12px}.facts dt{color:var(--muted)}.facts dd{margin:0;text-align:right}
.lang-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;gap:2px}.lang-bar span{background:var(--c)}
.lang-legend{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px;font-size:12px}.lang-legend li{display:flex;justify-content:space-between}.pct{color:var(--muted)}

/* README content */
.readme{display:grid;gap:20px}
.readme-section{background:var(--panel);border-radius:4px;padding:40px 44px}
.markdown{font-size:15px;line-height:1.75;color:var(--soft)}
.markdown>*>:first-child{margin-top:0}.markdown>*>:last-child{margin-bottom:0}
.markdown h2,.markdown h3,.markdown h4{color:var(--text);letter-spacing:-.03em;line-height:1.25;margin:2em 0 .7em}
.markdown h2{font-size:30px;letter-spacing:-.05em}.markdown h3{font-size:20px}.markdown h4{font-size:16px}
.markdown p,.markdown ul,.markdown ol,.markdown table,.markdown blockquote,.markdown pre,.markdown .highlight{margin:0 0 1.2em}
.markdown a{color:var(--text);border-bottom:1px solid rgba(255,181,71,.6)}.markdown a:hover{color:var(--amber)}
.markdown strong{color:var(--text)}
.markdown ul,.markdown ol{padding-left:1.4em}.markdown li+li{margin-top:.35em}.markdown li::marker{color:var(--amber)}
.markdown code{font-family:inherit;font-size:.88em;background:rgba(255,255,255,.06);padding:.15em .4em;border-radius:3px;color:var(--text)}
.markdown pre{background:#0c151a;border-radius:4px;padding:20px 22px;overflow:auto;font-size:13px;line-height:1.6}
.markdown pre code{background:none;padding:0;font-size:inherit}
.markdown .highlight{position:relative}.markdown .highlight pre{margin:0}
.markdown .highlight .copy{position:absolute;top:8px;right:8px;padding:6px 10px;border:0;border-radius:3px;background:var(--panel-2);opacity:0;transition:opacity .15s}
.markdown .highlight:hover .copy,.markdown .highlight .copy:focus-visible{opacity:1}
.markdown blockquote{margin-left:0;padding:16px 22px;border-left:3px solid var(--amber);background:rgba(255,181,71,.06);color:var(--soft)}
.markdown blockquote>:last-child{margin-bottom:0}
.markdown table{display:block;width:100%;overflow:auto;border-collapse:collapse;font-size:13px;line-height:1.55}
.markdown th,.markdown td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.markdown th{color:var(--text);font-weight:700;white-space:nowrap}
.markdown img{max-width:100%;height:auto}
.markdown hr{border:0;height:1px;background:var(--line);margin:2em 0}
.empty{color:var(--muted)}
.pl-c{color:#6f807b;font-style:italic}.pl-k{color:#ff9e64}.pl-s,.pl-pds,.pl-sr{color:#b5d58b}.pl-c1,.pl-cce{color:#ffcb78}
.pl-en,.pl-ent{color:#7dcfff}.pl-s1,.pl-smi,.pl-v{color:#e4ece7}.pl-e{color:#7dcfff}

footer{margin:0 var(--gutter);min-height:140px;display:flex;align-items:center;justify-content:space-between;gap:30px;color:#82918a}
footer img{width:105px;display:block}.footer-links{display:flex;gap:25px;font-size:12px;color:#c5d0c8}footer a:hover{color:var(--amber)}

@media(max-width:1000px){.repo-body{grid-template-columns:1fr;gap:40px}.sidebar{position:static;max-height:none;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
@media(max-width:800px){
.header{height:76px}.brand img{width:110px}.header nav{gap:18px}.header nav a:nth-child(2){display:none}.nav-contact{padding:10px}
.index-head{grid-template-columns:1fr;gap:28px;padding:40px 0 50px}.cards{grid-template-columns:1fr}
.readme-section{padding:28px 22px}.markdown{font-size:14px}
footer{flex-wrap:wrap;padding:35px 0}}
