123:root {4 --bg: #090706;5 --bg-surface: #0e0c09;6 --bg-elevated: #1b1710;7 --border: #2a2018;8 --text: #c8b898;9 --text-secondary: #7a6a50;10 --text-muted: #7a6a50;11 --text-faint: #4a3a28;12 --text-heading: #e8d8b8;13 --accent: #c89a5a;14 --accent-bright: #d9b88c;15 --accent-dim: #85663c;16 --accent-flash: #5a88c8;17 --accent-tint-04: rgba(200, 154, 90, 0.04);18 --accent-tint-12: rgba(200, 154, 90, 0.12);19 --sage: #7a9a68;20 --sans: "Quicksand", system-ui, sans-serif;21 --mono: "Martian Mono", ui-monospace, monospace;22}2324* {25 box-sizing: border-box;26 scrollbar-width: thin;27 scrollbar-color: var(--border) transparent;28}2930html,31body {32 margin: 0;33 padding: 0;34 background: var(--bg);35 color: var(--text);36 font-family: var(--sans);37 font-size: 16px;38 line-height: 1.6;39 overflow-x: hidden;40}4142a {43 color: inherit;44 text-decoration: none;45}46a:hover {47 text-decoration: underline;48 text-decoration-color: var(--accent);49 text-decoration-thickness: 1px;50 text-underline-offset: 4px;51}52535455body > nav {56 display: flex;57 align-items: center;58 padding: 24px 48px;59 font-size: 0.6875rem;60 letter-spacing: 0.04em;61}62.wordmark {63 display: flex;64 color: var(--accent);65}66.wordmark:hover {67 text-decoration: none;68}69.wordmark-icon {70 display: block;71 width: 32px;72 height: 32px;73 color: var(--accent);74}75.wordmark-icon polygon {76 fill: none;77 stroke: currentColor;78 stroke-linejoin: round;79}80.tri-outer polygon {81 stroke-width: 2;82}83.tri-inner polygon {84 stroke-width: 1.5;85}86.tri-outer,87.tri-inner {88 transform-origin: 16px 16px;89}90.tri-outer {91 animation:92 tri-ccw 12s linear infinite,93 accent-flash 9s ease-in-out infinite;94}95.tri-inner {96 animation:97 tri-cw 8s linear infinite,98 accent-flash 6.7s ease-in-out infinite;99}100@keyframes tri-ccw {101 to {102 transform: rotate(-360deg);103 }104}105@keyframes tri-cw {106 to {107 transform: rotate(360deg);108 }109}110@keyframes accent-flash {111 0%,112 84%,113 100% {114 color: var(--accent);115 }116 92% {117 color: var(--accent-flash);118 }119}120.wordmark-by {121 margin-left: 10px;122 font-size: 0.625rem;123 color: var(--text-faint);124 letter-spacing: 0.03em;125}126.nav-links {127 margin-left: auto;128 display: inline-flex;129 gap: 28px;130 font-family: var(--mono);131}132.nav-links a {133 color: var(--text-secondary);134}135136main {137 max-width: 980px;138 margin: 0 auto;139 padding: 24px 48px 120px;140}141142footer {143 text-align: center;144 padding: 80px 24px 48px;145}146footer .credit {147 font-family: var(--mono);148 font-size: 0.6875rem;149 color: var(--text-muted);150}151152.mono {153 font-family: var(--mono);154 font-size: 0.8125rem;155 color: var(--text-secondary);156}157.muted {158 color: var(--text-muted);159}160161@keyframes fadeUp {162 from {163 opacity: 0;164 transform: translateY(6px);165 }166 to {167 opacity: 1;168 transform: translateY(0);169 }170}171@keyframes fadeIn {172 from {173 opacity: 0;174 }175}176177178179.repo-head {180 margin: 20px 0 24px;181}182.repo-name {183 font-family: "Comfortaa", var(--sans);184 font-weight: 700;185 font-size: 4rem;186 line-height: 1.05;187 margin: -0.1em 0 10px;188 color: var(--text);189 overflow-wrap: anywhere;190 animation: fadeUp 280ms ease both;191}192.repo-contributor {193 margin: 4px 0 0;194 font-size: 0.8125rem;195 animation: fadeUp 280ms 40ms ease both;196}197.repo-contributor a:hover {198 color: var(--accent);199}200.repo-desc,201.repo-homepage {202 margin: 0 0 10px;203 font-size: 1.0625rem;204 color: var(--text-secondary);205 line-height: 1.75;206 animation: fadeUp 280ms 30ms ease both;207}208.repo-desc p {209 margin: 12px 0 0;210}211.repo-desc a,212.repo-homepage a {213 color: var(--accent);214}215.repo-desc code {216 font-family: var(--mono);217 font-size: 0.85em;218 color: var(--accent);219}220.lang-badges {221 display: flex;222 flex-wrap: wrap;223 gap: 6px;224 margin: 8px 0 6px;225}226.lang-badge {227 font-family: var(--mono);228 font-size: 0.6875rem;229 color: var(--accent-dim);230 background: var(--bg-surface);231 border: 1px solid var(--border);232 border-radius: 3px;233 padding: 1px 7px;234 letter-spacing: 0.02em;235}236.repo-meta {237 margin: 0;238 font-size: 0.875rem;239 color: var(--text-muted);240 line-height: 1.7;241 animation: fadeUp 280ms 60ms ease both;242}243.repo-tabbar {244 display: flex;245 align-items: center;246 justify-content: space-between;247 flex-wrap: wrap;248 gap: 14px 20px;249 margin-top: 22px;250}251.repo-tabs {252 display: flex;253 gap: 24px;254 flex-wrap: wrap;255 font-family: var(--mono);256 animation: fadeUp 280ms 90ms ease both;257}258.repo-tab {259 font-size: 0.6875rem;260 color: var(--text-muted);261 padding: 0 0 11px;262 border-bottom: 1px solid transparent;263 transition:264 color 140ms,265 border-color 140ms;266}267.repo-tab:hover {268 color: var(--accent);269 text-decoration: none;270}271.install-lines {272 display: flex;273 flex-direction: column;274 align-items: flex-end;275 gap: 6px;276 max-width: 100%;277 margin-left: auto;278 animation: fadeUp 280ms 120ms ease both;279}280.install-line {281 display: flex;282 align-items: center;283 gap: 12px;284 max-width: 100%;285 font-family: var(--mono);286 font-size: 0.75rem;287 color: var(--text-muted);288 background: var(--bg-surface);289 border: 1px solid var(--border);290 border-radius: 3px;291 padding: 5px 11px;292}293.install-line code {294 white-space: pre;295 overflow-x: auto;296 font-family: inherit;297}298.copy-btn {299 background: none;300 border: 0;301 padding: 0;302 cursor: pointer;303 font: inherit;304 font-size: 0.625rem;305 color: var(--text-faint);306 letter-spacing: 0.04em;307}308.copy-btn:hover,309.copy-btn.copied {310 color: var(--accent);311}312313314315.repo-section {316 margin: 36px 0 0;317 animation: fadeIn 320ms 80ms ease both;318}319.repo-section-toggle > summary,320.repo-details-toggle > summary {321 list-style: none;322 cursor: pointer;323 user-select: none;324}325.repo-section-toggle > summary::-webkit-details-marker,326.repo-details-toggle > summary::-webkit-details-marker {327 display: none;328}329.section-head {330 display: flex;331 align-items: baseline;332 gap: 12px;333 padding-bottom: 8px;334 border-bottom: 1px solid var(--border);335 margin-bottom: 4px;336}337.section-head::after,338.repo-details-head::after {339 content: "▸";340 font-size: 0.5625rem;341 opacity: 0.4;342 transition: transform 120ms;343}344.section-head::after {345 margin-left: auto;346}347details[open] > .section-head::after,348details[open] > .repo-details-head::after {349 transform: rotate(90deg);350}351.section-label {352 font-size: 0.6875rem;353 letter-spacing: 0.12em;354 color: var(--text-secondary);355 text-transform: uppercase;356}357.section-count {358 font-family: var(--mono);359 font-size: 0.6875rem;360 color: var(--accent);361}362363364365.timeline {366 display: block;367 margin: 18px 0 4px;368 overflow: visible;369}370.timeline-line {371 stroke: var(--text-faint);372 stroke-width: 1;373 stroke-dasharray: 4 4;374}375.timeline .dot circle {376 fill: var(--accent);377 transition:378 fill-opacity 120ms,379 r 120ms;380}381.timeline .d0 circle {382 fill: var(--accent-dim);383 fill-opacity: 0.45;384}385.timeline .d1 circle {386 fill-opacity: 0.55;387}388.timeline .d2 circle {389 fill-opacity: 0.8;390}391.timeline .d3 circle {392 fill: var(--accent-bright);393 fill-opacity: 1;394}395.timeline .dot:hover circle,396.timeline .dot:focus circle {397 fill: var(--accent-bright);398 fill-opacity: 1;399}400.timeline-legend {401 margin: 0 0 14px;402 font-size: 0.625rem;403 color: var(--text-faint);404}405.timeline-tip {406 position: fixed;407 z-index: 200;408 max-width: 340px;409 padding: 0.45rem 0.7rem;410 background: #0f0c08;411 border: 1px solid var(--border);412 border-radius: 4px;413 pointer-events: none;414 line-height: 1.5;415}416.timeline-tip .tip-id {417 font-family: var(--mono);418 font-size: 12px;419 color: var(--accent);420}421.timeline-tip .tip-msg {422 margin-top: 3px;423 font-style: italic;424 font-size: 15px;425 color: var(--text-heading);426}427.timeline-tip .tip-meta {428 margin-top: 4px;429 font-family: var(--mono);430 font-size: 10px;431 color: var(--text-muted);432}433434435436.history-row {437 position: relative;438 display: grid;439 grid-template-columns: 110px 1fr auto;440 align-items: baseline;441 gap: 0 10px;442 padding: 9px 8px;443 border-bottom: 1px solid var(--border);444 transition: background 100ms;445}446.history-row::before {447 content: "";448 position: absolute;449 left: 0;450 top: 0;451 bottom: 0;452 width: 2px;453 background: var(--accent);454 transform: scaleY(0);455 transition: transform 120ms ease;456}457.history-row:hover {458 background: var(--accent-tint-04);459 text-decoration: none;460}461.history-row:hover::before {462 transform: scaleY(1);463}464.history-id {465 font-family: var(--mono);466 font-size: 0.75rem;467 color: var(--text-secondary);468}469.history-msg {470 min-width: 0;471 line-height: 1.7;472 overflow: hidden;473 text-overflow: ellipsis;474 white-space: nowrap;475 transition: color 100ms;476}477.history-row:hover .history-msg {478 color: var(--accent);479}480.history-when {481 font-family: var(--mono);482 font-size: 0.6875rem;483 color: var(--text-muted);484 white-space: nowrap;485}486.pager {487 display: flex;488 justify-content: space-between;489 margin: 14px 0 0;490 font-size: 0.6875rem;491}492.pager a:last-child {493 margin-left: auto;494}495.pager a:hover {496 color: var(--accent);497}498499500501.atlas-where {502 margin: 10px 0 8px;503 font-size: 0.625rem;504 color: var(--text-faint);505 letter-spacing: 0.04em;506}507.atlas-where a {508 color: var(--accent);509}510.atlas-filter {511 width: 100%;512 margin: 0 0 8px;513 padding: 7px 10px;514 background: transparent;515 border: 1px solid var(--border);516 border-radius: 3px;517 color: var(--text);518 font-size: 0.6875rem;519}520.atlas-filter:focus {521 outline: none;522 border-color: var(--accent-dim);523}524.atlas-filter::placeholder {525 color: var(--text-faint);526}527.atlas {528 display: grid;529 grid-template-columns: minmax(0, 1fr);530 gap: 0 20px;531}532.atlas:has(> .atlas-panel:not([hidden])) {533 grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);534}535.atlas [hidden] {536 display: none;537}538.atlas-folder > summary {539 list-style: none;540}541.atlas-folder > summary::-webkit-details-marker {542 display: none;543}544.atlas-children {545 padding-left: 14px;546 border-left: 1px solid var(--border);547 margin-left: 6px;548}549.atlas-row {550 position: relative;551 display: grid;552 grid-template-columns: minmax(90px, auto) 1fr auto;553 align-items: baseline;554 gap: 0 12px;555 padding: 6px 8px;556 border-bottom: 1px solid rgba(42, 32, 24, 0.62);557 cursor: pointer;558 transition: background 100ms;559}560.atlas-row:hover,561.atlas-row:focus-visible,562.atlas-row.selected {563 outline: none;564 background: var(--accent-tint-04);565 text-decoration: none;566}567.atlas-row.selected {568 box-shadow: inset 2px 0 0 var(--accent);569}570.atlas-name {571 color: var(--text-heading);572 font-size: 0.875rem;573 white-space: nowrap;574}575.atlas-folder > summary .atlas-name {576 color: var(--accent);577}578.atlas-desc {579 min-width: 0;580 color: var(--text-muted);581 font-size: 0.8125rem;582 overflow: hidden;583 text-overflow: ellipsis;584 white-space: nowrap;585}586.atlas-meta {587 font-size: 0.625rem;588 color: var(--text-faint);589 white-space: nowrap;590}591.atlas-panel {592 position: sticky;593 top: 16px;594 align-self: start;595 max-height: calc(100vh - 32px);596 overflow-y: auto;597 padding: 4px 0 12px 16px;598 border-left: 1px solid var(--border);599}600.atlas-hint {601 margin: 0;602 font-size: 0.625rem;603 color: var(--text-faint);604}605.atlas-info-name {606 margin: 0;607 font-weight: 400;608 font-size: 1.375rem;609 color: var(--text-heading);610 overflow-wrap: anywhere;611}612.atlas-info-path {613 margin: 0 0 12px;614 font-size: 0.625rem;615 color: var(--text-faint);616 overflow-wrap: anywhere;617}618.atlas-facts {619 display: grid;620 grid-template-columns: auto 1fr;621 gap: 3px 12px;622 margin: 0 0 12px;623 font-size: 0.625rem;624}625.atlas-facts dt {626 color: var(--text-faint);627}628.atlas-facts dd {629 margin: 0;630 color: var(--text);631}632.atlas-facts a,633.atlas-recent a {634 color: var(--accent);635}636.atlas-info-desc {637 font-size: 0.8125rem;638 color: var(--text-muted);639}640.atlas-recent {641 list-style: none;642 margin: 12px 0 0;643 padding: 10px 0 0;644 border-top: 1px solid var(--border);645 font-size: 0.75rem;646}647.atlas-recent li {648 margin-bottom: 6px;649 line-height: 1.5;650}651.atlas-recent .mono,652.atlas-when {653 font-size: 0.625rem;654}655.atlas-when {656 color: var(--text-faint);657 white-space: nowrap;658}659660661662.repo-details {663 margin: 36px 0 0;664 animation: fadeIn 320ms 80ms ease both;665}666.repo-details-toggle {667 border-bottom: 1px solid var(--border);668 padding-bottom: 24px;669}670.repo-details-head {671 display: flex;672 align-items: center;673 gap: 6px;674 padding: 8px 0;675 font-family: var(--mono);676 font-size: 0.6875rem;677 letter-spacing: 0.12em;678 color: var(--text-secondary);679 text-transform: uppercase;680}681.markdown {682 font-size: 1.05rem;683 line-height: 1.7;684 overflow-wrap: break-word;685}686.markdown h1,687.markdown h2,688.markdown h3,689.markdown h4 {690 font-weight: 400;691 margin: 1.4em 0 0.4em;692 color: var(--text-heading);693}694.markdown h1 {695 font-size: 1.5rem;696}697.markdown h2 {698 font-size: 1.3rem;699}700.markdown h3 {701 font-size: 1.15rem;702}703.markdown p {704 margin: 0.8em 0;705}706.markdown ul,707.markdown ol {708 margin: 0.8em 0 0.8em 1.5em;709 padding: 0;710}711.markdown a {712 color: var(--accent);713}714.markdown code {715 font-family: var(--mono);716 font-size: 0.82em;717 color: var(--accent);718 background: var(--bg-surface);719 padding: 0.15em 0.35em;720 border-radius: 3px;721}722.markdown pre {723 background: var(--bg-surface);724 border-radius: 4px;725 padding: 1em 1.2em;726 overflow-x: auto;727 margin: 1em 0;728}729.markdown pre code {730 background: none;731 padding: 0;732 color: var(--text);733 font-size: 0.85em;734}735.markdown blockquote {736 border-left: 3px solid var(--border);737 margin: 1em 0;738 padding: 0.1em 1em;739 color: var(--text-secondary);740}741.markdown hr {742 border: none;743 border-top: 1px solid var(--border);744 margin: 1.5em 0;745}746.markdown img {747 max-width: 100%;748}749.markdown table {750 border-collapse: collapse;751 display: block;752 overflow-x: auto;753}754.markdown th,755.markdown td {756 border: 1px solid var(--border);757 padding: 4px 10px;758}759760761762.breadcrumb {763 margin: 0 0 4px;764 font-size: 0.75rem;765 overflow-wrap: anywhere;766}767.breadcrumb a:hover {768 color: var(--accent);769}770.file-page-title {771 font-size: 1.75rem;772 font-weight: 400;773 margin: 4px 0 12px;774 overflow-wrap: anywhere;775}776.file-meta,777.file-toggle {778 margin: 0 0 12px;779 font-size: 0.6875rem;780}781.file-meta a,782.file-toggle a.active {783 color: var(--accent);784}785.file-image img {786 max-width: 100%;787 background: var(--bg-surface);788 border: 1px solid var(--border);789}790.file-view {791 border: 1px solid var(--border);792 background: var(--bg-surface);793 overflow-x: auto;794}795.code {796 margin: 0;797 padding: 16px 0;798 font-family: var(--mono);799 font-size: 0.8125rem;800 line-height: 1.65;801 tab-size: 4;802}803804.code .line {805 display: grid;806 grid-template-columns: 6em 1fr;807 padding-right: 24px;808 scroll-margin-top: 40vh;809}810.code .line:target,811.code .line.hl {812 background: var(--accent-tint-12);813}814.code .lc {815 white-space: pre;816}817.code .ln {818 padding-right: 1.5em;819 text-align: right;820 color: var(--text-faint);821 user-select: none;822}823.code .ln:hover {824 color: var(--accent);825 text-decoration: none;826}827828829.tk-comment {830 color: var(--text-muted);831 font-style: italic;832}833.tk-keyword {834 color: var(--accent);835}836.tk-string,837.tk-string-expression {838 color: var(--sage);839}840.tk-constant {841 color: var(--accent-bright);842}843.tk-function {844 color: var(--accent);845}846.tk-parameter {847 color: var(--text);848}849.tk-punctuation {850 color: var(--text-secondary);851}852.tk-link {853 color: var(--accent);854 text-decoration: underline;855}856.tk-inserted {857 color: var(--sage);858}859.tk-deleted {860 color: #c45c5c;861}862.tk-i {863 font-style: italic;864}865866867868.save-id {869 margin: 12px 0 0;870 font-size: 0.75rem;871 color: var(--text-secondary);872}873.save-flag {874 margin: 12px 0 0;875 padding: 8px 12px;876 border: 1px solid #6a3a2a;877 border-left: 2px solid #c45c5c;878 background: rgba(196, 92, 92, 0.08);879 color: var(--text-heading);880}881.save-flag-label {882 margin-right: 8px;883 font-size: 0.625rem;884 letter-spacing: 0.12em;885 text-transform: uppercase;886 color: #c45c5c;887}888.save-message-head {889 font-size: 2.25rem;890 font-weight: 400;891 line-height: 1.3;892 margin: 12px 0 8px;893 color: var(--text-heading);894 overflow-wrap: anywhere;895 animation: fadeUp 280ms ease both;896}897.save-message-body {898 margin: 0 0 12px;899 white-space: pre-wrap;900 color: var(--text-secondary);901}902.save-facts {903 display: grid;904 grid-template-columns: max-content 1fr;905 gap: 2px 16px;906 margin: 16px 0;907 font-size: 0.75rem;908}909.save-facts dt {910 color: var(--text-faint);911}912.save-facts dd {913 margin: 0;914 overflow-wrap: anywhere;915}916.save-facts a,917.save-links a,918.diff-view a {919 color: var(--accent);920}921.save-links {922 display: flex;923 flex-wrap: wrap;924 gap: 8px 20px;925 margin: 0;926 font-size: 0.75rem;927}928.save-empty {929 font-size: 0.75rem;930}931.change-row,932.diff-head {933 display: grid;934 grid-template-columns: 1fr auto;935 gap: 12px;936 padding: 7px 8px;937 border-bottom: 1px solid var(--border);938 font-family: var(--mono);939 font-size: 0.8125rem;940}941.change-row:hover {942 background: var(--accent-tint-04);943 text-decoration: none;944}945.change-path {946 min-width: 0;947 overflow-wrap: anywhere;948}949.change-added .change-path {950 color: var(--sage);951}952.change-removed .change-path {953 color: var(--text-muted);954 text-decoration: line-through;955}956.change-modified .change-path {957 color: var(--accent-bright);958}959.change-stat {960 font-size: 0.75rem;961 white-space: nowrap;962}963.diff-add {964 color: var(--sage);965}966.diff-del {967 color: #c45c5c;968}969.diff-note {970 color: var(--text-faint);971 font-size: 0.6875rem;972}973.diff-file {974 margin: 0 0 20px;975}976.diff-head {977 cursor: pointer;978 list-style: none;979 border: 1px solid var(--border);980 background: var(--bg-surface);981}982.diff-head::-webkit-details-marker {983 display: none;984}985.diff-file > .file-view {986 border-top: 0;987}988.diff-file > .diff-note,989.diff-view {990 margin: 8px 0 0;991 font-size: 0.6875rem;992}993.code.diff {994 padding: 4px 0;995}996.diff .dl {997 display: grid;998 grid-template-columns: 3.5em 3.5em 1.5em 1fr;999 padding-right: 24px;1000}1001.diff .dh {1002 display: block;1003 padding: 4px 1em;1004 color: var(--text-faint);1005 background: var(--bg-elevated);1006}1007.diff .ln {1008 padding-right: 0.75em;1009 text-align: right;1010 color: var(--text-faint);1011 user-select: none;1012}1013.diff .ds {1014 text-align: center;1015 color: var(--text-faint);1016 user-select: none;1017}1018.diff .dl-add {1019 background: rgba(122, 154, 104, 0.1);1020}1021.diff .dl-add .ds {1022 color: var(--sage);1023}1024.diff .dl-del {1025 background: rgba(196, 92, 92, 0.08);1026}1027.diff .dl-del .ds {1028 color: #c45c5c;1029}1030103110321033@media (max-width: 768px) {1034 body > nav {1035 padding: 20px 16px;1036 }1037 .nav-links {1038 gap: 18px;1039 }1040 main {1041 padding: 16px 16px 80px;1042 }1043 .repo-name {1044 font-size: 2.75rem;1045 }1046 .install-lines {1047 align-items: stretch;1048 margin-left: 0;1049 width: 100%;1050 }1051 .history-row {1052 grid-template-columns: 1fr auto;1053 }1054 .history-id {1055 grid-column: 1 / -1;1056 }1057 .atlas-row {1058 grid-template-columns: 1fr auto;1059 }1060 .atlas-desc {1061 grid-column: 1 / -1;1062 grid-row: 2;1063 }1064 .atlas:has(> .atlas-panel:not([hidden])) {1065 grid-template-columns: minmax(0, 1fr);1066 }1067 .atlas-panel {1068 display: none;1069 }1070 .code .line {1071 grid-template-columns: 4.5em 1fr;1072 }1073 .save-message-head {1074 font-size: 1.625rem;1075 }1076 .diff .dl {1077 grid-template-columns: 2.75em 2.75em 1.25em 1fr;1078 }1079 .code .ln {1080 padding-right: 1em;1081 }1082}108310841085@media (prefers-reduced-motion: reduce) {1086 .tri-outer,1087 .tri-inner,1088 .repo-name,1089 .repo-contributor,1090 .repo-desc,1091 .repo-homepage,1092 .repo-meta,1093 .repo-tabs,1094 .install-lines,1095 .repo-section,1096 .repo-details,1097 .save-message-head {1098 animation: none;1099 }1100}