963 lines
		
	
	
	
		
			18 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
			
		
		
	
	
			963 lines
		
	
	
	
		
			18 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
/* ====== START reset ======
 | 
						|
Based on ["A (more) Modern CSS Reset"](https://piccalil.li/blog/a-more-modern-css-reset/) by Andy Bell
 | 
						|
 | 
						|
Used under [CC BY 3.0](http://creativecommons.org/licenses/by/3.0/)
 | 
						|
*/
 | 
						|
 | 
						|
*,
 | 
						|
*::before,
 | 
						|
*::after {
 | 
						|
    box-sizing: border-box;
 | 
						|
}
 | 
						|
 | 
						|
html {
 | 
						|
    -moz-text-size-adjust: none;
 | 
						|
    -webkit-text-size-adjust: none;
 | 
						|
    text-size-adjust: none;
 | 
						|
}
 | 
						|
 | 
						|
body,
 | 
						|
h1,
 | 
						|
h2,
 | 
						|
h3,
 | 
						|
h4,
 | 
						|
h5,
 | 
						|
h6,
 | 
						|
p,
 | 
						|
figure,
 | 
						|
blockquote {
 | 
						|
    margin: 0;
 | 
						|
}
 | 
						|
 | 
						|
/* Remove list styles, but maintain semantics in VoiceOver */
 | 
						|
ul[role='list'],
 | 
						|
ol[role='list'] {
 | 
						|
    list-style: none;
 | 
						|
}
 | 
						|
 | 
						|
body {
 | 
						|
    min-height: 100vh;
 | 
						|
    line-height: 1.4;
 | 
						|
}
 | 
						|
 | 
						|
section,
 | 
						|
main>header {
 | 
						|
    margin: 0 auto;
 | 
						|
    max-width: 60rem;
 | 
						|
}
 | 
						|
 | 
						|
/* Avoid orphans in headings */
 | 
						|
h1,
 | 
						|
h2,
 | 
						|
h3,
 | 
						|
h4 {
 | 
						|
    text-wrap: balance;
 | 
						|
}
 | 
						|
 | 
						|
a {
 | 
						|
    text-decoration-skip-ink: auto;
 | 
						|
}
 | 
						|
 | 
						|
/* Make images easier to work with */
 | 
						|
img,
 | 
						|
picture {
 | 
						|
    max-width: 100%;
 | 
						|
    height: auto;
 | 
						|
    display: block;
 | 
						|
}
 | 
						|
 | 
						|
/* Inherit fonts for inputs and buttons */
 | 
						|
input,
 | 
						|
button,
 | 
						|
textarea,
 | 
						|
select {
 | 
						|
    font-family: inherit;
 | 
						|
    font-size: inherit;
 | 
						|
}
 | 
						|
 | 
						|
/* Anything that has been anchored to should have extra scroll margin */
 | 
						|
:target {
 | 
						|
    scroll-margin-block: 1ex;
 | 
						|
}
 | 
						|
 | 
						|
/* ====== START good content ====== */
 | 
						|
 | 
						|
/* @link https://utopia.fyi/type/calculator?c=320,16,1.2,1440,20,1.25,6,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
 | 
						|
 | 
						|
:root {
 | 
						|
    /* Step -2: 11.1111px → 12.8px */
 | 
						|
    --step--2: clamp(0.6944rem, 0.6643rem + 0.1508vw, 0.8rem);
 | 
						|
    /* Step -1: 13.3333px → 16px */
 | 
						|
    --step--1: clamp(0.8333rem, 0.7857rem + 0.2381vw, 1rem);
 | 
						|
    /* Step 0: 16px → 20px */
 | 
						|
    --step-0: clamp(1rem, 0.9286rem + 0.3571vw, 1.25rem);
 | 
						|
    /* Step 1: 19.2px → 25px */
 | 
						|
    --step-1: clamp(1.2rem, 1.0964rem + 0.5179vw, 1.5625rem);
 | 
						|
    /* Step 2: 23.04px → 31.25px */
 | 
						|
    --step-2: clamp(1.44rem, 1.2934rem + 0.733vw, 1.9531rem);
 | 
						|
    /* Step 3: 27.648px → 39.0625px */
 | 
						|
    --step-3: clamp(1.728rem, 1.5242rem + 1.0192vw, 2.4414rem);
 | 
						|
    /* Step 4: 33.1776px → 48.8281px */
 | 
						|
    --step-4: clamp(2.0736rem, 1.7941rem + 1.3974vw, 3.0518rem);
 | 
						|
    /* Step 5: 39.8131px → 61.0352px */
 | 
						|
    --step-5: clamp(2.4883rem, 2.1094rem + 1.8948vw, 3.8147rem);
 | 
						|
    /* Step 6: 47.7757px → 76.2939px */
 | 
						|
    --step-6: clamp(2.986rem, 2.4767rem + 2.5463vw, 4.7684rem);
 | 
						|
}
 | 
						|
 | 
						|
