Parent [>]
1*, *::before, *::after { box-sizing: border-box; }
2
3footer {
4  padding: 1rem;
5  margin-top: 2rem;
6  color: var(--secondary);
7  font-size: .875rem;
8  text-align: center;
9}
10
11html { overflow-x: clip; }
12
13body {
14  font-family: var(--font-body);
15  max-width: 860px;
16  margin: 0 auto;
17  padding: 0;
18  background: var(--background);
19  color: var(--primary);
20}
21
22header {
23  padding: .75rem 1rem;
24  margin-bottom: .75rem;
25}
26
27header ul {
28  list-style: none;
29  margin: 0;
30  padding: 0;
31  display: flex;
32  align-items: center;
33  gap: .25rem;
34  font-size: 1.2rem;
35  min-width: 0;
36}
37
38header li {
39  white-space: nowrap;
40  overflow: hidden;
41  text-overflow: ellipsis;
42  min-width: 0;
43}
44
45header li:first-child { flex-shrink: 0; }
46header li:last-child { flex-shrink: 1; }
47
48header li + li::before {
49  content: '/';
50  margin-right: .25rem;
51  color: var(--secondary);
52}
53
54header a {
55  color: var(--primary);
56  text-decoration: none;
57}
58
59header a:hover {
60  color: var(--emphasized);
61  text-decoration: underline;
62  text-underline-offset: 4px;
63}
64
65main > h1, main > p {
66  padding-left: 1rem;
67  padding-right: 1rem;
68}
69
70main > h1 { margin-bottom: .75rem; }
71main > p { margin-top: 0; }
72.repo-commit-count { color: var(--secondary); }
73main > article { padding: 0 1rem; }
74
75.repo-list {
76  display: flex;
77  flex-direction: column;
78}
79
80.repo-card {
81  display: flex;
82  flex-direction: column;
83  gap: .5rem;
84  padding: 1rem 1.25rem;
85  text-decoration: none;
86  color: inherit;
87}
88
89.repo-card:hover { background: var(--highlight); }
90
91.repo-name {
92  font-size: 1.1rem;
93  font-weight: 600;
94  color: var(--emphasized);
95}
96
97.repo-desc {
98  font-size: 1rem;
99  color: var(--primary);
100}
101
102.repo-meta {
103  display: flex;
104  justify-content: space-between;
105  font-size: .9rem;
106  color: var(--secondary);
107}
108
109details {
110  background: var(--highlight);
111}
112
113details:first-of-type {
114  border-top: 1px solid var(--secondary);
115}
116
117summary {
118  cursor: pointer;
119  display: flex;
120  align-items: center;
121  padding: 0 1rem;
122  min-height: 50px;
123  font-family: var(--font-body);
124  font-weight: bold;
125}
126
127summary::before {
128  content: '+';
129  font-family: var(--font-mono);
130  margin-right: .5rem;
131  color: var(--primary);
132}
133
134details[open] summary::before {
135  content: '';
136}
137
138details[open] summary {
139  color: var(--emphasized);
140}
141
142
143summary span {
144  color: var(--secondary);
145  margin-left: auto;
146}
147
148details > *:not(summary) {
149  padding: 0 1rem .75rem;
150  margin-bottom: 0;
151}
152
153details > ul {
154  list-style: none;
155  padding: 0;
156  margin: 0;
157}
158
159details ul li {
160  display: flex;
161  align-items: center;
162  gap: 1rem;
163  min-height: 50px;
164  padding: 0 1rem;
165  color: var(--secondary);
166  font-family: var(--font-mono);
167  font-size: 1rem;
168}
169
170details ul li:has(a), details ul li:has(button) {
171  padding: 0;
172}
173
174details ul li a,
175details ul li button {
176  display: flex;
177  align-items: center;
178  gap: 1rem;
179  padding: 0 1rem;
180  min-height: 50px;
181  width: 100%;
182  text-align: left;
183  text-decoration: none;
184  color: inherit;
185  background: transparent;
186  border: none;
187  cursor: pointer;
188  font-family: var(--font-mono);
189  font-size: 1rem;
190}
191
192details ul li a:hover,
193details ul li button:hover {
194  background: var(--background);
195}
196
197/* First span grows to fill available space in both link and button rows */
198details ul li a span:first-child,
199details ul li button span:first-child {
200  flex: 1;
201  min-width: 0;
202  overflow: hidden;
203  text-overflow: ellipsis;
204  white-space: nowrap;
205  color: var(--primary);
206}
207
208/* Clone rows: animate URL text on copy, label fixed width on right */
209details ul li button span:first-child { transition: opacity .1s; }
210details ul li button span:nth-child(2) {
211  flex-shrink: 0;
212  min-width: 4rem;
213  text-align: right;
214  color: var(--secondary);
215}
216
217/* Branch/tag rows: remaining spans fixed on the right */
218details ul li a span:not(:first-child) {
219  flex-shrink: 0;
220  color: var(--secondary);
221}