/**
 * Post Kinds cards — courtneyr.dev PAINT layer.
 *
 * The plugin (post-kinds-for-indieweb) ships the STRUCTURE + neutral defaults
 * for the two-layer `.pk-card` system. This file is the theme's PAINT: it maps
 * the plugin's --pk-* paint variables onto the site's --cr-* design tokens, so
 * every card inherits the courtneyr.dev palette, fonts, masking-tape label, and
 * — because --cr-* tokens flip under [data-theme] — dark mode, with no extra
 * work on the shared surfaces.
 *
 * Per-kind accent HUES come from the Post Kinds card design. Each kind stores
 * both its light accent (--pk-kind) and a brightened dark accent
 * (--pk-kind-dark) in one place; the dark-mode rules at the bottom do a single
 * generic swap so the 17 kinds aren't duplicated per mode.
 *
 * Nothing here touches layout — structure stays owned by the plugin.
 */

/* ────────────────────────────────────────────────────────────────────────
   A11y text floor. Accessibility Checker flags text that computes under
   10px; the zine skin's smallest annotations (price stickers, date pills)
   sat at 0.42–0.62rem. Every sub-floor size below is wrapped in max() so
   the pastiche keeps its proportions on paper but never renders below the
   floor. Tune the whole skin from this one knob.
   ──────────────────────────────────────────────────────────────────────── */
.cr-stream-page,
.pk-card {
	--cr-text-floor: 0.7rem;
}


/* courtneyr.dev: cards fill the content column, not the plugin's 38rem
   readable-width cap — the single-post measure is already wide. Uses `body
   .pk-card` (specificity 0,1,1) with a direct value, not a --pk-maxw override,
   so it beats the plugin's `.pk-card` rule even after Perfmatters' Used-CSS
   optimizer strips the plugin's :where() wrapper and reorders same-specificity
   rules ahead of the theme's. */
body .pk-card {
	max-width: none;
	/* Uniform thin border — drop the plugin's 3px dark left accent so the
	   card leans on the site's hard shadow instead. */
	border-left: 1px solid var(--pk-border);
}

/* ---- shared paint: pk-* → cr-* tokens (auto light/dark via --cr-*) ---- */
.pk-card {
	/* Square corners, matching the zine's sharp-corner system. Overrides the
	   plugin's --pk-radius:14px (front end) and --pkiw-card-border-radius:12px
	   (editor). This file is loaded both front-end and via add_editor_style, so
	   both contexts stay square. Per-card border-radius set through the block's
	   Border support still wins (inline style beats these class-level tokens). */
	--pk-radius: 0;
	--pkiw-card-border-radius: 0;

	--pk-surface: var(--cr-surface);
	--pk-ink: var(--cr-ink);
	--pk-muted: var(--cr-ink-muted);
	--pk-border: var(--cr-border-strong);
	--pk-accent: var(--cr-link);
	--pk-accent-ink: var(--cr-ink-inverse);

	--pk-font-body: "Barlow", system-ui, -apple-system, sans-serif;
	--pk-font-title: "Roboto Slab", Georgia, serif;
	--pk-font-meta: ui-monospace, SFMono-Regular, Menlo, monospace;
	--pk-title-weight: 700;
	--pk-shadow: var(--cr-shadow-hard);

	/* kind label reads as a plain uppercase tag — no masking tape */
	--pk-label-bg: transparent;
	--pk-label-pad: 0;
	--pk-label-rot: 0deg;
	--pk-label-shadow: none;

	/* linen paper behind rich embeds (light-mode signature; darkened below) */
	--pk-paper:
		repeating-linear-gradient(0deg, rgba(36, 28, 74, 0.05) 0 1px, transparent 1px 3px),
		repeating-linear-gradient(90deg, rgba(36, 28, 74, 0.04) 0 1px, transparent 1px 3px),
		#fee2c3;
	--pk-paper-pad: 0.7rem;

	/* source chip (venue / platform / price) = tape colors */
	--pk-chip-bg: var(--cr-tape);
	--pk-chip-ink: var(--cr-tape-ink);
	--pk-chip-border: var(--cr-border);
}

/* the kind label reads in the display face + tape ink, matching the design */
.pk-card .pk-kindlabel {
	font-family: var(--pk-font-meta);
	color: var(--pk-muted);
	letter-spacing: 0.08em;
}

/* ---- per-kind accents: light hue + brightened dark hue in one place ----
   badge ink defaults to white; overridden per-kind where the light accent is
   too bright for white text. In dark mode every badge sits on a bright accent,
   so the dark swap forces a dark badge ink globally. */