.flow>*+* {
 | 
						|
    margin-block-start: var(--flow-space, 1em);
 | 
						|
}
 | 
						|
 | 
						|
blockquote {
 | 
						|
    padding-inline-start: 1em;
 | 
						|
    border-inline-start: 0.3em solid;
 | 
						|
    font-style: italic;
 | 
						|
    font-size: var(--step-1);
 | 
						|
}
 | 
						|
 | 
						|
h1 {
 | 
						|
    font-size: var(--step-4);
 | 
						|
}
 | 
						|
 | 
						|
h2 {
 | 
						|
    font-size: var(--step-3);
 | 
						|
}
 | 
						|
 | 
						|
h3 {
 | 
						|
    font-size: var(--step-2);
 | 
						|
}
 | 
						|
 | 
						|
:is(h1, h2, h3, blockquote) {
 | 
						|
    --flow-space: 1.5em;
 | 
						|
}
 | 
						|
 | 
						|
:is(h1, h2, h3)+* {
 | 
						|
    --flow-space: 0.5em;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
main>* {
 | 
						|
    max-width: 60rem;
 | 
						|
    margin-inline: auto;
 | 
						|
}
 | 
						|
 | 
						|
a {
 | 
						|
    text-underline-offset: 0.3ex;
 | 
						|
    position: relative;
 | 
						|
}
 | 
						|
 | 
						|
a:hover {
 | 
						|
    text-decoration-thickness: 0.3ex;
 | 
						|
}
 | 
						|
 | 
						|
a:active {
 | 
						|
    text-decoration-thickness: 0.1ex;
 | 
						|
}
 | 
						|
 | 
						|
/* ====== START project styles ====== */
 | 
						|
:root {
 | 
						|
    --color-background: linen;
 | 
						|
    --color-foreground: black;
 | 
						|
    --color-accent: darkolivegreen;
 | 
						|
    --color-link: midnightblue;
 | 
						|
    --color-link-visited: rebeccapurple;
 | 
						|
    --color-link-active: darkred;
 | 
						|
    --color-mark: coral;
 | 
						|
    --color-mark: lightsalmon;
 | 
						|
 | 
						|
    color-scheme: light;
 | 
						|
    accent-color: darkolivegreen;
 | 
						|
 | 
						|
    --font-sans-serif: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
 | 
						|
    --font-serif: Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
 | 
						|
    --font-mono: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
 | 
						|
}
 | 
						|
 | 
						|
:focus {
 | 
						|
    outline: 0.125rem dashed var(--color-foreground);
 | 
						|
    outline-offset: 0.125em;
 | 
						|
}
 | 
						|
 | 
						|
html {
 | 
						|
    box-sizing: inherit;
 | 
						|
    word-wrap: break-word;
 | 
						|
    -ms-hyphens: auto;
 | 
						|
    hyphens: auto;
 | 
						|
}
 | 
						|
 | 
						|
body {
 | 
						|
    padding: 0 2rem;
 | 
						|
    background-color: var(--color-background);
 | 
						|
    color: var(--color-foreground);
 | 
						|
    font-family: var(--font-serif);
 | 
						|
    font-size: var(--step-0);
 | 
						|
}
 | 
						|
 | 
						|
a {
 | 
						|
    color: var(--color-link);
 | 
						|
}
 | 
						|
 | 
						|
a:visited {
 | 
						|
    color: var(--color-link-visited);
 | 
						|
}
 | 
						|
 | 
						|
a:active {
 | 
						|
    color: var(--color-link-active);
 | 
						|
}
 | 
						|
 | 
						|
[aria-current="page"] {
 | 
						|
    border-block-end-color: var(--color-accent);
 | 
						|
}
 | 
						|
 | 
						|
mark {
 | 
						|
    padding: 0 0.125em;
 | 
						|
    background-color: var(--color-mark);
 | 
						|
    color: black;
 | 
						|
}
 | 
						|
 | 
						|
body>header {
 | 
						|
    padding: 2rem 0;
 | 
						|
    display: flex;
 | 
						|
    flex-wrap: wrap;
 | 
						|
    justify-content: space-around;
 | 
						|
    gap: 1.5rem;
 | 
						|
}
 | 
						|
 | 
						|
body>header:nth-child(2) a:first-child {
 | 
						|
    width: 15rem;
 | 
						|
    height: auto;
 | 
						|
}
 | 
						|
 | 
						|
body>header nav {
 | 
						|
    margin: auto 0;
 | 
						|
    font-size: 1.375rem;
 | 
						|
}
 | 
						|
 | 
						|
body>header ul {
 | 
						|
    margin: 0;
 | 
						|
    padding: 0;
 | 
						|
    vertical-align: middle;
 | 
						|
}
 | 
						|
 | 
						|
body>header li,
 | 
						|
body>footer li {
 | 
						|
    display: inline;
 | 
						|
    vertical-align: middle;
 | 
						|
}
 | 
						|
 | 
						|
body>header li+li::before {
 | 
						|
    content: "•";
 | 
						|
    font-size: 1em;
 | 
						|
    margin-left: 0.1875em;
 | 
						|
    margin-right: 0.1875em;
 | 
						|
    position: relative;
 | 
						|
    top: -0.0625em;
 | 
						|
}
 | 
						|
 | 
						|
body>header a {
 | 
						|
    text-decoration: none;
 | 
						|
    color: currentColor !important;
 | 
						|
    border: 0.25em solid transparent;
 | 
						|
}
 | 
						|
 | 
						|
body>header a:hover {
 | 
						|
    border-block-end-color: var(--color-accent);
 | 
						|
    ;
 | 
						|
}
 | 
						|
 | 
						|
hr {
 | 
						|
    margin: 1.5em auto;
 | 
						|
    width: 50%;
 | 
						|
    border-color: var(--color-foreground);
 | 
						|
}
 | 
						|
 | 
						|
dt {
 | 
						|
    font-weight: 700;
 | 
						|
}
 | 
						|
 | 
						|
aside.alert,
 | 
						|
[data-game-status="0"] [data-status="0"],
 | 
						|
[data-game-status="1"] [data-status="1"],
 | 
						|
[data-game-status="2"] [data-status="2"],
 | 
						|
[data-game-status="3"] [data-status="3"],
 | 
						|
[data-game-status="7"] [data-status="7"],
 | 
						|
[data-game-status="8"] [data-status="8"],
 | 
						|
[data-game-status="9"] [data-status="9"] {
 | 
						|
    padding: 1em 2em;
 | 
						|
    border: 0.125em solid currentColor;
 | 
						|
    border-radius: 0.25em;
 | 
						|
    background-color: var(--color-mark, Mark);
 | 
						|
    color: MarkText;
 | 
						|
}
 | 
						|
 | 
						|
a.call-to-action {
 | 
						|
    color: black !important;
 | 
						|
    background: gainsboro;
 | 
						|
    padding: 0.125em 0.375em;
 | 
						|
    display: inline-block;
 | 
						|
    font-variant: small-caps;
 | 
						|
    text-decoration: none;
 | 
						|
    border: 0.0625em solid currentColor;
 | 
						|
    font-size: 0.9em;
 | 
						|
}
 | 
						|
 | 
						|
a.call-to-action:hover,
 | 
						|
a.call-to-action:focus {
 | 
						|
    background: yellowgreen;
 | 
						|
}
 | 
						|
 | 
						|
a.call-to-action::after {
 | 
						|
    content: " →";
 | 
						|
}
 | 
						|
 | 
						|
.sr-only {
 | 
						|
    border: 0 !important;
 | 
						|
    clip: rect(1px, 1px, 1px, 1px) !important;
 | 
						|
    -webkit-clip-path: inset(50%) !important;
 | 
						|
    clip-path: inset(50%) !important;
 | 
						|
    height: 1px !important;
 | 
						|
    overflow: hidden !important;
 | 
						|
    margin: -1px !important;
 | 
						|
    padding: 0 !important;
 | 
						|
    position: absolute !important;
 | 
						|
    width: 1px !important;
 | 
						|
    white-space: nowrap !important;
 | 
						|
}
 | 
						|
 | 
						|
.social-media {
 | 
						|
    display: flex;
 | 
						|
    justify-content: center;
 | 
						|
    gap: 0.5rem;
 | 
						|
}
 | 
						|
 | 
						|
.social-media a {
 | 
						|
    display: inline-block;
 | 
						|
    width: 1.75rem;
 | 
						|
    height: 1.75rem;
 | 
						|
    font-size: 0;
 | 
						|
}
 | 
						|
 | 
						|
.social-media a {
 | 
						|
    color: inherit;
 | 
						|
}
 | 
						|
 | 
						|
.social-media a:hover {
 | 
						|
    color: var(--color-accent);
 | 
						|
}
 | 
						|
 | 
						|
.social-media a svg+span {
 | 
						|
    display: none
 | 
						|
}
 | 
						|
 | 
						|
.social-media a:hover {
 | 
						|
    transform: scale(1.1);
 | 
						|
}
 | 
						|
 | 
						|
.social-media a:active {
 | 
						|
    transform: scale(0.9);
 | 
						|
}
 | 
						|
 | 
						|
svg {
 | 
						|
    fill: currentColor;
 | 
						|
    width: 100%;
 | 
						|
}
 | 
						|
 | 
						|
nav[aria-labelledby="breadcrumb-heading"] ul {
 | 
						|
    margin: 0 0 0.5em 0;
 | 
						|
    padding: 0;
 | 
						|
}
 | 
						|
 | 
						|
nav[aria-labelledby="breadcrumb-heading"] li {
 | 
						|
    display: inline-block;
 | 
						|
}
 | 
						|
 | 
						|
nav[aria-labelledby="breadcrumb-heading"] li::after {
 | 
						|
    --breadcrumb-arrow-size: .4em;
 | 
						|
    display: inline-block;
 | 
						|
    margin: 0 0.125em;
 | 
						|
    content: "";
 | 
						|
    width: 0;
 | 
						|
    height: 0;
 | 
						|
    border-top: var(--breadcrumb-arrow-size) solid transparent;
 | 
						|
    border-bottom: var(--breadcrumb-arrow-size) solid transparent;
 | 
						|
    border-left: var(--breadcrumb-arrow-size) solid currentColor;
 | 
						|
}
 | 
						|
 | 
						|
nav[aria-labelledby="breadcrumb-heading"] li:last-child::after {
 | 
						|
    content: unset;
 | 
						|
}
 | 
						|
 | 
						|
nav[aria-labelledby="breadcrumb-heading"] a {
 | 
						|
    color: currentColor;
 | 
						|
}
 | 
						|
 | 
						|
[aria-label="Skip links"] {
 | 
						|
    position: absolute;
 | 
						|
    inset-inline: 0;
 | 
						|
    inset-block-start: -100%;
 | 
						|
    padding: 0.5em;
 | 
						|
    background: Canvas;
 | 
						|
    box-shadow: 0 0 0.5em 0 CanvasText;
 | 
						|
    z-index: 10;
 | 
						|
    font-size: 0.9rem;
 | 
						|
}
 | 
						|
 | 
						|
[aria-label="Skip links"]:focus-within {
 | 
						|
    inset-block-start: 0%;
 | 
						|
}
 | 
						|
 | 
						|
[aria-label="Skip links"] ul {
 | 
						|
    margin: 0;
 | 
						|
    padding: 0;
 | 
						|
}
 | 
						|
 | 
						|
[aria-label="Skip links"] li {
 | 
						|
    display: inline;
 | 
						|
}
 | 
						|
 | 
						|
[aria-label="Skip links"] li+li {
 | 
						|
    margin-inline-start: 0.5em;
 | 
						|
}
 | 
						|
 | 
						|
[aria-label="Skip links"] a {
 | 
						|
    color: CanvasText;
 | 
						|
}
 | 
						|
 | 
						|
footer {
 | 
						|
    margin: 2rem auto 0 auto;
 | 
						|
    padding: 1rem 0;
 | 
						|
    max-width: 75rem;
 | 
						|
    border-block-start: 0.25rem double currentColor;
 | 
						|
    font-size: 0.9rem;
 | 
						|
    text-align: center;
 | 
						|
    clear: both;
 | 
						|
}
 | 
						|
 | 
						|
footer ul {
 | 
						|
    padding: 0;
 | 
						|
}
 | 
						|
 | 
						|
body>footer nav li+li::before {
 | 
						|
    content: "•";
 | 
						|
    font-size: 1em;
 | 
						|
    margin-left: 0.375em;
 | 
						|
    margin-right: 0.375em;
 | 
						|
    position: relative;
 | 
						|
    top: 0.0625em;
 | 
						|
}
 | 
						|
 | 
						|
footer nav a {
 | 
						|
    color: inherit !important;
 | 
						|
}
 | 
						|
 | 
						|
footer>p:last-child a {
 | 
						|
    margin: auto;
 | 
						|
    display: block;
 | 
						|
    width: 3rem;
 | 
						|
    font-size: 0;
 | 
						|
    color: inherit;
 | 
						|
}
 | 
						|
 | 
						|
label {
 | 
						|
    display: block;
 | 
						|
    font-variant: small-caps;
 | 
						|
}
 | 
						|
 | 
						|
input[type='radio']+label {
 | 
						|
    display: initial;
 | 
						|
}
 | 
						|
 | 
						|
label>span {
 | 
						|
    margin-block-end: 0.125em;
 | 
						|
    display: block;
 | 
						|
}
 | 
						|
 | 
						|
input[type="checkbox"]+span,
 | 
						|
input[type="radio"]+span {
 | 
						|
    vertical-align: middle;
 | 
						|
    font-variant: normal;
 | 
						|
    display: inline;
 | 
						|
}
 | 
						|
 | 
						|
label:has(select) span+span {
 | 
						|
    display: inline-block;
 | 
						|
    position: relative;
 | 
						|
}
 | 
						|
 | 
						|
label:has(select) span+span::after {
 | 
						|
    display: block;
 | 
						|
    inset-block-start: 50%;
 | 
						|
    inset-inline-end: 0.75em;
 | 
						|
    transform: translateY(-50%);
 | 
						|
    font-style: normal;
 | 
						|
    position: absolute;
 | 
						|
    content: "▼";
 | 
						|
    font-size: 0.8rem;
 | 
						|
    line-height: 1;
 | 
						|
    z-index: 0;
 | 
						|
    color: inherit;
 | 
						|
}
 | 
						|
 | 
						|
select {
 | 
						|
    padding: .125em 2em .125em .5em;
 | 
						|
    border: .0625em solid currentColor;
 | 
						|
    color: CanvasText;
 | 
						|
    background-color: Canvas;
 | 
						|
    --webkit-appearance: none;
 | 
						|
    appearance: none;
 | 
						|
    border-radius: 0.25em;
 | 
						|
}
 | 
						|
 | 
						|
input[type='text'],
 | 
						|
input[type='password'] {
 | 
						|
    width: 100%;
 | 
						|
    max-width: 30ch;
 | 
						|
}
 | 
						|
 | 
						|
input,
 | 
						|
textarea {
 | 
						|
    padding: .25em .5em;
 | 
						|
    border: 0.0625em solid currentColor;
 | 
						|
    color: var(--color-foreground);
 | 
						|
    border-radius: 0.25em;
 | 
						|
}
 | 
						|
 | 
						|
textarea {
 | 
						|
    width: 100%;
 | 
						|
    resize: vertical;
 | 
						|
    min-height: 10ch;
 | 
						|
    border-radius: 0;
 | 
						|
}
 | 
						|
 | 
						|
button {
 | 
						|
    padding: .375em .625em;
 | 
						|
    background-color: var(--color-accent, ButtonFace);
 | 
						|
    color: var(--color-background, ButtonText);
 | 
						|
    border-radius: 0 0.25em 0 0.25em;
 | 
						|
    border: 0.0625em solid var(--color-foreground, ButtonBorder);
 | 
						|
    font-variant: small-caps;
 | 
						|
    box-shadow: 0.1875em 0.1875em 0 0 var(--color-foreground, ButtonText);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
button:focus {
 | 
						|
    box-shadow: none;
 | 
						|
}
 | 
						|
 | 
						|
button:active {
 | 
						|
    position: relative;
 | 
						|
    inset-inline-start: 0.1875em;
 | 
						|
    inset-block-start: 0.1875em;
 | 
						|
    box-shadow: inset 0 0 0.375em black;
 | 
						|
}
 | 
						|
 | 
						|
button:disabled {
 | 
						|
    background-color: black;
 | 
						|
    color: GrayText;
 | 
						|
    cursor: not-allowed;
 | 
						|
    text-decoration: line-through;
 | 
						|
}
 | 
						|
 | 
						|
pre {
 | 
						|
    overflow: auto;
 | 
						|
}
 | 
						|
 | 
						|
pre.code {
 | 
						|
    background-color: CanvasText;
 | 
						|
    color: Canvas;
 | 
						|
    padding: 0.375em 0.625em;
 | 
						|
    border-radius: 0.375em;
 | 
						|
    border: 0.0625em solid currentColor;
 | 
						|
    box-shadow: 0 0 0.375em 0.0625em inset currentColor;
 | 
						|
}
 | 
						|
 | 
						|
code {
 | 
						|
    background-color: CanvasText;
 | 
						|
    color: Canvas;
 | 
						|
    padding: 0.0625em 0.375em;
 | 
						|
    border-radius: 0.375em;
 | 
						|
    border: 0.0625em solid currentColor;
 | 
						|
    white-space: normal;
 | 
						|
    word-break: break-all;
 | 
						|
    font-size: 0.9em;
 | 
						|
}
 | 
						|
 | 
						|
code a {
 | 
						|
    color: currentColor !important;
 | 
						|
    text-decoration-color: currentColor;
 | 
						|
}
 | 
						|
 | 
						|
/* === Tables === */
 | 
						|
tbody a {
 | 
						|
    color: inherit;
 | 
						|
}
 | 
						|
 | 
						|
/* Standard Tables */
 | 
						|
table {
 | 
						|
    margin: 1em -0.125em;
 | 
						|
    border-collapse: collapse;
 | 
						|
    border: 0.1875em solid ButtonBorder;
 | 
						|
    min-width: 40em;
 | 
						|
    width: 100%;
 | 
						|
    color: CanvasText;
 | 
						|
}
 | 
						|
 | 
						|
caption {
 | 
						|
    text-align: left;
 | 
						|
    font-style: italic;
 | 
						|
    padding: 0.5em;
 | 
						|
}
 | 
						|
 | 
						|
th,
 | 
						|
td {
 | 
						|
    padding: 0.25em 0.5em 0.25em 1em;
 | 
						|
    vertical-align: text-top;
 | 
						|
    text-align: left;
 | 
						|
    text-indent: -0.5em;
 | 
						|
}
 | 
						|
 | 
						|
tr {
 | 
						|
    color: inherit;
 | 
						|
    border-block-start: 0.0625em solid GrayText;
 | 
						|
}
 | 
						|
 | 
						|
tbody tr:last-child {
 | 
						|
    border-block-end: 0.0625em solid GrayText;
 | 
						|
}
 | 
						|
 | 
						|
th+th,
 | 
						|
th+td,
 | 
						|
td+td {
 | 
						|
    border-inline-start: 0.0625em solid GrayText;
 | 
						|
}
 | 
						|
 | 
						|
caption {
 | 
						|
    background-color: Canvas;
 | 
						|
    color: CanvasText;
 | 
						|
}
 | 
						|
 | 
						|
th[scope="col"] {
 | 
						|
    vertical-align: bottom;
 | 
						|
}
 | 
						|
 | 
						|
tbody tr:nth-child(even) {
 | 
						|
    background-color: rgba(255, 255, 255, 0.2);
 | 
						|
}
 | 
						|
 | 
						|
tfoot tr,
 | 
						|
tfoot th[scope="row"] {
 | 
						|
    background-color: CanvasText;
 | 
						|
    color: Canvas;
 | 
						|
}
 | 
						|
 | 
						|
tfoot td {
 | 
						|
    border-color: Canvas;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/* Responsive Tables with Sticky Headers
 | 
						|
Via Adrian Roselli
 | 
						|
https://adrianroselli.com/2020/11/under-engineered-responsive-tables.html
 | 
						|
https://adrianroselli.com/2020/01/fixed-table-headers.html
 | 
						|
*/
 | 
						|
[role="region"][aria-labelledby][tabindex] {
 | 
						|
    overflow: auto;
 | 
						|
    border: 0.1em solid GrayText;
 | 
						|
}
 | 
						|
 | 
						|
[role="region"][aria-labelledby][tabindex]:focus {
 | 
						|
    box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.5);
 | 
						|
    outline: 0.1em solid rgba(0, 0, 0, 0.1);
 | 
						|
}
 | 
						|
 | 
						|
[role="region"][aria-labelledby][tabindex] table {
 | 
						|
    margin: 0;
 | 
						|
    border: none;
 | 
						|
}
 | 
						|
 | 
						|
/* Scrolling Visual Cue */
 | 
						|
[role="region"][aria-labelledby][tabindex] {
 | 
						|
    background: linear-gradient(to right, Canvas 30%, rgba(255, 255, 255, 0)), linear-gradient(to right, rgba(255, 255, 255, 0), Canvas 70%) 0 100%, radial-gradient(farthest-side at 0% 50%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) 0 100%;
 | 
						|
    background-repeat: no-repeat;
 | 
						|
    background-color: Canvas;
 | 
						|
    background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
 | 
						|
    background-position: 0 0, 100%, 0 0, 100%;
 | 
						|
    background-attachment: local, local, scroll, scroll;
 | 
						|
}
 | 
						|
 | 
						|
/* Fixed Headers */
 | 
						|
th {
 | 
						|
    position: sticky;
 | 
						|
    inset-block-start: 0;
 | 
						|
    z-index: 2;
 | 
						|
    background-color: Canvas;
 | 
						|
    color: CanvasText;
 | 
						|
}
 | 
						|
 | 
						|
th[scope="row"] {
 | 
						|
    position: sticky;
 | 
						|
    inset-inline-start: 0;
 | 
						|
    z-index: 1;
 | 
						|
    vertical-align: top;
 | 
						|
}
 | 
						|
 | 
						|
th[scope="row"]::after {
 | 
						|
    content: "";
 | 
						|
    position: absolute;
 | 
						|
    inset-inline-end: -0.0625em;
 | 
						|
    inset-block: 0;
 | 
						|
    border-inline-end: 0.0625em solid GrayText;
 | 
						|
}
 | 
						|
 | 
						|
th[scope="col"]:first-child::after {
 | 
						|
    content: "";
 | 
						|
    position: absolute;
 | 
						|
    inset-inline-end: -0.0625em;
 | 
						|
    inset-block: 0;
 | 
						|
    border-inline-end: 0.0625em solid GrayText;
 | 
						|
}
 | 
						|
 | 
						|
th:not([scope="row"]):first-child {
 | 
						|
    /*   left: 0; */
 | 
						|
    inset-inline-start: 0;
 | 
						|
    z-index: 3;
 | 
						|
}
 | 
						|
 | 
						|
/* ====== page-specific styles ====== */
 | 
						|
.highlight {
 | 
						|
    display: flex;
 | 
						|
    flex-wrap: wrap;
 | 
						|
    gap: 1.5em;
 | 
						|
    max-width: unset;
 | 
						|
    background-color: var(--color-mark);
 | 
						|
    color: black;
 | 
						|
    position: relative;
 | 
						|
    margin-inline-start: -2rem;
 | 
						|
    padding: 3rem;
 | 
						|
    width: calc(100% + 4rem);
 | 
						|
    box-shadow: 0 0 0.5em 0.125em currentColor inset;
 | 
						|
}
 | 
						|
 | 
						|
.highlight a {
 | 
						|
    color: inherit;
 | 
						|
}
 | 
						|
 | 
						|
.highlight>div {
 | 
						|
    flex: 1 1 15rem;
 | 
						|
}
 | 
						|
 | 
						|
.highlight>div:first-child p {
 | 
						|
    font-size: var(--step-2);
 | 
						|
    max-width: 40ch;
 | 
						|
}
 | 
						|
 | 
						|
#recent-issues {
 | 
						|
    flex-basis: 15rem;
 | 
						|
    text-align: center;
 | 
						|
}
 | 
						|
 | 
						|
#recent-issues>*+* {
 | 
						|
    margin-block-start: 1em;
 | 
						|
}
 | 
						|
 | 
						|
