/* ---------------------------------------------------------------------------
 * rush-r3-docs.css — REDESIGN r3 "THE CUT", WP track, builder DOCS.
 *
 * Owns the reading documents: the legal pages (page.php: Privacy / Terms /
 * EULA), the journal single post (single.php) and the 404 (404.php).
 * Namespace: r3d-. Everything reads ROLE tokens (--t-*) from rush-theme.css;
 * the only primitives are the two shared blocks mirrored from rush-shot.css
 * below (diff gate) and the lines annotated `fixed`.
 *
 * Scenes here are NOT the homepage's: a document opens with one cut (the
 * ink plate + its gold hairline edge + the per-line type rise) and then
 * becomes a READING experience — measure, rhythm, a sticky rail that fills
 * with gold as you read, blade-tabbed headings. The 404 is one full scene.
 * ------------------------------------------------------------------------- */

/* ── r3 primitives — MIRROR of rush-shot.css (identical in every rush-r3-*.css; diff gate) ── */
:root { --rush-foil: none; }
html.rush-loaded { --rush-foil: url("../img/rush-gold-texture.webp?v=1.23.2"); }
.rush-display-xxl { font-weight: 900; text-transform: uppercase; font-size: clamp(3.625rem, 15vw, 11rem); line-height: 0.86; letter-spacing: -0.025em; font-variant-numeric: tabular-nums; }
.rush-display-xl { font-weight: 900; text-transform: uppercase; font-size: clamp(3rem, 11vw, 8rem); line-height: 0.88; letter-spacing: -0.02em; }
.rush-display-l { font-weight: 900; text-transform: uppercase; font-size: clamp(2.5rem, 6vw, 5rem); line-height: 0.92; letter-spacing: -0.015em; text-wrap: balance; }
.rush-gold-word { color: var(--t-gold-text); text-decoration: none; }
.rush-eyebrow { font-weight: 800; text-transform: uppercase; font-size: 12px; letter-spacing: 0.14em; color: var(--t-gold-text); margin: 0 0 14px; }
.rush-lede { font-size: 20px; line-height: 1.45; max-width: 52ch; color: var(--t-fg-2); margin-top: 18px; }
.rush-scene-head { margin-bottom: clamp(32px, 4vw, 56px); }
.rush-scene-head .rush-display-l { max-width: 14ch; }
.rush-meta { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; color: var(--t-fg-2); }
.rush-cta-gold, .rush-cta-ghost, .rush-btn-ink, .rush-btn-paper, .rush-btn-ghost { display: inline-flex; align-items: center; justify-content: center; gap: 0.35em; min-height: 48px; padding: 0 26px; border-radius: 999px; border: 1px solid transparent; font-weight: 800; font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color 240ms var(--ease-out-cine), color 240ms var(--ease-out-cine), border-color 240ms var(--ease-out-cine), box-shadow 240ms var(--ease-out-cine); -webkit-tap-highlight-color: transparent; }
.rush-cta-gold { min-height: 52px; background: var(--t-gold); color: var(--t-on-gold); border-color: var(--t-gold); box-shadow: 0 12px 32px -12px var(--t-glow); }
.rush-cta-gold:hover { background: var(--t-gold-hover); border-color: var(--t-gold-hover); }
.rush-cta-ghost { background: transparent; color: var(--t-fg); border-color: var(--t-line-strong); }
.rush-cta-ghost:hover { border-color: var(--t-gold); }
.rush-btn-ink { min-height: 44px; background: var(--t-fg); color: var(--t-bg); border-color: var(--t-fg); }
.rush-btn-ink:hover { background: var(--t-gold); border-color: var(--t-gold); color: var(--t-on-gold); }
.rush-btn-paper { background: var(--t-fg); color: var(--t-bg); border-color: var(--t-fg); }
.rush-btn-ghost { min-height: 44px; background: transparent; color: var(--t-fg); border-color: var(--t-line-strong); }
.rush-btn-ghost:hover { border-color: var(--t-gold); }
.rush-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 2px; background: none; border: 0; font-weight: 800; font-size: 15px; text-decoration: none; color: var(--t-fg); cursor: pointer; position: relative; }
.rush-link.m-ul::after { bottom: 8px; }
.rush-status { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 13px; letter-spacing: 0.02em; text-transform: none; margin-right: 10px; }
.rush-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--t-fg-3); flex: none; transform-origin: center; }
.rush-status[data-open="true"]::before, .rush-status.is-open::before { background: var(--t-gold); box-shadow: 0 0 0 4px var(--t-glow); }
.rush-status.is-closed { color: var(--t-fg-2); }
.rush-foil-chip { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 999px; background: var(--t-gold) var(--rush-foil) center / cover; color: var(--t-on-gold); font-weight: 800; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25); /* fixed */ }
.rush-h1-lede { display: block; font-weight: 800; font-size: 17px; line-height: 1.3; color: var(--t-fg-2); max-width: 42ch; margin-bottom: 12px; }
@media (min-width: 768px) { .rush-h1-lede { font-size: 18px; } }
.rush-counter-tile { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.rush-counter { display: inline-flex; align-items: flex-start; --digits: 2; min-width: calc(var(--digits) * 1ch); font-size: clamp(3rem, 11vw, 8rem); line-height: 0.88; color: var(--t-fg); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rush-counter[data-digits="1"] { --digits: 1; } .rush-counter[data-digits="3"] { --digits: 3; } .rush-counter[data-digits="4"] { --digits: 4; }
.rush-counter[data-suffix] { min-width: calc(var(--digits) * 1ch + 0.6ch); }
.rush-counter .rk-slot { height: 0.88em; line-height: 0.88; } .rush-counter .rk-col > span { height: 0.88em; }
.rush-counter-k { align-self: flex-start; font-weight: 800; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--t-on-gold-2); padding-bottom: 6px; }
.rush-counter-k.m-ul::after { bottom: 0; }
html.rush-motion .rush-counter-tile.is-in .rush-counter-k.m-ul::after { transform: scaleX(1); transition-delay: 900ms; }
@media (min-width: 1280px) { .rush-counter { font-size: clamp(5rem, 8.5vw, 9.5rem); } }
/* ── end primitives mirror ── */

/* ── r3 scene skeleton — MIRROR (digest §4) ── */
.r3-hero { position: relative; overflow: clip; contain: paint; display: grid; align-items: end; min-height: calc(100svh - 132px); }
@media (max-width: 767px) { .r3-hero { min-height: calc(100svh - 104px - 64px); padding-bottom: 24px; } }
.r3-hero-media { position: absolute; inset: 0; }
.r3-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
html.rush-loaded .r3-hero-media img { filter: var(--t-media-grade); }
.r3-hero-grade { position: absolute; inset: 0; background: var(--t-scrim-wide); }
.r3-hero-plate { position: absolute; top: 0; bottom: 0; left: 0; width: calc(var(--plate-w, 46vw) + 57.7svh); background: var(--t-gold) var(--rush-foil, none) center / cover; opacity: var(--t-slab-alpha); clip-path: polygon(0 0, 100% 0, calc(100% - 57.7svh) 100%, 0 100%); }
.r3-hero-plate--ink { background: var(--t-bg-2); opacity: 1; }
html.rush-motion .r3-hero-plate { transform: translateX(-30vw); transition: transform 700ms var(--ease-out-cine) 120ms; }
html.rush-motion .r3-hero.is-in .r3-hero-plate { transform: none; }
.r3-hero-copy { position: relative; z-index: 2; width: min(100% - 32px, var(--rush-max-width)); margin-inline: auto; padding-block: clamp(40px, 8vh, 96px); color: var(--t-fg); text-shadow: var(--t-halo); }
:root:not([data-theme="dark"]) .r3-hero--plate .r3-hero-copy { --t-fg: #10100e; --t-fg-2: rgba(16,16,14,.86); --t-fg-3: rgba(16,16,14,.74); --t-gold-text: #10100e; --t-line-strong: rgba(16,16,14,.34); text-shadow: none; }
.r3-scene { position: relative; contain: paint; padding-block: clamp(64px, 10vh, 128px); }
.r3-scene-in { width: min(100% - 32px, var(--rush-max-width)); margin-inline: auto; }
.r3-notch-b { clip-path: polygon(0 0, 100% 0, 100% 100%, 10.4vw 100%, 0 calc(100% - 6vw)); }
.r3-notch-t { clip-path: polygon(0 6vw, 10.4vw 0, 100% 0, 100% 100%, 0 100%); margin-top: -6vw; position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) { .r3-hero-plate { transform: none !important; transition: none !important; } }
/* ── end skeleton mirror ── */

/* ══ 0. Document-level ═══════════════════════════════════════════════════ */
:root { --r3d-hdr: 124px; --r3d-toc-h: 0px; }
@media (max-width: 680px) { :root { --r3d-hdr: 96px; } }
/* The Bricks parent sheet (dequeued on these documents) was the body reset. */
body.rush-doc { margin: 0; }
/* rush-home.css paints every `.rush-home a:not(.rush-button)` with `color:
 * inherit` at (0,2,1), which outranks the pill / link primitives above — the
 * pills re-assert their own ink here at equal-or-higher specificity. */
.rush-home a.rush-cta-gold { color: var(--t-on-gold); }
.rush-home a.rush-cta-ghost, .rush-home a.rush-link, .rush-home button.rush-link, .rush-home a.rush-btn-ghost { color: var(--t-fg); }
.rush-home a.rush-btn-ink, .rush-home a.rush-btn-paper { color: var(--t-bg); }
.rush-home a.rush-btn-ink:hover, .rush-home a.rush-btn-paper:hover { color: var(--t-on-gold); }
/* rush-home.css sizes every .rush-home h1 (0,1,1); the display titles below
 * outrank it (0,2,0) so the type scale is the digest's, not the r1 hero's. */
.rush-home h1.r3d-title { margin: 0; max-width: none; line-height: 0.86; font-size: clamp(3rem, 12vw, 10rem); }
.rush-home h1.r3d-title--post { font-size: clamp(3rem, 7.5vw, 7rem); line-height: 0.9; letter-spacing: -0.02em; }
.rush-home h1.r3d-title--404 { font-size: clamp(3.625rem, 15vw, 11rem); }
.r3d-title .rk-line { padding-bottom: 0.08em; margin-bottom: -0.08em; }
/* Two ink bands in a row (doc foot + site footer) get a seam. */
body.rush-page-active .rush-footer,
body.single-post .rush-footer,
body.error404 .rush-footer { border-top: 1px solid var(--t-line); }
/* r2 legacy: the mobile sticky is dead chrome — the templates no longer print it. */

/* ══ 1. The opening cut — ink plate with a gold hairline along the blade ══ */
.r3d-head { min-height: min(70svh, 640px); }
@media (max-width: 767px) { .r3d-head { min-height: min(44svh, 420px); padding-bottom: 0; align-items: start; } .r3d-head .r3-hero-copy { padding-block: clamp(28px, 6vh, 48px) 28px; } } /* r3 repair: phone head 44svh, title top-aligned */
.r3d-head .r3-hero-copy { padding-block: clamp(48px, 9vh, 96px) clamp(32px, 6vh, 56px); }
/* The plate is GOLD; its ::after is the ink plate 4px narrower, so the gold
 * shows only as a hairline along the leaning edge (4px horizontal = 3.5px
 * perpendicular at 30°). One element, one transform. */
.r3-hero-plate.r3d-plate {
	--plate-w: 62vw;
	width: calc(var(--plate-w) + 57.7svh + 4px);
	background: var(--t-gold);
	opacity: 1;
}
.r3-hero-plate.r3d-plate::after {
	content: "";
	position: absolute;
	top: 0; bottom: 0; left: 0;
	width: calc(100% - 4px);
	background:
		radial-gradient(120% 120% at 0% 0%, var(--t-glow), transparent 52%),
		var(--t-bg-2);
	clip-path: polygon(0 0, 100% 0, calc(100% - 57.7svh) 100%, 0 100%);
}
@media (max-width: 767px) { .r3-hero-plate.r3d-plate { --plate-w: 74vw; } }
/* A slow gold pulse along the edge in dark (cheap: opacity on a 4px strip). */
html.rush-loaded.rush-motion[data-theme="dark"] .r3-hero-plate.r3d-plate { animation: r3dEdge 6s var(--ease-inout-cine) infinite; }
html.rush-hidden .r3-hero-plate.r3d-plate,
html.rush-theme-cutting .r3-hero-plate.r3d-plate { animation-play-state: paused; }
@keyframes r3dEdge { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.18); } }

