:root { font-family: sans-serif; color-scheme: light dark; /* theme colours */ --primary: #055; --secondary: #dee; --negative: #a01; --background: #eff; --foreground: #022; --behind: #dee; --header-bg: var(--primary); @media (prefers-color-scheme: dark) { --primary: #8cc; --secondary: #122; --negative: #e78; --background: #233; --foreground: #eff; --behind: #011; --header-bg: var(--secondary); } /* dimensions */ --page-width: 800px; --is-wide: 1; @media (width < 800px) { --is-wide: 0; } } body { margin: 0; padding: 0; background-color: var(--behind); } header { background: linear-gradient( to bottom, color-mix(in oklab, var(--header-bg), var(--behind)), var(--header-bg) ); color: contrast-color(var(--header-bg)); padding: 1em; max-width: var(--page-width); margin: calc(var(--is-wide) * 1em) auto; height: 100px; display: flex; align-items: end; site-name { font-weight: bold; font-size: xx-large; } } footer { font-size: small; text-align: center; margin: 1lh; color: color-mix(in oklab, var(--foreground), var(--behind)); a { color: inherit; text-decoration-style: dotted; } } main { padding: 1em; max-width: var(--page-width); margin: auto; background-color: var(--background); color: var(--foreground); } error-message { background-color: var(--negative); color: contrast-color(var(--negative)); margin: 1em 0; padding: 1em; border-radius: 4px; display: flex; flex-direction: column; gap: 0.5lh; width: max-content; max-width: 100%; box-sizing: border-box; box-label { font-weight: bold; } } .challenge-message { border: 1px solid var(--negative); padding: 1em; width: max-content; max-width: 100%; box-sizing: border-box; } form { display: grid; grid-template-columns: max-content max-content; gap: 1em; background-color: var(--behind); margin: 1em 0; padding: 1em; width: max-content; max-width: 100%; box-sizing: border-box; button { grid-column: 1 / 3; width: max-content; justify-self: center; } }