#recent-issues>div:first-of-type {
 | 
						|
    position: relative;
 | 
						|
}
 | 
						|
 | 
						|
#recent-issues>div picture {
 | 
						|
    display: inline-block;
 | 
						|
    position: relative;
 | 
						|
}
 | 
						|
 | 
						|
#recent-issues>div picture:first-child {
 | 
						|
    transform: rotate(-6deg) translateX(-50%);
 | 
						|
    z-index: 20;
 | 
						|
    position: absolute;
 | 
						|
    inset-inline-start: 42%;
 | 
						|
    inset-block-end: 1em;
 | 
						|
}
 | 
						|
 | 
						|
#recent-issues>div picture:nth-child(2) {
 | 
						|
    z-index: 10;
 | 
						|
    inset-block-end: 0.25em;
 | 
						|
    transform: rotate(3deg);
 | 
						|
}
 | 
						|
 | 
						|
#recent-issues>div picture:nth-child(3) {
 | 
						|
    position: absolute;
 | 
						|
    inset-inline-start: 50%;
 | 
						|
    transform: rotate(9deg);
 | 
						|
}
 | 
						|
 | 
						|
#recent-issues>p:first-of-type {
 | 
						|
    margin-block-start: 0.5em;
 | 
						|
}
 | 
						|
 | 
						|