.r3d-eyebrow { display: flex; align-items: center; gap: 12px; }
.r3d-eyebrow i { display: inline-block; width: 22px; height: 3px; background: var(--t-gold); transform: skewX(-30deg); }
/* Light theme: gold-text on the warm ink plate (#f7f0df) measures 4.3 — the
 * eyebrow word goes ink there and the gold slash keeps the mark. */
:root:not([data-theme="dark"]) .r3d-head .r3d-eyebrow,
:root:not([data-theme="dark"]) .r3d-404 .r3d-eyebrow { color: var(--t-fg); }
.r3d-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: clamp(20px, 3vh, 32px); }
.r3d-meta .rush-meta { display: inline-flex; align-items: center; min-height: 26px; }
.r3d-meta .rush-meta b { color: var(--t-fg); font-weight: 800; margin-left: 0.45em; }
.r3d-meta .rush-foil-chip { text-shadow: none; }
.r3d-meta .rush-cta-ghost { text-shadow: none; }
.r3d-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin-top: clamp(20px, 3vh, 32px); }
.r3d-actions .rush-link { text-shadow: none; }
/* Staggered load: everything in the copy column rises on .is-in. */
html.rush-motion .r3d-head .r3d-rise,
html.rush-motion .r3d-post-head .r3d-rise,
html.rush-motion .r3d-404 .r3d-rise { opacity: 0; transform: translate3d(0, 18px, 0); transition: opacity 600ms var(--ease-out-cine), transform 700ms var(--ease-out-cine); transition-delay: calc(360ms + var(--m-i, 0) * 90ms); }
html.rush-motion .r3-hero.is-in .r3d-rise { opacity: 1; transform: none; }

