:root { color-scheme: light dark; --color-bg-light: #f0f0f0; --color-text-light: #640054; --color-header-light: #185370; --color-warn-light: #fbcc0a; --color-bg-dark: #1f1f1f; --color-text-dark: #91c73b; --color-header-dark: #ff9b37; --color-warn-dark: #540033; --color-bg: light-dark(var(--color-bg-light), var(--color-bg-dark)); --color-text: light-dark(var(--color-text-light), var(--color-text-dark)); --color-header: light-dark(var(--color-header-light), var(--color-header-dark)); --color-warn: light-dark(var(--color-warn-light), var(--color-warn-dark)); } /* numbered components are from https://www.joshwcomeau.com/css/custom-css-reset/ */ *, *::before, *::after { box-sizing: border-box; /* 1. Use a more-intuitive box-sizing model */ } *:not(dialog) { margin: 0; /* 2. Remove default margin */ } *:focus-visible { outline: .2rem solid var(--color-header); outline-offset: .15rem; background-color: var(--color-header); } html { height: 100%; } @media (prefers-reduced-motion: no-preference) { html { interpolate-size: allow-keywords; /* 3. Enable keyword animations */ } } #root, #__next { isolation: isolate; /* 10. Create a root stacking context */ } body { line-height: 1.5; /* 4. Increase line-height */ -webkit-font-smoothing: antialiased; /* 5. Improve text rendering */ font-family: "Atkinson Hyperlegible Next", sans-serif; background-color: var(--color-bg); color: var(--color-text); display: grid; grid-template-rows: auto 1fr auto; min-height: 100%; } main { width: 60%; margin: 0 auto 2rem; } @media (max-width: 1100px) { main { width: 80%; } } @media (max-width: 650px) { main { width: 92%; } } img, picture, video, canvas, svg { display: block; /* 6. Improve media defaults */ max-width: 100%; /* 6. Improve media defaults */ height: auto; /* 6. Improve media defaults */ margin: 0 auto; } input, button, textarea, select { font: inherit; /* 7. Inherit fonts for form controls */ } p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; /* 8. Avoid text overflows */ } h1, h2, h3, h4, h5, h6 { text-wrap: balance; /* 9. Improve line wrapping */ color: var(--color-header); font-weight: bold; line-height: 105%; } h1 { margin: 5rem 0 2rem; font-size: 3rem; text-align: center; } @media (max-width: 650px) { h1 { margin: 2rem 0; } } h2 { font-size: 2rem; padding-top: 3rem; border-top: solid; margin: 1.4rem 0; } h3 { font-size: 1.4rem; margin-top: 1rem; } p { text-wrap: pretty; /* 9. Improve line wrapping */ } p, ul { margin: 1.5rem 0; } ul ul { margin: .5rem 0; } @media (max-width: 650px) { ul { padding-left: 1.5rem; } } a:link, a:visited { background-color: var(--color-text); color: var(--color-bg); font-weight: bold; padding: 0 .2rem; text-decoration: none; border-radius: .2rem; } /* makes the years page prettier */ h3 a:link, h3 a:visited { background-color: var(--color-header); } h3 *:focus-visible { outline: .2rem solid var(--color-text); background-color: var(--color-text); } /* Header nav */ nav { border-bottom: .25rem solid var(--color-header); font-size: 1.1rem; } #skip { position: absolute; left: -999px; top: -999px; } #skip:focus-visible { left: 1rem; top: .5rem; } nav ul { display: flex; flex-flow: row wrap; align-items: stretch; justify-content: center; list-style: none; padding: 0; margin: 0; } nav li { margin: .5rem .5rem; } footer { display: flex; justify-content: space-between; margin: 1rem auto 0; padding: 1rem .5rem; width: 100%; flex-flow: row wrap; border-top: .25rem solid var(--color-header); } footer p { margin: 0.5rem 0; } @media (max-width: 650px) { footer { flex-flow: column nowrap; } footer p { text-align: center; } }