@font-face{font-family:Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/mono.woff2) format('woff2')} :root{--fg:#212529;--muted:#6c757d;--line:#dee2e6;--soft:#f8f9fa;--bar:#ddd;--link:#0640e0;--primary:#0640e0;--add:#1a7f37;--del:#c0392b;--addbg:#e6ffec;--delbg:#ffebe9;--code:#f8f9fa} *{box-sizing:border-box} html{font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","DejaVu Sans",Arial,sans-serif;background:#fff;color:var(--fg)} body{margin:0} a{color:var(--link);text-decoration:none} a:hover{text-decoration:underline} code,pre,.hash,.mode,.blob,.hunk,.code,textarea{font-family:Mono,ui-monospace,Menlo,Consolas,monospace;font-size:13px} pre{background:var(--code);padding:.6rem .8rem;overflow-x:auto;border:1px solid var(--line)} pre.plain{background:none;border:0;padding:0} h1{font-size:1.6rem;font-weight:500;margin:0 0 .2rem} h2{font-size:1.4rem;font-weight:500;margin:0} h3{font-size:1.15rem;font-weight:500;margin:0 0 .6rem;padding-bottom:.3rem;border-bottom:1px solid var(--line)} h3.rule{margin-top:.5rem} h4{font-size:1rem;font-weight:500;margin:1rem 0 .4rem} h4 a{color:var(--fg)} .muted,.when{color:var(--muted)} .small{font-size:.85rem} .tag{font-size:.75rem;border:1px solid var(--line);padding:0 .3rem;color:var(--muted);vertical-align:middle} .error{color:var(--del);border:1px solid var(--del);padding:.4rem .6rem;background:#fff} .notice{border:1px solid var(--add);padding:.4rem .6rem;background:var(--addbg)} .inner,nav.site,nav.subtabs,main{max-width:1140px;margin:0 auto;padding-left:1rem;padding-right:1rem} header{margin-bottom:1rem} nav.site{display:flex;gap:1rem;align-items:center;padding-top:.5rem;padding-bottom:.5rem;flex-wrap:wrap} nav.site .brand{font-size:1.25rem;color:var(--fg);margin-right:.5rem} nav.site{color:var(--muted)} nav.site a{color:var(--muted)} nav.site .brand{color:var(--fg)} nav.site .spacer{flex:1} nav.site form{display:inline} nav.site button{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;padding:0} nav.subtabs{display:flex;gap:0;padding-top:.2rem;border-bottom:1px solid var(--bar);max-width:none} nav.subtabs a:first-child{margin-left:max(1rem,calc((100% - 1140px)/2 + 1rem))} nav.subtabs a,nav.tabs a{color:var(--muted);padding:.3rem .9rem} nav.subtabs a.active{background:#e9ecef;color:var(--fg)} nav.subtabs a:hover,nav.tabs a:hover{text-decoration:none;color:var(--fg)} .repohead{margin-top:-1rem} .repohead h2{padding:.4rem 0 .3rem;font-size:1.9rem} .tabbar{background:var(--bar)} nav.tabs{display:flex} nav.tabs a{padding:.25rem .9rem} nav.tabs a.active{background:#fff;color:var(--fg)} .repohead .desc{margin:0 0 .4rem;color:var(--muted)} .repohead+main{margin-top:1rem} .repohead+main.file{margin-top:0;padding-top:1.3rem} .summary{margin-top:.2rem;display:grid;grid-template-columns:4fr 1.5fr 2.6fr;gap:2rem;margin-bottom:1.5rem;align-items:start} .summary .event{background:var(--soft);padding:.4rem .5rem .5rem;margin-bottom:.6rem} .summary .event .row{display:flex;justify-content:space-between;gap:1rem} .summary .event .when{font-size:.85rem;color:var(--link);text-decoration:underline} .summary .event .hash{text-decoration:underline} .summary .subject{margin:.3rem 0 0;background:none;border:0;padding:0;white-space:pre-wrap} .summary h3{font-weight:400;font-size:1.25rem;margin:0 0 .5rem} .summary .ref{margin-bottom:.6rem} .summary .ref a,.summary .clone a{text-decoration:underline} .summary .clone strong{display:block;margin-top:.4rem} .summary .clone div{margin-bottom:.2rem;overflow-wrap:anywhere} .readme{max-width:920px} .readme>article>h1:first-child{margin-top:0} @media(max-width:900px){.summary{grid-template-columns:1fr}} .descbar .inner{padding:.3rem 1rem} .repohead+main{margin-top:0} main{padding-bottom:3rem} .welcome{max-width:50rem;margin:0 auto 1.5rem;padding:0 1rem} .welcome p{margin:.3rem 0 0} .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:1.5rem} .panel{background:var(--soft);padding:.8rem 1rem;margin-bottom:1.5rem} .panel.narrow{max-width:34rem;margin:1rem auto} .panel .btn{margin-top:.6rem} .panel p{margin:.4rem 0 .6rem} .btn{display:inline-block;font:inherit;font-size:.9rem;background:#e9ecef;color:var(--fg);border:1px solid #ccc;padding:.25rem .7rem;cursor:pointer;line-height:1.4} .btn:hover{text-decoration:none;background:#dde1e5} .btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)} .btn.primary:hover{background:#0535bd} .btn.danger{background:#fff;color:var(--del);border-color:var(--del)} .events .event{background:var(--soft);padding:.25rem .5rem .4rem;margin-bottom:.6rem;border-bottom:0} .event h4{font-size:1rem;font-weight:400;margin:0 0 .2rem;padding-bottom:.15rem;border-bottom:1px solid var(--line)} .event h4 a{color:var(--link)} .event p{margin:0;font-size:.95rem} .columns{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:2.5rem;align-items:start} .columns.user{grid-template-columns:280px minmax(0,1fr);gap:2rem} .userhead{display:flex;align-items:flex-end;gap:1.2rem;border-bottom:1px solid var(--bar);margin:-1rem 0 1rem;padding:0} .userhead h2{font-size:1.7rem;padding-bottom:.2rem} nav.tabs.small{background:#e9ecef;align-self:flex-end;margin-bottom:.3rem} nav.tabs.small a{padding:.1rem .8rem} nav.tabs.small a.active{background:#ddd} .profile .avatar{display:block;width:280px;height:280px;margin-bottom:.7rem} .profile p{margin:.2rem 0} .profile .name{font-weight:600;font-size:1.05rem} .profile .btn.block{display:block;text-align:center;margin-top:.5rem} .info{background:#d1ecf1;color:#0c5460;padding:.5rem .6rem;border:1px solid #bee5eb;margin:0} .avatar{object-fit:cover;border:1px solid var(--line);background:var(--soft)} .bio{margin:.5rem 0 .6rem} .bio p{margin:.3rem 0} ul.side,ul.files{list-style:none;padding:0;margin:0} ul.side li{padding:.15rem 0} dl.clone{margin:0 0 1rem} dl.clone dt{color:var(--muted);font-size:.85rem} dl.clone dd{margin:0 0 .4rem;overflow-wrap:anywhere} dl.meta{display:grid;grid-template-columns:6em 1fr;gap:.15rem .5rem;margin:0 0 .8rem} dl.meta dt{color:var(--muted)} dl.meta dd{margin:0;overflow-wrap:anywhere} .log .event{padding:.5rem 0;border-bottom:1px solid var(--line)} .event .subject{color:var(--fg)} .event pre.body{margin:.4rem 0 0} .filebar{display:flex;gap:1.2rem;align-items:baseline;border-bottom:1px solid var(--bar);padding:0 1rem .25rem;margin:-1rem -1rem .6rem;flex-wrap:wrap} .filebar .spacer{flex:1} .filebar a.active{color:var(--fg);border-bottom:2px solid var(--fg);padding-bottom:.2rem} .filebar a{color:var(--muted)} .filebar .crumbs a{color:var(--link);text-decoration:underline} .filebar .mode{color:var(--muted);font-family:inherit;font-size:inherit} .filebar .lastcommit{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40rem} .readme img{max-width:100%} .readme table{border-collapse:collapse} .readme td,.readme th{border:1px solid var(--line);padding:.2rem .5rem} .readme code{background:var(--code);padding:.05rem .25rem} .readme pre code{padding:0;background:none} .readme h1{font-size:1.5rem;margin:.6rem 0} .readme h2{font-size:1.25rem;margin:1rem 0 .5rem;border-bottom:1px solid var(--line);padding-bottom:.2rem} .readme h3{border:0;font-size:1.1rem;margin:.8rem 0 .3rem} .readme blockquote{border-left:3px solid var(--line);margin:0;padding:0 1rem;color:var(--muted)} table{border-collapse:collapse} table.tree{width:100%} table.tree td{padding:.25rem .8rem .25rem 0;white-space:nowrap} table.tree .mode{color:var(--muted)} table.tree .size{color:var(--muted);text-align:right} table.tree .last{max-width:30rem;overflow:hidden;text-overflow:ellipsis;width:100%} table.tree .when{text-align:right} table.refs td,table.keys td{padding:.3rem 1rem .3rem 0;border-bottom:1px solid var(--line)} .code{margin:0 -1rem} table.blob,.code table{width:100%} table.blob td,table.hunk td,.code td{padding:0 .5rem;white-space:pre;vertical-align:top} td.n{text-align:right;color:var(--muted);user-select:none;width:1%} td.n a{color:var(--link);text-decoration:underline} table.blob td.n{border-right:1px solid var(--bar);padding:0 .5rem 0 .6rem} td.l{white-space:pre-wrap;overflow-wrap:anywhere;width:100%} tr:target td{background:#fff8c5} .code pre,.code .chroma{background:#fff;border:0;padding:0;margin:0} .code .lntable{margin-top:0} .code .lntd:first-child{width:1%;user-select:none;border-right:1px solid var(--bar)} .code .lnt,.code .ln{color:var(--link);margin-right:0;padding:0 .5rem 0 .6rem} .code .lntd a{color:var(--link);text-decoration:underline} .code .lntd:last-child{padding-left:.6rem} .code .line:target,.code .line:target .cl{background:#fff8c5} table.hunk{width:100%;border:1px solid var(--line)} .hunk .head td{color:var(--muted);background:var(--soft)} .hunk tr.add td{background:var(--addbg)} .hunk tr.del td{background:var(--delbg)} .hunk tr.meta td{color:var(--muted)} .add{color:var(--add)} .del{color:var(--del)} .diff{margin-bottom:1.5rem} .files{margin-bottom:1.2rem} .files li{padding:.1rem 0} form.stack{display:flex;flex-direction:column;gap:.7rem;max-width:34rem} form.stack.wide{max-width:52rem} form.stack label{display:flex;flex-direction:column;gap:.25rem} form.stack label.check{flex-direction:row;align-items:center;gap:.5rem} form.stack small{color:var(--muted)} .pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem} input,textarea{font:inherit;color:var(--fg);background:#fff;border:1px solid #ced4da;padding:.35rem .55rem} input:disabled{background:#e9ecef} input:focus,textarea:focus{outline:2px solid #b6d4fe;border-color:#86b7fe} input[type=file]{border:0;padding:0} .actions{display:flex;justify-content:flex-end;gap:.5rem} .actions.left{justify-content:flex-start} .avatarform{display:grid;grid-template-columns:160px 1fr;gap:1.2rem;margin-bottom:1.2rem;align-items:start} .avatarform .avatarbox{width:160px;height:160px;border:1px solid var(--line);background:#fff} .avatarform .avatar{width:158px;height:158px;border:0} .avatarform label{display:block;margin-bottom:.3rem} .avatarform small{display:block;color:var(--muted);margin-bottom:.5rem} .cropper canvas{display:block;max-width:100%;border:1px solid var(--line);cursor:move;touch-action:none} .cropper input[type=range]{width:100%;padding:0} @media(max-width:800px){.cards,.cards.commits,.columns,.columns.user,.pair,.avatarform{grid-template-columns:1fr}.profile .avatar{width:120px;height:120px}} .twocol{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem} .twocol label{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.8rem} .twocol .legend{display:block;margin-bottom:.4rem} .twocol label.radio{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.6rem} .twocol label.radio small{flex-basis:100%;color:var(--muted);padding-left:1.4rem} h3.plain{border:0;font-size:1.25rem} .columns.browse{grid-template-columns:minmax(0,2fr) 1fr} .search input[name=search]{width:100%} .search .sort{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin:.5rem 0 1rem} .search .sort label{display:flex;align-items:center;gap:.3rem} .event .tags a{color:var(--muted);text-decoration:underline;margin-right:.6rem;font-size:.9rem} .event p.tags{margin-top:.15rem} .btn.block{display:block;text-align:center} .titlerow{display:flex;align-items:center;gap:1rem} .titlerow form{margin:0} .count{background:#e9ecef;border-radius:.6rem;padding:0 .4rem;font-size:.8rem;color:var(--fg)} .pullhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem} nav.filters a{margin-right:1rem;color:var(--muted)} nav.filters a.active{color:var(--fg);font-weight:600} .state{display:inline-block;font-size:.75rem;padding:0 .4rem;border-radius:3px;color:#fff;vertical-align:middle;text-transform:lowercase} .state.open{background:#1a7f37} .state.merged{background:#6f42c1} .state.closed{background:#c0392b} .pulltitle{margin-bottom:1rem} .pulltitle p{margin:.2rem 0} .columns.pullbody{grid-template-columns:minmax(0,1fr) 20rem;margin-bottom:1.5rem} .comment{border:1px solid var(--line);margin-bottom:.8rem} .comment .who{background:var(--soft);padding:.3rem .6rem;border-bottom:1px solid var(--line)} .comment .readme{padding:.4rem .6rem} .comment .readme p{margin:.3rem 0} .btn.block+form{margin-top:.4rem} .btn:disabled{opacity:.5;cursor:default} select{font:inherit;padding:.35rem .5rem;border:1px solid #ced4da;background:#fff}