1html, body {
2 height: 100vh;
3 width: 100vw;
4 overflow: hidden;
5 --dark-bg: #27143f;
6 --bar: #804fc9;
7}
8@font-face {
9 font-family: c1;
10 src: url(/cydn_header.woff2);
11 font-variation-settings: "wght" 50;
12}
13body {
14 display: grid;
15 background-color: var(--dark-bg);
16}
17.files {
18 background-color: var(--bg);
19 --scroll-bg: var(--dark-bg);
20 display: flex;
21 flex-direction: row;
22 overflow-x: scroll;
23 overflow-y: hidden;
24 min-height: 100vh;
25 border-bottom: 0;
26 box-sizing: border-box;
27 --tooltip: lch(from var(--bg) calc(l - 2) c h);
28 --muted: lch(from var(--dark-bg) 60 20 h / 0.8);
29 z-index: 1;
30}
31.ctld {
32 --c: 4.5;
33 --bg: lch(13 var(--c) var(--hue));
34 --dark-bg: lch(10 var(--c) var(--hue));
35 --bar: lch(90 96 var(--hue));
36 --primary: lch(90 96 var(--hue));
37}
38.ctld-2017 {
39 --hue: 120;
40}
41.ctld-2018 {
42 --hue: 40;
43}
44.ctld-2019 {
45 --hue: 290;
46 --c: 10;
47}
48.ctld-2020 {
49 --hue: 220;
50 --c: 10;
51}
52.ctld-2021 {
53 --hue: 70;
54 --c: 20;
55}
56.ctld-2022 {
57 --hue: 150;
58 --c: 20;
59}
60.ctld-2023 {
61 --hue: 5;
62 --c: 10;
63}
64.ctld-et {
65 --hue: 150;
66 --c: 0;
67}
68.ctld-2024, .ctld-sb {
69 --bg: #191919;
70 --dark-bg: #101010;
71 --fg: #a7a7a7;
72 --bar: white;
73 --primary: white;
74 .active {
75 font-weight: bold;
76 }
77}
78.ctld-2024 {
79 --dark-bg: #00000080;
80 --scroll-bg: #0000004d;
81 .content:not(.file-view-image):not(.file-view-video):not(.file-view-audio) {
82 background-color: #00000050;
83 }
84}
85.ctld-2024 .convo {
86 --primary: #ff6c5c;
87}
88.files::-webkit-scrollbar {
89 height: 24px;
90 background-color: transparent;
91}
92.files::-webkit-scrollbar-thumb {
93 background-color: var(--bar);
94 border: 6px solid var(--dark-bg);
95 border-radius: 12px;
96}
97.files::-webkit-scrollbar-track {
98 background-color: var(--dark-bg);
99}
100.files .panel {
101 position: relative;
102 flex: 0 0 auto;
103 min-width: 235px;
104 max-width: 235px;
105 height: 100%;
106 min-height: calc(100vh - 59px); /* safari hack */
107 display: flex;
108 flex-direction: column;
109}
110.files .panel div.header {
111 display: none;
112}
113.files .panel .header {
114 white-space: nowrap;
115 font-size: 1rem;
116 font-weight: bold;
117 background-color: var(--dark-bg);
118 padding: 0.5rem 0.5rem 0.5rem 0.25rem;
119 color: var(--primary);
120 --color: var(--primary);
121 overflow: hidden;
122 text-overflow: ellipsis;
123 flex-shrink: 0;
124 align-items: baseline;
125 & > span {
126 min-width: 0;
127 overflow: hidden;
128 text-overflow: ellipsis;
129 }
130}
131.actions {
132 display: flex;
133 gap: 0.5rem;
134 height: 19px;
135 margin-right: 4px;
136 & > * {
137 position: relative;
138 width: 22px;
139 display: flex;
140 &::before {
141 position: absolute;
142 top: -3px;
143 width: 24px;
144 height: 24px;
145 }
146 }
147}
148.files .panel .content {
149 position: relative;
150 flex: 1;
151 overflow-y: scroll;
152 overflow-x: hidden;
153}
154a.header {
155 display: flex;
156}
157.files .panel.last {
158 min-width: min(calc(100vw - 255px), calc(90% - 20rem));
159 max-width: none;
160 div.header {
161 display: flex;
162 }
163 a.header {
164 display: none;
165 }
166}
167.files .panel.first:not(.last) {
168 max-width: 216px;
169 min-width: 216px;
170}
171.files .panel.first .content:not(.readme) {
172 max-width: 200px;
173 min-width: 200px;
174}
175.panel:first-child {
176 border-left: 16px solid var(--dark-bg);
177}
178.panel:last-child {
179 flex: 1;
180}
181.files .panel .hsplit {
182 display: flex;
183 flex-direction: row-reverse;
184 height: calc(100vh - 59px);
185 .content {
186 min-width: 235px;
187 flex: 0 0 auto;
188 }
189 .content.readme {
190 min-width: 300px;
191 flex: 1;
192 }
193}
194.content {
195 height: calc(100vh - 59px);
196}
197.files .panel ul {
198 white-space: nowrap;
199 list-style-type: none;
200 display: flex;
201 flex-direction: column;
202 &, li {
203 margin: 0;
204 padding: 0;
205 }
206 li a {
207 &:active {
208 --muted: red !important;
209 }
210 position: relative;
211 display: flex;
212 align-items: baseline;
213 text-overflow: ellipsis;
214 font-size: 0.5rem;
215 overflow: hidden;
216 color: var(--muted);
217 & > * {
218 color: var(--fg);
219 font-size: 1rem;
220 }
221 .file-row-meta {
222 flex: 0 0 auto;
223 }
224 .file-row-name {
225 flex: 1 1 auto;
226 min-width: 0;
227 display: block;
228 overflow: hidden;
229 text-overflow: ellipsis;
230 }
231 &:hover:not(.active) {
232 background-color: rgb(from var(--dark-bg) r g b / 0.5);
233 }
234 &:active {
235 background-color: var(--dark-bg) !important;
236 color: red;
237 time {
238 color: red;
239 }
240 }
241 }
242}
243.li, .tooltip {
244 padding: 0.5rem 0.2rem 0.5rem 0.2rem;
245 color: var(--fg);
246 &.active {
247 background-color: var(--dark-bg);
248 color: var(--primary);
249 --color: var(--primary);
250 --muted: var(--primary);
251 }
252 time {
253 color: var(--muted);
254 letter-spacing: -0.08em;
255 padding-right: 0.3rem;
256 transform: scaleX(0.95);
257 display: inline-block;
258 &.inline {
259 padding-right: 0;
260 }
261 }
262}
263pre {
264 padding: 1rem;
265 font-size: 1rem;
266}
267.files .panel ul a.readme {
268 display: flex;
269 font-weight: bold;
270 align-items: center;
271 color: #91fff2;
272 &.active {
273 --muted: #91fff2;
274 }
275 .line {
276 display: block;
277 width: 53px;
278 margin-right: 8px;
279 margin-left: 2px;
280 height: 2px;
281 background-color: var(--muted);
282 }
283}
284.panel .content::-webkit-scrollbar {
285 width: 10px;
286}
287.panel .content::-webkit-scrollbar-thumb {
288 background-color: var(--bar);
289 border: 2px solid var(--dark-bg);
290 border-radius: 8px;
291}
292.panel .content::-webkit-scrollbar-track {
293 background-color: var(--scroll-bg);
294}
295.tooltip {
296 position: absolute;
297 left: 0;
298 top: 35px;
299 background-color: var(--tooltip);
300 pointer-events: none;
301 padding-right: 1rem;
302 border-bottom-right-radius: 8px;
303 border-top-right-radius: 8px;
304 white-space: nowrap;
305 z-index: 100;
306}
307h3 {
308 padding-left: 0.25rem;
309 font-size: 1rem;
310 margin: 0;
311 margin-top: 8px;
312 margin-bottom: 2px;
313 text-decoration: underline;
314 text-underline-offset: 1px;
315 text-decoration-thickness: 2px;
316}
317@keyframes fadeIn {
318 from {
319 opacity: 0;
320 }
321 to {
322 opacity: 1;
323 }
324}
325.file-view {
326 display: flex;
327 flex-direction: column;
328}
329.bold-slash {
330 font-weight: bold;
331 text-shadow: 1px 0 0 var(--color);
332}
333.size {
334 display: inline-block;
335 font-size: 0.9rem;
336 color: var(--muted);
337 padding-left: 0.4rem;
338}
339.first .size {
340 display: inline-block;
341 font-size: 0.7rem;
342 padding-left: 0.2rem;
343 transform: translateY(1px);
344}
345.mobile-back {
346 display: none;
347}
348.actions .download::before {
349 content: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIiB3aWR0aD0iMjQiIGZpbGw9IiNmZmZmZmYiPjxwYXRoIGQ9Ik00ODAtMzIwIDI4MC01MjBsNTYtNTggMTA0IDEwNHYtMzI2aDgwdjMyNmwxMDQtMTA0IDU2IDU4LTIwMCAyMDBaTTI0MC0xNjBxLTMzIDAtNTYuNS0yMy41VDE2MC0yNDB2LTEyMGg4MHYxMjBoNDgwdi0xMjBoODB2MTIwcTAgMzMtMjMuNSA1Ni41VDcyMC0xNjBIMjQwWiIvPjwvc3ZnPg==);
350 transform: scale(1.2);
351}
352.actions .full-screen::before {
353 content: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNMTIwLTEyMHYtMzIwaDgwdjE4NGw1MDQtNTA0SDUyMHYtODBoMzIwdjMyMGgtODB2LTE4NEwyNTYtMjAwaDE4NHY4MEgxMjBaIi8+PC9zdmc+);
354}
355.ico {
356 display: inline-block;
357 flex: 0 0 19px;
358 height: 19px;
359 position: relative;
360 width: 19px;
361 margin-right: 2px;
362 &::before {
363 content: " ";
364 position: absolute;
365 transform: translate(-2px, 3px);
366 width: 20px;
367 height: 20px;
368 background-color: var(--muted);
369 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNMjU5LjcyLTY0cS00MC40NSAwLTY5LjA4LTI4Ljc5UTE2Mi0xMjEuNTggMTYyLTE2MnYtNjM2cTAtNDAuNDIgMjguNzktNjkuMjFRMjE5LjU3LTg5NiAyNjAtODk2aDMwNGwyMzQgMjMzdjUwMXEwIDQwLjQyLTI4LjggNjkuMjFRNzQwLjQtNjQgNjk5Ljk2LTY0SDI1OS43MlpNNTA0LTYwMmgxOTZMNTA0LTc5OHYxOTZaIi8+PC9zdmc+);
370 }
371}
372.header .ico::before {
373 transform: translate(-2px, 0);
374}
375/* file icons alter the mask image. 24x24 */
376.ico-dir::before {
377 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNMTYzLjA0LTEyMC4wOXEtNTEuMyAwLTg3LjEyLTM1LjgzLTM1LjgzLTM1LjgyLTM1LjgzLTg3LjEydi00NzMuOTJxMC01MS4zIDM1LjgzLTg3LjEyIDM1LjgyLTM1LjgzIDg3LjEyLTM1LjgzaDIxMS41M0w0ODAtNzM0LjQ4aDMxNi45NnE1MS4zIDAgODcuMTIgMzUuODMgMzUuODMgMzUuODMgMzUuODMgODcuMTN2MzY4LjQ4cTAgNTEuMy0zNS44MyA4Ny4xMi0zNS44MiAzNS44My04Ny4xMiAzNS44M0gxNjMuMDRabTAtMTIyLjk1aDYzMy45MnYtMzY4LjQ4SDQyOS4yMkwzMjMuNzgtNzE2Ljk2SDE2My4wNHY0NzMuOTJabTAgMHYtNDczLjkyIDQ3My45MloiLz48L3N2Zz4=);
378}
379.active .ico-dir::before, .ico-dir-open::before {
380 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNMTU3LjgzLTEyNC42NXEtNDYuOTMgMC04MC4wNi0zMy4xMi0zMy4xMi0zMy4xMy0zMy4xMi04MC4wNnYtNDg0LjM0cTAtNDcuMTcgMzMuMTItODAuMTggMzMuMTMtMzMgODAuMDYtMzNoMjE2LjQxTDQ4MC03MjkuNTloMzIyLjE3cTQ3LjE3IDAgODAuMTggMzMuMTMgMzMgMzMuMTIgMzMgODAuMDVINDMzLjEzTDMyNy4zNy03MjIuMTdIMTU3LjgzdjQ3NC40NWw4NS40Ny0yODguNjloNzExLjcybC05MS4yOCAzMDYuMTVxLTE2LjY3IDU3LjMtNTAuOTIgODEuNDYtMzQuMjUgMjQuMTUtOTkuMDggMjQuMTVIMTU3LjgzWm0xMTUuODQtMTEzLjE4aDQ3My45NGw1NC42NS0xODUuNDFIMzI4LjA5bC01NC40MiAxODUuNDFabTAgMCA1NC40Mi0xODUuNDEtNTQuNDIgMTg1LjQxWk0xNTcuODMtNjE2LjQxdi0xMDUuNzYgMTA1Ljc2WiIvPjwvc3ZnPg==);
381}
382.ico-webpage::before {
383 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNNDgwLTY0cS04NiAwLTE2Mi0zMi41dC0xMzIuNS04OVExMjktMjQyIDk2LjUtMzE4VDY0LTQ4MHEwLTg2IDMyLjUtMTYydDg5LTEzMi41UTI0Mi04MzEgMzE4LTg2My41VDQ4MC04OTZxODYgMCAxNjIgMzIuNXQxMzIuNSA4OVE4MzEtNzE4IDg2My41LTY0MlQ4OTYtNDgwcTAgODYtMzIuNSAxNjJ0LTg5IDEzMi41UTcxOC0xMjkgNjQyLTk2LjVUNDgwLTY0Wm0wLTEwMnExNS0xNiAzMS02M3QyNS05OUg0MjRxOSA1MiAyNSA5OXQzMSA2M1ptLTEwMS0xMnEtMTMtMjctMjIuNS02NVQzNDAtMzI4SDIwMXEyNyA1NCA3NSA5My41VDM3OS0xNzhabTIwMiAwcTU1LTE3IDEwMy01Ni41dDc1LTkzLjVINjIwcS03IDQ3LTE2LjUgODVUNTgxLTE3OFpNMTcwLTQxMGgxNTlxLTEtMTctMS41LTM1LjVUMzI3LTQ4MnEwLTE4IC41LTM1LjVUMzI5LTU1MEgxNzBxLTUgMTctNi41IDM0LjVUMTYyLTQ4MHEwIDE4IDEuNSAzNS41VDE3MC00MTBabTI0MyAwaDEzNHEyLTE4IDIuNS0zNS41dC41LTM0LjVxMC0xNy0uNS0zNXQtMi41LTM1SDQxM3EtMiAxNy0yLjUgMzV0LS41IDM1cTAgMTcgLjUgMzV0Mi41IDM1Wm0yMTggMGgxNTlxNS0xNyA2LjUtMzQuNVQ3OTgtNDgwcTAtMTgtMS41LTM2dC02LjUtMzRINjMxcTEgMTcgMS41IDM1LjV0LjUgMzYuNXEwIDE4LS41IDM1LjVUNjMxLTQxMFptLTExLTIyMmgxMzlxLTI3LTU0LTc1LTkzLjVUNTgxLTc4MnExMyAyNyAyMi41IDY1dDE2LjUgODVabS0xOTYgMGgxMTJxLTktNTItMjUtOTguNVQ0ODAtNzk5cS0xNSAyMi0zMSA2OC41VDQyNC02MzJabS0yMjMgMGgxMzlxNy00NyAxNi41LTg1dDIyLjUtNjVxLTU1IDE3LTEwMyA1Ni41VDIwMS02MzJaIi8+PC9zdmc+);
384}
385.ico-image::before {
386 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNMjEyLTc2cS01Ny4xMiAwLTk2LjU2LTM5LjQ0UTc2LTE1NC44OCA3Ni0yMTJ2LTUzNnEwLTU3LjEzIDM5LjQ0LTk2LjU2UTE1NC44OC04ODQgMjEyLTg4NGg1MzZxNTcuMTMgMCA5Ni41NiAzOS40NFE4ODQtODA1LjEzIDg4NC03NDh2NTM2cTAgNTcuMTItMzkuNDQgOTYuNTZRODA1LjEzLTc2IDc0OC03NkgyMTJabTQtMTg2aDUyOEw1NzEtNTAyIDQ1MC0zNDFsLTkxLTEyMS0xNDMgMjAwWm0xMjQuMjQtMjcwcTM3LjE4IDAgNjIuNDctMjUuNTNRNDI4LTU4My4wNSA0MjgtNjIwLjI0cTAtMzcuMTgtMjUuNTMtNjIuNDdRMzc2Ljk1LTcwOCAzMzkuNzYtNzA4cS0zNy4xOCAwLTYyLjQ3IDI1LjUzUTI1Mi02NTYuOTUgMjUyLTYxOS43NnEwIDM3LjE4IDI1LjUzIDYyLjQ3UTMwMy4wNS01MzIgMzQwLjI0LTUzMloiLz48L3N2Zz4=);
387}
388.ico-video::before {
389 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNMTk4LTE2MnEtMzkuNzMgMC02OC44Ni0yOS4xNFExMDAtMjIwLjI3IDEwMC0yNjB2LTQ0MHEwLTQwLjQyIDI5LjE0LTY5LjIxUTE1OC4yNy03OTggMTk4LTc5OGg0NDBxNDAuNDIgMCA2OS4yMSAyOC43OVE3MzYtNzQwLjQyIDczNi03MDB2MTU0bDE3Mi0xNzJ2NDc2TDczNi00MTR2MTU0cTAgMzkuNzMtMjguNzkgNjguODZRNjc4LjQyLTE2MiA2MzgtMTYySDE5OFoiLz48L3N2Zz4=);
390}
391.ico-blend::before {
392 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNmZmYiIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNi4zNiAxNC4xYy0uMTItLjM5LS4yLS45LS4yLTEuMTZsLS4wMi0uMDFjMC0uMjYuMDUtLjcuMDUtLjdsLTMuOSAzLjIxYy0uNy41Ni0xLjYxLjU1LTIuMDQgMC0uNDMtLjU0LS4yMS0xLjQuNDYtMS45MmwuMDMtLjAyIDcuMTktNS42LTQuMDIuMDFjLS42OCAwLTEuMTMtLjQ2LTEtMS4wMS4xMy0uNTUuNzYtLjk4IDEuNDEtLjk4aDcuOTRzLS42OC0xLjAzLTEuMzItMS41Yy0uNDctLjM1LTEuMi0uNzgtMS4yLS43OHMtLjQ2LS4xNy0xLjI4LS42OGMtLjgyLS41MS0uMi0xLjcuNTktMS45LjUgMCAxLjM4LjQzIDIuMjEuODMgMi44NCAxLjQgNS43IDQuMiA2LjMgNC44Mi41OS42MiAxLjEzIDEuMjUgMS41NCAxLjlhNS45IDUuOSAwIDAgMS0uNyA3LjE3IDcuNyA3LjcgMCAwIDEtMi4zIDEuOTUgNy40MyA3LjQzIDAgMCAxLTYuMS4wMWMtLjktLjQtMi4yMi0xLjU4LTIuMjItMS41OHMtMS4xNS0xLjIyLTEuNDItMi4wNVptNi44MiAxLjg4YzIuMyAwIDQuMTYtMS44IDQuMTYtNCAwLTIuMjEtMS44Ni00LTQuMTYtNFM5IDkuNzcgOSAxMS45OGMwIDIuMiAxLjg3IDQgNC4xNyA0WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PGVsbGlwc2UgY3g9IjEzLjI3IiBjeT0iMTIuMDYiIHJ4PSIxLjgxIiByeT0iMS45NSIvPjwvc3ZnPg==);
393}
394.ico-fusion::before {
395 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyMCAyMCI+PGNpcmNsZSBjeD0iOS4yMiIgY3k9IjE3LjU4IiByPSIxLjUiIGZpbGw9IiNEOUQ5RDkiLz48cGF0aCBmaWxsPSIjRDlEOUQ5IiBkPSJNMTYuNDMgMi45NUEyLjk1IDIuOTUgMCAwIDEgMTEuNyA1LjNhMi45NCAyLjk0IDAgMCAwLTQuMDEgMS4xMSAyLjk1IDIuOTUgMCAxIDEtLjg1LTMuNDMgMi43NiAyLjc2IDAgMCAwIDMuOS0xLjEyIDIuOTUgMi45NSAwIDAgMSA1LjY5IDEuMDlabS0uNjkgNy40NWEyLjE4IDIuMTggMCAwIDEtMy41IDEuNzMgMi4xNyAyLjE3IDAgMCAwLTIuOTYuODIgMi4xOCAyLjE4IDAgMSAxLS42Mi0yLjU0IDIuMDQgMi4wNCAwIDAgMCAyLjg3LS44MiAyLjE4IDIuMTggMCAwIDEgNC4yMS44WiIvPjwvc3ZnPg==);
396}
397.ico-audio::before {
398 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNNTM2LTc4di0xMDFxMTA2LTIzIDE3My0xMDguNVQ3NzYtNDgxcTAtMTA3LTY4LTE5MC41VDUzNi03ODF2LTEwMXExNDcgMjMgMjQyLjUgMTM3VDg3NC00ODJxMCAxNTAtOTUgMjY1LjVUNTM2LTc4Wk04Ni0zNjV2LTIzMmgxNThsMjIwLTIyMnY2NzZMMjQ0LTM2NUg4NlptNDUwIDQ3di0zMjRxNDkgMjEgNzguNSA2NC41VDY0NC00ODFxMCA1NC0yOS41IDk3LjVUNTM2LTMxOFoiLz48L3N2Zz4=);
399}
400.ico-archive::before {
401 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNNDQ0LjQzLTU3Ljk2di00MDMuNDNMMTA0LjA5LTY1NC4yMnYzMzMuNTdxMCAzMC45NSAxNS4yNiA1Ny42OXQ0Mi4yMiA0MmwyODIuODYgMTYzWm03Mi0xIDI4MS41Ny0xNjJxMjYuOTYtMTUuMjYgNDIuMjItNDIgMTUuMjYtMjYuNzQgMTUuMjYtNTcuNjl2LTMzNS43TDUxNi40My00NjMuODN2NDA0Ljg3Wm0xNzQuMTQtNTg3Ljg3IDEzNC42NS03NS4zOS0yODguMTgtMTY1LjNxLTI2LjUyLTE1LjI2LTU3LjA0LTE1LjI2dC01Ny40OCAxNS4yNmwtNzQuNjEgNDMuMyAzNDIuNjYgMTk3LjM5Wk00NzgtNTI1LjI2bDE0MC04MC0zNDQuMjItMTk3Ljk2LTE0MC41NiA4MS41N0w0NzgtNTI1LjI2WiIvPjwvc3ZnPg==);
402}
403.ico-text::before {
404 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNOTgtMjA4di0xMjhoNTI0djEyOEg5OFptMC0yMDh2LTEyOGg3NjR2MTI4SDk4Wm0wLTIwOXYtMTI4aDc2NHYxMjhIOThaIi8+PC9zdmc+);
405}
406.ico-link::before {
407 transform: translate(-2px, 3px);
408 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNNDMyLTI4OEgyODhxLTc5LjY4IDAtMTM1Ljg0LTU2LjIzUTk2LTQwMC40NSA5Ni00ODAuMjMgOTYtNTYwIDE1Mi4xNi02MTZxNTYuMTYtNTYgMTM1Ljg0LTU2aDE0NHY3MkgyODhxLTUwIDAtODUgMzV0LTM1IDg1cTAgNTAgMzUgODV0ODUgMzVoMTQ0djcyWm0tOTYtMTU2di03MmgyODh2NzJIMzM2Wm0xOTIgMTU2di03MmgxNDRxNTAgMCA4NS0zNXQzNS04NXEwLTUwLTM1LTg1dC04NS0zNUg1Mjh2LTcyaDE0NHE3OS42OCAwIDEzNS44NCA1Ni4yMyA1Ni4xNiA1Ni4yMiA1Ni4xNiAxMzZRODY0LTQwMCA4MDcuODQtMzQ0IDc1MS42OC0yODggNjcyLTI4OEg1MjhaIi8+PC9zdmc+);
409}
410.ico-readme::before {
411 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNNDI0LTI2N2gxMTJ2LTI2MUg0MjR2MjYxWm01NS42MS0zMTlxMjUuODkgMCA0My4xNC0xNi44NlE1NDAtNjE5LjczIDU0MC02NDUuNjFxMC0yNS44OS0xNi44Ni00My4xNFE1MDYuMjctNzA2IDQ4MC4zOS03MDZxLTI1Ljg5IDAtNDMuMTQgMTYuODZRNDIwLTY3Mi4yNyA0MjAtNjQ2LjM5cTAgMjUuODkgMTYuODYgNDMuMTRRNDUzLjczLTU4NiA0NzkuNjEtNTg2Wm0uNjcgNTM2cS04OC45MiAwLTE2Ny43NS0zMy4xLTc4LjgyLTMzLjExLTEzNy41Ny05MS44NlQ4My4xLTMxMi40OVE1MC0zOTEuMjggNTAtNDgwLjQ2cTAtODkuNDQgMzMuMTYtMTY3LjQ5IDMzLjE3LTc4LjA1IDkyLjE4LTEzNi45NCA1OS4wMS01OC44OSAxMzcuNTMtOTJRMzkxLjM5LTkxMCA0ODAuNDYtOTEwcTg5LjQzIDAgMTY3LjUyIDMzLjA5IDc4LjA5IDMzLjEgMTM2Ljk2IDkxLjk3IDU4Ljg3IDU4Ljg3IDkxLjk3IDEzNy4yMVE5MTAtNTY5LjM4IDkxMC00ODAuMTl0LTMzLjExIDE2Ny41MnEtMzMuMTEgNzguMzItOTIgMTM3LjMzUTcyNi0xMTYuMzMgNjQ3LjcyLTgzLjE2IDU2OS40NS01MCA0ODAuMjgtNTBaIi8+PC9zdmc+);
412}
413.ico-chat::before {
414 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNNTAtNDZ2LTc0MXEwLTUzLjgzIDM3LjA5LTkwLjkxUTEyNC4xOC05MTUgMTc4LTkxNWg2MDRxNTMuODMgMCA5MC45MSAzNy4wOVE5MTAtODQwLjgzIDkxMC03ODd2NDU5cTAgNTMuODMtMzcuMDkgOTAuOTFRODM1LjgzLTIwMCA3ODItMjAwSDIwNEw1MC00NlptMTg0LTMzOGgzNDd2LTcySDIzNHY3MlptMC0xMzhoNDkydi03MkgyMzR2NzJabTAtMTM4aDQ5MnYtNzJIMjM0djcyWiIvPjwvc3ZnPg);
415}
416.ico-snow::before {
417 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNNDU2LTI4MyAzMzYtMTYxcS04IDgtMTYuNSA4dC0xNy41LTdxLTgtOS04LTE4dDgtMTdsMTU0LTE1M3YtMTA4SDM1MEwxOTQtMzAycS04IDktMTcgOC41dC0xNy04LjVxLTgtOS04LTE3LjV0OS0xNy41bDEyNC0xMTlIMTI4cS03IDAtMTQuNS02LjVUMTA2LTQ3OXEwLTcgNi41LTE1dDE2LjUtOGgxNTZMMTYxLTYyM3EtOC04LTgtMTYuNXQ3LTE2LjVxOS05IDE4LTl0MTcgOWwxNTUgMTU0aDEwNnYtMTEwTDMwMi03NjRxLTgtOC04LTE3dDgtMTdxOS04IDE3LjUtOHQxNy41IDlsMTE5IDEyMHYtMTU0cTAtNyA2LjUtMTV0MTYuNS04cTcgMCAxNSA4dDggMTV2MTU0bDEyMS0xMjJxOC04IDE2LjUtOHQxNi41IDhxOSA4IDkgMTd0LTkgMTdMNTAyLTYxMnYxMTBoMTA4bDE1NC0xNTVxOC04IDE3LTh0MTcgOHE4IDkgOCAxNy41dC05IDE3LjVMNjc1LTUwMmgxNTZxNyAwIDE1IDh0OCAxNXEwIDEwLTggMTYuNXQtMTUgNi41SDY3NWwxMjMgMTIwcTkgOCA5IDE2LjV0LTggMTcuNXEtOCA4LTE3IDguNXQtMTgtNy41TDYxMC00NTZINTAydjEwOGwxNTQgMTU0cTkgOCA5IDE3LjV0LTggMTYuNXEtOSA4LTE3LjUgOHQtMTYuNS04TDUwMi0yODN2MTU1cTAgNy04IDE0LjV0LTE1IDcuNXEtMTAgMC0xNi41LTYuNVQ0NTYtMTI5di0xNTRaIi8+PC9zdmc+);
418}
419.ico-code::before {
420 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNMzE5LTIwMCAzOC00ODBsMjgyLTI4MiA5MSA5MC0xOTAgMTkxIDE5MCAxODktOTIgOTJabTMyMiAxLTkxLTkxIDE5MC0xOTAtMTkwLTE5MCA5MS05MCAyODEgMjgwLTI4MSAyODFaIi8+PC9zdmc+);
421}
422.ico-json::before {
423 mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjBweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyMHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNNjE0LjA0LTE1Ni42NXYtMTAzLjk0aDM1LjE4cTIwLjc4IDAgMzUuNDgtMTQuODMgMTQuNzEtMTQuODIgMTQuNzEtMzUuNnYtNDkuNDZxMC00Ni41MiAzMC4yNi04MC4xNiAzMC4yNi0zMy42NCA3Ni41NS00MC42NHYtMi4yNHEtNDYuNTItMy45Ni03Ni42Ny0zNi43Mi0zMC4xNC0zMi43Ni0zMC4xNC03OS4yOHYtNDkuN3EwLTIwLjc4LTE0LjcxLTM1LjQ4LTE0LjctMTQuNzEtMzUuNDgtMTQuNzFoLTM1LjE4di0xMDMuOTRINjc1cTUzLjQzIDAgOTAuODkgMzcuOTZ0MzcuNDYgOTEuNjN2NDkuNDZxMCAyMC43NyAxNC4zMyAzNS42IDE0LjMyIDE0LjgzIDMyLjgyIDE0LjgzaDQ4Ljg1djE4Ny43NEg4NTAuNXEtMTguNSAwLTMyLjgyIDE0LjcxLTE0LjMzIDE0LjcxLTE0LjMzIDM1LjQ5djQ5LjY5cTAgNTMuNjctMzcuNDYgOTEuNjMtMzcuNDYgMzcuOTYtOTAuODkgMzcuOTZoLTYwLjk2Wm0tMzI5LjA0IDBxLTUzLjQzIDAtOTAuODktMzcuOTZ0LTM3LjQ2LTkxLjYzdi00OS42OXEwLTIwLjc4LTE0LjcxLTM1LjQ5dC0zNi40OC0xNC43MUg2MC42NXYtMTg3Ljc0aDQ0LjgxcTIxLjc3IDAgMzYuNDgtMTQuODMgMTQuNzEtMTQuODMgMTQuNzEtMzUuNnYtNDkuNDZxMC01My42NyAzNy40Ni05MS42MyAzNy40Ni0zNy45NiA5MC44OS0zNy45Nmg2MC45NnYxMDMuOTRoLTM0Ljk0cS0yMC43OCAwLTM1LjYgMTQuNzEtMTQuODMgMTQuNy0xNC44MyAzNS40OHY0OS43cTAgNDcuNTItMzAuMTQgODAuNzgtMzAuMTUgMzMuMjYtNzYuNDMgMzQuMjJ2Mi4zOXE0Ni4yOCA1Ljg1IDc2LjQzIDM5Ljk5IDMwLjE0IDM0LjE0IDMwLjE0IDgxLjY2djQ5LjQ2cTAgMjAuNzggMTQuODMgMzUuNiAxNC44MiAxNC44MyAzNS42IDE0LjgzaDM0Ljk0djEwMy45NEgyODVaIi8+PC9zdmc+);
424}
425.loading {
426 animation: loading 2s linear infinite;
427 background-color: hsl(from var(--bg) h s calc(l + 20) / 50%) !important;
428}
429@keyframes loading {
430 from {
431 opacity: 0.4;
432 }
433 50% {
434 opacity: 0.7;
435 }
436 to {
437 opacity: 0.4;
438 }
439}
440.mobile {
441 display: none !important;
442}
443.file-view-image, .file-view-video, .file-view-audio {
444 background-color: lch(from var(--dark-bg) calc(l - 3) calc(c - 15) h);
445}
446.file-view-video, .file-view-audio {
447 display: flex;
448 justify-content: center;
449 align-items: center;
450 & > * {
451 max-width: 100%;
452 max-height: 100%;
453 object-fit: contain;
454 }
455}
456.file-view-download {
457 p:first-child {
458 margin-top: 2rem;
459 }
460 p {
461 margin: 0.5rem 2rem;
462 max-width: 60ch;
463 }
464 code {
465 background-color: lch(from var(--dark-bg) calc(l - 5) calc(c - 5) h);
466 padding: 0.3rem 0.5rem;
467 border-radius: 0.3rem;
468 }
469}
470.speedbump {
471 z-index: 1;
472 position: relative;
473 canvas {
474 position: absolute;
475 top: 0;
476 left: 0;
477 width: 100%;
478 height: 100%;
479 z-index: -1;
480 }
481 header {
482 font-family: c1;
483 height: max(min(40vh, 400px), 100px);
484 color: #00ff80;
485 letter-spacing: 0.8ch;
486 margin-right: -0.8ch;
487 font-size: 6vw;
488 display: flex;
489 align-items: center;
490 justify-content: center;
491 font-variation-settings: "wght" 50;
492 text-shadow: 0 0 20px #00ff8022, 0 0 10px #00ff8033;
493 margin-bottom: 2rem;
494 h1 {
495 flex: 1;
496 margin: 0;
497 padding: 0;
498 display: flex;
499 align-items: center;
500 justify-content: center;
501 }
502 }
503 p {
504 max-width: 50ch;
505 margin: 0 auto 1rem auto;
506 color: #ecffea88;
507 line-height: 1.5;
508 letter-spacing: 0.01em;
509 word-spacing: 0.3em;
510 text-align: center;
511 font-size: 1.2rem;
512 }
513 button {
514 background-color: #00ff80bb;
515 color: #111318;
516 border: none;
517 padding: 0.5rem 1rem;
518 border-radius: 0.3rem;
519 font-size: 1.2rem;
520 font-weight: 400;
521 cursor: pointer;
522 letter-spacing: 0.5rem;
523 padding-right: 0.5rem;
524 }
525 .enter-container {
526 display: flex;
527 justify-content: center;
528 align-items: center;
529 margin-top: 1rem;
530 }
531 .image-grid {
532 display: grid;
533 grid-template-columns: repeat(3, 1fr);
534 grid-template-rows: repeat(3, 1fr);
535 gap: 0.5rem;
536 margin: 0 auto;
537 background-color: #050d06;
538 padding: 0.5rem;
539 border-radius: 0.75rem;
540 button {
541 background-color: #0c1f0e;
542 width: 100%;
543 max-width: 100px;
544 aspect-ratio: 1/1;
545 padding: 0;
546 margin: 0;
547 cursor: pointer;
548 border-radius: 0.5rem;
549 img {
550 width: 100%;
551 height: 100%;
552 display: block;
553 opacity: 0.75;
554 border-radius: 0.5rem;
555 }
556 &:hover {
557 img {
558 opacity: 0.85;
559 }
560 }
561 }
562 }
563}
564.lyrics {
565 align-self: flex-start;
566}
567.fullscreen-canvas {
568 position: fixed;
569 top: 0;
570 left: 0;
571 width: 100vw;
572 height: 100vh;
573 z-index: -1;
574 pointer-events: none;
575 user-select: none;
576 touch-action: none;
577}
578.cotyledon-link {
579 position: absolute;
580 bottom: 0;
581 right: 0;
582 color: #27143f !important;
583 padding: 0.5rem 1rem;
584 border-radius: 0.3rem;
585}
586.convo {
587 padding: 1rem;
588 .line {
589 margin-bottom: 0.5rem;
590 }
591 /* different colors for different ppl */
592 .s-other_a {
593 padding-left: 4rem;
594 color: var(--primary);
595 }
596 .s-other_b {
597 padding-left: 8rem;
598 color: hsl(from var(--primary) calc(h + 200) s l);
599 }
600 .s-other_b2 {
601 padding-left: 4rem;
602 color: hsl(from var(--primary) calc(h + 200) s l);
603 }
604 .s-other_c {
605 padding-left: 12rem;
606 color: hsl(from var(--primary) calc(h + 100) s l);
607 }
608 .s-other_d {
609 padding-left: 4rem;
610 color: hsl(from var(--primary) calc(h + 50) s l);
611 }
612 .s-other_e {
613 padding-left: 4rem;
614 color: hsl(from var(--primary) calc(h + 80) s l);
615 }
616 .s-other_f {
617 padding-left: 4rem;
618 color: #00ff80;
619 }
620 hr {
621 margin-top: 2rem;
622 margin-bottom: 2rem;
623 border: none;
624 border-top: 2px solid var(--muted);
625 }
626}
627:not(.active) .ext {
628 font-size: 80%;
629 color: var(--muted);
630}
631.file-view-code {
632 color: lch(from var(--primary) 90 10 h / 0.88);
633
634 .comment {
635 color: var(--muted);
636 }
637 .keyword {
638 font-weight: bold;
639 color: lch(from var(--primary) 100 20 h / 1);
640 }
641 .string {
642 color: lch(from var(--primary) calc(l + 30) calc(c + 30) h);
643 }
644 .constant {
645 color: lch(from var(--primary) calc(l + 30) calc(c - 30) h);
646 }
647 .method {
648 color: lch(from var(--primary) l c calc(h - 25));
649 }
650 .class {
651 color: lch(from var(--primary) l c calc(h + 25));
652 }
653 .builtin {
654 color: var(--primary);
655 font-weight: bold;
656 }
657 .parameter {
658 font-style: italic;
659 }
660 .variable {
661 color: lch(from var(--primary) 90 30 h / 0.88);
662 }
663}
664.for_everyone {
665 max-width: 69ch;
666 padding: 1rem 3rem;
667 font-family: rmo, monospace;
668 line-height: 1;
669 &:last-child {
670 padding-bottom: 3rem;
671 }
672 &:first-child {
673 padding-top: 3rem;
674 }
675 p {
676 /* line */
677 margin: 0;
678 min-height: 1rem;
679 margin-bottom: 0.5rem;
680 }
681 p.normal {
682 line-height: 1.5;
683 }
684 blockquote {
685 margin-left: 0;
686 padding-left: 1rem;
687 border-left: 2px solid #f66244;
688 color: #ffbfb2;
689 line-height: 1.5;
690 p {
691 margin-bottom: 0.5rem;
692 }
693 }
694}
695.fade-slide-in {
696 animation: fadeSlideIn 0.4s cubic-bezier(0.3, 0.8, 0.3, 1);
697}
698@keyframes fadeSlideIn {
699 from {
700 opacity: 0.5;
701 transform: translateY(12px);
702 }
703 to {
704 opacity: 1;
705 transform: translateY(0);
706 }
707}
708.notfound {
709 p {
710 text-align: center;
711 }
712 a {
713 text-decoration: underline;
714 }
715}
716.nodate {
717 padding-left: 0.5rem;
718}
719
720/* MOBILE */
721@media (max-width: 1000px) {
722 html, body {
723 overflow: unset;
724 width: unset;
725 height: unset;
726 }
727 .mobile {
728 display: inline !important;
729 }
730 .desktop {
731 display: none !important;
732 }
733 h3 {
734 padding-left: 1rem;
735 font-size: 1.2rem;
736 }
737 body {
738 overflow-y: auto;
739 }
740 .files {
741 overflow-x: unset;
742 overflow-y: unset;
743 border-bottom: 16px solid var(--dark-bg);
744 min-height: 100vh;
745 .panel {
746 overflow-x: hidden;
747 border: none !important;
748 }
749 .panel, .panel .hsplit {
750 height: unset;
751 min-height: unset;
752 }
753 .panel .header {
754 padding: 0.75rem;
755 gap: 1rem;
756 align-items: center;
757 }
758 .mobile-back {
759 margin-left: -0.75rem;
760 display: block;
761 width: 48px;
762 height: 48px;
763 &::before {
764 display: block;
765 content: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJtMzEzLTQ0MCAyMjQgMjI0LTU3IDU2LTMyMC0zMjAgMzIwLTMyMCA1NyA1Ni0yMjQgMjI0aDQ4N3Y4MEgzMTNaIi8+PC9zdmc+);
766 transform: scale(2);
767 transform-origin: top left;
768 }
769 }
770 .full-screen, .download {
771 width: 48px;
772 height: 48px;
773 &::before {
774 transform: scale(2);
775 }
776 }
777 .panel ul li a {
778 display: flex;
779 flex-direction: column-reverse;
780 padding: 0.5rem 1rem;
781 text-overflow: unset;
782 white-space: wrap;
783 time {
784 font-size: 0.9rem;
785 padding-right: 0;
786 }
787 .size {
788 padding-left: 0;
789 }
790 .size:not(:first-child) {
791 padding-left: 0.5rem;
792 }
793 }
794 .first .size {
795 font-size: 0.9rem;
796 &::before {
797 content: "(";
798 }
799 &::after {
800 content: ")";
801 }
802 }
803 }
804 .panel:not(.last) {
805 display: none;
806 }
807 .panel {
808 position: relative;
809 min-width: unset !important;
810 max-width: unset !important;
811 border-left-width: 10px !important;
812 }
813 .content {
814 height: unset !important;
815 min-width: unset !important;
816 max-width: unset !important;
817 overflow: unset !important;
818 }
819 .hsplit {
820 display: block !important;
821 }
822 .li.readme {
823 display: none !important;
824 }
825 .tooltip {
826 display: none !important;
827 }
828}