<!doctype html>
<html lang="en" data-author="amelia">
	<head>
 <script>
        (function () {
const THEME_KEY = "author-theme";
const DEFAULT_THEME = "jane";
if (document.documentElement.dataset.author) return;
try {
const savedTheme = localStorage.getItem(THEME_KEY) || DEFAULT_THEME;
document.documentElement.setAttribute("data-author", savedTheme);
} catch (e) {
document.documentElement.setAttribute("data-author", DEFAULT_THEME);
}
        })();
        </script>
    <!-- <meta property="og:url" content="TODO" /> -->
    <!-- <meta property="og:logo" content="TODO" /> -->
    <meta property="og:type" content="website" />
    <meta property="og:title" content="" />
    <meta property="og:description" content="Nightdogs are hotdogs that you eat in the middle of the night" />
    
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>nightdogs</title>
        <meta name="description" content="Nightdogs are hotdogs that you eat in the middle of the night">
        <link rel="alternate" href="/feed/feed.xml" type="application/atom+xml" title="nightdogs">

        <!-- Inline theme script to prevent FOUC -->

        <!-- Load local fonts as a separate stylesheet -->
        <link rel="stylesheet" href="/css/fonts.css">
		<script>
  window.AUTHORS_DOG_PERSON = {
    
      "jane": false,
    
      "abby": true,
    
      "adesse": true,
    
      "orionlw": false,
    
      "amelia": false,
    
      "nic": false,
    
      "ewan": false
    
  };
</script>

		
<style>:root {
  	--font-family: "Bitcount Grid Single", "Segoe UI", "Roboto", "Helvetica Neue", Arial, "Liberation Sans", sans-serif;
   	--font-family-monospace: Consolas, Menlo, Monaco, Andale Mono WT, Andale Mono, Lucida Console, Lucida Sans Typewriter, DejaVu Sans Mono, Bitstream Vera Sans Mono, Liberation Mono, Nimbus Mono L, Courier New, Courier, monospace;
    --syntax-tab-size: 2;
  --background-color: #ffd6e0;
  --color: #8b0020;
  --primary: #b8002e;
  --muted-color: #6d0015;
    /* Author: abby */
    --author-abby-background: #e6ffe6;
    --author-abby-color: #0d3a0d;
    --author-abby-primary: #1e7e1e;
    --author-abby-muted: #0a2a0a;
    --author-abby-font-body: "Quicksand", sans-serif;
    --author-abby-font-header: "Quicksand", sans-serif;
    /* Author: adesse */
    --author-adesse-background: #624f4c;
    --author-adesse-color: #ffffff;
    --author-adesse-primary: #deb8c4;
    --author-adesse-muted: #f0e6e7;
    --author-adesse-font-body: "Bellefair", serif;
    --author-adesse-font-header: "Jacquard 12", serif;
    /* Author: amelia */
    --author-amelia-background: #ffe6fa;
    --author-amelia-color: #6c218a;
    --author-amelia-primary: #8b2d9e;
    --author-amelia-muted: #5a1a74;
    --author-amelia-font-body: "Fira Sans", sans-serif;
    --author-amelia-font-header: "Fira Sans", sans-serif;
    /* Author: ewan */
    --author-ewan-background: #92cbff;
    --author-ewan-color: #0a1a2a;
    --author-ewan-primary: #2563eb;
    --author-ewan-muted: #1e3a8a;
    --author-ewan-font-body: "Fira Sans", sans-serif;
    --author-ewan-font-header: "Fira Sans", sans-serif;
    /* Author: jane */
    --author-jane-background: #ffd6e0;
    --author-jane-color: #8b0020;
    --author-jane-primary: #b8002e;
    --author-jane-muted: #6d0015;
    --author-jane-font-body: "Bitcount Grid Single", "Segoe UI", sans-serif;
    --author-jane-font-header: "Bitcount Grid Single", "Segoe UI", sans-serif;
    /* Author: nic */
    --author-nic-background: #faf0e6;
    --author-nic-color: #1c343c;
    --author-nic-primary: #2563eb;
    --author-nic-muted: #64748b;
    --author-nic-font-body: "Georgia", serif;
    --author-nic-font-header: "Georgia", serif;
    /* Author: orionlw */
    --author-orionlw-background: #e6d3b3;
    --author-orionlw-color: #4a3018;
    --author-orionlw-primary: #6e4b1f;
    --author-orionlw-muted: #3d2614;
    --author-orionlw-font-body: "EB Garamond", serif;
    --author-orionlw-font-header: "Montserrat", sans-serif;
    --author-orionlw-font-mono: "IBM Plex Mono", monospace;
}
/* Dark mode support for each author */
[data-author="abby"][data-theme="dark"] {
  --author-abby-background: #0d3a0d;
  --author-abby-color: #ffffff;
  --author-abby-primary: #90ee90;
  --author-abby-muted: #b2f7b2;
}
[data-author="adesse"][data-theme="dark"] {
  --author-adesse-background: #2a201e;
  --author-adesse-color: #ffffff;
  --author-adesse-primary: #deb8c4;
  --author-adesse-muted: #f0e6e7;
}
[data-author="amelia"][data-theme="dark"] {
  --author-amelia-background: #2b59c4;
  --author-amelia-color: #dced5a;
  --author-amelia-primary: #2db1b5;
  --author-amelia-muted: #b6e37c;
}
[data-author="ewan"][data-theme="dark"] {
  --author-ewan-background: #1b3a8a;
  --author-ewan-color: #f0f8ff;
  --author-ewan-primary: #87ceeb;
  --author-ewan-muted: #b0d4f1;
}
[data-author="jane"][data-theme="dark"] {
  --author-jane-background: #8b0020;
  --author-jane-color: #fff0f3;
  --author-jane-primary: #ffb3c6;
  --author-jane-muted: #ffd6e0;
}
[data-author="nic"][data-theme="dark"] {
  --author-nic-background: #1c343c;
  --author-nic-color: #ffff99;
  --author-nic-primary: #8bbfff;
  --author-nic-muted: #dbeafe;
}
[data-author="orionlw"][data-theme="dark"] {
  --author-orionlw-background: #4a3018;
  --author-orionlw-color: #ffffff;
  --author-orionlw-primary: #deb887;
  --author-orionlw-muted: #e6d3b3;
}