/* ══ 2. Reading layout ═══════════════════════════════════════════════════ */
.r3d-body { position: relative; padding-block: clamp(36px, 5vw, 64px) calc(clamp(64px, 10vh, 128px) + 6vw); }
.r3d-doc { width: min(100% - 32px, var(--rush-max-width)); margin-inline: auto; }
.r3d-rail { display: none; }
.r3d-article { max-width: 66ch; min-width: 0; }
@media (min-width: 1024px) {
	.r3d-doc {
		display: grid;
		grid-template-columns: minmax(0, 3fr) minmax(0, 7fr) minmax(0, 2fr);
		column-gap: clamp(32px, 4vw, 64px);
		align-items: start;
	}
	.r3d-rail { display: block; grid-column: 1; position: sticky; top: calc(var(--r3d-hdr) + 24px); max-height: calc(100vh - var(--r3d-hdr) - 40px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 6px; } /* r3 repair: 18–19 links + Back to top overflowed a 900px viewport */
	.r3d-article { grid-column: 2; }
	.r3d-toc-m { display: none; }
}

/* The rail: a 2px track that fills with gold as the article is read (--p is
 * reading state, not motion — it updates under reduced motion too). */
.r3d-toc { position: relative; padding-left: 22px; --p: 0; }
.r3d-toc::before,
.r3d-toc::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; }
.r3d-toc::before { background: var(--t-line); }
.r3d-toc::after { background: var(--t-gold); transform: scaleY(var(--p)); transform-origin: top center; }
html.rush-motion .r3d-toc::after { transition: transform 120ms linear; }
.r3d-toc .rush-eyebrow { margin-bottom: 18px; }
.r3d-toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.r3d-toc li { margin: 0; }
.rush-home a.r3d-toc-link {
	display: flex;
	align-items: baseline;
	gap: 12px;
	min-height: 32px;
	padding: 5px 0;
	color: var(--t-fg-2);
	font-weight: 800;
	font-size: 14px;
	line-height: 1.3;
	text-decoration: none;
	transition: color 200ms var(--ease-out-cine);
}
.rush-home a.r3d-toc-link:hover { color: var(--t-fg); }
.rush-home a.r3d-toc-link[aria-current] { color: var(--t-fg); }
.r3d-toc-n { flex: none; font-size: 11px; letter-spacing: 0.1em; color: var(--t-gold-text); font-variant-numeric: tabular-nums; min-width: 2ch; }
.r3d-toc-t { position: relative; display: inline; }
.r3d-toc-t.m-ul::after { bottom: -3px; }
.r3d-toc-link[aria-current] .r3d-toc-t::after { transform: scaleX(1); }
.r3d-toc-link:hover .r3d-toc-t::after { transform: scaleX(1); }
.r3d-rail-foot { margin-top: 26px; padding: 18px 0 0; border-top: 1px solid var(--t-line); display: flex; flex-direction: column; gap: 6px; }
.r3d-rail-foot .rush-meta { display: flex; justify-content: space-between; gap: 12px; }
.r3d-pct { color: var(--t-fg); font-variant-numeric: tabular-nums; flex: none; width: 4ch; min-width: 4ch; text-align: right; } /* fixed box: 41% → 100% never moves it */
.r3d-rail-foot .rush-link { font-size: 13px; min-height: 36px; }

