summaryrefslogtreecommitdiff
path: root/public/stylesheets/ccc.css
diff options
context:
space:
mode:
Diffstat (limited to 'public/stylesheets/ccc.css')
-rw-r--r--public/stylesheets/ccc.css757
1 files changed, 432 insertions, 325 deletions
diff --git a/public/stylesheets/ccc.css b/public/stylesheets/ccc.css
index cbeea17..8358d06 100644
--- a/public/stylesheets/ccc.css
+++ b/public/stylesheets/ccc.css
@@ -1,3 +1,55 @@
1/* ==========================================================================
2 ccc.css — annotated demolition survey (behavior-preserving rewrite)
3 ==========================================================================
4 Sorted into nine concerns; each banner carries an ASSUMES: line naming
5 the tokens and images it depends on. Within any equal-specificity
6 collision set, relative source order is preserved verbatim.
7 ========================================================================== */
8
9/* ==========================================================================
10 1. DESIGN TOKENS
11 ==========================================================================
12 The desktop layout is a fixed lattice drawn around two images:
13 header.png (909px wide, 145px tall) and left_column.png (continues the
14 header artwork down the left menu band via a wrapper-covering ::before).
15 Change these tokens and the two images must be regenerated — that IS
16 the redesign.
17 NOTE: custom properties cannot appear in @media conditions, so the
18 1015/1016 breakpoint below stays a literal pair. Its provenance is
19 unexplained (roughly --page-width plus a margin allowance).
20 ========================================================================== */
21
22:root {
23 --page-width: 909px; /* header.png's drawn width; the wrapper.
24 Decomposes: 185 left band (135 col + 50 pad)
25 + 490 center at left 200 + 210 right band
26 (155 col + 55 pad) at left 690. 690 + 210
27 = 900: 9px absorbed silently at the right
28 edge. */
29 --header-height: 145px; /* header.png's pixel height; search box and
30 light-mode toggle hang from its bottom
31 edge. */
32 --left-col-width: 135px; /* left band = this + --left-col-pad = 185px */
33 --left-col-pad: 50px;
34 --center-left: 200px; /* 15px gutter beyond the 185px left band */
35 --center-width: 490px;
36 --right-left: 690px; /* = --center-left + --center-width */
37 --right-width: 155px; /* right band = this + --right-pad = 210px */
38 --right-pad: 55px;
39 --search-left: 676px; /* provenance unknown; sits 14px left of
40 --right-left */
41 --toggle-left: 816px; /* provenance unknown; 140px right of
42 --search-left */
43 --burger-right: 54px; /* provenance unknown */
44}
45
46/* ==========================================================================
47 2. RESET & DOCUMENT SCAFFOLD
48 ==========================================================================
49 ASSUMES: nothing from the lattice. Element defaults and generic
50 utilities only.
51 ========================================================================== */
52
1html { 53html {
2 height: 100%; 54 height: 100%;
3 line-height: 1.6rem; 55 line-height: 1.6rem;
@@ -17,6 +69,54 @@ body {
17 height: 100%; 69 height: 100%;
18} 70}
19 71
72img {
73 max-width: 100%;
74}
75
76pre {
77 overflow: auto;
78}
79
80li {
81 line-height: 1.5rem;
82 margin-block-start: 1rem;
83 margin-block-end: 1rem;
84}
85
86dt {
87 font-weight: bold;
88 margin-bottom: 1em;
89}
90
91dd {
92 margin-bottom: 1em;
93}
94
95.pagination {
96 margin-bottom: .5rem;
97}
98
99+ /* Single caller: _headline_image.html.erb's image-count caption
100+ ("N Bilder"), shown only when a gallery has more than one image. */
101.right {
102 text-align: right;
103}
104
105.hide-me {
106 display: none;
107}
108
109/* ==========================================================================
110 3. COLOR SCHEME & LIGHT/DARK TOGGLE
111 ==========================================================================
112 ASSUMES: --header-height, --toggle-left (desktop toggle position);
113 header.png and left_column.png (the invert(50%) treatment); the nonced
114 inline restore script in the layout that re-checks #light-mode before
115 first paint (the JS contract: checkbox id "light-mode", state persisted
116 by the script). Symmetric blocks: each scheme inverts when the toggle
117 is checked.
118 ========================================================================== */
119
20@media (prefers-color-scheme: light) { 120@media (prefers-color-scheme: light) {
21 body:has(#light-mode:checked) { 121 body:has(#light-mode:checked) {
22 color-scheme: dark; 122 color-scheme: dark;
@@ -49,114 +149,221 @@ body {
49 } 149 }
50} 150}
51 151
52img { 152input#light-mode[type="checkbox"] {
53 max-width: 100%; 153 display: none;
54} 154}
55 155
56div#header img { 156label[for=light-mode] {
57 border: none; 157 font-size: 25px;
158 user-select: none;
159 cursor: pointer;
160 filter: grayscale(1) contrast(10%);
58} 161}
59 162
60@media(min-width:1016px) { 163/* Light and dark mode button magic */
61 div#wrapper { 164@media(max-width:1015px) {
62 position: relative; 165 div#light-mode-div {
63 width: 909px; 166 position: absolute;
64 margin: 0 auto 0 auto; 167 left: 170px; /* mobile toolbar offset; provenance unknown — anchors to
65 text-align: left; 168 the viewport, not #toolbox (see section 5) */
66 min-height: 100%;
67 }
68 .break-mobile {
69 display: block;
70 } 169 }
71} 170}
72 171
73pre { 172@media(min-width:1016px) {
74 overflow: auto; 173 div#light-mode-div {
75} 174 position: absolute;
76 175 top: var(--header-height); /* bottom edge of header.png */
77.right { 176 left: var(--toggle-left);
78 text-align: right; 177 }
79} 178}
80 179
81/*------------------links-------------------*/ 180/* ==========================================================================
181 4. LINKS & HEADINGS
182 ==========================================================================
183 ASSUMES: nothing from the lattice. Site-wide type and link colors;
184 the orange is the one brand color that survives theming.
185 ========================================================================== */
82 186
83a { 187a {
84 color: #F8921E; 188 color: #F8921E;
85 text-decoration: none; 189 text-decoration: none;
86} 190}
87 191
88a:visited {
89 color: #D1791A;
90 text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
91}
92
93a:hover { 192a:hover {
94 color: #5b8ca7; 193 color: #5b8ca7;
95} 194}
96 195
97/*------------------headlines-------------------*/
98
99h2 { 196h2 {
100 font-size: 1.5rem; 197 font-size: 1.5rem;
101 font-family: Helvetica, Arial, sans-serif; 198 font-family: Helvetica, Arial, sans-serif;
102 line-height: 1.75rem; 199 line-height: 1.75rem;
103} 200}
104 201
105div#center_column h2 a { 202h3 {
106 color: CanvasText; 203 font-size: 1.3rem;
107 text-decoration: none; 204 text-decoration: none;
205
108} 206}
109 207
110div#center_column h2 a:hover { 208h4 {
111 color: color-mix(in srgb, CanvasText, #808080 50%); 209 font-size: 1.0rem;
210 text-decoration: none;
112} 211}
113 212
114div#center_column h2.headline { 213h1, h2, h3 {
115 margin-top: 10px; 214 word-wrap: anywhere;
215 hyphens:auto;
116} 216}
117 217
118div#center_column .article_partial h2.headline { 218/* ==========================================================================
119 padding-top: 30px; 219 5. LAYOUT GRID
120 margin-bottom: 0.3rem; 220 ==========================================================================
121 border-top: 2px solid #cccccc; 221 ASSUMES: the full token lattice; header.png (drawn width = --page-width,
222 height = --header-height); left_column.png (continues the header art
223 down the left band via the ::before at z-index -10).
224 KNOWN STRUCTURAL DEBT: all three columns are position:absolute on
225 desktop, but #footer lives INSIDE #center_column — a long sidebar can
226 overflow past the footer. The column-height assumption is nowhere
227 enforced.
228 MOBILE ANCHORING: on max-width, #wrapper has no position, so the
229 absolutely positioned toolbox children (#burger-div, #search,
230 #light-mode-div) anchor to the viewport, not to #toolbox.
231 ========================================================================== */
232
233@media(min-width:1016px) {
234 div#wrapper {
235 position: relative;
236 width: var(--page-width); /* header.png's drawn width */
237 margin: 0 auto 0 auto;
238 text-align: left;
239 min-height: 100%;
240 }
241 .break-mobile {
242 display: block;
243 }
122} 244}
123 245
124/* except for erfa list */ 246/* Header */
125div#center_column .chapter_partial h2.headline { 247#header img,
126 border-top: none; 248#header > a {
249 display: block;
250 line-height: 0;
127} 251}
128 252
129div.article_partial h2 a { 253div#header img {
130 text-decoration: none; 254 border: none;
131} 255}
132 256
133h3 { 257#left_column {
134 font-size: 1.3rem; 258 line-height: 1.5em;
135 text-decoration: none; 259}
136 260
261@media(min-width:1016px) {
262 div#left_column::before {
263 content: " ";
264 position: absolute;
265 left: 0;
266 top: 0;
267 width: 100%;
268 height: 100%;
269 box-sizing: border-box;
270 background-image: url(/images/left_column.png);
271 background-position: top right;
272 background-repeat: no-repeat;
273 z-index: -10;
274 }
275 div#left_column {
276 position: absolute;
277 left: 0px;
278 width: var(--left-col-width);
279 min-height: 100px;
280 text-align: right;
281 padding-right: var(--left-col-pad); /* left band total: 185px */
282 }
283
284 div#left_column > a {
285 font-size: 0.8rem;
286 }
137} 287}
138 288
139h4 { 289div#center_column {
140 font-size: 1.0rem; 290 padding-bottom: 40px;
141 text-decoration: none;
142} 291}
143 292
144#left_column { 293@media(max-width: 1015px) {
145 line-height: 1.5em; 294div#center_column {
295 padding: 0 15px 40px 15px;
296}
297}
298
299@media(min-width: 1016px) {
300 div#center_column {
301 position: absolute;
302 background-color: Canvas;
303 left: var(--center-left);
304 width: var(--center-width);
305 }
306}
307
308@media(min-width:1016px) {
309 div#right_column {
310 position: absolute;
311 background-color: Canvas;
312 padding-left: var(--right-pad);
313 left: var(--right-left); /* = center-left + center-width */
314 width: var(--right-width); /* right band total: 210px; 690 + 210 = 900,
315 9px short of --page-width, absorbed
316 silently */
317 height: 100px;
318 }
146} 319}
147 320
148/*------------------main-navigation-------------------*/ 321/* Mobile toolbar strip. */
322@media(max-width:1015px) {
323#toolbox {
324 height: 30px;
325}
326}
327
328/* Footer */
329#footer {
330 border-bottom: 2px solid #aeadad;
331 border-top: 2px solid #aeadad;
332 bottom: 0;
333 color: CanvasText;
334}
335
336#footer p {
337 margin: .5rem auto;
338}
339
340#footer a {
341 margin-left: 1rem;
342 margin-right: 1rem;
343 color: CanvasText;
344}
345
346/* ==========================================================================
347 6. MAIN NAVIGATION & BURGER MENU
348 ==========================================================================
349 ASSUMES: --burger-right; the checkbox-hack markup order in the layout
350 (#toolbox precedes #left_column — the `#toolbox ~ #left_column`
351 sibling selectors break if the layout reorders them); left_column.png
352 behind the desktop nav. Mobile menu is pure CSS: .menu-checkbox state
353 drives both the burger-to-X morph and the menu slide.
354 COLLISION SET (order preserved): div.main_navigation ul base rule
355 before its min-width override — the override's `padding: 0` must win.
356 ========================================================================== */
149 357
150div.main_navigation ul { 358div.main_navigation ul {
151 margin-left: 0; 359 margin-left: 0;
152 padding-left: 0; 360 padding-left: 15px; /* dead duplicate `padding-left: 0` removed */
153 padding-left: 15px;
154 padding-right: 15px; 361 padding-right: 15px;
155 text-align: left; 362 text-align: left;
156} 363}
157 364
158 365
159@media(max-width:1016px) { 366@media(max-width:1015px) {
160 div.main_navigation li:not(:first-child):before { 367 div.main_navigation li:not(:first-child):before {
161 content: '•'; 368 content: '•';
162 margin-left: .3rem; 369 margin-left: .3rem;
@@ -203,7 +410,125 @@ div.main_navigation a.inactive, div.main_navigation span.inactive, div#left_colu
203 color: color-mix(in srgb, CanvasText, #808080 25%); 410 color: color-mix(in srgb, CanvasText, #808080 25%);
204} 411}
205 412
206/*------------------calendar-featured-tags-------------------*/ 413.menu-checkbox {
414 display: none;
415}
416
417.burger-menu {
418 display: none;
419 cursor: pointer;
420}
421
422#burger-div {
423 position: absolute;
424 right: var(--burger-right); /* anchors to the viewport on mobile,
425 see section 5 */
426}
427
428/* Mobile styles */
429@media (max-width: 1015px) {
430 .burger-menu {
431 position: absolute;
432 display: flex;
433 flex-direction: column;
434 transition: transform 0.3s ease, opacity 0.3s ease;
435 }
436
437 .burger-menu span {
438 display: inline-flex;
439 width: 26px;
440 height: 4px;
441 background: color-mix(in srgb, CanvasText, #808080 25%);
442 border-radius: 2px;
443 margin: 3px 0;
444 transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
445 }
446
447 #left_column .main_navigation {
448 width: 100%;
449 position: relative;
450 }
451
452 #toolbox ~ #left_column .main_navigation ul {
453 transition: max-height 0.2s ease-in-out, transform 0.4s ease-in-out, opacity 0.4s ease;
454 overflow: hidden;
455 text-align: center;
456 }
457
458 #toolbox ~ #left_column .main_navigation:first-of-type ul {
459 transform: translateY(-200px);
460 max-height: 0;
461 opacity: 0;
462 z-index: -10;
463 }
464
465 /* Show menu when checkbox is checked */
466 #toolbox:has(.menu-checkbox:checked) ~ #left_column .main_navigation ul {
467 max-height: 400px;
468 opacity: 1;
469 transform: translateY(0);
470 }
471
472 .menu-checkbox:checked + .burger-menu span:nth-child(1) { transform: translateY(10px) rotate(45deg); }
473 .menu-checkbox:checked + .burger-menu span:nth-child(2) { opacity: 0; }
474 .menu-checkbox:checked + .burger-menu span:nth-child(3) { transform: translateY(-10px) rotate(-45deg); }
475}
476
477/* ==========================================================================
478 7. SEARCH
479 ==========================================================================
480 ASSUMES: --header-height, --search-left (desktop box hangs from
481 header.png's bottom edge); viewport anchoring on mobile (section 5).
482 ========================================================================== */
483
484/* Search bar */
485@media(min-width:1016px) {
486 div#search {
487 position: absolute;
488 top: var(--header-height); /* bottom edge of header.png */
489 left: var(--search-left);
490 height: 25px;
491 vertical-align: top;
492 }
493}
494
495@media(max-width:1015px) {
496 div#search {
497 position: absolute;
498 left: 25px; /* mobile toolbar offset; anchors to the viewport */
499 height: 25px;
500 }
501}
502
503div#search input {
504 color: CanvasText !important;
505}
506div#search input[type=search],
507div#search input[type=text] {
508 display: block;
509 padding: 2px;
510 margin: 0px;
511 height: 25px;
512 width: 132px;
513 line-height: 20px;
514 border: solid #808080 1px;
515 background-color: Canvas;
516 border-radius: 5px;
517 margin-right: 5px;
518 text-indent: 0.5rem;
519}
520
521/* ==========================================================================
522 8. SIDEBAR WIDGETS (calendar, tags, featured, open erfas)
523 ==========================================================================
524 ASSUMES: right-column geometry from section 5; div.main_navigation h2
525 also picks up the grouped border rule below.
526 COLLISION SET (order preserved verbatim): the grouped h2 border rule,
527 then the same-specificity div#frontpage_calendar h2 override
528 (border-top: none), then the min-width block that re-adds a border-top
529 for desktop. Moving the override above the group rule would grow a
530 border on the calendar heading.
531 ========================================================================== */
207 532
208div#frontpage_calendar { 533div#frontpage_calendar {
209 display: none; 534 display: none;
@@ -246,7 +571,7 @@ div#open_erfas_today .event_time {
246 color: color-mix(in srgb, CanvasText, #808080); 571 color: color-mix(in srgb, CanvasText, #808080);
247} 572}
248 573
249@media(max-width:1016px) { 574@media(max-width:1015px) {
250 div#tags li { 575 div#tags li {
251 list-style-type: none; 576 list-style-type: none;
252 display: inline-block; 577 display: inline-block;
@@ -278,6 +603,8 @@ div#frontpage_calendar ul, div#tags ul, div#featured_articles ul, div#open_erfas
278 line-height: 1.5em; 603 line-height: 1.5em;
279} 604}
280 605
606/* ODDITY, kept: per-widget icon paddings — delete when these icons rotate
607 out of the featured box */
281div#featured_articles #ds_icon img { 608div#featured_articles #ds_icon img {
282 padding-top: 10px; 609 padding-top: 10px;
283} 610}
@@ -312,302 +639,74 @@ div#featured_articles img {
312 filter: grayscale(1); 639 filter: grayscale(1);
313} 640}
314 641
315dt { 642#tags ul li {
316 font-weight: bold; 643 margin-block-start: 0.5rem;
317 margin-bottom: 1em; 644 margin-block-end: 0.5rem;
318}
319
320dd {
321 margin-bottom: 1em;
322}
323
324/*--------------------------------------------------------------*/
325
326div.author_and_date {
327 font-style: italic;
328 font-family: Georgia;
329 color: color-mix(in srgb, CanvasText, #808080);
330 padding-top: .2rem;
331 padding-bottom: .8rem;
332}
333
334@media(min-width:1016px) {
335 div#left_column::before {
336 content: " ";
337 position: absolute;
338 left: 0;
339 top: 0;
340 width: 100%;
341 height: 100%;
342 box-sizing: border-box;
343 background-image: url(/images/left_column.png);
344 background-position: top right;
345 background-repeat: no-repeat;
346 z-index: -10;
347 }
348 div#left_column {
349 position: absolute;
350 left: 0px;
351 width: 135px;
352 min-height: 100px;
353 text-align: right;
354 padding-right: 50px;
355 }
356
357 div#left_column > a {
358 font-size: 0.8rem;
359 }
360}
361
362.menu-checkbox {
363 display: none;
364}
365
366.burger-menu {
367 display: none;
368 cursor: pointer;
369}
370
371#burger-div {
372 position: absolute;
373 right: 54px;
374}
375
376/* Mobile styles */
377@media (max-width: 1016px) {
378 .burger-menu {
379 position: absolute;
380 display: flex;
381 flex-direction: column;
382 transition: transform 0.3s ease, opacity 0.3s ease;
383 }
384
385 .burger-menu span {
386 display: inline-flex;
387 width: 26px;
388 height: 4px;
389 background: color-mix(in srgb, CanvasText, #808080 25%);
390 border-radius: 2px;
391 margin: 3px 0;
392 transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
393 }
394
395 #left_column .main_navigation {
396 width: 100%;
397 position: relative;
398 }
399
400 #toolbox ~ #left_column .main_navigation ul {
401 transition: max-height 0.2s ease-in-out, transform 0.4s ease-in-out, opacity 0.4s ease;
402 overflow: hidden;
403 text-align: center;
404 }
405
406 #toolbox ~ #left_column .main_navigation:first-of-type ul {
407 transform: translateY(-200px);
408 max-height: 0;
409 opacity: 0;
410 z-index: -10;
411 }
412
413 /* Show menu when checkbox is checked */
414 #toolbox:has(.menu-checkbox:checked) ~ #left_column .main_navigation ul {
415 max-height: 400px;
416 opacity: 1;
417 transform: translateY(0);
418 }
419
420 .menu-checkbox:checked + .burger-menu span:nth-child(1) { transform: translateY(10px) rotate(45deg); }
421 .menu-checkbox:checked + .burger-menu span:nth-child(2) { opacity: 0; }
422 .menu-checkbox:checked + .burger-menu span:nth-child(3) { transform: translateY(-10px) rotate(-45deg); }
423}
424
425div#center_column {
426 padding-bottom: 40px;
427}
428
429@media(max-width: 1016px) {
430div#center_column {
431 padding: 0 15px 40px 15px;
432}
433}
434
435@media(min-width: 1016px) {
436 div#center_column {
437 position: absolute;
438 background-color: Canvas;
439 left: 200px;
440 width: 490px;
441 }
442}
443
444@media(min-width:1016px) {
445 div#right_column {
446 position: absolute;
447 background-color: Canvas;
448 padding-left: 55px;
449 left: 690px;
450 width: 155px;
451 height: 100px;
452 }
453}
454
455div.teaser_ruler {
456 border-top: 1px solid #CCCCCC;
457 border-bottom: 1px dashed #CCCCCC;
458 height: 3px;
459 margin-top: 30px;
460}
461
462div.article_partial {
463 margin-bottom: 30px;
464}
465
466
467div.article_partial p.excerpt {
468 color: CanvasText;
469}
470
471/* Search bar */
472@media(min-width:1016px) {
473 div#search {
474 position: absolute;
475 top: 145px;
476 left: 676px;
477 height: 25px;
478 vertical-align: top;
479 }
480}
481
482@media(max-width:1016px) {
483 div#search {
484 position: absolute;
485 left: 25px;
486 height: 25px;
487 }
488}
489
490div#search input {
491 color: CanvasText !important;
492}
493div#search input[type=search],
494div#search input[type=text] {
495 display: block;
496 padding: 2px;
497 margin: 0px;
498 height: 25px;
499 width: 132px;
500 line-height: 20px;
501 border: solid #808080 1px;
502 background-color: Canvas;
503 border-radius: 5px;
504 margin-right: 5px;
505 text-indent: 0.5rem;
506} 645}
507 646
508/* Header */ 647/* ==========================================================================
509#header img, 648 9. ARTICLE CONTENT
510#header > a { 649 ==========================================================================
511 display: block; 650 ASSUMES: center-column geometry from section 5; TinyMCE emits the
512 line-height: 0; 651 inline-image classes (style-src unsafe-inline in the CSP exists partly
513} 652 for its img[style] output).
653 ========================================================================== */
514 654
515/* Main section */ 655/* Main section */
516.article, .article_partial { 656.article, .article_partial {
517 text-align: left; 657 text-align: left;
518} 658}
519 659
520h1, h2, h3 { 660div#center_column h2 a {
521 word-wrap: anywhere;
522 hyphens:auto;
523}
524
525.pagination {
526 margin-bottom: .5rem;
527}
528
529li {
530 line-height: 1.5rem;
531 margin-block-start: 1rem;
532 margin-block-end: 1rem;
533}
534
535#tags ul li {
536 margin-block-start: 0.5rem;
537 margin-block-end: 0.5rem;
538}
539
540/* Footer */
541#footer {
542 border-bottom: 2px solid #aeadad;
543 border-top: 2px solid #aeadad;
544 bottom: 0;
545 color: CanvasText; 661 color: CanvasText;
662 text-decoration: none;
546} 663}
547 664
548#footer > br { 665div#center_column h2 a:hover {
549 display: none; 666 color: color-mix(in srgb, CanvasText, #808080 50%);
550} 667}
551 668
552#footer p { 669div#center_column h2.headline {
553 margin: .5rem auto; 670 margin-top: 10px;
554} 671}
555 672
556#footer a { 673div#center_column .article_partial h2.headline {
557 margin-left: 1rem; 674 padding-top: 30px;
558 margin-right: 1rem; 675 margin-bottom: 0.3rem;
559 color: CanvasText; 676 border-top: 2px solid #cccccc;
560} 677}
561 678
562@media(max-width:1016px) { 679/* except for erfa list */
563#toolbox { 680div#center_column .chapter_partial h2.headline {
564 display: relative; 681 border-top: none;
565 height: 30px;
566}
567} 682}
568 683
569/* Light and dark mode button magic */ 684div.article_partial h2 a {
570@media(max-width:1016px) { 685 text-decoration: none;
571 div#light-mode-div {
572 position: absolute;
573 left: 170px;
574 }
575} 686}
576 687
577@media(min-width:1016px) { 688div.article_partial {
578 div#light-mode-div { 689 margin-bottom: 30px;
579 position: absolute;
580 top: 145px;
581 left: 816px;
582 }
583}
584input#light-mode[type="checkbox"] {
585 display: none;
586} 690}
587 691
588label[for=light-mode] {
589 font-size: 25px;
590 user-select: none;
591 cursor: pointer;
592 filter: grayscale(1) contrast(10%);
593}
594 692
595.hide-me { 693div.article_partial p.excerpt {
596 display: none; 694 color: CanvasText;
597} 695}
598 696
599/* Temporary glowing style for easterhegg 22 */ 697div.author_and_date {
600#eh22_icon img { 698 font-style: italic;
601 animation: animate 3s linear infinite; 699 font-family: Georgia;
700 color: color-mix(in srgb, CanvasText, #808080);
701 padding-top: .2rem;
702 padding-bottom: .8rem;
602} 703}
603 704
604@keyframes animate { 705div.teaser_ruler {
605 from { 706 border-top: 1px solid #CCCCCC;
606 filter: sepia(100%) hue-rotate(0deg); 707 border-bottom: 1px dashed #CCCCCC;
607 } 708 height: 3px;
608 to { 709 margin-top: 30px;
609 filter: sepia(100%) hue-rotate(360deg);
610 }
611} 710}
612 711
613.chapter_partial_layout { 712.chapter_partial_layout {
@@ -648,3 +747,11 @@ label[for=light-mode] {
648 float: right; 747 float: right;
649 margin-left: 1rem; 748 margin-left: 1rem;
650} 749}
750
751#asset_credits .glightbox-desc {
752 display: none;
753}
754
755#asset_credits .headline_credit {
756 display: block;
757}