.pk-card.k-listen      { --pk-kind: #241c4a; --pk-kind-dark: #9a8fe0; --pk-badge-ink: #fff; --pk-tint: #bcb5e3; }
.pk-card.k-jam         { --pk-kind: #3f2f7a; --pk-kind-dark: #b0a0f0; --pk-badge-ink: #fff; --pk-tint: #cbc3ec; }
.pk-card.k-watch       { --pk-kind: #126782; --pk-kind-dark: #6fc4dd; --pk-badge-ink: #fff; --pk-tint: #cfe8f0; }
.pk-card.k-read        { --pk-kind: #7a5c2e; --pk-kind-dark: #d8b483; --pk-badge-ink: #fff; --pk-tint: #ecdcc2; }
.pk-card.k-play        { --pk-kind: #5d72a3; --pk-kind-dark: #9fb0d8; --pk-badge-ink: #fff; --pk-tint: #dde3f0; }
.pk-card.k-checkin     { --pk-kind: #4f6a43; --pk-kind-dark: #a7c295; --pk-badge-ink: #fff; --pk-tint: #dbe6d4; }
.pk-card.k-eat         { --pk-kind: #c96a00; --pk-kind-dark: #ffa94d; --pk-badge-ink: #fff; --pk-tint: #fee2c3; }
.pk-card.k-drink       { --pk-kind: #b26a00; --pk-kind-dark: #e0a353; --pk-badge-ink: #fff; --pk-tint: #fff0d0; }
.pk-card.k-mood        { --pk-kind: #16697a; --pk-kind-dark: #6fc9e0; --pk-badge-ink: #fff; --pk-tint: #cdeaf1; }
.pk-card.k-acquisition { --pk-kind: #023047; --pk-kind-dark: #6d9bb5; --pk-badge-ink: #fff; --pk-tint: #cfe0e6; }
.pk-card.k-like        { --pk-kind: #b23a4c; --pk-kind-dark: #f37882; --pk-badge-ink: #fff; --pk-tint: #f4d4d8; }
.pk-card.k-favorite    { --pk-kind: #96690a; --pk-kind-dark: #e6c05a; --pk-badge-ink: #fff; --pk-tint: #f1e4c0; }
.pk-card.k-reply       { --pk-kind: #4a6a9d; --pk-kind-dark: #8da4cc; --pk-badge-ink: #fff; --pk-tint: #d7e0ef; }
.pk-card.k-repost      { --pk-kind: #1d7a99; --pk-kind-dark: #7cc1d4; --pk-badge-ink: #fff; --pk-tint: #cfe8f0; }
.pk-card.k-bookmark    { --pk-kind: #2c5f8a; --pk-kind-dark: #7db3e8; --pk-badge-ink: #fff; --pk-tint: #d5e2ee; }
.pk-card.k-rsvp        { --pk-kind: #55743f; --pk-kind-dark: #a8c098; --pk-badge-ink: #fff; --pk-tint: #dde8d3; }
.pk-card.k-wish        { --pk-kind: #8a4a6a; --pk-kind-dark: #d089a3; --pk-badge-ink: #fff; --pk-tint: #ecd6e0; }

/* ============================================================================
   DARK MODE — mirror the theme's dual contract:
   - prefers-color-scheme when the site is on "system" / no stored choice
   - the manual [data-theme="dark"] toggle
   Both just swap the per-kind accent to its --pk-kind-dark, drop the light
   tint wash, force a dark badge ink, and darken the embed paper. --cr-* driven
   surfaces (surface / ink / border / tape / chip) flip on their own.
   ============================================================================ */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme]) .pk-card,
	:root[data-theme="system"] .pk-card {
		--pk-kind: var(--pk-kind-dark);
		--pk-badge-ink: #14141a;
		--pk-tint: transparent;
		--pk-paper:
			repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.03) 0 1px, transparent 1px 3px),
			#2a2520;
	}
}

:root[data-theme="dark"] .pk-card {
	--pk-kind: var(--pk-kind-dark);
	--pk-badge-ink: #14141a;
	--pk-tint: transparent;
	--pk-paper:
		repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.03) 0 1px, transparent 1px 3px),
		#2a2520;
}

/* ============================================================
   v0.5.214 — Stream.dc.html port (Claude Design "Stream and
   Blog mocks review": SPEC.md /stream/ + 24-kind tables).
   Scoped to body.cr-stream-page so kind cards embedded in
   single posts keep the plugin's compact layout. Cover kinds
   render as VHS/record/game boxes; scraps as pinned paper.
   Raw violet/ivory hexes on the "physical objects" are
   deliberate — a VHS box doesn't change color in dark mode.
   ============================================================ */

/* Collage: masonry columns, no card ever touching another. */
.cr-stream-page .wp-block-post-template {
	columns: 17rem;
	column-gap: 2.25rem;
	max-width: 72rem;
	margin-inline: auto;
	padding: 0;
	list-style: none;
}
.cr-stream-page .wp-block-post-template > li {
	break-inside: avoid;
	display: block;
	margin: 0.7rem 0 2.6rem;
}
.cr-stream-page .wp-block-post-template > li:nth-child(4n+1) .pk-card { transform: rotate(var(--cr-rotate-1, -1.2deg)); }
.cr-stream-page .wp-block-post-template > li:nth-child(4n+3) .pk-card { transform: rotate(var(--cr-rotate-2, 1.5deg)); }

/* Reset the plugin's compact shell on the stream. */
.cr-stream-page .pk-card {
	display: block;
	grid-template-columns: none;
	max-width: none;
	padding: 0;
	border: 0;
	border-left: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	position: relative;
}
.cr-stream-page .pk-card::before { content: none; }
.cr-stream-page .pk-card .pk-body { display: flex; flex-direction: column; min-width: 0; }

/* ---- Cover-hero kinds: the box shell ---- */
.cr-stream-page .pk-card.k-watch,
.cr-stream-page .pk-card.k-listen,
.cr-stream-page .pk-card.k-read,
.cr-stream-page .pk-card.k-jam,
.cr-stream-page .pk-card.k-play,
.cr-stream-page .pk-card.k-review,
.cr-stream-page .pk-card.k-wish,
.cr-stream-page .pk-card.k-acquisition {
	background: #241c4a;
	border-radius: 5px;
	overflow: hidden;
	box-shadow: var(--cr-shadow-hard-2, 6px 6px 0 var(--cr-ink, #241c4a));
	color: #fbfaf5;
}

/* Art goes big, on top, edge to edge. */
.cr-stream-page .pk-card .pk-media {
	order: -1;
	display: block;
	margin: 0;
}
.cr-stream-page .pk-card .pk-media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
	border-bottom: 2px solid rgba(251, 250, 245, 0.7);
	object-fit: cover;
}
.cr-stream-page .k-watch .pk-media img,
.cr-stream-page .k-read .pk-media img,
.cr-stream-page .k-wish .pk-media img { aspect-ratio: 2 / 3; }
.cr-stream-page .k-listen .pk-media img,
.cr-stream-page .k-jam .pk-media img { aspect-ratio: 1 / 1; }
.cr-stream-page .k-play .pk-media img,
.cr-stream-page .k-review .pk-media img,
.cr-stream-page .k-acquisition .pk-media img { aspect-ratio: 4 / 3; }

/* Caption band on the box. */
.cr-stream-page .k-watch .pk-title,
.cr-stream-page .k-listen .pk-title,
.cr-stream-page .k-read .pk-title,
.cr-stream-page .k-jam .pk-title,
.cr-stream-page .k-play .pk-title,
.cr-stream-page .k-review .pk-title,
.cr-stream-page .k-wish .pk-title,
.cr-stream-page .k-acquisition .pk-title {
	color: #fbfaf5;
	font-family: var(--cr-font-accent, serif);
	font-weight: 700;
	font-size: 0.95rem;
	line-height: 1.25;
	padding: 0.55rem 0.65rem 0;
}
.cr-stream-page .pk-card .pk-title a { color: inherit; }
.cr-stream-page .pk-card .pk-sub {
	padding: 0.15rem 0.65rem 0;
	font-size: 0.8rem;
}
.cr-stream-page .k-watch .pk-sub,
.cr-stream-page .k-listen .pk-sub,
.cr-stream-page .k-read .pk-sub,
.cr-stream-page .k-jam .pk-sub,
.cr-stream-page .k-play .pk-sub,
.cr-stream-page .k-review .pk-sub,
.cr-stream-page .k-wish .pk-sub,
.cr-stream-page .k-acquisition .pk-sub { color: rgba(251, 250, 245, 0.85); }
.cr-stream-page .pk-card .pk-stream-date time {
	display: inline-block;
	border: 1px solid rgba(251, 250, 245, 0.55);
	border-radius: 2px;
	padding: 0.15rem 0.35rem;
	font-family: var(--cr-font-accent, serif);
	font-size: max(0.6rem, var(--cr-text-floor, 0.7rem));
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
}
.cr-stream-page .pk-card .pk-stars {
	color: var(--cr-selective-yellow, #ffb703);
	padding: 0.3rem 0.65rem 0;
}
.cr-stream-page .pk-card .pk-meta { padding: 0.4rem 0.65rem 0.7rem; }
.cr-stream-page .pk-card .pk-excerpt { padding: 0.3rem 0.65rem 0; }
.cr-stream-page .pk-card .pk-link {
	font-family: var(--cr-font-accent, serif);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.cr-stream-page .k-watch .pk-link,
.cr-stream-page .k-listen .pk-link,
.cr-stream-page .k-play .pk-link { color: var(--cr-sky-blue, #8ecae6); }

/* Kind badge: small avatar pinned to the art, ivory ring. */
.cr-stream-page .pk-card .pk-badge {
	position: absolute;
	top: 0.55rem;
	left: 0.55rem;
	z-index: 2;
	box-shadow: 0 0 0 3px #fbfaf5;
}

/* Kind label → price sticker on the art (cover kinds only). */
.cr-stream-page .k-watch .pk-kindlabel,
.cr-stream-page .k-listen .pk-kindlabel,
.cr-stream-page .k-read .pk-kindlabel,
.cr-stream-page .k-jam .pk-kindlabel,
.cr-stream-page .k-play .pk-kindlabel,
.cr-stream-page .k-review .pk-kindlabel,
.cr-stream-page .k-wish .pk-kindlabel,
.cr-stream-page .k-acquisition .pk-kindlabel {
	position: absolute;
	top: 0.55rem;
	right: 0.55rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 3.4rem;
	height: 3.4rem;
	margin: 0;
	padding: 0.2rem;
	border-radius: 50%;
	background: var(--cr-selective-yellow, #ffb703);
	border: 2px solid var(--cr-ut-orange, #fb8500);
	box-shadow: 0 0 0 3px #fbfaf5;
	color: #023047;
	font-size: max(0.5rem, var(--cr-text-floor, 0.7rem));
	font-weight: 900;
	letter-spacing: 0.04em;
	text-align: center;
	line-height: 1.15;
	transform: rotate(8deg);
}

/* Wish: not yet mine. */
.cr-stream-page .k-wish .pk-media img { opacity: 0.75; }
.cr-stream-page .pk-card.k-wish { box-shadow: var(--cr-shadow-hard, 4px 4px 0 #241c4a); outline: 2px dashed rgba(251, 250, 245, 0.6); outline-offset: -6px; }

/* Shelf shadow under every cover box. */
.cr-stream-page .wp-block-post-template > li.kind-watch::after,
.cr-stream-page .wp-block-post-template > li.kind-listen::after,
.cr-stream-page .wp-block-post-template > li.kind-read::after,
.cr-stream-page .wp-block-post-template > li.kind-jam::after,
.cr-stream-page .wp-block-post-template > li.kind-play::after,
.cr-stream-page .wp-block-post-template > li.kind-review::after,
.cr-stream-page .wp-block-post-template > li.kind-wish::after,
.cr-stream-page .wp-block-post-template > li.kind-acquisition::after {
	content: "";
	display: block;
	height: 7px;
	margin: 3px 8px 0;
	background: radial-gradient(50% 100% at 50% 0, rgba(36, 28, 74, 0.35), transparent 70%);
}

/* No-art cover kinds → home-recorded cassette. */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)),
.cr-stream-page .pk-card.k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) {
	background: #1a1714;
	border-radius: 8px;
	overflow: visible;
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 #241c4a);
	padding: 0.7rem 0.7rem 3.6rem;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body {
	background: #fbfaf5;
	border-radius: 3px;
	padding: 0.55rem 0.7rem 0.5rem;
	background-image: repeating-linear-gradient(180deg, transparent 0, transparent calc(1.5em - 1px), rgba(36, 28, 74, 0.15) calc(1.5em - 1px), rgba(36, 28, 74, 0.15) 1.5em);
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title {
	color: #241c4a;
	font-family: var(--cr-font-display, cursive);
	font-size: 0.9rem;
	line-height: 1.5;
	padding: 0;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-sub,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-sub { color: #3d2f6e; padding: 0.15rem 0 0; }
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-stream-date time,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-stream-date time { border: 0; padding: 0; color: #3d2f6e; }
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::after,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::after {
	content: "";
	position: absolute;
	left: 1.2rem;
	right: 1.2rem;
	bottom: 0.8rem;
	height: 2.2rem;
	border: 1px solid #3a342f;
	border-radius: 999px;
	background:
		radial-gradient(circle 1.1rem at 1.4rem 50%, #0d0b09 40%, #3a342f 41% 100%, transparent 100%),
		radial-gradient(circle 1.1rem at calc(100% - 1.4rem) 50%, #0d0b09 40%, #3a342f 41% 100%, transparent 100%),
		linear-gradient(#3a342f, #3a342f) center / calc(100% - 5rem) 2px no-repeat;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-kindlabel,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-kindlabel {
	position: static;
	width: auto;
	height: auto;
	border-radius: 1px;
	background: none;
	border: 0;
	box-shadow: none;
	color: #3d2f6e;
	transform: none;
	font-size: max(0.55rem, var(--cr-text-floor, 0.7rem));
	letter-spacing: 0.2em;
	padding: 0;
	margin: 0 0 0.2rem;
	display: block;
}

/* ---- Scrap kinds: pinned paper ---- */
.cr-stream-page .pk-card.k-note,
.cr-stream-page .pk-card.k-article,
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-bookmark,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-recipe,
.cr-stream-page .pk-card.k-checkin {
	background: var(--cr-surface-elevated, #fff);
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
	padding: 0.9rem 1rem 1rem;
	width: 88%;
}
.cr-stream-page .wp-block-post-template > li:nth-child(even) .pk-card.k-note,
.cr-stream-page .wp-block-post-template > li:nth-child(even) .pk-card.k-like,
.cr-stream-page .wp-block-post-template > li:nth-child(even) .pk-card.k-reply,
.cr-stream-page .wp-block-post-template > li:nth-child(even) .pk-card.k-bookmark { margin-left: auto; }
.cr-stream-page .pk-card.k-note .pk-title,
.cr-stream-page .pk-card.k-article .pk-title,
.cr-stream-page .pk-card.k-reply .pk-title,
.cr-stream-page .pk-card.k-like .pk-title,
.cr-stream-page .pk-card.k-repost .pk-title,
.cr-stream-page .pk-card.k-bookmark .pk-title,
.cr-stream-page .pk-card.k-favorite .pk-title,
.cr-stream-page .pk-card.k-recipe .pk-title,
.cr-stream-page .pk-card.k-checkin .pk-title { padding: 0; font-size: 1rem; }
.cr-stream-page .pk-card.k-note .pk-badge,
.cr-stream-page .pk-card.k-article .pk-badge,
.cr-stream-page .pk-card.k-reply .pk-badge,
.cr-stream-page .pk-card.k-like .pk-badge,
.cr-stream-page .pk-card.k-repost .pk-badge,
.cr-stream-page .pk-card.k-bookmark .pk-badge,
.cr-stream-page .pk-card.k-favorite .pk-badge,
.cr-stream-page .pk-card.k-recipe .pk-badge,
.cr-stream-page .pk-card.k-checkin .pk-badge {
	position: absolute;
	top: -0.9rem;
	right: -0.6rem;
	box-shadow: 0 0 0 3px var(--cr-printer-ivory, #fbfaf5);
}
/* note: sticky */
.cr-stream-page .pk-card.k-note { background: var(--cr-tape, #f3e5b8); border-width: 0; box-shadow: var(--cr-shadow-hard, 4px 4px 0 rgba(36, 28, 74, 0.35)); }
/* bookmark: sky dog-ear */
.cr-stream-page .pk-card.k-bookmark::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	border-style: solid;
	border-width: 0 1.4rem 1.4rem 0;
	border-color: transparent var(--cr-sky-blue, #8ecae6) transparent transparent;
}
/* recipe: ruled index card, coral top rule */
.cr-stream-page .pk-card.k-recipe {
	border-top: 4px double #d9604f;
	background-image: repeating-linear-gradient(180deg, transparent 0, transparent calc(1.6em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) calc(1.6em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) 1.6em);
}

/* drink: coaster */
.cr-stream-page .pk-card.k-drink {
	background: var(--cr-light-orange, #fee2c3);
	border: 2px solid var(--cr-ink, #241c4a);
	border-radius: 50%;
	aspect-ratio: 1;
	width: min(15rem, 100%);
	margin-inline: auto;
	display: grid;
	place-content: center;
	text-align: center;
	padding: 1.4rem;
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
	overflow: hidden;
}
.cr-stream-page .k-drink .pk-title { color: #241c4a; padding: 0; font-size: 0.95rem; }
.cr-stream-page .k-drink .pk-sub { color: #126782; padding: 0; }
.cr-stream-page .k-drink .pk-badge { position: static; margin: 0 auto 0.25rem; }
.cr-stream-page .k-drink .pk-media { display: none; }
.cr-stream-page .k-drink::after {
	content: "";
	position: absolute;
	top: 0.6rem;
	right: 1.4rem;
	width: 2.4rem;
	height: 2.4rem;
	border: 5px solid rgba(168, 122, 69, 0.4);
	border-radius: 50%;
}

/* eat: polaroid */
.cr-stream-page .pk-card.k-eat {
	background: #fbfaf5;
	border: 0;
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
	padding: 0.7rem 0.7rem 0.9rem;
	width: 92%;
}
.cr-stream-page .k-eat .pk-media { order: -1; margin: 0 0 0.5rem; }
.cr-stream-page .k-eat .pk-media img { border-bottom: 0; aspect-ratio: 1; }
.cr-stream-page .k-eat .pk-title { color: #241c4a; font-family: var(--cr-font-display, cursive); font-size: 0.85rem; padding: 0; }
.cr-stream-page .k-eat .pk-sub { color: #126782; padding: 0.1rem 0 0; }
.cr-stream-page .k-eat .pk-kindlabel { display: none; }
.cr-stream-page .k-eat .pk-badge { position: absolute; top: auto; bottom: -0.8rem; left: 0.8rem; }

/* event: gig-poster crest */
.cr-stream-page .pk-card.k-event {
	background: #241c4a;
	color: #fbfaf5;
	text-align: center;
	padding: 1.6rem 1.1rem 2rem;
	border: 0;
	box-shadow: none;
	clip-path: polygon(0 5%, 50% 0, 100% 5%, 100% 84%, 50% 100%, 0 84%);
	filter: drop-shadow(4px 4px 0 var(--cr-hard-color, #241c4a));
}
.cr-stream-page .k-event .pk-title { color: #fbfaf5; padding: 0; }
.cr-stream-page .k-event .pk-stream-date time {
	border: 0;
	color: var(--cr-selective-yellow, #ffb703);
	font-size: 1.6rem;
	font-weight: 900;
	letter-spacing: 0.02em;
}
.cr-stream-page .k-event .pk-sub { color: var(--cr-sky-blue, #8ecae6); }
.cr-stream-page .k-event .pk-badge { position: static; margin: 0 auto 0.4rem; }

/* rsvp: the ticket (mask + drop-shadow so notches show paper) */
.cr-stream-page .pk-card.k-rsvp {
	filter: drop-shadow(4px 4px 0 var(--cr-hard-color, #241c4a));
	transform: rotate(var(--cr-rotate-1, -1.2deg));
}
.cr-stream-page .k-rsvp .pk-body {
	background: var(--cr-surface-elevated, #fff);
	padding: 1rem 6rem 1rem 1.1rem;
	position: relative;
	-webkit-mask:
		radial-gradient(circle 12px at 72% 0, transparent 98%, #000 100%) top / 100% 51% no-repeat,
		radial-gradient(circle 12px at 72% 100%, transparent 98%, #000 100%) bottom / 100% 51% no-repeat;
	mask:
		radial-gradient(circle 12px at 72% 0, transparent 98%, #000 100%) top / 100% 51% no-repeat,
		radial-gradient(circle 12px at 72% 100%, transparent 98%, #000 100%) bottom / 100% 51% no-repeat;
}
.cr-stream-page .k-rsvp .pk-body::after {
	content: "";
	position: absolute;
	left: 72%;
	top: 10px;
	bottom: 10px;
	border-left: 2px dashed rgba(36, 28, 74, 0.35);
}
.cr-stream-page .k-rsvp .pk-title { padding: 0; font-size: 1rem; }
.cr-stream-page .k-rsvp .pk-kindlabel { position: static; width: auto; height: auto; border-radius: 1px; background: var(--cr-tape, #f3e5b8); border: 0; box-shadow: none; color: var(--cr-tape-ink, #241c4a); transform: rotate(-2deg); padding: 0.1rem 0.4rem; display: inline-block; }

/* dark-mode hard-shadow color for the drop-shadow() cases */
:root { --cr-hard-color: #241c4a; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --cr-hard-color: #ffb703; } }

/* ---- v0.5.215: close the gap to Stream.dc.html (Courtney's compare) ---- */

/* The collage needs the full 72rem stage, not the page's prose column. */
.cr-stream-page .cr-page__content,
.cr-stream-page .cr-page__content > .wp-block-query {
	max-width: min(72rem, 94vw) !important;
	margin-inline: auto;
}

/* Titles: never underlined on stream cards; covers carry no read-more. */
.cr-stream-page .pk-card .pk-title a { text-decoration: none; }
.cr-stream-page .pk-card .more-link,
.cr-stream-page .pk-card .wp-block-read-more,
.cr-stream-page .pk-card .pk-meta .pk-link:not([target="_blank"]) { display: none; }

/* Embedded video/audio counts as the cover art: pull it to the top,
   full bleed, and DON'T treat the card as artless. */
.cr-stream-page .pk-card .pk-embed {
	order: -1;
	margin: 0;
	border-radius: 0;
	border-bottom: 2px solid rgba(251, 250, 245, 0.7);
}

/* Badge only pins over actual art; on artless boxes it collided with
   the title — hide it there (the sticker still names the kind). */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-badge,
.cr-stream-page .pk-card.k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-badge,
.cr-stream-page .pk-card.k-read:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-badge,
.cr-stream-page .pk-card.k-jam:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-badge,
.cr-stream-page .pk-card.k-play:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-badge,
.cr-stream-page .pk-card.k-review:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-badge,
.cr-stream-page .pk-card.k-wish:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-badge,
.cr-stream-page .pk-card.k-acquisition:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-badge { display: none; }

/* Artless boxes also give the title room where the sticker sits. */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title,
.cr-stream-page .pk-card.k-jam:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title,
.cr-stream-page .pk-card.k-acquisition:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title,
.cr-stream-page .pk-card.k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title { padding: 0.9rem 4.4rem 0 0.65rem; }

/* Sticker: long kind names (acquisition, review) must fit the circle. */
.cr-stream-page .pk-card .pk-kindlabel {
	font-size: max(0.42rem, var(--cr-text-floor, 0.7rem));
	letter-spacing: 0.02em;
	line-height: 1.1;
	overflow: hidden;
	overflow-wrap: anywhere;
}

/* Cassette fallback fires ONLY when there is neither image nor embed. */

/* ---- v0.5.218: readability + empty-item fixes ---- */

/* Body text on the violet boxes must be ivory, not cerulean. */
.cr-stream-page .k-watch .pk-excerpt,
.cr-stream-page .k-listen .pk-excerpt,
.cr-stream-page .k-read .pk-excerpt,
.cr-stream-page .k-jam .pk-excerpt,
.cr-stream-page .k-play .pk-excerpt,
.cr-stream-page .k-review .pk-excerpt,
.cr-stream-page .k-wish .pk-excerpt,
.cr-stream-page .k-acquisition .pk-excerpt,
.cr-stream-page .k-event .pk-excerpt { color: rgba(251, 250, 245, 0.88); }

/* Kill every underline-ish treatment on stream card titles. */
.cr-stream-page .pk-card .pk-title a {
	text-decoration: none !important;
	border-bottom: 0 !important;
	box-shadow: none !important;
}

/* A stream item that produced no card and no content renders as a
   stray sliver — hide it entirely. */
.cr-stream-page .wp-block-post-template > li:not(:has(article)):not(:has(p)):not(:has(figure)):not(:has(img)) { display: none; }

/* ---- v0.5.219: Courtney's review round 2 ---- */

/* 1. No yellow circle stickers anywhere — the card's physical form and
   badge icon carry the kind. (Cassette keeps its printed label header,
   which is part of the tape, not a sticker.) */
.cr-stream-page .k-watch .pk-kindlabel,
.cr-stream-page .k-listen .pk-kindlabel,
.cr-stream-page .k-read .pk-kindlabel,
.cr-stream-page .k-jam .pk-kindlabel,
.cr-stream-page .k-play .pk-kindlabel,
.cr-stream-page .k-review .pk-kindlabel,
.cr-stream-page .k-wish .pk-kindlabel,
.cr-stream-page .k-acquisition .pk-kindlabel { display: none; }
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-kindlabel,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-kindlabel { display: block; text-align: center; }

/* 2. No list bullets/sparkle markers on stream items. */
.cr-stream-page .wp-block-post-template > li { list-style: none; }
.cr-stream-page .wp-block-post-template > li::marker { content: none; }
.cr-stream-page .wp-block-post-template > li::before { content: none; }

/* 3. Card links (IMDb, Listen, …): boxed badges, never underlined. */
.cr-stream-page .pk-card .pk-meta a,
.cr-stream-page .pk-card .pk-link {
	text-decoration: none !important;
	border-bottom: 0 !important;
	display: inline-block;
	border: 1px solid rgba(251, 250, 245, 0.55);
	border-radius: 2px;
	padding: 0.15rem 0.4rem;
}
.cr-stream-page .pk-card.k-note .pk-meta a,
.cr-stream-page .pk-card.k-checkin .pk-meta a,
.cr-stream-page .pk-card.k-eat .pk-meta a,
.cr-stream-page .pk-card.k-drink .pk-meta a,
.cr-stream-page .pk-card.k-recipe .pk-meta a { border-color: rgba(36, 28, 74, 0.35); }

/* 4. The cassette actually shapes like a tape: wide shell, label on the
   upper face with a punched window showing the two hubs, printed edge
   line at the bottom. */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)),
.cr-stream-page .pk-card.k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) {
	aspect-ratio: 1.58 / 1;
	width: 100%;
	display: flex;
	flex-direction: column;
	padding: 0.55rem 0.55rem 2.9rem;
	border-radius: 10px;
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 #241c4a),
		inset 0 0 0 1px rgba(251, 250, 245, 0.08);
	overflow: hidden;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body {
	flex: 1;
	border-radius: 4px 4px 10px 10px;
	overflow: hidden;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title { font-size: 0.85rem; line-height: 1.4; }
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::after,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::after {
	left: 50%;
	transform: translateX(-50%);
	width: 62%;
	right: auto;
	bottom: 0.55rem;
	height: 2rem;
	background:
		radial-gradient(circle 0.85rem at 1.1rem 50%, #0d0b09 44%, #3a342f 46% 98%, transparent 100%),
		radial-gradient(circle 0.85rem at calc(100% - 1.1rem) 50%, #0d0b09 44%, #3a342f 46% 98%, transparent 100%),
		linear-gradient(#3a342f, #3a342f) center / calc(100% - 4rem) 2px no-repeat,
		#241f1b;
	border: 1px solid #3a342f;
	border-radius: 6px;
}
/* corner screws */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::before,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle 3px at 10px 10px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 10px) 10px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at 10px calc(100% - 10px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 10px) calc(100% - 10px), #3a342f 98%, transparent);
	opacity: 1;
	border-radius: inherit;
}

/* ---- v0.5.221: fidelity pass against Stream.dc.html exact recipes ---- */

/* Container: the mock's 19rem columns and per-tier margins. */
.cr-stream-page .wp-block-post-template { columns: 19rem; }
.cr-stream-page .wp-block-post-template > li { margin: 0.7rem 0 2.8rem; }

/* Cover caption row: badge becomes a small boxed emblem in the band
   (bottom-left), date box sits beside it; scanlines on the band. */
.cr-stream-page .k-watch .pk-badge,
.cr-stream-page .k-listen .pk-badge,
.cr-stream-page .k-read .pk-badge,
.cr-stream-page .k-jam .pk-badge,
.cr-stream-page .k-play .pk-badge,
.cr-stream-page .k-review .pk-badge,
.cr-stream-page .k-wish .pk-badge,
.cr-stream-page .k-acquisition .pk-badge {
	top: auto;
	bottom: 0.7rem;
	left: 0.65rem;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 3px;
	background: transparent;
	border: 1px solid rgba(251, 250, 245, 0.55);
	color: #fbfaf5;
	box-shadow: none;
}
.cr-stream-page .k-watch .pk-body,
.cr-stream-page .k-listen .pk-body,
.cr-stream-page .k-read .pk-body,
.cr-stream-page .k-jam .pk-body,
.cr-stream-page .k-play .pk-body,
.cr-stream-page .k-review .pk-body,
.cr-stream-page .k-wish .pk-body,
.cr-stream-page .k-acquisition .pk-body {
	background-image: repeating-linear-gradient(0deg, transparent 0 2px, rgba(251, 250, 245, 0.05) 2px 3px);
	padding-bottom: 0.7rem;
}
.cr-stream-page .k-watch .pk-stream-date,
.cr-stream-page .k-listen .pk-stream-date,
.cr-stream-page .k-read .pk-stream-date,
.cr-stream-page .k-jam .pk-stream-date,
.cr-stream-page .k-play .pk-stream-date,
.cr-stream-page .k-review .pk-stream-date,
.cr-stream-page .k-wish .pk-stream-date,
.cr-stream-page .k-acquisition .pk-stream-date { margin-left: 3rem; min-height: 1.9rem; display: flex; align-items: center; }

/* Paper clippings (reply/like/repost/favorite/article): ruled paper,
   torn zigzag bottom, pushpin, drop-shadow instead of box-shadow
   (box-shadow dies under clip-path), stronger scrap tilt, 80% width. */
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-article {
	width: 80%;
	box-shadow: none;
	filter: drop-shadow(4px 4px 0 var(--cr-hard-color, #241c4a));
	transform: rotate(var(--cr-rotate-neg, -2.5deg));
	padding: 1.2rem 1.15rem 1.6rem;
	background-image: repeating-linear-gradient(180deg, transparent 0, transparent calc(1.55em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) calc(1.55em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) 1.55em);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), 92% 100%, 84% calc(100% - 6px), 75% 100%, 66% calc(100% - 9px), 57% 100%, 48% calc(100% - 6px), 39% 100%, 30% calc(100% - 9px), 21% 100%, 13% calc(100% - 6px), 6% 100%, 0 calc(100% - 8px));
}
.cr-stream-page .pk-card.k-reply::before,
.cr-stream-page .pk-card.k-like::before,
.cr-stream-page .pk-card.k-repost::before,
.cr-stream-page .pk-card.k-favorite::before,
.cr-stream-page .pk-card.k-article::before,
.cr-stream-page .pk-card.k-note::before {
	content: "";
	position: absolute;
	top: 0.35rem;
	left: 50%;
	margin-left: -0.45rem;
	width: 0.9rem;
	height: 0.9rem;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #7cc1d4, var(--cr-cerulean, #126782) 75%);
	box-shadow: 0 2px 3px rgba(36, 28, 74, 0.45);
	pointer-events: none;
	z-index: 4;
	inset-block-start: 0.35rem;
	opacity: 1;
}
.cr-stream-page .pk-card.k-reply .pk-badge,
.cr-stream-page .pk-card.k-like .pk-badge,
.cr-stream-page .pk-card.k-repost .pk-badge,
.cr-stream-page .pk-card.k-favorite .pk-badge,
.cr-stream-page .pk-card.k-article .pk-badge { display: none; }
/* like: the orange heart doodle */
.cr-stream-page .pk-card.k-like::after {
	content: "♥";
	position: absolute;
	top: 0.8rem;
	right: 0.9rem;
	color: var(--cr-ut-orange, #fb8500);
	font-family: var(--cr-font-accent, serif);
	font-size: 1.6rem;
	line-height: 1;
	transform: rotate(10deg);
}
/* note: sticky with a folded corner (pushpin shared above) */
.cr-stream-page .pk-card.k-note { width: 80%; transform: rotate(var(--cr-rotate-2, 1.5deg)); }
.cr-stream-page .pk-card.k-note::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	border-style: solid;
	border-width: 0 0 1.1rem 1.1rem;
	border-color: transparent transparent rgba(36, 28, 74, 0.18) transparent;
}
.cr-stream-page .pk-card.k-note .pk-badge { display: none; }

/* Stream masthead garnish: postmark + airmail edge, like the mock. */
.cr-stream-page .cr-page__header { position: relative; }
.cr-stream-page .cr-page__header::before {
	content: "courtneyr.dev · by air mail" / "";
	position: absolute;
	top: -0.5rem;
	right: 1rem;
	width: 6.5rem;
	height: 6.5rem;
	border: 2px solid var(--cr-ink, #241c4a);
	border-radius: 50%;
	display: grid;
	place-items: center;
	text-align: center;
	padding: 0.6rem;
	font-family: var(--cr-font-accent, serif);
	font-size: max(0.55rem, var(--cr-text-floor, 0.7rem));
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.13em;
	color: var(--cr-ink, #241c4a);
	opacity: 0.6;
	transform: rotate(-9deg);
	pointer-events: none;
}
.cr-stream-page .cr-page__header::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1rem;
	height: 8px;
	background: repeating-linear-gradient(-45deg, var(--cr-ut-orange, #fb8500) 0 10px, transparent 10px 20px, var(--cr-cerulean, #126782) 20px 30px, transparent 30px 40px);
	opacity: 0.75;
	pointer-events: none;
}
@media (max-width: 44rem) {
	.cr-stream-page .cr-page__header::before { display: none; }
}

/* ---- v0.5.222: restore the round post-format icon badges ----
   The boxed caption emblem collided with the meta link badges (IMDb).
   Back to the circle avatar pinned top-left on the art. */
.cr-stream-page .k-watch .pk-badge,
.cr-stream-page .k-listen .pk-badge,
.cr-stream-page .k-read .pk-badge,
.cr-stream-page .k-jam .pk-badge,
.cr-stream-page .k-play .pk-badge,
.cr-stream-page .k-review .pk-badge,
.cr-stream-page .k-wish .pk-badge,
.cr-stream-page .k-acquisition .pk-badge {
	top: 0.55rem;
	bottom: auto;
	left: 0.55rem;
	width: var(--pk-badge, 34px);
	height: var(--pk-badge, 34px);
	border-radius: 50%;
	border: 0;
	background: var(--pk-kind, #241c4a);
	color: var(--pk-badge-ink, #fff);
	box-shadow: 0 0 0 3px #fbfaf5;
}
.cr-stream-page .k-watch .pk-stream-date,
.cr-stream-page .k-listen .pk-stream-date,
.cr-stream-page .k-read .pk-stream-date,
.cr-stream-page .k-jam .pk-stream-date,
.cr-stream-page .k-play .pk-stream-date,
.cr-stream-page .k-review .pk-stream-date,
.cr-stream-page .k-wish .pk-stream-date,
.cr-stream-page .k-acquisition .pk-stream-date {
	margin-left: 0;
	min-height: 0;
	display: block;
}

/* ---- v0.5.223: cassette anatomy matched to a real tape (TDK ref) ----
   Top label strip only; centered recessed hub window with WHITE hubs
   and a dark tape window between them; gold stripe below; corner
   screws. Applies to artless watch/listen. */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)),
.cr-stream-page .pk-card.k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) {
	padding: 0.6rem 0.9rem;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body {
	flex: none;
	height: 44%;
	border-radius: 3px;
	padding: 0.35rem 0.6rem;
	overflow: hidden;
	background-image: repeating-linear-gradient(180deg, transparent 0, transparent calc(1.3em - 1px), rgba(36, 28, 74, 0.15) calc(1.3em - 1px), rgba(36, 28, 74, 0.15) 1.3em);
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title {
	font-size: 0.78rem;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-kindlabel,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-kindlabel {
	display: inline-block;
	text-align: left;
	border: 1.5px solid #241c4a;
	border-radius: 2px;
	padding: 0 0.3rem;
	font-size: max(0.48rem, var(--cr-text-floor, 0.7rem));
	letter-spacing: 0.14em;
	margin: 0 0 0.1rem;
	color: #241c4a;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-excerpt,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-excerpt,
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-meta,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-meta,
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-stars,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-stars { display: none; }

/* Hub window: centered, recessed, white hubs, dark tape window. */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::after,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::after {
	top: 52%;
	bottom: auto;
	left: 50%;
	transform: translateX(-50%);
	width: 58%;
	height: 26%;
	background:
		radial-gradient(circle 0.7rem at 17% 50%, #0d0b09 32%, #e8e5dc 34% 86%, #3a342f 88% 100%, transparent 100%),
		radial-gradient(circle 0.7rem at 83% 50%, #0d0b09 32%, #e8e5dc 34% 86%, #3a342f 88% 100%, transparent 100%),
		linear-gradient(#100e0c, #100e0c) center / 34% 62% no-repeat,
		#332e28;
	border: 1px solid #3a342f;
	border-radius: 7px;
}

/* Gold stripe + corner screws share the ::before layer. */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::before,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::before {
	background:
		radial-gradient(circle 3px at 11px 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at 11px calc(100% - 9px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) calc(100% - 9px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at 50% calc(100% - 9px), #3a342f 98%, transparent),
		linear-gradient(90deg, #c9b06a, #e6d194 35%, #c9b06a 70%, #b89d55) left 0.9rem top 84% / calc(100% - 1.8rem) 9% no-repeat;
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
}

/* ---- v0.5.224: drop the masthead postmark + airmail stripe ---- */
.cr-stream-page .cr-page__header::before,
.cr-stream-page .cr-page__header::after { content: none; display: none; }

/* ---- v0.5.225: cassette hub wheels + label fit ---- */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::after,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::after {
	height: 30%;
	background:
		/* left hub teeth notches */
		radial-gradient(circle 0.09rem at calc(1.55rem + 0.5rem) 50%, #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at calc(1.55rem - 0.5rem) 50%, #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at 1.55rem calc(50% + 0.5rem), #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at 1.55rem calc(50% - 0.5rem), #8f887a 98%, transparent),
		/* right hub teeth notches */
		radial-gradient(circle 0.09rem at calc(100% - 1.55rem + 0.5rem) 50%, #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at calc(100% - 1.55rem - 0.5rem) 50%, #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at calc(100% - 1.55rem) calc(50% + 0.5rem), #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at calc(100% - 1.55rem) calc(50% - 0.5rem), #8f887a 98%, transparent),
		/* left hub: hole + wide white ring + rim */
		radial-gradient(circle 1rem at 1.55rem 50%, #0d0b09 34%, #ece8dd 36% 88%, #3a342f 90% 100%, transparent 100%),
		/* right hub */
		radial-gradient(circle 1rem at calc(100% - 1.55rem) 50%, #0d0b09 34%, #ece8dd 36% 88%, #3a342f 90% 100%, transparent 100%),
		/* tape window between hubs */
		linear-gradient(#100e0c, #100e0c) center / 30% 58% no-repeat,
		#332e28;
}
/* Label fits its two title lines plus the date without clipping. */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body { height: 46%; }
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title { font-size: 0.72rem; line-height: 1.25; }

/* ---- v0.5.226: cassette proportions matched to the TDK reference ----
   One small handwriting row (side-box + single ruled line + tiny date
   in the N.R. corner); the big white label wraps AROUND the punched
   hub window; gold stripe sits below the label. */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body {
	height: 60%;
	background: #f6f3ea;
	background-image: none;
	position: relative;
	padding: 0.35rem 0.55rem;
	border-radius: 4px;
	overflow: visible;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-kindlabel,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-kindlabel {
	position: absolute;
	top: 0.35rem;
	left: 0.55rem;
	margin: 0;
	width: auto;
	max-width: max-content;
	font-size: max(0.42rem, var(--cr-text-floor, 0.7rem));
	padding: 0.1rem 0.25rem;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title {
	display: block;
	margin: 0.1rem 3.2rem 0 2.9rem;
	font-size: 0.68rem;
	line-height: 1.5;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	-webkit-line-clamp: unset;
	line-clamp: unset;
	border-bottom: 1.5px solid rgba(36, 28, 74, 0.45);
	padding: 0 0 0.1rem;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-stream-date,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-stream-date {
	position: absolute;
	top: 0.42rem;
	right: 0.55rem;
	margin: 0;
	padding: 0;
	font-size: max(0.48rem, var(--cr-text-floor, 0.7rem));
}
/* Window: punched inside the label's lower half, hubs at its ends. */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::after,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::after {
	top: 30%;
	height: 32%;
	width: 54%;
	z-index: 2;
	background:
		radial-gradient(circle 0.09rem at calc(1.7rem + 0.52rem) 50%, #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at calc(1.7rem - 0.52rem) 50%, #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at 1.7rem calc(50% + 0.52rem), #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at 1.7rem calc(50% - 0.52rem), #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at calc(100% - 1.7rem + 0.52rem) 50%, #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at calc(100% - 1.7rem - 0.52rem) 50%, #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at calc(100% - 1.7rem) calc(50% + 0.52rem), #8f887a 98%, transparent),
		radial-gradient(circle 0.09rem at calc(100% - 1.7rem) calc(50% - 0.52rem), #8f887a 98%, transparent),
		radial-gradient(circle 1.02rem at 1.7rem 50%, #0d0b09 33%, #ece8dd 35% 87%, #3a342f 89% 100%, transparent 100%),
		radial-gradient(circle 1.02rem at calc(100% - 1.7rem) 50%, #0d0b09 33%, #ece8dd 35% 87%, #3a342f 89% 100%, transparent 100%),
		linear-gradient(#100e0c, #100e0c) center / 26% 56% no-repeat,
		#332e28;
}
/* Gold stripe below the label. */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::before,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::before {
	background:
		radial-gradient(circle 3px at 11px 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at 11px calc(100% - 9px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) calc(100% - 9px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at 50% calc(100% - 9px), #3a342f 98%, transparent),
		linear-gradient(90deg, #c9b06a, #e6d194 35%, #c9b06a 70%, #b89d55) left 0.55rem top 76% / calc(100% - 1.1rem) 9% no-repeat;
	background-repeat: no-repeat;
}

/* ---- v0.5.227: kill caption scanlines; play kind gets its meeple ---- */
.cr-stream-page .k-watch .pk-body,
.cr-stream-page .k-listen .pk-body,
.cr-stream-page .k-read .pk-body,
.cr-stream-page .k-jam .pk-body,
.cr-stream-page .k-play .pk-body,
.cr-stream-page .k-review .pk-body,
.cr-stream-page .k-wish .pk-body,
.cr-stream-page .k-acquisition .pk-body { background-image: none; }

/* Play: orange meeple inline before the title, badge-boxed sub rows. */
.cr-stream-page .k-play .pk-title::before {
	content: "";
	display: inline-block;
	width: 0.95rem;
	height: 1.05rem;
	margin-right: 0.45rem;
	vertical-align: -0.12rem;
	background-color: var(--cr-ut-orange, #fb8500);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c-2.2 0-4 1.8-4 4 0 1.2.6 2.3 1.4 3-2.6 1-5.4 3.4-5.4 5.5 0 1 .8 1.5 1.7 1.5h2.6l-2.2 4.6c-.4.9.2 1.9 1.2 1.9h9.4c1 0 1.6-1 1.2-1.9L15.7 16h2.6c.9 0 1.7-.5 1.7-1.5 0-2.1-2.8-4.5-5.4-5.5.8-.7 1.4-1.8 1.4-3 0-2.2-1.8-4-4-4z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c-2.2 0-4 1.8-4 4 0 1.2.6 2.3 1.4 3-2.6 1-5.4 3.4-5.4 5.5 0 1 .8 1.5 1.7 1.5h2.6l-2.2 4.6c-.4.9.2 1.9 1.2 1.9h9.4c1 0 1.6-1 1.2-1.9L15.7 16h2.6c.9 0 1.7-.5 1.7-1.5 0-2.1-2.8-4.5-5.4-5.5.8-.7 1.4-1.8 1.4-3 0-2.2-1.8-4-4-4z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cr-stream-page .k-play .pk-sub {
	display: inline-block;
	border: 1px solid rgba(251, 250, 245, 0.55);
	border-radius: 2px;
	padding: 0.12rem 0.35rem;
	margin: 0.3rem 0 0 0.65rem;
	font-family: var(--cr-font-accent, serif);
	font-size: max(0.6rem, var(--cr-text-floor, 0.7rem));
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* ---- v0.5.228: drink coaster matched to the mock ---- */
.cr-stream-page .pk-card.k-drink { overflow: visible; }
.cr-stream-page .k-drink .pk-kindlabel,
.cr-stream-page .k-drink .pk-stars,
.cr-stream-page .k-drink .pk-note,
.cr-stream-page .k-drink .pk-excerpt { display: none; }
.cr-stream-page .k-drink .pk-badge {
	position: static;
	margin: 0 auto 0.2rem;
	width: 1.7rem;
	height: 1.7rem;
	background: transparent;
	color: #241c4a;
	box-shadow: none;
	border: 0;
}
.cr-stream-page .k-drink .pk-title { font-family: var(--cr-font-accent, serif); font-weight: 800; }
.cr-stream-page .k-drink .pk-sub,
.cr-stream-page .k-drink .pk-meta,
.cr-stream-page .k-drink .pk-meta a,
.cr-stream-page .k-drink .pk-link {
	font-family: var(--cr-font-accent, serif);
	font-size: max(0.62rem, var(--cr-text-floor, 0.7rem));
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--cr-cerulean, #126782);
	border: 0 !important;
	border-radius: 0;
	padding: 0;
	display: inline;
}
.cr-stream-page .k-drink .pk-stream-date { display: block; margin-top: 0.15rem; }
.cr-stream-page .k-drink .pk-stream-date time { border: 0; padding: 0; color: var(--cr-cerulean, #126782); }
/* photo, when present: a small circle chip overlapping the rim */
.cr-stream-page .k-drink .pk-media,
.cr-stream-page .k-drink .pk-embed--photo {
	display: block;
	position: absolute;
	top: -0.4rem;
	left: -0.4rem;
	width: 4.5rem;
	height: 4.5rem;
	margin: 0;
	border-radius: 50%;
	overflow: hidden;
	border: 2px solid #241c4a;
	z-index: 2;
}
.cr-stream-page .k-drink .pk-media img,
.cr-stream-page .k-drink .pk-embed--photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
	box-shadow: none;
	aspect-ratio: auto;
}

/* ---- v0.5.229: remove shelf shadows ---- */
.cr-stream-page .wp-block-post-template > li.kind-watch::after,
.cr-stream-page .wp-block-post-template > li.kind-listen::after,
.cr-stream-page .wp-block-post-template > li.kind-read::after,
.cr-stream-page .wp-block-post-template > li.kind-jam::after,
.cr-stream-page .wp-block-post-template > li.kind-play::after,
.cr-stream-page .wp-block-post-template > li.kind-review::after,
.cr-stream-page .wp-block-post-template > li.kind-wish::after,
.cr-stream-page .wp-block-post-template > li.kind-acquisition::after { content: none; }

/* ============================================================
   v0.5.230 — the dropped threads, shipped:
   photo polaroid w/ anchor corners; reply quote rail + TO-author
   header; play dashed art inset; event kicker; hand-drawn margin
   doodles + glyphs on the stream collage.
   ============================================================ */

/* PHOTO: polaroid pasted with violet anchor corners. */
.cr-stream-page .pk-card.k-photo,
.cr-stream-page .wp-block-post-template > li.kind-photo .pk-card {
	background:
		linear-gradient(135deg, #241c4a 12px, transparent 12px) top left,
		linear-gradient(225deg, #241c4a 12px, transparent 12px) top right,
		linear-gradient(45deg, #241c4a 12px, transparent 12px) bottom left,
		linear-gradient(315deg, #241c4a 12px, transparent 12px) bottom right,
		#fbfaf5;
	background-repeat: no-repeat;
	border: 0;
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 #241c4a);
	padding: 1.1rem 1.1rem 1rem;
	width: 94%;
}
.cr-stream-page .kind-photo .pk-card .pk-media,
.cr-stream-page .kind-photo .pk-card .pk-embed,
.cr-stream-page .kind-photo .pk-card figure.wp-block-image {
	order: -1;
	margin: 0 0 0.6rem;
}
.cr-stream-page .kind-photo .pk-card img,
.cr-stream-page .kind-photo .pk-card figure.wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border: 2px dashed rgba(36, 28, 74, 0.45);
	box-shadow: none;
	display: block;
}
.cr-stream-page .kind-photo .pk-card .pk-title,
.cr-stream-page .kind-photo .pk-card .pk-excerpt {
	font-family: var(--cr-font-display, cursive);
	font-size: 0.9rem;
	color: #241c4a;
	padding: 0;
}
.cr-stream-page .kind-photo .pk-card .pk-kindlabel { display: none; }
.cr-stream-page .kind-photo .pk-card .pk-badge { position: absolute; bottom: 0.9rem; left: 1.1rem; top: auto; }

/* REPLY: "to @author" header + railed clipped quote. */
.cr-stream-page .k-reply .p-author {
	display: block;
	font-family: var(--cr-font-accent, serif);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--cr-cerulean, #126782);
	margin: 0 0 0.5rem;
}
.cr-stream-page .k-reply .p-author::before { content: "💬 to "; }
.cr-stream-page .k-reply .pk-note,
.cr-stream-page .k-reply .pk-sub {
	display: block;
	background: var(--cr-surface-soft, #f4f0e4);
	border-left: 4px solid var(--cr-type-reply, #126782);
	padding: 0.6rem 0.75rem;
	margin: 0 0 0.6rem;
	font-family: var(--cr-font-accent, serif);
	font-style: italic;
	font-size: 0.85rem;
	color: var(--cr-ink, #241c4a);
}
.cr-stream-page .k-reply .pk-title { font-size: 0; padding: 0; }

/* PLAY: dashed inset on the box art, like the mock. */
.cr-stream-page .k-play .pk-media img { outline: 2px dashed rgba(251, 250, 245, 0.45); outline-offset: -8px; }

/* EVENT: "upcoming" kicker from the kind label. */
.cr-stream-page .k-event .pk-kindlabel {
	display: block;
	position: static;
	width: auto;
	height: auto;
	margin: 0 0 0.3rem;
	padding: 0;
	background: none;
	border: 0;
	box-shadow: none;
	transform: none;
	color: var(--cr-sky-blue, #8ecae6);
	font-size: max(0.62rem, var(--cr-text-floor, 0.7rem));
	letter-spacing: 0.18em;
	text-align: center;
}

/* MARGIN DOODLES: hand-drawn squiggle arrow, heart, wave, sparkles,
   dotted circle — scattered in the collage margins, aria-invisible. */
.cr-stream-page .cr-page__content {
	position: relative;
}
.cr-stream-page .cr-page__content::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 50' fill='none'%3E%3Cpath d='M4 40 C 14 8, 26 6, 32 22 C 36 33, 28 40, 22 34 C 16 28, 26 12, 44 12 C 60 12, 66 26, 60 36 C 56 43, 46 40, 48 30' stroke='%23126782' stroke-width='2.5' stroke-linecap='round'/%3E%3Cpath d='M62 30 l 14 6 m -3 -9 l 3 9 l -9 2' stroke='%23126782' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none'%3E%3Cpath d='M30 46 C 12 34, 8 20, 16 14 C 22 9, 29 13, 30 19 C 31 13, 38 9, 44 14 C 52 20, 48 34, 30 46 Z' stroke='%23fb8500' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 34' fill='none'%3E%3Cpath d='M4 26 c 10 -14, 16 -14, 20 -2 c 3 9, 12 9, 16 -2 c 4 -11, 12 -11, 16 0 c 3 9, 12 9, 18 -4' stroke='%23fb8500' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%238ecae6' d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6z'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fb8500' d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6z'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none'%3E%3Ccircle cx='20' cy='20' r='16' stroke='%23b85f00' stroke-width='2.5' stroke-dasharray='4 5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 5rem 3rem, 3.5rem 3.5rem, 5rem 2rem, 1.3rem 1.3rem, 1rem 1rem, 2.2rem 2.2rem;
	background-position:
		left 0.5% top 7rem,
		right 1% top 34rem,
		left 1% top 58rem,
		right 0.6% top 22rem,
		left 3% top 40rem,
		right 1.5% bottom 10rem;
	opacity: 0.65;
}
.cr-stream-page .wp-block-post-template,
.cr-stream-page .cr-page__content > .wp-block-query { position: relative; z-index: 1; }

/* ---- v0.5.231: cassette precision pass against the TDK photo ---- */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body { height: 62%; }
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title { margin-right: 2.6rem; }
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-stream-date,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-stream-date { font-size: max(0.42rem, var(--cr-text-floor, 0.7rem)); top: 0.5rem; right: 0.5rem; }

/* Window: narrower, hubs hugging its ends, layered tape between. */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::after,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::after {
	top: 32%;
	height: 27%;
	width: 46%;
	background:
		/* left hub teeth (8 around the hole) */
		radial-gradient(circle 0.08rem at calc(20% + 0.42rem) 50%, #9a9384 98%, transparent),
		radial-gradient(circle 0.08rem at calc(20% - 0.42rem) 50%, #9a9384 98%, transparent),
		radial-gradient(circle 0.08rem at 20% calc(50% + 0.42rem), #9a9384 98%, transparent),
		radial-gradient(circle 0.08rem at 20% calc(50% - 0.42rem), #9a9384 98%, transparent),
		/* right hub teeth */
		radial-gradient(circle 0.08rem at calc(80% + 0.42rem) 50%, #9a9384 98%, transparent),
		radial-gradient(circle 0.08rem at calc(80% - 0.42rem) 50%, #9a9384 98%, transparent),
		radial-gradient(circle 0.08rem at 80% calc(50% + 0.42rem), #9a9384 98%, transparent),
		radial-gradient(circle 0.08rem at 80% calc(50% - 0.42rem), #9a9384 98%, transparent),
		/* hubs: big white gears close to the window ends */
		radial-gradient(circle 1.05rem at 20% 50%, #17140f 30%, #f2efe6 32% 90%, #3a342f 92% 100%, transparent 100%),
		radial-gradient(circle 1.05rem at 80% 50%, #17140f 30%, #f2efe6 32% 90%, #3a342f 92% 100%, transparent 100%),
		/* layered tape view between the hubs */
		repeating-linear-gradient(180deg, #23201a 0 2px, #14110d 2px 4px) center / 24% 58% no-repeat,
		#17140f;
	border-radius: 6px;
}

/* Gold stripe rides directly under the window. */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::before,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed))::before {
	background:
		radial-gradient(circle 3px at 11px 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at 11px calc(100% - 9px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) calc(100% - 9px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at 50% calc(100% - 9px), #3a342f 98%, transparent),
		linear-gradient(90deg, #c9b06a, #e6d194 35%, #c9b06a 70%, #b89d55) left 0.55rem top 68% / calc(100% - 1.1rem) 8% no-repeat;
	background-repeat: no-repeat;
}

/* ---- v0.5.232: stream masthead words + the rest of the margin furniture ---- */

/* The template's plain page header steps aside for the content masthead. */
.cr-stream-page .cr-page__header { display: none; }
.cr-stream-page .cr-stream__masthead { margin: 2.5rem auto 0.5rem; max-width: min(72rem, 94vw); }
.cr-stream-page .cr-stream__eyebrow { margin: 0 0 0.3rem; }
.cr-stream-page .cr-stream__title {
	font-family: var(--cr-font-display, cursive);
	font-size: clamp(2rem, 5vw, 2.9rem);
	color: var(--cr-ink, #241c4a);
	margin: 0 0 0.6rem;
	text-transform: lowercase;
}
.cr-stream-page .cr-stream__lede {
	font-family: var(--cr-font-accent, serif);
	font-size: 1.05rem;
	line-height: 1.45;
	color: var(--cr-ink-muted, #126782);
	max-width: 40rem;
	margin: 0 0 1.2rem;
}

/* Second layer of margin furniture: tape strips, halftone patch,
   register marks, asterisk glyph, double ring. */
.cr-stream-page .cr-page__content::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 60'%3E%3Cdefs%3E%3Cpattern id='s' width='16' height='16' patternUnits='userSpaceOnUse' patternTransform='rotate(45)'%3E%3Crect width='8' height='16' fill='%238ecae6' fill-opacity='0.7'/%3E%3C/pattern%3E%3C/defs%3E%3Crect x='12' y='19' width='116' height='22' fill='url(%23s)' transform='rotate(-18 70 30)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 70'%3E%3Cdefs%3E%3Cpattern id='d' width='11' height='11' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='5' cy='5' r='2.2' fill='%23fbfaf5' fill-opacity='0.9'/%3E%3C/pattern%3E%3C/defs%3E%3Crect x='14' y='22' width='112' height='24' fill='%23bcb5e3' fill-opacity='0.7' transform='rotate(32 70 35)'/%3E%3Crect x='14' y='22' width='112' height='24' fill='url(%23d)' transform='rotate(32 70 35)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 80'%3E%3Cdefs%3E%3Cpattern id='h' width='11' height='11' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='5' cy='5' r='2.6' fill='%23241c4a' fill-opacity='0.35'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='120' height='80' fill='url(%23h)' transform='rotate(-6 60 40)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 44' fill='none'%3E%3Cg stroke='%23241c4a' stroke-width='3' opacity='0.32' transform='rotate(7 40 22)'%3E%3Cline x1='6' y1='8' x2='74' y2='8'/%3E%3Cline x1='6' y1='19' x2='74' y2='19'/%3E%3Cline x1='6' y1='30' x2='74' y2='30'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Cg stroke='%23126782' stroke-width='3' stroke-linecap='round' transform='rotate(12 16 16)'%3E%3Cline x1='16' y1='3' x2='16' y2='29'/%3E%3Cline x1='3' y1='16' x2='29' y2='16'/%3E%3Cline x1='6' y1='6' x2='26' y2='26'/%3E%3Cline x1='26' y1='6' x2='6' y2='26'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none'%3E%3Ccircle cx='20' cy='20' r='16' stroke='%23b85f00' stroke-width='2.5'/%3E%3Ccircle cx='20' cy='20' r='9' stroke='%23b85f00' stroke-width='2.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 8rem 3.4rem, 8rem 4rem, 7rem 4.6rem, 4.6rem 2.5rem, 1.7rem 1.7rem, 1.7rem 1.7rem;
	background-position:
		right -1.5rem top 2rem,
		left -1.8rem top 26rem,
		right 0.5rem top 70rem,
		left 1% top 85rem,
		right 3% top 50rem,
		left 2% bottom 4rem;
	opacity: 0.75;
}

/* ---- v0.5.233: one date per card ----
   Cards whose kind renders its own dateline (ateAt/checkinAt/…) also
   printed the post's publish timestamp in the meta row. Hide the
   duplicate visually; dt-published stays in the markup for parsers. */
.cr-stream-page .pk-card:has(.pk-stream-date) .pk-meta > .dt-published { display: none; }

/* ---- v0.5.234: washi tape, marker, highlighter ---- */

/* Highlighter: the jam title gets its selective-yellow swipe. */
.cr-stream-page .k-jam .pk-title a {
	background: linear-gradient(100deg, rgba(255, 183, 3, 0.15) 0%, rgba(255, 183, 3, 0.92) 4%, rgba(255, 183, 3, 0.92) 96%, rgba(255, 183, 3, 0.15) 100%);
	color: var(--cr-prussian-blue, #023047);
	padding: 0.05em 0.35em;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* Washi tape holding the collectibles down. Plain tape on the eat
   polaroid + recipe card; striped washi on read + acquisition boxes. */
.cr-stream-page .pk-card.k-eat::after,
.cr-stream-page .pk-card.k-recipe::after {
	content: "";
	position: absolute;
	top: -0.6rem;
	left: 50%;
	width: 4.5rem;
	height: 1.3rem;
	transform: translateX(-50%) rotate(-4deg);
	background: rgba(243, 229, 184, 0.9);
	box-shadow: 1px 1px 0 rgba(36, 28, 74, 0.18);
	z-index: 3;
	pointer-events: none;
	border: 0;
}
.cr-stream-page .pk-card.k-recipe::after { left: 18%; transform: rotate(-8deg); }
.cr-stream-page .pk-card.k-read::after,
.cr-stream-page .pk-card.k-acquisition::after {
	content: "";
	position: absolute;
	top: -0.55rem;
	right: 1.2rem;
	width: 4.2rem;
	height: 1.25rem;
	transform: rotate(6deg);
	background: repeating-linear-gradient(45deg, rgba(142, 202, 230, 0.75) 0 8px, rgba(251, 250, 245, 0.75) 8px 16px);
	box-shadow: 1px 1px 0 rgba(36, 28, 74, 0.18);
	z-index: 3;
	pointer-events: none;
}

/* Marker: an ut-orange stripe closes the collage, like a section rule. */
.cr-stream-page .cr-page__content > .wp-block-query::after {
	content: "";
	display: block;
	width: 6rem;
	height: 0.5rem;
	margin: 2.5rem auto 0;
	background: var(--cr-ut-orange, #fb8500);
	border-radius: 2px;
	transform: rotate(-1.2deg);
}

/* ============================================================
   v0.5.235 — the 12 classic Post Kinds kinds PKIW doesn't ship,
   mapped to the existing design families so nothing renders bare.
   ============================================================ */

/* audio → always the cassette (a recording IS a tape). */
.cr-stream-page .pk-card.k-audio {
	aspect-ratio: 1.58 / 1;
	width: 100%;
	display: flex;
	flex-direction: column;
	padding: 0.6rem 0.9rem;
	background: #1a1714;
	border-radius: 10px;
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 #241c4a), inset 0 0 0 1px rgba(251, 250, 245, 0.08);
	color: #241c4a;
	overflow: hidden;
}
.cr-stream-page .k-audio .pk-body { flex: none; height: 62%; background: #f6f3ea; border-radius: 4px; padding: 0.35rem 0.55rem; position: relative; overflow: visible; }
.cr-stream-page .k-audio .pk-title { display: block; margin: 0.1rem 3.2rem 0 2.9rem; font-family: var(--cr-font-display, cursive); font-size: 0.68rem; line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-bottom: 1.5px solid rgba(36, 28, 74, 0.45); padding: 0 0 0.1rem; color: #241c4a; }
.cr-stream-page .k-audio .pk-kindlabel { position: absolute; top: 0.35rem; left: 0.55rem; margin: 0; width: auto; max-width: max-content; font-size: max(0.42rem, var(--cr-text-floor, 0.7rem)); padding: 0.1rem 0.25rem; border: 1.5px solid #241c4a; border-radius: 2px; color: #241c4a; background: none; box-shadow: none; transform: none; display: inline-block; }
.cr-stream-page .k-audio .pk-stream-date { position: absolute; top: 0.5rem; right: 0.5rem; margin: 0; padding: 0; font-size: max(0.42rem, var(--cr-text-floor, 0.7rem)); }
.cr-stream-page .k-audio .pk-stream-date time { border: 0; padding: 0; color: #3d2f6e; }
.cr-stream-page .k-audio .pk-excerpt, .cr-stream-page .k-audio .pk-meta, .cr-stream-page .k-audio .pk-badge { display: none; }
.cr-stream-page .pk-card.k-audio::after {
	content: "";
	position: absolute;
	top: 32%;
	height: 27%;
	width: 46%;
	left: 50%;
	transform: translateX(-50%);
	border: 1px solid #3a342f;
	border-radius: 6px;
	background:
		radial-gradient(circle 1.05rem at 20% 50%, #17140f 30%, #f2efe6 32% 90%, #3a342f 92% 100%, transparent 100%),
		radial-gradient(circle 1.05rem at 80% 50%, #17140f 30%, #f2efe6 32% 90%, #3a342f 92% 100%, transparent 100%),
		repeating-linear-gradient(180deg, #23201a 0 2px, #14110d 2px 4px) center / 24% 58% no-repeat,
		#17140f;
}
.cr-stream-page .pk-card.k-audio::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	border-radius: inherit;
	background:
		radial-gradient(circle 3px at 11px 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at 11px calc(100% - 9px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) calc(100% - 9px), #3a342f 98%, transparent),
		linear-gradient(90deg, #c9b06a, #e6d194 35%, #c9b06a 70%, #b89d55) left 0.55rem top 68% / calc(100% - 1.1rem) 8% no-repeat;
	background-repeat: no-repeat;
}

/* quote / follow / issue / tag → paper clippings. */
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-issue,
.cr-stream-page .pk-card.k-tag {
	width: 80%;
	background: var(--cr-surface-elevated, #fff);
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: none;
	filter: drop-shadow(4px 4px 0 var(--cr-hard-color, #241c4a));
	transform: rotate(var(--cr-rotate-neg, -2.5deg));
	padding: 1.2rem 1.15rem 1.6rem;
	background-image: repeating-linear-gradient(180deg, transparent 0, transparent calc(1.55em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) calc(1.55em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) 1.55em);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), 92% 100%, 84% calc(100% - 6px), 75% 100%, 66% calc(100% - 9px), 57% 100%, 48% calc(100% - 6px), 39% 100%, 30% calc(100% - 9px), 21% 100%, 13% calc(100% - 6px), 6% 100%, 0 calc(100% - 8px));
}
.cr-stream-page .pk-card.k-quote::before,
.cr-stream-page .pk-card.k-follow::before,
.cr-stream-page .pk-card.k-issue::before,
.cr-stream-page .pk-card.k-tag::before {
	content: "";
	position: absolute;
	top: 0.35rem;
	left: 50%;
	margin-left: -0.45rem;
	width: 0.9rem;
	height: 0.9rem;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #7cc1d4, var(--cr-cerulean, #126782) 75%);
	box-shadow: 0 2px 3px rgba(36, 28, 74, 0.45);
	z-index: 4;
	pointer-events: none;
}
.cr-stream-page .k-quote .pk-badge, .cr-stream-page .k-follow .pk-badge,
.cr-stream-page .k-issue .pk-badge, .cr-stream-page .k-tag .pk-badge { display: none; }
.cr-stream-page .k-quote blockquote { border-left: 4px solid var(--cr-type-quote, #241c4a); background: var(--cr-surface-soft, #f4f0e4); padding: 0.6rem 0.75rem; margin: 0 0 0.4rem; font-family: var(--cr-font-accent, serif); font-style: italic; }
.cr-stream-page .pk-card.k-quote::after { content: "\201C"; position: absolute; top: 0.4rem; right: 0.9rem; font-family: var(--cr-font-accent, serif); font-size: 3rem; line-height: 1; color: var(--cr-periwinkle, #bcb5e3); }
.cr-stream-page .pk-card.k-follow::after { content: "+"; position: absolute; top: 0.55rem; right: 0.9rem; font-family: var(--cr-font-accent, serif); font-weight: 900; font-size: 1.8rem; line-height: 1; color: var(--cr-ut-orange, #fb8500); }
.cr-stream-page .k-issue .pk-title { font-family: var(--cr-font-mono, monospace); font-size: 0.9rem; }

/* weather / sleep → round stickers like mood. */
.cr-stream-page .pk-card.k-weather,
.cr-stream-page .pk-card.k-sleep {
	background: var(--cr-surface-elevated, #fff);
	border: 3px solid var(--cr-cerulean, #126782);
	border-radius: 50%;
	aspect-ratio: 1;
	height: auto;
	width: min(13rem, 85%);
	margin-inline: auto;
	display: grid;
	place-content: center;
	text-align: center;
	padding: 1.5rem;
	box-shadow: 0 3px 12px rgba(36, 28, 74, 0.18);
	position: relative;
	overflow: hidden;
}
.cr-stream-page .pk-card.k-sleep { background: var(--cr-russian-violet, #241c4a); border-color: var(--cr-periwinkle, #bcb5e3); }
.cr-stream-page .k-sleep .pk-title, .cr-stream-page .k-sleep .pk-excerpt { color: #fbfaf5; }
.cr-stream-page .k-weather .pk-title, .cr-stream-page .k-sleep .pk-title { font-family: var(--cr-font-display, cursive); font-size: 0.95rem; padding: 0; }
.cr-stream-page .k-weather .pk-excerpt, .cr-stream-page .k-sleep .pk-excerpt { font-size: 0.75rem; padding: 0; }
.cr-stream-page .k-weather .pk-kindlabel, .cr-stream-page .k-sleep .pk-kindlabel,
.cr-stream-page .k-weather .pk-meta, .cr-stream-page .k-sleep .pk-meta { display: none; }
.cr-stream-page .k-weather .pk-badge, .cr-stream-page .k-sleep .pk-badge { position: static; margin: 0 auto 0.3rem; box-shadow: none; }

/* exercise / craft → ruled index cards. */
.cr-stream-page .pk-card.k-exercise,
.cr-stream-page .pk-card.k-craft {
	width: 86%;
	background: var(--cr-surface-elevated, #fff);
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
	padding: 0.9rem 1rem 1rem;
	background-image: repeating-linear-gradient(180deg, transparent 0, transparent calc(1.6em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) calc(1.6em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) 1.6em);
}
.cr-stream-page .k-exercise .pk-badge, .cr-stream-page .k-craft .pk-badge { position: absolute; top: -0.9rem; right: -0.6rem; box-shadow: 0 0 0 3px var(--cr-printer-ivory, #fbfaf5); }

/* trip → postcard; itinerary → ticket strip. */
.cr-stream-page .pk-card.k-trip {
	width: 92%;
	background: var(--cr-surface-elevated, #fff);
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
	padding: 1rem 5.2rem 1.1rem 1.1rem;
	position: relative;
}
.cr-stream-page .pk-card.k-trip::after {
	content: "";
	position: absolute;
	top: 0.7rem;
	right: 0.8rem;
	width: 2.6rem;
	height: 3.1rem;
	border: 2px dashed rgba(36, 28, 74, 0.4);
	background: var(--cr-light-orange, #fee2c3);
}
.cr-stream-page .pk-card.k-itinerary {
	width: 92%;
	background: var(--cr-surface-elevated, #fff);
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
	padding: 0.9rem 1.1rem;
}
.cr-stream-page .k-itinerary .pk-title { font-family: var(--cr-font-mono, monospace); letter-spacing: 0.06em; }
.cr-stream-page .k-itinerary .pk-excerpt { border-top: 2px dashed var(--cr-border-strong, rgba(36, 28, 74, 0.24)); padding-top: 0.5rem; margin-top: 0.4rem; }

/* question → sticky note with the pushpin, classic sticky-note yellow (v0.5.267, was sky tint). */
.cr-stream-page .pk-card.k-question {
	width: 80%;
	background: #fcf1c5;
	border: 0;
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 rgba(36, 28, 74, 0.35));
	padding: 0.9rem 1rem 1rem;
	transform: rotate(var(--cr-rotate-1, -1.2deg));
	position: relative;
}
.cr-stream-page .pk-card.k-question::before {
	content: "";
	position: absolute;
	top: 0.35rem;
	left: 50%;
	margin-left: -0.45rem;
	width: 0.9rem;
	height: 0.9rem;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #f0a04b, var(--cr-ut-orange-dark, #b85f00) 75%);
	box-shadow: 0 2px 3px rgba(36, 28, 74, 0.45);
	z-index: 4;
}
.cr-stream-page .pk-card.k-question::after {
	content: "?";
	position: absolute;
	top: 0.45rem;
	right: 0.9rem;
	font-family: var(--cr-font-display, cursive);
	font-size: 1.6rem;
	color: var(--cr-cerulean, #126782);
	transform: rotate(8deg);
}
.cr-stream-page .k-question .pk-badge { display: none; }

/* ============================================================
   v0.5.237 — consistency audit fixes:
   column clipping, scrap label clipping, cassette unification,
   precise rsvp ticket, video styling, photo caption dedupe.
   ============================================================ */

/* 1. Rotated cards, tape, and shadows were clipped at column edges —
   give each item internal breathing room inside its column box. */
.cr-stream-page .wp-block-post-template > li {
	padding: 0.8rem 0.9rem 0;
	margin: 0 0 1.9rem;
}

/* 2. Scrap kind labels sat clipped against the card's top border. */
.cr-stream-page .pk-card.k-note .pk-kindlabel,
.cr-stream-page .pk-card.k-article .pk-kindlabel,
.cr-stream-page .pk-card.k-reply .pk-kindlabel,
.cr-stream-page .pk-card.k-like .pk-kindlabel,
.cr-stream-page .pk-card.k-repost .pk-kindlabel,
.cr-stream-page .pk-card.k-bookmark .pk-kindlabel,
.cr-stream-page .pk-card.k-favorite .pk-kindlabel,
.cr-stream-page .pk-card.k-recipe .pk-kindlabel,
.cr-stream-page .pk-card.k-checkin .pk-kindlabel,
.cr-stream-page .pk-card.k-quote .pk-kindlabel,
.cr-stream-page .pk-card.k-follow .pk-kindlabel,
.cr-stream-page .pk-card.k-issue .pk-kindlabel,
.cr-stream-page .pk-card.k-tag .pk-kindlabel,
.cr-stream-page .pk-card.k-trip .pk-kindlabel,
.cr-stream-page .pk-card.k-itinerary .pk-kindlabel,
.cr-stream-page .pk-card.k-exercise .pk-kindlabel,
.cr-stream-page .pk-card.k-craft .pk-kindlabel,
.cr-stream-page .pk-card.k-question .pk-kindlabel {
	position: static;
	display: block;
	margin: 0 0 0.35rem;
	transform: none;
	background: none;
	border: 0;
	box-shadow: none;
	width: auto;
	height: auto;
	padding: 0;
	font-size: 0.58rem;
	letter-spacing: 0.14em;
	color: var(--cr-ink-muted, #126782);
}

/* 3. One cassette, three doors: audio and artless watch/listen share
   identical geometry (they had drifted apart). */
.cr-stream-page .pk-card.k-audio,
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)),
.cr-stream-page .pk-card.k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) {
	aspect-ratio: 1.58 / 1;
	padding: 0.6rem 0.9rem;
	border-radius: 10px;
}
.cr-stream-page .k-audio .pk-body { height: 62%; }
.cr-stream-page .k-audio .pk-title { font-size: 0.68rem; margin: 0.1rem 3.2rem 0 2.9rem; }
.cr-stream-page .pk-card.k-audio::before {
	background:
		radial-gradient(circle 3px at 11px 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) 11px, #3a342f 98%, transparent),
		radial-gradient(circle 3px at 11px calc(100% - 9px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 11px) calc(100% - 9px), #3a342f 98%, transparent),
		radial-gradient(circle 3px at 50% calc(100% - 9px), #3a342f 98%, transparent),
		linear-gradient(90deg, #c9b06a, #e6d194 35%, #c9b06a 70%, #b89d55) left 0.55rem top 68% / calc(100% - 1.1rem) 8% no-repeat;
	background-repeat: no-repeat;
}

/* 4. RSVP: the real ticket, on the card's actual structure. */
.cr-stream-page .pk-card.k-rsvp {
	width: 94%;
	background: var(--cr-surface-elevated, #fff);
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
	filter: none;
	clip-path: none;
	transform: rotate(var(--cr-rotate-1, -1.2deg));
	padding: 1rem 6.4rem 1rem 1.1rem;
	position: relative;
	background-image: none;
}
.cr-stream-page .k-rsvp .pk-body {
	position: static;
	background: none;
	padding: 0;
	-webkit-mask: none;
	mask: none;
}
.cr-stream-page .k-rsvp .pk-body::after {
	content: "";
	position: absolute;
	top: 0.6rem;
	bottom: 0.6rem;
	right: 5.6rem;
	border-left: 2px dashed rgba(36, 28, 74, 0.35);
}
.cr-stream-page .k-rsvp .pk-chip.p-rsvp {
	position: absolute;
	top: 50%;
	right: 0.7rem;
	transform: translateY(-50%) rotate(-4deg);
	border: 3px double var(--cr-ut-orange-dark, #b85f00);
	color: var(--cr-ut-orange-dark, #b85f00);
	font-family: var(--cr-font-accent, serif);
	font-weight: 900;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.3rem 0.55rem;
	background: none;
	border-radius: 2px;
}
.cr-stream-page .k-rsvp .pk-kindlabel {
	position: static;
	display: block;
	margin: 0 0 0.35rem;
	background: none;
	border: 0;
	box-shadow: none;
	transform: none;
	width: auto;
	height: auto;
	padding: 0;
	font-size: 0.58rem;
	letter-spacing: 0.14em;
	color: var(--cr-ink-muted, #126782);
}
.cr-stream-page .k-rsvp .pk-title { padding: 0; font-size: 1rem; }
.cr-stream-page .k-rsvp .pk-meta time { display: inline; }

/* 5. Video: image-led thumb with a hand-drawn play sticker. */
.cr-stream-page .pk-card.k-video {
	width: 94%;
	background: var(--cr-surface-elevated, #fff);
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
	padding: 0.8rem 0.9rem 0.9rem;
}
.cr-stream-page .k-video .pk-embed,
.cr-stream-page .k-video figure.wp-block-embed,
.cr-stream-page .k-video .pk-media {
	order: -1;
	margin: 0 0 0.6rem;
	border: 2px solid var(--cr-ink, #241c4a);
	border-radius: 0;
}
.cr-stream-page .k-video .pk-title { padding: 0; font-size: 1rem; color: var(--cr-ink, #241c4a); }
.cr-stream-page .k-video .pk-kindlabel { position: static; display: block; margin: 0 0 0.3rem; background: none; border: 0; box-shadow: none; transform: none; width: auto; height: auto; padding: 0; font-size: 0.58rem; letter-spacing: 0.14em; color: var(--cr-ink-muted, #126782); }

/* 6. Photo polaroid: one caption voice (excerpt), not title + excerpt.
   Only drop the title when the polaroid actually holds a picture. A photo
   posted from Outpost keeps its image in the post body rather than as a
   featured image, so its card has nothing to show, and hiding the title
   left two blank white boxes at the top of the Stream. The :has() guard
   keeps the single-voice look wherever there is an image and lets the
   title carry the card wherever there isn't. Browsers without :has()
   simply keep the previous behaviour. */
.cr-stream-page .kind-photo .pk-card:has(img) .pk-title { display: none; }

/* ---- v0.5.238: no icons over words ----
   Paper-family cards lose their badge circles entirely — the
   small-caps kind label names the kind; pushpins/tape do the holding. */
.cr-stream-page .pk-card.k-bookmark .pk-badge,
.cr-stream-page .pk-card.k-checkin .pk-badge,
.cr-stream-page .pk-card.k-recipe .pk-badge,
.cr-stream-page .pk-card.k-exercise .pk-badge,
.cr-stream-page .pk-card.k-craft .pk-badge,
.cr-stream-page .pk-card.k-rsvp .pk-badge,
.cr-stream-page .pk-card.k-trip .pk-badge,
.cr-stream-page .pk-card.k-itinerary .pk-badge,
.cr-stream-page .pk-card.k-video .pk-badge,
.cr-stream-page .kind-photo .pk-card .pk-badge { display: none; }

/* ---- v0.5.239: restore the no-touching gutter ----
   The 0.5.237 padding fix trimmed vertical margins too far; round
   stickers were bleeding onto the card below. */
.cr-stream-page .wp-block-post-template > li { margin: 0 0 2.75rem; }

/* ---- v0.5.240: rsvp ticket matched to the mock ----
   Landscape strip: title + event line + №, die-cut notches at the
   perforation (mask + drop-shadow), bigger stamp. */
.cr-stream-page .pk-card.k-rsvp {
	box-shadow: none;
	/* the mask below clips this element's own drop-shadow (same trap
	   as clip-path), so the shadow is cast from the list item instead */
	filter: none;
	padding: 1.1rem 6.6rem 1.1rem 1.15rem;
	-webkit-mask:
		radial-gradient(circle 11px at calc(100% - 5.6rem) 0, transparent 98%, #000 100%) top / 100% 51% no-repeat,
		radial-gradient(circle 11px at calc(100% - 5.6rem) 100%, transparent 98%, #000 100%) bottom / 100% 51% no-repeat;
	mask:
		radial-gradient(circle 11px at calc(100% - 5.6rem) 0, transparent 98%, #000 100%) top / 100% 51% no-repeat,
		radial-gradient(circle 11px at calc(100% - 5.6rem) 100%, transparent 98%, #000 100%) bottom / 100% 51% no-repeat;
}
.cr-stream-page .wp-block-post-template > li:has(.pk-card.k-rsvp) {
	filter: drop-shadow(4px 4px 0 var(--cr-hard-color, #241c4a));
}
.cr-stream-page .k-rsvp .pk-kindlabel,
.cr-stream-page .k-rsvp .pk-stream-date,
.cr-stream-page .k-rsvp .pk-note { display: none; }
.cr-stream-page .k-rsvp .pk-event .pk-sub {
	font-family: var(--cr-font-accent, serif);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--cr-cerulean, #126782);
	padding: 0;
	margin: 0.35rem 0 0;
}
.cr-stream-page .k-rsvp .pk-event .pk-dot { display: none; }
.cr-stream-page .k-rsvp .pk-chip.p-rsvp {
	font-size: 1rem;
	padding: 0.4rem 0.7rem;
	right: 1rem;
}
.cr-stream-page .cr-page__content { counter-reset: swi-ticket 216; }
.cr-stream-page .pk-card.k-rsvp { counter-increment: swi-ticket; }
.cr-stream-page .k-rsvp .pk-meta {
	padding: 0;
	margin: 0.5rem 0 0;
}
.cr-stream-page .k-rsvp .pk-meta time { display: none; }
.cr-stream-page .k-rsvp .pk-meta::before {
	content: "№ 000" counter(swi-ticket);
	font-family: var(--cr-font-mono, monospace);
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	color: var(--cr-ink-muted, #126782);
}

/* ---- v0.5.241: tighter torn edges ----
   The 4x4 drop-shadow left a detached wavy hairline under the tear;
   pull the shadow tighter and shallow the teeth so the tear reads as
   one piece of paper. */
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-article,
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-issue,
.cr-stream-page .pk-card.k-tag {
	filter: drop-shadow(2px 4px 0 var(--cr-hard-color, #241c4a));
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 5px), 93% 100%, 85% calc(100% - 4px), 76% 100%, 67% calc(100% - 6px), 58% 100%, 49% calc(100% - 4px), 40% 100%, 31% calc(100% - 6px), 22% 100%, 14% calc(100% - 4px), 7% 100%, 0 calc(100% - 5px));
}

/* ---- v0.5.242: cassette label can never collapse ---- */
.cr-stream-page .k-audio .pk-body,
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body {
	width: 100%;
	align-self: stretch;
	box-sizing: border-box;
}

/* ---- v0.5.243: polaroid frame is true white stock ---- */
.cr-stream-page .pk-card.k-photo,
.cr-stream-page .wp-block-post-template > li.kind-photo .pk-card {
	background:
		linear-gradient(135deg, #241c4a 12px, transparent 12px) top left,
		linear-gradient(225deg, #241c4a 12px, transparent 12px) top right,
		linear-gradient(45deg, #241c4a 12px, transparent 12px) bottom left,
		linear-gradient(315deg, #241c4a 12px, transparent 12px) bottom right,
		#ffffff;
	background-repeat: no-repeat;
}

/* ---- v0.5.244: cassette text never hides under the window ----
   Year/review lines compact into the label strip above the hub
   window: one ellipsized line each, small, in label ink. */
.cr-stream-page .k-audio .pk-sub:not(.pk-stream-date),
.cr-stream-page .k-audio .pk-note,
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-sub:not(.pk-stream-date),
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-note,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-sub:not(.pk-stream-date),
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-note {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-size: 0.58rem;
	line-height: 1.5;
	margin: 0.05rem 2.6rem 0 0;
	padding: 0;
	color: #3d2f6e;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-note p,
.cr-stream-page .k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-note p,
.cr-stream-page .k-audio .pk-note p { display: inline; margin: 0; font-size: inherit; }

/* ---- v0.5.245: true torn-page bottoms ----
   No border on the torn edge (paper doesn't have an outline where it
   rips); teeth back to a visible depth now the shadow hugs at 2x4. */
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-article,
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-issue,
.cr-stream-page .pk-card.k-tag {
	border-bottom: 0;
	padding-bottom: 1.7rem;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), 93% 100%, 85% calc(100% - 5px), 76% 100%, 67% calc(100% - 8px), 58% 100%, 49% calc(100% - 5px), 40% 100%, 31% calc(100% - 8px), 22% 100%, 14% calc(100% - 5px), 7% 100%, 0 calc(100% - 8px));
}

/* ---- v0.5.246: eat polaroid on white stock, not page ivory ---- */
.cr-stream-page .pk-card.k-eat { background: #ffffff; }

/* ---- v0.5.250: washi tape actually tapes the box down ----
   The card's overflow:hidden clips anything crossing its edge, so the
   tape lives on the list item: laid 45° across the top-right corner,
   half on the box, both ends on the paper. */
.cr-stream-page .pk-card.k-read::after,
.cr-stream-page .pk-card.k-acquisition::after { content: none; }
.cr-stream-page .wp-block-post-template > li.kind-read,
.cr-stream-page .wp-block-post-template > li.kind-acquisition { position: relative; }
.cr-stream-page .wp-block-post-template > li.kind-read::after,
.cr-stream-page .wp-block-post-template > li.kind-acquisition::after {
	content: "";
	position: absolute;
	top: 0.45rem;
	right: 0.15rem;
	width: 5rem;
	height: 1.3rem;
	transform: rotate(45deg);
	background: repeating-linear-gradient(45deg, rgba(142, 202, 230, 0.8) 0 8px, rgba(251, 250, 245, 0.8) 8px 16px);
	box-shadow: 1px 1px 0 rgba(36, 28, 74, 0.18);
	z-index: 4;
	pointer-events: none;
}

/* ---- v0.5.251: pale palette papers for the clipping look-alikes ----
   Very pale tints of the brand palette so each paper kind reads
   distinct while ink text stays AAA. Article keeps true white as the
   calm editorial baseline. */
.cr-stream-page .pk-card.k-article  { background-color: #ffffff; }
.cr-stream-page .pk-card.k-reply    { background-color: #eaf4fa; } /* pale sky blue */
.cr-stream-page .pk-card.k-quote    { background-color: #f0eef8; } /* pale periwinkle */
.cr-stream-page .pk-card.k-issue    { background-color: #fdf3e7; } /* pale light orange */
.cr-stream-page .pk-card.k-favorite { background-color: #fef7e0; } /* pale selective yellow */
.cr-stream-page .pk-card.k-craft    { background-color: #eaf5f2; } /* pale blue green */
.cr-stream-page .pk-card.k-tag      { background-color: #e7f1f4; } /* pale cerulean */

/* ---- v0.5.252: punchier pushpins, full quote glyph ---- */
.cr-stream-page .pk-card.k-reply::before,
.cr-stream-page .pk-card.k-like::before,
.cr-stream-page .pk-card.k-repost::before,
.cr-stream-page .pk-card.k-favorite::before,
.cr-stream-page .pk-card.k-article::before,
.cr-stream-page .pk-card.k-note::before,
.cr-stream-page .pk-card.k-quote::before,
.cr-stream-page .pk-card.k-follow::before,
.cr-stream-page .pk-card.k-issue::before,
.cr-stream-page .pk-card.k-tag::before {
	width: 1rem;
	height: 1rem;
	background: radial-gradient(circle at 32% 28%, #d9eef5 0%, #4da3bd 32%, #126782 68%, #0b3f50 100%);
	box-shadow: 0 2px 4px rgba(36, 28, 74, 0.55);
}
.cr-stream-page .pk-card.k-question::before {
	width: 1rem;
	height: 1rem;
	background: radial-gradient(circle at 32% 28%, #ffd9a8 0%, #f0952f 35%, #b85f00 72%, #8a4700 100%);
	box-shadow: 0 2px 4px rgba(36, 28, 74, 0.55);
}
/* Quote glyph: a typeface with full-bodied quotes, sized and seated
   so the whole mark shows. */
.cr-stream-page .pk-card.k-quote::after {
	content: "\201C";
	font-family: Georgia, "Times New Roman", serif;
	font-size: 3.6rem;
	line-height: 0.55;
	top: 1.05rem;
	right: 0.8rem;
	color: var(--cr-periwinkle, #bcb5e3);
}

/* ---- v0.5.253: uniform pushpin visibility, palette-colored heads ----
   Same size, same specular structure (catchlight → mid → deep → rim),
   same shadow on every pin; only the head color varies by kind. */
.cr-stream-page .pk-card.k-reply::before,
.cr-stream-page .pk-card.k-like::before,
.cr-stream-page .pk-card.k-repost::before,
.cr-stream-page .pk-card.k-favorite::before,
.cr-stream-page .pk-card.k-article::before,
.cr-stream-page .pk-card.k-note::before,
.cr-stream-page .pk-card.k-quote::before,
.cr-stream-page .pk-card.k-follow::before,
.cr-stream-page .pk-card.k-issue::before,
.cr-stream-page .pk-card.k-tag::before,
.cr-stream-page .pk-card.k-question::before {
	width: 1rem;
	height: 1rem;
	box-shadow: 0 2px 4px rgba(36, 28, 74, 0.55);
	opacity: 1;
}
/* cerulean: reply, tag */
.cr-stream-page .pk-card.k-reply::before,
.cr-stream-page .pk-card.k-tag::before {
	background: radial-gradient(circle at 32% 28%, #d9eef5 0%, #4da3bd 32%, #126782 68%, #0b3f50 100%);
}
/* russian violet: article, note */
.cr-stream-page .pk-card.k-article::before,
.cr-stream-page .pk-card.k-note::before {
	background: radial-gradient(circle at 32% 28%, #d9d3ee 0%, #6a5fa8 32%, #3d2f6e 68%, #241c4a 100%);
}
/* ut orange: issue, question */
.cr-stream-page .pk-card.k-issue::before,
.cr-stream-page .pk-card.k-question::before {
	background: radial-gradient(circle at 32% 28%, #ffd9a8 0%, #f0952f 35%, #b85f00 72%, #8a4700 100%);
}
/* selective yellow: favorite, follow */
.cr-stream-page .pk-card.k-favorite::before,
.cr-stream-page .pk-card.k-follow::before {
	background: radial-gradient(circle at 32% 28%, #fff0c2 0%, #ffc93d 35%, #d99400 72%, #9c6a00 100%);
}
/* periwinkle: quote, craft-adjacent likes */
.cr-stream-page .pk-card.k-quote::before,
.cr-stream-page .pk-card.k-like::before {
	background: radial-gradient(circle at 32% 28%, #efeaf9 0%, #a89ed6 32%, #7a6cc0 68%, #4b3f8c 100%);
}
/* blue green: repost */
.cr-stream-page .pk-card.k-repost::before {
	background: radial-gradient(circle at 32% 28%, #d8f0ec 0%, #5cb8a6 32%, #2a9d8f 68%, #1d6f65 100%);
}

/* ============================================================
   v0.5.254 — artless WATCH renders as a VHS tape (top view),
   per Courtney's reference. The audio cassette stays for audio
   and artless listens. Watch posts with embeds keep the
   embed-as-cover box.
   ============================================================ */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) {
	aspect-ratio: 1.5 / 1;
	padding: 0;
	border-radius: 6px;
	display: block;
	overflow: hidden;
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 #241c4a), inset 0 0 0 1px rgba(255, 255, 255, 0.06);
	background:
		/* left reel: full tape ring + white spool */
		radial-gradient(circle 2.5rem at 15.5% 49%, #f0ede6 0 21%, #55504a 22% 26%, #14121a 27% 86%, #3a3644 87% 96%, transparent 97%),
		/* right reel: thinner tape + white spool */
		radial-gradient(circle 2.1rem at 84.5% 49%, #f0ede6 0 27%, #55504a 28% 33%, #221f28 34% 74%, #3a3644 75% 92%, transparent 93%),
		/* smoky window panes */
		linear-gradient(rgba(150, 146, 158, 0.16), rgba(130, 126, 140, 0.1)) left 3.5% top 27% / 24% 44% no-repeat,
		linear-gradient(rgba(150, 146, 158, 0.16), rgba(130, 126, 140, 0.1)) right 3.5% top 27% / 24% 44% no-repeat,
		/* top flap strip */
		linear-gradient(#0d0c10, #121016) top / 100% 17% no-repeat,
		/* shell ridges */
		repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0 1px, transparent 1px 5px),
		#17151b;
}
/* embossed flap text */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::before {
	content: "insert this side into recorder \25B2  do not touch the tape inside" / "";
	position: absolute;
	inset: auto;
	top: 4.5%;
	left: 0;
	right: 0;
	height: auto;
	text-align: center;
	font-family: var(--cr-font-mono, monospace);
	font-size: 0.36rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.26);
	background: none;
	pointer-events: none;
}
/* screws replace the audio hub window */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed))::after {
	inset: 0;
	top: 0;
	left: 0;
	width: auto;
	height: auto;
	transform: none;
	border: 0;
	border-radius: inherit;
	background:
		radial-gradient(circle 3px at 12px calc(100% - 10px), #3a3644 98%, transparent),
		radial-gradient(circle 3px at calc(100% - 12px) calc(100% - 10px), #3a3644 98%, transparent),
		radial-gradient(circle 3px at 50% calc(100% - 10px), #3a3644 98%, transparent);
	background-repeat: no-repeat;
	pointer-events: none;
}
/* white label centered between the reels */
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body {
	position: absolute;
	left: 30.5%;
	right: 30.5%;
	top: 27%;
	height: 44%;
	width: auto;
	flex: none;
	background: #efece4;
	background-image: none;
	border-radius: 6px;
	padding: 0.4rem 0.5rem;
	overflow: hidden;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-kindlabel {
	position: static;
	display: inline-block;
	margin: 0 0 0.15rem;
	font-size: 0.38rem;
	padding: 0.05rem 0.2rem;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-title {
	margin: 0;
	font-size: max(0.6rem, var(--cr-text-floor, 0.7rem));
	line-height: 1.5;
	border-bottom: 1.5px solid rgba(36, 28, 74, 0.45);
	padding: 0 0 0.05rem;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-stream-date {
	position: static;
	margin: 0.15rem 0 0;
	font-size: max(0.42rem, var(--cr-text-floor, 0.7rem));
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-sub:not(.pk-stream-date),
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-note { display: none; }

/* ---- v0.5.255: VHS realism pass ----
   True 1.86:1 face, transparent windows showing glossy wound tape
   (big mass left, spool right), two-tier flap, and a size split:
   audio cassettes shrink to 82% so the VHS reads bigger. */
.cr-stream-page .pk-card.k-audio,
.cr-stream-page .pk-card.k-listen:not(:has(.pk-media)):not(:has(.pk-embed)) {
	width: 82%;
	margin-inline: auto;
}
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) {
	aspect-ratio: 1.86 / 1;
	border-radius: 8px;
	background:
		/* left reel: sheen ring over big tape mass + white hub */
		radial-gradient(circle 2.7rem at 16% 53%, transparent 0 44%, rgba(255, 255, 255, 0.09) 45% 58%, transparent 59%),
		radial-gradient(circle 2.7rem at 16% 53%, #efece6 0 16%, #55504a 17% 21%, #17151d 22% 94%, transparent 95%),
		/* right reel: prominent spool, thin tape */
		radial-gradient(circle 2.2rem at 84% 53%, #efece6 0 30%, #55504a 31% 36%, #23202a 37% 72%, transparent 73%),
		/* window glass streaks */
		linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.07) 38%, transparent 48%) left 3% top 30% / 26% 46% no-repeat,
		linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.07) 38%, transparent 48%) right 3% top 30% / 26% 46% no-repeat,
		/* window panes: visibly translucent */
		linear-gradient(rgba(168, 164, 178, 0.26), rgba(140, 136, 150, 0.16)) left 3% top 30% / 26% 46% no-repeat,
		linear-gradient(rgba(168, 164, 178, 0.26), rgba(140, 136, 150, 0.16)) right 3% top 30% / 26% 46% no-repeat,
		/* two-tier flap: text tier + ridged tier */
		linear-gradient(#0c0b0f, #0c0b0f) top / 100% 13% no-repeat,
		repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0 1px, transparent 1px 4px) left 0 top 13% / 100% 9% no-repeat,
		/* shell ridges */
		repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0 1px, transparent 1px 5px),
		#17151b;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body {
	left: 32%;
	right: 32%;
	top: 30%;
	height: 46%;
	border-radius: 10px;
}

/* ---- v0.5.256: properly transparent VHS windows ----
   Bigger, brighter glass; tape mass nearly fills the left window with
   conic sheen sweeps; right window is mostly white spool with a film
   strip catch of light. All layers share each window's box. */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) {
	background:
		/* LEFT window — glass streak */
		linear-gradient(115deg, transparent 26%, rgba(255, 255, 255, 0.12) 34%, transparent 46%) left 3% top 26% / 27% 52% no-repeat,
		/* LEFT — white spoked hub */
		radial-gradient(circle closest-side at 48% 52%, #f4f1ea 0 15%, #6a6560 16% 19%, transparent 20%) left 3% top 26% / 27% 52% no-repeat,
		/* LEFT — sheen sweep across the tape */
		conic-gradient(from 25deg at 48% 52%, rgba(255, 255, 255, 0.16) 0 38deg, transparent 38deg 150deg, rgba(255, 255, 255, 0.1) 150deg 190deg, transparent 190deg 360deg) left 3% top 26% / 27% 52% no-repeat,
		/* LEFT — big tape mass */
		radial-gradient(circle closest-side at 48% 52%, transparent 0 19%, #1a1820 20% 96%, transparent 97%) left 3% top 26% / 27% 52% no-repeat,
		/* LEFT — bright pane */
		linear-gradient(rgba(190, 186, 198, 0.38), rgba(150, 146, 158, 0.22)) left 3% top 26% / 27% 52% no-repeat,
		/* RIGHT window — film strip catching light */
		linear-gradient(90deg, transparent 78%, rgba(255, 255, 255, 0.16) 82% 94%, transparent 96%) right 3% top 26% / 27% 52% no-repeat,
		/* RIGHT — dominant white spool + thin tape */
		radial-gradient(circle closest-side at 50% 52%, #f2efe8 0 27%, #57524c 28% 32%, #262330 33% 60%, transparent 61%) right 3% top 26% / 27% 52% no-repeat,
		/* RIGHT — brightest pane (least tape behind it) */
		linear-gradient(rgba(205, 201, 212, 0.42), rgba(165, 161, 172, 0.26)) right 3% top 26% / 27% 52% no-repeat,
		/* two-tier flap */
		linear-gradient(#0c0b0f, #0c0b0f) top / 100% 13% no-repeat,
		repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0 1px, transparent 1px 4px) left 0 top 13% / 100% 9% no-repeat,
		/* shell ridges */
		repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0 1px, transparent 1px 5px),
		#17151b;
}
.cr-stream-page .k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) .pk-body {
	left: 32.5%;
	right: 32.5%;
	top: 26%;
	height: 52%;
}

/* ---- v0.5.257: sleep + weather join the enamel pin family ----
   Same construction as the mood pin (collar, rim, gloss, halftone,
   clasp); faces in prussian night (sleep) and cerulean (weather). */
.cr-stream-page .pk-card.k-sleep,
.cr-stream-page .pk-card.k-weather {
	display: grid;
	justify-items: center;
	align-content: center;
	gap: 0.25rem;
	width: 9.5rem;
	aspect-ratio: 1 / 1;
	height: auto;
	margin-inline: auto;
	padding: 1rem;
	border-radius: 50%;
	border: 3px solid #241c4a;
	box-shadow: 0 0 0 4px #fbfaf5, 0 0 0 6px #241c4a, 4px 4px 0 6px #241c4a;
	overflow: hidden;
	text-align: center;
	position: relative;
}
.cr-stream-page .pk-card.k-sleep { background: radial-gradient(circle at 32% 26%, #0b4a63 0%, #023047 55%); transform: rotate(1.5deg); }
.cr-stream-page .pk-card.k-weather { background: radial-gradient(circle at 32% 26%, #1a7f9e 0%, #126782 55%); transform: rotate(-1.5deg); }
.cr-stream-page .pk-card.k-sleep::before,
.cr-stream-page .pk-card.k-weather::before {
	content: "";
	position: absolute;
	inset: auto;
	top: 7%;
	left: 14%;
	width: 38%;
	height: 20%;
	border-radius: 50%;
	border: 0;
	background: rgba(251, 250, 245, 0.32);
	transform: rotate(-24deg);
	filter: blur(2px);
}
.cr-stream-page .pk-card.k-sleep::after,
.cr-stream-page .pk-card.k-weather::after {
	content: "";
	position: absolute;
	inset: auto;
	bottom: -6%;
	right: -8%;
	top: auto;
	left: auto;
	width: 60%;
	height: 55%;
	border: 0;
	border-radius: 50%;
	background-image: radial-gradient(rgba(251, 250, 245, 0.26) 1.5px, transparent 2px);
	background-size: 8px 8px;
}
.cr-stream-page .k-sleep .pk-title,
.cr-stream-page .k-weather .pk-title {
	font-family: var(--cr-font-accent, "Roboto Slab", serif);
	font-weight: 900;
	font-size: 0.9rem;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0;
	text-shadow: 1.5px 1.5px 0 rgba(2, 48, 71, 0.9);
}
.cr-stream-page .k-sleep .pk-title, .cr-stream-page .k-sleep .pk-title a { color: #ffb703; }
.cr-stream-page .k-weather .pk-title, .cr-stream-page .k-weather .pk-title a { color: #fbfaf5; }
.cr-stream-page .k-sleep .pk-excerpt,
.cr-stream-page .k-weather .pk-excerpt { display: none; }
.cr-stream-page .k-sleep .pk-stream-date,
.cr-stream-page .k-weather .pk-stream-date { display: block; margin: 0; padding: 0; }
.cr-stream-page .k-sleep .pk-stream-date time,
.cr-stream-page .k-weather .pk-stream-date time {
	border: 0;
	padding: 0;
	font-size: max(0.6rem, var(--cr-text-floor, 0.7rem));
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #8ecae6;
}
.cr-stream-page .k-weather .pk-stream-date time { color: #d9eef5; }
.cr-stream-page .k-sleep .pk-badge, .cr-stream-page .k-weather .pk-badge,
.cr-stream-page .k-sleep .pk-kindlabel, .cr-stream-page .k-weather .pk-kindlabel,
.cr-stream-page .k-sleep .pk-meta, .cr-stream-page .k-weather .pk-meta { display: none; }
.cr-stream-page .wp-block-post-template > li.kind-sleep,
.cr-stream-page .wp-block-post-template > li.kind-weather { position: relative; }
.cr-stream-page .wp-block-post-template > li.kind-sleep::before,
.cr-stream-page .wp-block-post-template > li.kind-weather::before {
	content: "";
	position: absolute;
	top: 0.35rem;
	left: 50%;
	margin-left: -1.6rem;
	width: 3.2rem;
	height: 0.85rem;
	border: 2.5px solid #9a958a;
	border-radius: 999px;
	background: linear-gradient(180deg, #d8d3c8, #a8a398);
	box-shadow: 0 1px 2px rgba(36, 28, 74, 0.4);
	transform: rotate(-4deg);
	z-index: 0;
}
.cr-stream-page .wp-block-post-template > li.kind-sleep .pk-card,
.cr-stream-page .wp-block-post-template > li.kind-weather .pk-card { position: relative; z-index: 1; }

/* ---- v0.5.258: VHS windows per the photo ----
   Left window: wound tape fills the whole pane — concentric grooves,
   sheen sweep, spoked hub. Right window: near-white backing with the
   spool and film strip on it. */
.cr-stream-page .pk-card.k-watch:not(:has(.pk-media)):not(:has(.pk-embed)) {
	background:
		/* LEFT — glass streak */
		linear-gradient(115deg, transparent 26%, rgba(255, 255, 255, 0.14) 34%, transparent 46%) left 3% top 26% / 27% 52% no-repeat,
		/* LEFT — spoked white hub */
		radial-gradient(circle closest-side at 48% 52%, #f4f1ea 0 15%, #6a6560 16% 19%, transparent 20%) left 3% top 26% / 27% 52% no-repeat,
		/* LEFT — sheen sweep */
		conic-gradient(from 25deg at 48% 52%, rgba(255, 255, 255, 0.18) 0 38deg, transparent 38deg 150deg, rgba(255, 255, 255, 0.12) 150deg 190deg, transparent 190deg 360deg) left 3% top 26% / 27% 52% no-repeat,
		/* LEFT — tape grooves filling the pane */
		repeating-radial-gradient(circle at 48% 52%, #141218 0 2px, #201d26 2px 4px) left 3% top 26% / 27% 52% no-repeat,
		/* RIGHT — glass streak over everything */
		linear-gradient(115deg, transparent 26%, rgba(255, 255, 255, 0.28) 34%, transparent 46%) right 3% top 26% / 27% 52% no-repeat,
		/* RIGHT — spool on white (paints over the strip's top) */
		radial-gradient(circle closest-side at 46% 52%, #ffffff 0 26%, #8a857e 27% 31%, #35313c 32% 40%, transparent 41%) right 3% top 26% / 27% 52% no-repeat,
		/* RIGHT — film strip runs from under the spool to the window base */
		linear-gradient(180deg, #35313c 0%, #221f2a 100%) right 12.3% top 50% / 3% 28% no-repeat,
		/* RIGHT — near-white pane */
		linear-gradient(rgba(238, 235, 242, 0.92), rgba(214, 210, 220, 0.85)) right 3% top 26% / 27% 52% no-repeat,
		/* flap tiers */
		linear-gradient(#0c0b0f, #0c0b0f) top / 100% 13% no-repeat,
		repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0 1px, transparent 1px 4px) left 0 top 13% / 100% 9% no-repeat,
		/* shell ridges */
		repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0 1px, transparent 1px 5px),
		#17151b;
}

/* ---- v0.5.262: clippings lose their ink borders; reply date unquoted ---- */
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-article,
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-issue,
.cr-stream-page .pk-card.k-tag { border: 0; }

/* The quote rail belongs to the reply's quoted context only — never
   the date line. */
.cr-stream-page .k-reply .pk-sub.pk-stream-date {
	background: none;
	border-left: 0;
	padding: 0;
	margin: 0 0 0.4rem;
	font-style: normal;
	font-size: 0.75rem;
}

/* ---- v0.5.263: clippings carry the standard 4x4 hard shadow ---- */
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-article,
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-issue,
.cr-stream-page .pk-card.k-tag {
	filter: drop-shadow(4px 4px 0 var(--cr-hard-color, #241c4a));
}

/* ---- v0.5.264: thicken the clipping shadows ----
   A single hard drop-shadow antialiases thin along rotated torn
   silhouettes; stacking two fills it to match the box-shadow punch. */
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-article,
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-issue,
.cr-stream-page .pk-card.k-tag {
	filter: drop-shadow(3px 3px 0 var(--cr-hard-color, #241c4a)) drop-shadow(2px 2px 0 var(--cr-hard-color, #241c4a));
}

/* ============================================================
   v0.5.265 — torn edge, rebuilt for real shadows.
   clip-path clips its own box-shadow, and stacked drop-shadows
   read thin — so the tear is now PAINTED: paper teeth over an
   ink band at the card's bottom, on a plain rectangle that takes
   the standard 4x4 box-shadow like every other card.
   ============================================================ */
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-article,
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-issue,
.cr-stream-page .pk-card.k-tag {
	clip-path: none;
	filter: none;
	box-shadow: 4px 4px 0 var(--cr-hard-color, #241c4a);
	padding-bottom: 1.9rem;
	background-color: transparent;
	background-image:
		/* paper teeth pointing down, gaps reveal the ink band */
		conic-gradient(from 135deg at 50% 0%, var(--swi-paper, #ffffff) 0 90deg, transparent 90deg),
		/* ink band the tear sits on */
		linear-gradient(var(--cr-hard-color, #241c4a), var(--cr-hard-color, #241c4a)),
		/* ruled lines */
		repeating-linear-gradient(180deg, transparent 0, transparent calc(1.55em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) calc(1.55em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) 1.55em),
		/* paper */
		linear-gradient(var(--swi-paper, #ffffff), var(--swi-paper, #ffffff));
	background-size: 16px 9px, 100% 9px, 100% calc(100% - 9px), 100% calc(100% - 9px);
	background-position: bottom left, bottom left, top left, top left;
	background-repeat: repeat-x, no-repeat, no-repeat, no-repeat;
}
/* v0.5.267: one hue per kind — reply keeps the only blue.
   Pale tints derived from the palette: sky blue, periwinkle,
   orange (peach/blush), yellow (butter), cerulean (mint),
   plus manila and newsprint neutrals. */
.cr-stream-page .pk-card.k-article  { --swi-paper: #ffffff; } /* white — editorial */
.cr-stream-page .pk-card.k-reply    { --swi-paper: #eaf4fa; } /* pale sky blue */
.cr-stream-page .pk-card.k-quote    { --swi-paper: #f0eef8; } /* pale periwinkle */
.cr-stream-page .pk-card.k-issue    { --swi-paper: #fdf3e7; } /* pale peach */
.cr-stream-page .pk-card.k-favorite { --swi-paper: #fef7e0; } /* pale butter */
.cr-stream-page .pk-card.k-follow   { --swi-paper: #e9f4ef; } /* pale mint (cerulean) */
.cr-stream-page .pk-card.k-like     { --swi-paper: #fdeee6; } /* pale blush (orange) */
.cr-stream-page .pk-card.k-repost   { --swi-paper: #f3f1ea; } /* newsprint ivory-gray */
.cr-stream-page .pk-card.k-tag      { --swi-paper: #f6ead2; } /* manila tag stock */

/* ---- v0.5.266: retire the torn edge ----
   Verdict after six rounds: a torn silhouette and a hard offset
   shadow can't coexist cleanly (clip-path clips its own shadow;
   painted teeth read as trim). Clippings are straight-edged paper
   with the standard shadow; pins, tints, rules, and flourishes
   carry the scrap character. */
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-article,
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-issue,
.cr-stream-page .pk-card.k-tag {
	padding-bottom: 1.2rem;
	background-image:
		repeating-linear-gradient(180deg, transparent 0, transparent calc(1.55em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) calc(1.55em - 1px), var(--cr-border, rgba(36, 28, 74, 0.12)) 1.55em),
		linear-gradient(var(--swi-paper, #ffffff), var(--swi-paper, #ffffff));
	background-size: 100% 100%, 100% 100%;
	background-position: top left;
	background-repeat: no-repeat;
}

/* ---- v0.5.270: ink border returns on six clippings ----
   (like, favorite, issue, follow stay borderless.) */
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-question,
.cr-stream-page .pk-card.k-tag,
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-article {
	border: 2px solid var(--cr-ink, #241c4a);
}

/* ---- v0.5.272: borders for the rest of the paper cards ----
   eat, review, favorite, follow, issue join the bordered set. */
.cr-stream-page .pk-card.k-eat,
.cr-stream-page .pk-card.k-review,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-issue {
	border: 2px solid var(--cr-ink, #241c4a);
}

/* ---- v0.5.273: note joins the bordered set; second doodle field ---- */
.cr-stream-page .pk-card.k-note { border: 2px solid var(--cr-ink, #241c4a); }

/* A much denser layer of margin furniture, drawn on the post grid
   itself so % positions span the full collage height. z-index -1
   keeps every doodle behind the cards — they peek through the gaps. */
.cr-stream-page .wp-block-post-template::before,
.cr-stream-page .wp-block-post-template::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: -1;
	background-repeat: no-repeat;
	opacity: 0.7;
}
/* hand-drawn doodles: spring, hearts, star, sparkles, spiral,
   zigzag, stitches, curly arrow, dotted ring */
.cr-stream-page .wp-block-post-template::before {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 30' fill='none'%3E%3Cpath d='M4 22 q 6 -18 12 0 q 6 18 12 0 q 6 -18 12 0 q 6 18 12 0 q 6 -18 12 0' stroke='%23fb8500' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none'%3E%3Cpath d='M20 32 C 8 24, 5 14, 11 10 C 15 7, 19 10, 20 14 C 21 10, 25 7, 29 10 C 35 14, 32 24, 20 32 Z' stroke='%23bcb5e3' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44' fill='none'%3E%3Cpath d='M22 4 L27 16 L40 17 L30 25 L34 38 L22 30 L10 38 L14 25 L4 17 L17 16 Z' stroke='%23fb8500' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%238ecae6' d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6z'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffb703' d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6z'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none'%3E%3Cpath d='M20 20 m 0 -1 a 1 1 0 0 1 1 1 a 2.5 2.5 0 0 1 -2.5 2.5 a 4.5 4.5 0 0 1 -4.5 -4.5 a 7 7 0 0 1 7 -7 a 10 10 0 0 1 10 10 a 13 13 0 0 1 -13 13' stroke='%23b85f00' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 20' fill='none'%3E%3Cpath d='M4 16 L 13 5 L 22 16 L 31 5 L 40 16 L 49 5 L 58 16 L 66 6' stroke='%23ffb703' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 18' fill='none'%3E%3Cg stroke='%23bcb5e3' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 3 l 10 12 M16 3 L 6 15'/%3E%3Cpath d='M26 3 l 10 12 M36 3 L 26 15'/%3E%3Cpath d='M46 3 l 10 12 M56 3 L 46 15'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 44' fill='none'%3E%3Cpath d='M6 38 C 4 18, 20 6, 40 10 m -8 -6 l 8 6 l -7 7' stroke='%23126782' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none'%3E%3Ccircle cx='20' cy='20' r='16' stroke='%238ecae6' stroke-width='2.5' stroke-dasharray='4 5'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none'%3E%3Cpath d='M20 32 C 8 24, 5 14, 11 10 C 15 7, 19 10, 20 14 C 21 10, 25 7, 29 10 C 35 14, 32 24, 20 32 Z' stroke='%23fb8500' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 30' fill='none'%3E%3Cpath d='M4 22 q 6 -18 12 0 q 6 18 12 0 q 6 -18 12 0 q 6 18 12 0 q 6 -18 12 0' stroke='%238ecae6' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");
	background-size: 4.5rem 1.7rem, 2.4rem 2.4rem, 2.6rem 2.6rem, 1.2rem 1.2rem, 1rem 1rem, 2.4rem 2.4rem, 4rem 1.2rem, 3.4rem 1rem, 3.2rem 2.5rem, 2.4rem 2.4rem, 2rem 2rem, 4.5rem 1.7rem;
	background-position:
		left 0.4% top 13%,
		right 1.2% top 8%,
		left 1% top 21%,
		right 2% top 17%,
		left 2.5% top 30%,
		right 0.8% top 27%,
		left 0.6% top 44%,
		right 1.5% top 38%,
		left 1.2% top 57%,
		right 1% top 52%,
		left 2% top 74%,
		right 0.6% top 66%;
}
/* washi strips, halftone patches, asterisks, register marks, rings */
.cr-stream-page .wp-block-post-template::after {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 50'%3E%3Cdefs%3E%3Cpattern id='w1' width='14' height='14' patternUnits='userSpaceOnUse' patternTransform='rotate(45)'%3E%3Crect width='7' height='14' fill='%23ffb703' fill-opacity='0.75'/%3E%3Crect x='7' width='7' height='14' fill='%23ffe29a' fill-opacity='0.75'/%3E%3C/pattern%3E%3C/defs%3E%3Crect x='10' y='15' width='120' height='20' fill='url(%23w1)' transform='rotate(14 70 25)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 50'%3E%3Cdefs%3E%3Cpattern id='w2' width='12' height='12' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='6' cy='6' r='2.4' fill='%23fbfaf5' fill-opacity='0.9'/%3E%3C/pattern%3E%3C/defs%3E%3Crect x='10' y='15' width='120' height='20' fill='%238ecae6' fill-opacity='0.8' transform='rotate(-11 70 25)'/%3E%3Crect x='10' y='15' width='120' height='20' fill='url(%23w2)' transform='rotate(-11 70 25)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 50'%3E%3Cdefs%3E%3Cpattern id='w3' width='16' height='16' patternUnits='userSpaceOnUse' patternTransform='rotate(-45)'%3E%3Crect width='8' height='16' fill='%23fb8500' fill-opacity='0.6'/%3E%3C/pattern%3E%3C/defs%3E%3Crect x='10' y='15' width='120' height='20' fill='url(%23w3)' transform='rotate(23 70 25)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 70'%3E%3Cdefs%3E%3Cpattern id='h2' width='11' height='11' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='5' cy='5' r='2.4' fill='%23bcb5e3' fill-opacity='0.75'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100' height='70' fill='url(%23h2)' transform='rotate(8 50 35)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Cg stroke='%23fb8500' stroke-width='3.5' stroke-linecap='round' transform='rotate(-9 16 16)'%3E%3Cline x1='16' y1='3' x2='16' y2='29'/%3E%3Cline x1='4.7' y1='9.5' x2='27.3' y2='22.5'/%3E%3Cline x1='27.3' y1='9.5' x2='4.7' y2='22.5'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Cg stroke='%23b85f00' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='16' y1='4' x2='16' y2='28'/%3E%3Cline x1='4' y1='16' x2='28' y2='16'/%3E%3Ccircle cx='16' cy='16' r='7'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none'%3E%3Ccircle cx='20' cy='20' r='16' stroke='%238ecae6' stroke-width='2.5'/%3E%3Ccircle cx='20' cy='20' r='9' stroke='%238ecae6' stroke-width='2.5'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 50'%3E%3Cdefs%3E%3Cpattern id='w4' width='14' height='14' patternUnits='userSpaceOnUse' patternTransform='rotate(45)'%3E%3Crect width='7' height='14' fill='%23bcb5e3' fill-opacity='0.8'/%3E%3C/pattern%3E%3C/defs%3E%3Crect x='10' y='15' width='120' height='20' fill='url(%23w4)' transform='rotate(-17 70 25)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Cg stroke='%23ffb703' stroke-width='3.5' stroke-linecap='round' transform='rotate(14 16 16)'%3E%3Cline x1='16' y1='3' x2='16' y2='29'/%3E%3Cline x1='4.7' y1='9.5' x2='27.3' y2='22.5'/%3E%3Cline x1='27.3' y1='9.5' x2='4.7' y2='22.5'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 70'%3E%3Cdefs%3E%3Cpattern id='h3' width='12' height='12' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='5' cy='5' r='2.2' fill='%238ecae6' fill-opacity='0.7'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100' height='70' fill='url(%23h3)' transform='rotate(-7 50 35)'/%3E%3C/svg%3E");
	background-size: 8rem 3rem, 8rem 3rem, 7.5rem 2.8rem, 5.5rem 4rem, 1.6rem 1.6rem, 1.8rem 1.8rem, 1.9rem 1.9rem, 8rem 3rem, 1.5rem 1.5rem, 5rem 3.6rem;
	background-position:
		right -2rem top 5%,
		left -2.2rem top 24%,
		right -1.8rem top 47%,
		left 0.5% top 63%,
		right 2.2% top 33%,
		left 2.8% top 49%,
		right 1.4% top 72%,
		left -2.2rem top 86%,
		right 2.5% top 91%,
		left 1% top 96%;
}

/* ---- v0.5.274: zine print-shop furniture ----
   Comic and print-production doodles on the query wrapper's pseudos
   (third + fourth doodle fields): starburst, speech bubble, lightning,
   barcode, registration bar, stamp frame, staples, ink splat,
   cut-here line, photo corners. Same z-index -1 trick. */
.cr-stream-page .cr-page__content > .wp-block-query::before,
.cr-stream-page .cr-page__content > .wp-block-query::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: -1;
	background-repeat: no-repeat;
	opacity: 0.75;
}
.cr-stream-page .cr-page__content > .wp-block-query::before {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none'%3E%3Cpath d='M30 3 L35 20 L50 10 L41 25 L58 28 L42 34 L52 49 L35 41 L32 58 L26 41 L10 50 L19 34 L2 30 L19 26 L10 11 L25 20 Z' stroke='%23fb8500' stroke-width='2.5' stroke-linejoin='round' transform='rotate(-8 30 30)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 52' fill='none'%3E%3Cpath d='M8 8 h 48 a 4 4 0 0 1 4 4 v 22 a 4 4 0 0 1 -4 4 H 30 l -10 10 l 2 -10 H 8 a 4 4 0 0 1 -4 -4 V 12 a 4 4 0 0 1 4 -4 Z' stroke='%23241c4a' stroke-width='2.5' stroke-linejoin='round' opacity='0.4' transform='rotate(4 32 26)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 56' fill='none'%3E%3Cpath d='M22 3 L8 30 h 9 L12 53 L30 24 h -10 L28 3 Z' fill='%23ffb703' stroke='%23b85f00' stroke-width='2' stroke-linejoin='round' transform='rotate(10 18 28)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 34' fill='none'%3E%3Cg stroke='%23b85f00' stroke-width='4' stroke-linecap='round' transform='rotate(-7 15 17)'%3E%3Cline x1='9' y1='4' x2='9' y2='20'/%3E%3Cline x1='21' y1='4' x2='21' y2='20'/%3E%3C/g%3E%3Cg fill='%23b85f00' transform='rotate(-7 15 17)'%3E%3Ccircle cx='9' cy='29' r='2.4'/%3E%3Ccircle cx='21' cy='29' r='2.4'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 26' fill='none'%3E%3Cg opacity='0.5'%3E%3Cline x1='30' y1='13' x2='108' y2='13' stroke='%23241c4a' stroke-width='2' stroke-dasharray='5 5'/%3E%3Ccircle cx='9' cy='7' r='4' stroke='%23241c4a' stroke-width='2'/%3E%3Ccircle cx='9' cy='19' r='4' stroke='%23241c4a' stroke-width='2'/%3E%3Cpath d='M12 9 L 28 13 L 12 17' stroke='%23241c4a' stroke-width='2' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 34'%3E%3Cg fill='%23241c4a' opacity='0.45'%3E%3Crect x='4' width='3' height='34'/%3E%3Crect x='9' width='1.5' height='34'/%3E%3Crect x='13' width='4' height='34'/%3E%3Crect x='20' width='1.5' height='34'/%3E%3Crect x='24' width='2.5' height='34'/%3E%3Crect x='29' width='5' height='34'/%3E%3Crect x='37' width='1.5' height='34'/%3E%3Crect x='41' width='3' height='34'/%3E%3Crect x='47' width='1.5' height='34'/%3E%3Crect x='51' width='4' height='34'/%3E%3Crect x='58' width='2' height='34'/%3E%3Crect x='63' width='3.5' height='34'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 20'%3E%3Cg transform='rotate(-3 45 10)'%3E%3Crect x='2' y='2' width='16' height='16' fill='%23fb8500'/%3E%3Crect x='20' y='2' width='16' height='16' fill='%23ffb703'/%3E%3Crect x='38' y='2' width='16' height='16' fill='%238ecae6'/%3E%3Crect x='56' y='2' width='16' height='16' fill='%23bcb5e3'/%3E%3Crect x='74' y='2' width='16' height='16' fill='%23241c4a'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 3.2rem 3.2rem, 3.4rem 2.8rem, 1.8rem 2.8rem, 1.5rem 1.7rem, 5.5rem 1.3rem, 3.4rem 1.7rem, 4.2rem 1rem;
	background-position:
		right 0.7% top 4%,
		left 0.9% top 11%,
		right 2% top 23%,
		left 2.4% top 36%,
		left 0.5% top 50%,
		right 1.1% top 59%,
		left 1% top 79%;
}
.cr-stream-page .cr-page__content > .wp-block-query::after {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 68' fill='none'%3E%3Crect x='4' y='4' width='48' height='60' stroke='%238ecae6' stroke-width='3' stroke-dasharray='0.1 9' stroke-linecap='round' transform='rotate(6 28 34)'/%3E%3Crect x='13' y='13' width='30' height='42' stroke='%238ecae6' stroke-width='2' transform='rotate(6 28 34)'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 20' fill='none'%3E%3Cg stroke='%23241c4a' stroke-width='3' stroke-linecap='round' opacity='0.55'%3E%3Cline x1='5' y1='6' x2='29' y2='4'/%3E%3Cline x1='6' y1='15' x2='30' y2='13'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 52' fill='none'%3E%3Cpath d='M30 10 C 40 4, 52 10, 50 22 C 56 24, 56 34, 48 36 C 50 46, 38 50, 30 44 C 20 50, 10 44, 12 34 C 4 32, 6 20, 14 20 C 12 10, 22 4, 30 10 Z' fill='%23bcb5e3' opacity='0.6'/%3E%3Ccircle cx='55' cy='14' r='2.5' fill='%23bcb5e3' opacity='0.6'/%3E%3Ccircle cx='8' cy='42' r='2' fill='%23bcb5e3' opacity='0.6'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='%23241c4a' opacity='0.4'%3E%3Cpath d='M2 2 h 14 L 2 16 Z'/%3E%3Cpath d='M38 24 v 14 H 24 Z'/%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath fill='%23ffb703' d='M15 1 L18 11 L28 8 L21 15 L28 22 L18 19 L15 29 L12 19 L2 22 L9 15 L2 8 L12 11 Z'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 24' fill='none'%3E%3Cg stroke-linecap='round' stroke-width='2.5'%3E%3Cg stroke='%238ecae6'%3E%3Cline x1='8' y1='4' x2='8' y2='14'/%3E%3Cline x1='3' y1='9' x2='13' y2='9'/%3E%3C/g%3E%3Cg stroke='%23fb8500'%3E%3Cline x1='30' y1='10' x2='30' y2='20'/%3E%3Cline x1='25' y1='15' x2='35' y2='15'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none'%3E%3Cpath d='M30 3 L35 20 L50 10 L41 25 L58 28 L42 34 L52 49 L35 41 L32 58 L26 41 L10 50 L19 34 L2 30 L19 26 L10 11 L25 20 Z' stroke='%23126782' stroke-width='2.5' stroke-linejoin='round' transform='rotate(14 30 30)'/%3E%3C/svg%3E");
	background-size: 3rem 3.6rem, 1.7rem 1rem, 3rem 2.6rem, 2rem 2rem, 1.4rem 1.4rem, 2.2rem 1.2rem, 2.6rem 2.6rem;
	background-position:
		left 0.6% top 7%,
		right 2.6% top 16%,
		right 0.6% top 43%,
		left 1.8% top 61%,
		right 2.2% top 76%,
		left 0.9% top 88%,
		right 0.8% top 96%;
}

/* ---- v0.5.276: dark-mode contrast pass (WCAG AA) ----
   These cards keep raw light paper in dark mode (paper is a physical
   object), but their text inherited the flipped ivory/periwinkle
   tokens — 1.0–1.9:1 on paper. Re-pin the ink tokens locally to the
   light-mode values: identical rendering in light mode, dark ink on
   paper in dark mode (>= 5.9:1 on the darkest paper, manila). */
.cr-stream-page .pk-card.k-article,
.cr-stream-page .pk-card.k-reply,
.cr-stream-page .pk-card.k-quote,
.cr-stream-page .pk-card.k-issue,
.cr-stream-page .pk-card.k-favorite,
.cr-stream-page .pk-card.k-follow,
.cr-stream-page .pk-card.k-like,
.cr-stream-page .pk-card.k-repost,
.cr-stream-page .pk-card.k-tag,
.cr-stream-page .pk-card.k-question,
.cr-stream-page .pk-card.k-craft,
.cr-stream-page .pk-card.k-eat,
.cr-stream-page .pk-card.k-photo {
	--cr-ink: #241c4a;
	--cr-ink-muted: #126782;
	--cr-ink-soft: #3d2f6e;
	--cr-border: rgba(36, 28, 74, 0.12);
	--cr-border-strong: rgba(36, 28, 74, 0.24);
	--cr-link: #126782;
}
/* cassette label sub sits on the raw label paper in both modes */
.cr-stream-page .k-audio .pk-sub { color: #126782; }

/* rsvp GOING stamp: burnt orange reads 3.6:1 on the dark ticket —
   flip to selective yellow in dark mode only (~9:1). */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .cr-stream-page .k-rsvp .pk-chip.p-rsvp {
		color: #ffb703;
		border-color: #ffb703;
	}
}
:root[data-theme="dark"] .cr-stream-page .k-rsvp .pk-chip.p-rsvp {
	color: #ffb703;
	border-color: #ffb703;
}

/* ---- v0.5.278: masthead spacing + alignment ----
   More air under the header bar; the constrained layout was centering
   the 40rem lede while eyebrow and title sat left — align all three. */
.cr-stream-page .cr-stream__masthead { margin-top: 4.25rem; }
.cr-stream-page .cr-stream__masthead > * { margin-left: 0 !important; margin-right: auto !important; }

/* ============================================================
   v0.6.0 — SINGLE-POST SHELL, Phase 1.
   Zine shell for every kind's permalink, scoped to the
   body.kind-{slug} class from kind_body_class(). Regular pages
   and non-kind views are untouched. Families and per-kind
   carry-over land in later phases.
   ============================================================ */

/* Dotted paper ground, same grammar as the stream. */
body[class*="kind-"].single .single-post {
	background-image: radial-gradient(var(--cr-border, rgba(36, 28, 74, 0.12)) 1px, transparent 1px);
	background-size: 22px 22px;
}

/* Kind chip rides the per-kind accent; category chip stays tape. */
body[class*="kind-"].single .single-post__kind a {
	background: var(--pk-kind, var(--cr-tape, #f3e5b8));
	color: var(--pk-badge-ink, var(--cr-tape-ink, #241c4a));
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: 2px 2px 0 var(--cr-hard-color, #241c4a);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 700;
	transform: rotate(-2deg);
	display: inline-block;
}

/* Marker bar under the post header, stream masthead energy. */
body[class*="kind-"].single .single-post__header::after {
	content: "";
	display: block;
	width: 7rem;
	height: 0.45rem;
	margin-top: 0.9rem;
	background: var(--cr-ut-orange, #fb8500);
	transform: rotate(-1.2deg);
}

/* Featured image pastes onto the page: ink border + hard shadow. */
body[class*="kind-"].single .single-post__featured img {
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
}

/* The in-content kind card gets the stream's paper baseline. */
body[class*="kind-"].single .single-post__content .pk-card {
	border: 2px solid var(--cr-ink, #241c4a);
	box-shadow: var(--cr-shadow-hard, 4px 4px 0 var(--cr-ink, #241c4a));
	background: var(--cr-surface-elevated, #fff);
}

/* One quiet margin doodle field — a fraction of the stream dose. */
body[class*="kind-"].single .single-post {
	position: relative;
}

body[class*="kind-"].single .single-post::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%238ecae6' d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6z'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none'%3E%3Ccircle cx='20' cy='20' r='16' stroke='%23b85f00' stroke-width='2.5' stroke-dasharray='4 5'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 30' fill='none'%3E%3Cpath d='M4 22 q 6 -18 12 0 q 6 18 12 0 q 6 -18 12 0 q 6 18 12 0 q 6 -18 12 0' stroke='%23fb8500' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E"),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none'%3E%3Cpath d='M20 32 C 8 24, 5 14, 11 10 C 15 7, 19 10, 20 14 C 21 10, 25 7, 29 10 C 35 14, 32 24, 20 32 Z' stroke='%23bcb5e3' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 1.1rem 1.1rem, 2rem 2rem, 4rem 1.5rem, 2.2rem 2.2rem;
	background-position:
		left 2% top 9rem,
		right 1.5% top 16rem,
		left 1.2% top 55%,
		right 2% top 78%;
	opacity: 0.6;
}

body[class*="kind-"].single .single-post > * {
	position: relative;
	z-index: 1;
}

/* Checkin's OSM embed becomes a paper map (stays light both modes). */
body.kind-checkin.single .pk-embed--map,
body.kind-checkin.single .pk-embed--map iframe {
	border: 2px solid #241c4a;
	box-shadow: 4px 4px 0 var(--cr-hard-color, #241c4a);
	transform: rotate(-0.8deg);
	background: #fbfaf5;
}

/* ============================================================
   v0.6.2 — Phase 3a: media-log singles get the stream cover box.
   Same recipe as the stream cover kinds (violet box, art on top
   edge-to-edge, ivory caption band, price-sticker kind label),
   hero-sized and centered in the post content.
   ============================================================ */
body:is(.kind-watch, .kind-listen, .kind-read, .kind-jam, .kind-play, .kind-review, .kind-wish, .kind-acquisition).single .single-post__content .pk-card {
	display: flex;
	flex-direction: column;
	max-width: 24rem;
	margin-inline: auto;
	padding: 0;
	/* Russian Violet from the theme palette — !important because a
	   logged-in-session sheet outranked the plain declaration and
	   rendered a slate fallback instead. */
	background: var(--cr-russian-violet, #241c4a) !important;
	border: 0;
	border-radius: 5px;
	overflow: hidden;
	box-shadow: var(--cr-shadow-hard-2, 6px 6px 0 var(--cr-ink, #241c4a));
	color: #fbfaf5;
	position: relative;
}

/* Art big, on top, edge to edge. */
.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-media {
	order: -1;
	display: block;
	margin: 0;
}

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
	border: 0;
	border-bottom: 2px solid rgba(251, 250, 245, 0.7);
	box-shadow: none;
	object-fit: cover;
}

.single .single-post__content .pk-card:is(.k-watch, .k-read, .k-wish) .pk-media img { aspect-ratio: 2 / 3; }
.single .single-post__content .pk-card:is(.k-listen, .k-jam) .pk-media img { aspect-ratio: 1 / 1; }
.single .single-post__content .pk-card:is(.k-play, .k-review, .k-acquisition) .pk-media img { aspect-ratio: 4 / 3; }

/* Caption band. */
.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-title {
	color: #fbfaf5;
	font-family: var(--cr-font-accent, serif);
	font-weight: 700;
	font-size: 1.05rem;
	line-height: 1.25;
	padding: 0.6rem 0.75rem 0;
}

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-title a { color: inherit; text-decoration: none; }

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-sub {
	padding: 0.2rem 0.75rem 0;
	font-size: 0.85rem;
	color: rgba(251, 250, 245, 0.85);
}

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-stars {
	color: var(--cr-selective-yellow, #ffb703);
	padding: 0.35rem 0.75rem 0;
}

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-excerpt { padding: 0.3rem 0.75rem 0; }

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-meta { padding: 0.45rem 0.75rem 0.8rem; }

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-link {
	font-family: var(--cr-font-accent, serif);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--cr-sky-blue, #8ecae6);
}

/* Kind badge pinned to the art, ivory ring. */
.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-badge {
	position: absolute;
	top: 0.55rem;
	left: 0.55rem;
	z-index: 2;
	box-shadow: 0 0 0 3px #fbfaf5;
}

/* Kind label → price sticker. */
.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-kindlabel {
	position: absolute;
	top: 0.55rem;
	right: 0.55rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 3.4rem;
	height: 3.4rem;
	margin: 0;
	padding: 0.2rem;
	border-radius: 50%;
	background: var(--cr-selective-yellow, #ffb703);
	border: 2px solid var(--cr-ut-orange, #fb8500);
	box-shadow: 0 0 0 3px #fbfaf5;
	color: #023047;
	font-size: max(0.5rem, var(--cr-text-floor, 0.7rem));
	font-weight: 900;
	letter-spacing: 0.04em;
	text-align: center;
	line-height: 1.15;
	transform: rotate(8deg);
}

/* Wish: not yet mine. */
.single .single-post__content .pk-card.k-wish .pk-media img { opacity: 0.75; }
.single .single-post__content .pk-card.k-wish { outline: 2px dashed rgba(251, 250, 245, 0.6); outline-offset: -6px; }

/* Shelf shadow under the hero box. */
body:is(.kind-watch, .kind-listen, .kind-read, .kind-jam, .kind-play, .kind-review, .kind-wish, .kind-acquisition).single .single-post__content .pk-card::after {
	content: none;
}

/* ---- v0.6.3: cover-kind singles drop the header kind chip ----
   The cover box's price sticker already announces the kind; the
   header chip doubled it (and read as a stray outline). Card-less
   kinds keep the chip — it's their only kind signal. */
body:is(.kind-watch, .kind-listen, .kind-read, .kind-jam, .kind-play, .kind-review, .kind-wish, .kind-acquisition).single .single-post__kind {
	/* !important: something in the 70-sheet cascade outranks the plain
	   declaration (verified empirically); this is a binary decorative
	   toggle, so the sledgehammer is safe. */
	display: none !important;
}

/* ---- v0.6.4: dedicated cards nest pk-media INSIDE pk-body ----
   (unlike the stream's generic card) — make the body the flex
   column, kill its tint wash so the deep violet shows, and put
   the art first so the badge/sticker land on it. */
.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-body {
	display: flex;
	flex-direction: column;
	background: none;
	padding: 0;
	margin: 0;
}

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-body .pk-media {
	order: -1;
	margin: 0;
}

/* ---- v0.6.7: the base card's --pk-tint wash is an inset ::before
   overlay — over the violet box it rendered as slate. Off for the
   cover singles; the box IS the paint. ---- */
.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition)::before {
	content: none !important;
}

/* ---- v0.6.9: editor status chips get self-consistent colors ----
   The plugin's editor cards paint .post-kinds-card__badge from
   --pkiw-state-{info,success,error,warning} — tokens it never defines —
   while the chip's text is `inherit`. Background and foreground are
   decided independently, so the label can land dark-on-dark and vanish.
   Define the state tokens from the palette AND pin a contrasting ink,
   so the chip is legible whichever state it is. Editor-only: this class
   exists only in the block editor's card markup. */
.post-kinds-card__badge {
	background: var(--cr-periwinkle, #bcb5e3) !important;
	color: var(--cr-russian-violet, #241c4a) !important;
	padding: 0.15rem 0.6rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.post-kinds-card__badge--reading,
.post-kinds-card__badge--playing,
.post-kinds-card__badge--movie,
.post-kinds-card__badge--interested,
.post-kinds-card__badge--remote {
	background: var(--cr-sky-blue, #8ecae6) !important;
}

.post-kinds-card__badge--finished,
.post-kinds-card__badge--completed,
.post-kinds-card__badge--going,
.post-kinds-card__badge--yes {
	background: #cfe8d8 !important;
}

.post-kinds-card__badge--abandoned,
.post-kinds-card__badge--no,
.post-kinds-card__badge--not-going {
	background: #f4d4d8 !important;
}

.post-kinds-card__badge--maybe {
	background: var(--cr-selective-yellow, #ffb703) !important;
}

.post-kinds-card__badge--to-read,
.post-kinds-card__badge--backlog,
.post-kinds-card__badge--wishlist {
	background: var(--cr-tape, #f3e5b8) !important;
}

/* ---- v0.6.10: cover-kind singles — one piece of artwork, sized right ----
   1. The card already shows the cover; the shell's featured image repeats
      it full-bleed above. The card is the hero, so the duplicate goes.
   2. The plugin sizes book/poster art as a 48x70 thumbnail and lays
      .pk-media out as a row. Inside the cover box the art is the hero:
      neutralize the row and let the image fill the box. */
body:is(.kind-watch, .kind-listen, .kind-read, .kind-jam, .kind-play, .kind-review, .kind-wish, .kind-acquisition).single .single-post__featured {
	display: none !important;
}

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-media {
	display: block !important;
	gap: 0 !important;
	margin-top: 0 !important;
}

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-media img,
.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-thumb--poster,
.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-thumb {
	width: 100% !important;
	height: auto !important;
	max-width: none !important;
	border-radius: 0 !important;
}

/* ---- v0.6.11: cover box body stretches to the card edge ----
   .pk-card carries align-items:start from the plugin's grid layout;
   once the card is a column flex, that made .pk-body shrink to its
   content (352px inside a 384px card) so the art stopped short of
   the edge. Stretch it and the cover fills the box edge to edge. */
.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) {
	align-items: stretch !important;
}

.single .single-post__content .pk-card:is(.k-watch, .k-listen, .k-read, .k-jam, .k-play, .k-review, .k-wish, .k-acquisition) .pk-body {
	width: 100% !important;
	align-self: stretch !important;
}

/* ============================================================
   v0.6.12 — mood, consolidated (retires the v0.5.229/238/247–249
   mood layers). The emoji IS the enamel pin now; the title and
   date read below it on the paper — legible, clickable, never
   clipped by the circle. Raw hexes on the pin deliberate: a
   physical pin looks identical in dark mode. Covers both card
   shapes: the mood-card block (micro-post) and the generic
   stream card, whose emoji the plugin renders itself
   (render_generic_stream_card, post-kinds-for-indieweb).
   ============================================================ */
.cr-stream-page .pk-card.k-mood {
	display: grid;
	justify-items: center;
	align-content: start;
	width: auto;
	aspect-ratio: auto;
	height: auto;
	margin-inline: auto;
	padding: 0.85rem 0.5rem 0.5rem;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	overflow: visible;
	text-align: center;
	transform: none;
}
.cr-stream-page .pk-card.k-mood .pk-body { display: contents; }
.cr-stream-page .pk-card.k-mood .pk-mood { display: contents; }
.cr-stream-page .pk-card.k-mood .pk-badge,
.cr-stream-page .pk-card.k-mood .pk-kindlabel,
.cr-stream-page .pk-card.k-mood .pk-excerpt { display: none; }

/* The pin: purple enamel face, paper-and-ink ring, gloss + halftone. */
.cr-stream-page .pk-card.k-mood .pk-mood__emoji {
	position: relative;
	display: grid;
	place-content: center;
	width: 7.5rem;
	aspect-ratio: 1;
	margin-bottom: 0.7rem;
	border-radius: 50%;
	background: radial-gradient(circle at 32% 26%, #3d2f6e 0%, #241c4a 55%);
	border: 3px solid #241c4a;
	box-shadow: 0 0 0 4px #fbfaf5, 0 0 0 6px #241c4a, 0 5px 12px -3px rgba(36, 28, 74, 0.5);
	overflow: hidden;
	font-size: 3.4rem;
	line-height: 1;
	transform: rotate(-2deg);
}
.cr-stream-page .pk-card.k-mood .pk-mood__emoji::before {
	content: "";
	position: absolute;
	top: 8%;
	left: 12%;
	width: 42%;
	height: 22%;
	border-radius: 50%;
	background: rgba(251, 250, 245, 0.35);
	transform: rotate(-24deg);
	filter: blur(2px);
}
.cr-stream-page .pk-card.k-mood .pk-mood__emoji::after {
	content: "";
	position: absolute;
	bottom: -6%;
	right: -8%;
	width: 60%;
	height: 55%;
	border-radius: 50%;
	background-image: radial-gradient(rgba(251, 250, 245, 0.28) 1.5px, transparent 2px);
	background-size: 8px 8px;
}

/* Caption on the paper: linked title (or the micro-post's mood word),
   date underneath. */
.cr-stream-page .pk-card.k-mood .pk-caption {
	display: grid;
	gap: 0.15rem;
	justify-items: center;
}
.cr-stream-page .pk-card.k-mood .pk-title,
.cr-stream-page .pk-card.k-mood .pk-mood__note {
	font-family: var(--cr-font-accent, "Roboto Slab", serif);
	font-weight: 700;
	font-size: 0.95rem;
	line-height: 1.25;
	color: var(--cr-ink, #241c4a);
	margin: 0;
	padding: 0;
}
.cr-stream-page .pk-card.k-mood .pk-sub,
.cr-stream-page .pk-card.k-mood .pk-stream-date,
.cr-stream-page .pk-card.k-mood .pk-meta .dt-published {
	display: block;
	font-family: var(--cr-font-accent, "Roboto Slab", serif);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cr-cerulean, #126782);
	margin: 0;
	padding: 0;
}
.cr-stream-page .pk-card.k-mood .pk-stream-date time { border: 0; padding: 0; }
.cr-stream-page .pk-card.k-mood .pk-meta { display: block; margin: 0; padding: 0; }

/* Metal clasp peeking from behind the pin. */
.cr-stream-page .wp-block-post-template > li.kind-mood { position: relative; }
.cr-stream-page .wp-block-post-template > li.kind-mood::before {
	content: "";
	position: absolute;
	top: 0.4rem;
	left: 50%;
	margin-left: -1.6rem;
	width: 3.2rem;
	height: 0.85rem;
	border: 2.5px solid #9a958a;
	border-radius: 999px;
	background: linear-gradient(180deg, #d8d3c8, #a8a398);
	box-shadow: 0 1px 2px rgba(36, 28, 74, 0.4);
	transform: rotate(-4deg);
	z-index: 0;
}
.cr-stream-page .wp-block-post-template > li.kind-mood .pk-card { position: relative; z-index: 1; }

/* ============================================================
   v0.7.5 — stream: polaroids open the post, caption carries the
   title, and the masthead gets its air back.
   ============================================================ */

/* Polaroid = link. The plugin's stream card carries one permalink, on
   the title. Stretch that anchor over the card so the photo, the frame,
   and the caption all open the post — one link for assistive tech, no
   duplicate target wrapped around the image. */
.cr-stream-page .kind-photo .pk-card {
	position: relative;
	padding-bottom: 1.1rem;
}
.cr-stream-page .kind-photo .pk-card .pk-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* Title + date in the white strip. 0.5.237's "one caption voice" hid
   the title whenever the polaroid held a picture and left the excerpt to
   speak — but a photo posted from Outpost has no excerpt, so the strip
   showed the date alone. The title is the caption now, in the
   handwriting face; the date sits under it as a small stamp. */
.cr-stream-page .kind-photo .pk-card:has(img) .pk-title { display: block; }
.cr-stream-page .kind-photo .pk-card .pk-caption { padding: 0.15rem 0.15rem 0; }
.cr-stream-page .kind-photo .pk-card .pk-title {
	font-family: var(--cr-font-display, cursive);
	font-size: 0.95rem;
	line-height: 1.45;
	color: #241c4a;
	margin: 0;
	padding: 0;
}
.cr-stream-page .kind-photo .pk-card .pk-title a { text-decoration: none; }
.cr-stream-page .kind-photo .pk-card .pk-sub { padding: 0.3rem 0 0; }
.cr-stream-page .kind-photo .pk-card .pk-stream-date time {
	border: 0;
	padding: 0;
	color: #126782;
	letter-spacing: 0.14em;
}
/* Read more is hidden on the stream; its empty row shouldn't pad the strip. */
.cr-stream-page .kind-photo .pk-card .pk-meta { padding: 0; }

/* Hover / focus: the caption underlines and the photo's dashed mount
   settles to a solid line. Focus ring rides on the whole polaroid. */
.cr-stream-page .kind-photo .pk-card:has(.pk-title a:hover) .pk-title a,
.cr-stream-page .kind-photo .pk-card:has(.pk-title a:focus-visible) .pk-title a {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.15em;
}
.cr-stream-page .kind-photo .pk-card:has(.pk-title a:hover) img { border-style: solid; }
.cr-stream-page .kind-photo .pk-card:has(.pk-title a:focus-visible) {
	outline: 3px solid var(--cr-selective-yellow, #ffb703);
	outline-offset: 3px;
}
@supports selector(:has(a)) {
	.cr-stream-page .kind-photo .pk-card .pk-title a:focus-visible { outline: none; }
}

/* Masthead air. Core's layout rule
   `:root :where(.is-layout-constrained) > :first-child { margin-block-start: 0 }`
   ties `.cr-stream-page .cr-stream__masthead` on specificity and prints
   after the theme stylesheet, so 0.5.278's 4.25rem never applied — the
   eyebrow sat 1px under the sticky header. One more class wins the tie. */
.cr-stream-page .cr-page__content > .cr-stream__masthead { margin-block-start: 2rem; }