/* Phone TOC: a <details> pinned under the sticky header. */
.r3d-toc-m {
	position: sticky;
	top: var(--r3d-hdr);
	z-index: 40;
	margin: 0 0 clamp(28px, 5vw, 40px);
	background: var(--t-bg);
	border-top: 1px solid var(--t-line);
	border-bottom: 1px solid var(--t-line);
}
.r3d-toc-m summary {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 52px;
	padding: 0 2px;
	cursor: pointer;
	font-weight: 800;
	font-size: 13px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--t-fg);
	-webkit-tap-highlight-color: transparent;
}
.r3d-toc-m summary::-webkit-details-marker { display: none; }
.r3d-toc-m summary::before { content: ""; width: 22px; height: 3px; background: var(--t-gold); transform: skewX(-30deg); flex: none; transition: transform 300ms var(--ease-mark); }
.r3d-toc-m[open] summary::before { transform: skewX(-30deg) scaleX(1.6); }
/* The "now reading" label has a FIXED box (flex-basis, right-aligned text) so
 * a section change never moves anything — CLS 0 while the summary tracks. */
.r3d-toc-m summary .r3d-toc-m-now { margin-left: auto; flex: 0 0 46%; width: 46%; text-align: right; font-weight: 800; font-size: 12px; letter-spacing: 0.06em; text-transform: none; color: var(--t-fg-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.r3d-toc-m .r3d-toc { padding: 4px 0 16px 22px; max-height: min(52svh, 420px); overflow-y: auto; overscroll-behavior: contain; }
.r3d-toc-m .r3d-toc::before,
.r3d-toc-m .r3d-toc::after { top: 4px; bottom: 16px; }

/* ══ 3. The article ══════════════════════════════════════════════════════ */
.r3d-article {
	font-size: 18px;
	line-height: 1.65;
	color: var(--t-fg);
	text-wrap: pretty;
	overflow-wrap: anywhere;
}
@media (max-width: 767px) { .r3d-article { font-size: 17px; line-height: 1.6; } }
.r3d-article > * { margin: 0 0 1.2em; }
.r3d-article > *:last-child { margin-bottom: 0; }
/* The editor's "Effective date" line → a meta line with a gold slash. */
.r3d-article .rush-legal-meta,
.r3d-article > .r3d-meta-line {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 22px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--t-fg-2);
}
.r3d-article .rush-legal-meta::before { content: ""; width: 22px; height: 3px; background: var(--t-gold); transform: skewX(-30deg); flex: none; }
/* First paragraph = the lede. */
.r3d-article > p.rush-legal-meta + p,
.r3d-article > p:first-child:not(.rush-legal-meta),
.r3d-article > .r3d-lede { font-size: 20px; line-height: 1.5; color: var(--t-fg-2); margin-bottom: 1.4em; }
@media (min-width: 768px) {
	.r3d-article > p.rush-legal-meta + p,
	.r3d-article > p:first-child:not(.rush-legal-meta),
	.r3d-article > .r3d-lede { font-size: 21px; }
}
/* Blade headings: a 1px strong rule above, the 48×8 foil tab skewed at its
 * left end. `.is-in` (reveal) draws the tab. */
.rush-home .r3d-article h2 {
	position: relative;
	margin: clamp(44px, 6vw, 64px) 0 18px;
	padding-top: 26px;
	font-size: clamp(1.5rem, 2.6vw, 2rem);
	line-height: 1.05;
	font-weight: 900;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	text-wrap: balance;
	scroll-margin-top: calc(var(--r3d-hdr) + var(--r3d-toc-h) + 28px);
}
.rush-home .r3d-article h2::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--t-line-strong); }
.rush-home .r3d-article h2::after {
	content: "";
	position: absolute;
	left: 0; top: -4px;
	width: 48px; height: 8px;
	background: var(--t-gold) var(--rush-foil, none) center / cover;
	transform: skewX(-30deg);
	transform-origin: left top;
}
html.rush-motion .rush-home .r3d-article h2::after { transform: skewX(-30deg) scaleX(0); transition: transform 480ms var(--ease-mark) 260ms; }
html.rush-motion .rush-home .r3d-article h2.is-in::after { transform: skewX(-30deg) scaleX(1); }
.r3d-article h2 .r3d-num { color: var(--t-gold-text); font-variant-numeric: tabular-nums; margin-right: 0.06em; }
.rush-home .r3d-article h3 {
	margin: 34px 0 12px;
	font-size: 20px;
	line-height: 1.25;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: none;
	scroll-margin-top: calc(var(--r3d-hdr) + var(--r3d-toc-h) + 24px);
}
.rush-home .r3d-article h4 { margin: 28px 0 10px; font-size: 17px; font-weight: 800; }
.r3d-article p { margin: 0 0 1.2em; }
.r3d-article strong { font-weight: 800; color: var(--t-fg); }
.r3d-article em { font-style: italic; }
.rush-home .r3d-article a:not(.rush-link):not(.rush-btn-ink):not(.rush-cta-gold):not(.rush-cta-ghost) {
	color: var(--t-gold-text);
	font-weight: 800;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-decoration-color: var(--t-gold);
	text-underline-offset: 0.2em;
	transition: color 200ms var(--ease-out-cine), text-decoration-color 200ms var(--ease-out-cine);
}
.rush-home .r3d-article a:not(.rush-link):hover { color: var(--t-fg); text-decoration-color: currentColor; }
/* Lists: 30° gold slash markers. */
.r3d-article ul,
.r3d-article ol { margin: 0 0 1.4em; padding-left: 28px; }
.r3d-article li { position: relative; margin: 0 0 0.6em; padding-left: 0; }
.r3d-article ul { list-style: none; }
.r3d-article ul > li::before { content: ""; position: absolute; left: -26px; top: 0.72em; width: 12px; height: 3px; background: var(--t-gold); transform: skewX(-30deg); }
.r3d-article ol { list-style: none; counter-reset: r3d; }
.r3d-article ol > li { counter-increment: r3d; }
.r3d-article ol > li::before { content: counter(r3d, decimal-leading-zero); position: absolute; left: -30px; top: 0.18em; font-size: 12px; font-weight: 800; letter-spacing: 0.06em; color: var(--t-gold-text); font-variant-numeric: tabular-nums; }
.r3d-article li > ul,
.r3d-article li > ol { margin: 0.5em 0 0; }
/* Quote = an ink plate with a cut corner. */
.r3d-article blockquote {
	position: relative;
	margin: 32px 0;
	padding: 24px 32px 24px 32px;
	background: var(--t-bg-2);
	clip-path: polygon(0 0, 100% 0, calc(100% - 18px) 100%, 0 100%);
	font-size: 1.05em;
	line-height: 1.5;
}
/* The quote's mark is a 30° blade in the plate's corner, not a side rule. */
.r3d-article blockquote::before { content: ""; position: absolute; left: 0; top: 0; width: 26px; height: 100%; background: var(--t-gold); clip-path: polygon(0 0, 100% 0, 0 46%); }
.r3d-article blockquote p:last-child { margin-bottom: 0; }
.r3d-article blockquote cite { display: block; margin-top: 12px; font-style: normal; font-size: 12px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--t-fg-2); }
/* Tables: hairlines, tabular numerals. */
.r3d-article table { width: 100%; border-collapse: collapse; margin: 0 0 1.6em; font-size: 0.94em; font-variant-numeric: tabular-nums; }
.r3d-article th,
.r3d-article td { padding: 12px 14px 12px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--t-line); }
.r3d-article th { font-size: 12px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--t-fg-2); border-bottom-color: var(--t-line-strong); }
.r3d-article hr { border: 0; height: 1px; background: var(--t-line-strong); margin: 48px 0; }
/* Media inside a post: full measure, dims kept, cut in by the JS wrapper. */
.r3d-article img { max-width: 100%; height: auto; display: block; }
.r3d-article figure { margin: 32px 0; }
.r3d-article figure > img,
.r3d-article .m-clipin > img { width: 100%; }
.r3d-article figcaption { margin-top: 10px; font-size: 13px; color: var(--t-fg-2); }
.r3d-article .wp-block-embed,
.r3d-article .wp-block-embed__wrapper { margin: 32px 0; }
.r3d-article .wp-block-embed iframe,
.r3d-article iframe { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; background: var(--t-bg-2); }
.r3d-article .r3d-media { margin: 32px 0; }
.r3d-article .r3d-media img { width: 100%; }
.r3d-article code { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: 0.9em; background: var(--t-bg-2); padding: 0.1em 0.4em; border-radius: 3px; }
.r3d-article pre { background: var(--t-bg-2); padding: 20px; overflow: auto; clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%); }
.r3d-article .wp-block-image,
.r3d-article .wp-block-gallery { margin: 32px 0; }
/* Reveal safety for a post's images: the clip-in wrapper keeps the box. */
.r3d-article .m-clipin { display: block; }

