/* ==========================================================================
   refresh.css — jeffadamswrites.com "Deep Night" refresh (Translucent Core)
   --------------------------------------------------------------------------
   ISOLATED LAYER. Everything visual is scoped under `body.refresh`, so this
   file is inert on pages that have not been reskinned yet. Loaded AFTER
   main.css. Tokens are namespaced `--rf-*` to avoid collision with main.css.
   Phase 1: single book page. Old design remains until the end-of-project
   consolidation + dead-rule sweep.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Self-hosted fonts (OFL 1.1 — license files sit beside the woff2)
   @font-face is global by nature; these simply define the families.
   Open Sans is self-hosted here so the old pages (main.css) can drop the
   Google Fonts request too.
   -------------------------------------------------------------------------- */
@font-face { font-family:"Space Grotesk"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/SpaceGrotesk-Regular.woff2") format("woff2"); }
@font-face { font-family:"Space Grotesk"; font-style:normal; font-weight:500; font-display:swap;
  src:url("../fonts/SpaceGrotesk-Medium.woff2") format("woff2"); }
@font-face { font-family:"Space Grotesk"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../fonts/SpaceGrotesk-Bold.woff2") format("woff2"); }

@font-face { font-family:"Source Serif 4"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/SourceSerif4-Regular.woff2") format("woff2"); }
@font-face { font-family:"Source Serif 4"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/SourceSerif4-SemiBold.woff2") format("woff2"); }
@font-face { font-family:"Source Serif 4"; font-style:italic; font-weight:400; font-display:swap;
  src:url("../fonts/SourceSerif4-Italic.woff2") format("woff2"); }

@font-face { font-family:"Open Sans"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/OpenSans-Regular.woff2") format("woff2"); }
@font-face { font-family:"Open Sans"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/OpenSans-SemiBold.woff2") format("woff2"); }
@font-face { font-family:"Open Sans"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../fonts/OpenSans-Bold.woff2") format("woff2"); }
@font-face { font-family:"Open Sans"; font-style:italic; font-weight:400; font-display:swap;
  src:url("../fonts/OpenSans-Italic.woff2") format("woff2"); }
@font-face { font-family:"Open Sans"; font-style:italic; font-weight:700; font-display:swap;
  src:url("../fonts/OpenSans-BoldItalic.woff2") format("woff2"); }

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root {
  /* Surfaces (Deep Night) */
  --rf-surface-base:#0b0b10;
  --rf-surface-raised:#0f0f16;
  --rf-surface-deep:#07070c;
  --rf-surface-panel:#12121b;
  --rf-surface-panel-alt:#101019;
  --rf-surface-card:#141420;
  --rf-surface-buy:#0e0e16;

  /* Six Pride hues — fill + accent + accessible-on-dark text version */
  --rf-violet:oklch(0.60 0.20 305);
  --rf-violet-btn:oklch(0.62 0.20 305);
  --rf-violet-cta:oklch(0.57 0.20 305);
  --rf-violet-text:oklch(0.80 0.13 305);
  --rf-red:oklch(0.62 0.21 25);
  --rf-red-accent:oklch(0.66 0.21 25);
  --rf-red-text:oklch(0.84 0.13 25);
  --rf-red-badge:oklch(0.55 0.21 25); /* white text = 5.4:1 (badge/small bold) */
  --rf-orange:oklch(0.72 0.17 55);
  --rf-orange-text:oklch(0.88 0.11 55);
  --rf-yellow:oklch(0.86 0.16 95);
  --rf-yellow-text:oklch(0.88 0.11 95);
  --rf-green:oklch(0.70 0.16 150);
  --rf-green-text:oklch(0.86 0.14 150);
  --rf-blue:oklch(0.62 0.16 250);
  --rf-blue-accent:oklch(0.66 0.16 250);
  --rf-blue-text:oklch(0.84 0.10 250);
  --rf-grey:#6f6f88;

  /* Text on dark */
  --rf-ink:#ffffff;
  --rf-ink-body:#e6e6f0;
  --rf-ink-body-alt:#ececf4;
  --rf-ink-secondary:#cfcfe2;
  --rf-ink-muted:#a6a6bd;
  --rf-ink-faint:#9a9ab2;
  --rf-ink-nav:#eaeaf2;

  /* Fonts */
  --rf-font-ui:"Space Grotesk", system-ui, "Segoe UI", Roboto, sans-serif;
  --rf-font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;

  /* Radii */
  --rf-r-glass:22px; --rf-r-frame:18px; --rf-r-card:16px; --rf-r-grid:14px;
  --rf-r-btn:12px; --rf-r-btn2:10px; --rf-r-chip:8px; --rf-r-badge:6px; --rf-r-pill:999px;

  /* Layout */
  --rf-frame:1200px;
  --rf-pad:40px;

  /* Focus */
  --rf-focus:oklch(0.86 0.16 95);

  /* Six-stripe rainbow (left->right, red..violet) */
  --rf-rainbow:linear-gradient(90deg,
    oklch(0.62 0.21 25), oklch(0.72 0.17 55), oklch(0.86 0.16 95),
    oklch(0.70 0.16 150), oklch(0.62 0.16 250), oklch(0.60 0.20 305));

  /* Per-page accent hue (default red; a .hue-* class overrides on the article) */
  --rf-page-hue:var(--rf-red-accent);
  --rf-page-hue-text:var(--rf-red-text);
  --rf-on-hue:#0b0b10;
}

/* Section-hue helper classes (set on the book <article>) */
body.refresh.hue-red    { --rf-page-hue:var(--rf-red-accent);    --rf-page-hue-2:var(--rf-orange);      --rf-page-hue-text:var(--rf-red-text); --rf-on-hue:#0b0b10; }
body.refresh.hue-orange { --rf-page-hue:var(--rf-orange);        --rf-page-hue-2:var(--rf-red-accent);  --rf-page-hue-text:var(--rf-orange-text); --rf-on-hue:#0b0b10; }
body.refresh.hue-yellow { --rf-page-hue:var(--rf-yellow);        --rf-page-hue-2:var(--rf-orange);      --rf-page-hue-text:var(--rf-yellow-text); --rf-on-hue:#0b0b10; }
body.refresh.hue-green  { --rf-page-hue:var(--rf-green);         --rf-page-hue-2:var(--rf-blue-accent); --rf-page-hue-text:var(--rf-green-text); --rf-on-hue:#0b0b10; }
body.refresh.hue-blue   { --rf-page-hue:var(--rf-blue-accent);   --rf-page-hue-2:var(--rf-violet);      --rf-page-hue-text:var(--rf-blue-text); --rf-on-hue:#0b0b10; }
body.refresh.hue-violet { --rf-page-hue:var(--rf-violet-btn);    --rf-page-hue-2:var(--rf-red-accent);  --rf-page-hue-text:var(--rf-violet-text); --rf-on-hue:#0b0b10; }
body.refresh.hue-grey   { --rf-page-hue:var(--rf-grey);          --rf-page-hue-text:#c4c4d8; --rf-on-hue:#ffffff; }

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */
body.refresh {
  --rf-stack:26px; /* vertical rhythm between stacked elements/sections */
  background:var(--rf-surface-base);
  color:var(--rf-ink-body);
  font-family:var(--rf-font-ui);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.refresh .site-main { padding:0; background:transparent; }

/* Page-wide chromatic glow: a viewport-fixed layer BEHIND all content. The
   content bands are transparent so it shows through; the opaque panels/cards
   sit on top so text always stays on a solid surface. Leans into the page hue.
   Standing style across pages. */
body.refresh .rf-glow {
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(880px 480px at 12% 2%,  color-mix(in oklch, var(--rf-page-hue) 38%, transparent), transparent 64%),
    radial-gradient(720px 460px at 94% 22%, color-mix(in oklch, var(--rf-orange) 24%, transparent), transparent 64%),
    radial-gradient(760px 560px at 24% 98%, color-mix(in oklch, var(--rf-violet) 16%, transparent), transparent 64%);
}

/* Focus — double ring: a dark inner ring hugs the element so the yellow ring
   keeps >=3:1 separation on EVERY surface (incl. yellow-tinted ones). The
   outline (not a shadow) is what survives forced-colors. */
body.refresh :focus-visible {
  outline:3px solid var(--rf-focus);
  outline-offset:2px;
  box-shadow:0 0 0 2px var(--rf-surface-deep);
  border-radius:3px;
}

/* --------------------------------------------------------------------------
   3. Global chrome — announcement, rainbow rule, header, nav, footer
   -------------------------------------------------------------------------- */
/* Announcement bar (site-wide, right-aligned) + 3px six-stripe rule beneath */
body.refresh .top-banner-wrap { background:var(--rf-surface-deep); position:relative; }
body.refresh .top-banner-wrap::after {
  content:""; display:block; height:3px; background:var(--rf-rainbow);
}
body.refresh .top-banner {
  max-width:var(--rf-frame); margin:0 auto; padding:9px var(--rf-pad);
  text-align:right; border-bottom:1px solid rgba(255,255,255,0.08);
}
body.refresh .top-banner a {
  color:#cfcfe0; font-size:13px; text-decoration:underline; text-underline-offset:2px;
}
body.refresh .top-banner a:hover,
body.refresh .top-banner a:focus-visible { color:var(--rf-violet-text); text-decoration:underline; }

/* Header */
body.refresh .site-header { background:var(--rf-surface-raised); border-bottom:1px solid rgba(255,255,255,0.08); }
body.refresh .header-inner {
  max-width:var(--rf-frame); margin:0 auto; padding:12px var(--rf-pad);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}

/* Logo lockup (signature PNG + six Pride dots) */
body.refresh .rf-logo { display:flex; align-items:center; gap:16px; text-decoration:none; }
body.refresh .rf-logo__sig { height:46px; width:auto; display:block; }
body.refresh .rf-logo__dots { display:flex; gap:6px; }
body.refresh .rf-logo__dots i { width:10px; height:10px; border-radius:var(--rf-r-pill); display:block; }
body.refresh .rf-logo__dots i:nth-child(1){ background:var(--rf-red); }
body.refresh .rf-logo__dots i:nth-child(2){ background:var(--rf-orange); }
body.refresh .rf-logo__dots i:nth-child(3){ background:var(--rf-yellow); }
body.refresh .rf-logo__dots i:nth-child(4){ background:var(--rf-green); }
body.refresh .rf-logo__dots i:nth-child(5){ background:var(--rf-blue); }
body.refresh .rf-logo__dots i:nth-child(6){ background:var(--rf-violet); }

/* Nav — each item carries its hue as a persistent 3px underline (the legend) */
body.refresh .main-nav ul { display:flex; gap:24px; list-style:none; margin:0; padding:0; }
body.refresh .main-nav a {
  color:var(--rf-ink-nav); font:500 15px/1 var(--rf-font-ui); text-decoration:none;
  padding-bottom:5px; border-bottom:3px solid transparent; display:inline-block;
}
body.refresh .main-nav li:nth-child(1) a { border-bottom-color:var(--rf-violet); }
body.refresh .main-nav li:nth-child(2) a { border-bottom-color:var(--rf-red-accent); }
body.refresh .main-nav li:nth-child(3) a { border-bottom-color:var(--rf-yellow); }
body.refresh .main-nav li:nth-child(4) a { border-bottom-color:var(--rf-blue-accent); }
body.refresh .main-nav li:nth-child(5) a { border-bottom-color:var(--rf-green); }
body.refresh .main-nav li:nth-child(6) a { border-bottom-color:var(--rf-violet); }
body.refresh .main-nav a[aria-current="page"] {
  color:#fff; background:rgba(255,255,255,0.20);
  padding:4px 12px 5px; margin:-4px -12px 0; border-radius:8px 8px 0 0;
}
body.refresh .main-nav a:hover,
body.refresh .main-nav a:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:3px; }

/* Footer */
body.refresh .site-footer { position:relative; padding:0; background:var(--rf-surface-deep); border-top:none; }
body.refresh .site-footer::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--rf-rainbow); }
body.refresh .footer-inner {
  max-width:var(--rf-frame); margin:0 auto; padding:24px var(--rf-pad);
  display:flex; align-items:baseline; justify-content:space-between; gap:24px;
}
body.refresh .footer-copy { margin:0; color:var(--rf-ink-faint); font-size:14px; }
body.refresh .footer-nav { margin:0; }
body.refresh .footer-nav ul { display:flex; gap:22px; list-style:none; margin:0; padding:0; flex-wrap:wrap; }
body.refresh .footer-nav a { color:#d0d0e0; font-size:14px; text-decoration:underline; text-underline-offset:2px; }

/* --------------------------------------------------------------------------
   4. Book page — full-bleed bands
   -------------------------------------------------------------------------- */
body.refresh.page-book .site-main > .container { max-width:none; padding:0; }
body.refresh .rf-band__inner { max-width:var(--rf-frame); margin:0 auto; padding:0 var(--rf-pad); }

/* Hero band — glow (romance-tinted red + orange) over base */
body.refresh .rf-hero { padding:40px 0 0; }

/* Breadcrumb (inside hero) */
body.refresh .breadcrumbs ol {
  display:flex; flex-wrap:wrap; align-items:center; gap:6px; list-style:none; margin:0 0 30px; padding:0;
  font:13px/1.4 var(--rf-font-ui); letter-spacing:0.06em; text-transform:uppercase;
}
body.refresh .breadcrumbs li { color:#b6b6cc; display:flex; align-items:center; gap:6px; }
body.refresh .breadcrumbs__sep { color:#b6b6cc; }  /* match crumb text; --rf-grey was 4.03:1 (AQA) */
body.refresh .breadcrumbs a { color:#b6b6cc; text-decoration:underline; text-underline-offset:2px; }
body.refresh .breadcrumbs [aria-current="page"] { color:var(--rf-ink-secondary); }
body.refresh .breadcrumbs li:not(:last-child)::after { content:none; }

/* Hero two-column: rail (cover + buy) | main (title, blurb, facts) */
body.refresh .rf-hero__grid { display:grid; grid-template-columns:360px 1fr; column-gap:44px; row-gap:var(--rf-stack); align-items:start; }
body.refresh .rf-rail { display:flex; flex-direction:column; gap:var(--rf-stack); grid-column:1; grid-row:1 / span 2; }
body.refresh .rf-main { display:flex; flex-direction:column; gap:var(--rf-stack); grid-column:2; grid-row:2; }

/* Cover slab (signature glass panel) */
body.refresh .rf-coverslab {
  padding:20px; border-radius:20px;
  background:linear-gradient(155deg, rgba(255,255,255,0.16), rgba(255,255,255,0.04));
  border:1px solid rgba(255,255,255,0.28);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  box-shadow:0 30px 70px -30px rgba(0,0,0,0.8), inset 0 1px 0 rgba(255,255,255,0.4);
}
body.refresh .rf-coverslab figure { margin:0; }
body.refresh .rf-coverslab img {
  display:block; width:100%; height:auto; border-radius:8px;
  box-shadow:0 24px 50px -18px rgba(0,0,0,0.95);
}

/* Buy panel (restyles the existing .buy-box partial) */
body.refresh .buy-box {
  margin:0;
  background:var(--rf-surface-buy); border:1px solid rgba(255,255,255,0.18);
  padding:26px; border-radius:var(--rf-r-card); display:flex; flex-direction:column; gap:16px;
}
body.refresh .buy-box h2 { margin:0; font:700 22px/1.1 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .buy-intro,
body.refresh .buy-note { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.55; color:#dededf; }
body.refresh .buy-note--final { color:#b6b6cc; font-size:15px; }
body.refresh .buy-box .buy-note:not(.buy-note--final) { border-top:1px solid rgba(255,255,255,0.16); padding-top:16px; }
body.refresh .buy-buttons { margin:0; }
body.refresh .buy-btn {
  display:block; width:100%; box-sizing:border-box; text-align:center;
  padding:14px 20px; border-radius:var(--rf-r-btn2); font:700 16px/1 var(--rf-font-ui); text-decoration:none;
}
body.refresh .buy-btn--primary { background:var(--rf-violet-cta); color:#fff; border:1px solid transparent; }
body.refresh .buy-btn--secondary { padding:13px 20px; background:transparent; color:#fff; font-size:15px; border:1px dashed rgba(255,255,255,0.55); }
body.refresh .buy-btn:hover { text-decoration:none; }

/* Title */
body.refresh .rf-hero h1 {
  grid-column:2; grid-row:1;
  margin:0; font:700 56px/1.02 var(--rf-font-ui); letter-spacing:-0.03em; color:#fff; text-wrap:balance;
}

/* Blurb box — offset hard color shadow (violet) */
body.refresh .rf-blurb {
  background:var(--rf-surface-panel); border:1px solid rgba(255,255,255,0.2);
  border-radius:var(--rf-r-frame); padding:32px; display:flex; flex-direction:column; gap:16px;
  box-shadow:14px 14px 0 -2px oklch(0.62 0.20 305 / 0.55);
}
body.refresh .rf-blurb p { margin:0; font-family:var(--rf-font-serif); font-size:18px; line-height:1.65; color:var(--rf-ink-body); }
body.refresh .rf-blurb p:first-child { font-size:21px; font-weight:600; line-height:1.45; color:#fff; }
body.refresh .rf-blurb p:last-child {
  font-style:italic; color:#f0f0f8; line-height:1.6;
  border-top:2px solid rgba(255,255,255,0.25); padding-top:16px; margin-top:4px;
}
/* Links inside a blurb (e.g. a newsletter CTA) — accessible hue-text token so
   they clear AA on the dark panel instead of falling through to legacy #9333EA. */
body.refresh .rf-blurb a {
  color:var(--rf-page-hue-text, var(--rf-violet-text));
  text-decoration:underline; text-underline-offset:2px;
}
body.refresh .rf-blurb a:hover { text-decoration-thickness:2px; }
body.refresh .rf-blurb a:focus-visible { outline:3px solid var(--rf-focus); outline-offset:2px; border-radius:3px; }

/* Fast Facts — tab-headed table (restyles the .book-facts partial) */
body.refresh .book-facts { margin:0; display:flex; flex-direction:column; }
body.refresh .book-facts h2 {
  align-self:flex-start; margin:0; padding:12px 22px; border-radius:12px 12px 0 0;
  background:var(--rf-page-hue); color:var(--rf-on-hue); font:700 21px/1 var(--rf-font-ui); letter-spacing:0.02em;
}
body.refresh .book-facts-list {
  margin:0; background:var(--rf-surface-panel);
  border:1px solid rgba(255,255,255,0.14); border-left:3px solid var(--rf-page-hue);
  border-radius:0 10px 10px 10px;
}
body.refresh .book-fact {
  display:grid; grid-template-columns:150px 1fr; gap:20px; padding:18px 22px;
  border-bottom:1px dashed rgba(255,255,255,0.25);
}
body.refresh .book-fact:last-child { border-bottom:none; }
body.refresh .book-fact dt {
  margin:0; font:700 13px/1.3 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-ink-muted);
}
body.refresh .book-fact dt [aria-hidden="true"] { display:none; } /* hide the visual colon; table layout implies it */
body.refresh .book-fact dd { margin:0; font-size:16px; color:#fff; }
body.refresh .book-fact dd a { color:#fff; text-decoration:underline; text-underline-offset:2px; }
body.refresh .book-fact dd em { font-style:italic; }

/* --------------------------------------------------------------------------
   5. "Inside the book" tab module (z-tabs) — Deep Night
   Panels use the hidden attribute (correct ARIA); all content is in the DOM.
   -------------------------------------------------------------------------- */
body.refresh .rf-inside { background:transparent; padding:var(--rf-stack) 0 0; }
body.refresh .z-tabs__strip { display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; }
body.refresh .z-tabs__tab {
  appearance:none; cursor:pointer; margin:0 0 -3px; position:relative;
  padding:13px 24px; border-radius:10px 10px 0 0; font:700 19px/1 var(--rf-font-ui); letter-spacing:0.01em;
  background:transparent; color:#b4b4c9; border:2px dashed rgba(255,255,255,0.35);
}
body.refresh .z-tabs__tab.is-active {
  background:var(--rf-surface-panel); color:#fff; z-index:1;
  border:3px solid var(--rf-violet-btn); border-bottom-color:var(--rf-surface-panel);
}
body.refresh .z-tabs__count { font-size:12px; opacity:0.75; }
body.refresh .z-tabs__panel {
  background:var(--rf-surface-panel); border-top:3px solid var(--rf-violet-btn);
  border-radius:0 var(--rf-r-grid) var(--rf-r-grid) var(--rf-r-grid); padding:36px 40px;
}
body.refresh .z-tabs__panel[hidden] { display:none; }
body.refresh .z-tabs__head { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
body.refresh .z-tabs__title { margin:0; font:700 30px/1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .z-tabs__rule { flex:1; height:2px; }
body.refresh .z-tabs__rule--violet { background:var(--rf-violet-btn); }
body.refresh .z-tabs__rule--red { background:var(--rf-red-accent); }
body.refresh .z-tabs__rule--blue { background:var(--rf-blue-accent); }
body.refresh .z-tabs__expand {
  margin-left:auto; cursor:pointer; padding:13px 20px; border-radius:var(--rf-r-btn2);
  background:transparent; color:#fff; font:700 15px/1 var(--rf-font-ui); border:1px solid rgba(255,255,255,0.45);
  display:inline-flex; align-items:center; gap:8px;
}
body.refresh .z-tabs__chev::before { content:"\25BE"; display:inline-block; }
body.refresh .z-tabs__expand[aria-expanded="true"] .z-tabs__chev { transform:rotate(180deg); }

/* Excerpt */
body.refresh .z-tabs__excerpt { position:relative; }
body.refresh .z-tabs__pov-wrap { position:relative; }
body.refresh .z-tabs__pov-body p,
body.refresh .z-tabs__rest p {
  font-family:var(--rf-font-serif); font-size:19px; line-height:1.72; color:var(--rf-ink-body-alt);
  margin:0 0 1.1em; max-width:780px;
}
body.refresh .z-tabs__pov-body.has-pov-name > p:first-child {
  font:700 14px/1 var(--rf-font-ui); letter-spacing:0.16em; text-transform:uppercase;
  color:oklch(0.86 0.11 25); margin:0 0 12px;
}
body.refresh .z-tabs__fade {
  position:absolute; left:0; right:0; bottom:0; height:120px; pointer-events:none;
  background:linear-gradient(to bottom, rgba(18,18,27,0), var(--rf-surface-panel));
}
body.refresh .z-tabs__rest.is-collapsed { visibility:hidden; height:0; overflow:hidden; margin:0; }
body.refresh .z-tabs__excerpt:has(.z-tabs__rest:not(.is-collapsed)) .z-tabs__fade { display:none; }

/* Praise */
body.refresh .z-praise p {
  font-family:var(--rf-font-serif); font-size:18px; line-height:1.65; color:var(--rf-ink-body-alt);
  border-left:4px solid var(--rf-red-accent); padding:4px 0 4px 20px; margin:0 0 20px; max-width:820px;
}
body.refresh .z-praise p:nth-of-type(3n+2) { border-left-color:var(--rf-violet-btn); }
body.refresh .z-praise p:nth-of-type(3n) { border-left-color:var(--rf-blue-accent); }
body.refresh .z-praise strong { color:#fff; }
body.refresh .z-reviews__item { border-left:4px solid var(--rf-red-accent); padding:4px 0 4px 20px; margin:0 0 20px; }
body.refresh .z-reviews__item--blue { border-left-color:var(--rf-blue-accent); }
body.refresh .z-reviews__quote { margin:0; font-family:var(--rf-font-serif); font-size:18px; line-height:1.65; color:var(--rf-ink-body-alt); }
body.refresh .z-reviews__source { margin:8px 0 0; font-size:14px; color:var(--rf-ink-muted); }

/* FAQ accordion */
body.refresh .z-faq__item { border-left:4px solid var(--rf-blue-accent); padding-left:20px; border-bottom:1px solid rgba(255,255,255,0.2); }
body.refresh .z-faq__item:last-child { border-bottom:none; }
body.refresh .z-faq__item:nth-child(even) { border-left-color:var(--rf-red-accent); }
body.refresh .z-faq__q {
  display:flex; justify-content:space-between; gap:16px; width:100%; text-align:left; cursor:pointer;
  background:transparent; border:0; color:#fff; font:700 19px/1.3 var(--rf-font-ui); padding:16px 0;
}
body.refresh .z-faq__icon::before { content:"+"; font-weight:700; }
body.refresh .z-faq__q[aria-expanded="true"] .z-faq__icon::before { content:"\2212"; }
body.refresh .z-faq__a { font-family:var(--rf-font-serif); font-size:18px; line-height:1.6; color:#dedeec; max-width:780px; padding:0 0 16px; }
body.refresh .z-faq__a[hidden] { display:none; }

/* --------------------------------------------------------------------------
   6. "You Might Also Like" band
   -------------------------------------------------------------------------- */
body.refresh .rf-ymal { background:transparent; padding:var(--rf-stack) 0; }
body.refresh .rf-ymal__head { display:flex; align-items:center; gap:16px; margin-bottom:26px; }
body.refresh .rf-ymal__title { margin:0; font:700 32px/1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-ymal__rule { flex:1; height:2px; background:var(--rf-page-hue); }
body.refresh .rf-ymal__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
body.refresh .rf-ymal__more { margin:22px 0 0; }
body.refresh .rf-ymal__more a {
  font:700 14px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase;
  color:var(--rf-page-hue-text); text-decoration:underline; text-underline-offset:3px;
}

/* Book cards (light glass) — restyles the .book-card partial */
body.refresh .book-card {
  position:relative;
  background:linear-gradient(160deg, #17172433, var(--rf-surface-card)), var(--rf-surface-card);
  border:1px solid rgba(255,255,255,0.16); border-radius:12px; padding:14px;
  display:flex; flex-direction:column; gap:12px;
  transition:border-color 120ms ease;
}
body.refresh .book-card__link { display:flex; flex-direction:column; gap:12px; text-decoration:none; color:inherit; }
/* Whole card is the tap/click target (stretched link); accessible name stays the title. */
body.refresh .book-card__link::after { content:""; position:absolute; inset:0; z-index:1; border-radius:12px; }
body.refresh .book-card:hover { border-color:rgba(255,255,255,0.34); }
body.refresh .book-card img { width:100%; height:auto; max-height:none; border-radius:5px; align-self:flex-start; }
body.refresh .book-card__title { font:700 italic 17px/1.2 var(--rf-font-ui); color:#fff; text-decoration:underline; text-underline-offset:2px; }
body.refresh .book-card__note { font-size:13px; line-height:1.4; color:#b9b9d0; }
body.refresh .book-card__note--bold { font-weight:700; }
body.refresh .book-card__tropes { font-family:var(--rf-font-serif); font-size:14px; line-height:1.45; color:var(--rf-ink-secondary); }
/* Keyboard focus ring wraps the whole card, not just the title link. */
body.refresh .book-card:has(.book-card__link:focus-visible) { outline:3px solid var(--rf-focus); outline-offset:2px; box-shadow:0 0 0 2px var(--rf-surface-deep); }
body.refresh .book-card:has(.book-card__link:focus-visible) .book-card__link:focus-visible { outline:none; box-shadow:none; }

/* --------------------------------------------------------------------------
   7. Responsive
   -------------------------------------------------------------------------- */
@media (max-width:1100px) {
  /* Single column. display:contents promotes the rail/main children into the
     flex flow so they stack in DOM (= reading/tab) order:
     Title -> Cover -> Buy -> Blurb -> Fast Facts. No `order` overrides, so the
     visual order MATCHES the reading/tab order at every breakpoint. */
  body.refresh { --rf-stack:48px; }  /* roomier rhythm on tablet/mobile */
  body.refresh .rf-hero__grid { display:flex; flex-direction:column; gap:var(--rf-stack); }
  body.refresh .rf-rail,
  body.refresh .rf-main { display:contents; }
}
@media (max-width:900px) {
  body.refresh .rf-coverslab { -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
  body.refresh .rf-band__inner,
  body.refresh .header-inner,
  body.refresh .top-banner,
  body.refresh .footer-inner,
  body.refresh .footer-bottom .container { padding-left:24px; padding-right:24px; }
  body.refresh .z-tabs__panel { padding:28px 24px; }
}

/* Mobile nav — hamburger from 953px down. The 46px signature logo widened the
   header, so the desktop nav wraps to two lines at 953px (measured); collapse
   to the menu just before that. Self-contained (does not lean on main.css's
   900px block): a Deep Night dropdown with FULL-WIDTH, left-aligned rows, each
   carrying its hue as a 4px left bar, a few px apart. nav.js drives .is-open. */
@media (max-width:953px) {
  body.refresh .site-header { position:relative; }
  body.refresh .nav-toggle { display:block; color:var(--rf-ink-nav); }
  body.refresh .main-nav {
    display:none; position:absolute; top:100%; left:0; right:0; z-index:60;
    background:var(--rf-surface-raised);
    border-top:1px solid rgba(255,255,255,0.08);
    border-bottom:1px solid rgba(255,255,255,0.08);
    box-shadow:0 20px 40px -20px rgba(0,0,0,0.85);
  }
  body.refresh .main-nav.is-open { display:block; }
  body.refresh .main-nav ul { display:flex; flex-direction:column; align-items:stretch; gap:6px; padding:10px; }
  body.refresh .main-nav li { width:100%; border-bottom:none; }
  body.refresh .main-nav a {
    display:flex; align-items:center; justify-content:flex-start; text-align:left;
    width:100%; box-sizing:border-box; min-height:52px; padding:0 16px;
    border-bottom:none; border-left:4px solid transparent; border-radius:8px;
    background:rgba(255,255,255,0.03);
  }
  body.refresh .main-nav li:nth-child(1) a { border-left-color:var(--rf-violet); }
  body.refresh .main-nav li:nth-child(2) a { border-left-color:var(--rf-red-accent); }
  body.refresh .main-nav li:nth-child(3) a { border-left-color:var(--rf-yellow); }
  body.refresh .main-nav li:nth-child(4) a { border-left-color:var(--rf-blue-accent); }
  body.refresh .main-nav li:nth-child(5) a { border-left-color:var(--rf-green); }
  body.refresh .main-nav li:nth-child(6) a { border-left-color:var(--rf-violet); }
  body.refresh .main-nav a[aria-current="page"] { color:#fff; background:rgba(255,255,255,0.20); padding:0 16px; margin:0; border-radius:8px; }
}
@media (max-width:640px) {
  body.refresh .rf-hero h1 { font-size:36px; }
  body.refresh .rf-ymal__grid { grid-template-columns:repeat(2,1fr); }
  body.refresh .rf-blurb { padding:24px; box-shadow:8px 8px 0 -2px oklch(0.62 0.20 305 / 0.55); }
  body.refresh .book-fact { grid-template-columns:1fr; gap:4px; }
  body.refresh .rf-band__inner,
  body.refresh .header-inner,
  body.refresh .top-banner,
  body.refresh .footer-inner,
  body.refresh .footer-bottom .container { padding-left:20px; padding-right:20px; }
  body.refresh .z-tabs__strip { flex-wrap:nowrap; overflow-x:auto; }
  body.refresh .z-tabs__expand { margin-left:0; }
  body.refresh .footer-inner { flex-direction:column; align-items:flex-start; gap:14px; }
}

/* --------------------------------------------------------------------------
   8. Accessibility fallbacks
   -------------------------------------------------------------------------- */
/* Reduced transparency — glass becomes opaque */
@media (prefers-reduced-transparency: reduce) {
  body.refresh .rf-coverslab {
    -webkit-backdrop-filter:none; backdrop-filter:none;
    background:var(--rf-surface-panel); border-color:rgba(255,255,255,0.28);
  }
  body.refresh .book-card { background:var(--rf-surface-card); }
}
/* No backdrop-filter support — raise panel opacity so contrast holds */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) {
  body.refresh .rf-coverslab { background:rgba(20,20,30,0.9); }
}
/* Windows High Contrast / forced-colors — structure survives on real borders,
   shadows and translucency are gone; keep outline focus, give buttons borders. */
@media (forced-colors: active) {
  body.refresh .rf-coverslab,
  body.refresh .rf-blurb,
  body.refresh .book-facts-list,
  body.refresh .z-tabs__panel,
  body.refresh .book-card,
  body.refresh .buy-box { border:1px solid CanvasText; }
  body.refresh .rf-blurb { box-shadow:none; }
  body.refresh .buy-btn,
  body.refresh .z-tabs__expand,
  body.refresh .z-tabs__tab { border:2px solid ButtonBorder; }
  body.refresh .z-tabs__tab.is-active { border:3px solid Highlight; }
  body.refresh .book-facts h2 { border:1px solid ButtonBorder; }
  body.refresh :focus-visible { outline:3px solid Highlight; box-shadow:none; }
}
/* oklch fallback for older engines — approximate hex for the hue tokens */
@supports not (color: oklch(0 0 0)) {
  :root {
    --rf-violet:#8b5cf6; --rf-violet-btn:#8b5cf6; --rf-violet-cta:#7c3aed; --rf-violet-text:#c4b5fd;
    --rf-red:#e0455a; --rf-red-accent:#f0566b; --rf-red-text:#f6b8c1;
    --rf-orange:#f0913f; --rf-orange-text:#f8d0ad;
    --rf-yellow:#f2d64a; --rf-yellow-text:#f7e79b;
    --rf-green:#3fbf86; --rf-green-text:#a9e6c8;
    --rf-blue:#5a8fe0; --rf-blue-accent:#6b9ae6; --rf-blue-text:#bcd3f7;
    --rf-focus:#f2d64a;
  }
}

/* --------------------------------------------------------------------------
   9. Home page (page-home) — hero, featured card, section cards, latest
   Bands are transparent; the fixed .rf-glow shows through. Every text panel
   sits on an OPAQUE surface so the glow never washes behind copy.
   -------------------------------------------------------------------------- */
/* Home glow: a richer, multi-hue standing wash (still the fixed layer). */
body.refresh.page-home .rf-glow,
body.refresh.page-books .rf-glow {
  background:
    radial-gradient(900px 460px at 8% 0%,    color-mix(in oklch, var(--rf-violet) 30%, transparent), transparent 66%),
    radial-gradient(820px 460px at 64% 6%,   color-mix(in oklch, var(--rf-blue) 26%, transparent), transparent 66%),
    radial-gradient(760px 460px at 100% 42%, color-mix(in oklch, var(--rf-red) 22%, transparent), transparent 66%),
    radial-gradient(680px 440px at 26% 100%, color-mix(in oklch, var(--rf-green) 18%, transparent), transparent 66%);
}
/* Full-bleed bands inside the frame (band__inner sets the 1200px column). */
body.refresh.page-home .site-main > .container { max-width:none; padding:0; }

/* ----- Hero ----- */
body.refresh .rf-home { display:flex; flex-direction:column; gap:60px; }
body.refresh .rf-hhero { padding:56px 0 0; }
body.refresh .rf-hhero__grid {
  display:grid; grid-template-columns:minmax(0,520px) 1fr; gap:56px; align-items:center;
}
body.refresh .rf-hhero__intro { display:flex; flex-direction:column; gap:22px; align-items:flex-start; }
body.refresh .rf-eyebrow {
  margin:0; padding:7px 14px; border-radius:var(--rf-r-pill);
  background:rgba(8,8,14,0.72); border:1px solid rgba(255,255,255,0.16);
  font:700 13px/1 var(--rf-font-ui); letter-spacing:0.1em; text-transform:uppercase; color:#dcdcea;
}
body.refresh .rf-hhero__headline {
  margin:0; font:700 60px/1.04 var(--rf-font-ui); letter-spacing:-0.03em; color:#fff; text-wrap:balance;
}
body.refresh .rf-hhero__accent { color:var(--rf-yellow); }
body.refresh .rf-hhero__lede {
  margin:0; max-width:470px; font-family:var(--rf-font-serif); font-size:19px; line-height:1.55;
  color:var(--rf-ink-body); text-wrap:pretty;
}
body.refresh .rf-hhero__cta { display:flex; gap:12px; flex-wrap:wrap; }
body.refresh .rf-btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding:15px 24px; border-radius:var(--rf-r-btn); font:700 16px/1 var(--rf-font-ui); text-decoration:none;
}
body.refresh .rf-btn--primary { background:#fff; color:#0b0b10; border:1px solid #fff; }
body.refresh .rf-btn--primary:hover { background:#e9e9f2; }
body.refresh .rf-btn--ghost { background:rgba(9,9,15,0.7); color:#fff; border:1px solid rgba(255,255,255,0.35); }
body.refresh .rf-btn--ghost:hover { border-color:#fff; background:rgba(20,20,30,0.8); }

/* ----- Featured book card (glass frame over an OPAQUE base) ----- */
body.refresh .rf-feature {
  position:relative; align-self:center; overflow:hidden;
  display:grid; grid-template-columns:250px 1fr;
  border-radius:var(--rf-r-glass); border:1px solid rgba(255,255,255,0.28);
  background:linear-gradient(155deg, rgba(255,255,255,0.14), rgba(255,255,255,0.03)), var(--rf-surface-raised);
  box-shadow:0 30px 70px -30px rgba(0,0,0,0.8), inset 0 1px 0 rgba(255,255,255,0.4);
}
body.refresh .rf-feature__cover { align-self:stretch; }
body.refresh .rf-feature__cover img { display:block; width:250px; height:100%; max-height:none; object-fit:cover; }
body.refresh .rf-feature__body { display:flex; flex-direction:column; gap:10px; justify-content:center; padding:22px; }
body.refresh .rf-feature__badge {
  align-self:flex-start; padding:5px 11px; border-radius:var(--rf-r-badge);
  background:var(--rf-red-badge); color:#fff; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.1em; text-transform:uppercase;
}
body.refresh .rf-feature__title { margin:0; font:700 24px/1.14 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; text-wrap:balance; }
body.refresh .rf-feature__hook { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:#eeeef6; }
body.refresh .rf-feature__chips { display:flex; flex-wrap:wrap; gap:7px; margin:2px 0 0; padding:0; list-style:none; }
body.refresh .rf-chip {
  padding:5px 10px; border-radius:var(--rf-r-badge); background:rgba(8,8,14,0.8);
  border:1px solid rgba(255,255,255,0.3); font:400 13px/1.2 var(--rf-font-ui); color:#e8e8f2;
}
body.refresh .rf-chip--red    { border-color:color-mix(in oklch, var(--rf-red) 60%, transparent); color:#f6dede; }
body.refresh .rf-chip--orange { border-color:color-mix(in oklch, var(--rf-orange) 60%, transparent); color:#f8e6d6; }
body.refresh .rf-chip--neutral { border-color:rgba(255,255,255,0.3); color:#e8e8f2; }
/* CTA is the real link; its ::after stretches the whole card into a tap target. */
body.refresh .rf-feature__cta {
  display:block; margin-top:6px; text-align:center; padding:14px 20px; border-radius:var(--rf-r-btn2);
  background:var(--rf-violet-cta); color:#fff; font:700 15px/1 var(--rf-font-ui); text-decoration:none;
}
body.refresh .rf-feature__cta:hover { background:var(--rf-violet-btn); }
body.refresh .rf-feature__cta::after { content:""; position:absolute; inset:0; z-index:1; }
body.refresh .rf-feature:has(.rf-feature__cta:focus-visible) {
  outline:3px solid var(--rf-focus); outline-offset:3px; box-shadow:0 0 0 2px var(--rf-surface-deep);
}
body.refresh .rf-feature:has(.rf-feature__cta:focus-visible) .rf-feature__cta:focus-visible { outline:none; box-shadow:none; }

/* ----- "Where do you want to go?" — three hue section cards ----- */
body.refresh .rf-sections { padding:0; }
body.refresh .rf-sections__eyebrow {
  margin:0 0 22px; font:700 15px/1 var(--rf-font-ui); letter-spacing:0.16em; text-transform:uppercase; color:var(--rf-ink-muted);
}
body.refresh .rf-sections__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
body.refresh .rf-seccard {
  position:relative; display:flex; flex-direction:column; gap:12px; padding:26px;
  border-radius:var(--rf-r-card); text-decoration:none; transition:border-color 120ms ease;
}
body.refresh .rf-seccard--red {
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-red) 30%, transparent), rgba(14,14,22,0.92) 65%), #12121a;
  border:1px solid color-mix(in oklch, var(--rf-red-accent) 55%, transparent);
}
body.refresh .rf-seccard--yellow {
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-yellow) 24%, transparent), rgba(14,14,22,0.92) 65%), #12121a;
  border:1px solid color-mix(in oklch, var(--rf-yellow) 50%, transparent);
}
body.refresh .rf-seccard--blue {
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-blue) 34%, transparent), rgba(14,14,22,0.92) 65%), #12121a;
  border:1px solid color-mix(in oklch, var(--rf-blue-accent) 60%, transparent);
}
body.refresh .rf-seccard:hover { border-color:rgba(255,255,255,0.5); }
body.refresh .rf-seccard__count { font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; }
body.refresh .rf-seccard--red    .rf-seccard__count { color:var(--rf-red-text); }
body.refresh .rf-seccard--yellow .rf-seccard__count { color:var(--rf-yellow-text); }
body.refresh .rf-seccard--blue   .rf-seccard__count { color:var(--rf-blue-text); }
body.refresh .rf-seccard__title { font:700 27px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-seccard__body { font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:#dedeea; }
body.refresh .rf-seccard__body em { font-style:italic; }

/* ----- Latest romances — three horizontal cards ----- */
body.refresh .rf-latest { padding:0 0 56px; }
body.refresh .rf-latest__head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:22px; }
body.refresh .rf-latest__title { margin:0; font:700 30px/1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-latest__all { font-size:15px; color:var(--rf-red-text); text-decoration:underline; text-underline-offset:2px; white-space:nowrap; }
body.refresh .rf-latest__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }

/* ----- Home responsive ----- */
@media (max-width:1100px) {
  body.refresh .rf-hhero { padding:40px 0 0; }
  body.refresh .rf-home { gap:48px; }
  body.refresh .rf-hhero__grid { grid-template-columns:1fr; gap:40px; align-items:start; }
  body.refresh .rf-hhero__headline { font-size:48px; }
  body.refresh .rf-feature { align-self:stretch; max-width:640px; }
}
@media (max-width:640px) {
  body.refresh .rf-hhero__headline { font-size:36px; }
  body.refresh .rf-hhero__lede { font-size:18px; }
  body.refresh .rf-hhero__cta { width:100%; flex-direction:column; align-items:stretch; }
  body.refresh .rf-btn { width:100%; }
  body.refresh .rf-feature { grid-template-columns:1fr; max-width:none; }
  body.refresh .rf-feature__cover img { width:100%; height:auto; max-height:none; object-fit:contain; }
  body.refresh .rf-home { gap:44px; }
  body.refresh .rf-sections__grid { grid-template-columns:1fr; }
  body.refresh .rf-latest__grid { grid-template-columns:repeat(2,1fr); }
}

/* Home cards in forced-colors + reduced transparency */
@media (forced-colors: active) {
  body.refresh .rf-feature,
  body.refresh .rf-seccard,
  body.refresh .rf-eyebrow,
  body.refresh .rf-chip { border:1px solid CanvasText; }
}

/* --------------------------------------------------------------------------
   10. All Books index (page-books) — intro band, recommend card, jump pills,
   hue-barred catalog groups, universe callout, hue-tinted cards, out-of-print.
   Multi-genre page: keeps the rainbow header rule + shares the home glow.
   -------------------------------------------------------------------------- */
body.refresh.page-books .site-main > .container { max-width:none; padding:0; }

/* ----- Intro band ----- */
body.refresh .rf-books-intro { padding:44px 0 34px; }
body.refresh .rf-books-intro .breadcrumbs { margin:0 0 26px; }
body.refresh .rf-books-intro__grid {
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:start;
}
body.refresh .rf-books-intro__title {
  margin:0 0 18px; font:700 54px/1.05 var(--rf-font-ui); letter-spacing:-0.03em; color:#fff; text-wrap:balance;
}
body.refresh .rf-books-intro__lede {
  margin:0; max-width:460px; font-family:var(--rf-font-serif); font-size:18px; line-height:1.55; color:var(--rf-ink-body);
}
body.refresh .rf-books-intro__lede strong { color:#fff; font-weight:600; }

/* Recommendation card (opaque, holds text over the glow) */
body.refresh .rf-recommend {
  background:#0a0a10; border:1px solid rgba(255,255,255,0.2); border-radius:var(--rf-r-card); padding:24px;
}
body.refresh .rf-recommend__eyebrow {
  margin:0 0 14px; font:700 13px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-ink-muted);
}
body.refresh .rf-recommend__list { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px; }
body.refresh .rf-recommend__list li { font-size:16px; line-height:1.45; color:#eeeef7; }
body.refresh .rf-lead { font-weight:700; }
body.refresh .rf-lead--red    { color:var(--rf-red-text); }
body.refresh .rf-lead--yellow { color:var(--rf-yellow-text); }
body.refresh .rf-lead--blue   { color:var(--rf-blue-text); }
body.refresh .rf-lead--violet { color:var(--rf-violet-text); }
body.refresh .rf-recommend__list a { color:#fff; text-decoration:underline; text-underline-offset:2px; }
body.refresh .rf-recommend__list em { font-style:italic; }

/* ----- Series jump pills ----- */
body.refresh .rf-pills { margin:28px 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:10px; }
body.refresh .rf-pill {
  display:inline-flex; align-items:center; gap:7px; padding:9px 15px; border-radius:var(--rf-r-pill);
  background:rgba(10,10,16,0.85); border:1px solid var(--pill,rgba(255,255,255,0.3));
  font:600 14px/1 var(--rf-font-ui); color:var(--pill-text,#e8e8f2); text-decoration:none;
}
body.refresh .rf-pill__count { display:inline-flex; align-items:center; gap:7px; font-weight:700; opacity:0.9; }
body.refresh .rf-pill__dot { opacity:0.6; font-weight:400; }
body.refresh .rf-pill--red    { --pill:color-mix(in oklch, var(--rf-red-accent) 90%, transparent); --pill-text:#f6dede; }
body.refresh .rf-pill--orange { --pill:color-mix(in oklch, var(--rf-orange) 85%, transparent);     --pill-text:#f9e8d9; }
body.refresh .rf-pill--yellow { --pill:color-mix(in oklch, var(--rf-yellow) 80%, transparent);     --pill-text:#f7f0d8; }
body.refresh .rf-pill--blue   { --pill:color-mix(in oklch, var(--rf-blue-accent) 90%, transparent); --pill-text:#dbe6fa; }
body.refresh .rf-pill--violet { --pill:color-mix(in oklch, var(--rf-violet-btn) 90%, transparent);  --pill-text:#dccdf6; }
body.refresh .rf-pill:hover { border-color:#fff; }

/* ----- Catalog band + groups ----- */
body.refresh .rf-catalog { padding:8px 0 56px; }
body.refresh .rf-catgroup + .rf-catgroup,
body.refresh .rf-catalog .rf-oop {
  border-top:1px solid rgba(255,255,255,0.1); margin-top:40px; padding-top:34px;
}
/* Hue bar next to a heading */
body.refresh .rf-bar { display:flex; align-items:center; gap:14px; }
body.refresh .rf-bar::before {
  content:""; flex:0 0 auto; width:6px; align-self:stretch; min-height:1.05em;
  background:var(--bar,#fff); border-radius:3px;
}
body.refresh .rf-bar--red    { --bar:var(--rf-red-accent); }
body.refresh .rf-bar--orange { --bar:var(--rf-orange); }
body.refresh .rf-bar--yellow { --bar:var(--rf-yellow); }
body.refresh .rf-bar--blue   { --bar:var(--rf-blue-accent); }
body.refresh .rf-bar--grey   { --bar:var(--rf-grey); }
body.refresh .rf-bar--sm::before { width:4px; }

body.refresh .rf-catgroup__title { margin:0 0 22px; font:700 34px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-catgroup__title::before { width:6px; }
body.refresh .rf-catsub { margin-top:26px; }
body.refresh .rf-catsub__title { margin:0 0 14px; font:700 26px/1.15 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-catsub__title::before { width:5px; }
body.refresh .rf-catsub__subtitle { margin:22px 0 14px; font:700 21px/1.2 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .rf-catsub__desc { margin:0 0 16px; max-width:820px; font-family:var(--rf-font-serif); font-size:17px; line-height:1.5; color:#dcdce8; }

/* Universe callout card */
body.refresh .rf-universe {
  padding:22px 24px; border-radius:var(--rf-r-grid); margin-bottom:20px;
  background:linear-gradient(140deg, color-mix(in oklch, var(--rf-red) 20%, transparent), rgba(14,14,22,0.92)), #101019;
  border:1px solid color-mix(in oklch, var(--rf-red-accent) 45%, transparent);
}
body.refresh .rf-universe__title { margin:0 0 6px; font:700 22px/1.2 var(--rf-font-ui); color:#fff; }
body.refresh .rf-universe__desc { margin:0 0 10px; font-family:var(--rf-font-serif); font-size:17px; line-height:1.5; color:#e0e0ec; }
body.refresh .rf-universe__link { font-size:15px; color:var(--rf-red-text); text-decoration:underline; text-underline-offset:2px; }

/* ----- Hue-tinted catalog card grids (opaque base under a faint hue wash) ----- */
body.refresh .rf-catgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
/* Jump targets clear the sticky header; reserve cover space so lazy-loaded
   images don't shift the page (keeps pill jumps landing accurately). */
body.refresh .rf-catsub { scroll-margin-top:140px; }
body.refresh .rf-catgrid .book-card { border-radius:var(--rf-r-grid); }
body.refresh .rf-catgrid--red .book-card {
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-red) 15%, var(--rf-surface-card)), var(--rf-surface-card));
  border-color:color-mix(in oklch, var(--rf-red-accent) 42%, transparent);
}
body.refresh .rf-catgrid--orange .book-card {
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-orange) 15%, var(--rf-surface-card)), var(--rf-surface-card));
  border-color:color-mix(in oklch, var(--rf-orange) 42%, transparent);
}
body.refresh .rf-catgrid--yellow .book-card {
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-yellow) 12%, var(--rf-surface-card)), var(--rf-surface-card));
  border-color:color-mix(in oklch, var(--rf-yellow) 40%, transparent);
}
body.refresh .rf-catgrid--blue .book-card {
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-blue) 16%, var(--rf-surface-card)), var(--rf-surface-card));
  border-color:color-mix(in oklch, var(--rf-blue-accent) 42%, transparent);
}

/* ----- Out-of-print panel ----- */
body.refresh .rf-oop {
  background:#101019; border:1px solid rgba(255,255,255,0.14); border-radius:var(--rf-r-grid); padding:26px;
}
body.refresh .rf-oop__title { margin:0 0 16px; font:700 19px/1.2 var(--rf-font-ui); letter-spacing:0.02em; color:#fff; }
body.refresh .rf-oop__title::before { width:4px; }
body.refresh .rf-oop__list {
  margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px;
  font-family:var(--rf-font-serif); font-size:15px; line-height:1.5; color:#c4c4d8;
}
body.refresh .rf-oop__list em { font-style:italic; }

/* ----- Responsive ----- */
@media (max-width:1100px) {
  body.refresh .rf-catgrid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px) {
  body.refresh .rf-books-intro__grid { grid-template-columns:1fr; gap:28px; }
  body.refresh .rf-books-intro__title { font-size:44px; }
}
@media (max-width:640px) {
  body.refresh .rf-catgrid { grid-template-columns:repeat(2,1fr); }
  body.refresh .rf-catgroup__title { font-size:28px; }
  body.refresh .rf-books-intro__title { font-size:36px; }
}

/* Forced colors — keep the hue bars/cards structural */
@media (forced-colors: active) {
  body.refresh .rf-recommend,
  body.refresh .rf-universe,
  body.refresh .rf-oop,
  body.refresh .rf-pill { border:1px solid CanvasText; }
  body.refresh .rf-bar::before { background:CanvasText; }
}

/* --------------------------------------------------------------------------
   11. Single-hue category/content pages (page-cat) — Handoff-2 treatment.
   One hue owns the page GLOW; header rule + footer rule stay the site-wide
   rainbow (Jeff likes it on every page). Reuses books-hub catalog/recommend/pill.
   -------------------------------------------------------------------------- */
body.refresh.page-cat .site-main > .container { max-width:none; padding:0; }
/* Standing glow leans on the page hue + secondary */
body.refresh.page-cat .rf-glow {
  background:
    radial-gradient(880px 480px at 8% 1%,   color-mix(in oklch, var(--rf-page-hue) 40%, transparent), transparent 66%),
    radial-gradient(760px 460px at 92% 24%,  color-mix(in oklch, var(--rf-page-hue-2) 26%, transparent), transparent 66%),
    radial-gradient(720px 520px at 20% 99%,  color-mix(in oklch, var(--rf-page-hue) 16%, transparent), transparent 66%);
}

/* ----- Intro band ----- */
body.refresh .rf-cat-intro { padding:40px 0 34px; }
body.refresh .rf-cat-intro .breadcrumbs ol { margin:0 0 28px; }
body.refresh .rf-cat-intro__grid { display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:start; }
body.refresh .rf-cat-intro__grid--single { grid-template-columns:1fr; max-width:840px; }
body.refresh .rf-cat-intro__title {
  margin:0 0 18px; font:700 54px/1.05 var(--rf-font-ui); letter-spacing:-0.03em; color:#fff; text-wrap:balance;
}
/* Opaque copy slab keeps the intro prose off the glow */
body.refresh .rf-cat-intro__slab {
  max-width:480px; padding:20px 22px; border-radius:14px;
  background:rgba(9,9,15,0.9); border:1px solid rgba(255,255,255,0.16);
}
body.refresh .rf-cat-intro__slab > :first-child { margin-top:0; }
body.refresh .rf-cat-intro__slab > :last-child { margin-bottom:0; }
body.refresh .rf-cat-intro__slab h2 { margin:0 0 10px; font:700 20px/1.25 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .rf-cat-intro__slab p { margin:0; font-family:var(--rf-font-serif); font-size:18px; line-height:1.6; color:var(--rf-ink-body); }
body.refresh .rf-cat-intro__slab p + p { margin-top:12px; }
body.refresh .rf-cat-intro__slab strong { color:#fff; }
body.refresh .rf-cat-intro__slab em { font-style:italic; }

/* Links inside the intro copy slab — accessible hue-adaptive color + underline.
   (Bio link here otherwise falls through to legacy #9333EA, which fails AA on the dark slab.) */
body.refresh .rf-cat-intro__slab p a { color:var(--rf-page-hue-text, var(--rf-violet-text)); text-decoration:underline; text-underline-offset:2px; }
body.refresh .rf-cat-intro__slab p a:hover { text-decoration-thickness:2px; }
body.refresh .rf-cat-intro__slab p a:focus-visible { outline:3px solid var(--rf-focus); outline-offset:2px; border-radius:3px; }

/* ----- Catalog: separators between the top-level groups on a category page ----- */
body.refresh.page-cat .rf-catalog .rf-catsub + .rf-catsub {
  border-top:1px solid rgba(255,255,255,0.1); margin-top:40px; padding-top:34px;
}

/* ----- Anthologies note ----- */
body.refresh .rf-cat-anthologies { margin:34px 0 0; font-size:15px; line-height:1.5; color:var(--rf-ink-muted); }
body.refresh .rf-cat-anthologies a { color:var(--rf-page-hue-text); text-decoration:underline; text-underline-offset:2px; }

/* ----- Responsive ----- */
@media (max-width:900px) {
  body.refresh .rf-cat-intro__grid { grid-template-columns:1fr; gap:28px; }
  body.refresh .rf-cat-intro__title { font-size:44px; }
}
@media (max-width:640px) {
  body.refresh .rf-cat-intro__title { font-size:36px; }
}

/* ----- Series / Universe pages (reuse page-cat + catalog components) ----- */
body.refresh .rf-series-connection { color:var(--rf-ink-secondary) !important; font-size:16px !important; }
body.refresh .rf-universe-divisions { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:20px; }
body.refresh .rf-universe-divisions__name { font:700 20px/1.2 var(--rf-font-ui); color:#fff; text-decoration:underline; text-underline-offset:2px; }
body.refresh .rf-universe-divisions__count { margin-left:12px; font:600 14px/1 var(--rf-font-ui); color:var(--rf-page-hue-text); white-space:nowrap; }
body.refresh .rf-universe-divisions__desc { margin:6px 0 0; max-width:760px; font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:var(--rf-ink-body); }

/* --------------------------------------------------------------------------
   12. Digital Accessibility page (page-da) — Handoff-2 blue treatment.
   Reuses page-cat glow + intro slab + hue bars. Bespoke: two-tone hero title,
   About-the-book (cover slab + offset-shadow card), Ways-to-work grid (wide
   Substack panel w/ reused .substack-recent list + two stacked side cards),
   and a contact band. One hue (blue) owns the glow; header/footer stay rainbow.
   -------------------------------------------------------------------------- */
body.refresh.page-da .rf-da { display:block; }

/* ----- Shared purple CTA (matches home featured CTA) ----- */
body.refresh .rf-da-cta {
  display:inline-block; text-align:center; padding:14px 22px; border-radius:var(--rf-r-btn2);
  background:var(--rf-violet-cta); color:#fff; font:700 15px/1 var(--rf-font-ui); text-decoration:none;
  border:1px solid transparent;
}
body.refresh .rf-da-cta:hover { background:var(--rf-violet-btn); }

/* ----- Band scaffolding ----- */
body.refresh .rf-da-band { padding:16px 0 40px; }
body.refresh .rf-da-band__title {
  margin:0 0 26px; font:700 34px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff;
}
body.refresh .rf-da-band__title::before { width:6px; }

/* ----- Hero band ----- */
body.refresh .rf-da-hero { padding-bottom:20px; }
body.refresh .rf-da-hero__title span { color:var(--rf-page-hue-text); }
body.refresh .rf-da-hero .rf-cat-intro__grid--single { max-width:860px; }
body.refresh .rf-da-hero__slab { max-width:860px; padding:24px 26px; }
body.refresh .rf-da-hero__slab p { font-size:18px; line-height:1.65; }

/* ----- About the book band ----- */
body.refresh .rf-da-about__grid {
  display:grid; grid-template-columns:1.35fr 1fr; gap:48px; align-items:center;
}
body.refresh .rf-da-about__rail { display:flex; flex-direction:column; align-items:center; }
/* Cover + availability + CTA share one glass slab */
body.refresh .rf-da-cover { display:flex; flex-direction:column; gap:18px; width:100%; max-width:340px; }
body.refresh .rf-da-cover figure { display:flex; justify-content:center; }
body.refresh .rf-da-cover img { width:100%; height:auto; }
body.refresh .rf-da-avail {
  border-top:1px solid rgba(255,255,255,0.2); padding-top:16px;
  display:flex; flex-direction:column; gap:6px;
}
body.refresh .rf-da-avail__label {
  margin:0; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text);
}
body.refresh .rf-da-avail__formats { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.4; color:#e6e6f0; }
body.refresh .rf-da-cover .rf-da-cta { margin-top:2px; }

/* Right-hand card — offset blue hard shadow (signature, mirrors .rf-blurb) */
body.refresh .rf-da-about__card {
  background:var(--rf-surface-panel); border:1px solid rgba(255,255,255,0.2);
  border-radius:var(--rf-r-frame); padding:32px; display:flex; flex-direction:column; gap:16px;
  box-shadow:14px 14px 0 -2px oklch(0.62 0.16 250 / 0.5);
}
body.refresh .rf-da-about__lead { margin:0; font:600 20px/1.45 var(--rf-font-serif); color:#fff; }
body.refresh .rf-da-about__lead em { font-style:italic; }
body.refresh .rf-da-about__card > p { margin:0; font-family:var(--rf-font-serif); font-size:17px; line-height:1.6; color:var(--rf-ink-body); }
body.refresh .rf-da-about__card > p em { font-style:italic; }
body.refresh .rf-da-about__link {
  align-self:flex-start; margin-top:4px; padding-top:16px; border-top:1px solid rgba(255,255,255,0.16);
  width:100%; box-sizing:border-box;
  color:var(--rf-blue-text); font:600 15px/1.3 var(--rf-font-ui); text-decoration:underline; text-underline-offset:3px;
}
body.refresh .rf-da-arrow { text-decoration:none; }

/* ----- Ways to work with me band ----- */
body.refresh .rf-da-work__grid { display:grid; grid-template-columns:1.5fr 1fr; gap:22px; align-items:start; }
body.refresh .rf-da-work__side { display:flex; flex-direction:column; gap:22px; }
body.refresh .rf-da-panel {
  background:linear-gradient(165deg, color-mix(in oklch, var(--rf-blue) 12%, #0c0c13), #09090e 70%);
  border:1px solid color-mix(in oklch, var(--rf-blue-accent) 32%, transparent);
  border-radius:var(--rf-r-card); padding:28px;
  display:flex; flex-direction:column; gap:12px;
}
body.refresh .rf-da-panel__eyebrow {
  margin:0; font:700 12px/1.2 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text);
}
body.refresh .rf-da-panel__title { margin:0; font:700 25px/1.15 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-da-panel__body { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.55; color:var(--rf-ink-body); }
body.refresh .rf-da-panel__body em { font-style:italic; }
body.refresh .rf-da-panel .rf-da-about__link { margin-top:auto; }

/* Recent posts — reuses .substack-recent progressive-enhancement block */
body.refresh .rf-da-recent {
  margin-top:6px; background:#08080d; border:1px solid rgba(255,255,255,0.12);
  border-radius:12px; padding:18px 20px;
}
body.refresh .rf-da-recent__heading {
  margin:0 0 12px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text);
}
body.refresh .rf-da-recent .substack-recent__loading {
  margin:0; font-family:var(--rf-font-serif); font-size:15px; color:var(--rf-ink-muted);
}
body.refresh .rf-da-recent__list { margin:0; padding:0; list-style:none; }
body.refresh .rf-da-recent__list li {
  display:flex; justify-content:space-between; align-items:baseline; gap:18px;
  padding:12px 0; border-top:1px solid rgba(255,255,255,0.1);
}
body.refresh .rf-da-recent__list li:first-child { border-top:0; padding-top:0; }
body.refresh .rf-da-recent__list li:last-child { padding-bottom:0; }
body.refresh .rf-da-recent__list a {
  color:#fff; font:600 16px/1.35 var(--rf-font-ui); text-decoration:underline; text-underline-offset:2px;
}
body.refresh .rf-da-recent__list .substack-recent__date {
  flex:0 0 auto; white-space:nowrap; font:700 12px/1.2 var(--rf-font-ui);
  letter-spacing:0.06em; text-transform:uppercase; color:var(--rf-blue-text);
}
body.refresh .rf-da-substack__foot { margin-top:18px; display:flex; justify-content:flex-end; }

/* ----- Contact band ----- */
body.refresh .rf-da-contact {
  margin-top:12px; padding:40px 0 56px; border-top:1px solid rgba(255,255,255,0.1);
}
body.refresh .rf-da-contact__inner { display:flex; align-items:center; justify-content:space-between; gap:36px; }
body.refresh .rf-da-contact__copy { max-width:600px; }
body.refresh .rf-da-contact__title { margin:0 0 10px; font:700 30px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-da-contact__body { margin:0; font-family:var(--rf-font-serif); font-size:17px; line-height:1.55; color:var(--rf-ink-body); }
body.refresh .rf-da-contact__cta { flex:0 0 auto; }

/* ----- Responsive ----- */
@media (max-width:900px) {
  body.refresh .rf-da-about__grid { grid-template-columns:1fr; gap:28px; align-items:start; }
  body.refresh .rf-da-about__rail { align-items:flex-start; }
  body.refresh .rf-da-work__grid { grid-template-columns:1fr; }
  body.refresh .rf-da-band__title { font-size:28px; }
}
@media (max-width:640px) {
  body.refresh .rf-da-contact__inner { flex-direction:column; align-items:flex-start; gap:22px; }
  body.refresh .rf-da-contact__cta { width:100%; box-sizing:border-box; }
  body.refresh .rf-da-recent__list li { flex-direction:column; gap:4px; }
  body.refresh .rf-da-recent__list .substack-recent__date { align-self:flex-start; }
}

/* Forced colors — keep panels/cards structural */
@media (forced-colors: active) {
  body.refresh .rf-da-panel,
  body.refresh .rf-da-about__card,
  body.refresh .rf-da-recent { border:1px solid CanvasText; }
}

/* ----- DA "About the book" — unified float box (cover wrapped inside the text,
   echoing the current site; the one bespoke spot on a bespoke page) ----- */
body.refresh .rf-da-aboutbox {
  max-width:860px; padding:32px; border-radius:var(--rf-r-frame);
  background:var(--rf-surface-panel); border:1px solid rgba(255,255,255,0.2);
  box-shadow:14px 14px 0 -2px oklch(0.62 0.16 250 / 0.5);
}
body.refresh .rf-da-aboutbox::after { content:""; display:block; clear:both; }
body.refresh .rf-da-aboutbox__cover { float:left; width:196px; max-width:42%; margin:4px 28px 16px 0; }
body.refresh .rf-da-aboutbox__cover img {
  display:block; width:100%; height:auto; border-radius:8px;
  box-shadow:0 22px 46px -18px rgba(0,0,0,0.95);
}
body.refresh .rf-da-aboutbox > .rf-da-about__lead { margin:0 0 16px; }
body.refresh .rf-da-aboutbox__p { margin:0; font-family:var(--rf-font-serif); font-size:17px; line-height:1.6; color:var(--rf-ink-body); }
/* Foot clears the float so the availability line + actions span the full box */
body.refresh .rf-da-aboutbox__foot { clear:both; margin-top:20px; padding-top:18px; border-top:1px solid rgba(255,255,255,0.16); }
body.refresh .rf-da-aboutbox__avail { margin:0 0 18px; font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:var(--rf-ink-body); }
body.refresh .rf-da-aboutbox__avail .rf-da-avail__label { margin-right:2px; }
body.refresh .rf-da-avail__label { display:inline; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text); }
body.refresh .rf-da-aboutbox__actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; }
/* Neutralize the card-context bits when the authors link sits in the actions row */
body.refresh .rf-da-aboutbox__authors-line { margin:16px 0 0; }
body.refresh .rf-da-aboutbox__authors { display:inline-block; margin-top:0; padding-top:0; border-top:0; width:auto; }

@media (max-width:640px) {
  body.refresh .rf-da-aboutbox { padding:24px; box-shadow:8px 8px 0 -2px oklch(0.62 0.16 250 / 0.5); }
  body.refresh .rf-da-aboutbox__cover { float:none; width:170px; max-width:60%; margin:0 0 20px; }
  body.refresh .rf-da-aboutbox__actions { gap:16px; }
  body.refresh .rf-da-aboutbox__actions .rf-da-cta { width:100%; box-sizing:border-box; text-align:center; }
}

/* Contact promoted into the "Ways to work" grid as the 3rd side card */
body.refresh .rf-da-work { padding-bottom:56px; }
body.refresh .rf-da-panel__cta { align-self:flex-start; margin-top:auto; }

/* Ways-to-work restructure: full-width Substack panel (intro | recent posts)
   over a 3-across row of equal cards (Review / Podcasts / Contact) — balances
   by construction, whatever the panel and card heights. */
body.refresh .rf-da-substack__intro { display:flex; flex-direction:column; gap:12px; }
body.refresh .rf-da-substack__grid { display:grid; grid-template-columns:1fr; gap:24px; }
body.refresh .rf-da-substack__grid:has(.substack-recent:not([hidden])) { grid-template-columns:1.05fr 1fr; align-items:start; }
body.refresh .rf-da-substack__grid .rf-da-recent { margin-top:0; }
body.refresh .rf-da-cards3 { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:22px; }
@media (max-width:900px) {
  body.refresh .rf-da-substack__grid:has(.substack-recent:not([hidden])) { grid-template-columns:1fr; }
  body.refresh .rf-da-cards3 { grid-template-columns:1fr; }
}

/* Legacy breadcrumb chevron (main.css) is decorative — give it empty alt text so
   screen readers don't announce "›" on not-yet-refreshed pages. Refresh pages
   already use content:none + a real aria-hidden slash span. */
body:not(.refresh) .breadcrumbs li:not(:last-child)::after { content:"\203a" / ""; }

/* --------------------------------------------------------------------------
   13. DA sub-pages — Link directory (Featured On #6f + Resources).
   Row = one link across [outlet | title | date]; unlinked entries are <div>
   with the same geometry. Reuses the DA blue hero + .rf-pills jump menu.
   -------------------------------------------------------------------------- */
body.refresh .rf-featon__em { color:var(--rf-page-hue-text); }
body.refresh .rf-featon__body { padding:8px 0 56px; }
body.refresh .rf-featon__group { scroll-margin-top:130px; }
body.refresh .rf-featon__group + .rf-featon__group { margin-top:46px; }
body.refresh .rf-featon__title { margin:0 0 18px; font:700 30px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-featon__title::before { width:6px; }

body.refresh .rf-dir { background:#101019; border:1px solid rgba(255,255,255,0.16); border-radius:16px; padding:8px 26px 14px; }
body.refresh .rf-dir__row {
  display:grid; grid-template-columns:230px minmax(0,1fr) auto; grid-template-areas:"outlet title date";
  gap:22px; align-items:baseline; padding:15px 0;
  border-bottom:1px dashed rgba(255,255,255,0.22); text-decoration:none; color:inherit;
}
body.refresh .rf-dir__row:last-child { border-bottom:0; }
body.refresh .rf-dir__outlet { grid-area:outlet; font:700 17px/1.4 var(--rf-font-ui); color:var(--rf-page-hue-text); }
body.refresh .rf-dir__outlet--title { font-style:italic; }
body.refresh .rf-dir__title { grid-area:title; font-family:var(--rf-font-serif); font-size:17px; line-height:1.45; color:#eeeef7; }
body.refresh .rf-dir__row--link .rf-dir__title { text-decoration:underline; text-underline-offset:3px; }
body.refresh a.rf-dir__row:hover .rf-dir__title { text-decoration-thickness:2px; }
body.refresh .rf-dir__note { color:var(--rf-ink-muted); }
body.refresh .rf-dir__date { grid-area:date; font:700 13px/1.4 var(--rf-font-ui); letter-spacing:0.06em; text-transform:uppercase; color:var(--rf-ink-muted); white-space:nowrap; }
body.refresh a.rf-dir__row:focus-visible { outline:3px solid var(--rf-focus); outline-offset:3px; border-radius:6px; }

@media (max-width:760px) {
  body.refresh .rf-dir__row { grid-template-columns:1fr auto; grid-template-areas:"outlet date" "title title"; gap:4px 16px; }
  body.refresh .rf-dir__date { justify-self:end; }
}
@media (forced-colors: active) {
  body.refresh .rf-dir { border:1px solid CanvasText; }
  body.refresh a.rf-dir__row:focus-visible { outline:3px solid CanvasText; }
}

/* Resources page — group description + name/role rows (people) + single-col (sites) */
body.refresh .rf-featon__desc { margin:0 0 18px; max-width:760px; font-family:var(--rf-font-serif); font-size:17px; line-height:1.55; color:var(--rf-ink-body); }
body.refresh .rf-dir--nr .rf-dir__row { grid-template-columns:260px minmax(0,1fr); grid-template-areas:"title role"; }
body.refresh .rf-dir--nr .rf-dir__title { font:700 16px/1.4 var(--rf-font-ui); color:#fff; }
body.refresh .rf-dir__role { grid-area:role; font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:var(--rf-ink-secondary); }
body.refresh .rf-dir--sites .rf-dir__row { grid-template-columns:1fr; grid-template-areas:"title"; }
body.refresh .rf-dir--sites .rf-dir__title { font:700 17px/1.4 var(--rf-font-ui); color:#fff; }
@media (max-width:760px) {
  body.refresh .rf-dir--nr .rf-dir__row { grid-template-columns:1fr; grid-template-areas:"title" "role"; gap:2px 0; }
}

/* --------------------------------------------------------------------------
   14. DA "About the Authors" — bio pair (#6d) + closing book bar.
   -------------------------------------------------------------------------- */
body.refresh .rf-bios { padding:4px 0 0; }
body.refresh .rf-bio { display:grid; grid-template-columns:230px minmax(0,1fr); gap:40px; align-items:start; max-width:1000px; padding:40px 0; }
body.refresh .rf-bio + .rf-bio { border-top:1px solid rgba(255,255,255,0.12); }
body.refresh .rf-bio:first-child { padding-top:8px; }
body.refresh .rf-bio__photo {
  padding:16px; border-radius:20px; align-self:start;
  background:linear-gradient(155deg, rgba(255,255,255,0.14), rgba(255,255,255,0.04));
  border:1px solid rgba(255,255,255,0.28);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  box-shadow:0 30px 70px -30px rgba(0,0,0,0.8), inset 0 1px 0 rgba(255,255,255,0.4);
}
body.refresh .rf-bio__photo img { display:block; width:100%; height:auto; border-radius:12px; }
body.refresh .rf-bio__eyebrow { margin:0 0 6px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text); }
body.refresh .rf-bio__name { margin:0 0 14px; font:700 34px/1.05 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-bio__body { max-width:640px; font-family:var(--rf-font-serif); font-size:18px; line-height:1.7; color:var(--rf-ink-body); }
body.refresh .rf-bio__body p { margin:0; }
body.refresh .rf-bio__body strong { color:#fff; }
body.refresh .rf-bio__body a { color:var(--rf-blue-text); text-decoration:underline; text-underline-offset:2px; }
/* cross-link to About Jeff keeps the DESTINATION hue (violet) */
body.refresh .rf-bio__link { display:inline-block; margin-top:16px; color:var(--rf-violet-text); font:600 15px/1.3 var(--rf-font-ui); text-decoration:underline; text-underline-offset:3px; }

/* Closing book bar */
body.refresh .rf-bookbar { margin-top:6px; padding:32px 0 8px; border-top:1px solid rgba(255,255,255,0.12); display:grid; grid-template-columns:110px minmax(0,1fr) auto; gap:26px; align-items:center; }
body.refresh .rf-bookbar__cover img { display:block; width:110px; height:auto; border-radius:6px; box-shadow:0 16px 34px -14px rgba(0,0,0,0.9); }
body.refresh .rf-bookbar__eyebrow { margin:0 0 4px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text); }
body.refresh .rf-bookbar__title { margin:0 0 6px; font:700 24px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-bookbar__line { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:var(--rf-ink-body); }
body.refresh .rf-bookbar__actions { display:flex; flex-direction:column; gap:10px; }
body.refresh .rf-bookbar__actions .rf-da-cta { white-space:nowrap; }
body.refresh .rf-btn-outline { display:inline-block; text-align:center; padding:13px 20px; border-radius:var(--rf-r-btn2); background:transparent; color:#fff; font:700 15px/1 var(--rf-font-ui); text-decoration:none; border:1px solid rgba(255,255,255,0.55); white-space:nowrap; }
body.refresh .rf-btn-outline:hover { border-color:#fff; }
@media (max-width:420px) {
  body.refresh .rf-btn-outline { white-space:normal; max-width:100%; }
}

@media (max-width:820px) {
  body.refresh .rf-bio { grid-template-columns:1fr; gap:20px; }
  body.refresh .rf-bio__photo { max-width:200px; }
  body.refresh .rf-bookbar { grid-template-columns:1fr; gap:18px; }
  body.refresh .rf-bookbar__actions { flex-direction:row; flex-wrap:wrap; }
}
@media (forced-colors: active) {
  body.refresh .rf-bio__photo, body.refresh .rf-btn-outline { border:1px solid CanvasText; }
}

/* --------------------------------------------------------------------------
   15. DA episode page (#6e) — native audio player + In-this-episode + transcript.
   -------------------------------------------------------------------------- */
body.refresh .rf-ep__body { padding:8px 0 56px; }
body.refresh .rf-ep__section + .rf-ep__section { margin-top:46px; }
body.refresh .rf-ep__h2 { margin:0 0 20px; font:700 26px/1.15 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-ep__h2::before { width:6px; }

body.refresh .rf-ep__player { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:20px; align-items:start; }
body.refresh .rf-ep__playcard { padding:24px; border-radius:16px;
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-blue) 14%, #0c0c13), #0a0a10 70%);
  border:1px solid color-mix(in oklch, var(--rf-blue-accent) 34%, transparent); }
body.refresh .rf-ep__eyebrow { margin:0 0 8px; font:700 12px/1.2 var(--rf-font-ui); letter-spacing:0.12em; text-transform:uppercase; color:var(--rf-blue-text); }
body.refresh .rf-ep__eptitle { margin:0 0 18px; font:700 22px/1.25 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .rf-ep__inset { background:rgba(8,8,14,0.9); border:1px solid rgba(255,255,255,0.14); border-radius:12px; padding:18px 20px; }
body.refresh .rf-ep__insetlabel { margin:0 0 12px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.12em; text-transform:uppercase; color:var(--rf-ink-muted); }
body.refresh .rf-ep__audio { width:100%; display:block; }
body.refresh .rf-ep__download { display:inline-block; margin-top:14px; color:var(--rf-blue-text); font:600 15px/1.3 var(--rf-font-ui); text-decoration:underline; text-underline-offset:3px; }
body.refresh .rf-ep__dlnote { color:var(--rf-ink-muted); font-weight:400; }

body.refresh .rf-ep__toc { background:#101019; border:1px solid rgba(255,255,255,0.16); border-radius:16px; padding:22px 24px; }
body.refresh .rf-ep__toc-title { margin:0 0 6px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text); }
body.refresh .rf-ep__toc ul { list-style:none; margin:0; padding:0; }
body.refresh .rf-ep__toc li { padding:14px 0; border-top:1px solid rgba(255,255,255,0.1); font-family:var(--rf-font-serif); font-size:16px; line-height:1.45; color:var(--rf-ink-body); }
body.refresh .rf-ep__toc li:first-child { border-top:0; padding-top:0; }
body.refresh .rf-ep__toc li:last-child { padding-bottom:0; }

body.refresh .rf-ep__transcript { max-width:900px; background:#101019; border:1px solid rgba(255,255,255,0.16); border-radius:16px; padding:30px 32px; }
body.refresh .rf-ep__turn { display:grid; grid-template-columns:92px minmax(0,1fr); gap:20px; align-items:baseline; padding:20px 0; border-top:1px solid rgba(255,255,255,0.1); }
body.refresh .rf-ep__turn:first-child { border-top:0; padding-top:2px; }
body.refresh .rf-ep__speaker { font:700 13px/1.5 var(--rf-font-ui); letter-spacing:0.1em; text-transform:uppercase; }
body.refresh .rf-ep__speaker--jeff { color:oklch(0.84 0.10 250); }
body.refresh .rf-ep__speaker--michele { color:oklch(0.82 0.13 305); }
body.refresh .rf-ep__turntext { display:flex; flex-direction:column; gap:14px; }
body.refresh .rf-ep__turntext p { margin:0; font-family:var(--rf-font-serif); font-size:17px; line-height:1.7; color:var(--rf-ink-body); }
body.refresh .rf-ep__turntext em { font-style:italic; }

body.refresh .rf-ep__foot { margin-top:36px; display:flex; flex-wrap:wrap; gap:12px; }

@media (max-width:820px) { body.refresh .rf-ep__player { grid-template-columns:1fr; } }
@media (max-width:600px) {
  body.refresh .rf-ep__turn { grid-template-columns:1fr; gap:6px; }
}
@media (forced-colors: active) {
  body.refresh .rf-ep__playcard, body.refresh .rf-ep__inset, body.refresh .rf-ep__toc, body.refresh .rf-ep__transcript { border:1px solid CanvasText; }
}

/* --------------------------------------------------------------------------
   16. DA "Digital Accessibility Review" service page (#6c).
   -------------------------------------------------------------------------- */
body.refresh .rf-rev__hero { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:40px; align-items:start; }
body.refresh .rf-rev__eyebrow-pill { display:inline-block; margin:0 0 18px; padding:8px 16px; border-radius:999px; background:rgba(8,8,14,0.85); border:1px solid rgba(255,255,255,0.28); font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-ink-secondary); }
body.refresh .rf-rev__title { margin:0 0 18px; font:700 46px/1.05 var(--rf-font-ui); letter-spacing:-0.03em; color:#fff; text-wrap:balance; }
body.refresh .rf-rev__price { padding:10px; border-radius:20px; background:linear-gradient(155deg, rgba(255,255,255,0.14), rgba(255,255,255,0.04)); border:1px solid rgba(255,255,255,0.28); box-shadow:0 30px 70px -30px rgba(0,0,0,0.8), inset 0 1px 0 rgba(255,255,255,0.4); }
body.refresh .rf-rev__price-inset { padding:22px; border-radius:14px; background:rgba(8,8,14,0.9); }
body.refresh .rf-rev__price-eyebrow { margin:0 0 6px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text); }
body.refresh .rf-rev__price-amt { margin:0 0 8px; font:700 46px/1 var(--rf-font-ui); letter-spacing:-0.03em; color:#fff; }
body.refresh .rf-rev__price-note { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:var(--rf-ink-body); }
body.refresh .rf-rev__price .rf-da-cta { display:block; text-align:center; margin:14px 10px 0; }
body.refresh .rf-rev__price-email { margin:12px 0 4px; text-align:center; font-family:var(--rf-font-serif); font-size:15px; color:var(--rf-ink-secondary); }

body.refresh .rf-rev__band { padding:44px 0 0; }
body.refresh .rf-rev__h2 { margin:0 0 22px; font:700 28px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-rev__h2::before { width:6px; }

body.refresh .rf-rev__figs { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
body.refresh .rf-rev__fig { margin:0; padding:16px; border-radius:16px; background:#101019; border:1px solid rgba(255,255,255,0.16); }
body.refresh .rf-rev__fig img { display:block; width:100%; height:auto; border-radius:8px; border:1px solid rgba(255,255,255,0.1); }
body.refresh .rf-rev__fig figcaption { margin-top:14px; font-family:var(--rf-font-serif); font-size:15px; line-height:1.5; color:var(--rf-ink-secondary); }

body.refresh .rf-rev__two { display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr); gap:40px; align-items:start; }
body.refresh .rf-rev__deliv { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
body.refresh .rf-rev__deliv li { padding:16px 18px; border-radius:12px; background:#101019; border:1px solid rgba(255,255,255,0.14); border-left:4px solid var(--rf-blue-accent); font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:var(--rf-ink-body); }
body.refresh .rf-rev__covers-intro { margin:0 0 16px; font-family:var(--rf-font-serif); font-size:17px; line-height:1.5; color:var(--rf-ink-body); }
body.refresh .rf-rev__chips { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; list-style:none; margin:0; padding:0; }
body.refresh .rf-rev__chips li { padding:12px 16px; border-radius:10px; background:linear-gradient(160deg, color-mix(in oklch, var(--rf-blue) 12%, var(--rf-surface-card)), var(--rf-surface-card)); border:1px solid color-mix(in oklch, var(--rf-blue-accent) 34%, transparent); font-family:var(--rf-font-serif); font-size:15px; line-height:1.4; color:#eeeef7; }

body.refresh .rf-rev__steps { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
body.refresh .rf-rev__step { padding:24px; border-radius:16px; background:#101019; border:1px solid rgba(255,255,255,0.16); }
body.refresh .rf-rev__step-eyebrow { margin:0 0 8px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text); }
body.refresh .rf-rev__step-title { margin:0 0 10px; font:700 22px/1.15 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .rf-rev__step-body { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.55; color:var(--rf-ink-body); }

body.refresh .rf-rev__pricing { margin-top:44px; padding:36px 0 8px; border-top:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:space-between; gap:32px; }
body.refresh .rf-rev__pricing-copy { max-width:640px; }
body.refresh .rf-rev__pricing-copy h2 { margin:0 0 10px; font:700 30px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-rev__pricing-copy p { margin:0; font-family:var(--rf-font-serif); font-size:17px; line-height:1.55; color:var(--rf-ink-body); }
body.refresh .rf-rev__pricing-copy strong { color:#fff; }
body.refresh .rf-rev__pricing .rf-da-cta { flex:0 0 auto; }

@media (max-width:900px) {
  body.refresh .rf-rev__hero { grid-template-columns:1fr; }
  body.refresh .rf-rev__price { max-width:400px; }
  body.refresh .rf-rev__figs { grid-template-columns:1fr; }
  body.refresh .rf-rev__two { grid-template-columns:1fr; gap:32px; }
  body.refresh .rf-rev__steps { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  body.refresh .rf-rev__title { font-size:36px; }
  body.refresh .rf-rev__chips { grid-template-columns:1fr; }
  body.refresh .rf-rev__pricing { flex-direction:column; align-items:flex-start; gap:20px; }
  body.refresh .rf-rev__pricing .rf-da-cta { width:100%; box-sizing:border-box; text-align:center; }
}
@media (forced-colors: active) {
  body.refresh .rf-rev__price, body.refresh .rf-rev__price-inset, body.refresh .rf-rev__fig,
  body.refresh .rf-rev__deliv li, body.refresh .rf-rev__chips li, body.refresh .rf-rev__step { border:1px solid CanvasText; }
}

/* Rule: no italics in headers (consistency w/ book pages — Jeff). */
body.refresh :is(h1,h2,h3,h4,h5,h6) em,
body.refresh :is(h1,h2,h3,h4,h5,h6) i,
body.refresh :is(h1,h2,h3,h4,h5,h6) cite { font-style:normal; }

/* --------------------------------------------------------------------------
   17. About Jeff landing (page-about, violet) — Handoff-2 #04.
   Cross-hue accents: genre book cards, blue Day-Job card, green newsletter.
   -------------------------------------------------------------------------- */
body.refresh .rf-bar--violet { --bar:var(--rf-violet-btn); }
body.refresh.page-about .site-main > .container { max-width:none; padding:0; }

/* Hero */
body.refresh .rf-about-hero { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:44px; align-items:start; padding:8px 0 0; }
body.refresh .rf-about-hero__h1 { margin:0 0 20px; font:700 54px/1.03 var(--rf-font-ui); letter-spacing:-0.03em; color:#fff; }
body.refresh .rf-about-hero__buttons { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
body.refresh .rf-about-hero__portrait {
  padding:10px; border-radius:20px;
  background:linear-gradient(155deg, rgba(255,255,255,0.14), rgba(255,255,255,0.04)); border:1px solid rgba(255,255,255,0.28);
  box-shadow:0 30px 70px -30px rgba(0,0,0,0.8), inset 0 1px 0 rgba(255,255,255,0.4);
}
body.refresh .rf-about-hero__portrait img { display:block; width:100%; height:auto; border-radius:14px; }
body.refresh .rf-about-hero__caption { margin:12px 4px 4px; text-align:center; font:700 12px/1.4 var(--rf-font-ui); letter-spacing:0.12em; text-transform:uppercase; color:var(--rf-violet-text); }

/* Section scaffolding */
body.refresh .rf-about-band { padding:44px 0 0; }
body.refresh .rf-about-h2 { margin:0 0 20px; font:700 28px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-about-h2::before { width:6px; }
body.refresh .rf-about-lead { margin:0 0 18px; font-family:var(--rf-font-serif); font-size:17px; line-height:1.55; color:var(--rf-ink-body); }
body.refresh .rf-about-buttons { display:flex; flex-wrap:wrap; gap:12px; }
body.refresh .rf-about-prose { max-width:760px; font-family:var(--rf-font-serif); font-size:18px; line-height:1.7; color:var(--rf-ink-body); }
body.refresh .rf-about-prose p { margin:0 0 16px; }
body.refresh .rf-about-prose a { color:var(--rf-violet-text); text-decoration:underline; text-underline-offset:2px; }
body.refresh .rf-about-prose em { font-style:italic; }

/* "What I write" + "Where to start" two-column band */
body.refresh .rf-about-two { display:grid; grid-template-columns:minmax(0,0.95fr) minmax(0,1.05fr); gap:44px; align-items:start; }

/* Color-legend list */
body.refresh .rf-legend { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
body.refresh .rf-legend li { padding:14px 18px; border-radius:12px; background:#101019; border:1px solid rgba(255,255,255,0.12); border-left:4px solid var(--lg,#fff); font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:var(--rf-ink-body); }
body.refresh .rf-legend li a { color:#fff; text-decoration:underline; text-underline-offset:2px; }
body.refresh .rf-legend li em { font-style:italic; }
body.refresh .rf-legend--red { --lg:var(--rf-red-accent); }
body.refresh .rf-legend--orange { --lg:var(--rf-orange); }
body.refresh .rf-legend--yellow { --lg:var(--rf-yellow); }
body.refresh .rf-legend--blue { --lg:var(--rf-blue-accent); }

/* "Where to start" mini book cards (genre hues) */
body.refresh .rf-startcards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
body.refresh .rf-startcard { position:relative; display:flex; flex-direction:column; padding:14px; border-radius:14px; text-decoration:none; }
body.refresh .rf-startcard--red { background:linear-gradient(160deg, color-mix(in oklch, var(--rf-red) 15%, var(--rf-surface-card)), var(--rf-surface-card)); border:1px solid color-mix(in oklch, var(--rf-red-accent) 45%, transparent); }
body.refresh .rf-startcard--yellow { background:linear-gradient(160deg, color-mix(in oklch, var(--rf-yellow) 13%, var(--rf-surface-card)), var(--rf-surface-card)); border:1px solid color-mix(in oklch, var(--rf-yellow) 45%, transparent); }
body.refresh .rf-startcard__cover { display:block; margin-bottom:12px; }
body.refresh .rf-startcard__cover img { display:block; width:100%; height:auto; border-radius:8px; box-shadow:0 16px 34px -16px rgba(0,0,0,0.9); }
body.refresh .rf-startcard__eyebrow { margin:0 0 4px; font:700 11px/1.2 var(--rf-font-ui); letter-spacing:0.12em; text-transform:uppercase; }
body.refresh .rf-startcard--red .rf-startcard__eyebrow { color:var(--rf-red-text); }
body.refresh .rf-startcard--yellow .rf-startcard__eyebrow { color:var(--rf-yellow-text); }
body.refresh .rf-startcard__title { margin:0 0 6px; font:700 18px/1.15 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .rf-startcard__tag { margin:0; font-family:var(--rf-font-serif); font-size:14px; line-height:1.4; color:var(--rf-ink-secondary); }
body.refresh .rf-startcard::after { content:""; position:absolute; inset:0; z-index:1; border-radius:14px; }
body.refresh .rf-startcards:has(.rf-startcard:focus-visible) .rf-startcard:focus-visible { outline:3px solid var(--rf-focus); outline-offset:3px; }
body.refresh .rf-startmore { margin:18px 0 0; }
body.refresh .rf-startmore a { color:var(--rf-violet-text); text-decoration:underline; text-underline-offset:3px; font:600 15px/1.4 var(--rf-font-ui); }

/* Day-job (Digital accessibility) blue callout card */
body.refresh .rf-daycard { margin-top:8px; padding:26px 28px; border-radius:16px;
  background:linear-gradient(150deg, color-mix(in oklch, var(--rf-blue) 20%, transparent), rgba(14,14,22,0.92)), #101019;
  border:1px solid color-mix(in oklch, var(--rf-blue-accent) 45%, transparent); }
body.refresh .rf-daycard__eyebrow { margin:0 0 6px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-blue-text); }
body.refresh .rf-daycard__title { margin:0 0 10px; font:700 24px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-daycard__body { margin:0 0 14px; font-family:var(--rf-font-serif); font-size:17px; line-height:1.55; color:var(--rf-ink-body); }
body.refresh .rf-daycard__body em { font-style:italic; }
body.refresh .rf-daycard__link { color:var(--rf-blue-text); font:600 15px/1.3 var(--rf-font-ui); text-decoration:underline; text-underline-offset:3px; }

/* Featured-on mini list (stacked outlet + title, whole row is the link) */
body.refresh .rf-about-featured { background:#101019; border:1px solid rgba(255,255,255,0.16); border-radius:16px; padding:6px 26px; }
body.refresh .rf-about-featured__row { display:block; padding:16px 0; border-top:1px solid rgba(255,255,255,0.1); text-decoration:none; }
body.refresh .rf-about-featured__row:first-child { border-top:0; }
body.refresh .rf-about-featured__outlet { display:block; margin-bottom:4px; font:700 13px/1.3 var(--rf-font-ui); letter-spacing:0.02em; color:var(--rf-violet-text); }
body.refresh .rf-about-featured__title { font-family:var(--rf-font-serif); font-size:17px; line-height:1.4; color:#eeeef7; text-decoration:underline; text-underline-offset:3px; }
body.refresh a.rf-about-featured__row:focus-visible { outline:3px solid var(--rf-focus); outline-offset:2px; border-radius:6px; }
body.refresh .rf-about-more { margin:18px 0 0; }
body.refresh .rf-about-more a { color:var(--rf-violet-text); font:700 13px/1 var(--rf-font-ui); letter-spacing:0.1em; text-transform:uppercase; text-decoration:underline; text-underline-offset:3px; }

/* Social pills */
body.refresh .rf-about-social { display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0; padding:0; }
body.refresh .rf-about-social a { display:inline-block; padding:9px 18px; border-radius:999px; background:rgba(10,10,16,0.85); border:1px solid rgba(255,255,255,0.35); font:600 14px/1 var(--rf-font-ui); color:#eaeaf2; text-decoration:none; }
body.refresh .rf-about-social a:hover { border-color:#fff; }

/* Newsletter green closing band */
body.refresh .rf-about-nl { margin-top:44px; padding:36px 0 8px; border-top:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:space-between; gap:32px; }
body.refresh .rf-about-nl__copy { max-width:640px; }
body.refresh .rf-about-nl__copy h2 { margin:0 0 10px; font:700 28px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-about-nl__copy h2::before { --bar:var(--rf-green); width:6px; }
body.refresh .rf-about-nl__copy p { margin:0; font-family:var(--rf-font-serif); font-size:17px; line-height:1.55; color:var(--rf-ink-body); }
body.refresh .rf-btn-green { display:inline-block; flex:0 0 auto; text-align:center; padding:14px 22px; border-radius:var(--rf-r-btn2); background:var(--rf-green); color:#07070c; font:700 15px/1 var(--rf-font-ui); text-decoration:none; }
body.refresh .rf-btn-green:hover { background:oklch(0.74 0.16 150); }

@media (max-width:980px) {
  body.refresh .rf-about-hero { grid-template-columns:1fr; gap:28px; }
  body.refresh .rf-about-hero__portrait { max-width:300px; }
  body.refresh .rf-about-two { grid-template-columns:1fr; gap:34px; }
}
@media (max-width:640px) {
  body.refresh .rf-about-hero__h1 { font-size:40px; }
  body.refresh .rf-startcards { grid-template-columns:1fr 1fr; }
  body.refresh .rf-about-nl { flex-direction:column; align-items:flex-start; gap:20px; }
}
@media (forced-colors: active) {
  body.refresh .rf-about-hero__portrait, body.refresh .rf-legend li, body.refresh .rf-startcard,
  body.refresh .rf-daycard, body.refresh .rf-about-featured, body.refresh .rf-about-social a { border:1px solid CanvasText; }
}

/* --------------------------------------------------------------------------
   18. Long-read (Jeff & Will's Romance #6a, violet) — milestone strip,
   sticky jump rail, prose column, pull quote, ceremony program table.
   -------------------------------------------------------------------------- */
body.refresh .rf-lr__milestones { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin-top:32px; }
body.refresh .rf-lr__ms { padding:16px 16px 18px; border-radius:12px; background:rgba(9,9,15,0.86); border:1px solid rgba(255,255,255,0.18); border-top:3px solid var(--rf-page-hue); }
body.refresh .rf-lr__ms-date { margin:0 0 6px; font:700 12px/1.2 var(--rf-font-ui); letter-spacing:0.1em; text-transform:uppercase; color:var(--rf-page-hue-text); }
body.refresh .rf-lr__ms-label { margin:0; font-family:var(--rf-font-serif); font-size:15px; line-height:1.4; color:var(--rf-ink-body); }

body.refresh .rf-lr__body { display:grid; grid-template-columns:220px minmax(0,1fr); gap:56px; align-items:start; padding:44px 0 56px; }
body.refresh .rf-lr__rail { position:sticky; top:24px; padding:20px 18px; border-radius:14px; background:#101019; border:1px solid rgba(255,255,255,0.16); }
body.refresh .rf-lr__rail-title { margin:0 0 12px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-ink-muted); }
body.refresh .rf-lr__rail ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
body.refresh .rf-lr__rail a { display:block; padding:9px 0 9px 12px; border-left:3px solid rgba(255,255,255,0.14); font:500 15px/1.35 var(--rf-font-ui); color:var(--rf-ink-secondary); text-decoration:none; }
body.refresh .rf-lr__rail a:hover, body.refresh .rf-lr__rail a:focus-visible { border-left-color:var(--rf-page-hue); color:#fff; }

body.refresh .rf-lr__prose { max-width:720px; }
body.refresh .rf-lr__section + .rf-lr__section { margin-top:46px; }
body.refresh .rf-lr__section { scroll-margin-top:24px; }
body.refresh .rf-lr__h2 { margin:0 0 20px; font:700 30px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-lr__h2::before { width:5px; min-height:28px; }
body.refresh .rf-lr__prose p { margin:0 0 18px; font-family:var(--rf-font-serif); font-size:18px; line-height:1.7; color:var(--rf-ink-body); text-wrap:pretty; }
body.refresh .rf-lr__prose em { font-style:italic; }
body.refresh .rf-lr__quote { margin:26px 0; padding:26px 30px; border-radius:16px;
  background:linear-gradient(150deg, color-mix(in oklch, var(--rf-violet) 22%, transparent), rgba(14,14,22,0.92)), #101019;
  border:1px solid color-mix(in oklch, var(--rf-violet-btn) 45%, transparent); }
body.refresh .rf-lr__quote p { margin:0; font-family:var(--rf-font-serif); font-size:28px; line-height:1.3; font-weight:600; color:#fff; }

body.refresh .rf-program { margin:24px 0 8px; border-radius:16px; background:#101019; border:1px solid rgba(255,255,255,0.16); overflow:hidden; }
body.refresh .rf-program__head { padding:18px 24px; background:linear-gradient(150deg, color-mix(in oklch, var(--rf-violet) 20%, transparent), transparent), rgba(255,255,255,0.03); border-bottom:1px solid rgba(255,255,255,0.14); }
body.refresh .rf-program__eyebrow { margin:0 0 4px; font:700 11px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-violet-text); }
body.refresh .rf-program__title { margin:0; font:700 18px/1.2 var(--rf-font-ui); color:#fff; }
body.refresh .rf-program__rows { padding:6px 24px 14px; }
body.refresh .rf-program__row { display:grid; grid-template-columns:150px minmax(0,1fr); gap:18px 24px; padding:14px 0; border-top:1px solid rgba(255,255,255,0.1); align-items:baseline; }
body.refresh .rf-program__row:first-child { border-top:0; }
body.refresh .rf-program__label { font:700 13px/1.3 var(--rf-font-ui); letter-spacing:0.1em; text-transform:uppercase; color:var(--rf-ink-muted); }
body.refresh .rf-program__value { font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:var(--rf-ink-body); }
body.refresh .rf-program__value em { font-style:italic; }
body.refresh .rf-program__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }

@media (max-width:900px) {
  body.refresh .rf-lr__milestones { grid-template-columns:repeat(3,1fr); }
  body.refresh .rf-lr__body { grid-template-columns:1fr; gap:24px; }
  body.refresh .rf-lr__rail { position:static; }
  body.refresh .rf-lr__rail ul { flex-direction:row; flex-wrap:wrap; gap:8px; }
  body.refresh .rf-lr__rail a { border-left:0; border-bottom:3px solid rgba(255,255,255,0.14); padding:6px 10px; }
}
@media (max-width:600px) {
  body.refresh .rf-lr__milestones { grid-template-columns:repeat(2,1fr); }
  body.refresh .rf-program__row { grid-template-columns:1fr; gap:4px; }
}
@media (forced-colors: active) {
  body.refresh .rf-lr__ms, body.refresh .rf-lr__rail, body.refresh .rf-lr__quote, body.refresh .rf-program { border:1px solid CanvasText; }
}

/* --------------------------------------------------------------------------
   19. Newsletter landing (page-newsletter, green) — Handoff-2 #05.
   The MailerLite signup form is the page; hero copy + welcome-gift card and the
   "What lands in your inbox" band support it. Form markup lives in
   content/newsletter.html (embed stripped of its inline CSS blob); it is skinned
   here. reCAPTCHA + double opt-in success flow preserved.
   -------------------------------------------------------------------------- */
body.refresh .rf-pill--green { --pill:color-mix(in oklch, var(--rf-green) 85%, transparent); --pill-text:#d7f2e3; }
body.refresh .rf-bar--green  { --bar:var(--rf-green); }
body.refresh.page-newsletter .site-main > .container { max-width:none; padding:0; }

/* Hero: copy/gift (left) + signup form (right) */
body.refresh .rf-nl__hero { display:grid; grid-template-columns:minmax(0,1fr) 470px; gap:48px; align-items:start; padding:6px 0 4px; }
body.refresh .rf-nl__lead .rf-pill { text-transform:uppercase; letter-spacing:0.1em; font-weight:700; font-size:12px; }
body.refresh .rf-nl__h1 { margin:18px 0 20px; font:700 54px/1.04 var(--rf-font-ui); letter-spacing:-0.03em; color:#fff; }
body.refresh .rf-nl__accent { color:var(--rf-green-text); }
body.refresh .rf-nl__slab { max-width:560px; }
body.refresh .rf-nl__slab p { font-size:18px; line-height:1.6; }

/* Welcome-gift card */
body.refresh .rf-nl__gift {
  display:flex; gap:22px; align-items:flex-start; margin:22px 0 0; padding:20px; border-radius:16px;
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-green) 22%, transparent), rgba(14,14,22,0.92) 70%), #12121a;
  border:1px solid color-mix(in oklch, var(--rf-green) 45%, transparent); max-width:560px;
}
body.refresh .rf-nl__gift-cover { align-self:flex-start; width:120px; height:auto; border-radius:6px; }
body.refresh .rf-nl__gift-copy { min-width:0; }
body.refresh .rf-nl__gift-eyebrow { margin:0 0 6px; font:700 13px/1.2 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-green-text); }
body.refresh .rf-nl__gift-title { margin:0 0 8px; font:700 22px/1.15 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .rf-nl__gift-desc { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:#cfcfe2; }

/* Signup panel */
body.refresh .rf-nl__panel { background:#101019; border:1px solid rgba(255,255,255,0.16); border-radius:22px; padding:32px; }
body.refresh .rf-nl__form-title { margin:0 0 4px; font:700 24px/1.2 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .rf-nl__inset { margin-top:16px; background:#08080e; border:1px solid rgba(255,255,255,0.08); border-radius:14px; padding:22px; }
body.refresh .rf-nl__form-note { margin:16px 0 0; font-family:var(--rf-font-serif); font-size:15px; line-height:1.5; color:#b6b6cc; }

/* --- MailerLite embed skin (green) --- */
body.refresh .newsletter-form { max-width:100%; }
body.refresh .newsletter-form .ml-form-embedContainer,
body.refresh .newsletter-form .ml-form-embedWrapper,
body.refresh .newsletter-form .ml-form-embedBody { width:100%!important; background:transparent!important; border:0!important; margin:0!important; padding:0!important; }
body.refresh .newsletter-form .ml-form-align-center { text-align:left!important; }
body.refresh .newsletter-form .ml-form-embedContent { margin:0 0 18px; }
body.refresh .newsletter-form .ml-form-embedContent h4 { display:none; }
body.refresh .newsletter-form .ml-form-embedContent p { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.5; color:#cfcfe2; }
body.refresh .newsletter-form .rf-nl__label { display:block; margin:0 0 7px; font:700 13px/1.2 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:#a6a6bd; }
body.refresh .newsletter-form .ml-form-fieldRow { margin:0 0 16px; }
body.refresh .newsletter-form .ml-form-fieldRow.ml-last-item { margin:0 0 16px; }
body.refresh .newsletter-form input[type="text"],
body.refresh .newsletter-form input[type="email"] {
  width:100%; box-sizing:border-box; background:#0e0e16; color:#fff;
  border:1px solid rgba(255,255,255,0.35); border-radius:10px; padding:14px 16px;
  font:16px/1.3 var(--rf-font-ui);
}
body.refresh .newsletter-form input::placeholder { color:#8a8aa0; }
body.refresh .newsletter-form input:focus-visible { outline:3px solid var(--rf-focus); outline-offset:2px; border-color:var(--rf-green); }
body.refresh .newsletter-form .ml-form-checkboxRow { margin:0 0 18px; }
body.refresh .newsletter-form .ml-form-checkboxRow label.checkbox {
  display:flex; gap:12px; align-items:flex-start; margin:0; padding:14px 16px;
  background:#0e0e16; border:1px solid rgba(255,255,255,0.35); border-radius:10px; cursor:pointer;
}
body.refresh .newsletter-form .ml-form-checkboxRow input[type="checkbox"] { width:20px; height:20px; margin:1px 0 0; flex:0 0 auto; accent-color:var(--rf-green); }
body.refresh .newsletter-form .ml-form-checkboxRow .label-description { margin:0; }
body.refresh .newsletter-form .ml-form-checkboxRow .label-description p { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.45; color:#e2e2ee; }
body.refresh .newsletter-form .ml-form-recaptcha { float:none!important; margin:2px 0 18px; }
body.refresh .newsletter-form .ml-form-embedSubmit { margin:0; float:none!important; width:100%; }
body.refresh .newsletter-form button.primary {
  width:100%; box-sizing:border-box; padding:16px 20px; border:0; border-radius:12px;
  background:var(--rf-green)!important; color:#07070c!important; font:700 16px/1 var(--rf-font-ui);
  cursor:pointer; transition:opacity 120ms ease-out;
}
body.refresh .newsletter-form button.primary:hover { opacity:0.9; }
body.refresh .newsletter-form button.primary:focus-visible { outline:3px solid var(--rf-focus); outline-offset:3px; }
body.refresh .newsletter-form .ml-error input,
body.refresh .newsletter-form .ml-error .label-description { border-color:#ff7a7a!important; }
body.refresh .newsletter-form .ml-error .label-description p,
body.refresh .newsletter-form label.ml-error,
body.refresh .newsletter-form .ml-error label:first-child { color:#ff9a9a!important; }
/* Double opt-in success, rendered in place of the form */
body.refresh .newsletter-form .row-success .ml-form-successContent { padding:6px 2px; outline:none; }
body.refresh .newsletter-form .row-success h3,
body.refresh .newsletter-form .row-success h4 { margin:0 0 8px; font:700 22px/1.2 var(--rf-font-ui); color:#fff; }
body.refresh .newsletter-form .row-success p { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.55; color:#cfcfe2; }

/* What lands in your inbox */
body.refresh .rf-nl__body { padding:48px 0 56px; }
body.refresh .rf-nl__h2 { margin:0 0 22px; font:700 34px/1.1 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-nl__h2::before { width:6px; }
body.refresh .rf-nl__cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
body.refresh .rf-nl__card {
  padding:26px; border-radius:16px;
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-green) 12%, #101019), #101019);
  border:1px solid color-mix(in oklch, var(--rf-green) 40%, transparent);
}
body.refresh .rf-nl__card-eyebrow { margin:0 0 8px; font:700 13px/1.2 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-green-text); }
body.refresh .rf-nl__card-title { margin:0 0 10px; font:700 22px/1.15 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .rf-nl__card-desc { margin:0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.55; color:#cfcfe2; }
body.refresh .rf-nl__reassure { margin:26px 0 0; font-family:var(--rf-font-serif); font-size:16px; line-height:1.55; color:#b6b6cc; }
body.refresh .rf-nl__reassure a { color:var(--rf-green-text); text-decoration:underline; text-underline-offset:2px; }

@media (max-width:900px) {
  body.refresh .rf-nl__hero { grid-template-columns:minmax(0,1fr); gap:32px; }
  body.refresh .rf-nl__lead, body.refresh .rf-nl__panel { min-width:0; }
  body.refresh .rf-nl__h1 { font-size:42px; overflow-wrap:break-word; }
  body.refresh .rf-nl__cards { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  body.refresh .rf-nl__gift { gap:16px; }
  body.refresh .rf-nl__gift-cover { width:108px; }
}
@media (forced-colors: active) {
  body.refresh .rf-nl__panel, body.refresh .rf-nl__inset, body.refresh .rf-nl__gift, body.refresh .rf-nl__card,
  body.refresh .newsletter-form input, body.refresh .newsletter-form .ml-form-checkboxRow label.checkbox { border:1px solid CanvasText; }
}

/* --------------------------------------------------------------------------
   20. Bonus-download landing (page-bonus, green) — Handoff-3 #6h.
   Reuses the Newsletter hero grid + MailerLite form skin (.newsletter-form,
   .rf-nl__panel/inset/form-title/form-note). Adds the combined offer panel
   (cover + copy) and a closing reassurance line. Email-only form.
   -------------------------------------------------------------------------- */
body.refresh .rf-bonus__offer {
  display:grid; grid-template-columns:150px minmax(0,1fr); gap:26px; align-items:start;
  margin-top:22px; padding:24px; border-radius:16px;
  background:linear-gradient(160deg, color-mix(in oklch, var(--rf-green) 18%, transparent), rgba(13,13,21,0.94) 70%), #0d0d15;
  border:1px solid color-mix(in oklch, var(--rf-green) 42%, transparent); max-width:600px;
}
body.refresh .rf-bonus__cover { align-self:flex-start; width:150px; height:auto; border-radius:6px; }
body.refresh .rf-bonus__copy { min-width:0; }
body.refresh .rf-bonus__eyebrow { margin:0 0 12px; font:700 13px/1.3 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:var(--rf-green-text); }
body.refresh .rf-bonus__p { margin:0 0 14px; font-family:var(--rf-font-serif); font-size:17px; line-height:1.6; color:var(--rf-ink-body); }
body.refresh .rf-bonus__p:last-child { margin-bottom:0; }

/* Form panel offset so its top edge aligns with the h1, not the eyebrow pill */
body.refresh .rf-bonus__panel { margin-top:55px; }

/* Closing reassurance line, divided from the hero above */
body.refresh .rf-bonus__reassure {
  margin:38px 0 0; padding:26px 0 0; border-top:1px solid rgba(255,255,255,0.12);
  font-family:var(--rf-font-serif); font-size:16px; line-height:1.55; color:#b6b6cc;
}
body.refresh .rf-bonus__reassure a { color:var(--rf-green-text); text-decoration:underline; text-underline-offset:2px; }

@media (max-width:900px) {
  body.refresh .rf-bonus__panel { margin-top:0; }
}
@media (max-width:560px) {
  body.refresh .rf-bonus__offer { grid-template-columns:110px minmax(0,1fr); gap:16px; }
  body.refresh .rf-bonus__cover { width:110px; }
}
@media (forced-colors: active) {
  body.refresh .rf-bonus__offer { border:1px solid CanvasText; }
}

/* --------------------------------------------------------------------------
   21. Codename: Winger bonus notice (page-winger-extra, yellow) — simple
   centered "no longer available" page. No form.
   -------------------------------------------------------------------------- */
body.refresh .rf-wextra__inner { max-width:640px; padding:14px 0 44px; }
body.refresh .rf-wextra__banner { display:block; margin:6px 0 28px; width:100%; max-width:460px; height:auto; }
body.refresh .rf-wextra__h1 { margin:0 0 22px; font:700 40px/1.12 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
body.refresh .rf-wextra__accent { color:var(--rf-page-hue-text); }
body.refresh .rf-wextra__slab { max-width:560px; }
body.refresh .rf-wextra__slab p { margin:0; font-family:var(--rf-font-serif); font-size:18px; line-height:1.6; color:var(--rf-ink-body); }
body.refresh .rf-wextra__back { margin:26px 0 0; }
body.refresh .rf-wextra__back a { color:var(--rf-page-hue-text); font:600 15px/1.3 var(--rf-font-ui); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:600px) {
  body.refresh .rf-wextra__h1 { font-size:32px; }
}

/* --------------------------------------------------------------------------
   22. Legal / utility pages (page-legal) — Handoff-3 #6g.
   No page hue. Six-stripe header rule (inherited from .top-banner-wrap::after).
   Flat hero, sticky numbered section rail, list-row/named cards, contact grid,
   sibling-policy buttons. Accents are white at varying opacity.
   -------------------------------------------------------------------------- */
/* Flat, atmosphere-free background: no page hue means no glow */
body.refresh.page-legal .site-main > .container { max-width:none; padding:0; }
body.refresh.page-legal .rf-glow { display:none; }
body.refresh.page-legal .site-footer { border-top:2px solid rgba(255,255,255,0.3); }
body.refresh.page-legal .footer-current { color:#fff; font-weight:700; text-decoration:none; }

/* Flat hero — no glow */
body.refresh .rf-legal__hero { background:#0b0b10; border-bottom:1px solid rgba(255,255,255,0.1); padding:40px 0 30px; }
body.refresh .rf-legal__h1 { margin:14px 0 22px; font:700 44px/1.05 var(--rf-font-ui); letter-spacing:-0.02em; color:#fff; }
@media (max-width:600px) { body.refresh .rf-legal__h1 { font-size:34px; } }
body.refresh .rf-legal__short { max-width:760px; padding:18px 22px; border-radius:10px; background:#101019; border:1px solid rgba(255,255,255,0.2); border-left:4px solid rgba(255,255,255,0.5); }
body.refresh .rf-legal__short-eyebrow { margin:0 0 6px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:#a6a6bd; }
body.refresh .rf-legal__short-text { margin:0; font-family:var(--rf-font-serif); font-size:18px; line-height:1.5; color:#e2e2ee; }
body.refresh .rf-legal__meta { margin:16px 0 0; font-family:var(--rf-font-serif); font-size:15px; line-height:1.5; color:#b6b6cc; }
body.refresh .rf-legal__meta strong { color:#fff; }

/* Body: sticky rail + prose */
body.refresh .rf-legal__grid { display:grid; grid-template-columns:250px minmax(0,1fr); gap:48px; align-items:start; padding-top:40px; padding-bottom:56px; }
body.refresh .rf-legal__rail { position:sticky; top:24px; }
body.refresh .rf-legal__rail-title { margin:0 0 12px; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:#8a8aa0; }
body.refresh .rf-legal__rail-list { list-style:none; margin:0; padding:0; }
body.refresh .rf-legal__rail-list li { margin:0 0 9px; }
body.refresh .rf-legal__rail-list a { font:500 14px/1.35 var(--rf-font-ui); color:#c4c4d8; text-decoration:none; }
body.refresh .rf-legal__rail-list a:hover { color:#fff; text-decoration:underline; text-underline-offset:2px; }
body.refresh .rf-legal__rail-list a:focus-visible { outline:3px solid var(--rf-focus); outline-offset:3px; border-radius:4px; }

body.refresh .rf-legal__prose { max-width:720px; min-width:0; }
body.refresh .rf-legal__prose p { margin:0 0 16px; font-family:var(--rf-font-serif); font-size:17px; line-height:1.65; color:var(--rf-ink-body); }
body.refresh .rf-legal__prose h3 { margin:24px 0 10px; font:700 18px/1.3 var(--rf-font-ui); color:#fff; }
body.refresh .rf-legal__prose a { color:#fff; text-decoration:underline; text-underline-offset:2px; }
body.refresh .rf-legal__prose a:focus-visible { outline:3px solid var(--rf-focus); outline-offset:2px; border-radius:3px; }
body.refresh .rf-legal__prose code { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:0.92em; background:rgba(255,255,255,0.08); padding:1px 5px; border-radius:4px; }
body.refresh .rf-legal__prose .js-cookie-manage { background:none; border:0; padding:0; margin:0; font:inherit; color:#fff; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
body.refresh .rf-legal__prose .js-cookie-manage:focus-visible { outline:3px solid var(--rf-focus); outline-offset:2px; border-radius:3px; }

/* Numbered sections */
body.refresh .rf-legal__sec { padding-top:40px; }
body.refresh .rf-legal__h2 { display:flex; align-items:baseline; gap:14px; margin:0 0 16px; font:700 28px/1.15 var(--rf-font-ui); letter-spacing:-0.01em; color:#fff; }
body.refresh .rf-legal__num { flex:0 0 auto; font:700 15px/1 var(--rf-font-ui); color:#a6a6bd; }

/* List rows + named cards */
body.refresh .rf-legal__rows { list-style:none; margin:16px 0; padding:0; display:flex; flex-direction:column; gap:10px; }
body.refresh .rf-legal__rows li { padding:13px 18px; border-radius:10px; background:#101019; border-left:3px solid rgba(255,255,255,0.4); font-family:var(--rf-font-serif); font-size:17px; line-height:1.5; color:var(--rf-ink-body); }
body.refresh .rf-legal__cards { list-style:none; margin:16px 0; padding:0; display:flex; flex-direction:column; gap:12px; }
body.refresh .rf-legal__cards li { padding:16px 18px; border-radius:10px; background:#101019; border:1px solid rgba(255,255,255,0.16); font-family:var(--rf-font-serif); font-size:16px; line-height:1.55; color:var(--rf-ink-body); }
body.refresh .rf-legal__cards li strong { display:block; margin-bottom:5px; font:700 15px/1.3 var(--rf-font-ui); color:#fff; }

/* Contact block */
body.refresh .rf-legal__contact { margin:16px 0 0; }
body.refresh .rf-legal__crow { display:grid; grid-template-columns:190px minmax(0,1fr); gap:16px; padding:14px 0; border-top:1px solid rgba(255,255,255,0.14); }
body.refresh .rf-legal__crow dt { margin:0; font:700 13px/1.4 var(--rf-font-ui); letter-spacing:0.08em; text-transform:uppercase; color:#a6a6bd; }
body.refresh .rf-legal__crow dd { margin:0; font-family:var(--rf-font-serif); font-size:17px; line-height:1.5; color:#e2e2ee; }

/* Sibling policies */
body.refresh .rf-legal__siblings { display:flex; flex-wrap:wrap; gap:12px; margin:44px 0 0; padding-top:28px; border-top:1px solid rgba(255,255,255,0.12); }

@media (max-width:900px) {
  body.refresh .rf-legal__grid { grid-template-columns:1fr; gap:22px; }
  body.refresh .rf-legal__rail { position:static; padding:16px 18px; background:#101019; border:1px solid rgba(255,255,255,0.14); border-radius:12px; }
}
@media (max-width:560px) {
  body.refresh .rf-legal__crow { grid-template-columns:1fr; gap:3px; }
}
@media (forced-colors: active) {
  body.refresh .rf-legal__short, body.refresh .rf-legal__rows li, body.refresh .rf-legal__cards li,
  body.refresh .rf-legal__rail { border:1px solid CanvasText; }
}

/* --------------------------------------------------------------------------
   23. Link-in-bio page (/links/) — Handoff: standalone Translucent Core.
   No nav, no footer. Six-stripe rule, large signature lockup + dots, glow hero
   with opaque tagline box, hue-sorted outbound link rows. Mobile-first (390px).
   -------------------------------------------------------------------------- */
body.refresh.rf-linkpage { background:#0b0b10; }
body.refresh .rf-linkpage__rule { height:3px; background:var(--rf-rainbow); }

/* Header — signature lockup (whole thing links Home) + dot legend */
body.refresh .rf-linkpage__head { display:flex; justify-content:center; padding:30px 20px 26px; background:#0f0f16; border-bottom:1px solid rgba(255,255,255,0.08); }
body.refresh .rf-linkpage__brand { display:inline-flex; flex-direction:column; align-items:center; gap:14px; text-decoration:none; }
body.refresh .rf-linkpage__brand:focus-visible { outline:3px solid oklch(0.86 0.16 95); outline-offset:4px; border-radius:6px; }
body.refresh .rf-linkpage__sig { width:250px; height:auto; display:block; }
body.refresh .rf-linkpage__dots { display:flex; gap:7px; }
body.refresh .rf-linkpage__dots i { width:12px; height:12px; border-radius:50%; display:block; }
body.refresh .rf-linkpage__dots i:nth-child(1){ background:var(--rf-red-accent); }
body.refresh .rf-linkpage__dots i:nth-child(2){ background:var(--rf-orange); }
body.refresh .rf-linkpage__dots i:nth-child(3){ background:var(--rf-yellow); }
body.refresh .rf-linkpage__dots i:nth-child(4){ background:var(--rf-green); }
body.refresh .rf-linkpage__dots i:nth-child(5){ background:var(--rf-blue-accent); }
body.refresh .rf-linkpage__dots i:nth-child(6){ background:var(--rf-violet); }

/* Hero */
body.refresh .rf-linkpage__hero {
  padding:26px 20px 24px;
  background:
    radial-gradient(560px 300px at 10% 0%, oklch(0.62 0.20 25 / 0.34), transparent 70%),
    radial-gradient(520px 280px at 92% 30%, oklch(0.60 0.18 305 / 0.30), transparent 70%),
    #0b0b10;
}
body.refresh .rf-linkpage__h1 { margin:0 0 16px; font:700 36px/1.04 var(--rf-font-ui); letter-spacing:-0.03em; color:#fff; text-wrap:balance; }
body.refresh .rf-linkpage__tagline { padding:14px 16px; border-radius:12px; background:rgba(8,8,14,0.86); border:1px solid rgba(255,255,255,0.16); }
body.refresh .rf-linkpage__tagline p { margin:0; font-family:var(--rf-font-serif); font-size:17px; line-height:1.5; color:#e6e6f0; }
body.refresh .rf-linkpage__tagline2 { color:oklch(0.84 0.10 250); }

/* Link list */
body.refresh .rf-linkpage__links { display:flex; flex-direction:column; gap:26px; padding:4px 20px 28px; }
body.refresh .rf-linkpage__group { display:flex; flex-direction:column; gap:12px; }
body.refresh .rf-linkpage__grouphead { display:flex; align-items:center; gap:10px; margin:0; font:700 12px/1 var(--rf-font-ui); letter-spacing:0.14em; text-transform:uppercase; color:#fff; }
body.refresh .rf-linkpage__grouphead::before { content:""; flex:0 0 auto; width:4px; height:20px; border-radius:2px; background:var(--gbar,#fff); }
body.refresh .rf-linkpage__grouphead--red { --gbar:var(--rf-red-accent); }
body.refresh .rf-linkpage__grouphead--blue { --gbar:var(--rf-blue-accent); }
body.refresh .rf-linkpage__grouphead--violet { --gbar:var(--rf-violet); }
body.refresh .rf-linkpage__grouphead--green { --gbar:var(--rf-green); }
body.refresh .rf-linkpage__block { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
body.refresh .rf-linkpage__block > li { display:grid; }

/* Rows */
body.refresh .rf-row {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  min-height:52px; padding:15px 18px; border-radius:12px; text-decoration:none;
  background:linear-gradient(160deg, oklch(var(--rhue) / 0.24), rgba(14,14,22,0.92) 65%), #12121a;
  border:1px solid oklch(var(--rhue) / 0.5);
  transition:border-color 120ms ease-out, background 120ms ease-out;
}
body.refresh .rf-row--red { --rhue:0.66 0.21 25; --rtext:oklch(0.84 0.13 25); }
body.refresh .rf-row--blue { --rhue:0.66 0.16 250; --rtext:oklch(0.84 0.10 250); }
body.refresh .rf-row--violet { --rhue:0.60 0.20 305; --rtext:oklch(0.80 0.13 305); }
body.refresh .rf-row--green { --rhue:0.70 0.16 150; --rtext:oklch(0.86 0.14 150); }
body.refresh .rf-row--neutral { background:rgba(10,10,16,0.9); border:1px solid rgba(255,255,255,0.22); --rtext:#cfcfe2; }
body.refresh .rf-row__body { min-width:0; display:flex; flex-direction:column; gap:3px; }
body.refresh .rf-row__title { font:700 16px/1.3 var(--rf-font-ui); color:#fff; }
body.refresh .rf-row__sub { font-family:var(--rf-font-serif); font-size:14px; line-height:1.4; color:#cfcfe2; }
body.refresh .rf-row__arrow { flex:0 0 auto; font:400 18px/1 var(--rf-font-ui); color:var(--rtext); }
body.refresh .rf-row__cover { flex:0 0 auto; width:60px; height:auto; border-radius:5px; align-self:flex-start; }
body.refresh .rf-row--book { padding:12px; border-radius:14px; gap:14px; }
body.refresh .rf-row--book .rf-row__title { font-size:17px; line-height:1.2; }
body.refresh .rf-row:hover { border-color:oklch(var(--rhue) / 0.65); background:linear-gradient(160deg, oklch(var(--rhue) / 0.30), rgba(14,14,22,0.92) 65%), #12121a; }
body.refresh .rf-row--neutral:hover { background:rgba(255,255,255,0.06); border-color:rgba(255,255,255,0.3); }
body.refresh .rf-row:hover .rf-row__title { text-decoration:underline; text-underline-offset:3px; }
body.refresh .rf-row:focus-visible { outline:3px solid oklch(0.86 0.16 95); outline-offset:2px; }

/* Desktop (>=900): 760px column, big signature, cover grid, 2-up secondary rows */
@media (min-width:600px) {
  /* Featured book cards — standard full-cover card (matches .rf-startcard), equal depth */
  body.refresh .rf-linkpage__block--cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
  body.refresh .rf-row--book { flex-direction:column; align-items:stretch; padding:14px; gap:0; }
  body.refresh .rf-row--book .rf-row__cover { width:100%; height:auto; align-self:auto; border-radius:8px; box-shadow:0 16px 34px -16px rgba(0,0,0,0.9); margin-bottom:12px; }
  body.refresh .rf-row--book .rf-row__body { margin-bottom:4px; }
  body.refresh .rf-row--book .rf-row__title { font-size:18px; line-height:1.15; }
  body.refresh .rf-row--book .rf-row__arrow { align-self:flex-end; margin-top:auto; padding-top:6px; }
}
@media (min-width:900px) {
  body.refresh .rf-linkpage__head { padding:40px 40px 34px; }
  body.refresh .rf-linkpage__sig { width:420px; }
  body.refresh .rf-linkpage__dots { gap:9px; }
  body.refresh .rf-linkpage__dots i { width:14px; height:14px; }
  body.refresh .rf-linkpage__hero {
    padding:52px 40px 30px;
    background:
      radial-gradient(900px 420px at 12% 0%, oklch(0.62 0.20 25 / 0.34), transparent 70%),
      radial-gradient(820px 400px at 88% 40%, oklch(0.58 0.20 305 / 0.30), transparent 70%),
      #0b0b10;
  }
  body.refresh .rf-linkpage__hero > * { max-width:760px; margin-left:auto; margin-right:auto; }
  body.refresh .rf-linkpage__h1 { font-size:56px; line-height:1.02; text-align:center; }
  body.refresh .rf-linkpage__tagline { text-align:center; }
  body.refresh .rf-linkpage__tagline p { font-size:19px; }
  body.refresh .rf-linkpage__links { max-width:760px; margin:0 auto; padding:10px 40px 56px; gap:34px; }
  body.refresh .rf-linkpage__group { gap:14px; }
  body.refresh .rf-linkpage__grouphead { font-size:13px; }
  body.refresh .rf-linkpage__grouphead::before { width:5px; height:24px; border-radius:3px; }
  body.refresh .rf-row { min-height:56px; padding:16px 20px; }
  body.refresh .rf-linkpage__block--pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
}
@media (min-width:600px) and (max-width:899px) {
  body.refresh .rf-linkpage__links, body.refresh .rf-linkpage__hero > * { max-width:560px; margin-left:auto; margin-right:auto; }
}
@media (forced-colors: active) {
  body.refresh .rf-row, body.refresh .rf-linkpage__tagline { border:1px solid CanvasText; }
}

/* --------------------------------------------------------------------------
   24. Anthologies (page-anthologies) + 404 (page-404)
   Both ride the page-cat scaffolding. Anthologies is a red catalog page whose
   cards carry inline links, so they extend .book-card but are not single-link
   cards. The 404 borrows the homepage's multi-hue glow (it has no page hue).
   -------------------------------------------------------------------------- */
/* Anthology cards: reuse the .book-card shell (in .rf-catgrid--red), but the
   title/description are their own elements since each holds inline links. */
body.refresh .rf-anth-card { gap:10px; }
body.refresh .rf-anth-card__title {
  margin:2px 0 0; font:700 17px/1.25 var(--rf-font-ui); color:#fff;
}
body.refresh .rf-anth-card__title a {
  color:#fff; text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px;
}
body.refresh .rf-anth-card__title a:hover { text-decoration-thickness:2px; }
body.refresh .rf-anth-card__desc {
  margin:0; font-family:var(--rf-font-serif); font-size:14px; line-height:1.5; color:var(--rf-ink-secondary);
}
body.refresh .rf-anth-card__desc em { font-style:italic; }
body.refresh .rf-anth-card__desc a {
  color:var(--rf-red-text); text-decoration:underline; text-underline-offset:2px;
}
body.refresh .rf-anth-card__desc a:hover { text-decoration-thickness:2px; }

/* 404 — homepage-style standing wash, flush-left simple hero. */
body.refresh.page-404 .rf-glow {
  background:
    radial-gradient(900px 460px at 8% 0%,    color-mix(in oklch, var(--rf-violet) 30%, transparent), transparent 66%),
    radial-gradient(820px 460px at 64% 6%,   color-mix(in oklch, var(--rf-blue) 26%, transparent), transparent 66%),
    radial-gradient(760px 460px at 100% 42%, color-mix(in oklch, var(--rf-red) 22%, transparent), transparent 66%),
    radial-gradient(680px 440px at 26% 100%, color-mix(in oklch, var(--rf-green) 18%, transparent), transparent 66%);
}
body.refresh .rf-404__inner { max-width:640px; }
body.refresh .rf-404__code {
  margin:0 0 6px; font:800 15px/1 var(--rf-font-ui); letter-spacing:0.22em; color:var(--rf-ink-muted);
}
