/* This is heavily derived from 2019.css. Since the new Equity and Concourse * font files mean lots of little changes to the CSS typography, it's easiest to * fork the file along with the fonts. * * Browser usage stats are from caniuse.com as of mid-April 2021. */ @import '2021-fonts.css'; /* CSS variables are supported in almost 95% of browsers. The fallback behavior * might be awful, but I won't bother offering fallbacks. */ /* sizes */ :root { --basefontsize: 1.2rem; /* a little larger than default */ --fontsize: var(--basefontsize); --lineheight: 1.6; --fontserif: 'Equity B', 'Times', 'Times New Roman', serif; --fontsans: 'Concourse', 'Helvetica', 'Arial', sans-serif; --fontmono: 'PT Mono', 'Andale Mono', 'Menlo', monospace; } /* Make the text larger for larger screens, which presumably are at a larger * distance from the viewer. */ @media screen and (min-width: 60em) { :root { --fontsize: calc(1.25 * var(--basefontsize)); /* 1.25 scaling factor for distance */ } } @media screen and (min-width: 120em) { :root { --fontsize: calc(1.5 * var(--basefontsize)); /* 1.5 scaling factor for distance */ } } /* Narrow screens get narrow layout. https://viewportsizer.com/devices/ * suggests that iPads start at 768px, so we won't limit their layout, but we * should limit (most) iPhones in portrait mode. */ @media screen and (max-device-width: 500px) and (orientation: portrait) { body { max-width: 18em; } } /* colors */ :root { --foreground: #202020; --background: #fbfbfb; --link-color: #2222ff; --link-color-visited: #990099; --link-color-active: #bb0000; } @media (prefers-color-scheme: dark) { :root { --foreground: #cccccc; --background: #222222; --link-color: #8888ff; --link-color-visited: #9966cc; --link-color-active: #882222; } } @media print { :root { --foreground: black; --background: unset; --link-color: black; --link-color-visited: black; --link-color-active: black; } } body { font-family: var(--fontserif); font-size: var(--fontsize); color: var(--foreground); background-color: var(--background); font-variant-numeric: oldstyle-nums; /* 95% supported */ } .lnum { /* lining numerals */ font-variant-numeric: lining-nums; } .smallcaps { font-variant-caps: small-caps; /* 93% supported */ } abbr, abbr[title], acronym, acronym[title], .smallcaps-lc, .caps { /* Also turn capital letters into small caps. */ font-variant-caps: all-small-caps; } em abbr, cite abbr, i abbr { /* small caps doesn't have an italic style */ font-style: normal; } pre, code { font-family: var(--fontmono); font-size: 90%; line-height: 115%; /* scroll if too long, on phone or other narrow windows */ overflow-x: scroll; } pre { margin-left: calc(var(--lineheight) * 1em); } code { /* Relies on at appropriate places, e.g. after _ characters. */ -ms-hyphens: none; -moz-hyphens: none; -webkit-hyphens: none; hyphens: none; } @media screen and (min-width: 60em) { pre { /* spill to the right if too long */ overflow-x: visible; } } .nowrap { white-space: nowrap; /* 96% supported */ } /* "promoted" from 2021-e5.css */ .temperature, .time, .trail { /* all-small-caps makes the numbers wrong, so we transform the letters to * lowercase (e.g. F to f, AM to am, GR to gr) and then do small-caps */ text-transform: lowercase; /* 96% supported */ font-variant-caps: small-caps; white-space: nowrap; } .shape-letter { /* e.g. "T in the road", "X marks the spot" */ font-family: var(--fontsans); font-weight: 300; } /* Italicize stretches of French, Breton, German, Italian, Latin, or Turkish * text; use {{}}...{{}} or .... * House style is to tag words and phrases (if they don't appear in a standard * English dictionary) and sentences, but to leave proper names unstyled; use * {{}}...{{}} or * ... for proper names, for hyphenation. */ :lang(fr), :lang(br), :lang(de), :lang(it), :lang(la), :lang(tr) { font-style: italic; } .name:lang(fr), .name:lang(br), .name:lang(de), .name:lang(it), .name:lang(la), .name:lang(tr) { font-style: normal; } /* If we link to an anchor, highlight the anchored element, and then let the * highlight fade. For example, if we link to page#interest, and that page has * "here is some text of interest", "some text" will * be highlighted. */ @keyframes highlight { /* 95% supported */ 0% { background-color: var(--highlight); } 90% { background-color: var(--highlight); animation-timing-function: ease-in; } 100% { background-color: inherit; /* default, whatever that is */ } } :target { animation: highlight 5s; /* use the "highlight" keyframes defined above */ } /* * Blocks */ #wrapper { max-width: 33em; margin: auto; background: url('images/coffee-leaf.png') right top / 15% no-repeat; } article { max-width: 33em; margin: auto; line-height: var(--lineheight); text-align: start; text-wrap: pretty; /* 77% support as of end of 2025 */ /* hyphenation, broadly following (first) Bringhurst and (second) http://clagnut.com/blog/2395 */ -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; /* 77% supported, 96% with various prefixes */ /* only hyphenate words of 6+ chars, leave 2+ on original line, 3+ on following */ --hyphen-chars-before: 2; --hyphen-chars-after: 3; --hyphen-chars-word: 6; -webkit-hyphenate-limit-before: var(--hyphen-chars-before); -webkit-hyphenate-limit-after: var(--hyphen-chars-after); -webkit-hyphenate-limit-chars: var(----hyphen-chars-word) var(--hyphen-chars-before) var(--hyphen-chars-after); /* not yet supported */ -moz-hyphenate-limit-chars: var(----hyphen-chars-word) var(--hyphen-chars-before) var(--hyphen-chars-after); /* not yet supported */ -ms-hyphenate-limit-chars: var(----hyphen-chars-word) var(--hyphen-chars-before) var(--hyphen-chars-after); hyphenate-limit-chars: var(----hyphen-chars-word) var(--hyphen-chars-before) var(--hyphen-chars-after); /* only 2 consecutive hyphenated lines */ --hyphen-line-limit: 2; -webkit-hyphenate-limit-lines: var(--hyphen-line-limit); -moz-hyphentate-limit-lines: var(--hyphen-line-limit); /* not yet supported */ -ms-hyphenate-limit-lines: var(--hyphen-line-limit); hyphenate-limit-lines: var(--hyphen-line-limit); /* don't hyphenate the last word of a paragraph */ --hyphen-limit-last: always; -webkit-hyphenate-limit-last: var(--hyphen-limit-last); /* not yet supported */ -moz-hyphenate-limit-last: var(--hyphen-limit-last); /* not yet supported */ -ms-hyphenate-limit-last: var(--hyphen-limit-last); hyphenate-limit-last: var(--hyphen-limit-last); /* don't bother hyphenating if text stops within 8% line width of the end */ --hyphen-zone: 8%; -webkit-hyphen-limit-zone: var(--hyphen-zone); -moz-hyphen-limit-zone: var(--hyphen-zone); -ms-hyphen-limit-zone: var(--hyphen-zone); hyphen-limit-zone: var(--hyphen-zone); hanging-punctuation: first allow-end; /* 18% supported (Safari only) */ } .nohyph { -ms-hyphens: manual; -moz-hyphens: manual; -webkit-hyphens: manual; hyphens: manual; } /* No space between paragraphs; indent first line of all paragraphs but the * first */ article p { margin-bottom: 0; } article p ~ p { margin-top: 0; text-indent: calc(var(--lineheight) * 1em); } /* Don't indent a paragraph immediately following an
,
,