[aria-labelledby="swatches-caption"] td {
 | 
						|
    width: 5rem;
 | 
						|
    height: 5rem;
 | 
						|
    background-color: currentColor;
 | 
						|
    font-size: 0;
 | 
						|
}
 | 
						|
 | 
						|
#masthead ul span {
 | 
						|
    font-weight: bold;
 | 
						|
}
 | 
						|
 | 
						|
.patrons {
 | 
						|
    padding: 0;
 | 
						|
    list-style: none;
 | 
						|
    columns: 3;
 | 
						|
    font-style: italic;
 | 
						|
}
 | 
						|
 | 
						|
.cover {
 | 
						|
    border: 0.0625em solid GrayText;
 | 
						|
    border-radius: 0.1875em;
 | 
						|
    box-shadow: 0 0 1em -0.5em CanvasText;
 | 
						|
    background-color: var(--color-background);
 | 
						|
    transition: transform 0.375s;
 | 
						|
}
 | 
						|
 | 
						|
a .cover:hover {
 | 
						|
    transform: scale(1.03);
 | 
						|
}
 | 
						|
 | 
						|
a .cover:active {
 | 
						|
    transform: scale(1);
 | 
						|
}
 | 
						|
 | 
						|
#issues ol {
 | 
						|
    padding: 0;
 | 
						|
    display: flex;
 | 
						|
    flex-wrap: wrap;
 | 
						|
    justify-content: space-between;
 | 
						|
    gap: 2em;
 | 
						|
}
 | 
						|
 | 
						|