@media (prefers-color-scheme: dark) {
  :root {
      /* Author: abby */
      --author-abby-background: #0d3a0d;
      --author-abby-color: #ffffff;
      --author-abby-primary: #90ee90;
      --author-abby-muted: #b2f7b2;
      /* Author: adesse */
      --author-adesse-background: #2a201e;
      --author-adesse-color: #ffffff;
      --author-adesse-primary: #deb8c4;
      --author-adesse-muted: #f0e6e7;
      /* Author: amelia */
      --author-amelia-background: #2b59c4;
      --author-amelia-color: #dced5a;
      --author-amelia-primary: #2db1b5;
      --author-amelia-muted: #b6e37c;
      /* Author: ewan */
      --author-ewan-background: #1b3a8a;
      --author-ewan-color: #f0f8ff;
      --author-ewan-primary: #87ceeb;
      --author-ewan-muted: #b0d4f1;
      /* Author: jane */
      --author-jane-background: #8b0020;
      --author-jane-color: #fff0f3;
      --author-jane-primary: #ffb3c6;
      --author-jane-muted: #ffd6e0;
      /* Author: nic */
      --author-nic-background: #1c343c;
      --author-nic-color: #ffff99;
      --author-nic-primary: #8bbfff;
      --author-nic-muted: #dbeafe;
      /* Author: orionlw */
      --author-orionlw-background: #4a3018;
      --author-orionlw-color: #ffffff;
      --author-orionlw-primary: #deb887;
      --author-orionlw-muted: #e6d3b3;
  }
}


/* === Root Variables === */
/* === Pico Root Variables (adapted) === */
:root {
	--font-family:
		"Bitcount Grid Single", "Segoe UI", "Roboto", "Helvetica Neue", Arial,
		"Liberation Sans", sans-serif;
	--font-family-monospace:
		Consolas, Menlo, Monaco, Andale Mono WT, Andale Mono, Lucida Console,
		Lucida Sans Typewriter, DejaVu Sans Mono, Bitstream Vera Sans Mono,
		Liberation Mono, Nimbus Mono L, Courier New, Courier, monospace;
	--syntax-tab-size: 2;
	--line-height: 1.5;
	--font-weight: 400;
	--font-size: 125%;
	--border-radius: 0.25rem;
	--border-width: 0.0625rem;
	--outline-width: 0.125rem;
	--transition: 0.2s ease-in-out;
	--spacing: 1rem;
	--block-spacing-vertical: var(--spacing);
	--block-spacing-horizontal: var(--spacing);
	--grid-column-gap: var(--spacing);
	--grid-row-gap: var(--spacing);
	--form-element-spacing-vertical: 0.75rem;
	--form-element-spacing-horizontal: 1rem;
	/* Author variables injected by Nunjucks */
}

/* === Pico Utility Classes === */
.container,
.container-fluid {
	width: 100%;
	margin-right: auto;
	margin-left: auto;
	padding-right: var(--spacing);
	padding-left: var(--spacing);
}
@media (min-width: 576px) {
	.container {
		max-width: 510px;
		padding-right: 0;
		padding-left: 0;
	}
}
@media (min-width: 768px) {
	.container {
		max-width: 700px;
	}
}
@media (min-width: 1024px) {
	.container {
		max-width: 950px;
	}
}
@media (min-width: 1280px) {
	.container {
		max-width: 1200px;
	}
}
@media (min-width: 1536px) {
	.container {
		max-width: 1450px;
	}
}

.grid {
	grid-column-gap: var(--grid-column-gap);
	grid-row-gap: var(--grid-row-gap);
	display: grid;
	grid-template-columns: 1fr;
}
@media (min-width: 768px) {
	.grid {
		grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
	}
}
.grid > * {
	min-width: 0;
}
.overflow-auto {
	overflow: auto;
}