/* ══ 4. Document foot (ink) ══════════════════════════════════════════════ */
.r3d-foot { padding-block: calc(6vw + clamp(48px, 8vh, 96px)) clamp(56px, 8vh, 96px); }
.r3d-foot .r3-scene-in { display: grid; gap: 40px 48px; }
@media (min-width: 768px) { .r3d-foot .r3-scene-in { grid-template-columns: 7fr 5fr; align-items: end; } }
.r3d-foot .rush-display-l { max-width: 12ch; }
.r3d-foot .rush-lede { margin-top: 16px; }
.r3d-foot .r3d-actions { margin-top: 26px; }
.r3d-legal-nav { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.r3d-legal-nav .rush-eyebrow { margin-bottom: 10px; }
.rush-home .r3d-legal-nav a { color: var(--t-fg-2); font-size: 16px; min-height: 40px; justify-content: flex-start; }
.rush-home .r3d-legal-nav a[aria-current] { color: var(--t-fg); }
.r3d-legal-nav a[aria-current]::before { content: ""; display: inline-block; width: 14px; height: 3px; margin-right: 12px; background: var(--t-gold); transform: skewX(-30deg); }
.r3d-legal-nav a.m-ul::after { bottom: 6px; }
.rush-home .r3d-legal-nav a:hover { color: var(--t-fg); }
.r3d-foot .m-rule-top::after { left: max(16px, calc((100% - var(--rush-max-width, 1220px)) / 2)); }

/* ══ 5. Journal single ═══════════════════════════════════════════════════ */
.r3d-post-head .r3-hero-plate { --plate-w: 58vw; }
@media (max-width: 767px) { .r3d-post-head .r3-hero-plate { --plate-w: 66vw; } }
.r3d-post-head .r3-hero-media img { object-position: 62% 50%; }
/* The foil keeps its texture at the top of the plate and along the blade; the
 * copy half is washed to flat gold so ink meta (12px) never sits on a dark
 * foil streak (worst pixel 2.3:1). In the dark theme the whole plate is the
 * .22 stripe, wash included. */
.r3d-post-head .r3-hero-plate::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, var(--t-gold) 0%, var(--t-gold) 56%, color-mix(in srgb, var(--t-gold) 70%, transparent) 72%, transparent 92%); }
/* Light: copy sits on the gold plate (ink, via the skeleton override); keep
 * the copy inside the plate's bottom width so ink never lands on the photo. */
