::backdrop, :root { --sans-font: -apple-system, BlinkMacSystemFont, "Avenir Next", Avenir, "Nimbus Sans L", Roboto, "Noto Sans", "Segoe UI", Arial, Helvetica, "Helvetica Neue", sans-serif; --mono-font: Consolas, Menlo, Monaco, "Andale Mono", "Ubuntu Mono", monospace; --standard-border-radius: 6px; --bg: #fff; --accent-bg: #0077aa; --text: #212121; --text-light: #585858; --border: #898ea4; --accent: #0099cc; --accent-hover: #0088dd; --accent-text: var(--bg); --code: #0099cc; --preformatted: #444; --marked: #ff8036; --disabled: #efefef; --caution: #ff3333; --warning: red; } @media (prefers-color-scheme: dark) { ::backdrop, :root { color-scheme: dark; --bg: black; --accent-bg: #0066aa; --text: #dcdcdc; --text-light: #ababab; --accent: #0099cc; --accent-hover: #0088dd; --accent-text: var(--bg); --code: #0099cc; --preformatted: #fff; --disabled: #111; --caution: #ff3333; --warning: red; } img, video { opacity: 0.8; } } *, *::after, *::before { box-sizing: border-box; } input, progress, select, textarea { appearance: none; -webkit-appearance: none; -moz-appearance: none; } html { font-family: var(--sans-font); scroll-behavior: smooth; } body { color: var(--text); background-color: var(--bg); font-size: 1.15rem; line-height: 1.5; display: grid; grid-template-columns: 1fr min(60rem, 90%) 1fr; margin: 0; } body > * { grid-column: 2; } body > header { background-color: var(--accent-bg); border-bottom: 1px solid var(--border); text-align: center; padding: 0 0.5rem 2rem; grid-column: 1 / -1; } body > header > *:only-child { margin-block-start: 2rem; } body > header h1 { max-width: 1200px; margin: 1rem auto; } body > header p { max-width: 40rem; margin: 1rem auto; } main { padding-top: 1.5rem; } body > footer { margin-top: 4rem; padding: 2rem 1rem 1.5rem; color: var(--text-light); font-size: 0.9rem; text-align: center; border-top: 1px solid var(--border); } h1 { font-size: 3rem; text-decoration: solid underline #0099cc 6px; } h2 { font-size: 2.6rem; margin-top: 3rem; text-decoration: solid underline #0099cc 4px; } h3 { font-size: 2rem; margin-top: 3rem; text-decoration: solid underline #0099cc 3px; } h4 { font-size: 1.44rem; text-decoration: double underline #0099cc 1px; } h5 { font-size: 1.15rem; text-decoration: dotted underline #0099cc 1px; } h6 { font-size: 0.96rem; } p { margin: 1.5rem 0; } h1, h2, h3, h4, h5, h6, p { overflow-wrap: break-word; } h1, h2, h3 { line-height: 1.1; } @media only screen and (max-width: 720px) { h1 { font-size: 2.5rem; } h2 { font-size: 2.1rem; } h3 { font-size: 1.75rem; } h4 { font-size: 1.25rem; } } a, a:visited { color: var(--accent); } a:hover { text-decoration: none; } .button, a.button, button, input[type="submit"], input[type="button"], input[type="reset"], label[type="button"] { border: 1px solid var(--accent); background-color: var(--accent); color: var(--accent-text); padding: 0.5rem 0.9rem; text-decoration: none; line-height: normal; } .button[aria-disabled="true"], input:disabled, textarea:disabled, select:disabled, button[disabled] { cursor: not-allowed; background-color: var(--disabled); border-color: var(--disabled); color: var(--text-light); } input[type="range"] { padding: 0; } abbr[title] { color: var(--accent); cursor: help; text-decoration-line: underline; text-decoration-style: dashed; } .button:not([aria-disabled="true"]):hover, input[type="submit"]:enabled:hover, input[type="reset"]:enabled:hover, input[type="button"]:enabled:hover, label[type="button"]:hover, button:enabled:hover { background-color: var(--accent-hover); border-color: var(--accent-hover); cursor: pointer; } .button:not([aria-disabled="true"]):hover, button[type="reset"]:enabled:hover, input[type="reset"]:enabled:hover, label[type="button"]:hover { background-color: var(--warning); border-color: var(--warning); cursor: pointer; } button[type="reset"], input[type="reset"]:enabled, label[type="button"] { background-color: var(--caution); border-color: var(--caution); cursor: pointer; } .button:focus-visible, button:focus-visible:where(:enabled), input:enabled:focus-visible:where( [type="submit"], [type="reset"], [type="button"] ) { outline: 2px solid var(--accent); outline-offset: 1px; } header > nav { font-size: 2rem; line-height: 2; padding: 1rem 0 0; } header > nav ol, header > nav ul { align-content: space-around; align-items: center; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; list-style-type: none; margin: 0; padding: 0; } header > nav ol li, header > nav ul li { display: inline-block; } .tags { display: inline-block; padding: 0.1rem; } header > nav a, header > nav a:visited { margin: 0 0.5rem 1rem; color: var(--text); display: inline-block; padding: 0.1rem 1rem; text-decoration: solid underline white 2px; } header > nav a.current, header > nav a:hover, header > nav a[aria-current="page"] { color: var(--preformatted); cursor: pointer; text-decoration: solid underline var(--accent) 4px; } @media only screen and (max-width: 720px) { header > nav a { border: none; padding: 0; text-decoration: underline; line-height: 1; } } aside, details, pre { background-color: var(--bg); border: 3px solid var(--accent); border-radius: var(--standard-border-radius); margin-bottom: 1rem; } aside { font-size: 1rem; width: 30%; padding: 0 15px; margin-inline-start: 15px; float: right; } *[dir="rtl"] aside { float: left; } @media only screen and (max-width: 720px) { aside { width: 100%; float: none; margin-inline-start: 0; } } article, dialog, fieldset { border: 1px solid var(--accent); padding: 1rem; border-radius: var(--standard-border-radius); margin-bottom: 1rem; } article h2:first-child, article h3:first-child, section h2:first-child, section h3:first-child { margin-top: 1rem; } section { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 2rem 1rem; margin: 3rem 0; } section + section, section:first-child { border-top: 0; padding-top: 0; } section + section { margin-top: 0; } section:last-child { border-bottom: 0; padding-bottom: 0; } details { padding: 0.7rem 1rem; } summary { cursor: pointer; font-weight: bold; padding: 0.7rem 1rem; margin: -0.7rem -1rem; word-break: break-all; } details[open] > summary + * { margin-top: 0; } details[open] > summary { margin-bottom: 0.5rem; } details[open] > :last-child { margin-bottom: 0; } table { border-collapse: collapse; margin: 1.5rem 0; } figure > table { width: max-content; margin: 0; } td, th { border: 1px solid var(--border); text-align: start; padding: 0.5rem; } th { background-color: var(--accent-bg); font-weight: bold; } tr:nth-child(even) { background-color: var(--accent-bg); } table caption { font-weight: bold; margin-bottom: 0.5rem; } .button, button, input, select, textarea { font-size: inherit; font-family: inherit; padding: 0.5rem; margin-bottom: 0.5rem; border-radius: var(--standard-border-radius); box-shadow: none; max-width: 100%; display: inline-block; } input, select, textarea { color: var(--text); background-color: var(--bg); border: 1px solid var(--border); } label { display: block; } textarea:not([cols]) { width: 100%; } select:not([multiple]) { background-image: linear-gradient(45deg, transparent 49%, var(--text) 51%), linear-gradient(135deg, var(--text) 51%, transparent 49%); background-position: calc(100% - 15px), calc(100% - 10px); background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-inline-end: 25px; } *[dir="rtl"] select:not([multiple]) { background-position: 10px, 15px; } input[type="checkbox"], input[type="radio"] { vertical-align: middle; position: relative; width: min-content; } input[type="checkbox"] + label, input[type="radio"] + label { display: inline-block; } input[type="radio"] { border-radius: 100%; } input[type="checkbox"]:checked, input[type="radio"]:checked { background-color: var(--accent); } input[type="checkbox"]:checked::after { content: " "; width: 0.18em; height: 0.32em; border-radius: 0; position: absolute; top: 0.05em; left: 0.17em; background-color: transparent; border-right: solid var(--bg) 0.08em; border-bottom: solid var(--bg) 0.08em; font-size: 1.8em; transform: rotate(45deg); } input[type="radio"]:checked::after { content: " "; width: 0.25em; height: 0.25em; border-radius: 100%; position: absolute; top: 0.125em; background-color: var(--bg); left: 0.125em; font-size: 32px; } @media only screen and (max-width: 720px) { button, input, select, textarea { width: 100%; } } input[type="color"] { height: 2.5rem; padding: 0.2rem; } input[type="file"] { border: 0; } hr { border: none; height: 1px; background: var(--border); margin: 1rem auto; } mark { padding: 2px 5px; border-radius: var(--standard-border-radius); background-color: var(--marked); color: black; } mark a { color: #0d47a1; } audio, img, video { max-width: 100%; height: auto; border-radius: var(--standard-border-radius); } figure { margin: 0; display: block; overflow-x: auto; } figure > img, figure > picture > img { display: block; margin-inline: auto; } figcaption { text-align: center; font-size: 0.9rem; color: var(--text-light); margin-block: 1rem; } blockquote { margin-inline-start: 2rem; margin-inline-end: 0; margin-block: 2rem; padding: 0.4rem 0.8rem; border-inline-start: 0.35rem solid var(--accent); color: var(--text-light); font-style: italic; } cite { font-size: 0.9rem; color: var(--text-light); font-style: normal; } dt { color: var(--text-light); } code, kbd, pre, pre span, samp { font-family: var(--mono-font); color: var(--code); } kbd { padding: 0.1rem 0.4rem; background-color: var(--accent); color: var(--accent-text); border-radius: 0.25rem; border: 1px solid var(--accent-bg); box-shadow: 0 2px 0 1px var(--accent-bg); cursor: default; font-family: var(--font-family-sans-serif); font-size: 0.75em; line-height: 1; min-width: 0.75rem; max-width: 3rem; text-align: center; padding: 2px 5px; position: relative; top: -1px; &:hover { box-shadow: 0 1px 0 0.5px var(--accent-bg); top: 1px; } } pre { padding: 1rem 1.4rem; max-width: 100%; overflow: auto; color: var(--preformatted); } pre code { color: var(--preformatted); background: none; margin: 0; padding: 0; } meter, progress { border: solid black 0.3px; width: 100%; border-radius: var(--standard-border-radius); } progress:indeterminate { background-color: grey; } progress::-webkit-progress-bar { border-radius: var(--standard-border-radius); } progress::-webkit-progress-value { border-radius: var(--standard-border-radius); background-color: var(--accent); } progress::-moz-progress-bar { background-size: 100% 100%; transition-property: width; transition-duration: 0.3s; background-color: var(--accent); } dialog { max-width: 40rem; margin: auto; } dialog::backdrop { background-color: var(--bg); opacity: 0.8; } @media only screen and (max-width: 720px) { dialog { max-width: 100%; margin: auto 1em; } } sub, sup { vertical-align: baseline; position: relative; } sup { top: -0.4em; } sub { top: 0.3em; } .notice { background: var(--accent-bg); border: 2px solid var(--border); border-radius: var(--standard-border-radius); padding: 1.5rem; margin: 2rem 0; } meter { display: block; margin: 0 auto; -webkit-appearance: none; -moz-appearance: none; appearance: none; border-radius: var(--standard-border-radius); background: none; background-color: whitesmoke; } meter::-webkit-meter-bar { background: none; background-color: var(--text); } meter::-webkit-meter-optimum-value { transition: width 0.5s; background-image: linear-gradient(90deg, var(--accent)); background-size: 100% 100%; } meter::-webkit-meter-optimum-value:hover { background-image: linear-gradient(90deg, var(--accent)); transition: width 0.5s; width: 100% !important; } meter::-moz-meter-bar { background-color: var(--accent); background-image: linear-gradient(0deg, var(--accent)); background-size: 100% 100%; } .kb-club a { text-decoration: none; color: #212121; font-weight: bold; background: #c8e6c9; padding: 0.25rem 0; font-family: sans-serif; transition: 0.4s; } .kb-club a:hover { background: #c3efc8; } .kb-club-bg, .kb-club-no-bg { border: 2px solid #4caf50; padding: 0.25rem 0.5rem; } .kb-club-bg { background: #4caf50; color: #212121; }