build prev
This commit is contained in:
775
_site/tag/all/index.html
Normal file
775
_site/tag/all/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/all">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/all/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/all/` was built on 2026-02-21T21:09:44.993Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/book/index.html
Normal file
775
_site/tag/book/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/book">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/book/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/book/` was built on 2026-02-21T21:09:44.978Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/card/index.html
Normal file
775
_site/tag/card/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/card">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/card/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/card/` was built on 2026-02-21T21:09:44.975Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/gallery/index.html
Normal file
775
_site/tag/gallery/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/gallery">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/gallery/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/gallery/` was built on 2026-02-21T21:09:44.972Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/gender/index.html
Normal file
775
_site/tag/gender/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/gender">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/gender/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/gender/` was built on 2026-02-21T21:09:44.971Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/highlight/index.html
Normal file
775
_site/tag/highlight/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/highlight">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/highlight/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/highlight/` was built on 2026-02-21T21:09:44.982Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/knit/index.html
Normal file
775
_site/tag/knit/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/knit">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/knit/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/knit/` was built on 2026-02-21T21:09:44.980Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/leather/index.html
Normal file
775
_site/tag/leather/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/leather">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/leather/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/leather/` was built on 2026-02-21T21:09:44.984Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/patch/index.html
Normal file
775
_site/tag/patch/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/patch">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/patch/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/patch/` was built on 2026-02-21T21:09:44.977Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/pin/index.html
Normal file
775
_site/tag/pin/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/pin">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/pin/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/pin/` was built on 2026-02-21T21:09:44.988Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/posts/index.html
Normal file
775
_site/tag/posts/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/posts">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/posts/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/posts/` was built on 2026-02-21T21:09:43.856Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/print/index.html
Normal file
775
_site/tag/print/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/print">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/print/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/print/` was built on 2026-02-21T21:09:44.974Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/reference/index.html
Normal file
775
_site/tag/reference/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/reference">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/reference/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/reference/` was built on 2026-02-21T21:09:43.980Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/shirt/index.html
Normal file
775
_site/tag/shirt/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/shirt">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/shirt/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/shirt/` was built on 2026-02-21T21:09:44.985Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/software/index.html
Normal file
775
_site/tag/software/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/software">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/software/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/software/` was built on 2026-02-21T21:09:44.986Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/stationery/index.html
Normal file
775
_site/tag/stationery/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/stationery">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/stationery/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/stationery/` was built on 2026-02-21T21:09:44.991Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/sticker/index.html
Normal file
775
_site/tag/sticker/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/sticker">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/sticker/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/sticker/` was built on 2026-02-21T21:09:44.987Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/tagpagination/index.html
Normal file
775
_site/tag/tagpagination/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/tagPagination">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/tagpagination/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/tagpagination/` was built on 2026-02-21T21:09:44.992Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/yarn/index.html
Normal file
775
_site/tag/yarn/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/yarn">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/yarn/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/yarn/` was built on 2026-02-21T21:09:44.983Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
775
_site/tag/zine/index.html
Normal file
775
_site/tag/zine/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>this page has moved! | hello hello</title>
|
||||
<meta name="description" content="Lee Cattarin... on the internet!">
|
||||
<link rel="alternate" href="/feed.xml" type="application/atom+xml" title="hello hello">
|
||||
|
||||
<meta property="og:title" content="this page has moved!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="Lee Cattarin... on the internet!">
|
||||
<meta property="og:site_name" content="hello hello">
|
||||
|
||||
|
||||
<meta name="generator" content="Eleventy v3.1.2">
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
|
||||
<script src="https://kit.fontawesome.com/884dded219.js" crossorigin="anonymous"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<style>:root {
|
||||
color-scheme: light dark;
|
||||
|
||||
--font-family: 'Atkinson Hyperlegible Next', sans-serif;
|
||||
--font-family-code: 'Atkinson Hyperlegible Mono', monospace;
|
||||
|
||||
--color-dark: #2e303e;
|
||||
--color-dark-alt: #3c3f52;
|
||||
--color-light: #ebeeef;
|
||||
--color-light-alt: #dbe1e3;
|
||||
|
||||
--color-teal-dark: #18737b;
|
||||
--color-teal-light: #25b0bc;
|
||||
--color-pink-dark: #94195d;
|
||||
--color-pink-light: #ee9fcb;
|
||||
|
||||
--color-shadow: rgba(2, 10, 40, .25);
|
||||
|
||||
/* Used for syntax highlighting */
|
||||
--color-red-light: #f195aa;
|
||||
--color-orange-light: #fab795;
|
||||
--color-yellow-light: #fbe6bc;
|
||||
--color-green-light: #29d398;
|
||||
--color-blue-light: #26bbd9;
|
||||
--color-purple-light: #ddaeea;
|
||||
--color-grey-light: #b9c3c6;
|
||||
|
||||
--color-red-dark: #991433;
|
||||
--color-orange-dark: #883206;
|
||||
--color-yellow-dark: #6a4906;
|
||||
--color-green-dark: #125940;
|
||||
--color-blue-dark: #125663;
|
||||
--color-purple-dark: #722999;
|
||||
--color-grey-dark: #4a4b64;
|
||||
|
||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||
|
||||
--color-text-alt: light-dark(var(--color-dark-alt), var(--color-light-alt));
|
||||
--color-bg-alt: light-dark(var(--color-light-alt), var(--color-dark-alt));
|
||||
|
||||
--color-teal: light-dark(var(--color-teal-dark), var(--color-teal-light));
|
||||
--color-pink: light-dark(var(--color-pink-dark), var(--color-pink-light));
|
||||
|
||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||
--color-orange: light-dark(var(--color-orange-dark), var(--color-orange-light));
|
||||
--color-yellow: light-dark(var(--color-yellow-dark), var(--color-yellow-light));
|
||||
--color-green: light-dark(var(--color-green-dark), var(--color-green-light));
|
||||
--color-blue: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||
--color-purple: light-dark(var(--color-purple-dark), var(--color-purple-light));
|
||||
--color-grey: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
||||
}
|
||||
|
||||
/* Base */
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: 7rem;
|
||||
}
|
||||
|
||||
@media (max-width: 1050px) {
|
||||
main {
|
||||
width: 75vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
main {
|
||||
width: 92vw;
|
||||
}
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 3rem;
|
||||
font-size: 3.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
scroll-margin-top: 5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 1.5rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
h1 { font-size: 2.8rem; }
|
||||
h2 { font-size: 1.8rem; }
|
||||
h3 { font-size: 1.35rem; }
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
p {
|
||||
margin: 1.25rem 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-text);
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
text-decoration: none;
|
||||
outline: .15rem solid var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
a:hover {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
a:active {
|
||||
text-decoration-thickness: .4em;
|
||||
}
|
||||
|
||||
/* Heading anchors */
|
||||
a.ha,
|
||||
span.ha-placeholder {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
span.ha-placeholder {
|
||||
opacity: .55;
|
||||
}
|
||||
|
||||
|
||||
/* Lists */
|
||||
::marker {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
ul, ol, dl, li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.2 5;
|
||||
margin-top: .65rem;
|
||||
margin-bottom: .65rem;
|
||||
}
|
||||
|
||||
li ul, li ol {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 900;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 2rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
blockquote {
|
||||
margin: .5rem 0;
|
||||
padding: 0 1rem;
|
||||
border-radius: .25rem 1rem 1rem .25rem;
|
||||
line-height: 1.25;
|
||||
border-left: .5rem solid var(--color-pink);
|
||||
}
|
||||
|
||||
blockquote,
|
||||
blockquote p,
|
||||
blockquote ol,
|
||||
blockquote ul {
|
||||
background-color: var(--color-bg-alt);
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0; /* border collapse doesn't play nice with radii */
|
||||
border-radius: .3rem;
|
||||
border: thin solid var(--color-pink);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
|
||||
th code {
|
||||
color: var(--color-text); /* Yes, I actually do this somewhere */
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .5rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background-color: var(--color-bg-alt); }
|
||||
th:not(:first-child) { border-left: thin solid var(--color-bg); }
|
||||
th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
/* Horizontal rules */
|
||||
hr {
|
||||
border: .25rem solid var(--color-pink);
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Used on home, reference, gallery pages */
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Currently only used for resume, but it's generalizable */
|
||||
.upper {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
/* Header */
|
||||
header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--color-bg);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
border-bottom: thick solid var(--color-teal);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Header links, pagination links */
|
||||
header a,
|
||||
.pagination a,
|
||||
.webring ul a {
|
||||
border-radius: 1rem;
|
||||
border: .125rem solid var(--color-pink);
|
||||
color: var(--color-pink);
|
||||
text-decoration: none;
|
||||
padding: 0 .25rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
font-size: 1.2rem;
|
||||
/* Click animation handling */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
header a,
|
||||
.pagination .older a,
|
||||
.webring .prev a,
|
||||
.webring .rand a {
|
||||
padding-right: .35rem;
|
||||
}
|
||||
|
||||
.pagination .newer a,
|
||||
.webring .next a,
|
||||
.webring .rand a {
|
||||
padding-left: .35rem;
|
||||
}
|
||||
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-pink);
|
||||
background-color: var(--color-pink);
|
||||
}
|
||||
}
|
||||
|
||||
@media (forced-colors: active) {
|
||||
header a:focus-visible,
|
||||
.pagination a:focus-visible,
|
||||
.webring ul a:focus-visible {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover,
|
||||
.pagination a:hover,
|
||||
.webring ul a:hover {
|
||||
outline-offset: .125rem;
|
||||
outline: .125rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
header a:active,
|
||||
.pagination a:active,
|
||||
.webring ul a:active {
|
||||
top: .1rem;
|
||||
left: .1rem;
|
||||
box-shadow: .05rem .05rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
header a[aria-current="page"] {
|
||||
border-color: var(--color-teal);
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header a[aria-current="page"]:focus-visible {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-teal);
|
||||
background-color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a[aria-current="page"]:hover {
|
||||
color: var(--color-bg);
|
||||
background-color: var(--color-teal);
|
||||
border-color: var(--color-teal);
|
||||
}
|
||||
}
|
||||
|
||||
/* Header link icons, pagination icons */
|
||||
header i,
|
||||
.pagination i,
|
||||
.webring ul i {
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
header i,
|
||||
.pagination .older i,
|
||||
.webring .prev i,
|
||||
.webring .rand i:nth-child(1) {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
.pagination .newer i,
|
||||
.webring .next i,
|
||||
.webring .rand i:nth-child(2) {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
header a[aria-current="page"] i {
|
||||
color: var(--color-pink);
|
||||
}
|
||||
|
||||
header a:focus-visible i,
|
||||
a[aria-current="page"] a:focus-visible i,
|
||||
.pagination a:focus-visible i,
|
||||
.webring ul a:focus-visible i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
header a:hover i,
|
||||
header a[aria-current="page"]:hover i,
|
||||
.pagination a:hover i,
|
||||
.webring ul a:hover i {
|
||||
color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip link */
|
||||
#skip {
|
||||
left: -999px;
|
||||
position: absolute;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
z-index: -99;
|
||||
}
|
||||
|
||||
#skip:focus-visible {
|
||||
display: inline-block;
|
||||
left: auto;
|
||||
top: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
margin: 0 10%;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Nav */
|
||||
header ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header ul,
|
||||
header li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.menu-text {
|
||||
display: none; /* Icons only on small screens */
|
||||
}
|
||||
|
||||
header a {
|
||||
padding: .15rem .5rem;
|
||||
}
|
||||
|
||||
header i {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
font-size: .9rem;
|
||||
border-top: thick solid var(--color-pink);
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
footer ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: .5rem;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: " ● " / "";
|
||||
color: var(--color-teal);
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
footer ul {
|
||||
flex-flow: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer li:nth-child(2)::before,
|
||||
footer li:nth-child(2)::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration-color: var(--color-pink);
|
||||
}
|
||||
|
||||
footer a:focus-visible {
|
||||
outline-color: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.pagination,
|
||||
.pagination li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-areas: "older newer";
|
||||
list-style: none;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
.post-pagination {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"older"
|
||||
"newer";
|
||||
gap: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .older {
|
||||
grid-area: older;
|
||||
}
|
||||
|
||||
.pagination .newer {
|
||||
grid-area: newer;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* webring navigation */
|
||||
.webring {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
.webring ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
list-style: none;
|
||||
justify-content: space-around;
|
||||
gap: .35rem;
|
||||
}
|
||||
|
||||
.webring ul,
|
||||
.webring li {
|
||||
margin-left: 0;
|
||||
}
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}</style>
|
||||
|
||||
<script type="module"></script>
|
||||
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/tags/zine">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<a href="#main" id="skip" title="skip to main content">
|
||||
<i class="fa-solid fa-forward" aria-hidden="true"></i> skip
|
||||
</a>
|
||||
|
||||
<nav aria-label="main navigation">
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<a href="/reference/" title="read reference posts">
|
||||
<i class="fa-regular fa-folder-open" aria-hidden="true"></i>
|
||||
<span class="menu-text">reference</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/gallery/" title="view the gallery">
|
||||
<i class="fa-regular fa-images" aria-hidden="true"></i>
|
||||
<span class="menu-text">gallery</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="">
|
||||
<i class="fa fa-solid fa-crow" aria-hidden="true"></i>
|
||||
<span class="menu-text">home</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/about/" title="about Lee">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<span class="menu-text">about</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contact/" title="contact Lee">
|
||||
<i class="fa-solid fa-envelope-open-text" aria-hidden="true"></i>
|
||||
<span class="menu-text">contact</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main id="main">
|
||||
<h1 id="this-page-has-moved">this page has moved!</h1>
|
||||
|
||||
<p>If you're not automatically redirected, head to <a href="/tags/zine/">the new URL for this tag</a>.</p>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/colophon/">
|
||||
colophon
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
|
||||
hello hello from Lee Cattarin in 2026</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/leecat.art" title="source code" aria-label="source code" target="_blank" rel="external">
|
||||
src
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- This page `/tag/zine/` was built on 2026-02-21T21:09:44.990Z -->
|
||||
<body>
|
||||
</body></body></html>
|
||||
Reference in New Issue
Block a user