.r3d-post-head .r3-hero-copy > * { max-width: min(100%, 58vw + 8ch); }
@media (max-width: 1023px) { .r3d-post-head .r3-hero-copy > * { max-width: none; } }
.r3d-post-head .r3d-eyebrow i { background: currentColor; }
.r3d-post-head .r3d-meta .rush-cta-ghost { margin-left: auto; }
@media (max-width: 767px) { .r3d-post-head .r3d-meta .rush-cta-ghost { margin-left: 0; width: 100%; } }
/* Dark: paper copy on a .22 stripe over the photo — the halo + scrim carry it. */
:root[data-theme="dark"] .r3d-post-head .r3-hero-copy { text-shadow: var(--t-halo); }
/* Post foot: the ONE gold CTA on the page, bound to the active store. The
 * legal foot's two-column grid does not apply here — this foot stacks. */
.r3d-foot.r3d-post-foot .r3-scene-in { display: block; }
.r3d-post-foot .r3d-shop { display: grid; gap: 22px 40px; align-items: end; }
@media (min-width: 768px) { .r3d-post-foot .r3d-shop { grid-template-columns: 7fr 5fr; } }
.r3d-post-foot .r3d-shop-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; color: var(--t-fg-2); font-size: 16px; }
.r3d-post-foot .r3d-shop-line .rush-status { color: var(--t-fg); }
.r3d-post-foot .r3d-shop-line [data-rush-store-field="deal"] { font-weight: 800; color: var(--t-fg); }
.r3d-post-foot .r3d-shop-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }
@media (min-width: 768px) { .r3d-post-foot .r3d-shop-cta { justify-content: flex-end; } }
/* More from the Journal */
.r3d-more { margin-top: clamp(48px, 7vw, 88px); padding-top: clamp(32px, 4vw, 48px); border-top: 1px solid var(--t-line); }
.r3d-more-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; margin-bottom: clamp(24px, 3vw, 36px); }
.rush-home .r3d-more-head h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.05; text-transform: uppercase; }
.r3d-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px 32px; }
@media (min-width: 640px) { .r3d-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rush-home a.r3d-card { display: flex; flex-direction: column; gap: 12px; color: inherit; text-decoration: none; min-height: 44px; }
.r3d-card-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--t-bg-3); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 24px) 100%, 0 100%); }
.r3d-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-out-cine); }
html.rush-loaded .r3d-card-media img { filter: var(--t-media-grade); }
.r3d-card:hover .r3d-card-media img { transform: scale(1.04); }
/* Fallback tile = an outlined numeral on the raised surface (gold MARKS; three
 * foil tiles in one fold would be three gold surfaces). */
