/* CSS that adds the bare minimum for a simple layout */ /* This site's CSS does 10 major things: * 1. sans-serif instead of serif for low-res screens. * 2. Consistent font size;
 and  shouldn't be smaller than
 *    regular text.
 * 3. max content width for readability
 * 4. single-row nav links widescreen, multiline nav on narrow screens
 * 5. Soft border around code and images to disginguish from the
 *    surrounding page. Images with white/black or transparent
 *    backgrounds should have clear dimensions, and multiple consecutive
 *    inline  spans should look separate. A  span that
 *    continues across multiple lines should not look like multiple different
 *    spans.
 * 6. Increase the line-spacing a bit so users on mobile devices can
 *    tap links more easily.
 * 7. Horizontally center non-inline images; left-aligned stick out.
 * 8. dark.css changes a few colors if the browser wants dark mode.
 * 9. Support unstyled lists: for webmentions, post lists, nav links.
 * 10. Narrow screen optimization: less-indented blockquotes, overflow
 *     behavior for 
, no figure margins.
 * Everything else is browser defaults:
 * default fonts, non-dark-mode colors, etc.
 */

html {
	font: 100%/1.5 sans-serif;
	margin: auto;
	max-width: 45em;
	padding: 0 3%;
}

/* narrow screens: no margin for blockquotes and figures */
blockquote {
	border-left: 6px solid #bbb;
	margin-left: 0;
	padding-left: 1em;
}

/* narrow screens: remove figure margin. */
figure {
	margin: 0;
}

/* nav links should be easy to tap with fat fingers */
nav li {
	padding-right: 0.5em;
}

/* Lists without bullets: navlinks, posts lists, webmentions */
.unstyled-list {
	padding-left: 0;
}

.unstyled-list li {
	list-style-type: none;
	margin-bottom: 0.5em;
}

/* single-line nav on widescreen, multi-line nav on narrow screens */
@media (min-width: 24em) {
	nav li {
		display: inline;
	}
}

/* browsers make 
 small for some dumb legacy reason
 * and this somehow fixes that. */
code,
pre {
	/* stylelint-disable -- compatibility hack */
	font-family: monospace, monospace;

	/* stylelint-enable */
}

/* Narrow screens: long words can cause content to flow out of the
 * viewport, triggering horizontal scrolling. Allow breaking words in
 * content I don't control (comments). For content I do control, I just
 * add soft hyphens to the HTML. */
.u-comment,
:not(pre) > code {
	overflow-wrap: break-word;

	/* borders shouldn't touch text */
	padding: 0 0.1em;
}

/* Narrow screens: allow horizontal scroll in a pre block, but don't
 * clip it vertically */
pre {
	/* csslint ignore:start */
	overflow: auto visible;

	/* csslint ignore:end */
	padding: 0.5em;
}

/* Distinguish images from the background in case their color is
 * too similar to the page background color. Also put a border around
 * 
 so that it looks just like  (see below). */
img,
pre,
:not(pre) > code {
	border: 1px solid #bbb;
}

/* center images that aren't my indieweb icon */
img:not(.u-photo) {
	display: block;
	height: auto;
	margin: auto;
	max-width: 100%;
}