:root{--paper:#f4efe6;--paper-raised:#f8f4ec;--ink:#1c1915;--muted:#6b5e52;--accent:#2f6b4f;--line:#ddd4c6;--code:#1e1c18;--cream:#f2ead9;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif;--sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:"SFMono-Regular", ui-monospace, Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100vh;color:var(--ink);background-color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 16% -8%,#2f6b4f0d,#0000 44%),radial-gradient(circle at 102% 0,#7a5d360f,#0000 40%);background-attachment:fixed;flex-direction:column;margin:0;font-size:16px;line-height:1.55;display:flex}::selection{background:#2f6b4f2e}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.wrap{width:min(100% - 48px,940px);margin-inline:auto}#main{flex:1 0 auto;padding:52px 0 84px}.site-header{border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:26px;padding:26px 0 22px;display:flex}.brand{color:inherit;align-items:baseline;gap:16px;text-decoration:none;display:flex}.wordmark{font-family:var(--serif);letter-spacing:-.018em;font-size:clamp(1.45rem,3.4vw,1.75rem);font-weight:600}.brand-sub{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem}.header-twig{flex:none;width:76px;height:16px;position:relative}.header-twig:before{content:"";background:linear-gradient(90deg, transparent, var(--line) 28%);height:1px;position:absolute;top:50%;left:0;right:0}.header-twig:after{content:"";border:1px solid var(--accent);opacity:.75;border-radius:0 65%;width:7px;height:7px;position:absolute;top:50%;right:1px;transform:translateY(-50%)rotate(-38deg)}.site-footer{border-top:1px solid var(--line);padding:24px 0 40px}.site-footer p{color:var(--muted);letter-spacing:.02em;margin:0;font-size:.8rem}.noscript{padding:20px 0 30px;font-size:.9rem}.intro{max-width:660px;margin-bottom:56px}.lede{font-family:var(--serif);letter-spacing:-.022em;margin:0 0 20px;font-size:clamp(2.1rem,5.6vw,3.15rem);font-weight:600;line-height:1.06}.intro p{max-width:58ch;color:var(--muted);margin:0;font-size:1.02rem;line-height:1.7}.list-head{align-items:center;gap:16px;margin-bottom:14px;display:flex}.list-head h2{font-family:var(--serif);letter-spacing:.015em;margin:0;font-size:1.06rem;font-weight:600}.list-rule{background:var(--line);flex:1;height:1px}.list-count{color:var(--muted);letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;font-size:.7rem}.repo-list{border-top:1px solid var(--line)}.repo-card{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;gap:22px;padding:24px 6px;transition:background-color .16s;display:grid}.repo-card:hover{background-color:#ffffff3d}.repo-card h3{font-family:var(--serif);margin:0 0 7px;font-size:1.34rem;font-weight:600;line-height:1.2}.repo-card h3 a{color:var(--ink);text-decoration:none}.repo-card h3 a:hover{color:var(--accent)}.card-slug{color:var(--muted);font-family:var(--mono);letter-spacing:.02em;opacity:.75;margin-left:10px;font-size:.68rem;font-weight:400}.repo-desc{max-width:62ch;color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.94rem;line-height:1.6}.repo-desc.quiet{color:color-mix(in srgb, var(--muted) 78%, transparent);font-style:italic}.repo-card-foot{flex-direction:column;justify-content:space-between;align-items:flex-end;gap:14px;min-width:156px;display:flex}.repo-meta{color:var(--muted);letter-spacing:.035em;text-align:right;margin:0;font-size:.73rem;line-height:1.5}.star{border:1px solid var(--line);color:var(--muted);font-family:var(--sans);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:6px 12px 6px 10px;font-size:.71rem;line-height:1;transition:color .14s,border-color .14s,background-color .14s;display:inline-flex}.star:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));color:var(--accent)}.star.is-on{border-color:color-mix(in srgb, var(--accent) 48%, var(--line));color:var(--accent);background:#2f6b4f12}.star-mark{color:inherit;display:inline-flex}.star-mark svg path{fill:none;stroke:currentColor;stroke-width:1.35px;stroke-linejoin:round}.star.is-on .star-mark svg path{fill:currentColor}.star-count{font-variant-numeric:tabular-nums;letter-spacing:0;font-size:.78rem}.crumbs{color:var(--muted);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:22px;font-size:.78rem;display:flex}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--accent)}.crumb-sep{opacity:.5}.crumb-here{color:var(--ink)}.repo-head h1{font-family:var(--serif);letter-spacing:-.022em;overflow-wrap:anywhere;margin:0 0 12px;font-size:clamp(2rem,5.2vw,2.95rem);font-weight:600;line-height:1.08}.repo-head .repo-desc{max-width:66ch;font-size:1rem}.repo-actions{flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:22px;display:flex}.button{border:1px solid color-mix(in srgb, var(--ink) 32%, var(--line));color:var(--ink);letter-spacing:.08em;text-transform:uppercase;background:0 0;border-radius:3px;align-items:center;gap:8px;padding:8px 15px;font-size:.76rem;line-height:1.2;text-decoration:none;transition:border-color .14s,color .14s,background-color .14s;display:inline-flex}.button:hover{border-color:var(--accent);color:var(--accent);background:#2f6b4f0f}.repo-stats{color:var(--muted);letter-spacing:.02em;margin:0;font-size:.76rem}.repo-source{color:var(--muted);font-family:var(--serif);margin:12px 0 0;font-size:.86rem;font-style:italic}.source-hint{opacity:.9}.tabs{border-bottom:1px solid var(--line);gap:24px;margin:32px 0 30px;display:flex}.tab{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 2px 11px;font-size:.74rem;text-decoration:none}.tab:hover{color:var(--ink)}.tab.is-on{border-bottom-color:var(--accent);color:var(--ink)}.tree{border:1px solid var(--line);background:#ffffff2b;border-radius:5px;overflow:hidden}.tree-group{display:block}.tree-row{border-bottom:1px solid color-mix(in srgb, var(--line) 72%, transparent);color:var(--ink);align-items:center;gap:10px;padding:10px 14px;font-size:.89rem;text-decoration:none;transition:background-color .12s;display:flex}.tree-group:last-child>.tree-row:last-of-type{border-bottom:0}.tree-row:hover{background:#2f6b4f0e}.tree-row.is-dir .tree-name{font-weight:600}.tree-name{overflow-wrap:anywhere;min-width:0}.tree-slash{color:var(--muted);font-weight:400}.tree-size{color:var(--muted);font-family:var(--mono);white-space:nowrap;margin-left:auto;padding-left:12px;font-size:.68rem}.tree-empty{color:var(--muted);font-family:var(--serif);text-align:center;margin:0;padding:28px 20px;font-style:italic}.back-line{margin:0 0 16px;font-size:.78rem}.back-line a{color:var(--muted);text-decoration:none}.back-line a:hover{color:var(--accent)}.readme{margin-top:60px}.markdown{max-width:74ch;font-family:var(--serif);font-size:1.02rem;line-height:1.74}.markdown>:first-child{margin-top:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4{font-family:var(--serif);letter-spacing:-.01em;margin:1.9em 0 .6em;font-weight:600;line-height:1.2}.markdown h1{font-size:1.85rem}.markdown h2{font-size:1.45rem}.markdown h3{font-size:1.16rem}.markdown p,.markdown ul,.markdown ol{margin:0 0 1.08em}.markdown ul,.markdown ol{padding-left:1.4em}.markdown li{margin-bottom:.35em}.markdown a{color:var(--accent);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.markdown code{font-family:var(--mono);background:#1c191511;border-radius:3px;padding:.14em .36em;font-size:.82em}.markdown pre{background:var(--code);border-radius:5px;margin:1.3em 0;overflow:auto}.markdown pre code{color:var(--cream);background:0 0;padding:17px 19px;font-size:.82rem;line-height:1.62;display:block}.markdown blockquote{border-left:2px solid var(--accent);color:var(--muted);margin:1.35em 0;padding:0 0 0 18px}.markdown img{border-radius:4px;max-width:100%;height:auto}.markdown hr{border:0;border-top:1px solid var(--line);margin:2.3em 0}.markdown table{border-collapse:collapse;width:100%;font-family:var(--sans);margin:1.3em 0;font-size:.86rem}.markdown th,.markdown td{border:1px solid var(--line);text-align:left;padding:7px 11px}.markdown th{background:#1c191509}.file-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px;display:flex}.file-title{font-family:var(--mono);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-size:1.12rem;font-weight:600}.file-meta{color:var(--muted);letter-spacing:.02em;overflow-wrap:anywhere;margin:7px 0 0;font-size:.75rem}.quiet-link{color:var(--muted);letter-spacing:.05em;white-space:nowrap;font-size:.76rem;text-decoration:none}.quiet-link:hover{color:var(--accent)}.code-wrap{background:var(--code);border:1px solid #302c26;border-radius:5px;overflow:hidden}.code-wrap pre{max-height:72vh;margin:0;padding:18px 20px;overflow:auto}.code-wrap code,.code-wrap code.hljs{color:var(--cream);font-family:var(--mono);tab-size:2;background:0 0;padding:0;font-size:.82rem;line-height:1.65}.code-wrap .hljs-comment,.code-wrap .hljs-quote{color:#9a8f7b}.segmented{border:1px solid var(--line);border-radius:999px;margin-bottom:16px;padding:2px;display:inline-flex}.seg{color:var(--muted);font-family:var(--sans);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 13px;font-size:.71rem}.seg.is-on{background:var(--ink);color:var(--paper)}.binary-note{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:5px;padding:34px 26px}.binary-note p{font-family:var(--serif);margin:0 0 18px;font-size:1rem}.commits{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.commit{border-bottom:1px solid var(--line);grid-template-columns:82px minmax(0,1fr) auto;align-items:baseline;gap:18px;padding:16px 4px;display:grid}.commit-sha{color:var(--accent);font-family:var(--mono);letter-spacing:.03em;font-size:.75rem}.commit-subject{overflow-wrap:anywhere;min-width:0;line-height:1.45}.commit-who{color:var(--muted);letter-spacing:.02em;text-align:right;white-space:nowrap;font-size:.72rem}.empty{border:1px dashed var(--line);color:var(--muted);font-family:var(--serif);text-align:center;border-radius:5px;margin:0;padding:42px 26px;font-size:1.02rem;font-style:italic}.loading{color:var(--muted);font-family:var(--serif);text-align:center;margin:62px 0;font-size:1rem;font-style:italic}.notfound{max-width:560px;padding:26px 0 40px}.notfound.small{padding-top:0}.notfound-kicker{color:var(--muted);font-family:var(--mono);letter-spacing:.18em;margin:0 0 12px;font-size:.72rem}.notfound h1{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 14px;font-size:clamp(2rem,5vw,2.7rem);font-weight:600}.notfound-detail{color:var(--muted);margin:0 0 22px;font-size:.98rem}.text-link{color:var(--accent);letter-spacing:.03em;text-underline-offset:3px;font-size:.86rem}.notice{z-index:20;background:var(--ink);max-width:calc(100% - 32px);color:var(--paper);letter-spacing:.015em;text-align:center;opacity:0;pointer-events:none;border-radius:999px;padding:11px 19px;font-size:.82rem;transition:opacity .2s,transform .2s;position:fixed;bottom:26px;left:50%;transform:translate(-50%,16px)}.notice.is-visible{opacity:.96;transform:translate(-50%)}@media (width<=700px){.wrap{width:min(100% - 32px,940px)}#main{padding:38px 0 64px}.header-inner{flex-wrap:wrap;gap:10px;padding:20px 0 17px}.brand{flex-direction:column;gap:2px}.header-twig{display:none}.intro{margin-bottom:42px}.repo-card{grid-template-columns:minmax(0,1fr);gap:16px;padding:22px 2px}.repo-card-foot{flex-direction:row;justify-content:space-between;align-items:center;min-width:0}.repo-meta{text-align:left}.card-slug{display:none}.repo-actions{align-items:flex-start}.commit{grid-template-columns:minmax(0,1fr);gap:5px}.commit-who{text-align:left;white-space:normal}.file-meta{font-size:.72rem}.code-wrap pre{max-height:64vh;padding:15px 14px}}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