.r3d-card-tile { position: absolute; inset: 0; display: grid; place-items: center; background: var(--t-bg-3); color: transparent; -webkit-text-stroke: 1.5px var(--t-stroke); font-weight: 900; font-size: clamp(4rem, 9vw, 7rem); line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.r3d-card-tile::after { content: ""; position: absolute; left: 16px; bottom: 16px; width: 48px; height: 8px; background: var(--t-gold); transform: skewX(-30deg); }
.r3d-card .rush-meta { display: flex; gap: 8px; align-items: center; }
.r3d-card .rush-meta i { font-style: normal; color: var(--t-gold-text); }
.rush-home .r3d-card h3 { font-size: 19px; line-height: 1.25; font-weight: 800; text-transform: none; letter-spacing: 0; margin: 0; align-self: flex-start; }
.r3d-card h3.m-ul::after { bottom: -4px; }
.r3d-card:hover h3.m-ul::after,
.r3d-card:focus-visible h3.m-ul::after { transform: scaleX(1); }
.r3d-card p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--t-fg-2); }
.r3d-prevnext { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; margin-top: clamp(32px, 4vw, 48px); padding-top: 20px; border-top: 1px solid var(--t-line); }
.rush-home .r3d-prevnext a { color: var(--t-fg); text-decoration: none; }
.r3d-prevnext .r3d-next { margin-left: auto; text-align: right; }
.r3d-prevnext .r3d-pn { display: flex; flex-direction: column; gap: 2px; }
.r3d-prevnext .r3d-pn .rush-meta { color: var(--t-gold-text); }

