body, html { font-family: var(--font-sans); font-size: var(--font-size-base); line-height: var(--line-height-base); color: var(--black); background: var(--white); margin: 0; } ::-moz-selection { color: var(--white); background: var(--blue-600); } ::selection { color: var(--white); background: var(--blue-600); } p { line-height: var(--line-height-lg); margin-top: 1.25rem; margin-bottom: 1.25rem; } blockquote { margin: 1.25rem 0; padding-left: .875rem; border-left: 4px solid var(--gray-400); } :is(body, html, nav .tags, nav .search) svg { stroke: var(--black); } :is(h1, h2, h3, h4, h5, h6, .pill--button) > svg { margin-right: .25rem; stroke-width: var(--stroke-width-bold) !important; } /* links */ a { color: var(--blue-600); transition-property: color; } /* links: custom */ :is(.main__title, footer nav:last-child) a { color: var(--black); text-decoration: none; } a:hover, a:focus, a:active, :is(.main__title, footer nav:last-child) a:hover, :is(.main__title, footer nav:last-child) a:focus, :is(.main__title, footer nav:last-child) a:active { color: var(--blue-800); } a svg { stroke: var(--blue-600); } :is(a:has(svg):hover, a:has(svg):active, a:has(svg):focus) svg { stroke: var(--blue-800); } strong, .pill--button { font-weight: 700; } blockquote, em { font-style: italic; } button, .pill--button { appearance: none; border: none; } /* headers */ h1, h2, h3, h4, h5, h6 { font-weight: 900; } hr { height: 1px; background-color: var(--gray-200); border: 0; } hr.large__spacing { margin: 2.5rem 0; } /* header */ .main__title { width: 100%; padding-top: 1.25rem; } .main__title h1 { line-height: 1.25; margin: 0; padding-bottom: .625rem; font-size: var(--font-size-2xl); line-height: var(--line-height-2xl); } /* nav */ nav ul { margin: 0; padding: 0; list-style: none; } nav ul li { margin-right: 1rem; } nav svg { margin-top: .125rem; } :is(nav a:hover, nav a:active, nav a:focus) svg, nav svg:hover, nav svg:active, nav svg:focus { stroke-width: var(--stroke-width-bold); } nav ul li:last-child { margin-right: 0; } .active, .active svg { cursor: not-allowed; } .active { color: var(--blue-600); } .active svg { stroke: var(--blue-600); } .active:hover svg, .active svg:hover { stroke-width: var(--stroke-width-default); } /* social icons */ .at svg { stroke: var(--brand-proton) !important; } .brand-github svg { stroke: var(--brand-github) !important; } .brand-mastodon svg { stroke: var(--brand-mastodon) !important; } .brand-lastfm svg { stroke: var(--brand-lastfm) !important; } .device-tv svg { stroke: var(--brand-trakt) !important; } .books svg { stroke: var(--brand-storygraph) !important; } .cup svg { stroke: var(--brand-buy-me-a-coffee) !important; } .heart-handshake svg { stroke: var(--webrings) !important; } .rss svg { stroke: var(--brand-rss) !important; } /* layout */ .default__wrapper { padding-top: 2rem; } .main__wrapper { min-height: 100vh; } main { flex: 1 1 0%; width: 80%; margin-left: auto; margin-right: auto; } /* now */ .now__topper, article { border-bottom: 1px solid var(--gray-200); margin-bottom: 2rem; padding-bottom: 1rem; } .now__topper h2 { font-size: var(--font-size-xl); margin-top: 0; margin-bottom: 1rem; } footer nav:first-child { gap: 0.5rem; margin-top: 2rem; padding: 2rem 0 1rem; width: 100%; } footer nav:first-child svg { margin-top: 0; } footer nav:first-child a { width: 1.5rem; height: 1.5rem; } footer nav:last-child { font-size: var(--font-size-sm); line-height: var(--line-height-sm); padding-bottom: 2rem; } footer nav:last-child span { margin-left: .375rem; margin-right: .375rem; } .highlight-text { padding: .125rem; background-color: var(--blue-600); } code { padding: .125rem; background-color: var(--black); } /* buttons */ .pill--button { font-size: var(--font-size-base); line-height: var(--line-height-base); border-radius: var(--rounded-full); padding: .5rem 1rem; margin: 0 .25rem .75rem 0; cursor: pointer; text-decoration: none; background-color: var(--blue-600); transition-property: background-color; display: inline-flex; flex-direction: row; } .pill--button.pill--button__small { padding: .25rem .5rem; margin-right: .5rem; margin-bottom: .5rem; font-size: var(--font-size-sm); line-height: var(--line-height-sm); display: inline-block; } .pill--button:hover, .pill--button:active, .pill--button:focus { background-color: var(--blue-800) !important; } .pill--button > svg, .pill--button svg:hover, .pill--button svg:active, .pill--button svg:focus, .pill--button:hover svg, .pill--button:active svg, .pill--button:focus svg { stroke: var(--white) !important; } /* articles */ article h2 { line-height: var(--line-height-2xl); margin: 0; } article time { font-size: var(--font-size-sm); line-height: var(--line-height-sm); } /* icons */ svg { stroke-width: var(--stroke-width-default); } .icon--bold > svg { stroke-width: var(--stroke-width-bold); } .icon--spin > svg { animation: spin 1s linear infinite; } /* lists */ ul, ol { padding-left: 1.25rem; list-style-position: inside; } li { margin-top: .375rem; margin-bottom: .5rem; } /* images */ .image__banner { border: 1px solid var(--blue-600); border-radius: var(--rounded-lg); } .image__banner, .image__banner > * { display: block; width: 100%; } .image__banner > * { height: auto; } /* pages */ .page__header { font-size: var(--font-size-2xl); line-height: var(--line-height-2xl); margin-top: 0; } /* utilities */ .hidden { display: none !important; } .no-underline { text-decoration: none !important; } .text-center { text-align: center !important; } .flex--centered { display: flex; flex-direction: row; align-items: center; } /* shared styles */ .main__title, .main__wrapper, .contact__wrapper { display: flex; flex-direction: column; } code, .highlight-text, .pill--button, .pill--button:hover, .pill--button:active, .pill--button:focus { color: var(--white); } a, .pill--button { transition-timing-function: var(--ease-in-out); transition-duration: 300ms; } .pill--button, footer nav { justify-content: center; } .image__banner { overflow: hidden; } /* screens: md */ @media screen and (min-width: 768px) { .main__title { flex-direction: row; align-items: center; justify-content: space-between; padding-top: 2.5rem; } .main__title h1 { padding-bottom: 0; font-size: var(--font-size-3xl); line-height: var(--line-height-3xl); } .now__topper h2 { font-size: var(--font-size-2xl); } main { max-width: 768px; } .page__header { font-size: var(--font-size-3xl); line-height: var(--line-height-3xl); } /* lists */ ul, ol { padding-left: 2.5rem; } footer nav:first-child { gap: .75rem; } } /* dark theme */ @media (prefers-color-scheme: dark) { body, html { color: var(--white); background-color: var(--black); } ::-moz-selection { background: var(--blue-400); } ::selection { background: var(--blue-400); } :is(body, html, nav .tags, nav .search) svg { stroke: var(--white); } a { color: var(--blue-400); } a svg { stroke: var(--blue-400); } :is(.main__title, footer nav:last-child) a { color: var(--white); } a:hover, a:focus, a:active, :is(.main__title, footer nav:last-child) a:hover, :is(.main__title, footer nav:last-child) a:focus, :is(.main__title, footer nav:last-child) a:active { color: var(--blue-200); } a:has(svg):hover svg, a:has(svg):active svg, a:has(svg):focus svg { stroke: var(--blue-200); } hr { background-color: var(--gray-900); } .now__topper, article { border-color: var(--gray-900) } code { color: var(--black); background-color: var(--white); } /* nav */ nav .brand-github svg { stroke: var(--brand-github-light) !important; } a:has(svg):hover svg { stroke: var(--blue-200); } .active { color: var(--blue-400); } .active:has(svg) { stroke: var(--blue-400) } /* buttons */ .pill--button:hover, .pill--button:active, .pill--button:focus { background-color: var(--blue-200); } /* images */ .image__banner { border-color: var(--blue-400); } .highlight-text, .pill--button { background-color: var(--blue-400); } }