Fix layout bug introduced in 6780e8b3.
[lw2-viewer.git] / www / style.css.php
blob400a49ea3fe1b78eaae377c6265cba28eeeb9338
1 <?php
2 header ('Content-type: text/css; charset=utf-8');
4 $platform = @$argv[1] ?: 'Mac';
5 $UI_font = "'Concourse', 'a_Avante', 'GW-Symbols'";
7 $content_width_settings = [
8 'normal' => '900px',
9 'wide' => '1150px',
10 'fluid' => 'calc(100% - 300px)'
13 function fit_content($selector, $property = "width") {
14 foreach (["-moz-fit-content", "fit-content"] as $pvalue) echo
15 "@supports (width: {$pvalue}) {
16 {$selector} {
17 {$property}: {$pvalue};
24 /*************/
25 /* VARIABLES */
26 /*************/
28 :root {
29 --GW-comment-background-color-odd: transparent;
30 --GW-comment-background-color-even: transparent;
31 --GW-comment-background-color-target: transparent;
33 --inverted-display: none;
36 /***************/
37 /* BASE LAYOUT */
38 /***************/
40 html {
41 box-sizing: border-box;
42 font-size: 16px;
44 *, *::before, *::after {
45 box-sizing: inherit;
47 script {
48 display: none !important;
51 /*=------=*/
52 /*= Body =*/
53 /*=------=*/
55 body {
56 padding: 0;
57 margin: 0;
59 body::before {
60 background-color: inherit;
61 position: fixed;
62 width: 100%;
63 height: 100%;
66 body.no-scroll {
67 overflow-y: scroll;
68 position: fixed;
69 width: 100%;
72 /*=----------------------------=*/
73 /*= Immediate children of body =*/
74 /*=----------------------------=*/
76 body > * {
77 max-width: 900px;
80 /* Special styles for special browsers.
81 (This one is a fix for Firefox’s built-in screenshot feature.)
83 body > iframe[id^='firefox-screenshots'] {
84 max-width: unset;
87 #content {
88 margin: 0 auto;
89 padding: 0 30px;
90 position: relative;
91 overflow: visible;
92 display: grid;
93 grid-template-columns: 2fr 1fr 2fr;
95 #content::before {
96 content: "";
97 display: block;
98 position: absolute;
99 top: 0;
100 left: 0;
101 width: 100%;
102 height: 100%;
103 z-index: -1;
104 pointer-events: none;
107 /*=---------=*/
108 /*= Content =*/
109 /*=---------=*/
111 #content > * {
112 grid-column: 1 / span 3;
115 /*=----------------------=*/
116 /*= Floating UI elements =*/
117 /*=----------------------=*/
119 #ui-elements-container {
120 position: fixed;
121 height: 100vh;
122 top: 0;
123 left: 0;
124 right: 0;
125 margin: auto;
126 z-index: 10000;
127 pointer-events: none;
129 #ui-elements-container > * {
130 pointer-events: auto;
133 /*=----------------=*/
134 /*= Images overlay =*/
135 /*=----------------=*/
136 /* (To exclude images in posts from theme tweaks) */
138 #images-overlay {
139 position: absolute;
140 z-index: 1;
141 left: 0;
142 right: 0;
143 margin: auto;
146 /***********/
147 /* NAV BAR */
148 /***********/
150 .nav-bar {
151 margin: 0 -30px;
152 display: flex;
153 order: -11;
154 z-index: 1;
157 /*=---------------=*/
158 /*= Nav bar items =*/
159 /*=---------------=*/
161 .nav-item {
162 flex: 1 1 auto;
164 .nav-item * {
165 text-overflow: ellipsis;
166 white-space: nowrap;
167 overflow: hidden;
169 .nav-inner {
170 padding: 12px 30px;
171 text-align: center;
172 display: block;
173 position: relative;
174 line-height: inherit;
175 width: 100%;
176 background: unset;
178 .nav-bar-top:not(#primary-bar) .nav-inner {
179 padding: 4px 0;
182 #nav-item-sequences .nav-inner::before {
183 font-family: "Font Awesome", "Font Awesome 5 Free";
184 content: "\F5DB";
186 @media only screen and (min-width: 901px) {
187 #nav-item-about .nav-inner {
188 margin-right: 0.5em;
190 #nav-item-sequences .nav-inner::before {
191 font-size: 1rem;
192 display: block;
194 #secondary-bar #nav-item-sequences .nav-inner {
195 font-size: 0;
196 line-height: 1.4;
200 /*=------------=*/
201 /*= Bottom bar =*/
202 /*=------------=*/
204 #bottom-bar {
205 order: 11;
207 h1.listing ~ #bottom-bar {
208 margin-top: 1.25em;
210 #bottom-bar .nav-item {
211 flex: 1 1 0;
214 /*=-----------------=*/
215 /*= Accesskey hints =*/
216 /*=-----------------=*/
218 .nav-inner::after {
219 content: attr(accesskey);
220 display: none;
223 /*=---------------=*/
224 /*= Pagination UI =*/
225 /*=---------------=*/
227 #bottom-bar .nav-item a::before,
228 #top-nav-bar a::before {
229 font-family: "Font Awesome", "Font Awesome 5 Free";
230 font-weight: 900;
231 font-size: 0.8em;
232 position: relative;
233 bottom: 1px;
234 margin-right: 0.5em;
236 #bottom-bar #nav-item-first a::before,
237 #top-nav-bar a.nav-item-first::before {
238 content: "\F33e";
240 #bottom-bar #nav-item-top a::before {
241 content: "\F062";
243 #bottom-bar #nav-item-prev a::before,
244 #top-nav-bar a.nav-item-prev::before {
245 content: "\F060";
247 #bottom-bar #nav-item-next a::before,
248 #top-nav-bar a.nav-item-next::before {
249 content: "\F061";
251 #bottom-bar #nav-item-last a::before,
252 #top-nav-bar a.nav-item-last::before {
253 content: "\F340";
255 #bottom-bar #nav-item-next a::before {
256 margin-left: -2em;
257 margin-right: 0;
258 left: 3.8em;
260 #bottom-bar #nav-item-last a::before {
261 margin-left: -1.8em;
262 margin-right: 0;
263 left: 3.4em;
266 /*= Hover tooltips =*/
268 #top-nav-bar a {
269 position: relative;
271 #top-nav-bar a::after {
272 bottom: calc(100% - 3px);
273 content: attr(data-target-page);
275 #top-nav-bar a::after {
276 display: block;
277 position: absolute;
278 font-size: 0.75rem;
279 width: 100%;
280 line-height: 1;
281 visibility: hidden;
283 #top-nav-bar a:hover::after,
284 #bottom-bar a:hover::after {
285 visibility: visible;
288 /*=-----------------------=*/
289 /*= Decorative bottom bar =*/
290 /*=-----------------------=*/
291 /* (On short pages with no pagination) */
293 #bottom-bar.decorative {
294 position: relative;
296 #bottom-bar.decorative .nav-item {
297 display: none;
300 /*=------------=*/
301 /*= Search tab =*/
302 /*=------------=*/
304 #nav-item-search {
305 flex: 4 1 auto;
307 #nav-item-search form::before {
308 content: "\F002";
309 font-family: "Font Awesome", "Font Awesome 5 Free";
310 font-weight: 900;
311 display: inline-block;
312 vertical-align: top;
313 height: 23px;
314 width: 23px;
316 #nav-item-search input {
317 height: 23px;
318 width: calc(95% - 80px);
319 padding: 1px 4px;
321 #nav-item-search button {
322 height: 21px;
325 /*=-----------=*/
326 /*= Login tab =*/
327 /*=-----------=*/
329 #nav-item-login {
330 position: relative;
331 padding-right: 0.5em;
334 /*******************/
335 /* INBOX INDICATOR */
336 /*******************/
338 #inbox-indicator {
339 position: absolute;
340 top: 1px;
341 right: 0;
342 height: 100%;
343 visibility: hidden;
345 #inbox-indicator::before {
346 content: "\F0E0";
347 font-family: "Font Awesome", "Font Awesome 5 Free";
348 color: #bbb;
349 font-size: 1.1875rem;
350 position: absolute;
351 height: 100%;
352 right: 0;
353 top: 0;
354 padding: 0 0.45em;
355 visibility: visible;
356 font-weight: 900;
358 #inbox-indicator.new-messages::before {
359 color: #f00;
360 text-shadow:
361 0 0 1px #777,
362 0.5px 0.5px 1px #777;
364 a#inbox-indicator:hover::before {
365 color: #fff;
366 text-shadow:
367 0 0 1px #000,
368 0 0 2px #000,
369 0 0 4px #000,
370 0 0 1px #777,
371 0.5px 0.5px 1px #777;
373 a#inbox-indicator.new-messages:hover::before {
374 text-shadow:
375 0 0 1px #f00,
376 0 0 2px #f00,
377 0 0 4px #f00,
378 0 0 1px #777,
379 0.5px 0.5px 1px #777;
382 /****************/
383 /* PAGE TOOLBAR */
384 /****************/
386 .page-toolbar {
387 font-size: 0.9em;
388 line-height: 1.8;
389 text-align: right;
390 margin-right: -20px;
392 #content > .page-toolbar {
393 grid-column: 3;
394 grid-row: span 3;
396 #content.user-page > .page-toolbar {
397 grid-column: 2 / span 2;
398 order: -4;
401 /*=--------------------------=*/
402 /*= Page toolbar items (all) =*/
403 /*=--------------------------=*/
405 .page-toolbar > * {
406 display: inline-block;
407 margin-left: 1.5em;
409 .page-toolbar > form button {
410 padding: 0;
411 text-align: right;
412 white-space: unset;
414 .page-toolbar > form button::before {
415 text-align: center;
417 .page-toolbar .button::before {
418 font-family: "Font Awesome", "Font Awesome 5 Free";
419 font-size: 0.9em;
420 padding-right: 0.3em;
423 /*=-------------------------------=*/
424 /*= Page toolbar items (specific) =*/
425 /*=-------------------------------=*/
427 .new-post::before {
428 content: '\F067';
429 font-weight: 900;
431 .new-private-message::before {
432 content: '\F075';
433 font-weight: 400;
435 .logout-button::before {
436 content: '\F2F5';
437 font-weight: 900;
439 #enable-push-notifications::before {
440 content: '\F0F3';
441 font-weight: 400;
443 .ignore-button::before {
444 content: "\F070";
445 font-weight: 400;
447 .unignore-button::before {
448 content: "\F06E";
449 font-weight: 400;
451 .rss::before {
452 content: url('data:image/svg+xml;base64,<?php echo base64_encode(file_get_contents("assets/rss.svg")) ?>');
453 display: inline-block;
454 width: 1em;
455 padding-right: 0.2em;
456 position: relative;
457 top: 1px;
460 /*********************/
461 /* TOP PAGINATION UI */
462 /*********************/
464 #top-nav-bar {
465 grid-column: 2;
466 margin: 0.25em 0 0 0;
467 padding: 0.75em 0 0 0;
468 text-align: center;
469 font-size: 1.25em;
470 display: flex;
471 justify-content: center;
473 #top-nav-bar a {
474 line-height: 1;
476 #top-nav-bar a.disabled {
477 pointer-events: none;
478 visibility: hidden;
480 #top-nav-bar .page-number {
481 position: relative;
482 display: inline-block;
483 width: 1.5em;
485 #top-nav-bar .page-number-label {
486 position: absolute;
487 font-size: 0.5em;
488 text-transform: uppercase;
489 width: 100%;
490 bottom: 90%;
491 left: 0;
493 #top-nav-bar a::before {
494 margin: 0.5em;
495 display: inline-block;
498 /****************/
499 /* SUBLEVEL NAV */
500 /****************/
502 .sublevel-nav {
503 text-align: center;
504 display: flex;
505 justify-content: center;
506 margin: 1em 0 0 0;
508 #content > .sublevel-nav:not(.sort) {
509 grid-column: 2;
510 align-self: start;
512 .sublevel-nav .sublevel-item {
513 flex: 0 0 6em;
514 padding: 0.125em 0.5em;
515 font-size: 1.125rem;
517 .sublevel-nav .sublevel-item:active {
518 transform: none;
520 .sublevel-nav .sublevel-item.selected {
521 cursor: default;
524 /***********************/
525 /* SORT ORDER SELECTOR */
526 /***********************/
528 .sublevel-nav.sort {
529 position: relative;
530 margin-top: 8px;
531 font-size: 0.75em;
533 #content > .sublevel-nav.sort {
534 grid-column: 3;
535 grid-row: span 2;
536 justify-self: end;
537 align-self: start;
538 flex-flow: column;
540 #content.index-page > .sublevel-nav.sort {
541 grid-column: 1;
542 justify-self: start;
543 flex-flow: row;
546 .sublevel-nav.sort::before {
547 content: "Sort";
548 font-size: 0.75rem;
549 position: absolute;
550 top: 0;
551 left: 0;
552 width: 100%;
554 .sublevel-nav.sort .sublevel-item {
555 line-height: 1;
556 font-size: 0.875rem;
557 flex-basis: unset;
560 /*******************************/
561 /* COMMENTS SORT MODE SELECTOR */
562 /*******************************/
564 .comments > .sublevel-nav.sort {
565 margin: 1em auto 0 auto;
567 <?php fit_content(".comments > .sublevel-nav.sort"); ?>
569 /******************/
570 /* WIDTH SELECTOR */
571 /******************/
573 #width-selector {
574 position: absolute;
575 top: 4px;
576 right: -78px;
578 #width-selector button {
579 width: 22px;
580 height: 22px;
581 padding: 6px;
582 margin: 1px;
583 overflow: hidden;
584 background-repeat: no-repeat;
585 background-size: 100%;
586 background-origin: content-box;
588 #width-selector button,
589 #width-selector button:active,
590 #width-selector button:focus {
591 text-shadow: none;
592 color: transparent;
594 #width-selector button:disabled {
595 cursor: auto;
597 #width-selector button.select-width-normal {
598 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/normal.gif")) ?>');
600 #width-selector button.select-width-wide {
601 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/wide.gif")) ?>');
603 #width-selector button.select-width-fluid {
604 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/fluid.gif")) ?>');
607 /*=----------------=*/
608 /*= Hover tooltips =*/
609 /*=----------------=*/
611 #width-selector button::after {
612 content: attr(data-name);
613 position: absolute;
614 display: block;
615 left: 0;
616 width: 100%;
617 text-align: center;
618 top: 56px;
619 visibility: hidden;
621 #width-selector button.selected::after {
622 content: attr(data-name) " (selected)";
624 #width-selector button:hover:not(:active)::after {
625 visibility: visible;
628 <?php
629 global $content_width_settings;
630 foreach ($content_width_settings as $name => $setting) {
631 echo "head.content-width-{$name} + body > * {\n max-width: {$setting};\n}\n";
635 /******************/
636 /* THEME SELECTOR */
637 /******************/
639 #theme-selector {
640 position: absolute;
641 top: 3px;
642 left: -41px;
643 opacity: 0.4;
644 display: table;
645 max-width: 40px;
647 #theme-selector:hover {
648 opacity: 1.0;
651 /*=----------------------=*/
652 /*= Theme select buttons =*/
653 /*=----------------------=*/
655 .theme-selector button {
656 display: table-cell;
657 width: 26px;
658 height: 26px;
659 padding: 5px;
660 margin: 1px 7px 0 7px;
661 color: transparent;
662 background-size: 16px 16px;
663 background-origin: content-box;
665 .theme-selector button,
666 .theme-selector button:hover,
667 .theme-selector button:active,
668 .theme-selector button:focus {
669 text-shadow: none;
670 color: transparent;
672 .theme-selector button:disabled {
673 cursor: auto;
676 /*=----------------------------=*/
677 /*= Pre-rendered button images =*/
678 /*=----------------------------=*/
679 /* (Each is just a capital letter A through whatever) */
681 .theme-selector button:nth-of-type(1) {
682 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/theme_A.gif")) ?>');
684 .theme-selector button:nth-of-type(2) {
685 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/theme_B.gif")) ?>');
687 .theme-selector button:nth-of-type(3) {
688 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/theme_C.gif")) ?>');
690 .theme-selector button:nth-of-type(4) {
691 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/theme_D.gif")) ?>');
693 .theme-selector button:nth-of-type(5) {
694 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/theme_E.gif")) ?>');
696 .theme-selector button:nth-of-type(6) {
697 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/theme_F.gif")) ?>');
699 .theme-selector button:nth-of-type(7) {
700 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/theme_G.gif")) ?>');
702 .theme-selector button:nth-of-type(8) {
703 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/theme_H.gif")) ?>');
705 .theme-selector button:nth-of-type(9) {
706 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/theme_I.gif")) ?>');
709 /*=------------------------------=*/
710 /*= Theme select button tooltips =*/
711 /*=------------------------------=*/
712 /* (with the name & description of the theme that each button selects) */
714 #theme-selector button {
715 position: relative;
716 z-index: 1;
718 #theme-selector button::before {
719 content: attr(data-theme-name);
720 position: absolute;
721 top: 0;
722 right: 100%;
723 padding: 5px 6px 6px 6px;
724 line-height: 1;
725 width: 6em;
726 text-align: right;
727 z-index: 1;
728 visibility: hidden;
730 #theme-selector:hover button::before {
731 visibility: visible;
733 #theme-selector:hover ~ #theme-tweaker-toggle,
734 #theme-selector:active ~ #theme-tweaker-toggle {
735 z-index: -1;
738 /************************/
739 /* THEME TWEAKER TOGGLE */
740 /************************/
742 #theme-tweaker-toggle {
743 position: absolute;
744 top: 7px;
745 left: -75px;
747 #theme-tweaker-toggle button {
748 font-family: "Font Awesome", "Font Awesome 5 Free";
749 font-weight: 900;
750 font-size: 1.25rem;
751 opacity: 0.4;
752 z-index: 1;
754 #theme-tweaker-toggle button:hover {
755 opacity: 1.0;
758 /*******************/
759 /* QUICKNAV WIDGET */
760 /*******************/
762 #quick-nav-ui {
763 position: absolute;
764 right: -67px;
765 bottom: 20px;
767 #quick-nav-ui a {
768 font-family: "Font Awesome", "Font Awesome 5 Free";
769 font-weight: 900;
770 font-size: 1.5rem;
771 line-height: 1.7;
772 text-align: center;
773 display: block;
774 width: 40px;
775 height: 40px;
776 margin: 10px 0 0 0;
778 #quick-nav-ui a[href='#comments'].no-comments {
779 pointer-events: none;
781 #quick-nav-ui a {
782 visibility: hidden;
784 #content.post-page ~ #ui-elements-container #quick-nav-ui a[href='#comments'] {
785 visibility: visible;
788 /************************/
789 /* NEW COMMENT QUICKNAV */
790 /************************/
792 #new-comment-nav-ui {
793 position: absolute;
794 right: -112px;
795 bottom: 42px;
797 #new-comment-nav-ui > * {
798 display: block;
799 position: relative;
801 #new-comment-nav-ui.no-comments {
802 display: none;
805 /*=--------------------=*/
806 /*= New comments count =*/
807 /*=--------------------=*/
809 #new-comment-nav-ui .new-comments-count {
810 width: 2em;
811 font-size: 1.25rem;
812 line-height: 1.1;
813 text-align: center;
814 left: 1px;
815 cursor: pointer;
817 #new-comment-nav-ui .new-comments-count::selection {
818 background-color: transparent;
820 #new-comment-nav-ui .new-comments-count::after {
821 content: "NEW";
822 display: block;
823 font-size: 0.625rem;
826 /*=-----------------------------------=*/
827 /*= Next/previous new comment buttons =*/
828 /*=-----------------------------------=*/
830 #new-comment-nav-ui .new-comment-sequential-nav-button {
831 font-size: 1.75rem;
832 font-family: "Font Awesome", "Font Awesome 5 Free";
833 font-weight: 900;
834 width: 1.5em;
835 z-index: 5001;
837 #new-comment-nav-ui .new-comment-previous {
838 top: 8px;
840 #new-comment-nav-ui .new-comment-next {
841 bottom: 6px;
843 #new-comment-nav-ui .new-comment-sequential-nav-button:disabled {
844 cursor: auto;
845 pointer-events: none;
848 /*******************/
849 /* HNS DATE PICKER */
850 /*******************/
852 #hns-date-picker {
853 position: absolute;
854 bottom: 72px;
855 right: -253px;
856 opacity: 0.6;
858 #hns-date-picker:hover,
859 #hns-date-picker:focus-within {
860 opacity: 1.0;
862 #hns-date-picker.no-comments {
863 display: none;
866 /*=---------------=*/
867 /*= "Since" label =*/
868 /*=---------------=*/
870 #hns-date-picker span {
871 display: block;
872 font-size: 0.75rem;
873 text-transform: uppercase;
876 /*=--------------------=*/
877 /*= "Since" text field =*/
878 /*=--------------------=*/
880 #hns-date-picker input {
881 margin-top: 1px;
882 padding: 1px 3px;
883 width: 140px;
884 text-align: center;
885 box-shadow: 0 0 0 1px transparent;
888 /************************/
889 /* ANTI-KIBITZER TOGGLE */
890 /************************/
892 #anti-kibitzer-toggle {
893 position: absolute;
894 right: -67px;
895 bottom: 225px;
897 #anti-kibitzer-toggle button {
898 display: block;
899 width: 40px;
900 height: 54px;
901 padding: 0;
903 #anti-kibitzer-toggle button::before,
904 #anti-kibitzer-toggle button::after {
905 font-family: "Font Awesome", "Font Awesome 5 Free";
907 #anti-kibitzer-toggle button::before {
908 content: "\F06E";
909 display: block;
910 font-size: 1.75em;
911 font-weight: 400;
913 #anti-kibitzer-toggle button::after {
914 content: "\F007\2004\F164";
915 font-size: 0.875em;
916 font-weight: 900;
918 #anti-kibitzer-toggle.engaged button::before {
919 content: "\F070";
922 /************************/
923 /* TEXT SIZE ADJUSTMENT */
924 /************************/
926 #text-size-adjustment-ui {
927 position: absolute;
928 top: 30px;
929 right: -78px;
930 opacity: 0.4;
932 #text-size-adjustment-ui:hover {
933 opacity: 1.0;
936 /* This doesn't work in Mozilla browsers, so hide it */
937 @-moz-document url-prefix() {
938 #text-size-adjustment-ui {
939 display: none;
943 /*=---------=*/
944 /*= Buttons =*/
945 /*=---------=*/
947 #text-size-adjustment-ui button {
948 font-weight: 900;
949 font-family: "Font Awesome", "Font Awesome 5 Free";
950 font-size: 0.75rem;
951 width: 24px;
952 height: 24px;
953 padding: 0;
955 #text-size-adjustment-ui button.default {
956 font-family: inherit;
957 font-size: 1.125rem;
958 position: relative;
959 top: 1px;
961 #text-size-adjustment-ui button:disabled {
962 opacity: 0.5;
964 #text-size-adjustment-ui button:disabled:hover {
965 cursor: default;
968 /*=----------------=*/
969 /*= Hover tooltips =*/
970 /*=----------------=*/
972 #text-size-adjustment-ui::after {
973 content: "Adjust text size";
974 position: absolute;
975 display: block;
976 left: 0;
977 width: 100%;
978 text-align: center;
979 top: 32px;
980 visibility: hidden;
981 font-size: 0.9em;
983 #text-size-adjustment-ui:hover::after {
984 visibility: visible;
987 /*******************************/
988 /* COMMENTS VIEW MODE SELECTOR */
989 /*******************************/
991 #comments-view-mode-selector {
992 position: absolute;
993 bottom: 30px;
994 left: -40px;
995 opacity: 0.6;
997 #comments-view-mode-selector:hover {
998 opacity: 1.0;
1001 /*=---------=*/
1002 /*= Buttons =*/
1003 /*=---------=*/
1005 #comments-view-mode-selector a {
1006 display: block;
1007 font-family: "Font Awesome", "Font Awesome 5 Free";
1008 font-size: 1.25rem;
1009 text-align: center;
1010 opacity: 0.4;
1011 padding: 0.25em;
1012 z-index: 1;
1014 #comments-view-mode-selector a.threaded {
1015 transform: scaleY(-1);
1016 font-weight: 900;
1018 #comments-view-mode-selector a.chrono {
1019 font-weight: normal;
1021 #comments-view-mode-selector a.selected,
1022 #comments-view-mode-selector a:hover {
1023 opacity: 1.0;
1024 text-decoration: none;
1026 #comments-view-mode-selector a.selected {
1027 cursor: default;
1030 /*****************/
1031 /* KEYBOARD HELP */
1032 /*****************/
1034 #keyboard-help-overlay {
1035 width: 100vw;
1036 height: 100vh;
1037 background-color: rgba(0,0,0,0.7);
1038 position: fixed;
1039 left: 0;
1040 top: 0;
1041 z-index: 5001;
1043 display: flex;
1044 justify-content: center;
1045 align-items: center;
1046 padding: 20px 30px 30px 20px;
1048 visibility: hidden;
1051 #keyboard-help-overlay .keyboard-help-container {
1052 background-color: #fff;
1053 filter: drop-shadow(4px 4px 2px #000);
1054 flex: 1 1 auto;
1055 max-width: 1500px;
1056 max-height: 100%;
1057 overflow-y: auto;
1058 position: relative;
1060 #keyboard-help-overlay .keyboard-help-container h1 {
1061 text-align: center;
1062 border-bottom: 1px solid #ddd;
1063 margin: 0;
1064 padding: 10px 20px;
1066 #keyboard-help-overlay .keyboard-help-container .note {
1067 margin: 0.5em auto;
1068 padding: 0 1em;
1069 width: fit-content;
1071 #keyboard-help-overlay .keyboard-help-container .keyboard-shortcuts-lists {
1072 column-width: 21em;
1073 column-count: auto;
1074 column-gap: 1.5em;
1075 border-top: 1px solid #ddd;
1076 padding: 15px 20px;
1078 #keyboard-help-overlay .keyboard-help-container ul {
1079 list-style-type: none;
1080 margin: 0;
1081 padding: 0;
1082 break-inside: avoid;
1083 white-space: nowrap;
1085 #keyboard-help-overlay .keyboard-help-container ul:nth-of-type(n+2) {
1086 margin: 20px 0 0 0;
1088 #keyboard-help-overlay .keyboard-help-container ul li.section {
1089 font-weight: bold;
1090 font-size: 1.125rem;
1091 break-after: avoid;
1093 #keyboard-help-overlay .keyboard-help-container .keys {
1094 margin: 0 0.5em 0 0;
1095 min-width: 4.5em;
1096 display: inline-block;
1098 #keyboard-help-overlay .keyboard-help-container .keys code {
1099 margin: 0 6px 0 0;
1101 #keyboard-help-overlay .keyboard-help-container code {
1102 display: inline-block;
1103 background-color: #eee;
1104 border: 1px solid #ccc;
1105 padding: 3px 8px 4px 8px;
1106 margin: 0 1px;
1108 #keyboard-help-overlay .keyboard-help-container code.ak {
1109 background-color: #ffeb83;
1110 border-color: #d4a500;
1112 #keyboard-help-overlay .keyboard-help-container code.ak::before {
1113 content: "ak+";
1114 opacity: 0.3;
1117 #nav-item-about button.open-keyboard-help {
1118 display: none;
1120 @media only screen and (hover:hover) and (pointer:fine) {
1121 #nav-item-about {
1122 position: relative;
1123 padding-right: 0.25em;
1125 #nav-item-about button.open-keyboard-help {
1126 font-family: "Font Awesome", "Font Awesome 5 Free";
1127 font-weight: 900;
1128 position: absolute;
1129 top: 0;
1130 right: 0;
1131 height: 100%;
1132 padding: 8px;
1133 display: initial;
1134 line-height: 1;
1135 background-color: transparent;
1139 #keyboard-help-overlay button.close-keyboard-help {
1140 position: absolute;
1141 right: 0;
1142 top: 0;
1143 font-family: "Font Awesome", "Font Awesome 5 Free";
1144 font-size: 1.5rem;
1145 padding: 10px 12px;
1148 /************/
1149 /* ARCHIVES */
1150 /************/
1152 .archive-nav {
1153 margin: 1.25em 0.5em 0 0.5em;
1154 padding: 0.25em;
1156 .archive-nav > * {
1157 display: flex;
1159 .archive-nav *[class^='archive-nav-item'] {
1160 line-height: 1;
1161 flex: 1 1 5%;
1162 text-align: center;
1163 padding: 6px 4px 4px 4px;
1164 max-width: 8%;
1166 @-moz-document url-prefix() {
1167 .archive-nav *[class^='archive-nav-item'] {
1168 padding: 5px 4px;
1171 .archive-nav-days .archive-nav-item-day {
1172 font-size: 0.8em;
1173 padding: 7px 0 5px 0;
1174 max-width: 4%;
1176 .archive-nav-days .archive-nav-item-day:first-child {
1177 flex-basis: 10%;
1180 /************/
1181 /* ARCHIVES */
1182 /************/
1184 .archive-nav {
1185 margin: 1.25em 0.5em 0 0.5em;
1186 padding: 0.25em;
1188 .archive-nav > * {
1189 display: flex;
1191 .archive-nav *[class^='archive-nav-item'] {
1192 line-height: 1;
1193 flex: 1 1 5%;
1194 text-align: center;
1195 padding: 6px 4px 4px 4px;
1196 max-width: 8%;
1198 @-moz-document url-prefix() {
1199 .archive-nav *[class^='archive-nav-item'] {
1200 padding: 5px 4px;
1203 .archive-nav-days .archive-nav-item-day {
1204 font-size: 0.8em;
1205 padding: 7px 0 5px 0;
1206 max-width: 4%;
1208 .archive-nav-days .archive-nav-item-day:first-child {
1209 flex-basis: 10%;
1212 /************/
1213 /* LISTINGS */
1214 /************/
1216 h1.listing {
1217 font-size: 1.875rem;
1218 line-height: 1.15;
1219 max-height: 1.15em;
1220 position: relative;
1223 h1.listing a {
1224 position: relative;
1227 /* Links to link-posts (not the link-post links themselves; that's below) */
1228 h1.listing .link-post-link + a {
1229 margin-left: 0.25em;
1232 h1.listing .link-post-link {
1233 font-size: 0.8em;
1234 display: inline;
1235 vertical-align: top;
1236 position: relative;
1237 top: 4px;
1240 /*=----------------------=*/
1241 /*= Listing hover reveal =*/
1242 /*=----------------------=*/
1243 /* (On desktops, hover over a multi-line listing to reveal all of it) */
1245 @media only screen and (min-width: 1160px) {
1246 h1.listing a {
1247 max-width: 100%;
1248 display: inline-block;
1249 white-space: nowrap;
1250 text-overflow: ellipsis;
1251 overflow: hidden;
1252 border-bottom: 1px solid transparent;
1253 -webkit-hyphens: auto;
1254 -moz-hyphens: auto;
1255 -ms-hyphens: auto;
1256 hyphens: auto;
1257 z-index: 1;
1258 padding: 0 0 1px 1px;
1260 h1.listing .link-post-link + a {
1261 max-width: calc(100% - 40px);
1263 h1.listing a:hover,
1264 h1.listing a:focus {
1265 text-decoration: dotted underline;
1266 white-space: initial;
1267 overflow: visible;
1268 z-index: 2;
1270 h1.listing:focus-within::before {
1271 content: "\F105";
1272 font-family: "Font Awesome", "Font Awesome 5 Free";
1273 display: block;
1274 position: absolute;
1275 left: -0.75em;
1278 /* Adds hysteresis to the hover area (i.e., prevents oscillation due to small
1279 mouse movements) */
1280 <?php $margin_of_hover_error = '10px'; ?>
1282 h1.listing a:not(.edit-post-link):hover::before {
1283 content: "";
1284 position: absolute;
1285 top: -<?php echo $margin_of_hover_error; ?>;
1286 right: -<?php echo $margin_of_hover_error; ?>;
1287 bottom: -<?php echo $margin_of_hover_error; ?>;
1288 left: -<?php echo $margin_of_hover_error; ?>;
1289 z-index: -1;
1291 h1.listing .link-post-link:hover {
1292 text-decoration: none;
1296 /*=-----------------------=*/
1297 /*= In-listing edit links =*/
1298 /*=-----------------------=*/
1300 h1.listing .edit-post-link {
1301 position: absolute;
1302 margin: 0;
1305 /*=---------------------------------=*/
1306 /*= Error messages on listing pages =*/
1307 /*=---------------------------------=*/
1309 .listing-message {
1310 width: 100%;
1311 text-align: center;
1312 padding: 1.25em 0 1.25em 0;
1313 font-size: 1.375em;
1316 /*********************/
1317 /* LISTING POST-META */
1318 /*********************/
1320 h1.listing + .post-meta {
1321 position: relative;
1322 justify-content: flex-start;
1323 margin: 0 20px 0 21px;
1326 h1.listing + .post-meta > * {
1327 margin: 0 1em 0 0;
1330 h1.listing + .post-meta .post-section {
1331 width: 0;
1332 margin: 0;
1333 overflow: hidden;
1335 h1.listing + .post-meta .post-section::before {
1336 position: absolute;
1337 left: -36px;
1340 h1.listing + .post-meta .read-time {
1341 cursor: default;
1344 /********************/
1345 /* SEQUENCES & TAGS */
1346 /********************/
1348 .sequence-text, .tag-description {
1349 font-size: 1.2rem;
1350 padding: 0 22px;
1353 #content.tag-index-page .tag-description {
1354 margin: 1em 0 0;
1357 section {
1358 margin-top: 2em;
1359 margin-bottom: 4em;
1362 h1.sequence-chapter {
1363 font-size: 2.3rem;
1366 article {
1367 max-width: 100%;
1370 .post-meta + .comments {
1371 margin-top: 3em;
1374 .tag-list {
1375 column-count: auto;
1376 column-width: 15em;
1377 margin-top: 0;
1378 border-bottom: 1px solid #999;
1379 padding-bottom: 1em;
1380 margin-bottom: 0;
1383 /**************/
1384 /* USER PAGES */
1385 /**************/
1387 /*=---------------------=*/
1388 /*= User's display name =*/
1389 /*=---------------------=*/
1391 #content.user-page h1.page-main-heading {
1392 margin: 0.25em 0 0 0;
1393 line-height: 1.1;
1394 grid-column: 1 / span 2;
1395 order: -2;
1398 #content.user-page h1.page-main-heading .user-full-name {
1399 font-size: 1rem;
1400 font-weight: normal;
1401 padding-left: 0.5em;
1404 /*=--------------------=*/
1405 /*= User's karma total =*/
1406 /*=--------------------=*/
1408 #content.user-page .user-stats {
1409 grid-column: 3;
1410 order: -2;
1411 text-align: right;
1412 align-self: end;
1415 #content.user-page .user-stats .karma-type {
1416 white-space: nowrap;
1419 /*=----------------------=*/
1420 /*= Expanded vs. compact =*/
1421 /*=----------------------=*/
1423 #content.user-page #comments-list-mode-selector {
1424 grid-row: span 2;
1426 #content.user-page #comments-list-mode-selector button {
1427 display: block;
1430 /*=----------------------------------------------------=*/
1431 /*= All, Posts, Comments, Drafts, Conversations, Inbox =*/
1432 /*=----------------------------------------------------=*/
1434 #content.user-page .sublevel-nav {
1435 margin-bottom: 0.5em;
1438 /*=--------------=*/
1439 /*= User's posts =*/
1440 /*=--------------=*/
1442 #content.user-page h1.listing {
1443 margin: 0.5em 0 0 0;
1446 #content.user-page .user-bio :first-child {
1447 margin-top: 0.5em;
1450 /*****************/
1451 /* CONVERSATIONS */
1452 /*****************/
1454 /*=----------------------=*/
1455 /*= List of participants =*/
1456 /*=----------------------=*/
1458 #content.conversation-page .conversation-participants {
1459 grid-column: 2 / span 2;
1460 text-align: right;
1461 margin: 0.5em 0 0 0;
1463 .post-meta > .conversation-participants {
1464 white-space: normal;
1466 .conversation-participants ul,
1467 .conversation-participants li {
1468 list-style-type: none;
1469 display: inline-block;
1470 margin: 0;
1471 padding: 0;
1473 .conversation-participants li {
1474 margin-left: 0.375em;
1476 .conversation-participants li:not(:last-of-type)::after {
1477 content: ",";
1480 /*=-------------------------=*/
1481 /*= Posting controls (form) =*/
1482 /*=-------------------------=*/
1484 #content.conversation-page .posting-controls {
1485 padding: 0 0 1em 0;
1487 #content.conversation-page .post-meta-fields {
1488 overflow: auto;
1489 display: flex;
1490 flex-flow: row wrap;
1492 .posting-controls.standalone textarea {
1493 margin-top: 0.375em;
1495 .posting-controls.standalone form {
1496 padding: 0 1em;
1498 #content.conversation-page .posting-controls.standalone form {
1499 padding: 0 1em 3em 1em;
1501 .posting-controls.standalone input[type='text'],
1502 .posting-controls.standalone label {
1503 margin: 0.25em 0;
1505 .posting-controls.standalone label {
1506 width: 4em;
1507 text-align: right;
1508 padding: 2px 6px;
1509 border: 1px solid transparent;
1511 .posting-controls.standalone input[type='text'] {
1512 width: calc(100% - 4em);
1513 padding: 0.25em;
1515 .posting-controls.standalone input[type='submit'] {
1516 float: right;
1518 .posting-controls.standalone #markdown-hints-checkbox ~ label {
1519 white-space: nowrap;
1521 .posting-controls.standalone #markdown-hints {
1522 top: calc(100% + 2em);
1525 /*=--------------------=*/
1526 /*= Conversation title =*/
1527 /*=--------------------=*/
1529 #content.conversation-page h1.page-main-heading {
1530 text-align: center;
1531 margin: 0.5em 0;
1532 line-height: 1.15;
1535 /*=----------=*/
1536 /*= Messages =*/
1537 /*=----------=*/
1539 #content.conversation-page > ul.comment-thread:last-of-type {
1540 margin-bottom: 2em;
1543 /******************/
1544 /* SEARCH RESULTS */
1545 /******************/
1547 #content.search-results-page h1.listing,
1548 #content.sequence-page h1.listing,
1549 #content.post-page h1.listing {
1550 font-size: 1.625em;
1553 /**************/
1554 /* LOGIN PAGE */
1555 /**************/
1557 .login-container {
1558 margin: 2em 0;
1559 padding: 1em;
1560 display: flex;
1561 flex-flow: row wrap;
1564 .login-container form {
1565 flex-basis: 50%;
1566 display: grid;
1567 grid-row-gap: 0.5em;
1568 align-content: start;
1570 .login-container form label {
1571 text-align: right;
1572 padding: 0.25em 0.5em;
1573 white-space: nowrap;
1574 grid-column: 1;
1576 .login-container form input {
1577 grid-column: 2;
1578 padding: 0.25em;
1580 .login-container form input[type='submit'],
1581 .login-container form a {
1582 grid-column: 2;
1583 justify-self: center;
1585 .login-container form input[type='submit'] {
1586 width: 10em;
1587 padding: 0.35em;
1588 line-height: 1;
1589 margin: 0.5em 0 0 0;
1591 .login-container form h1 {
1592 text-align: center;
1593 margin: 0;
1594 grid-column: 2;
1597 /* “Log in” form */
1599 #login-form {
1600 grid-template-columns: 5.5em 1fr;
1601 padding: 0.5em 2em 0.5em 0;
1604 /* “Create account” form */
1606 #signup-form {
1607 font-size: 0.9em;
1608 grid-template-columns: 8.5em 1fr;
1609 padding: 0.5em 1em 1em 1em;
1611 #signup-form h1 {
1612 font-size: 1.7em;
1614 #signup-form input[type='submit'] {
1615 padding: 0.4em 0.5em 0.5em 0.5em;
1618 /* Log in tip */
1620 .login-container .login-tip {
1621 padding: 0.5em 0.5em 0.5em 3em;
1622 margin: 2em 4em 0 4em;
1623 text-indent: -2em;
1624 line-height: 1.4;
1626 .login-container .login-tip span {
1627 font-weight: bold;
1630 /* Message box */
1632 #content.login-page .error-box {
1633 margin: 1.5em 0.875em -1.5em 0.875em;
1635 .error-box, .success-box {
1636 padding: 0.25em;
1637 text-align: center;
1640 /***********************/
1641 /* PASSWORD RESET PAGE */
1642 /***********************/
1644 .reset-password-container {
1645 margin-bottom: 2em;
1647 .reset-password-container input[type='submit'] {
1648 padding: 0.2em 0.5em;
1649 width: unset;
1651 .reset-password-container input {
1652 margin-left: 0.5em;
1653 width: 12em;
1655 .reset-password-container label {
1656 display: inline-block;
1657 width: 9em;
1659 .reset-password-container form > div {
1660 margin: 0.2em;
1662 .reset-password-container .action-container {
1663 padding-left: 11em;
1664 padding-top: 0.2em;
1666 .reset-password-container .error-box {
1667 margin: unset;
1670 /*********************/
1671 /* TABLE OF CONTENTS */
1672 /*********************/
1674 .contents {
1675 float: right;
1676 min-width: 6em;
1677 max-width: 40%;
1678 margin: 1.25em 0 0.75em 1.25em;
1679 padding: 7px 14px 10px 10px;
1680 position: relative;
1681 z-index: 1;
1684 .contents-head {
1685 text-align: center;
1686 margin-bottom: 0.25em;
1689 .post-body .contents ul {
1690 list-style-type: none;
1691 margin: 0 0 0 0.5em;
1692 counter-reset: toc-item-1 toc-item-2 toc-item-3;
1693 padding-left: 1em;
1694 font-size: 0.75em;
1696 .post-body .contents li {
1697 margin: 0.15em 0 0.3em 1em;
1698 text-align: left;
1699 text-indent: -1em;
1700 line-height: 1.2;
1701 position: relative;
1703 .post-body .contents li::before {
1704 position: absolute;
1705 width: 3em;
1706 display: block;
1707 text-align: right;
1708 left: -4.5em;
1710 .contents .toc-item-1 {
1711 counter-increment: toc-item-1;
1712 counter-reset: toc-item-2 toc-item-3;
1714 .contents .toc-item-1::before {
1715 content: counter(toc-item-1);
1717 .contents .toc-item-1 ~ .toc-item-2 {
1718 margin-left: 2.9em;
1719 font-size: 0.95em;
1721 .contents .toc-item-2 {
1722 counter-increment: toc-item-2;
1723 counter-reset: toc-item-3;
1725 .contents .toc-item-1 ~ .toc-item-2::before {
1726 content: counter(toc-item-1) "." counter(toc-item-2);
1728 .contents .toc-item-2::before {
1729 content: counter(toc-item-2);
1731 .contents .toc-item-1 + .toc-item-3 {
1732 counter-increment: toc-item-2 toc-item-3;
1734 .contents .toc-item-2 ~ .toc-item-3,
1735 .contents .toc-item-1 ~ .toc-item-3 {
1736 margin-left: 2.9em;
1737 font-size: 0.95em;
1739 .contents .toc-item-1 ~ .toc-item-2 ~ .toc-item-3 {
1740 margin-left: 5.7em;
1741 font-size: 0.9em;
1743 .contents .toc-item-3 {
1744 counter-increment: toc-item-3;
1746 .contents .toc-item-1 ~ .toc-item-2 ~ .toc-item-3::before {
1747 content: counter(toc-item-1) "." counter(toc-item-2) "." counter(toc-item-3);
1749 .contents .toc-item-1 ~ .toc-item-3::before {
1750 content: counter(toc-item-1) "." counter(toc-item-3);
1752 .contents .toc-item-2 ~ .toc-item-3::before {
1753 content: counter(toc-item-2) "." counter(toc-item-3);
1755 .contents .toc-item-3::before {
1756 content: counter(toc-item-3);
1758 .contents .toc-item-4,
1759 .contents .toc-item-5,
1760 .contents .toc-item-6 {
1761 display: none;
1764 /********************/
1765 /* POSTS & COMMENTS */
1766 /********************/
1768 .post-meta > *,
1769 .comment-meta > * {
1770 display: inline-block;
1771 margin-right: 1em;
1772 font-size: 1.0625em;
1774 .body-text {
1775 overflow-wrap: break-word;
1776 text-align: justify;
1778 .body-text p {
1779 margin: 1em 0;
1781 .retracted .body-text {
1782 text-decoration: line-through;
1785 .bare-url {
1786 word-break: break-all;
1787 hyphens: auto;
1789 .body-text a:not([href]),
1790 .body-text a:not([href]):hover,
1791 .body-text a:not([href])::before,
1792 .body-text a:not([href])::after {
1793 text-decoration: none;
1794 text-shadow: unset;
1795 border: unset;
1796 color: unset;
1797 content: unset;
1799 /*************/
1800 /* POST-META */
1801 /*************/
1803 .post-meta {
1804 display: flex;
1805 flex-flow: row wrap;
1806 justify-content: center;
1808 .post-meta .lw2-link {
1809 opacity: 0.5;
1810 order: 1;
1812 .post-meta > *,
1813 .post-meta .post-section::before {
1814 margin: 0 0.5em;
1816 .post-meta .post-section {
1817 order: -1;
1818 margin: 0;
1819 visibility: hidden;
1821 .post-meta .post-section::before,
1822 .comment-meta .alignment-forum {
1823 visibility: visible;
1824 font-family: "Font Awesome", "Font Awesome 5 Free";
1825 font-weight: 900;
1827 .post-section.frontpage::before {
1828 content: "\F015";
1830 .post-section.featured::before {
1831 content: "\F005";
1833 .post-section.meta::before {
1834 content: "\F077";
1836 .post-section.events::before {
1837 content: "\F5A0";
1839 .post-section.personal::before {
1840 content: "\F007";
1842 .post-section.draft::before {
1843 content: "\F15B";
1845 .post-section.alignment-forum::before,
1846 .comment-meta .alignment-forum {
1847 content: "AF";
1848 font-family: Concourse, 'Changa One';
1851 /*= Karma controls hover tooltips =*/
1853 @media only screen and (pointer: fine) {
1854 .post .voting-controls,
1855 .comment-item .voting-controls {
1856 position: relative;
1858 .post .karma.active-controls::after,
1859 .comment-item .karma.active-controls::after {
1860 content: "Double-click for strong vote";
1861 position: absolute;
1862 pointer-events: none;
1863 display: block;
1864 left: 6px;
1865 width: 100%;
1866 line-height: 1.15;
1867 white-space: normal;
1868 text-align: center;
1869 font-size: 0.875rem;
1870 opacity: 0;
1871 transition: opacity 0.2s ease;
1873 .post .voting-controls.active-controls:hover::after,
1874 .comment-item .voting-controls.active-controls:hover::after {
1875 opacity: 1.0;
1878 .post .voting-controls .karma-value::after,
1879 .comment-item .voting-controls .karma-value::after {
1880 content: attr(title);
1881 position: absolute;
1882 pointer-events: none;
1883 display: block;
1884 left: 50%;
1885 transform: translateX(-50%);
1886 white-space: pre-wrap;
1887 width: max-content;
1888 text-align: center;
1889 font-size: 0.875rem;
1890 color: #bbb;
1891 opacity: 0;
1892 transition: opacity 0.2s ease;
1894 .post .voting-controls.agreement .karma-value:hover::after,
1895 .comment-item .voting-controls.agreement .karma-value:hover::after {
1896 top: unset;
1897 bottom: 100%;
1899 .post .voting-controls .karma-value:hover::after,
1900 .comment-item .voting-controls .karma-value:hover::after {
1901 opacity: 1.0;
1903 .post .voting-controls.waiting .karma-value:hover::after,
1904 .comment-item .voting-controls.waiting .karma-value:hover::after {
1905 display: none;
1907 .comment-item .voting-controls .karma-value:hover::after {
1908 z-index: 5001;
1911 .author {
1912 position: relative;
1914 .author:not(.redacted)::before {
1915 content: attr(data-full-name);
1916 position: absolute;
1917 pointer-events: none;
1918 display: block;
1919 padding: 0 1em;
1920 left: 50%;
1921 bottom: 2em;
1922 transform: translateX(-50%);
1923 white-space: nowrap;
1924 text-align: center;
1925 font-size: 0.875rem;
1926 font-weight: normal;
1927 opacity: 0;
1928 transition: opacity 0.2s ease;
1929 z-index: 5001;
1931 .author:hover::before {
1932 opacity: 1.0;
1936 /*********/
1937 /* POSTS */
1938 /*********/
1940 .post {
1941 max-width: 100%;
1944 .post-body {
1945 min-height: 8em;
1946 padding: 0 30px;
1947 line-height: 1.5;
1948 font-size: 1.3rem;
1949 overflow: auto;
1950 margin: 0.5em 0 0 0;
1952 h1.post-title {
1953 margin: 1.1em 0 0.35em 0;
1954 padding: 0 30px;
1955 text-align: center;
1956 font-size: 2.5em;
1957 line-height: 1;
1959 .post .post-meta {
1960 text-align: center;
1961 position: relative;
1962 z-index: 2;
1964 .post .top-post-meta:last-child {
1965 margin-bottom: 40px;
1967 .post .bottom-post-meta {
1968 margin: 0;
1969 padding: 20px 0;
1971 .bottom-post-meta {
1972 border-style: solid;
1973 border-width: 1px 0;
1976 /**********/
1977 /* EVENTS */
1978 /**********/
1980 .event-info .map {
1981 position: relative;
1982 width: 100%;
1983 margin: 2em 0 1em;
1986 .event-info .map::before {
1987 content: "";
1988 display: block;
1989 padding-bottom: 50%;
1992 .event-info .map iframe {
1993 width: 100%;
1994 height: 100%;
1995 border: 1px solid #000;
1996 position: absolute;
1997 top: 0;
1998 left: 0;
2001 .event-info ul {
2002 list-style: none;
2003 padding: 0;
2004 text-align: center;
2007 /*******************/
2008 /* POST NAVIGATION */
2009 /*******************/
2011 .post-nav-item {
2012 display: grid;
2013 grid-template: 100% / 32% 36% 32%;
2014 grid-template-areas:
2015 "prev seq next";
2017 .post-nav {
2018 display: flex;
2019 flex-flow: column;
2020 justify-content: flex-end;
2021 padding: 0.5em;
2024 .post-nav-title {
2025 font-size: 1.125em;
2026 line-height: 1.15;
2027 display: inline;
2028 border-top: 1px solid transparent;
2030 .post-nav.prev .post-nav-title,
2031 .post-nav.next .post-nav-title {
2032 border-bottom: 1px solid transparent;
2035 .sequence-title {
2036 align-items: center;
2037 text-align: center;
2038 grid-area: seq;
2040 .sequence-title .post-nav-title {
2041 font-size: 1.5em;
2044 .post-nav.prev {
2045 grid-area: prev;
2046 align-items: flex-start;
2048 .post-nav.prev .post-nav-title::before {
2049 content: "\F0D9\2005";
2051 .post-nav.next {
2052 grid-area: next;
2053 text-align: right;
2054 align-items: flex-end;
2056 .post-nav.prev .post-nav-label,
2057 .post-nav.next .post-nav-label {
2058 display: none;
2060 .post-nav.next .post-nav-title::after {
2061 content: "\2004\F0DA";
2063 .post-nav.prev .post-nav-title::before,
2064 .post-nav.next .post-nav-title::after {
2065 font-family: Font Awesome;
2066 font-weight: 900;
2067 vertical-align: text-bottom;
2068 opacity: 0.75;
2070 .post-nav-links {
2071 max-width: 100%;
2074 @media only screen and (max-width: 900px) {
2075 .post-nav-item {
2076 font-size: 0.875em;
2077 grid-template: auto auto / 50% 50%;
2078 grid-template-areas:
2079 "prev next"
2080 "seq seq";
2082 .post-nav.prev .post-nav-title,
2083 .post-nav.next .post-nav-title {
2084 border-bottom: none;
2086 .post-nav.prev {
2087 margin: 0 0 0 -1px;
2088 position: relative;
2089 left: 1px;
2091 .sequence-title {
2092 padding: 0.75em 0;
2095 @media only screen and (max-width: 520px) {
2096 .post-nav-links + .comments {
2097 padding: 1em 0 0 0;
2101 .related-posts, .related-post-group {
2102 padding-bottom: 1em;
2104 .related-post-type {
2105 font-size: 1.2em;
2106 font-weight: 600;
2107 margin-top: 0.5em;
2108 margin-bottom: -0.5em;
2109 list-style-type: disc;
2110 margin-left: -0.5em;
2111 opacity: 0.7;
2113 .related-post-type::before {
2114 content: "\269c";
2115 font-size: 1.375em;
2116 font-weight: normal;
2117 margin-right: 0.15em;
2118 position: relative;
2119 vertical-align: baseline;
2120 top: 0.05em;
2122 .related-posts .post-type-prefix {
2123 display: none;
2126 /**************/
2127 /* LINK POSTS */
2128 /**************/
2130 .post.link-post > .post-body > p:first-child {
2131 text-align: center;
2132 font-size: 1.125em;
2133 margin: 0.5em 0 0 0;
2135 .post.link-post > .post-body > p:only-child {
2136 font-size: 1.5em;
2137 margin: 1em 0;
2139 .post.link-post a.link-post-link::before {
2140 content: "\F0C1";
2141 font-family: "Font Awesome", "Font Awesome 5 Free";
2142 font-weight: 900;
2143 font-size: 0.75em;
2144 position: relative;
2145 top: -2px;
2146 margin-right: 0.25em;
2149 /************/
2150 /* COMMENTS */
2151 /************/
2153 .comments {
2154 max-width: 100%;
2155 padding: 0 0 1px 0;
2156 position: relative;
2158 .comments::before {
2159 content: "";
2160 position: absolute;
2161 display: block;
2162 top: 0;
2163 left: 0;
2164 width: 100%;
2165 height: 100%;
2166 pointer-events: none;
2168 ul.comment-thread {
2169 list-style-type: none;
2170 padding: 0;
2171 max-width: 100%;
2173 .comments .comment-thread > li {
2174 position: relative;
2176 #content > #top-nav-bar + .comment-thread .comment-item {
2177 margin-top: 0;
2180 .comment-item {
2181 margin: 2em 0 0 0;
2183 .comment-item .comment-item {
2184 margin: 1em 8px 8px 16px;
2186 .comment-item .comment-item + .comment-item {
2187 margin: 2em 8px 8px 16px;
2190 .comment-body {
2191 line-height: 1.45;
2192 font-size: 1.2rem;
2193 padding: 10px;
2195 .comment-body ul {
2196 list-style-type: circle;
2198 .comment-body > *:first-child {
2199 margin-top: 0;
2201 .comment-body > *:last-child {
2202 margin-bottom: 0;
2205 .comments-empty-message {
2206 width: 100%;
2207 text-align: center;
2208 padding: 0.75em 0 0.9em 0;
2209 font-size: 1.375em;
2212 /**********************************/
2213 /* DEEP COMMENT THREAD COLLAPSING */
2214 /**********************************/
2216 .comment-item > input[id^="expand"] {
2217 display: none;
2219 .comment-item > input[id^="expand"] + label {
2220 display: block;
2221 visibility: hidden;
2222 position: relative;
2223 margin: 8px 9px;
2225 .comment-item > input[id^="expand"] + label::after {
2226 content: "(Expand " attr(data-child-count) " below)";
2227 visibility: visible;
2228 position: absolute;
2229 left: 0;
2230 white-space: nowrap;
2231 cursor: pointer;
2233 .comment-item > input[id^="expand"]:checked + label::after {
2234 content: "(Collapse " attr(data-child-count) " below)";
2236 .comment-item > input[id^="expand"] ~ .comment-thread {
2237 max-height: 34px;
2238 overflow: hidden;
2240 .comment-item > input[id^="expand"] ~ .comment-thread > li:first-child {
2241 margin-top: 0;
2243 .comment-item > input[id^="expand"]:checked ~ .comment-thread {
2244 max-height: 1000000px;
2247 .comment-item > input[id^="expand"]:checked ~ .comment-thread .comment-thread .comment-item {
2248 margin: 0;
2250 .comment-item > input[id^="expand"]:checked ~ .comment-thread .comment-thread .comment-item a.comment-parent-link:hover::after {
2251 display: none;
2254 /*************/
2255 /* BACKLINKS */
2256 /*************/
2258 .backlinks > input {
2259 display: none;
2262 .backlinks > label {
2263 margin-left: 10px;
2264 display: block;
2265 color: #00f;
2266 cursor: pointer;
2269 .backlinks > label::before {
2270 content: " ";
2271 border-left: 5px solid currentColor;
2272 border-top: 5px solid transparent;
2273 border-bottom: 5px solid transparent;
2274 transition: transform 0.25s ease-out;
2275 transform-origin: 29% 55%;
2276 display: inline-block;
2277 padding-right: 0.5em;
2280 .backlinks > input:checked + label::before {
2281 transform: rotate(90deg);
2284 .backlinks li {
2285 margin-top: 0;
2288 .backlinks > ul {
2289 height: 0;
2290 perspective-origin: top;
2291 transform: perspective(100em) rotateX(-90deg);
2292 transform-origin: center top;
2293 opacity: 0;
2294 margin-top: 0.5em;
2295 margin-bottom: 0.5em;
2298 .backlinks > input:checked ~ ul {
2299 height: auto;
2300 transform: perspective(100em) rotateX(0deg);
2301 transition: transform 0.25s ease-in, opacity 0.25s ease-in;
2302 opacity: 1;
2305 /****************/
2306 /* COMMENT-META */
2307 /****************/
2309 .comment-meta {
2310 padding: 2px 24px 2px 10px;
2311 margin: 0 -1px;
2312 border: none;
2313 display: flex;
2314 flex-flow: row wrap;
2315 align-items: baseline;
2317 .user-page .comment-meta,
2318 .conversation-page .comment-meta {
2319 padding-right: 10px;
2321 .comment-meta .comment-post-title {
2322 flex-basis: 100%;
2323 overflow: hidden;
2324 text-overflow: ellipsis;
2325 white-space: nowrap;
2326 line-height: 1.3;
2328 .conversation-page .comment-meta .comment-post-title {
2329 margin: 0;
2330 flex-basis: unset;
2331 flex: 1 0 auto;
2332 text-align: right;
2333 display: none; /* Not sure if we need to display this... */
2335 .comment-item .author:not(.redacted).original-poster::after {
2336 content: "\2004(OP)";
2337 font-size: 0.75em;
2340 /*****************************/
2341 /* COMMENT THREAD NAVIGATION */
2342 /*****************************/
2344 a.comment-parent-link:not(.inline-author),
2345 a.comment-parent-link.inline-author::before {
2346 opacity: 0.5;
2348 a.comment-parent-link:hover {
2349 opacity: 1.0;
2351 a.comment-parent-link::before {
2352 content: "\F062";
2353 font-family: "Font Awesome", "Font Awesome 5 Free";
2354 font-weight: 900;
2355 font-size: 0.75rem;
2356 line-height: 1;
2357 position: absolute;
2358 z-index: 1;
2359 display: block;
2360 padding: 3px 3px 0 3px;
2361 width: 16px;
2362 height: calc(100% + 2px);
2363 top: -1px;
2364 left: -17px;
2366 a.comment-parent-link::after {
2367 content: "";
2368 position: absolute;
2369 z-index: 0;
2370 display: block;
2371 width: calc(100% + 26px);
2372 height: calc(100% + 38px);
2373 top: -29px;
2374 left: -17px;
2375 pointer-events: none;
2376 overflow: hidden;
2377 visibility: hidden;
2379 a.comment-parent-link:hover::after {
2380 visibility: visible;
2383 .comment-child-links {
2384 flex-basis: 100%;
2386 .comment-child-link {
2387 margin: 0 0.25em;
2388 display: inline-block;
2390 .comment-child-link::before {
2391 content: ">";
2392 display: inline-block;
2393 margin: 0 2px 0 0;
2396 .comment-popup {
2397 position: fixed;
2398 top: 10%;
2399 right: 10%;
2400 max-width: 700px;
2401 z-index: 10001;
2402 font-size: 1rem;
2403 white-space: unset;
2404 pointer-events: none;
2406 .comment-popup .comment-parent-link {
2407 display: none;
2409 .comment-popup .comment-body {
2410 font-size: 1.0625rem;
2413 .comment-item.depth-odd {
2414 --GW-comment-background-color: var(--GW-comment-background-color-odd);
2415 --GW-comment-parent-background-color: var(--GW-comment-background-color-even);
2417 .comment-item.depth-even {
2418 --GW-comment-background-color: var(--GW-comment-background-color-even);
2419 --GW-comment-parent-background-color: var(--GW-comment-background-color-odd);
2422 .comment-item:target {
2423 --GW-comment-background-color: var(--GW-comment-background-color-target);
2425 .comment-item:target > .comment-thread > .comment-item {
2426 --GW-comment-parent-background-color: var(--GW-comment-background-color-target);
2429 /**********************/
2430 /* COMMENT PERMALINKS */
2431 /**********************/
2432 /********************/
2433 /* COMMENT LW LINKS */
2434 /********************/
2436 .comment-meta .permalink::before,
2437 .comment-meta .lw2-link::before,
2438 .individual-thread-page a.comment-parent-link:empty::before {
2439 content: "";
2440 display: inline-block;
2441 width: 1rem;
2442 height: 1rem;
2443 border-radius: 3px;
2444 box-shadow:
2445 0 0 0 1px #fff,
2446 0 0 0 2px #00e,
2447 0 0 0 3px transparent;
2448 padding: 0 0 0 2px;
2449 background-size: 100%;
2450 position: relative;
2451 top: 2px;
2452 opacity: 0.5;
2454 .comment-meta .permalink::before {
2455 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/anchor-white-on-blue.gif")) ?>');
2457 .comment-meta .lw2-link::before {
2458 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/lw-white-on-blue.gif")) ?>');
2460 .individual-thread-page a.comment-parent-link:empty::before {
2461 left: unset;
2462 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/up-arrow-white-on-blue.gif")) ?>');
2464 .comment-meta .permalink:hover::before {
2465 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/anchor-blue-on-white.gif")) ?>');
2467 .comment-meta .lw2-link:hover::before {
2468 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/lw-blue-on-white.gif")) ?>');
2470 .individual-thread-page a.comment-parent-link:empty:hover::before {
2471 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/up-arrow-blue-on-white.gif")) ?>');
2473 .comment-meta .permalink:hover::before,
2474 .comment-meta .lw2-link:hover::before,
2475 .individual-thread-page a.comment-parent-link:empty:hover::before {
2476 box-shadow:
2477 0 0 0 2px #00e,
2478 0 0 0 3px transparent;
2479 opacity: 1.0;
2480 filter: unset;
2482 .comment-meta .permalink:active::before,
2483 .comment-meta .lw2-link:active::before,
2484 .individual-thread-page a.comment-parent-link:empty:active::before {
2485 transform: scale(0.9);
2488 .comment-meta .permalink,
2489 .comment-meta .lw2-link,
2490 .individual-thread-page .comment-parent-link:empty {
2491 position: relative;
2492 opacity: 1.0;
2494 .comment-meta .permalink::after,
2495 .comment-meta .lw2-link::after,
2496 .individual-thread-page .comment-parent-link:empty::after {
2497 content: "";
2498 width: 30px;
2499 height: 30px;
2500 display: block;
2501 position: absolute;
2502 top: -2px;
2503 left: -7px;
2504 box-shadow: none;
2505 pointer-events: auto;
2506 visibility: visible;
2509 /*************************/
2510 /* COMMENTS COMPACT VIEW */
2511 /*************************/
2513 #comments-list-mode-selector,
2514 #content.index-page #comments-list-mode-selector,
2515 #content.user-page #comments-list-mode-selector {
2516 padding-top: 6px;
2517 grid-column: 1;
2518 position: unset;
2519 z-index: 1;
2520 justify-self: start;
2521 align-self: start;
2523 #comments-list-mode-selector button {
2524 color: transparent;
2525 width: 32px;
2526 height: 32px;
2527 padding: 6px;
2528 margin: 1px;
2529 overflow: hidden;
2530 background-repeat: no-repeat;
2531 background-size: 100%;
2532 background-origin: content-box;
2534 #comments-list-mode-selector button:disabled {
2535 cursor: auto;
2537 #comments-list-mode-selector button.expanded {
2538 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/expanded_2x.gif")) ?>');
2540 #comments-list-mode-selector button.compact {
2541 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/compact_2x.gif")) ?>');
2543 @media only screen and (max-resolution: 1dppx) {
2544 #comments-list-mode-selector button.expanded {
2545 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/expanded_1x.gif")) ?>');
2547 #comments-list-mode-selector button.compact {
2548 background-image: url('data:image/gif;base64,<?php echo base64_encode(file_get_contents("assets/compact_1x.gif")) ?>');
2552 #content > ul.comment-thread > li.comment-item,
2553 #content.compact > ul.comment-thread > li.comment-item {
2554 margin: 0;
2557 #content > .comment-thread {
2558 margin: 1em 0;
2560 #content.compact > .comment-thread {
2561 font-size: 0.9375rem;
2562 margin: 0.5em 0;
2564 #content.compact > .comment-thread:hover {
2565 z-index: 1;
2567 #content.compact > .comment-thread .comment-body {
2568 font-size: 1.0625rem;
2570 #content.compact > .comment-thread .comment-item,
2571 #content.index-page .comment-item.ignored,
2572 #content.inbox-user-page .comment-item.ignored {
2573 max-height: 61px;
2574 margin-top: 1em;
2575 overflow: hidden;
2576 position: relative;
2578 #content.compact > .comment-thread .comment-item {
2579 pointer-events: none;
2581 #content.compact > .comment-thread .comment-item::after {
2582 content: "…";
2583 position: absolute;
2584 right: 0;
2585 bottom: 0;
2586 font-size: 2rem;
2587 line-height: 1;
2588 padding: 0 16px 10px 64px;
2589 pointer-events: auto;
2591 @media only screen and (hover: hover) {
2592 #content.compact:not(:focus-within) > .comment-thread .comment-item:hover,
2593 #content.compact > .comment-thread .comment-item.expanded {
2594 overflow: visible;
2595 pointer-events: auto;
2596 z-index: 10;
2599 @media only screen and (hover: none) {
2600 #content.compact > .comment-thread.expanded .comment-item {
2601 overflow: visible;
2602 pointer-events: auto;
2603 z-index: 10;
2606 #content.compact > .comment-thread .comment-item .comment-meta {
2607 white-space: nowrap;
2608 overflow: hidden;
2609 text-overflow: ellipsis;
2610 padding: 2px 10px;
2612 #content.compact > .comment-thread .comment-item:hover .comment-meta {
2613 white-space: unset;
2615 #content.compact > .comment-thread .comment-item .comment-meta a {
2616 pointer-events: auto;
2618 #content.compact > .comment-thread .comment-item .comment-meta .comment-post-title {
2619 display: inline;
2621 #content.compact > .comment-thread .comment-item .comment-meta .voting-controls + .comment-post-title {
2622 margin-left: 0.75em;
2624 @media only screen and (hover: hover) {
2625 #content.compact > .comment-thread:last-of-type .comment-item:hover,
2626 #content.compact > .comment-thread:last-of-type .comment-item.expanded {
2627 max-height: unset;
2629 #content.compact > .comment-thread .comment-item:hover .comment,
2630 #content.compact > .comment-thread .comment-item.expanded .comment {
2631 position: relative;
2632 z-index: 1;
2633 margin-bottom: 2em;
2634 bottom: 0;
2636 #content.compact > .comment-thread .comment-item:hover .comment::before,
2637 #content.compact > .comment-thread .comment-item.expanded .comment::before{
2638 content: "";
2639 position: absolute;
2640 display: block;
2641 width: calc(100% + 20px);
2642 height: calc(100% + 20px);
2643 z-index: -1;
2644 top: -10px;
2645 left: -10px;
2647 #content.compact > .comment-thread:last-of-type .comment-item:hover .comment,
2648 #content.compact > .comment-thread:last-of-type .comment-item.expanded .comment{
2649 margin: 0;
2652 @media only screen and (hover: none) {
2653 #content.compact > .comment-thread.expanded:last-of-type .comment-item {
2654 max-height: unset;
2656 #content.compact > .comment-thread.expanded .comment-item .comment {
2657 position: relative;
2658 z-index: 1;
2659 margin-bottom: 2em;
2660 bottom: 0;
2662 #content.compact > .comment-thread.expanded .comment-item .comment::before {
2663 content: "";
2664 position: absolute;
2665 display: block;
2666 width: calc(100% + 14px);
2667 height: calc(100% + 20px);
2668 z-index: -1;
2669 top: -10px;
2670 left: -10px;
2672 #content.compact > .comment-thread.expanded:last-of-type .comment-item .comment {
2673 margin: 0;
2675 #content.compact > .comment-thread.expanded .comment-item .comment::after {
2676 content: "";
2677 display: block;
2678 position: fixed;
2679 top: 0;
2680 left: 0;
2681 width: 100%;
2682 height: 100%;
2683 z-index: -2;
2684 background-color: rgba(0,0,0,0.5);
2688 /*****************************/
2689 /* HIGHLIGHTING NEW COMMENTS */
2690 /*****************************/
2692 .new-comment::before {
2693 content: "";
2694 position: absolute;
2695 width: 100%;
2696 height: 100%;
2697 z-index: 5000;
2698 pointer-events: none;
2701 /***********************************/
2702 /* COMMENT THREAD MINIMIZE BUTTONS */
2703 /***********************************/
2705 .comment-minimize-button {
2706 font-family: "Font Awesome", "Font Awesome 5 Free";
2707 font-weight: 900;
2708 font-size: 1.25rem;
2709 line-height: 1;
2710 position: absolute;
2711 right: 1px;
2712 top: 1px;
2713 width: 18px;
2714 margin: 0;
2715 cursor: pointer;
2717 .comment-minimize-button:active {
2718 transform: scale(0.9);
2720 .comment-minimize-button::after {
2721 content: attr(data-child-count);
2722 font-weight: normal;
2723 font-size: 0.8125rem;
2724 position: absolute;
2725 left: 0;
2726 width: 100%;
2727 text-align: center;
2728 top: 21px;
2730 #content.individual-thread-page .comment-minimize-button {
2731 display: none;
2734 /*****************/
2735 /* IGNORE SYSTEM */
2736 /*****************/
2738 #content.comment-thread-page .comment-item.ignored {
2739 height: 38px;
2740 overflow: hidden;
2742 .comment-item.ignored > .comment > .comment-meta > .author {
2743 text-decoration: line-through;
2746 /***********************************/
2747 /* INDIVIDUAL COMMENT THREAD PAGES */
2748 /***********************************/
2750 .individual-thread-page > h1 {
2751 line-height: 1;
2752 margin: 0.75em 0 3px 0;
2754 .individual-thread-page .comments {
2755 border: none;
2758 /*************/
2759 /* SHORTFORM */
2760 /*************/
2762 .shortform-index-page .comments::before {
2763 border: none;
2764 box-shadow: none;
2767 .shortform-index-page .comments > .comment-thread > .comment-item:first-child {
2768 margin-top: 0;
2771 /****************/
2772 /* VOTE BUTTONS */
2773 /****************/
2775 .vote {
2776 margin: 0;
2778 .vote {
2779 font-family: "Font Awesome", "Font Awesome 5 Free";
2780 font-weight: 900;
2781 border: none;
2784 .vote:disabled {
2785 visibility: hidden;
2786 cursor: default;
2789 @keyframes waiting {
2790 0% {background-position: 200% 0%}
2791 100% {background-position: 0% 0%}
2794 .voting-controls .karma-value {
2795 opacity: 1;
2796 transition: opacity 0.5s linear;
2799 .voting-controls.waiting .karma-value {
2800 opacity: 0.5;
2801 background: repeat-x linear-gradient(70deg, #000 50%, #fff 75%, #000);
2802 background-clip: text;
2803 -webkit-background-clip: text;
2804 color: transparent;
2805 background-position: 200% 0%;
2806 background-size: 200% 100%;
2807 animation: waiting 1s linear infinite;
2810 /* Replicated karma controls at bottom of comments. */
2811 .comment-controls .voting-controls {
2812 float: left;
2813 font-size: 0.9375em;
2816 .comment-controls .voting-controls:first-of-type {
2817 margin-left: -14px;
2820 /*****************************/
2821 /* COMMENTING AND POSTING UI */
2822 /*****************************/
2824 .comment-controls {
2825 text-align: right;
2826 margin: 0 8px 8px 16px;
2827 position: relative;
2828 z-index: 9999;
2830 .comment-thread .comment-controls + .comment-thread > li:first-child {
2831 margin-top: 8px;
2833 .comments > .comment-controls {
2834 margin: 8px 0 0 0;
2836 .comments > .comment-controls:last-child {
2837 margin: 8px 0 16px 0;
2840 .posting-controls input[type='submit'] {
2841 margin: 6px;
2842 padding: 4px 10px;
2843 font-size: 1.125rem;
2846 .comment-controls .cancel-comment-button {
2847 position: absolute;
2848 right: 0;
2849 margin: 0;
2850 height: 27px;
2851 font-size: inherit;
2852 padding: 4px 8px 2px 4px;
2853 z-index: 1;
2855 .comment-controls .cancel-comment-button::before {
2856 font-family: "Font Awesome", "Font Awesome 5 Free";
2857 margin-right: 3px;
2858 content: '\F00D';
2859 font-weight: 900;
2860 font-size: 0.9em;
2861 opacity: 0.7;
2864 .comment + .comment-controls .action-button {
2865 font-weight: normal;
2866 font-size: 1.0625em;
2867 padding: 1px 6px;
2869 .comment-controls .action-button::before {
2870 font-family: "Font Awesome", "Font Awesome 5 Free";
2871 margin-right: 3px;
2873 .new-comment-button {
2874 font-size: 1.5rem;
2875 margin: 0 0.25em;
2877 .comment-controls .reply-button::before {
2878 content: '\F3E5';
2879 font-weight: 900;
2880 font-size: 0.9em;
2881 opacity: 0.6;
2883 .comment-meta .replied::before {
2884 content: '\F3E5';
2885 font-family: "Font Awesome", "Font Awesome 5 Free";
2886 color: #090;
2887 font-weight: 900;
2888 font-size: 0.9em;
2889 opacity: 0.6;
2892 .post-controls {
2893 text-align: right;
2894 margin: 0.75em 0 0 0;
2895 align-self: start;
2896 justify-self: end;
2898 .edit-post-link {
2899 display: inline-block;
2900 margin-bottom: 0.25em;
2901 font-size: 1.125rem;
2903 .edit-post-link::before {
2904 margin-right: 0.3em;
2906 .comment-controls .edit-button::before,
2907 .edit-post-link::before {
2908 content: '\F303';
2909 font-family: "Font Awesome", "Font Awesome 5 Free";
2910 font-weight: 900;
2911 font-size: 0.75em;
2912 position: relative;
2913 top: -1px;
2916 .comment-controls .delete-button {
2917 margin-right: 0.25em;
2919 .comment-controls .edit-button,
2920 .comment-controls .retract-button,
2921 .comment-controls .unretract-button {
2922 margin-right: 1em;
2924 .comment-controls .retract-button::before {
2925 content: '\F4B3';
2926 opacity: 0.6;
2928 .comment-controls .unretract-button::before {
2929 content: '\F075';
2930 opacity: 0.9;
2932 .comment-controls .delete-button::before {
2933 content: '\F05E';
2934 opacity: 0.7;
2936 .comment-controls .retract-button::before,
2937 .comment-controls .unretract-button::before,
2938 .comment-controls .delete-button::before {
2939 font-weight: 900;
2940 font-size: 0.9em;
2943 .comment-controls form {
2944 position: relative;
2946 .textarea-container {
2947 position: relative;
2949 .posting-controls textarea {
2950 display: block;
2951 width: 100%;
2952 height: 15em;
2953 min-height: 15em;
2954 max-height: calc(100vh - 6em);
2955 margin: 2px 0 0 0;
2956 padding: 4px 5px;
2957 font-size: 1.2rem;
2958 border-style: solid;
2959 border-width: 29px 1px 1px 1px;
2960 resize: none;
2963 /* GUIEdit buttons */
2965 .guiedit-buttons-container {
2966 position: absolute;
2967 left: 1px;
2968 top: 1px;
2969 width: calc(100% - 2px);
2970 height: 28px;
2971 text-align: left;
2972 padding: 1px 4px 0 4px;
2973 overflow: hidden;
2975 .comment-thread-page .guiedit-buttons-container {
2976 padding-right: 60px;
2978 .guiedit-buttons-container button {
2979 height: 26px;
2980 padding: 0 7px;
2981 font-weight: 900;
2982 font-size: 0.875rem;
2983 line-height: 1;
2984 position: static;
2986 .guiedit-buttons-container button:active {
2987 transform: none;
2989 .guiedit-buttons-container button:active div {
2990 transform: scale(0.9);
2992 .guiedit-buttons-container button sup {
2993 font-weight: bold;
2995 .guiedit::after {
2996 content: attr(data-tooltip);
2997 position: absolute;
2998 font-weight: normal;
2999 font-size: 1rem;
3000 top: 2px;
3001 left: 464px;
3002 height: 25px;
3003 padding: 4px 0;
3004 white-space: nowrap;
3005 visibility: hidden;
3007 .guiedit:hover::after {
3008 visibility: visible;
3011 /* Markdown hints */
3013 .posting-controls .markdown-reference-link {
3014 float: left;
3015 padding: 1px 0 0 6px;
3017 .posting-controls .markdown-reference-link a {
3018 padding-right: 1.5em;
3019 margin-right: 0.15em;
3020 background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAQAAABNTyozAAAEDklEQVR4Ae3cY3QDjRaG0V1e27Zt27Zt27Ztf7Zt27Zt10jOdZtZzbSN2q41533+tsFO4zRi0TKRJVACJdDiJVACJVACJVACZQmUQAmUQAmUQAmUQFkCJVACJVACJVACJVDWuD7P8icnGRcVbdyJ/uRZ+jTZYxwq/lN2qMcozvtMibmySe/TsPeqi0JZ3XsAHm1SZAua9CjgoMQo6UB4uiim5gbXV7Ab1EQxT+P3RRw/dHtV3e39UL3g8XuOEw39QNX3g4LHcYwU/n5uo+q7beGKNqLwJ3U1cteKuepEQ1cid03BJIESKIESKIESKIESaIkl0I3dv7Q7a293c//ShrWym7l/abdbGaCnidJGPFzre6opUdqDtLJXitJ+svpA4Uy30dru6hJRHaCws37L37CDRbWAwvctf38S1QOqe43l7f2iikDheg+x9J5ksqpA4TS3svju5CJRXaCwvX7lG3KAqDZQ+Jby/U4kUM0rNN+7hAQSrvNAC/c4Ewn0/052C8Xd0fkigebbRp/5DdpHJFCxr5nfr4QEUqzmJYC3iQRq1jXuj8cYT6CyTnAv54oEKm9EJFBnJVAC7eoS0XJn2r8qQP/wNFOipUY8wvbVAeIjooXq3ki1gPhHC0A/oWWgQZ/37ZI2FaUdVPpb33LHlQS6scPFstrDQBtAvEpNdLEfsZJA3N3lYsnOcTvaAuKzomttqW+lgXimabFoYx5N20D8SXSlw9yElQfiE0J5dW+lI6BBu4uOO8+dWB0g1hel/YIOgbiVE0VHXefhrB7QTRwtmra3gS4AcW+Xibab8SJWE4h7uaLpn/Ud6AoQTzIu2uzDrDYQzzUjCo17HF0D4g3qoo1+yWoCld8hv5OuAvFl0XLb6V8rQGws5votXQfqs45oqaPdjLUDdNO5f7Xa32APgBhu6b2SC92VtQTEfVwlXOhO9ASI2zhNLKsRj2atAfFCo55Iz4C4nyvFks16OWsRiPvQUyCeblIs0adYq0B6DsTb1EV5fk+1gfiWKG0XAwnUZyPRtOPdggTiRg4UC7rEPUkg4PbOFIXGPIEEmt+DCmeu5rUkUHHPaXj76Qsk0MK9R/ynv5FAzfdDYS9Da+n/xe6ovd2lS/8vVlyfH7o1vQLKJVACJVACJVACJVACIYGW/A6z/A6zG8RcNbdT9d1eTcx1A8eKhn6s6vtxweNYfisaqvupu+jXV8H63cXP1Asev+Wpopi6aVMVbFpdFPMUlP6jdrY/8AgTYkHZhEcAvFNdFMpq3qFh78y/okIT3qk4j8zborn290hN91S/c6zrzapVsFnXO9bvPFXjYtEykSVQAnVUAiVQAiVQAiVQAiVQlkAJlEAJlEAJlEAJlCVQAiVQAiVQAiVQAmX/BMHb3CdNrgcrAAAAAElFTkSuQmCC');
3021 background-size: 1.25em;
3022 background-repeat: no-repeat;
3023 background-position: right center;
3026 #markdown-hints-checkbox + label {
3027 float: left;
3028 margin: 2px 0 0 1em;
3029 line-height: 1.3;
3030 cursor: pointer;
3032 #edit-post-form #markdown-hints-checkbox + label {
3033 padding: 0;
3035 #markdown-hints-checkbox {
3036 visibility: hidden;
3037 float: left;
3039 #markdown-hints-checkbox + label::after {
3040 content: "(Show Markdown help)";
3042 #markdown-hints-checkbox:checked + label::after {
3043 content: "(Hide Markdown help)";
3045 #markdown-hints-checkbox + label::before {
3046 content: '\F059';
3047 font-family: "Font Awesome", "Font Awesome 5 Free";
3048 font-weight: 900;
3049 margin-right: 3px;
3051 #markdown-hints-checkbox:checked + label::before {
3052 font-weight: normal;
3054 #markdown-hints {
3055 margin: 4px 0 0 4px;
3056 padding: 4px 8px;
3057 position: absolute;
3058 text-align: left;
3059 top: calc(100% - 1em);
3060 z-index: 1;
3061 display: none;
3063 .comment-controls #markdown-hints {
3064 top: calc(100% + 1.75em);
3066 #markdown-hints-checkbox:checked ~ #markdown-hints {
3067 display: table;
3069 .markdown-hints-row {
3070 display: table-row;
3072 #markdown-hints .markdown-hints-row span,
3073 #markdown-hints .markdown-hints-row code {
3074 float: none;
3075 display: table-cell;
3076 border: none;
3077 background-color: inherit;
3078 padding: 0 12px 0 0;
3081 /******************/
3082 /* EDIT POST FORM */
3083 /******************/
3085 #edit-post-form {
3086 padding: 1em 1em 4em 1em;
3088 #edit-post-form .post-meta-fields {
3089 display: grid;
3090 grid-template-columns: 5em auto auto auto 1fr auto;
3091 margin-bottom: 0.625em;
3094 #edit-post-form label[for='title'],
3095 #edit-post-form label[for='url'],
3096 #edit-post-form label[for='section'] {
3097 grid-column: 1;
3099 #edit-post-form input[type='text'] {
3100 padding: 0.25em;
3101 grid-column: 2 / span 4;
3102 margin-bottom: 0.5em;
3105 #edit-post-form .link-post-checkbox,
3106 #edit-post-form .link-post-checkbox + label {
3107 grid-row: 1;
3108 grid-column: 6;
3110 #edit-post-form .question-checkbox,
3111 #edit-post-form .question-checkbox + label {
3112 grid-row: 3;
3113 grid-column: 5;
3114 justify-self: start;
3115 margin-left: 1.5em;
3118 #edit-post-form .post-meta-fields label[for="submit-to-frontpage"] {
3119 grid-row: 4;
3120 grid-column: 2 / span 4;
3121 text-align: left;
3122 margin-top: 8px;
3125 #edit-post-form .post-meta-fields input[type='checkbox'] {
3126 height: 0;
3127 opacity: 0;
3128 pointer-events: none;
3130 #edit-post-form .post-meta-fields input[type='checkbox'] + label {
3131 white-space: nowrap;
3132 position: relative;
3133 cursor: pointer;
3134 padding: 0.25em 0.5em 0.25em calc(20px + 0.25em + 0.3725em);
3135 align-self: start;
3137 #edit-post-form .post-meta-fields input[type='checkbox'] + label::before {
3138 content: "";
3139 font-family: "Font Awesome", "Font Awesome 5 Free";
3140 font-size: 1.375rem;
3141 line-height: 0.7;
3142 text-indent: 1px;
3143 font-weight: 900;
3144 position: absolute;
3145 width: 20px;
3146 height: 20px;
3147 left: 5px;
3149 #edit-post-form label[for='url'],
3150 #edit-post-form input[name='url'] {
3151 display: none;
3153 #edit-post-form .link-post-checkbox:checked ~ label[for='url'],
3154 #edit-post-form .link-post-checkbox:checked ~ input[name='url'] {
3155 display: initial;
3157 #edit-post-form label {
3158 line-height: normal;
3159 border: 1px solid transparent;
3160 text-align: right;
3161 padding: 0.25em 0.5em;
3162 white-space: nowrap;
3164 #edit-post-form input[type='radio'] {
3165 width: 0;
3166 margin: 0;
3167 opacity: 0;
3168 pointer-events: none;
3170 #edit-post-form input[type='radio'] + label {
3171 padding: 4px 12px;
3172 text-align: center;
3173 border-style: solid;
3174 border-width: 1px 1px 1px 0;
3175 cursor: pointer;
3177 #edit-post-form input[type='radio']:checked + label {
3178 cursor: default;
3181 #edit-post-form label[for='section'] {
3182 grid-row: 3;
3184 #edit-post-form input[type='radio'] + label {
3185 grid-row: 3;
3187 <?php fit_content("#edit-post-form input[type='radio'] + label"); ?>
3189 #edit-post-form textarea {
3190 min-height: 24em;
3193 #edit-post-form input[type='submit'] {
3194 padding: 6px 12px;
3195 float: right;
3197 #edit-post-form #markdown-hints {
3198 top: calc(100% + 2em);
3201 #edit-post-form button.guiedit div {
3202 overflow: visible;
3204 .guiedit-mobile-auxiliary-button {
3205 display: none;
3208 /***********/
3209 /* BUTTONS */
3210 /***********/
3212 button,
3213 input[type='submit'] {
3214 font-family: inherit;
3215 font-size: inherit;
3216 background-color: inherit;
3217 cursor: pointer;
3218 border: none;
3219 border-radius: 0;
3222 /************/
3223 /* HEADINGS */
3224 /************/
3226 .body-text h1,
3227 .body-text h2,
3228 .body-text h3,
3229 .body-text h4,
3230 .body-text h5,
3231 .body-text h6 {
3232 line-height: 1.1;
3233 margin: 1em 0 0.75em 0;
3234 text-align: left;
3237 .post-body h5,
3238 .post-body h6 {
3239 font-size: 1em;
3241 .post-body h4 {
3242 font-size: 1.2em;
3244 .post-body h3 {
3245 font-size: 1.4em;
3247 .post-body h2 {
3248 font-size: 1.75em;
3250 .post-body h1 {
3251 font-size: 2.1em;
3254 .comment-body h5,
3255 .comment-body h6 {
3256 font-size: 1em;
3258 .comment-body h4 {
3259 font-size: 1.15em;
3261 .comment-body h3 {
3262 font-size: 1.3em;
3264 .comment-body h2 {
3265 font-size: 1.5em;
3267 .comment-body h1 {
3268 font-size: 1.75em;
3271 /**********/
3272 /* QUOTES */
3273 /**********/
3275 blockquote,
3276 .post-body .comment-box .comment-body {
3277 font-size: 0.9em;
3278 margin: 1em 0;
3279 padding-left: 0.5em;
3280 margin-left: 1px;
3281 padding-bottom: 3px;
3283 blockquote *:first-child {
3284 margin-top: 0;
3286 blockquote *:last-child {
3287 margin-bottom: 0;
3289 blockquote blockquote {
3290 font-size: 0.95em;
3293 /* Pseudo-blockquotes that LW sometimes uses for some reason */
3295 .post-body .comment-box .user-name {
3296 font-style: italic;
3298 .post-body .comment-box .user-name::after {
3299 content: ":";
3301 .post-body .comment-box {
3302 zoom: 1.25;
3305 /**********/
3306 /* IMAGES */
3307 /**********/
3309 #content img, #content figure {
3310 max-width: 100%;
3313 .prediction-poll > svg {
3314 width: 700px;
3315 max-width: 100%;
3318 img.inline-latex {
3319 position: relative;
3320 top: 2.5px;
3321 margin: 0 2px;
3324 #content figure {
3325 text-align: center;
3326 margin: 1.5em auto;
3329 p.imgonly,
3330 div.imgonly,
3331 figure {
3332 text-align: center;
3333 margin: auto;
3334 clear: both;
3337 .imgonly iframe {
3338 display: block;
3339 width: 100%;
3340 height: 250px;
3341 border: 0;
3344 // Aspect ratio trick from https://css-tricks.com/aspect-ratio-boxes/
3346 [style*="--aspect-ratio"] > * {
3347 width: 100%;
3349 [style*="--aspect-ratio"] > img {
3350 height: auto;
3352 @supports (--custom:property) {
3353 [style*="--aspect-ratio"] {
3354 position: relative;
3356 [style*="--aspect-ratio"]::before {
3357 content: "";
3358 display: block;
3359 padding-bottom: calc(100% / (var(--aspect-ratio)));
3361 [style*="--aspect-ratio"] > * {
3362 position: absolute;
3363 top: 0;
3364 left: 0;
3365 height: 100%;
3369 /**********/
3370 /* TABLES */
3371 /**********/
3373 .body-text table {
3374 border-collapse: collapse;
3375 font-size: 0.875em;
3377 .body-text table th,
3378 .body-text table td {
3379 text-align: left;
3380 padding: 4px 6px;
3381 line-height: 1.3;
3383 .body-text table .numeric {
3384 text-align: right;
3385 font-family: Inconsolata, Menlo, monospace;
3387 .body-text table caption {
3388 margin: 0 0 0.25em 0;
3389 font-weight: bold;
3390 font-size: 1.125em;
3393 /********/
3394 /* MISC */
3395 /********/
3397 /*= Superscripts & subscripts =*/
3399 /* Make sure superscripts and subscripts do not affect line spacing. */
3400 sup, sub {
3401 vertical-align: baseline;
3402 position: relative;
3403 top: -0.5em;
3404 left: 0.05em;
3405 font-size: 0.8em;
3407 sub {
3408 top: 0.3em;
3411 /*= Code blocks & other "unstyled" text. =*/
3413 pre,
3414 code {
3415 font-family: Inconsolata, Menlo, monospace;
3417 pre {
3418 white-space: pre-wrap;
3420 .body-text pre {
3421 text-align: left;
3423 code {
3424 font-size: 0.95em;
3425 display: inline-block;
3426 padding: 0 4px 1px 5px;
3428 pre > code {
3429 display: block;
3430 border-radius: 0;
3431 padding: 3px 4px 5px 8px;
3432 tab-size: 4;
3435 /*= Fractions =*/
3437 .frac::after {
3438 content: "\200B";
3441 /*= Removing browser default styling of various elements =*/
3443 /* On various input elements such as text fields and buttons, remove "blue glow" focus outlines on Macs, dotted black outlines in Firefox, etc. */
3444 :focus {
3445 outline: none;
3448 /* Remove "embossed" appearance of horizontal rules. */
3449 hr {
3450 border: none;
3453 input,
3454 button,
3455 textarea {
3456 -webkit-appearance: none;
3457 -moz-appearance: none;
3458 appearance: none;
3461 input {
3462 font-family: inherit;
3463 font-size: inherit;
3464 font-weight: inherit;
3467 /*************/
3468 /* FOOTNOTES */
3469 /*************/
3471 ol {
3472 counter-reset: ordered-list;
3474 .footnote-definition {
3475 font-size: 0.9em;
3476 list-style-type: none;
3477 counter-increment: ordered-list;
3478 position: relative;
3480 .footnote-definition p {
3481 font-size: inherit !important;
3483 .footnote-definition::before {
3484 content: counter(ordered-list) ".";
3485 position: absolute;
3486 left: -2.5em;
3487 font-weight: bold;
3488 text-align: right;
3489 width: 2em;
3492 /*= LW Docs footnotes =*/
3494 .footnote-item {
3495 display: flex;
3498 .footnote-item > :not(.nothing) {
3499 margin: 0 0.2em;
3502 .footnote-item > :first-child {
3503 margin-left: -0.2em;
3504 margin-right: 0;
3507 .footnote-back-link a:not(.nothing) {
3508 font-size: 0;
3509 text-decoration: none;
3510 border: none;
3513 .footnote-back-link a:not(.nothing):hover {
3514 text-shadow: 0 0 1px #fff, 0 0 3px #fff, 0 0 5px #00e;
3515 border: none;
3516 text-decoration: none;
3519 .footnote-back-link a::after {
3520 content: '\F106';
3521 font-family: Font Awesome;
3522 font-size: 1rem;
3523 padding: 0.2em;
3524 text-decoration: none;
3525 font-weight: bold;
3528 .footnote-content > :first-child {
3529 margin-top: 0;
3532 /*********/
3533 /* LISTS */
3534 /*********/
3536 li {
3537 margin-bottom: 0.5em;
3540 .body-text ol p,
3541 .body-text ul p {
3542 margin: 0.5em 0;
3545 .body-text ol {
3546 list-style: none;
3547 padding: 0;
3548 counter-reset: ol;
3550 .body-text ol > li {
3551 position: relative;
3552 counter-increment: ol;
3553 padding: 0 0 0 2.5em;
3554 margin: 0.25em 0 0 0;
3556 .body-text ol > li::before {
3557 content: counter(ol) ".";
3558 position: absolute;
3559 width: 2em;
3560 text-align: right;
3561 left: 0;
3563 .body-text ul {
3564 list-style: none;
3565 padding: 0;
3567 .body-text ul:not(.contents-list) > li:empty {
3568 padding-bottom: 1.25em;
3570 .body-text ul:not(.contents-list) > li {
3571 position: relative;
3572 padding: 0 0 0 1.75em;
3573 margin: 0.25em 0 0 0;
3575 .body-text ul:not(.contents-list) > li ul > li {
3576 padding: 0 0 0 2em;
3578 .body-text ul:not(.contents-list) > li::before {
3579 content: "•";
3580 position: absolute;
3581 width: 1.25em;
3582 text-align: right;
3583 left: 0;
3585 .body-text ul:not(.contents-list) > li ul > li::before {
3586 width: 1.5em;
3588 .body-text li > ul:first-child > li {
3589 padding-left: 0;
3591 .body-text li > ul:first-child > li::before {
3592 content: none;
3595 /**************/
3596 /* ERROR PAGE */
3597 /**************/
3599 .error-retry-form {
3600 margin: 0.5em 0;
3603 .error-retry-form input[type="submit"] {
3604 border: 1px solid #aaa;
3605 font-weight: bold;
3606 font-size: 1.125rem;
3607 padding: 0.5em 1.25em;
3610 /**************/
3611 /* ABOUT PAGE */
3612 /**************/
3614 #content.about-page .contents {
3615 margin-top: 0.25em;
3617 #content.about-page .accesskey-table {
3618 border-collapse: collapse;
3619 margin: auto;
3621 #content.about-page .accesskey-table th,
3622 #content.about-page .accesskey-table td {
3623 padding: 2px 6px;
3625 #content.about-page .accesskey-table td:first-child {
3626 padding-right: 1.5em;
3628 #content.about-page .accesskey-table td:last-child {
3629 text-align: center;
3630 font-family: Inconsolata, Menlo, monospace;
3632 #content.about-page h3:nth-of-type(n+2) {
3633 clear: both;
3636 /******************/
3637 /* IMAGES OVERLAY */
3638 /******************/
3640 #images-overlay + #content .post-body img {
3641 visibility: hidden;
3644 #images-overlay div {
3645 position: absolute;
3647 #images-overlay div::after {
3648 content: "Click to enlarge";
3649 display: block;
3650 position: absolute;
3651 margin: auto;
3652 left: 0;
3653 right: 0;
3654 bottom: 10px;
3655 padding: 6px 10px;
3656 font-size: 1.25rem;
3657 background-color: rgba(0,0,0,0.6);
3658 color: #fff;
3659 border-radius: 5px;
3660 opacity: 0.0;
3661 transition: opacity 0.15s ease;
3662 pointer-events: none;
3664 <?php fit_content("#images-overlay div::after"); ?>
3665 #images-overlay div:hover::after {
3666 opacity: 1.0;
3669 #images-overlay img {
3670 width: 100%;
3673 /***************/
3674 /* IMAGE FOCUS */
3675 /***************/
3677 /*=--------------=*/
3678 /*= Hover styles =*/
3679 /*=--------------=*/
3681 #content img:hover,
3682 #images-overlay img:hover {
3683 filter: drop-shadow(0 0 3px #777);
3684 cursor: zoom-in;
3686 #content img:active,
3687 #images-overlay img:active {
3688 transform: scale(0.975);
3691 /*=---------=*/
3692 /*= Overlay =*/
3693 /*=---------=*/
3695 #image-focus-overlay {
3696 position: fixed;
3697 top: 0;
3698 right: 0;
3699 bottom: 0;
3700 left: 0;
3701 z-index: 2;
3702 display: none;
3703 cursor: zoom-out;
3705 #image-focus-overlay::before {
3706 content: "";
3707 display: block;
3708 position: absolute;
3709 top: 0;
3710 right: 0;
3711 bottom: 0;
3712 left: 0;
3713 background-color: #000;
3714 opacity: 0.5;
3715 z-index: -1;
3717 #image-focus-overlay.engaged {
3718 display: initial;
3721 #image-focus-overlay img {
3722 margin: auto;
3723 position: absolute;
3724 left: 50%;
3725 top: 50%;
3726 transform: translateX(-50%) translateY(-50%);
3729 /*=-------------------=*/
3730 /*= Single-image mode =*/
3731 /*=-------------------=*/
3733 #image-focus-overlay:not(.slideshow) .image-number,
3734 #image-focus-overlay:not(.slideshow) .slideshow-buttons {
3735 visibility: hidden;
3738 /*=---------=*/
3739 /*= Caption =*/
3740 /*=---------=*/
3742 #image-focus-overlay .caption {
3743 position: absolute;
3744 bottom: 0.75em;
3745 background-color: rgba(0,0,0,0.7);
3746 left: 9em;
3747 right: 9em;
3748 margin: auto;
3749 max-width: calc(100% - 18em);
3750 text-align: center;
3751 font-size: 1.375em;
3752 border-radius: 8px;
3753 z-index: 1;
3754 transition:
3755 bottom 0.2s ease;
3757 <?php fit_content("#image-focus-overlay .caption"); ?>
3758 #image-focus-overlay .caption.hidden {
3759 bottom: -5em;
3760 transition:
3761 bottom 0.5s ease;
3764 #image-focus-overlay .caption p {
3765 margin: 1em 1.25em;
3766 color: #fff;
3769 #image-focus-overlay .caption:not(:empty)::before {
3770 content: "";
3771 display: block;
3772 position: absolute;
3773 width: 100vw;
3774 height: calc(100% + 1.5em);
3775 z-index: -1;
3776 top: -0.75em;
3777 left: calc(-50vw + 50%);
3781 /*=--------------=*/
3782 /*= Help overlay =*/
3783 /*=--------------=*/
3785 #image-focus-overlay .help-overlay {
3786 position: absolute;
3787 display: flex;
3788 flex-flow: column;
3789 z-index: 2;
3790 font-size: 1.5rem;
3791 padding: 1em;
3792 border-radius: 10px;
3793 bottom: 1em;
3794 right: 1em;
3795 overflow: hidden;
3796 white-space: nowrap;
3797 color: transparent;
3798 cursor: default;
3799 visibility: hidden;
3800 transition:
3801 visibility 1s ease,
3802 color 1s ease,
3803 background-color 1s ease,
3804 bottom 0.3s ease;
3806 #image-focus-overlay .help-overlay:hover {
3807 max-width: 24em;
3808 max-height: 14em;
3809 background-color: rgba(0,0,0,0.85);
3810 color: #fff;
3811 visibility: visible;
3812 transition:
3813 visibility 0.2s ease 0.3s,
3814 color 0.2s ease 0.3s,
3815 background-color 0.2s ease 0.3s;
3818 #image-focus-overlay .help-overlay::after {
3819 content: "\F128";
3820 font-family: "Font Awesome", "Font Awesome 5 Free";
3821 font-weight: 900;
3822 font-size: 2rem;
3823 position: absolute;
3824 right: 0;
3825 bottom: 0;
3826 padding: 10px;
3827 color: #000;
3828 filter: drop-shadow(0 0 6px #fff);
3829 visibility: visible;
3830 opacity: 0.85;
3831 transition:
3832 visibility 1s ease;
3834 #image-focus-overlay .help-overlay:hover::after {
3835 visibility: hidden;
3836 transition:
3837 visibility 0.2s ease 0.3s;
3840 #image-focus-overlay .help-overlay p {
3841 margin: 0;
3842 text-indent: -2em;
3843 padding-left: 2em;
3844 max-width: 100%;
3845 overflow: hidden;
3847 #image-focus-overlay .help-overlay p + p {
3848 margin: 0.75em 0 0 0;
3850 #image-focus-overlay .help-overlay.hidden {
3851 bottom: -2em;
3854 /*=--------------=*/
3855 /*= Slide number =*/
3856 /*=--------------=*/
3858 #image-focus-overlay .image-number {
3859 position: absolute;
3860 z-index: 2;
3861 font-size: 1.75rem;
3862 left: 1em;
3863 bottom: 1em;
3864 font-weight: 600;
3865 text-shadow:
3866 0 0 3px #fff,
3867 0 0 5px #fff,
3868 0 0 8px #fff,
3869 0 0 13px #fff;
3870 width: 1.5em;
3871 text-align: right;
3872 white-space: nowrap;
3873 transition: bottom 0.3s ease;
3875 #image-focus-overlay .image-number::before {
3876 content: "#";
3877 opacity: 0.3;
3879 #image-focus-overlay .image-number::after {
3880 content: " of " attr(data-number-of-images);
3881 opacity: 0.3;
3883 #image-focus-overlay .image-number:hover::before,
3884 #image-focus-overlay .image-number:hover::after {
3885 opacity: 1.0;
3887 #image-focus-overlay .image-number.hidden {
3888 bottom: -1.25em;
3891 /*=-------------------=*/
3892 /*= Slideshow buttons =*/
3893 /*=-------------------=*/
3895 #image-focus-overlay .slideshow-buttons {
3896 position: absolute;
3897 top: 0;
3898 left: 0;
3899 width: 100%;
3900 height: 100%;
3901 z-index: 1;
3902 display: flex;
3903 justify-content: space-between;
3904 pointer-events: none;
3906 #image-focus-overlay .slideshow-buttons button {
3907 font-family: "Font Awesome", "Font Awesome 5 Free";
3908 font-weight: 900;
3909 font-size: 3rem;
3910 padding: 0.5em;
3911 color: #ddd;
3912 position: relative;
3913 left: 0;
3914 transition:
3915 left 0.3s ease;
3916 pointer-events: auto;
3918 #image-focus-overlay .slideshow-buttons button::selection {
3919 background-color: transparent;
3921 @media only screen and (hover: hover) {
3922 #image-focus-overlay .slideshow-buttons button:hover {
3923 background-color: rgba(0,0,0,0.1);
3924 color: #777;
3927 #image-focus-overlay .slideshow-buttons button:active {
3928 transform: none;
3929 color: #888;
3931 #image-focus-overlay .slideshow-buttons button:disabled {
3932 text-shadow: none;
3933 background-color: transparent;
3934 color: #ddd;
3935 cursor: default;
3936 opacity: 0.4;
3938 #image-focus-overlay .slideshow-button.previous.hidden {
3939 left: -1.75em;
3941 #image-focus-overlay .slideshow-button.next.hidden {
3942 left: 1.75em;
3945 /*=-----------------=*/
3946 /*= Background blur =*/
3947 /*=-----------------=*/
3949 .blurred {
3950 filter: blur(3px);
3953 /**************************/
3954 /* QUALIFIED HYPERLINKING */
3955 /**************************/
3957 #content.no-nav-bars {
3958 margin: 8px auto;
3960 #content.no-nav-bars + #ui-elements-container > * {
3961 padding-top: 8px;
3964 #aux-about-link {
3965 position: fixed;
3966 top: 40px;
3967 left: calc((100% - 900px) / 2 - 69px);
3968 width: 1.5em;
3969 height: 1.5em;
3970 text-align: center;
3971 display: table;
3973 #aux-about-link a {
3974 display: table-cell;
3975 width: 100%;
3976 vertical-align: middle;
3977 font-family: "Font Awesome", "Font Awesome 5 Free";
3978 font-weight: 900;
3979 font-size: 1.25rem;
3980 opacity: 0.4;
3981 z-index: 1;
3984 .qualified-linking {
3985 margin: 0;
3986 position: relative;
3988 .qualified-linking input[type='checkbox'] {
3989 visibility: hidden;
3990 width: 0;
3991 height: 0;
3992 margin: 0;
3994 .qualified-linking label {
3995 font-family: "Font Awesome", "Font Awesome 5 Free";
3996 font-weight: 900;
3997 font-size: 1rem;
3998 padding: 0 0.5em;
3999 display: inline-block;
4000 margin-left: 0.25em;
4002 .qualified-linking label:hover {
4003 cursor: pointer;
4005 .qualified-linking label:active span {
4006 display: inline-block;
4007 transform: scale(0.9);
4009 .qualified-linking label::selection {
4010 background-color: transparent;
4013 .qualified-linking label::after {
4014 content: "";
4015 width: 100vw;
4016 height: 0;
4017 left: 0;
4018 top: 0;
4019 position: fixed;
4020 z-index: 1;
4021 cursor: default;
4023 .qualified-linking input[type='checkbox']:checked + label::after {
4024 height: 100vh;
4027 .qualified-linking-toolbar {
4028 position: absolute;
4029 right: 0.25em;
4030 top: 110%;
4031 z-index: 1;
4033 .qualified-linking input[type='checkbox'] ~ .qualified-linking-toolbar {
4034 display: none;
4036 .qualified-linking input[type='checkbox']:checked ~ .qualified-linking-toolbar {
4037 display: block;
4039 #qualified-linking-toolbar-toggle-checkbox-bottom ~ .qualified-linking-toolbar {
4040 top: unset;
4041 bottom: 125%;
4044 .qualified-linking-toolbar a {
4045 display: block;
4046 padding: 0 6px;
4047 margin: 4px;
4049 .qualified-linking-toolbar a::selection {
4050 background-color: transparent;
4053 /*****************/
4054 /* HOVER PREVIEW */
4055 /*****************/
4057 #preview-popup-toggle {
4058 position: absolute;
4059 right: -67px;
4060 bottom: 285px;
4061 cursor: pointer;
4062 color: var(--GW-toggle-widget-color, #888);
4064 #preview-popup-toggle:hover {
4065 color: var(--GW-toggle-widget-hover-color, #444);
4068 #content.preview:not(not) {
4069 padding: 0;
4071 #content.preview > .comment-thread {
4072 margin: 2px;
4074 #content.preview.individual-thread-page > .comment-thread > .comment-item {
4075 border: none;
4077 #content.preview.user-page .page-main-heading, #content.preview.user-page .user-stats {
4078 padding: 0 8px;
4080 #content.preview.user-page .page-main-heading {
4081 margin-left: 8px;
4083 #content.preview.not(not) .body-text {
4084 margin-left: 8px;
4085 margin-right: 8px;
4087 #content.preview.user-page .user-stats {
4088 margin-right: 32px;
4090 #content.preview.user-page .page-toolbar, #content.preview.user-page nav {
4091 display: none;
4093 #content.preview button.vote {
4094 display: none;
4096 #content.preview > h1.listing {
4097 max-height: unset;
4099 #content.preview.user-page > .comment-thread {
4100 margin: 0.5em 0;
4102 #content.preview > .post {
4103 margin: 0 18px;
4105 #content.preview .post-title {
4106 margin-top: 0.5em;
4108 #content.preview .post-meta {
4109 line-height: 1.0;
4111 #content.preview .body-text {
4112 font-size: 1em;
4114 #content.preview nav.contents,
4115 #content.preview .lw2-link {
4116 display: none;
4119 .preview-popup {
4120 position: fixed;
4121 transform-origin: top;
4122 top: 10%;
4123 right: 10%;
4124 max-width: 700px;
4125 z-index: 10001;
4126 background-color: #eee;
4127 border: 1px solid #ccc;
4128 box-shadow: 2px 6px 20px -4px #000;
4129 transition: height 0.2s ease, top 0.2s ease;
4131 .popup-hide-button {
4132 position: fixed;
4133 top: 4px;
4134 right: 4px;
4135 color: #000;
4136 background-color: #fff;
4137 width: 28px;
4138 height: 28px;
4139 display: flex;
4140 font-family: "Font Awesome";
4141 font-size: 14px;
4142 line-height: 1;
4143 border: 1px solid #bbb;
4144 border-radius: 28px;
4145 align-items: center;
4146 justify-content: center;
4147 //padding-bottom: 2px;
4148 padding-left: 1.5px;
4149 font-family: "Font Awesome", "Font Awesome 5 Free";
4150 cursor: pointer;
4152 .popup-hide-button:hover::before {
4153 content: "Turn off preview popups";
4154 display: block;
4155 position: absolute;
4156 width: max-content;
4157 right: 32px;
4158 color #000;
4159 background-color: #fff;
4160 border: 1px solid #eee;
4161 border-radius: 2px;
4162 padding: 4px;
4165 /********/
4166 /* MATH */
4167 /********/
4169 .mathjax-block-container {
4170 display: block;
4171 overflow-y: hidden;
4172 border-radius: 6px;
4173 margin: 1em 0 1.5em 0;
4175 .mathjax-inline-container {
4176 max-width: 100%;
4177 overflow-x: auto;
4178 overflow-y: hidden;
4179 position: relative;
4180 padding: 0 1px;
4182 #content .mathjax-inline-container,
4183 #content .mathjax-inline-container .mjpage,
4184 #content .mathjax-inline-container .mjx-chtml,
4185 #content .mathjax-inline-container .mjx-math,
4186 #content .mathjax-inline-container .mjx-mrow {
4187 display: inline;
4188 white-space: normal;
4190 .post .mathjax-inline-container {
4191 line-height: 1;
4193 .comment .mathjax-inline-container {
4194 line-height: 1;
4196 .mathjax-inline-container .mjx-chtml {
4197 padding: 0;
4200 /************/
4201 /* SPOILERS */
4202 /************/
4204 .spoiler {
4205 color: #000;
4206 background-color: currentColor;
4207 transition: none;
4208 text-shadow: none;
4209 margin: 1em 0;
4210 box-shadow: 0 0 0 1px currentColor inset;
4211 overflow: auto;
4213 .spoiler:not(:last-child) {
4214 margin-bottom: 0;
4216 #content .spoiler * {
4217 color: inherit;
4218 border: none;
4220 .spoiler:hover {
4221 color: unset;
4222 background-color: unset;
4223 text-shadow: unset;
4224 transition:
4225 color 0.1s ease-out 0.1s,
4226 background-color 0.1s ease-out 0.1s,
4227 text-shadow 0.1s ease-out 0.1s;
4229 .spoiler::selection,
4230 .spoiler ::selection {
4231 color: #fff;
4232 background-color: #000;
4234 .spoiler:not(:hover)::selection,
4235 .spoiler:not(:hover) ::selection {
4236 background-color: transparent;
4239 /*= Fix for LessWrong being weird =*/
4241 .spoiler > p {
4242 padding: 0 7px;
4244 .spoiler > p:first-child {
4245 margin-top: 0.25em;
4247 .spoiler > p:last-child {
4248 margin-bottom: 0;
4249 padding-bottom: 0.25em;
4251 .spoiler > p:hover ~ p {
4252 background-color: currentColor;
4254 .spoiler > p + p {
4255 margin-top: -1em;
4257 .spoiler > p:not(:first-child) {
4258 padding-top: 0.5em;
4260 .spoiler > p:not(:last-child) {
4261 padding-bottom: 0.5em;
4264 .spoiler:not(:hover) pre,
4265 .spoiler:not(:hover) code {
4266 background-color: inherit;
4267 box-shadow: none;
4269 #content .spoiler pre {
4270 border-color: currentColor;
4271 border-style: solid;
4272 border-width: 0 1px;
4273 border-radius: 0;
4276 /*******************/
4277 /* PAGE LIST INDEX */
4278 /*******************/
4280 .page-list-index {
4281 margin: 1em 30px;
4282 line-height: 1.2;
4285 .page-list-index > p {
4286 font-weight: bold;
4287 font-size: 1.2em;
4290 .page-list-index > ul * {
4291 margin: 0;
4294 .page-list-index ul {
4295 padding-left: 1.5em;
4298 .page-list-index li {
4299 margin-top: 0.67em;
4302 .page-list-index li > a {
4303 display: block;
4304 font-size: 1.1em;
4305 font-weight: bold;
4306 margin: 0.33em 0;
4309 .page-list-index li > a:last-child {
4310 margin-bottom: 1em;
4313 /*******************/
4314 /* ALIGNMENT FORUM */
4315 /*******************/
4317 #content.alignment-forum-index-page::after {
4318 content: "Alignment Forum";
4319 font-size: 1.5rem;
4320 margin: 0.375em 0 0 -0.375em;
4321 order: -1;
4324 /**********************/
4325 /* FOR NARROW SCREENS */
4326 /**********************/
4328 @media only screen and (max-width: 1440px) {
4329 #hns-date-picker {
4330 right: -81px;
4331 padding: 8px 10px 10px 10px;
4332 bottom: 62px;
4333 display: none;
4335 #hns-date-picker::before {
4336 content: "";
4337 position: absolute;
4338 display: block;
4339 z-index: -1;
4340 height: calc(100% + 2px);
4341 top: -1px;
4342 left: -1px;
4343 width: 50%;
4346 @media only screen and (max-width: 1160px) {
4347 #new-comment-nav-ui {
4348 bottom: 180px;
4349 right: -68px;
4351 #hns-date-picker {
4352 bottom: 200px;
4353 right: -36px;
4355 #hns-date-picker::before {
4356 width: calc(100% - 35px);
4358 #theme-selector button::before {
4359 right: unset;
4360 left: 100%;
4362 #theme-selector:hover::after {
4363 content: "";
4364 display: block;
4365 position: absolute;
4366 width: calc(6em - 7px);
4367 height: calc(100% + 2px);
4368 top: 0;
4369 left: calc(100% + 1px);
4371 #anti-kibitzer-toggle {
4372 bottom: 330px;
4375 @media only screen and (max-width: 1080px) {
4376 #width-selector {
4377 right: -30px;
4379 #width-selector button {
4380 display: block;
4382 #text-size-adjustment-ui {
4383 top: 90px;
4384 right: -30px;
4386 #text-size-adjustment-ui button {
4387 display: block;
4388 position: relative;
4390 #text-size-adjustment-ui button.increase {
4391 bottom: 48px;
4393 #text-size-adjustment-ui button.decrease {
4394 top: 50px;
4396 #theme-selector {
4397 top: 46px;
4398 left: -44px;
4400 #theme-tweaker-toggle {
4401 left: -44px;
4402 top: 2px;
4404 #theme-tweaker-toggle button {
4405 height: 2em;
4406 width: 2em;
4407 padding: 7px;
4409 #quick-nav-ui {
4410 right: -54px;
4412 #new-comment-nav-ui {
4413 right: -55px;
4415 #hns-date-picker {
4416 right: -23px;
4418 #hns-date-picker::before {
4419 width: calc(100% - 22px);
4421 #anti-kibitzer-toggle {
4422 right: -54px;
4425 @media only screen and (max-width: 1040px) {
4426 #quick-nav-ui {
4427 right: -49px;
4429 #new-comment-nav-ui {
4430 right: -50px;
4432 #hns-date-picker {
4433 right: -18px;
4435 #hns-date-picker::before {
4436 width: calc(100% - 17px);
4438 #anti-kibitzer-toggle {
4439 right: -50px;
4442 @media only screen and (max-width: 1020px) {
4443 #quick-nav-ui {
4444 right: -20px;
4446 #new-comment-nav-ui {
4447 right: -21px;
4449 #new-comment-nav-ui .new-comments-count::before {
4450 content: "";
4451 position: absolute;
4452 width: 100%;
4453 height: calc(100% + 45px);
4454 z-index: -1;
4455 left: 0;
4456 top: -22px;
4458 #hns-date-picker {
4459 right: 19px;
4461 #hns-date-picker::before {
4462 width: 100%;
4464 #anti-kibitzer-toggle {
4465 right: -20px;
4468 @media only screen and (max-width: 1000px) {
4469 #theme-selector {
4470 left: -17px;
4471 top: 120px;
4472 padding: 3px 0;
4473 max-width: 32px;
4475 #theme-selector button {
4476 margin: 1px 4px;
4478 #text-size-adjustment-ui {
4479 top: 100px;
4480 right: -12px;
4482 @media not screen and (hover: none) {
4483 #quick-nav-ui,
4484 #new-comment-nav-ui,
4485 #new-comment-nav-ui + #hns-date-picker,
4486 #anti-kibitzer-toggle {
4487 opacity: 0.4;
4489 #quick-nav-ui:hover,
4490 #new-comment-nav-ui:hover,
4491 #new-comment-nav-ui + #hns-date-picker:hover,
4492 #new-comment-nav-ui + #hns-date-picker:focus-within,
4493 #new-comment-nav-ui:hover + #hns-date-picker,
4494 #anti-kibitzer-toggle:hover {
4495 opacity: 1.0;
4498 #theme-tweaker-toggle {
4499 top: 70px;
4500 left: -21px;
4504 /**************/
4505 /* PRINT VIEW */
4506 /**************/
4508 @media only print {
4509 .nav-bar {
4510 visibility: hidden;
4511 max-height: 0;
4512 overflow: hidden;
4514 #ui-elements-container {
4515 display: none;
4517 #images-overlay {
4518 display: none;
4520 #images-overlay + #content .post-body img {
4521 visibility: visible;
4523 .comment-controls {
4524 display: none;
4526 #comments-sort-mode-selector {
4527 display: none;
4529 .comment-minimize-button {
4530 display: none;
4532 .post-meta .qualified-linking,
4533 .post-meta .lw2-link {
4534 display: none;
4536 .comment-meta .permalink,
4537 .comment-meta .lw2-link,
4538 .comment-meta .comment-parent-link {
4539 display: none;
4541 .new-comment::before {
4542 display: none;
4544 #content::before {
4545 box-shadow: none;
4549 <?php include("style_mobile_additions.css.php"); ?>
4551 <?php if (isset($argv[2]) && preg_match("/\\.css(.php)?$/", $argv[2])) include($argv[2]); ?>
4553 <?php
4555 ## TO BE IMPLEMENTED:
4556 ## This will be specified via command-line argument; but for now, we just
4557 ## include all available additions (currently, only 'accordius').
4559 $additions = [
4560 'accordius'
4563 foreach ($additions as $addition) {
4564 $potential_includes = [
4565 "style.css.php",
4566 "style_mobile_additions.css.php"
4568 foreach ($potential_includes as $include) {
4569 $include_path = "{$addition}/{$include}";
4570 if (file_exists($include_path))
4571 include ($include_path);