#issues li {
 | 
						|
    text-align: center;
 | 
						|
}
 | 
						|
 | 
						|
#issues li>a {
 | 
						|
    display: inline-block;
 | 
						|
    width: 100%;
 | 
						|
}
 | 
						|
 | 
						|
#issues p a {
 | 
						|
    text-decoration: none;
 | 
						|
    font-weight: 700;
 | 
						|
    color: inherit;
 | 
						|
}
 | 
						|
 | 
						|
@supports (display: grid) {
 | 
						|
    #issues ol {
 | 
						|
        display: grid;
 | 
						|
        grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
 | 
						|
        gap: 2em;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
#issues li.legacy-issue>a {
 | 
						|
    padding-block-start: 3em;
 | 
						|
}
 | 
						|
 | 
						|
#issues .legacy-issue picture:first-child {
 | 
						|
    width: 60%;
 | 
						|
    position: relative;
 | 
						|
    inset-block-start: -3em;
 | 
						|
}
 | 
						|
 | 
						|
#issues .legacy-issue picture:nth-child(2) {
 | 
						|
    position: absolute;
 | 
						|
    width: 60%;
 | 
						|
    inset-block-end: 0;
 | 
						|
    inset-inline-end: 0;
 | 
						|
}
 | 
						|
 | 
						|
