Files
siblinghood-site/card-two/index.html
T
2026-09-17 19:45:05 -07:00

697 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title>card two&#39;s travels | siblinghood of the traveling greeting card</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="utf-8">
<!-- Meta -->
<link rel="canonical" href="/">
<meta name="description" content="help a greeting card travel the world">
<meta name="robots" content="index,follow">
<meta property="og:title" content="card two&#39;s travels | siblinghood of the traveling greeting card">
<meta property="og:type" content="article">
<meta property="og:url" content="https://siblinghood.quest/card-two/">
<meta property="og:description" content="help a greeting card travel the world">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<meta property="og:image" content="https://siblinghood.quest/img/logo-light.png">
<meta property="og:image:alt" content="blue and gold icon showing a greeting card with wings">
<meta name="generator" content="Eleventy v3.1.5">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
<link href="https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible+Mono:ital,wght@0,200..800;1,200..800&family=Atkinson+Hyperlegible+Next:ital,wght@0,200..800;1,200..800&display=swap" rel="stylesheet">
<!-- CSS -->
<style>:root {
color-scheme: light dark;
--color-blue-light: #c8e5f5;
--color-gold-light: #ecd399;
--color-blue-dark: #02293e;
--color-gold-dark: #715511;
--color-bg: light-dark(var(--color-blue-light), var(--color-blue-dark));
--color-text: light-dark(var(--color-blue-dark), var(--color-blue-light));
--color-accent: light-dark(var(--color-gold-dark), var(--color-gold-light));
}
/* numbered components are from https://www.joshwcomeau.com/css/custom-css-reset/ */
*, *::before, *::after {
box-sizing: border-box; /* 1. Use a more-intuitive box-sizing model */
}
*:not(dialog) {
margin: 0; /* 2. Remove default margin */
padding: 0;
}
@media (prefers-reduced-motion: no-preference) {
html {
interpolate-size: allow-keywords; /* 3. Enable keyword animations */
}
}
#root, #__next {
isolation: isolate; /* 10. Create a root stacking context */
}
body {
line-height: 1.5; /* 4. Increase line-height */
-webkit-font-smoothing: antialiased; /* 5. Improve text rendering */
color: var(--color-text);
background-color: var(--color-bg);
font-family: "Atkinson Hyperlegible Next";
}
main {
width: 55%;
margin: 0 auto 2rem;
scroll-margin-top: 1.5rem;
min-height: 50vh;
padding-bottom: 2rem;
max-width: 1200px;
}
@media (max-width: 650px) {
main {
width: 92%;
}
}
img, picture, video, canvas, svg {
display: block; /* 6. Improve media defaults */
max-width: 100%; /* 6. Improve media defaults */
height: auto; /* 6. Improve media defaults */
}
input, button, textarea, select {
font: inherit; /* 7. Inherit fonts for form controls */
}
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word; /* 8. Avoid text overflows */
}
p {
text-wrap: pretty; /* 9. Improve line wrapping */
margin: 0 auto 1.5rem;
line-height: 1.5rem;
}
@media (max-width: 650px) {
p {
font-size: .9rem;
line-height: 1.3rem;
}
}
h1, h2, h3, h4, h5, h6 {
text-wrap: balance; /* 9. Improve line wrapping */
}
h1 {
margin: 3rem auto 1rem;
text-align: center;
font-size: 2.2rem;
}
h2, h3 {
margin: 3rem auto .5rem;
color: var(--color-accent);
border-bottom: solid;
}
h2 {
font-size: 1.8rem;
}
h3 {
font-size: 1.35rem;
text-align: right;
}
@media (max-width: 650px) {
h1 {
font-size: 1.8rem;
}
h2 {
font-size: 1.5rem;
}
h3 {
font-size: 1.2rem;
}
}
a {
color: var(--color-text);
text-decoration: underline;
text-decoration-style: solid;
text-decoration-thickness: .2rem;
text-decoration-color: var(--color-accent);
transition: text-decoration-thickness .5s;
padding: 0 .15rem;
border-radius: .15rem;
}
@media (any-hover: hover) {
a:hover {
text-decoration-thickness: .4rem;
}
}
a:focus-visible {
text-decoration: none;
outline: var(--color-accent) solid .15rem;
}
ul {
margin: 0 auto 1.5rem 2rem;
line-height: 1.5rem;
}
@media (max-width: 650px) {
ul {
font-size: .9rem;
line-height: 1.3rem;
}
}
time {
font-weight: 700;
}
button {
cursor: pointer;
background-color: var(--color-bg);
}
header img {
max-height: 25vh;
max-width: 100%;
width: auto;
margin: 0 auto;
}
@media (max-width: 650px) {
header img {
max-height: 20vh;
}
}
@media (prefers-color-scheme: light) {
#logo-dark {
display: none;
}
}
@media (prefers-color-scheme: dark) {
#logo-light {
display: none;
}
}
#author {
text-align: right;
margin-bottom: 3rem;
font-style: italic;
}
nav {
display: flex;
position: relative;
gap: 1rem;
justify-content: center;
margin: 1rem auto;
}
nav a,
nav button {
font-size: 1.4rem;
border: .1rem solid;
border-radius: .15rem;
padding: .15rem .3rem;
color: var(--color-accent);
text-decoration: none;
line-height: 2rem;
outline-offset: .1rem;
}
@media (max-width: 650px) {
nav a,
nav button {
font-size: 1.1rem;
}
}
@media (any-hover: hover) {
nav a:hover,
nav button:hover {
color: var(--color-bg);
background-color: var(--color-accent);
border-color: var(--color-accent);
}
}
nav a:focus-visible,
nav button:focus-visible {
outline: .1rem solid var(--color-accent);
}
#skip {
left: -999px;
position: absolute;
top: auto;
width: 1px;
height: 1px;
overflow: hidden;
z-index: -99;
background-color: var(--color-bg);
}
#skip:focus-visible {
left: 1rem;
width: auto;
height: auto;
overflow: auto;
z-index: 999;
}
@media (any-hover: hover) {
#skip:hover {
color: var(--color-bg);
background-color: var(--color-accent);
}
}
a[aria-current="page"] {
border-right-width: .5rem;
border-left-width: .5rem;
}
nav ul {
list-style: none;
display: none;
position: absolute;
z-index: 1;
margin: 0 0 0 1rem;
min-width: 10rem;
}
#dropdown {
position: relative;
display: inline-block;
min-width: 3rem;
}
nav ul.show {
display: block;
}
nav ul li {
margin: .5rem;
}
nav ul a {
display: inline-block;
background-color: var(--color-bg);
}
footer {
color: var(--color-bg);
background-color: var(--color-text);
padding: 1rem;
}
footer p {
text-align: center;
margin: 0;
}
footer a {
color: var(--color-bg);
text-decoration-color: var(--color-bg);
}
footer a:focus-visible {
outline-color: var(--color-bg);
}
.card {
color: var(--color-accent);
}
p .card {
text-transform: uppercase;
font-weight: 700;
}
ol + p {
margin-top: 1.5rem;
}
.stop {
color: var(--color-accent);
position: relative;
list-style: none;
padding-left: 1.5rem;
}
.stop:not(:last-child) {
padding-bottom: 2rem;
}
.stop:before {
background-color: var(--color-accent);
width: .1rem;
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 0;
}
svg {
margin-left: -2.2rem;
width: 2rem;
fill: var(--color-accent);
float: left;
padding: .4rem .5rem 0 0;
}
@media (max-width: 650px) {
svg {
padding-top: .2rem;
}
}
.stop h2 {
margin: 0;
}
.stop img {
width: 100%;
}
.stop p {
margin: 0;
color: var(--color-text);
padding-top: .5rem;
}
.stop .spacer {
height: 1rem;
}</style>
<!-- JS -->
<script type="module">const dropdown = document.getElementById("dropdown");
const dropdownButton = document.getElementById("drop-button");
const dropdownContent = document.getElementById("drop-content");
const dropdownItems = dropdownContent.querySelectorAll("a");
const firstDropdownItem = dropdownItems[0];
const lastDropdownItem = dropdownItems[dropdownItems.length - 1];
const openDropdown = function() {
dropdownContent.classList.add("show");
dropdownContent.ariaHidden = "false";
dropdownButton.ariaExpanded = "true";
}
const closeDropdown = function() {
if (dropdownButton.ariaExpanded === "true") {
dropdownContent.classList.remove("show");
dropdownContent.ariaHidden = "true";
dropdownButton.ariaExpanded = "false";
}
}
dropdownButton.addEventListener("click", (event) => {
if (dropdownButton.ariaExpanded === "false") openDropdown();
else closeDropdown();
});
dropdownButton.addEventListener("keydown", (event) => {
if (event.key === "Enter" || event.key === " ") { // Space or Enter key
event.preventDefault(); // Prevent the default action to stop scrolling when pressing Space
if (dropdownButton.ariaExpanded === "false") {
openDropdown();
} else {
closeDropdown();
}
} else if (event.key === "Tab" && event.shiftKey) closeDropdown();
});
firstDropdownItem.addEventListener("keydown", (event) => {
if (event.key === "Tab" && event.shiftKey) closeDropdown();
});
lastDropdownItem.addEventListener("keydown", (event) => {
if (event.key === "Tab" && !event.shiftKey) closeDropdown();
});
document.addEventListener("keydown", (event) => {
if (event.key === "Escape" && dropdownButton.ariaExpanded === "true") {
closeDropdown();
dropdownButton.focus();
}
});
window.addEventListener("click", (event) => {
if (!event.target.matches("#drop-button")) closeDropdown();
});</script>
</head>
<body>
<header>
<nav>
<a id="skip" href="#main">skip to main</a>
<a href="/">home</a>
<div id="dropdown">
<button id="drop-button" aria-label="card submenu" aria-expanded="false" type="button" aria-controls="drop-content">cards ⮷</button>
<ul id="drop-content" aria-hidden="true">
<li>
<a href="/card-one/">
card one
</a>
</li>
<li>
<a href="/card-two/" aria-current="page">
card two
</a>
</li>
<li>
<a href="/card-three/">
card three
</a>
</li>
</ul>
</div>
</nav>
<img id="logo-light" src="/img/logo-light.png" alt="blue and gold icon showing a greeting card with wings" loading="lazy" decoding="async" width="1754" height="1031">
<img id="logo-dark" src="/img/logo-dark.png" alt="blue and gold icon showing a greeting card with wings" loading="lazy" decoding="async" width="1754" height="1031">
</header>
<main id="main">
<h1>The Travels of <span class="card">Card Two</span></h1>
<p><span class="card">Card two</span> has 16 total recipients. Its journey began in early January, 2026.</p>
<ol>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Oregon, USA</h2>
<img src="/img/00.jpg" alt="an open greeting card, blank except for some small writing that reads &#39;Hello from Oregon, USA! -freddie (#0)" loading="lazy" decoding="async" width="1200" height="904">
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Sweden</h2>
<img src="/img/01.jpg" alt="a close crop of the front of a card, indicating maybe a picture of a cat and a question mark." loading="lazy" decoding="async" width="1200" height="1200">
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>France</h2>
<div class="spacer"></div>
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Netherlands</h2>
<img src="/img/03.jpg" alt="the inside of the card with several signatures: freddie, herzleid, laen, and flann" loading="lazy" decoding="async" width="1200" height="909">
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>New Zealand</h2>
<div class="spacer"></div>
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>United Kingdom</h2>
<div class="spacer"></div>
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Nova Scotia, Canada</h2>
<img src="/img/06.jpg" alt="a piece of paper that says in all caps, sticker trove, with a mostly hidden pile of stickers underneath" loading="lazy" decoding="async" width="1200" height="650">
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>United Kingdom</h2>
<div class="spacer"></div>
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Italy</h2>
<img src="/img/08.jpg" alt="an open greeting card amidst a pile of colorful stickers. It is signed by 8 different people." loading="lazy" decoding="async" width="1200" height="900">
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>United Kingdom</h2>
<div class="spacer"></div>
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Minnesota, USA</h2>
<div class="spacer"></div>
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Connecticut, USA</h2>
<img src="/img/11.jpg" alt="the inside of a card signed by eleven people" loading="lazy" decoding="async" width="900" height="1200">
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Oregon, USA</h2>
<div class="spacer"></div>
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>British Columbia, Canada</h2>
<div class="spacer"></div>
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Oregon, USA</h2>
<img src="/img/14.jpg" alt="the inside of a card signed by fifteen people, including a bundle that reads &#39;sticker trove!&#39; and a small piece of paper that says &#39;be happy.&#39;" loading="lazy" decoding="async" width="1200" height="872">
</li>
<li class="stop">
<svg aria-hidden="true" viewBox="0 0 32 32" focusable="false">
<circle stroke="none" cx="16" cy="16" r="10"></circle>
</svg>
<h2>Illinois, USA</h2>
<div class="spacer"></div>
</li>
</ol>
</main>
<footer>
<p>brought to you in 2026 by
<a href="https://leecat.art" target="_blank">lee</a>
</p>
<p><a href="/attribution">attribution</a></p>
</footer>
<!-- This page `/card-two/` was built on 2026-09-18T02:44:33.589Z -->
</body>
</html>