/* Start of normalize.css ========================================================================== */ /* see: https://necolas.github.io/normalize.css/ & https://nicolasgallagher.com/about-normalize-css/ */ /* normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ /* Document ========================================================================== */ /* * 1. Correct the line height in all browsers. * 2. Prevent adjustments of font size after orientation changes in iOS. */ html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } /* Sections ========================================================================== */ /* * Remove the margin in all browsers. */ body { margin: 0; } /* * Render the `main` element consistently in IE. */ main { display: block; } /* * Correct the font size and margin on `h1` elements within `section` and * `article` contexts in Chrome, Firefox, and Safari. */ h1 { font-size: 2em; margin: 0.67em 0; } /* Grouping content ========================================================================== */ /* * 1. Add the correct box sizing in Firefox. * 2. Show the overflow in Edge and IE. */ hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } /* * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } /* Text-level semantics ========================================================================== */ /* * Remove the gray background on active links in IE 10. */ a { background-color: transparent; } /* * 1. Remove the bottom border in Chrome 57- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline dotted; /* 2 */ } /* * Add the correct font weight in Chrome, Edge, and Safari. */ b, strong { font-weight: bolder; } /* * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } /* * Add the correct font size in all browsers. */ small { font-size: 80%; } /* * Prevent `sub` and `sup` elements from affecting the line height in * all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } /* Embedded content ========================================================================== */ /* * Remove the border on images inside links in IE 10. */ img { border-style: none; } /* Forms ========================================================================== */ /* * 1. Change the font styles in all browsers. * 2. Remove the margin in Firefox and Safari. */ button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } /* * Show the overflow in IE. * 1. Show the overflow in Edge. */ button, input { /* 1 */ overflow: visible; } /* * Remove the inheritance of text transform in Edge, Firefox, and IE. * 1. Remove the inheritance of text transform in Firefox. */ button, select { /* 1 */ text-transform: none; } /* * Correct the inability to style clickable types in iOS and Safari. */ button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } /* * Remove the inner border and padding in Firefox. */ button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } /* * Restore the focus styles unset by the previous rule. */ button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } /* * Correct the padding in Firefox. */ fieldset { padding: 0.35em 0.75em 0.625em; } /* * 1. Correct the text wrapping in Edge and IE. * 2. Correct the color inheritance from `fieldset` elements in IE. * 3. Remove the padding so developers are not caught out when they zero out * `fieldset` elements in all browsers. */ legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } /* * Add the correct vertical alignment in Chrome, Firefox, and Opera. */ progress { vertical-align: baseline; } /* * Remove the default vertical scrollbar in IE 10+. */ textarea { overflow: auto; } /* * 1. Add the correct box sizing in IE 10. * 2. Remove the padding in IE 10. */ [type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /* * Correct the cursor style of increment and decrement buttons in Chrome. */ [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } /* * 1. Correct the odd appearance in Chrome and Safari. * 2. Correct the outline style in Safari. */ [type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } /* * Remove the inner padding in Chrome and Safari on macOS. */ [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /* * 1. Correct the inability to style clickable types in iOS and Safari. * 2. Change font properties to `inherit` in Safari. */ ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } /* Interactive ========================================================================== */ /* * Add the correct display in Edge, IE 10+, and Firefox. */ details { display: block; } /* * Add the correct display in all browsers. */ summary { display: list-item; } /* Misc ========================================================================== */ /* * Add the correct display in IE 10+. */ template { display: none; } /* * Add the correct display in IE 10. */ [hidden] { display: none; } /* End of normalize.css ========================================================================== */ /**************************************/ /* what follows is ioccc.css specific */ /**************************************/ /* Fonts ========================================================================================= */ /* Fonts */ .serif { font-family: Georgia, serif; } .sans-serif { font-family: Helvetica Neue, Helvetica, Arial, sans-serif; } .mono { font-family: Menlo, Monaco, Consolas, "Lucida Console", "Courier New", monospace; } * { font-family: Helvetica Neue, Helvetica, Arial, sans-serif; } h1, h2, h3, h4, h5, h6 { font-family: Georgia, serif; } pre, code { font-family: Menlo, Monaco, Consolas, "Lucida Console", "Courier New", monospace; } body { font-family: Helvetica Neue, Helvetica, Arial, sans-serif; } /* Top level ===================================================================================== */ /* Establish IOCCC defaults */ * { box-sizing: border-box; background: whitesmoke; } /* Remove hyphenation in line endings from most well known browsers */ p { -moz-hyphens: none; -ms-hyphens: none; -webkit-hyphens: none; hyphens: manual; } body { margin: 0 auto; padding: 10px; hyphens: manual; overflow-wrap: break-word; text-rendering: optimizeLegibility; font-kerning: normal; } pre, code { margin: 1em 0; hyphens: manual; overflow-wrap: normal; overflow: visible; white-space: pre-wrap; } blockquote { margin: 1em 0 1em 1.7em; padding-left: 1em; border-left: 2px solid #e6e6e6; color: inherit; } a { outline-color: transparent; text-decoration: none; padding: 2px 1px 0; } a:link { color: blue; } a:visited { color: purple; } a:focus, a:hover { border-bottom: 1px solid; } a:active { color: red; } /* IOCCC classes ================================================================================= */ /* Left - class for placing things on the left side */ .Left { float: left; } /* Right - class for placing things on the left side */ .Right { float: right; } /* Disabled - class for making something as if the feature has been disabled */ .Disabled { cursor: not-allowed; opacity: 0.5; color: inherit; display: inline-block; /* For IE11/MS Edge bug */ pointer-events: none; text-decoration: none; } /* Header ======================================================================================== */ /* Style the header */ .header { padding: 10px; text-align: center; } /* Header headings */ .header h1 { font-size: 2.5em; } .header h2 { font-size: 2em; } .header h3 { font-size: 1.5em; } /* Top navigation bar ============================================================================ */ /* Style the top navigation bar */ .topnav { overflow: hidden; background-color: #333; } /* Style the topnav links and paragraph text */ .topnav a, p { display: block; color: lightblue; padding: 14px 16px; text-decoration: none; } /* Change topnav link color on hover */ .topnav a:focus, .topnav a:hover { background-color: #ddd; color: blue; text-decoration: underline; } /* Change topnav link after visit */ .topnav a:visited { color: #cO80c0; } /* Change topnav link when active */ .topnav a:active { color: red; } /* No padding nor border around topnav images */ .topnav img { border: 0; padding: 0; } /* Side navigation bar =========================================================================== */ /* Style the side navigation bar */ .sidenav { overflow: hidden; } /* Style the sidenav links */ .sidenav a { float: left; display: block; color: blue; text-align: left; padding: 14px 16px; text-decoration: none; width: 100%; background-color: #ddd; } /* Change sidenav link color on hover */ .sidenav a:hover { background-color: #ccc; text-decoration: underline; } /* Change sidenav link after visit */ .sidenav a:visited { color: purple; } /* Change sidenav link when active */ .sidenav a:active { color: red; } /* Two unequal columns =========================================================================== */ /* Create two unequal columns that floats next to each other */ /* Style the left column */ .leftcolumn { float: left; width: 20%; padding-top: 10px; padding-left: 10px; padding-right: 10px; padding-bottom: 10px; } /* Left column horizontal line */ .leftcolumn hr { border-style: solid; border-width: 1px; } /* Style the right column */ .rightcolumn { float: left; width: 80%; padding-left: 10px; } .rightcolumn p, code, pre, h1, h2, h3, h4, h5, h6 { color: black; } .rightcolumn p, code, pre { padding-top: 0; padding-bottom: 0; } /* Right column headings */ .rightcolumn h1 { font-size: 2em; } .rightcolumn h2 { font-size: 1.5em; } .rightcolumn h3 { font-size: 1.25em; } /* Footer ======================================================================================== */ .footer { display: block; clear: both; padding-left: 10px; padding-right: 10px; border-style: solid hidden hidden hidden; text-decoration: none; } .footer p, code, pre { padding-top: 0; padding-bottom: 0; color: black; } .footer a { text-decoration: none; } .footer a:hover { text-decoration: underline; } /* Responsive Web Design ========================================================================== */ /* Default: screen is > 968 pixels wide (> 984 w/padding) */ /* * When the screen is > 761 pixels (> 777 w/padding) AND <= 968 pixels wide (<= 984 w/padding) * * Use two columns but with slightly smaller header font sizes. */ @media screen and (max-width: 968px) { body { font-size: 1em; } .header { padding: 0; border: 0; text-align: center; } .header h1 { font-size: 2em; } .header h2 { font-size: 1.75em; } .header h3 { font-size: 1.5em; } .leftcolumn, .rightcolumn, .footer { padding: 2px; } .sidenav a { padding: 5px; } .rightcolumn h1 { font-size: 1.75em; } .rightcolumn h2 { font-size: 1.5em; } .rightcolumn h3 { font-size: 1.25em; } } /* * When the screen is > 500 pixels (> 515 w/padding) AND <= 761 pixels wide (<= 777 w/padding) * * Make the two columns stack on top of each other instead of next to each other, * and adjust the defaults for a somewhat smaller screen. */ @media screen and (max-width: 761px) { body { font-size: 1em; } .header { padding: 0; border: 0; text-align: center; } .header h1 { font-size: 1.5em; } .header h2 { font-size: 1.25em; } .header h3 { font-size: 1em; } .leftcolumn, .rightcolumn, .footer { width: 100%; padding: 2px; } .sidenav a { padding: 5px; } .rightcolumn h1 { font-size: 1.25em; } .rightcolumn h2 { font-size: 1.1em; } .rightcolumn h3 { font-size: 1em; } } /* * When the screen is <= 500 pixels wide: (<= 515 w/padding) * * Make the navigation links stack on top of each other instead of next to each other, * and adjust the defaults for a small screen. */ @media screen and (max-width: 500px) { body { font-size: 0.9em; } .header { padding: 0; border: 0; text-align: center; } .header h1 { font-size: 1.25em; } .header h2 { font-size: 1em; } .header h3 { font-size: 0.9em; } .header img { visibility: none; width: 0; height: 0; border: 0; padding: 0; } .topnav a, .sidenav a { float: none; width: 100%; padding: 0; } .leftcolumn hr { display: none; } .rightcolumn h1 { font-size: 1.25em; } .rightcolumn h2 { font-size: 1em; } .rightcolumn h3 { font-size: 0.9em; } } /* * When printing: * * These values are produced by pandoc when converting markdown to HTML * when using the --standalone option. */ @media print { html { background-color: white; } body { background-color: transparent; color: black; font-size: 12pt; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3, h4 { page-break-after: avoid; } /* IOCCC addition - print all as if they were not visited */ a:focus, a:hover, a:visited, a:active { color: blue; } .topnav a, .topnav a:focus, .topnav a:hover, .topnav a:visited, .topnav a:active { color: lightblue; } .sidenav a, .sidenav a:focus, .sidenav a:hover, .sidenav a:visited, .sidenav a:active { color: blue; } }