.issue>header~div,
 | 
						|
.issue-legacy>header~div>div {
 | 
						|
    display: flex;
 | 
						|
    flex-wrap: wrap;
 | 
						|
    gap: 1.25em;
 | 
						|
}
 | 
						|
 | 
						|
.issue-legacy>header~div>div {
 | 
						|
    gap: 1em;
 | 
						|
    justify-content: space-between;
 | 
						|
}
 | 
						|
 | 
						|
.issue>header~div>div h2 {
 | 
						|
    flex-basis: 100%;
 | 
						|
}
 | 
						|
 | 
						|
#toc dd {
 | 
						|
    font-style: italic;
 | 
						|
}
 | 
						|
 | 
						|
.step-by-step-guide #toc~section {
 | 
						|
    counter-increment: item;
 | 
						|
}
 | 
						|
 | 
						|
.step-by-step-guide #toc~section h2::before {
 | 
						|
    content: counter(item) ".";
 | 
						|
    margin-inline-end: 0.25em;
 | 
						|
    font-size: 0.625em;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
body::before {
 | 
						|
    content: "";
 | 
						|
    inset: 0;
 | 
						|
    width: 100%;
 | 
						|
    height: 100vh;
 | 
						|
    border: 0.25em solid currentColor;
 | 
						|
    position: fixed;
 | 
						|
    z-index: 10;
 | 
						|
    pointer-events: none;
 | 
						|
}
 | 
						|
 | 
						|