/* === Pico Element Resets & Typography === */
*,
::after,
::before {
	box-sizing: border-box;
	background-repeat: no-repeat;
}
body {
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--font-family);
	font-size: var(--font-size);
	color: var(--color, #8b0020);
	background-color: var(--background-color, #ffd6e0);
	min-height: 100vh;
}
main {
	display: block;
}
section {
	margin-bottom: var(--block-spacing-vertical);
}
h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-family);
	margin-top: 0;
	margin-bottom: var(--block-spacing-vertical);
	color: var(--color, #8b0020);
	font-weight: var(--font-weight);
	font-size: var(--font-size);
	line-height: var(--line-height);
}
p,
li {
	line-height: var(--line-height);
}
p:last-child {
	margin-bottom: 0;
}
a[href] {
	color: var(--primary, #b8002e);
}
a[href]:visited {
	color: var(--muted-color, #6d0015);
}
a[href]:hover,
a[href]:active {
	color: var(--primary, #b8002e);
}
img {
	max-width: 100%;
	height: auto;
	border-style: none;
}
pre,
code {
	font-family: var(--font-family-monospace);
}
pre {
	overflow-x: auto;
}
mark {
	background-color: #ffe6e0;
	color: #8b0020;
}
blockquote {
	border-left: 0.25rem solid var(--muted-color);
	padding: var(--spacing);
	margin: var(--block-spacing-vertical) 0;
}
table {
	width: 100%;
	border-collapse: collapse;
}
td,
th {
	padding: calc(var(--spacing) / 2) var(--spacing);
	border-bottom: var(--border-width) solid var(--muted-color);
}
tfoot td,
tfoot th {
	border-top: var(--border-width) solid var(--muted-color);
	border-bottom: 0;
}

/* === Audio Player Styling === */
audio {
	width: 100%;
	max-width: 100%;
	margin: 1rem 0;
	border-radius: 8px;
	background-color: var(--background-color, #ffd6e0);
	border: 1px solid var(--primary, #b8002e);
	outline: none;
}

audio:focus {
	box-shadow: 0 0 0 2px var(--primary, #b8002e);
}

/* Webkit browsers (Chrome, Safari, Edge) */
audio::-webkit-media-controls-panel {
	background-color: var(--background-color, #ffd6e0);
	border-radius: 8px;
}

audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
	background-color: var(--primary, #b8002e);
	border-radius: 50%;
}

/* Firefox */
audio::-moz-range-thumb {
	background-color: var(--primary, #b8002e);
	border: none;
	border-radius: 50%;
}

/* === Author Theme Overrides (must come after generic styles) === */

/* Colors and fonts for Jane */
html[data-author="jane"],
html[data-author="jane"] body {
	--background-color: var(--author-jane-background);
	--color: var(--author-jane-color);
	--primary: var(--author-jane-primary);
	--muted-color: var(--author-jane-muted);
	font-family: var(--author-jane-font-body, var(--font-family));
	color: var(--author-jane-color);
	background-color: var(--author-jane-background);
}
/* Colors and fonts for Abby */
html[data-author="abby"],
html[data-author="abby"] body {
	--background-color: var(--author-abby-background);
	--color: var(--author-abby-color);
	--primary: var(--author-abby-primary);
	--muted-color: var(--author-abby-muted);
	font-family: var(--author-abby-font-body, var(--font-family));
	color: var(--author-abby-color);
	background-color: var(--author-abby-background);
}
/* Colors and fonts for Orion */
html[data-author="orionlw"],
html[data-author="orionlw"] body {
	--background-color: var(--author-orionlw-background);
	--color: var(--author-orionlw-color);
	--primary: var(--author-orionlw-primary);
	--muted-color: var(--author-orionlw-muted);
	font-family: var(--author-orionlw-font-body, var(--font-family));
	color: var(--author-orionlw-color);
	background-color: var(--author-orionlw-background);
}
/* Colors and fonts for Adesse */
html[data-author="adesse"],
html[data-author="adesse"] body {
	--background-color: var(--author-adesse-background);
	--color: var(--author-adesse-color);
	--primary: var(--author-adesse-primary);
	--muted-color: var(--author-adesse-muted);
	font-family: var(--author-adesse-font-body, var(--font-family));
	color: var(--author-adesse-color);
	background-color: var(--author-adesse-background);
}
/* Colors and fonts for Amelia */
html[data-author="amelia"],
html[data-author="amelia"] body {
	--background-color: var(--author-amelia-background);
	--color: var(--author-amelia-color);
	--primary: var(--author-amelia-primary);
	--muted-color: var(--author-amelia-muted);
	font-family: var(--author-amelia-font-body, var(--font-family));
	color: var(--author-amelia-color);
	background-color: var(--author-amelia-background);
}
/* Colors and fonts for Nic */
html[data-author="nic"],
html[data-author="nic"] body {
	--background-color: var(--author-nic-background);
	--color: var(--author-nic-color);
	--primary: var(--author-nic-primary);
	--muted-color: var(--author-nic-muted);
	font-family: var(--author-nic-font-body, var(--font-family));
	color: var(--author-nic-color);
	background-color: var(--author-nic-background);
}
/* Colors and fonts for Ewan */
html[data-author="ewan"],
html[data-author="ewan"] body {
	--background-color: var(--author-ewan-background);
	--color: var(--author-ewan-color);
	--primary: var(--author-ewan-primary);
	--muted-color: var(--author-ewan-muted);
	font-family: var(--author-ewan-font-body, var(--font-family));
	color: var(--author-ewan-color);
	background-color: var(--author-ewan-background);
}

/* Headings: header font */
html[data-author="jane"] h1,
html[data-author="jane"] h2,
html[data-author="jane"] h3,
html[data-author="jane"] h4,
html[data-author="jane"] h5,
html[data-author="jane"] h6 {
	font-family: var(--author-jane-font-header, var(--font-family));
}
html[data-author="abby"] h1,
html[data-author="abby"] h2,
html[data-author="abby"] h3,
html[data-author="abby"] h4,
html[data-author="abby"] h5,
html[data-author="abby"] h6 {
	font-family: var(--author-abby-font-header, var(--font-family));
}
html[data-author="orionlw"] h1,
html[data-author="orionlw"] h2,
html[data-author="orionlw"] h3,
html[data-author="orionlw"] h4,
html[data-author="orionlw"] h5,
html[data-author="orionlw"] h6 {
	font-family: var(--author-orionlw-font-header, var(--font-family));
}
html[data-author="adesse"] h1,
html[data-author="adesse"] h2,
html[data-author="adesse"] h3,
html[data-author="adesse"] h4,
html[data-author="adesse"] h5,
html[data-author="adesse"] h6 {
	font-family: var(--author-adesse-font-header, var(--font-family));
}
html[data-author="amelia"] h1,
html[data-author="amelia"] h2,
html[data-author="amelia"] h3,
html[data-author="amelia"] h4,
html[data-author="amelia"] h5,
html[data-author="amelia"] h6 {
	font-family: var(--author-amelia-font-header, var(--font-family));
}
html[data-author="nic"] h1,
html[data-author="nic"] h2,
html[data-author="nic"] h3,
html[data-author="nic"] h4,
html[data-author="nic"] h5,
html[data-author="nic"] h6 {
	font-family: var(--author-nic-font-header, var(--font-family));
}
html[data-author="ewan"] h1,
html[data-author="ewan"] h2,
html[data-author="ewan"] h3,
html[data-author="ewan"] h4,
html[data-author="ewan"] h5,
html[data-author="ewan"] h6 {
	font-family: var(--author-ewan-font-header, var(--font-family));
}

/* Mono font for Orion */
html[data-author="orionlw"] code,
html[data-author="orionlw"] pre {
	font-family: var(--author-orionlw-font-mono, var(--font-family-monospace));
}

/* ...rest of your CSS (global styles, utility classes, etc.) ... */

/* === Global Styles === */
* {
	box-sizing: border-box;
}
html,
body {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--font-family);
	color: var(--color, #8b0020);
	background-color: var(--background-color, #ffd6e0);
}
body {
	min-height: 100vh;
}
.site-wrapper {
	max-width: 40em;
	margin: 0 auto;
	padding: 0 !important;
	min-height: 100vh;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-family);
}
html {
	overflow-y: scroll;
}
main,
footer {
	padding: 1rem;
	background-color: var(--background-color, #ffd6e0);
	color: var(--color, #8b0020);
}

/* Links */
a[href] {
	color: var(--primary, #b8002e);
}
a[href]:visited {
	color: var(--muted-color, #6d0015);
}
a[href]:hover,
a[href]:active {
	color: var(--primary, #b8002e);
}

/* microformats2: h-card, h-entry */
.h-card,
.h-entry {
	border-radius: 8px;
	border: 1px solid rgba(128, 128, 128, 0.2);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
	padding: 1.5em;
	margin: 2em 0;
	background-color: var(--background-color, #ffd6e0);
	color: var(--color, #8b0020);
	line-height: 1.5;
}
.h-card .p-note,
.h-card .p-org,
.h-card .p-name,
.h-card .u-url,
.h-card .u-photo {
	color: inherit;
	background: none;
	border: none;
	box-shadow: none;
}
.h-card img.u-photo {
	max-width: 100px;
	border-radius: 50%;
	margin-right: 1em;
}
.h-card .p-name,
.h-card .p-org {
	font-weight: 600;
}

/* Remove h-card styling from inline author names */
.post-author .h-card,
.post-metadata .h-card,
.webmention-content .h-card,
.webmentions .h-card {
	border: none;
	background: none;
	padding: 0;
	margin: 0;
	border-radius: 0;
	box-shadow: none;
	display: inline;
}

/* Remove h-card styling from recommendation cards */
.recommendations-widget .h-card,
.recommendation-card .h-card,
.recommendation-card .rec-author-link.h-card,
.webmention-content .h-card,
.webmentions .h-card {
	border: none !important;
	background: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	display: inline !important;
	position: static !important;
	overflow: visible !important;
}

/* Accessibility */
.visually-hidden:not(:focus):not(:active) {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

/* Images */
img {
	max-width: 100%;
}
img[width][height] {
	height: auto;
}
img[src$=".svg"] {
	width: 100%;
	height: auto;
	max-width: none;
}
video,
iframe {
	width: 100%;
	height: auto;
}
iframe {
	aspect-ratio: 16/9;
}

/* Typography */
p:last-child {
	margin-bottom: 0;
}
p,
li {
	line-height: 1.5;
}
main :first-child {
	margin-top: 0;
}

/* Header */
header {
	display: flex;
	gap: 1em;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	padding: 1em;
	border-bottom: 1px dashed rgba(128, 128, 128, 0.3);
}
.home-link {
	flex-grow: 1;
	font-size: 1em;
	font-weight: 700;
}
.home-link:link:not(:hover) {
	text-decoration: none;
}
#skip-link {
	text-decoration: none;
	background: var(--background-color);
	color: var(--color);
	padding: 0.5rem 1rem;
	border: 1px solid var(--primary);
	border-radius: 2px;
}
#skip-link.visually-hidden:focus {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 999;
}

/* Nav */
.nav {
	display: flex;
	gap: 0.5em 1em;
	padding: 0;
	margin: 0;
	list-style: none;
}
.nav-item {
	display: inline-block;
}
.nav-item a[href]:not(:hover) {
	text-decoration: none;
}
.nav a[href][aria-current="page"] {
	text-decoration: underline;
}

/* Posts list */
.postlist {
	counter-reset: start-from var(--postlist-index);
	list-style: none;
	padding: 0;
	padding-left: 1.5rem;
}
.postlist-item {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	counter-increment: start-from -1;
	margin-bottom: 1em;
}
.postlist-item:before {
	display: inline-block;
	pointer-events: none;
	content: "" counter(start-from, decimal-leading-zero) ". ";
	line-height: 100%;
	text-align: right;
	margin-left: -1.5rem;
}
.postlist-date,
.postlist-item:before {
	font-size: 0.8125em;
	color: var(--muted-color);
}
.postlist-date {
	word-spacing: -0.5px;
}
.postlist-link {
	font-size: 1.1875em;
	font-weight: 700;
	flex-basis: calc(100% - 1.5rem);
	padding-left: 0.25em;
	padding-right: 0.5em;
	text-underline-position: from-font;
	text-underline-offset: 0;
	text-decoration-thickness: 1px;
}
.postlist-item-active .postlist-link {
	font-weight: bold;
}

/* Next/prev links */
.links-nextprev {
	display: flex;
	justify-content: space-between;
	gap: 0.5em 1em;
	list-style: none;
	border-top: 1px dashed rgba(128, 128, 128, 0.3);
	padding: 1em 0;
}
.links-nextprev > * {
	flex-grow: 1;
	list-style: none;
}
.links-nextprev-next {
	text-align: right;
}
.links-nextprev li {
	list-style: none;
	list-style-type: none;
}
.links-nextprev li::before {
	display: none;
}

/* Tags */
.post-tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-transform: capitalize;
	font-style: italic;
}
.postlist-item > .post-tag {
	align-self: center;
}

.post-metadata {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.5em;
	list-style: none;
	padding: 0;
	margin: 0;
}
.post-metadata time {
	margin-right: 1em;
}

/* Tables */
table {
	margin: 1em 0;
}
table td,
table th {
	padding-right: 1em;
}

/* Code */
pre,
code {
	font-family: var(--font-family-monospace);
}
pre:not([class*="language-"]) {
	margin: 0.5em 0;
	line-height: 1.375;
	-moz-tab-size: var(--syntax-tab-size);
	-o-tab-size: var(--syntax-tab-size);
	tab-size: var(--syntax-tab-size);
	-webkit-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
	direction: ltr;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	overflow-x: auto;
}
code {
	word-break: break-all;
}

/* Increase specificity and add !important to force nav and links to use author header font */
body[data-author="jane"] nav,
body[data-author="jane"] .nav,
body[data-author="jane"] .nav-item,
body[data-author="jane"] .nav-item a {
	font-family: var(--author-jane-font-header, var(--font-family)) !important;
}
body[data-author="abby"] nav,
body[data-author="abby"] .nav,
body[data-author="abby"] .nav-item,
body[data-author="abby"] .nav-item a {
	font-family: var(--author-abby-font-header, var(--font-family)) !important;
}
body[data-author="orionlw"] nav,
body[data-author="orionlw"] .nav,
body[data-author="orionlw"] .nav-item,
body[data-author="orionlw"] .nav-item a {
	font-family: var(--author-orionlw-font-header, var(--font-family)) !important;
}
body[data-author="adesse"] nav,
body[data-author="adesse"] .nav,
body[data-author="adesse"] .nav-item,
body[data-author="adesse"] .nav-item a {
	font-family: var(--author-adesse-font-header, var(--font-family)) !important;
}
body[data-author="amelia"] nav,
body[data-author="amelia"] .nav,
body[data-author="amelia"] .nav-item,
body[data-author="amelia"] .nav-item a {
	font-family: var(--author-amelia-font-header, var(--font-family)) !important;
}
body[data-author="nic"] nav,
body[data-author="nic"] .nav,
body[data-author="nic"] .nav-item,
body[data-author="nic"] .nav-item a {
	font-family: var(--author-nic-font-header, var(--font-family)) !important;
}
body[data-author="ewan"] nav,
body[data-author="ewan"] .nav,
body[data-author="ewan"] .nav-item,
body[data-author="ewan"] .nav-item a {
	font-family: var(--author-ewan-font-header, var(--font-family)) !important;
}
body[data-author="jane"] .home-link {
	font-family: var(--author-jane-font-header, var(--font-family)) !important;
}
body[data-author="abby"] .home-link {
	font-family: var(--author-abby-font-header, var(--font-family)) !important;
}
body[data-author="orionlw"] .home-link {
	font-family: var(--author-orionlw-font-header, var(--font-family)) !important;
}
body[data-author="adesse"] .home-link {
	font-family: var(--author-adesse-font-header, var(--font-family)) !important;
}
body[data-author="amelia"] .home-link {
	font-family: var(--author-amelia-font-header, var(--font-family)) !important;
}
body[data-author="nic"] .home-link {
	font-family: var(--author-nic-font-header, var(--font-family)) !important;
}
body[data-author="ewan"] .home-link {
	font-family: var(--author-ewan-font-header, var(--font-family)) !important;
}

/* ...add any additional utility or component styles below... */


/* Search functionality styles */
.search-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: rgba(0, 0, 0, 0.8);
	z-index: 10000;
	backdrop-filter: blur(4px);
}

.search-overlay.active {
	display: flex !important;
	align-items: flex-start;
	justify-content: center;
	padding-top: 10vh;
}

.search-modal {
	background: var(--background-color);
	border: 2px solid var(--primary);
	border-radius: 8px;
	width: 90%;
	max-width: 600px;
	max-height: 70vh;
	overflow: hidden;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.search-header {
	display: flex;
	align-items: center;
	padding: 1rem;
	border-bottom: 1px solid var(--primary);
}

#search-input {
	flex: 1;
	border: none;
	background: transparent;
	font-size: 1.2rem;
	color: var(--color);
	outline: none;
	font-family: var(--font-family);
}

#search-input::placeholder {
	color: var(--muted-color);
	opacity: 0.7;
}

.search-close {
	background: none;
	border: none;
	color: var(--color);
	cursor: pointer;
	padding: 0.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
}

.search-close:hover {
	background-color: var(--primary);
	color: var(--background-color);
}

.search-results {
	max-height: 400px;
	overflow-y: auto;
	padding: 0;
}

.search-result {
	padding: 1rem;
	border-bottom: 1px solid var(--muted-color);
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.search-result:hover {
	background-color: var(--primary);
	color: var(--background-color);
}

.search-result:hover * {
	color: inherit;
}

.result-title {
	margin: 0 0 0.5rem 0;
	font-size: 1.1rem;
	font-family: var(--font-family);
}

.result-title a {
	color: inherit;
	text-decoration: none;
}

.result-meta {
	display: flex;
	gap: 1rem;
	align-items: center;
	font-size: 0.85rem;
	opacity: 0.8;
	margin-bottom: 0.5rem;
}

.search-footer {
	padding: 0.75rem 1rem;
	background: var(--muted-color);
	color: var(--background-color);
	font-size: 0.8rem;
	display: flex;
	gap: 1rem;
	align-items: center;
}

.search-footer kbd {
	background: rgba(255, 255, 255, 0.2);
	padding: 0.2rem 0.4rem;
	border-radius: 3px;
	font-family: monospace;
	font-size: 0.75rem;
}

.no-results {
	padding: 2rem;
	text-align: center;
	opacity: 0.7;
}

.search-overlay mark {
	background: var(--primary);
	color: var(--background-color);
	padding: 0.1rem 0.2rem;
	border-radius: 2px;
}

/* Mobile Navigation Styles */
.mobile-menu-toggle {
	display: none;
	background: none;
	border: none;
	color: var(--color);
	cursor: pointer;
	padding: 0.5rem;
	flex-direction: column;
	gap: 0.25rem;
	border-radius: 4px;
}

.hamburger-line {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--color);
	transition: all 0.3s ease;
	transform-origin: center;
}

.mobile-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(1) {
	transform: rotate(45deg) translate(5px, 5px);
}

.mobile-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(2) {
	opacity: 0;
}

.mobile-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(3) {
	transform: rotate(-45deg) translate(7px, -6px);
}

@media (max-width: 768px) {
	.search-modal {
		width: 95%;
		max-height: 80vh;
	}
	.search-overlay.active {
		padding-top: 5vh;
	}

	header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		position: relative;
	}

	.mobile-menu-toggle {
		display: flex;
		z-index: 1000;
	}

	#main-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--background-color);
		border: 2px solid var(--primary);
		border-radius: 8px;
		margin-top: 0.5rem;
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		transform: translateY(-10px);
		transition: all 0.3s ease;
		z-index: 999;
	}

	#main-nav.nav-open {
		max-height: 400px;
		opacity: 1;
		transform: translateY(0);
		box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
	}

	.nav {
		flex-direction: column;
		padding: 1rem;
		gap: 0.75rem;
	}

	.nav-item {
		width: 100%;
	}

	.nav-item a, .nav-item button, .nav-item div {
		width: 100%;
		display: block;
		text-align: center;
		padding: 0.75rem;
		border-radius: 4px;
		transition: background-color 0.2s ease;
	}

	.nav-item a:hover, .nav-item button:hover {
		background: var(--primary);
		color: var(--background-color);
	}

	.nav-item div {
		justify-content: center;
		padding: 0.5rem;
	}

	#author-select {
		width: auto;
		min-width: 120px;
	}
}</style>
		<script type="module">// Thank you to https://github.com/daviddarnes/heading-anchors
// Thank you to https://amberwilson.co.uk/blog/are-your-anchor-links-accessible/

let globalInstanceIndex = 0;

class HeadingAnchors extends HTMLElement {
	static register(tagName) {
		if ("customElements" in window) {
			customElements.define(tagName || "heading-anchors", HeadingAnchors);
		}
	}

	static attributes = {
		exclude: "data-ha-exclude",
		prefix: "prefix",
		content: "content",
	}

	static classes = {
		anchor: "ha",
		placeholder: "ha-placeholder",
		srOnly: "ha-visualhide",
	}

	static defaultSelector = "h2,h3,h4,h5,h6";

	static css = `
.${HeadingAnchors.classes.srOnly} {
	clip: rect(0 0 0 0);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}
.${HeadingAnchors.classes.anchor} {
	position: absolute;
	left: var(--ha_offsetx);
	top: var(--ha_offsety);
	text-decoration: none;
	opacity: 0;
}
.${HeadingAnchors.classes.placeholder} {
	opacity: .3;
}
.${HeadingAnchors.classes.anchor}:is(:focus-within, :hover) {
	opacity: 1;
}
.${HeadingAnchors.classes.anchor},
.${HeadingAnchors.classes.placeholder} {
	display: inline-block;
	padding: 0 .25em;

	/* Disable selection of visually hidden label */
	-webkit-user-select: none;
	user-select: none;
}

@supports (anchor-name: none) {
	.${HeadingAnchors.classes.anchor} {
		position: absolute;
		left: anchor(left);
		top: anchor(top);
	}
}`;

	get supports() {
		return "replaceSync" in CSSStyleSheet.prototype;
	}

	get supportsAnchorPosition() {
		return CSS.supports("anchor-name: none");
	}

	constructor() {
		super();

		if(!this.supports) {
			return;
		}

		let sheet = new CSSStyleSheet();
		sheet.replaceSync(HeadingAnchors.css);
		document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];

		this.headingStyles = {};
		this.instanceIndex = globalInstanceIndex++;
	}

	connectedCallback() {
		if (!this.supports) {
			return;
		}

		this.headings.forEach((heading, index) => {
			if(!heading.hasAttribute(HeadingAnchors.attributes.exclude)) {
				let anchor = this.getAnchorElement(heading);
				let placeholder = this.getPlaceholderElement();

				// Prefers anchor position approach for better accessibility
				// https://amberwilson.co.uk/blog/are-your-anchor-links-accessible/
				if(this.supportsAnchorPosition) {
					let anchorName = `--ha_${this.instanceIndex}_${index}`;
					placeholder.style.setProperty("anchor-name", anchorName);
					anchor.style.positionAnchor = anchorName;
				}

				heading.appendChild(placeholder);
				heading.after(anchor);
			}
		});
	}

	// Polyfill-only
	positionAnchorFromPlaceholder(placeholder) {
		if(!placeholder) {
			return;
		}

		let heading = placeholder.closest("h1,h2,h3,h4,h5,h6");
		if(!heading.nextElementSibling) {
			return;
		}

		// TODO next element could be more defensive
		this.positionAnchor(heading.nextElementSibling);
	}

	// Polyfill-only
	positionAnchor(anchor) {
		if(!anchor || !anchor.previousElementSibling) {
			return;
		}

		// TODO previous element could be more defensive
		let heading = anchor.previousElementSibling;
		this.setFontProp(heading, anchor);

		if(this.supportsAnchorPosition) {
			// quit early
			return;
		}

		let placeholder = heading.querySelector(`.${HeadingAnchors.classes.placeholder}`);
		if(placeholder) {
			anchor.style.setProperty("--ha_offsetx", `${placeholder.offsetLeft}px`);
			anchor.style.setProperty("--ha_offsety", `${placeholder.offsetTop}px`);
		}
	}

	setFontProp(heading, anchor) {
		let placeholder = heading.querySelector(`.${HeadingAnchors.classes.placeholder}`);
		if(placeholder) {
			let style = getComputedStyle(placeholder);
			let props = ["font-weight", "font-size", "line-height", "font-family"];
			let font = props.map(name => style.getPropertyValue(name));
			anchor.style.setProperty("font", `${font[0]} ${font[1]}/${font[2]} ${font[3]}`);
		}
	}

	getAccessibleTextPrefix() {
		// Useful for i18n
		return this.getAttribute(HeadingAnchors.attributes.prefix) || "Jump to section titled";
	}

	getContent() {
		if(this.hasAttribute(HeadingAnchors.attributes.content)) {
			return this.getAttribute(HeadingAnchors.attributes.content);
		}
		return "#";
	}

	// Placeholder nests inside of heading
	getPlaceholderElement() {
		let ph = document.createElement("span");
		ph.setAttribute("aria-hidden", true);
		ph.classList.add(HeadingAnchors.classes.placeholder);
		let content = this.getContent();
		if(content) {
			ph.textContent = content;
		}

		ph.addEventListener("mouseover", (e) => {
			let placeholder = e.target.closest(`.${HeadingAnchors.classes.placeholder}`);
			if(placeholder) {
				this.positionAnchorFromPlaceholder(placeholder);
			}
		});

		return ph;
	}

	getAnchorElement(heading) {
		let anchor = document.createElement("a");
		anchor.href = `#${heading.id}`;
		anchor.classList.add(HeadingAnchors.classes.anchor);

		let content = this.getContent();
		anchor.innerHTML = `<span class="${HeadingAnchors.classes.srOnly}">${this.getAccessibleTextPrefix()}: ${heading.textContent}</span>${content ? `<span aria-hidden="true">${content}</span>` : ""}`;

		anchor.addEventListener("focus", e => {
			let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
			if(anchor) {
				this.positionAnchor(anchor);
			}
		});

		anchor.addEventListener("mouseover", (e) => {
			// when CSS anchor positioning is supported, this is only used to set the font
			let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
			this.positionAnchor(anchor);
		});

		return anchor;
	}

	get headings() {
		return this.querySelectorAll(this.selector.split(",").map(entry => `${entry.trim()}[id]`));
	}

	get selector() {
		return this.getAttribute("selector") || HeadingAnchors.defaultSelector;
	}
}

HeadingAnchors.register();

export { HeadingAnchors }
</script>

        <!-- IndieAuth endpoints -->
        <link rel="authorization_endpoint" href="https://indieauth.com/auth">
        <link rel="token_endpoint" href="https://tokens.indieauth.com/token">

        <!-- Identity verification -->
        <link rel="me" href="https://github.com/jane777-pixel">
        <link rel="me" href="mailto:haileebach@gmail.com">
		<link rel="me" href="mailto:orionlw@pm.me">
		<link rel="me" href="https://github.com/orionlw">

        <!-- Webmention endpoints -->
        <link rel="webmention" href="https://webmention.io/nightdogs.xyz/webmention">
        <link rel="pingback" href="https://webmention.io/nightdogs.xyz/xmlrpc">
    </head>
    <body class="h-card" >
        <div class="site-wrapper">
        <a href="#main" id="skip-link" class="visually-hidden">Skip to main content</a>

		<header>
			<a href="/" class="home-link p-name u-url">nightdogs</a>

			<button class="mobile-menu-toggle" aria-label="Toggle navigation menu" aria-expanded="false">
				<span class="hamburger-line"></span>
				<span class="hamburger-line"></span>
				<span class="hamburger-line"></span>
			</button>
			<nav id="main-nav">
				<h2 class="visually-hidden">Top level navigation menu</h2>
				<ul class="nav">
					<li class="nav-item"><a href="/">Home</a></li>
					<li class="nav-item"><a href="/explore/">Explore</a></li>
					<li class="nav-item"><a href="/authors/">Authors</a></li>
					<li class="nav-item"><a href="/cat/">Cat</a></li>
					<li class="nav-item"><a href="/feed/feed.xml">Feed</a></li>
					<li class="nav-item">
						<button data-search-trigger style="background:none;border:none;color:var(--color);cursor:pointer;padding:0.5rem;border-radius:4px;" aria-label="Search posts">
							🔍 Search
						</button>
					</li>
					<li class="nav-item">
						<div style="display:flex;align-items:center;gap:0.5em;">
							<button id="dark-mode-toggle" style="background:none;border:none;color:var(--color);cursor:pointer;padding:0.25rem;border-radius:4px;font-size:1.2em;" aria-label="Toggle dark mode">
								🌙
							</button>
							<select id="author-select" class="author-sync" name="author-select" style="background:none;border:1px solid var(--color);color:var(--color);min-width:6em;font-size:0.92em;padding:0.25em 0.5em;border-radius:4px;" aria-label="Select author theme">
								<option value="jane">Jane</option>
								<option value="orionlw">Orion</option>
								<option value="adesse">Adèsse</option>
								<option value="nic">Nic</option>
								<option value="amelia">Amelia</option>
								<option value="abby">Abby</option>
								<option value="ewan">Ewan</option>
							</select>
						</div>
					</li>
				</ul>
			</nav>
		</header>

		<main id="main" class="main-content">
			<heading-anchors>
				

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>nightdogs - Amelia Wheeler</title>
		<description>Posts by Amelia Wheeler on nightdogs</description>
		<link>https://nightdogs.xyz/authors/amelia/</link>
		<atom:link href="https://nightdogs.xyz/feed/amelia.xml" rel="self" type="application/rss+xml"/>
		<language>en-us</language>
		<lastBuildDate>Fri, 22 Aug 2025 19:06:00 GMT</lastBuildDate>
		<managingEditor>haileebach@gmail.com (Amelia Wheeler)</managingEditor>
		<webMaster>haileebach@gmail.com (nightdogs)</webMaster>
		<generator>Eleventy</generator>
		<image>
			<url>https://nightdogs.xyz/img/nightdogs-logo.png</url>
			<title>nightdogs - Amelia Wheeler</title>
			<link>https://nightdogs.xyz/authors/amelia/</link>
		</image>
	<item>
		<title>Painting and Productivity</title>
		<description>Hello! 🦋
I did a LOT of water colour painting this past weekend! Though, that only amounts to two complete paintings and a side of flowers- but I definitely spent a lot of time focused on all the little details and fun design aspects!


Would 100% recommend drawing/painting a dollhouse- it very...</description>
		<link>https://nightdogs.xyz/blog/amelia/2025-08-22/painting-and-productivity/</link>
		<guid isPermaLink="true">https://nightdogs.xyz/blog/amelia/2025-08-22/painting-and-productivity/</guid>
		<pubDate>Fri, 22 Aug 2025 19:06:00 GMT</pubDate>
		<author>haileebach@gmail.com (Amelia Wheeler)</author>
		<category>painting</category>\n\t\t<category>capitalism</category>
	</item>
	</channel>
</rss>

			</heading-anchors>
		</main>

		<footer class="p-note footer-site">
  <p>
    <em>Built with <a href="https://www.11ty.dev/">Eleventy v3.1.2</a></em>
  </p>
</footer>
        </div>
		<!-- This page `/feed/amelia.xml` was built on 2026-07-08T02:08:11.337Z -->
		<script type="module" src=""></script>

		<!-- Load search functionality -->
		<script src="/js/search.js" defer></script>

        <!-- Dark mode functionality -->
        <script eleventy:ignore>
        document.addEventListener('DOMContentLoaded', function() {
          const toggle = document.getElementById('dark-mode-toggle');
          if (!toggle) return;

          let isDark = false;
          try {
            const saved = localStorage.getItem('nightdogs-dark-mode');
            isDark = saved === 'true' || (!saved && window.matchMedia('(prefers-color-scheme: dark)').matches);
          } catch(e) {}

          function updateToggle() {
            toggle.innerHTML = isDark ? '☀️' : '🌙';
            document.documentElement.setAttribute('data-theme', isDark ? 'dark' : 'light');
            try { localStorage.setItem('nightdogs-dark-mode', isDark); } catch(e) {}
          }

          toggle.addEventListener('click', function() {
            isDark = !isDark;
            updateToggle();
          });

          updateToggle();
        });

        // Mobile navigation toggle
        const mobileToggle = document.querySelector('.mobile-menu-toggle');
        const mainNav = document.getElementById('main-nav');

        if (mobileToggle && mainNav) {
          mobileToggle.addEventListener('click', function() {
            const isOpen = mainNav.classList.contains('nav-open');
            const newState = !isOpen;

            mainNav.classList.toggle('nav-open', newState);
            mobileToggle.setAttribute('aria-expanded', newState.toString());

            // Close menu when clicking outside
            if (newState) {
              setTimeout(() => {
                document.addEventListener('click', function closeMenu(e) {
                  if (!mainNav.contains(e.target) && !mobileToggle.contains(e.target)) {
                    mainNav.classList.remove('nav-open');
                    mobileToggle.setAttribute('aria-expanded', 'false');
                    document.removeEventListener('click', closeMenu);
                  }
                });
              }, 100);
            }
          });

          // Close mobile menu when window is resized to desktop
          window.addEventListener('resize', function() {
            if (window.innerWidth > 768) {
              mainNav.classList.remove('nav-open');
              mobileToggle.setAttribute('aria-expanded', 'false');
            }
          });
        }
        </script>

        <script eleventy:ignore>
        // Sync all author selectors and theme
        (function() {
          const authorSelectors = document.querySelectorAll('.author-sync');
          const siteWrapper = document.querySelector('.site-wrapper');
          const html = document.documentElement;

          function setThemeByAuthor(author) {
            document.body.classList.remove(...Array.from(document.body.classList).filter(c => c.startsWith('author-selected-')));
            if (author && author !== "all") {
              document.body.classList.add(`author-selected-${author}`);
              document.body.setAttribute('data-author', author);
              if (siteWrapper) siteWrapper.setAttribute('data-author', author);
              html.setAttribute('data-author', author);
              try { localStorage.setItem('author-theme', author); } catch(e){}
            } else {
              document.body.setAttribute('data-author', 'jane');
              if (siteWrapper) siteWrapper.setAttribute('data-author', 'jane');
              html.setAttribute('data-author', 'jane');
              try { localStorage.setItem('author-theme', 'jane'); } catch(e){}
            }
          }

          function syncAuthorSelectors(author) {
            authorSelectors.forEach(sel => {
              if (sel.value !== author) sel.value = author;
            });
            setThemeByAuthor(author);
            // If on blog archive, trigger post filtering
            if (typeof filterPosts === "function") filterPosts();
          }

          authorSelectors.forEach(sel => {
            sel.addEventListener('change', function() {
              syncAuthorSelectors(this.value);
            });
          });

          // On page load, sync selectors to localStorage or default
          let initialAuthor = "jane";
          try {
            const saved = localStorage.getItem('author-theme');
            if (saved) initialAuthor = saved;
          } catch(e){}
          syncAuthorSelectors(initialAuthor);
        })();
        </script>
        <script eleventy:ignore>
        function updateCatNavText() {
          const author = document.documentElement.getAttribute('data-author');
          // Find the nav link for the Cat page (assumes href contains 'cat')
          const navLinks = document.querySelectorAll('.nav-item a');
          navLinks.forEach(link => {
            if (link.getAttribute('href') && link.getAttribute('href').includes('cat')) {
            link.textContent = window.AUTHORS_DOG_PERSON?.[author] === true ? 'Dog' : 'Cat';
            }
          });
        }

        // Run on page load
        updateCatNavText();

        // Listen for author changes
        const navObserver = new MutationObserver(updateCatNavText);
        navObserver.observe(document.documentElement, { attributes: true, attributeFilter: ['data-author'] });
        </script>

    </body>
</html>
