:root { color-scheme: light dark; --color-background: light-dark(#f8f8f8, #181818); --color-heading: light-dark(rgb(32, 19, 142), rgb(117, 108, 218)); --color-text: light-dark(black, rgba(255, 255, 255, 0.7)); --color-link: var(--color-heading); --color-link-hover: light-dark(rgb(19, 11, 87), rgb(98, 90, 184)); --color-input-hover: var(--color-heading); --color-input-focus-visible: var(var(--color-heading)); } *, *::before, *::after { box-sizing: border-box; margin: 0; font-weight: normal; } body { min-height: 100dvh; color: var(--color-text); background: var(--color-background); transition: color 0.5s, background-color 0.5s; line-height: 1.6; font-family: monospace; font-size: 16px; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } :focus-visible { outline: none; } #app { height: 100dvh; max-width: 1280px; margin: 0 auto; padding: 2rem; font-weight: normal; } a { color: var(--color-link); &:hover, &:visited { color: var(--color-link-hover); } } button, input { border: 2px solid var(--color-text); background-color: inherit; color: var(--color-text); border-radius: 4px; font-size: 1rem; padding: 4px; font-family: monospace; &:hover, &:focus, &:focus-visible { border-color: var(--color-input-hover); } } input:invalid { border-color: red; }