body:has([aria-current="location"][href^="https://app.sixfold.org"])::before {
 | 
						|
    border-color: darkred;
 | 
						|
}
 | 
						|
 | 
						|
body:has([aria-current="location"][href^="https://sixfold.org"])::before {
 | 
						|
    border-color: rebeccapurple;
 | 
						|
}
 | 
						|
 | 
						|
.site-ribbons {
 | 
						|
    margin: 0;
 | 
						|
    padding: 0;
 | 
						|
    font-size: 0.75em;
 | 
						|
    position: fixed;
 | 
						|
    z-index: 10;
 | 
						|
    inset-block-start: 0.25em;
 | 
						|
    inset-inline-end: 2em;
 | 
						|
}
 | 
						|
 | 
						|
.site-ribbons li {
 | 
						|
    display: inline-block;
 | 
						|
    background-color: rebeccapurple;
 | 
						|
    color: snow;
 | 
						|
    clip-path: polygon(0% 0%, 0% 100%, 50% 80%, 100% 100%, 100% 0%);
 | 
						|
    text-align: center;
 | 
						|
    vertical-align: top;
 | 
						|
}
 | 
						|
 | 
						|
.site-ribbons li:nth-of-type(2) {
 | 
						|
    background-color: darkred;
 | 
						|
}
 | 
						|
 | 
						|
.site-ribbons a {
 | 
						|
    color: inherit;
 | 
						|
    display: inline-block;
 | 
						|
    padding: 0.125em 1ch 1.125em 1ch;
 | 
						|
    text-decoration: underline;
 | 
						|
}
 | 
						|
 | 
						|
.site-ribbons [aria-current="location"] {
 | 
						|
    padding-block-end: 2.25em;
 | 
						|
    font-weight: 700;
 | 
						|
    text-decoration: none;
 | 
						|
}
 |