/* ══ 6. 404 — one full scene ═════════════════════════════════════════════ */
.r3d-404 { min-height: calc(100svh - 132px); }
@media (max-width: 767px) { .r3d-404 { min-height: calc(100svh - 104px - 64px); } }
.r3d-404 .r3-hero-plate.r3d-plate { --plate-w: 70vw; }
@media (max-width: 767px) { .r3d-404 .r3-hero-plate.r3d-plate { --plate-w: 80vw; } }
.r3d-ghost {
	position: absolute;
	right: -0.06em;
	top: 4%;
	z-index: 1;
	margin: 0;
	font-weight: 900;
	font-size: clamp(11rem, 36vw, 32rem);
	line-height: 0.8;
	letter-spacing: -0.04em;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--t-stroke);
	opacity: 0.08;
	pointer-events: none;
	user-select: none;
	font-variant-numeric: tabular-nums;
	will-change: auto;
}
@media (max-width: 767px) { .r3d-ghost { right: -0.04em; top: 2%; font-size: clamp(11rem, 50vw, 20rem); opacity: 0.1; } }
.r3d-404 .r3-hero-copy { padding-block: clamp(56px, 10vh, 120px) clamp(40px, 8vh, 96px); }
.r3d-404 .rush-lede { max-width: 38ch; }
.r3d-404 .r3d-actions { margin-top: clamp(24px, 4vh, 40px); }
.rush-home .r3d-404 .r3d-actions a.rush-link { color: var(--t-fg); }
/* Below the fold: the registry as a compact row list (ink acts, gold marks). */
.r3d-404-rows { padding-block: clamp(48px, 7vh, 96px); }
.r3d-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--t-line-strong); }
.r3d-row {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-areas: "name cta" "meta cta";
	align-items: center;
	gap: 4px 20px;
	padding: 18px 0 18px 18px;
	border-bottom: 1px solid var(--t-line);
	color: var(--t-fg-2);
}
@media (min-width: 768px) { .r3d-row { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) auto; grid-template-areas: "name meta cta"; padding: 18px 0 18px 22px; } }
.r3d-row::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--t-gold); clip-path: polygon(0 0, 100% 0, 30% 100%, 0 100%); transform: scaleY(0); transform-origin: top; transition: transform 300ms var(--ease-mark); }
.r3d-row.is-mine::before { transform: scaleY(1); }
/* The blade IS the "your store" mark here — rush-store-context.css's rounded
 * outline (built for cards) steps aside on these rows. */
.r3d-row.is-mine { color: var(--t-fg); outline: 0; border-radius: 0; }
.r3d-row-name { grid-area: name; display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; min-height: 28px; }
.rush-home .r3d-row-name a { color: var(--t-fg); font-weight: 900; font-size: clamp(1.25rem, 2vw, 1.6rem); line-height: 1; text-transform: uppercase; letter-spacing: -0.01em; text-decoration: none; min-height: 28px; display: inline-flex; align-items: center; }
.r3d-row-name a.m-ul::after { bottom: -2px; }
.r3d-row-meta { grid-area: meta; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: 14px; }
.r3d-row .rush-storerow-flags { display: inline-flex; align-items: center; gap: 10px; min-height: 20px; }
.r3d-row .rush-storerow-status { color: var(--t-fg-2); }
.r3d-row .rush-btn-ink { grid-area: cta; min-height: 40px; padding: 0 20px; }
.r3d-rows[data-count] .r3d-row { --m-i: 0; }
/* A 7–12 store merger: rows tighten. */
@media (min-width: 768px) {
	.r3d-rows[data-count="7"] .r3d-row, .r3d-rows[data-count="8"] .r3d-row, .r3d-rows[data-count="9"] .r3d-row,
	.r3d-rows[data-count="10"] .r3d-row, .r3d-rows[data-count="11"] .r3d-row, .r3d-rows[data-count="12"] .r3d-row { padding-block: 12px; }
	.r3d-rows[data-count="7"] .r3d-row-name a, .r3d-rows[data-count="8"] .r3d-row-name a, .r3d-rows[data-count="9"] .r3d-row-name a,
	.r3d-rows[data-count="10"] .r3d-row-name a, .r3d-rows[data-count="11"] .r3d-row-name a, .r3d-rows[data-count="12"] .r3d-row-name a { font-size: 1.1rem; }
}
.r3d-404-rows .rush-scene-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; }
.rush-home .r3d-404-rows h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.05; text-transform: uppercase; }

/* ══ 7. Reduced motion / no motion: the static variant ═══════════════════ */
html:not(.rush-motion) .r3d-rise { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.r3d-rise { opacity: 1 !important; transform: none !important; transition: none !important; }
	.r3-hero-plate.r3d-plate { animation: none !important; }
	.r3d-toc::after { transition: none !important; }
	.r3d-card-media img { transition: none !important; }
	.r3d-ghost { transform: none !important; }
}
@media print {
	.r3d-rail, .r3d-toc-m, .r3d-foot, .rush-progress, .rush-grain { display: none !important; }
	.r3d-article { max-width: none; }
}

/* ── r3 repair: the post-head eyebrow sits on the featured photo (measured 1.3–1.6:1) → the cut chip, both themes; article prose links clear the 24px floor. ── */
.r3d-post-head .r3-hero-copy > .rush-eyebrow, .r3-hero.r3d-head .r3-hero-copy > .rush-eyebrow { background: var(--t-bg); padding: 7px 14px 6px 12px; width: fit-content; max-width: 100%; clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%); text-shadow: none; }
.r3d-article p a, .r3d-article li a { padding-block: 2px; }
