:root { color-scheme: light dark; --color-background-light: #ffffff; /* White */ --color-dimmed-light: #f3f4f5; /* Light Gray 200 */ --color-primary-light: #191e23; /* Dark Gray 900 */ --color-secondary-light: #6c7781; /* Dark Gray 300 */ --color-accent-light: #0073aa; /* WordPress Blue */ --color-background-dark: #191e23; /* Dark Gray 900 */ --color-dimmed-dark: #23282d; /* Dark Gray 800 */ --color-primary-dark: #fbfbfc; /* Light Gray 100 */ --color-secondary-dark: #ccd0d4; /* Light Gray 700 */ --color-accent-dark: #00a0d2; /* Medium Blue */ --color-background: var(--color-background-light); --color-dimmed: var(--color-dimmed-light); --color-primary: var(--color-primary-light); --color-secondary: var(--color-secondary-light); --color-accent: var(--color-accent-light); --scale-ratio: 1.25; --scale0: 1rem; --scale1: calc(var(--scale0) * var(--scale-ratio)); --scale2: calc(var(--scale1) * var(--scale-ratio)); --scale3: calc(var(--scale2) * var(--scale-ratio)); --scale4: calc(var(--scale3) * var(--scale-ratio)); --scale5: calc(var(--scale4) * var(--scale-ratio)); } @media (prefers-color-scheme: dark) { :root { --color-background: var(--color-background-dark); --color-dimmed: var(--color-dimmed-dark); --color-primary: var(--color-primary-dark); --color-secondary: var(--color-secondary-dark); --color-accent: var(--color-accent-dark); } } * { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 14px; } body { background: var(--color-background); color: var(--color-primary); display: grid; font: 1em/1.5 Lato, sans-serif; gap: 2em; grid-template-columns: [full-start] 1fr [main-start side-start] minmax(min-content, 12em) [side-end content-start] minmax(min-content, 36em) [main-end content-end] 1fr [full-end]; grid-template-rows: auto [content] 0; margin-bottom: 4em; } body::before { content: ''; grid-column: full; grid-row: content; } ol, ul { padding-left: 1em; } :not(.icon-list, .tag-list) > li + li { margin-top: 0.4em; } li::marker, .network { color: var(--color-secondary); } a { color: var(--color-accent); text-decoration: none; } a:focus, a:hover { text-decoration: underline; } h1, h2, h3, h5 { font-weight: normal; } h1, h2, h3 { line-height: 1.2; } h1 { font-size: var(--scale5); } h2 { color: var(--color-secondary); font-size: var(--scale4); } h3 { color: var(--color-secondary); font-size: var(--scale3); grid-column: side; margin-bottom: 1rem; } h4 { font-size: var(--scale2); } h5 { font-size: var(--scale1); } h6 { font-size: var(--scale0); } blockquote { border-left: 0.2em solid var(--color-dimmed); padding-left: 1em; } cite { color: var(--color-secondary); font-style: inherit; } cite::before { content: '— '; } svg { margin-right: 0.2em; vertical-align: text-bottom; } .masthead { background: var(--color-dimmed); display: inherit; gap: inherit; grid-column: full; grid-template-columns: inherit; padding: 4em 0; text-align: center; } .masthead > *, section { grid-column: main; } .masthead > img { border: 4px solid; border-radius: 50%; margin: 0 auto; max-width: 12em; } article > * + *, blockquote > * + *, .timeline > div > * + * { margin-top: 0.6em; } .meta { color: var(--color-secondary); } .stack { display: grid; gap: 1.5em; } .icon-list { display: flex; flex-wrap: wrap; gap: 0.4em 1em; justify-content: center; list-style: none; padding: 0; } .grid-list { display: grid; gap: 1em; } .tag-list { display: flex; flex-wrap: wrap; gap: 0.4em; list-style: none; padding: 0; } .tag-list > li { background: var(--color-dimmed); border-radius: 0.2em; padding: 0.2em 0.6em; } .timeline > div { position: relative; } .timeline > div:not(:last-child) { padding-bottom: 1rem; } .timeline > div:not(:last-child)::before { content: ''; position: absolute; top: 1rem; left: -15px; width: 2px; height: 100%; background: var(--color-secondary); } .timeline > div:not(:only-child)::after { content: ''; position: absolute; top: 0.6rem; left: -20px; width: 8px; height: 8px; background: var(--color-secondary); border: 2px solid var(--color-background); border-radius: 50%; } @media print, (min-width: 48em) { h3 { text-align: right; margin-bottom: inherit; } .masthead { text-align: inherit; } .masthead > *, section { grid-column: content; } .masthead img { grid-column: side; grid-row: span 2; max-width: 100%; } section { display: contents; } .icon-list { flex-direction: column; } .grid-list { grid-template-columns: repeat(auto-fit, minmax(calc((100% - 1em) / 2), 1fr)); } }