/* Chapter (Page Lemon app template): The Lamplight Readers, a monthly book club. Art direction 2026-10-25 (family E,
   "paper clubs": dust jackets). The member pages load the shared app kit (kit.css: never edit the copy); this file owns
   every look. The month's book is a dust jacket with its spine (the spine is a blurred wash of the same cover with the
   title running up it in brass foil) and the meeting on the jacket flap; the reply is a library card in a manila
   pocket whose date stamp thumps on; the vote and the shelf are spines on a shelf; notes are page-coloured sheets with
   marginalia. Oxblood field, page paper, bookcloth blue, brass foil only on dark jackets, a lamp glow.
   Fonts: Cormorant Garamond (display, titles, reading text) and Josefin Sans (labels, dates, UI), Google Fonts. */
:root {
  --c-page: #F6EFE1;
  --c-paper: #FBF7EE;
  --c-ink: #1D1A16;
  --c-muted: #5E5247;
  --c-ox: #6E1E2B;
  --c-ox-deep: #521520;
  --c-blue: #23395B;
  --c-brass: #D9AE52;
  --c-green: #1F4D3A;
  --c-manila: #D9B97E;
  --c-manila-deep: #C4A062;
  --c-card: #FDFAF2;
  --c-rule: #A9BCD6;
  --c-stamp: #23395B;
  --c-glow: rgba(240, 176, 82, .55);
  --c-accent: #6E1E2B;
  --c-link: #23395B;
  --c-shelf-wood: #4A2C1C;
  --c-tab-ink: #F6EFE1;
  --c-tab-bar: #1F4D3A;
  --c-page-light: #F6EFE1;
  --c-section-rule: #23395B;
  --c-card-ink: #1D1A16;
  --c-card-muted: #5E5247;
  --c-card-body: #3B3128;
  --c-card-rule: #B2343F;
  --c-card-link: #23395B;
  --c-star-idle: #5E5247;
  --c-serif: "Cormorant Garamond", "Cormorant", Garamond, Georgia, "Times New Roman", serif;
  --c-sans: "Josefin Sans", "Gill Sans", "Trebuchet MS", Helvetica, Arial, sans-serif;

  --k-brand: #6E1E2B;
  --k-brand-ink: #F6EFE1;
  --k-brand-soft: #EEDCD3;
  --k-hero: #6E1E2B;
  --k-hero-ink: #F6EFE1;
  --k-gold: #D9AE52;
  --k-bg: #F6EFE1;
  --k-surface: #FBF7EE;
  --k-surface-2: #EFE5D2;
  --k-line: #E0D3BA;
  --k-line-strong: #BFAE8E;
  --k-text: #1D1A16;
  --k-muted: #5E5247;
  --k-faint: #6E6152;
  --k-ok: #1F4D3A;
  --k-ok-soft: #DCE8DF;
  --k-font: var(--c-sans);
  --k-font-display: var(--c-serif);
  --k-t-sub: 1rem;
  --k-t-foot: .875rem;
  --k-t-cap: .8125rem;
  --k-r-s: 2px; --k-r-m: 3px; --k-r-l: 4px; --k-r-xl: 6px;
  --k-shadow-1: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 1px 2px rgba(60, 36, 16, .12), 0 8px 20px rgba(60, 36, 16, .08);
  --k-shadow-2: 0 2px 6px rgba(60, 36, 16, .14), 0 18px 40px rgba(60, 36, 16, .16);
  --k-max: 1280px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --c-page: #15100C;
    --c-paper: #211913;
    --c-ink: #F2E7D3;
    --c-muted: #BCAD96;
    --c-star-idle: #BCAD96;
    --c-card: #F3EBDB;
    --c-manila: #D9B97E;
    --c-manila-deep: #C4A062;
    --c-rule: #9DB0CB;
    --c-link: #B9CBE6;
    --c-shelf-wood: #3A2216;
    --c-tab-ink: #F6EFE1;
    --c-section-rule: #9DB0CB;
    --c-glow: rgba(240, 168, 72, .26);
    --c-accent: #E9A3A0;
    --k-brand: #8A2A38;
    --k-brand-ink: #F6EFE1;
    --k-brand-soft: rgba(233, 163, 160, .14);
    --k-hero: #6E1E2B;
    --k-bg: #15100C;
    --k-surface: #211913;
    --k-surface-2: #2B2119;
    --k-line: #3A2E24;
    --k-line-strong: #5A4836;
    --k-text: #F2E7D3;
    --k-muted: #BCAD96;
    --k-faint: #A6977F;
    --k-ok: #9CC7AA;
    --k-ok-soft: rgba(156, 199, 170, .14);
    --k-shadow-1: 0 0 0 1px #3A2E24, 0 10px 24px rgba(0, 0, 0, .4);
    --k-shadow-2: 0 0 0 1px #3A2E24, 0 20px 44px rgba(0, 0, 0, .5);
  }
}

/* ======================= base ======================= */
body.k-app { background: var(--c-page); color: var(--k-text); font-family: var(--c-sans); }
@media (prefers-color-scheme: dark) { body.k-app { background: radial-gradient(1100px 620px at 78% -8%, rgba(240, 168, 72, .12), transparent 70%), var(--c-page); background-attachment: fixed; } }
.k-app h1, .k-app h2, .k-app h3 { font-family: var(--c-serif); font-weight: 600; letter-spacing: 0; }
.k-app a { color: var(--c-link); }
@media (prefers-color-scheme: dark) { .k-app a { color: var(--c-link); } }
.k-kicker, .c-label { font-family: var(--c-sans); font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); font-style: normal; }
.c-label { display: block; }
.k-sr, .c-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.c-quiet-field { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[data-pl-list] > :not([data-pl-empty]) ~ [data-pl-empty] { display: none; }
.c-meta { color: var(--k-muted); font-size: var(--k-t-foot); }

/* ======================= shell: top bar and the headband nav ======================= */
.k-app .k-top { background: color-mix(in srgb, var(--c-page) 92%, transparent); border-bottom: 1px solid var(--k-line); }
.k-app .k-brand { font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: 1.25rem; color: var(--k-text); text-decoration: none; }
.k-app .k-brand img { border-radius: 4px; }
.k-app .k-top a.k-signin { border-radius: 2px; background: var(--c-ox); color: var(--k-brand-ink); font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .1em; font-size: .8125rem; }
.k-app .k-avatar { background: var(--c-ox); color: var(--k-brand-ink); font-family: var(--c-serif); font-style: italic; font-size: 1.125rem; }
/* the app bar: a cream bar with the five pages as short coloured spines; the current page stands 8px proud */
.k-app .k-tabs { background: var(--c-tab-bar); border-top: 0; border-bottom: 0; box-shadow: 0 -6px 18px rgba(40, 10, 14, .12); backdrop-filter: none; -webkit-backdrop-filter: none; }
.k-app .k-tabs a:not(.k-tabs-brand) { color: var(--c-tab-ink); font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .08em; font-size: .6875rem; font-weight: 600; border-radius: 0; position: relative; min-height: 52px; transition: transform .2s ease; }
.k-app .k-tabs a:not(.k-tabs-brand) .k-i { color: currentColor; }
.k-app .k-tabs a:not(.k-tabs-brand)::before { content: ""; position: absolute; top: 0; left: 50%; width: 28px; height: 6px; margin-left: -14px; background: var(--tab-c); }
.k-app .k-tabs a:not(.k-tabs-brand):nth-of-type(2) { --tab-c: var(--c-ox); }
.k-app .k-tabs a:not(.k-tabs-brand):nth-of-type(3) { --tab-c: var(--c-green); }
.k-app .k-tabs a:not(.k-tabs-brand):nth-of-type(4) { --tab-c: var(--c-blue); }
.k-app .k-tabs a:not(.k-tabs-brand):nth-of-type(5) { --tab-c: #2A231E; }
.k-app .k-tabs a:not(.k-tabs-brand):nth-of-type(6) { --tab-c: var(--c-brass); }
.k-app .k-tabs a:not(.k-tabs-brand)[aria-current="page"] { transform: translateY(-8px); background: var(--c-page-light); --c-tab-ink: var(--c-card-ink); box-shadow: 0 6px 12px rgba(40, 16, 8, .14); }
.k-app .k-tabs a:not(.k-tabs-brand):focus-visible { outline: 2px solid var(--c-brass); outline-offset: -4px; }
@media (min-width: 1024px) {
  .k-app[data-k-nav="top"] .k-top { padding-top: 18px; padding-bottom: 18px; min-height: 76px; }
  .k-app[data-k-nav="top"] .k-top .k-brand { font-size: 1.5rem; }
  .k-app[data-k-nav="top"] .k-tabs { background: var(--c-tab-bar); border-bottom: 0; box-shadow: none; }
  .k-app[data-k-nav="top"] .k-tabs a:not(.k-tabs-brand) { min-height: 54px; padding: 0 22px; color: var(--c-tab-ink); font-size: .8125rem; letter-spacing: .14em; flex-direction: row; gap: 10px; }
  .k-app[data-k-nav="top"] .k-tabs a:not(.k-tabs-brand):hover { background: rgba(0, 0, 0, .04); }
  .k-app[data-k-nav="top"] .k-tabs a:not(.k-tabs-brand)[aria-current="page"] { color: var(--c-tab-ink); }
  .k-app[data-k-nav="top"] .k-main { padding-top: 28px; }
}
.k-app .k-foot { border-top: 1px solid var(--k-line-strong); color: var(--k-muted); font-family: var(--c-sans); }
.k-app .k-foot a { color: var(--k-muted); }
.k-foot a, .k-section-head a, .k-back { display: inline-flex; align-items: center; min-height: 44px; }

/* ======================= kit pieces in the club's hand ======================= */
.k-app .k-card, .k-app .k-sheet, .k-app .k-list { background: var(--c-paper); border: 1px solid var(--k-line); border-radius: 3px; box-shadow: var(--k-shadow-1); }
.k-app .k-btn { border-radius: 2px; font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .1em; font-weight: 600; font-size: .875rem; background: var(--c-ox); color: var(--k-brand-ink); }
.k-app .k-btn-lg { font-size: .9375rem; min-height: 54px; }
.k-app .k-btn-2 { background: transparent; color: var(--k-text); box-shadow: inset 0 0 0 1.5px var(--k-line-strong); }
.k-app .k-btn-line { background: transparent; color: var(--c-ox); box-shadow: inset 0 0 0 1.5px currentColor; }
@media (prefers-color-scheme: dark) { .k-app .k-btn:not(.k-btn-2):not(.k-btn-line) { background: var(--k-brand); } .k-app .k-btn-line { color: var(--c-accent); } }
.k-app .k-btn:focus-visible, .k-app a:focus-visible, .k-app button:focus-visible { outline: 3px solid var(--c-brass); outline-offset: 2px; }
.k-app .k-badge { border-radius: 2px; font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .08em; font-size: .6875rem; font-weight: 700; }
.k-app .k-badge-brand { background: var(--k-brand-soft); color: var(--c-accent); }
.k-app .k-tile { border-radius: 2px; background: var(--k-surface-2); color: var(--c-ox); }
@media (prefers-color-scheme: dark) { .k-app .k-tile { color: var(--c-accent); } }
.k-app .k-tile-gold { background: #F1E1B8; color: #5A3E08; }
@media (prefers-color-scheme: dark) { .k-app .k-tile-gold { background: rgba(217, 174, 82, .16); color: var(--c-brass); } }
.k-app .k-section-head { border-bottom: 1px solid var(--c-section-rule); padding-bottom: 8px; margin-bottom: var(--k-4); align-items: baseline; }
.k-app .k-section-head h2, .k-app .k-card > h2, .k-app .k-sheet > h2 { font-size: 1.625rem; font-weight: 600; line-height: 1.1; }
.k-app .k-section-head a { font-size: .8125rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; color: var(--c-accent); text-decoration: none; }
.k-app .k-help { color: var(--k-muted); font-size: var(--k-t-foot); }
.k-app .k-row-title { font-family: var(--c-serif); font-size: 1.1875rem; font-weight: 600; }
.k-app .k-row-sub { color: var(--k-muted); }
.k-row-sub, .k-row-title { white-space: normal; overflow-wrap: anywhere; -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; }
.k-app .k-form label { font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; font-weight: 600; color: var(--k-muted); }
.k-app .k-form input, .k-app .k-form select, .k-app .k-form textarea { border-radius: 2px; background: var(--c-paper); border: 1px solid var(--k-line-strong); font-family: var(--c-serif); font-size: 1.1875rem; color: var(--k-text); }
.k-app .k-bar { background: var(--k-line); border-radius: 0; }
.k-app .k-bar i { background: var(--c-ox); border-radius: 0; }
@media (prefers-color-scheme: dark) { .k-app .k-bar i { background: var(--c-accent); } }
.k-app .k-steps li { font-family: var(--c-sans); font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.k-app .k-empty h3 { font-size: 1.5rem; }
.k-app .k-empty-art { background: var(--k-surface-2); color: var(--c-ox); border-radius: 2px; }
@media (prefers-color-scheme: dark) { .k-app .k-empty-art { color: var(--c-accent); } }
.k-app .k-pagehead { align-items: flex-end; }
.k-app .k-pagehead h1 { font-family: var(--c-serif); font-weight: 600; font-style: italic; font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4.5rem); line-height: .98; letter-spacing: -.01em; }
.k-app .k-back { font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .1em; font-size: .8125rem; color: var(--c-accent); text-decoration: none; }
@media (max-width: 719px) { .k-pagehead-actions.c-desk { display: none; } }
.k-app .k-sheet-grab { display: none; }
.c-rows-wrap .k-row-title, .c-rows-wrap .k-row-sub { white-space: normal; overflow: visible; }

/* ======================= the jacket: front, spine and flap ======================= */
.c-jacket { display: grid; grid-template-columns: 17% minmax(0, 1fr); width: 100%; filter: drop-shadow(0 18px 26px rgba(40, 16, 8, .32)) drop-shadow(0 2px 3px rgba(40, 16, 8, .25)); }
.c-front { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 0 3px 3px 0; background: var(--c-ox); }
.c-spine { position: relative; overflow: hidden; border-radius: 3px 0 0 3px; background: var(--c-ox); display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 12% 0 10%; }
.c-spine img { position: absolute; left: -4px; top: -6%; height: 112%; width: 900%; max-width: none; object-fit: cover; object-position: 0 50%; filter: blur(3px) brightness(.88); border-radius: 0; box-shadow: none; }
.c-spine::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 0, 0, .34), rgba(255, 255, 255, .1) 38%, rgba(0, 0, 0, .1) 70%, rgba(0, 0, 0, .42)); z-index: 1; }
.c-spine::after { content: ""; position: absolute; left: 0; right: 0; top: 7%; height: 4px; border-block: 1px solid var(--c-brass); opacity: .9; }
.c-spine-t { position: relative; writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--c-serif); font-style: italic; font-weight: 600; color: var(--c-brass); font-size: clamp(.95rem, 2.2vw, 1.6rem); line-height: 1; text-shadow: 0 1px 1px rgba(0, 0, 0, .45); white-space: normal; overflow-wrap: anywhere; max-height: 70%; background: var(--c-ox); padding: 3px 2px; z-index: 2; }
.c-spine-a { position: relative; writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--c-sans); font-size: .5625rem; letter-spacing: .2em; text-transform: uppercase; color: var(--c-page-light); text-shadow: 0 1px 1px rgba(0, 0, 0, .5); white-space: normal; overflow-wrap: anywhere; max-height: 24%; background: var(--c-ox); padding: 2px 1px; z-index: 2; }
.c-flap { position: relative; background: var(--c-paper); border: 1px solid var(--k-line); box-shadow: var(--k-shadow-1); padding: 28px 28px 24px; border-radius: 0 3px 3px 0; }
.c-flap::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 7px; background: linear-gradient(90deg, rgba(60, 36, 16, .16), transparent); }
.c-count { display: inline-flex; align-items: center; height: 28px; padding: 0 10px; border: 1.5px solid currentColor; border-radius: 2px; color: var(--c-accent); font-family: var(--c-sans); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; transform: rotate(-2deg); }
.c-count:empty { display: none; }
.c-when { list-style: none; margin: 18px 0 0; padding: 0; border-top: 1px solid var(--k-line-strong); }
.c-when > span, .c-when > li { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px dotted var(--k-line-strong); font-size: 1rem; line-height: 1.4; }
.c-when .k-i { flex: none; width: 18px; height: 18px; margin-top: 1px; color: var(--c-accent); }
.c-when span span { display: inline; }
.c-by { font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .14em; font-size: .8125rem; color: var(--k-muted); margin-top: 10px; }
.c-booktitle { font-family: var(--c-serif); font-style: italic; font-weight: 600; line-height: .95; letter-spacing: -.01em; color: var(--k-text); }
.c-blurb { font-family: var(--c-serif); font-size: 1.25rem; line-height: 1.5; color: var(--k-text); }
.c-blurb::first-letter { float: left; font-size: 3.6em; line-height: .8; padding: 6px 10px 0 0; color: var(--c-accent); font-weight: 600; }

/* ======================= Home: the jacket of the month beside the pocket ======================= */
.c-desk { position: relative; display: grid; gap: 28px; margin-top: 8px; }
.c-desk::before { content: ""; position: absolute; z-index: 0; width: 760px; height: 560px; left: -120px; top: -80px; background: radial-gradient(closest-side, var(--c-glow), transparent); pointer-events: none; }
.c-desk > * { position: relative; z-index: 1; min-width: 0; }
.c-month { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 16px; align-items: start; }
.c-month-title { align-self: center; min-width: 0; }
.c-month .c-booktitle { font-size: clamp(2.25rem, 1.2rem + 3.4vw, 4.75rem); margin-top: 8px; overflow-wrap: break-word; }
.c-month-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.c-month .c-flap { grid-column: 1 / -1; padding: 0; border: 0; box-shadow: none; background: none; }
.c-month .c-flap::before { display: none; }
.c-month .c-when { margin-top: 12px; }
.c-month-empty { padding: 28px; }
.c-month-empty h1 { font-style: italic; font-size: 2.5rem; }
@media (max-width: 719px) { .c-month .c-when > span { padding: 8px 0; font-size: .9375rem; } .c-month .c-by { font-size: .75rem; } }
@media (min-width: 720px) {
  .c-month { grid-template-columns: minmax(200px, 300px) minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 0; }
  .c-month > .c-jacket { grid-row: 1 / span 2; align-self: start; position: relative; z-index: 2; }
  .c-month::before { content: ""; grid-column: 2; grid-row: 1 / span 2; margin-top: 22px; background: var(--c-paper); border: 1px solid var(--k-line); box-shadow: var(--k-shadow-1); border-radius: 0 3px 3px 0; }
  .c-month-title { grid-column: 2; grid-row: 1; position: relative; z-index: 1; margin-top: 22px; padding: 30px 32px 0 40px; align-self: start; }
  .c-month .c-flap { grid-column: 2; grid-row: 2; position: relative; z-index: 1; align-self: start; padding: 18px 32px 26px 40px; }
}
@media (min-width: 1024px) {
  .c-desk { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 40px; align-items: start; }
  .c-month { grid-template-columns: 300px minmax(0, 1fr); }
}
@media (min-width: 1280px) { .c-month { grid-template-columns: 340px minmax(0, 1fr); } }

/* the library card in its manila pocket */
.c-pocket { position: relative; padding: 18px 16px 0; background: linear-gradient(var(--c-manila), var(--c-manila-deep)); border-radius: 3px; box-shadow: var(--k-shadow-1); }
.c-pocket::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: rgba(0, 0, 0, .1); border-radius: 3px 3px 0 0; }
.c-card { position: relative; z-index: 1; background: var(--c-card); color: var(--c-card-ink); padding: 18px 18px 96px; border-radius: 2px; box-shadow: 0 2px 6px rgba(40, 20, 6, .18); animation: c-slide .6s cubic-bezier(.2, .8, .2, 1) both; }
.c-card a:not(.k-btn) { color: var(--c-card-link); }
.c-card .k-help, .c-card .c-meta, .c-card .k-row-sub { color: var(--c-card-muted); }
.c-card-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; align-items: end; font-family: var(--c-sans); font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--c-ox); min-height: 30px; padding-bottom: 8px; border-bottom: 2px solid var(--c-card-rule); }
.c-card-head span:last-child { font-family: var(--c-serif); font-style: italic; text-transform: none; letter-spacing: 0; font-size: 1.125rem; color: var(--c-card-ink); }
.c-card h2 { font-family: var(--c-serif); font-style: italic; font-size: 1.875rem; font-weight: 600; line-height: 1.05; margin-top: 18px; color: var(--c-card-ink); }
.c-card .k-btn { background: var(--c-ox); color: var(--c-page-light); }
.c-pocket-front { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; height: 84px; display: grid; place-items: center; align-content: center; gap: 2px; background: linear-gradient(var(--c-manila), var(--c-manila-deep)); border-radius: 46% 46% 3px 3px / 26px 26px 3px 3px; box-shadow: 0 -3px 8px rgba(40, 20, 6, .16); font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .22em; font-size: .625rem; font-weight: 700; color: #3B2A12; text-align: center; padding: 18px 16px 10px; }
.c-pocket-front b { font-family: var(--c-serif); font-style: italic; text-transform: none; letter-spacing: 0; font-size: 1.0625rem; font-weight: 600; color: #2A1D0B; }
.c-reply-list { list-style: none; margin: 0; padding: 0; }
.c-reply { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 18px; border-bottom: 1px solid var(--c-rule); align-items: center; min-height: 72px; padding: 4px 0; font-size: .9375rem; }
.c-reply-m { font-family: var(--c-serif); font-size: 1.1875rem; font-weight: 600; line-height: 1.2; }
.c-bring { display: block; font-size: .875rem; color: var(--c-card-muted); margin-top: 2px; }
.c-bring::before { content: "Bringing: "; }
.c-bring:empty { display: none; }
.c-reply-empty { display: block; font-family: var(--c-serif); font-style: italic; font-size: 1.1875rem; line-height: 1.5; color: var(--c-card-body); padding-top: 8px; }
.c-reply .c-sent { display: block; font-size: .8125rem; color: var(--c-card-muted); }
/* the date stamp */
.c-stamp { display: inline-grid; justify-items: center; gap: 2px; padding: 6px 10px 5px; border: 2.5px solid var(--c-stamp); border-radius: 4px; color: var(--c-stamp); font-family: var(--c-sans); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; line-height: 1; transform: rotate(-7deg); box-shadow: inset 0 0 0 1.5px var(--c-card), inset 0 0 0 3px var(--c-stamp); mix-blend-mode: multiply; animation: c-thump .42s .45s cubic-bezier(.3, 1.6, .5, 1) both; }
.c-stamp b { font-size: 1.125rem; letter-spacing: .18em; }
.c-stamp time, .c-stamp small { font-size: .625rem; letter-spacing: .12em; }
.c-lines { list-style: none; margin: 10px 0 0; padding: 0; border-top: 1px solid var(--c-rule); }
.c-lines li { display: grid; grid-template-columns: 6.5em minmax(0, 1fr) auto; gap: 10px; align-items: start; min-height: 38px; padding-block: 8px; border-bottom: 1px solid var(--c-rule); font-size: .875rem; color: var(--c-card-body); }
.c-lines li time { font-family: var(--c-sans); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-stamp); font-weight: 700; transform: rotate(-2deg); }
.c-lines li span { font-family: var(--c-serif); font-style: italic; font-size: 1rem; }
.c-lines li b { font-family: var(--c-sans); font-size: .625rem; letter-spacing: .14em; color: var(--c-ox); border: 1.5px solid var(--c-ox); padding: 3px 5px 1px; border-radius: 2px; transform: rotate(4deg); }
.c-lines li[data-pl-empty] { display: block; font-family: var(--c-serif); font-style: italic; }
.c-card-btn { margin-top: 18px; }
.c-card-btn .k-btn { width: 100%; }
@keyframes c-thump { 0% { transform: rotate(-7deg) scale(1.9); opacity: 0; } 60% { transform: rotate(-7deg) scale(.94); opacity: 1; } 80% { transform: rotate(-7deg) scale(1.03); } 100% { transform: rotate(-7deg) scale(1); opacity: 1; } }
@keyframes c-slide { from { transform: translateY(46px); } to { transform: none; } }

/* Home: reading progress as a bookmark ribbon in the fore-edge of the book */
.c-ribbon-sec { padding: 26px 28px 24px; }
.c-progress { display: grid; gap: 10px; }
.c-progress-row { display: grid; gap: 2px; }
.c-progress-row p { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 14px; align-items: baseline; }
.c-progress-big { font-family: var(--c-serif); font-size: 1.375rem; }
.c-progress-big b { font-size: 3.25rem; font-weight: 600; font-style: italic; color: var(--c-accent); line-height: 1; }
.c-pace { font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .1em; font-size: .8125rem; font-weight: 700; color: var(--k-text); }
.c-progress-line { font-family: var(--c-serif); font-style: italic; font-size: 1.0625rem; color: var(--k-muted); }
.c-progress-line:empty { display: none; }
.c-progress-line.c-logged { font-family: var(--c-sans); font-style: normal; font-size: .8125rem; }
.k-app .c-progress .k-bar { position: relative; overflow: visible; height: 30px; margin: 14px 0 34px; background: repeating-linear-gradient(90deg, #EFE3CB 0 2px, #E2D2B1 2px 3px); border: 1px solid var(--k-line-strong); border-radius: 1px 4px 4px 1px; }
.k-app .c-progress .k-bar i { position: relative; height: 100%; background: repeating-linear-gradient(90deg, #DCC7A0 0 2px, #C9B184 2px 3px); }
.k-app .c-progress .k-bar i::after { content: ""; position: absolute; right: -9px; top: -10px; width: 18px; height: 72px; background: var(--c-ox); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 84%, 0 100%); box-shadow: 0 2px 4px rgba(0, 0, 0, .3); }
@media (prefers-color-scheme: dark) { .k-app .c-progress .k-bar { background: repeating-linear-gradient(90deg, #3B2F24 0 2px, #2E241B 2px 3px); } .k-app .c-progress .k-bar i { background: repeating-linear-gradient(90deg, #6B5638 0 2px, #57452C 2px 3px); } .k-app .c-progress .k-bar i::after { background: #B23A48; } }
.c-week-grid { display: grid; gap: 16px; }
@media (min-width: 720px) { .c-week-grid { grid-template-columns: 1fr 1fr; } }
.c-week-item { display: flex; gap: 14px; align-items: flex-start; }
.c-week .k-btn-row { margin-top: var(--k-4); }
.c-question { font-family: var(--c-serif); font-style: italic; font-size: 1.1875rem !important; line-height: 1.4; color: var(--k-text) !important; }
.c-stack-s > * + * { margin-top: var(--k-3); }
.c-vote-done { display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; }
.c-vote-done > * + * { margin-top: 0; }
.c-vote-done .k-row-main > span:not([data-pl-empty]), .c-vote-done .k-list-plain > span:not([data-pl-empty]) { display: block; }
.c-vote-done .c-why { display: none; }
.c-myvote { display: block; margin-top: 4px; }
.c-tile-cover { width: 48px; height: 72px; flex: none; object-fit: cover; border-radius: 1px 3px 3px 1px; box-shadow: 0 3px 8px rgba(40, 16, 8, .3); }
.c-home-grid { margin-top: 36px; }

/* ======================= notes: page-coloured sheets with marginalia ======================= */
.c-notes { display: grid; gap: 22px; }
.c-sheet-note { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 28px 26px 22px; background: var(--c-paper); border: 1px solid var(--k-line); box-shadow: var(--k-shadow-1), 5px 5px 0 -1px var(--k-surface-2), 5px 5px 0 0 var(--k-line); border-radius: 1px; }
.c-sheet-note .c-margin { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--k-line); }
.c-note-title { font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: 1.5rem; line-height: 1.1; display: block; }
.c-note-text { font-family: var(--c-serif); font-size: 1.1875rem; line-height: 1.6; color: var(--k-text); }
.c-quote { position: relative; font-family: var(--c-serif); font-style: italic; font-weight: 500; font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); line-height: 1.18; color: var(--k-text); padding-left: .6em; }
.c-quote::before { content: "\201C"; position: absolute; left: -.1em; top: -.08em; font-size: 1.8em; line-height: 1; color: var(--c-accent); }
.c-quote:empty { display: none; }
.c-stars { display: inline-flex; color: #7A5A12; font-size: 1.0625rem; letter-spacing: 2px; white-space: nowrap; }
@media (prefers-color-scheme: dark) { .c-stars { color: var(--c-brass); } }
.c-stars [data-pl-field] { display: none; }
.c-stars::after { content: attr(data-c-stars); }
.c-host { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; padding: 4px 0 0 14px; border-left: 2px solid var(--c-accent); }
.c-host:has(.c-host-text:empty) { display: none; }
.c-host b { display: block; font-family: var(--c-sans); font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; color: var(--c-accent); }
.c-host-text { font-family: var(--c-serif); font-style: italic; font-size: 1.1875rem; line-height: 1.45; color: var(--k-text); }
.c-host .k-avatar { width: 36px; height: 36px; font-size: .9375rem; }
.c-sheet-note .k-steps { margin-top: 4px; }
.c-note[data-k-state="new"] .k-badge-state { background: #F1E1B8; color: #5A3E08; }
@media (prefers-color-scheme: dark) { .c-note[data-k-state="new"] .k-badge-state { background: rgba(217, 174, 82, .16); color: var(--c-brass); } }
@media (min-width: 1024px) {
  .c-notes-page .c-sheet-note { grid-template-columns: 190px minmax(0, 1fr); column-gap: 32px; padding: 34px 36px 28px; }
  .c-notes-page .c-sheet-note > * { grid-column: 2; }
  .c-notes-page .c-sheet-note .c-margin { grid-column: 1; grid-row: 1 / span 5; flex-direction: column; align-items: flex-start; border-bottom: 0; border-right: 1px solid #D9A9A6; padding: 0 20px 0 0; align-self: stretch; }
  .k-board > .k-span-5:has(#write) { position: sticky; top: 80px; }
}
.c-note-hint { color: var(--k-muted); background: var(--k-surface-2); padding: 10px 12px; border-radius: 2px; }

/* ======================= shelves: spines standing on a shelf ======================= */
.c-shelf { list-style: none; margin: 0; padding: 0 12px; display: flex; align-items: flex-end; gap: 6px; min-height: 300px; position: relative; border-bottom: 14px solid var(--c-shelf-wood); box-shadow: 0 12px 14px -8px rgba(30, 14, 6, .45); background: radial-gradient(60% 90% at 50% 100%, var(--c-glow), transparent 70%); }
@media (prefers-color-scheme: dark) { .c-shelf { border-bottom-color: #3A2216; } }
.c-shelf-spine { position: relative; flex: 1 1 0; min-width: 0; max-width: 200px; display: flex; flex-direction: column; justify-content: space-between; align-items: center; overflow: hidden; border-radius: 3px 3px 0 0; padding: 18px 0 16px; background: var(--c-ox); color: var(--c-page-light); }
.c-shelf-spine > img { position: absolute; left: -4px; top: -6%; height: 112%; width: 900%; max-width: none; object-fit: cover; object-position: 0 50%; filter: blur(3px) brightness(.88); border-radius: 0; box-shadow: none; }
.c-shelf-spine::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 0, 0, .34), rgba(255, 255, 255, .1) 40%, rgba(0, 0, 0, .08) 70%, rgba(0, 0, 0, .4)); pointer-events: none; z-index: 1; }
.c-shelf-spine::after { content: ""; position: absolute; left: 0; right: 0; top: 10px; height: 4px; border-block: 1px solid var(--c-brass); }
.c-shelf-spine > * { position: relative; }
.c-shelf-spine > span { z-index: 2; }
.c-shelf-spine .c-st { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: 1.375rem; line-height: 1; color: var(--c-brass); text-shadow: 0 1px 1px rgba(0, 0, 0, .5); white-space: normal; overflow-wrap: anywhere; max-height: 76%; background: var(--c-ox); padding: 2px 3px; }
.c-shelf-spine .c-sa { writing-mode: vertical-rl; transform: rotate(180deg); font-size: .5625rem; letter-spacing: .2em; text-transform: uppercase; white-space: normal; overflow-wrap: anywhere; max-height: 22%; text-shadow: 0 1px 1px rgba(0, 0, 0, .5); background: var(--c-ox); padding: 2px 1px; }
.c-shelf > li:nth-child(4n+1) .c-shelf-spine { height: 288px; } .c-shelf > li:nth-child(4n+2) .c-shelf-spine { height: 262px; } .c-shelf > li:nth-child(4n+3) .c-shelf-spine { height: 296px; } .c-shelf > li:nth-child(4n) .c-shelf-spine { height: 252px; }
.c-plain-spine:nth-child(4n+1) { background: var(--c-blue); } .c-plain-spine:nth-child(4n+2) { background: var(--c-green); } .c-plain-spine:nth-child(4n+3) { background: var(--c-ox); } .c-plain-spine:nth-child(4n) { background: #2A231E; }

/* the club's shelf (meetings with a cover): spines side by side on one plank, a tag under each */
.c-season { --c-sh: 320px; list-style: none; margin: 0; padding: 0 18px; display: flex; gap: 8px; align-items: flex-start; background: linear-gradient(#5A3624, #3E2416) 0 var(--c-sh) / 100% 14px no-repeat; }
@media (prefers-color-scheme: dark) { .c-season { background-image: linear-gradient(#3A2216, #2A180F); } }
.c-season > li { flex: 0 1 150px; min-width: 0; display: grid; grid-template-rows: var(--c-sh) auto; }
.c-season > li[data-pl-empty] { display: block; flex: 1; padding: 40px 0; font-family: var(--c-serif); font-style: italic; font-size: 1.25rem; }
.c-season .c-shelf-spine { align-self: end; max-width: none; height: 290px; }
.c-season > li:nth-child(2) .c-shelf-spine { height: 262px; } .c-season > li:nth-child(3) .c-shelf-spine { height: 306px; } .c-season > li:nth-child(4) .c-shelf-spine { height: 276px; }
.c-tag { display: grid; gap: 4px; font-size: .8125rem; color: var(--k-muted); align-content: start; padding-top: 26px; }
.c-tag b { font-family: var(--c-serif); font-size: 1.1875rem; font-style: italic; font-weight: 600; line-height: 1.1; color: var(--k-text); }
.c-tag .k-badge { justify-self: start; }
@media (max-width: 719px) {
  .c-season { --c-sh: 240px; gap: 5px; padding: 0 8px; }
  .c-season > li { flex: 1 1 0; }
  .c-season .c-shelf-spine { height: 220px; } .c-season > li:nth-child(2) .c-shelf-spine { height: 198px; } .c-season > li:nth-child(3) .c-shelf-spine { height: 232px; } .c-season > li:nth-child(4) .c-shelf-spine { height: 208px; }
  .c-shelf-spine .c-st { font-size: 1.0625rem; }
  .c-tag b { font-size: 1rem; } .c-tag { font-size: .75rem; padding-top: 22px; }
}
/* shelf at phone width: two columns, one plank under each row; club-rating pills brass with ink text */
@media (max-width: 719px) {
  .c-season { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 12px; padding: 0 12px; background: none; }
  .c-season > li { flex: none; background: linear-gradient(#5A3624, #3E2416) 0 var(--c-sh) / 100% 14px no-repeat; }
  .c-season > li[data-pl-empty] { grid-column: 1 / -1; background: none; }
  .c-season .c-tag .k-badge-ok { background: var(--c-brass); color: #2A1D0B; }
}
@media (max-width: 719px) and (prefers-color-scheme: dark) { .c-season > li { background-image: linear-gradient(#3A2216, #2A180F); } }
@media (min-width: 1024px) { .c-pub-season .c-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 56px; align-items: start; } .c-pub-season .c-sec-head { margin-bottom: 0; } }
.c-earlier-shelf { display: flex; gap: 6px; align-items: flex-end; padding: 0 12px; border-bottom: 12px solid var(--c-shelf-wood); min-height: 200px; }
@media (prefers-color-scheme: dark) { .c-earlier-shelf { border-bottom-color: #3A2216; } }
.c-earlier-shelf .c-shelf-spine { height: 186px; flex: 1 1 0; max-width: 180px; }
.c-earlier-shelf .c-shelf-spine:nth-child(2) { height: 170px; } .c-earlier-shelf .c-shelf-spine:nth-child(3) { height: 192px; } .c-earlier-shelf .c-shelf-spine:nth-child(4) { height: 162px; }
.c-earlier-shelf .c-st { font-size: 1.125rem; }

/* ======================= vote: the shortlist as spines on a shelf ======================= */
.c-close { display: flex; align-items: center; gap: 12px; padding: 14px 18px; background: var(--c-paper); border: 1px solid var(--k-line); border-left: 6px solid var(--c-ox); font-size: 1rem; }
.c-close .k-i { color: var(--c-accent); flex: none; }
.c-close b { font-family: var(--c-serif); font-style: italic; font-size: 1.1875rem; }
.k-app .c-shortlist { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 10px; align-items: start; padding: 32px 14px 0; position: relative; background: linear-gradient(var(--c-shelf-wood), var(--c-shelf-wood)) 0 372px / 100% 14px no-repeat, radial-gradient(40% 130px at 50% 0, var(--c-glow), transparent 100%); }
.k-app .c-shortlist .k-item { display: grid; grid-template-rows: 340px auto auto; grid-template-columns: minmax(0, 1fr); background: none; border: 0; box-shadow: none; border-radius: 0; padding: 0; text-align: left; overflow: visible; color: var(--k-text); }
.k-app .c-shortlist .k-item:nth-child(2) { grid-template-rows: 340px auto auto; }
.c-shortlist .k-item-body { display: contents; }
.c-shortlist .k-item-art { grid-row: 1; grid-column: 1; position: relative; align-self: end; justify-self: center; width: min(100%, 128px); height: 300px; overflow: hidden; border-radius: 3px 3px 0 0; background: var(--c-ox); padding: 0; aspect-ratio: auto; transition: transform .25s ease, box-shadow .25s ease; }
.c-shortlist .k-item:nth-child(2) .k-item-art { height: 272px; } .c-shortlist .k-item:nth-child(3) .k-item-art { height: 318px; } .c-shortlist .k-item:nth-child(4) .k-item-art { height: 286px; }
.c-shortlist .k-item-art img { position: absolute; left: -4px; top: -6%; height: 112%; width: 900%; max-width: none; object-fit: cover; object-position: 0 50%; filter: blur(3px) brightness(.88); border-radius: 0; box-shadow: none; }
.c-shortlist .k-item-art::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(0, 0, 0, .34), rgba(255, 255, 255, .1) 40%, rgba(0, 0, 0, .08) 70%, rgba(0, 0, 0, .42)); }
.c-shortlist .k-item-art::after { content: ""; position: absolute; z-index: 1; left: 0; right: 0; top: 12px; height: 4px; border-block: 1px solid var(--c-brass); }
.c-shortlist .k-item-name { grid-row: 1; grid-column: 1; align-self: end; justify-self: center; z-index: 2; writing-mode: vertical-rl; transform: rotate(180deg); margin-bottom: 26px; max-height: 240px; overflow: visible; white-space: normal; overflow-wrap: anywhere; background: var(--c-ox); padding: 4px 3px; font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: 1.5rem; line-height: 1; color: var(--c-brass); text-shadow: 0 1px 1px rgba(0, 0, 0, .5); transition: transform .25s ease; }
.c-shortlist .k-item:nth-child(2) .k-item-name { max-height: 212px; } .c-shortlist .k-item:nth-child(4) .k-item-name { max-height: 226px; }
.c-shortlist .k-item-desc { font-size: 0 !important; } .c-shortlist .k-item-desc > span { font-size: .9375rem; }
.c-shortlist .k-item-desc { grid-row: 2; border-top: 0; margin: 0 -5px; padding: 14px 6px 4px; font-size: .9375rem; line-height: 1.4; color: var(--k-muted); display: block; }
@media (prefers-color-scheme: dark) { .c-shortlist .k-item-desc { border-top-color: #3A2216; } }
.c-shortlist .k-item:first-child .k-item-desc { margin-left: -14px; padding-left: 14px; } .c-shortlist .k-item:last-child .k-item-desc { margin-right: -14px; padding-right: 14px; }
.c-shortlist .k-item-desc [data-pl-field="author"] { display: block; font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 700; color: var(--k-text); margin-bottom: 4px; }
.c-shortlist .k-item-foot { grid-row: 3; display: flex; justify-content: space-between; align-items: center; padding: 6px 1px 0; font-size: .8125rem; color: var(--k-muted); }
.c-shortlist .k-item-add { width: 34px; height: 34px; border-radius: 2px; background: transparent; color: var(--c-accent); box-shadow: inset 0 0 0 1.5px currentColor; display: grid; place-items: center; }
.c-shortlist .c-tick, .c-shortlist .k-item[aria-pressed="true"] .c-plus { display: none; }
.c-shortlist .k-item[aria-pressed="true"] .c-tick { display: block; }
.c-shortlist .k-item:hover .k-item-art, .c-shortlist .k-item:focus-visible .k-item-art { transform: translateY(-8px); }
.c-shortlist .k-item:hover .k-item-name, .c-shortlist .k-item:focus-visible .k-item-name { transform: translateY(-8px) rotate(180deg); }
.c-shortlist .k-item[aria-pressed="true"] .k-item-art { transform: translateY(-16px); box-shadow: 0 0 0 3px var(--c-brass), 0 16px 26px rgba(40, 16, 8, .35); }
.c-shortlist .k-item[aria-pressed="true"] .k-item-name { transform: translateY(-16px) rotate(180deg); }
.c-shortlist .k-item[aria-pressed="true"] .k-item-add { background: var(--c-ox); color: var(--c-page-light); box-shadow: none; }
.c-shortlist .k-item[aria-pressed="true"] .k-item-name::after { content: "Your pick"; font-family: var(--c-sans); font-style: normal; font-weight: 700; font-size: .625rem; letter-spacing: .12em; text-transform: uppercase; background: var(--c-brass); color: #2A1D0B; padding: 3px 4px; margin-left: 10px; text-shadow: none; }
.c-shortlist > [data-pl-empty] { grid-column: 1 / -1; padding: 40px 0; font-family: var(--c-serif); font-style: italic; font-size: 1.25rem; }
@media (max-width: 719px) {
  .k-app .c-shortlist { gap: 0 6px; padding: 30px 8px 0; }
  .k-app .c-shortlist .k-item, .k-app .c-shortlist .k-item:nth-child(2) { grid-template-rows: 262px auto auto; }
  .c-shortlist .k-item-art { height: 228px; } .c-shortlist .k-item:nth-child(2) .k-item-art { height: 206px; } .c-shortlist .k-item:nth-child(3) .k-item-art { height: 240px; } .c-shortlist .k-item:nth-child(4) .k-item-art { height: 216px; }
  .c-shortlist .k-item-name { font-size: 1.1875rem; max-height: 180px !important; margin-bottom: 18px; }
  .c-shortlist .k-item-desc { font-size: .75rem; padding-top: 10px; }
  .c-shortlist .k-item-desc [data-pl-field="blurb"] { display: none; }
  .c-shortlist .k-item-desc [data-pl-field="author"] { font-size: .625rem; letter-spacing: .06em; }
  .c-shortlist .k-item[aria-pressed="true"] .k-item-desc [data-pl-field="author"]::after { content: none; }
  .c-shortlist .k-item-foot { font-size: .6875rem; }
  .c-shortlist .k-item:first-child .k-item-desc { margin-left: -8px; padding-left: 8px; } .c-shortlist .k-item:last-child .k-item-desc { margin-right: -8px; padding-right: 8px; }
}
.c-shortlist .k-item-desc > span:not([data-pl-field]) { display: none; }
@media (max-width: 719px) { .c-shortlist .k-item-desc > span { font-size: .6875rem; } }
.c-shortlist a.k-item { text-decoration: none; }
.k-app .k-sum { display: flex; gap: 14px; align-items: center; background: var(--k-surface-2); border-radius: 2px; padding: 12px; }
.k-sum img { width: 48px; height: 72px; object-fit: cover; border-radius: 1px 3px 3px 1px; box-shadow: 0 3px 8px rgba(40, 16, 8, .3); }
.k-sum b { font-family: var(--c-serif); font-style: italic; font-size: 1.375rem; font-weight: 600; display: block; line-height: 1.1; }
.k-sum [data-k-sum-desc] { display: block; font-size: .875rem; color: var(--k-muted); margin-top: 4px; }
.c-result { margin-top: 36px; }
.c-result-top { display: flex; gap: 18px; align-items: center; }
.c-result-top h2 { font-style: italic; font-size: 2rem; line-height: 1.05; margin-top: 4px; }
.c-tally { list-style: none; margin: var(--k-4) 0 0; padding: 0; display: grid; gap: 0; }
.c-tally li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 2px; border-bottom: 1px dotted var(--k-line-strong); font-family: var(--c-serif); font-size: 1.125rem; }
.c-tally b { font-family: var(--c-sans); font-variant-numeric: tabular-nums; }
.c-closed { padding: 14px 16px; background: var(--k-surface-2); font-weight: 600; margin-top: var(--k-4); }
@media (max-width: 1023px) {
  .c-vote-board > .k-span-8 { display: contents; }
  .c-vote-board .c-shortlist { order: 0; }
  .c-vote-board > .k-span-4 { order: 1; }
  .c-vote-board .c-result { order: 2; }
}

/* ======================= meeting page ======================= */
.c-meet-top { position: relative; display: grid; gap: 24px; }
.c-meet-top::before { content: ""; position: absolute; width: 720px; height: 620px; left: -160px; top: -120px; background: radial-gradient(closest-side, var(--c-glow), transparent); pointer-events: none; }
.c-meet-top > * { position: relative; min-width: 0; }
.c-meet-jacket { max-width: 380px; width: 72%; justify-self: center; }
.c-meet-flap { padding: 30px 30px 24px 36px; }
.c-meet-flap .c-flap-cols { display: grid; gap: 22px; }
.c-flap-facts .k-row-title { font-size: 1.125rem; }
@media (min-width: 900px) {
  .c-meet-top { grid-template-columns: minmax(260px, 380px) minmax(0, 1fr); gap: 0; align-items: start; }
  .c-meet-jacket { width: 100%; z-index: 2; }
  .c-meet-flap { margin-top: 26px; padding-left: 44px; }
}
@media (min-width: 1200px) { .c-meet-flap .c-flap-cols { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 36px; } }
.c-questions { counter-reset: q; list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.c-questions li { counter-increment: q; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; font-family: var(--c-serif); font-size: 1.25rem; line-height: 1.45; }
.c-questions li::before { content: counter(q, upper-roman) "."; font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: 1.5rem; color: var(--c-accent); line-height: 1.2; }
@media (min-width: 1024px) { .c-qcard .c-questions { grid-template-columns: 1fr 1fr; gap: 22px 44px; } }
.c-qcard { padding: 28px 30px; }
.c-qcard > h2 { margin-bottom: var(--k-5); font-style: italic; font-size: 2rem; }
.c-qcard > .k-btn { margin-top: var(--k-5); }
.c-meet-forms { margin-top: var(--k-6); align-items: start; }
.c-pocket-form .c-card { padding-bottom: 104px; background: var(--c-card); }
.c-pocket-form .k-form { margin-top: 14px; }
.c-pocket-form .k-form label { color: var(--c-card-muted); }
.c-pocket-form .k-form input, .c-pocket-form .k-form select { background: transparent; border: 0; border-bottom: 1.5px solid var(--c-rule); border-radius: 0; color: var(--c-card-ink); padding-left: 2px; }
.c-pocket-form .k-help { color: var(--c-card-muted); }
.c-pocket-form .c-lines { margin-top: 18px; }
.c-pocket-form .c-lines li { grid-template-columns: minmax(0, 1fr) auto; height: auto; min-height: 56px; padding: 8px 0; border-bottom: 1px solid var(--c-rule); align-items: center; }
.c-pocket-form .c-lines .c-stamp { animation: none; font-size: .75rem; }
.c-pocket-form .c-lines li:first-child .c-stamp { animation: c-thump .42s .5s cubic-bezier(.3, 1.6, .5, 1) both; }
.c-pocket-form .c-lines .c-stamp b { font-size: .9375rem; }
.c-pocket-form .c-lines .c-lm { font-family: var(--c-serif); font-size: 1.125rem; font-weight: 600; font-style: normal; color: var(--c-card-ink); line-height: 1.25; }
.c-pocket-form .c-lines .k-empty { color: var(--c-card-body); }
.c-pocket-form .c-lines .k-empty h3 { color: var(--c-card-ink); }
.c-pocket-form h3 { font-family: var(--c-sans); font-size: .75rem; text-transform: uppercase; letter-spacing: .16em; color: var(--c-ox); margin-top: 26px; }
.c-log { margin-top: var(--k-4); }

/* ======================= card: the borrower's card with the scan ======================= */
.c-borrower { position: relative; background: var(--c-card); color: var(--c-card-ink); border-radius: 3px; box-shadow: var(--k-shadow-2); overflow: hidden; }
.c-borrower-band { background: var(--c-ox); color: var(--c-page-light); padding: 16px 22px 14px; display: flex; justify-content: space-between; gap: 12px; align-items: baseline; box-shadow: inset 0 -3px 0 var(--c-brass); }
.c-borrower-band span:first-child { font-family: var(--c-serif); font-style: italic; font-size: 1.375rem; font-weight: 600; }
.c-borrower-band span:last-child { font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .16em; font-size: .75rem; font-weight: 700; color: var(--c-brass); }
.c-borrower-body { padding: 22px 22px 24px; display: grid; gap: 18px; }
.c-borrower .k-big { font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: clamp(2.75rem, 2rem + 3vw, 4.25rem); line-height: .95; color: var(--c-card-ink); }
.c-borrower .c-card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .1em; font-size: .8125rem; color: var(--c-card-muted); }
.c-borrower .c-card-meta b { color: var(--c-ox); font-size: 1rem; }
.k-app .c-borrower .k-dots { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 0; border-top: 1px solid var(--c-rule); border-left: 1px solid var(--c-rule); }
.k-app .c-borrower .k-dots li { aspect-ratio: auto; height: 46px; border-radius: 0; background: transparent; border-right: 1px solid var(--c-rule); border-bottom: 1px solid var(--c-rule); box-shadow: none; position: relative; display: grid; place-items: center; }
.k-app .c-borrower .k-dots li::before { display: none; }
.k-app .c-borrower .k-dots li.on::after { content: "IN"; font-family: var(--c-sans); font-weight: 700; font-size: .6875rem; letter-spacing: .14em; color: var(--c-stamp); border: 2px solid var(--c-stamp); border-radius: 3px; padding: 4px 6px 2px; transform: rotate(-8deg); }
.k-app .c-borrower .k-dots li:nth-child(even).on::after { transform: rotate(5deg); }
.k-app .c-borrower .k-dots li.k-free::after { content: "£12 book"; font-family: var(--c-serif); font-style: italic; font-size: .9375rem; color: var(--c-ox); border: 0; transform: none; padding: 0; letter-spacing: 0; font-weight: 600; }
.k-app .c-borrower .k-dots li.k-free.on::after { content: "Ready"; }
.c-borrower .k-scan { background: transparent; }
.c-borrower [data-pl-sign-in="scan"] { color: var(--c-card-ink); }
@media (min-width: 720px) { .k-app .c-borrower .k-dots { grid-template-columns: repeat(10, minmax(0, 1fr)) !important; } }
.c-reward { display: flex; align-items: center; gap: 16px; }
.c-reward h2 { font-size: 1.5rem; font-style: italic; }
.c-reward .k-tile { width: 52px; height: 52px; flex: none; }
.c-reward > * + * { margin-top: 0; }
.c-history .k-row-title { font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .1em; font-size: .875rem; color: var(--c-stamp); font-weight: 700; }
@media (prefers-color-scheme: dark) { .c-history .k-row-title { color: #B9CBE6; } }
.c-history .k-row-end b { font-family: var(--c-serif); font-style: italic; font-size: 1.25rem; color: var(--c-accent); }

/* ======================= account: sheets with an oxblood headband ======================= */
.c-band-sheet, .k-app .k-account > *:not(:empty) { position: relative; }
.c-band-sheet { background: var(--c-paper); border: 1px solid var(--k-line); box-shadow: var(--k-shadow-1); padding: 26px 24px 22px; border-radius: 1px; }
.c-band-sheet::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 8px; background: repeating-linear-gradient(90deg, var(--c-ox) 0 6px, var(--c-brass) 6px 8px); }
.c-member { display: flex; align-items: center; gap: 18px; }
.c-member .k-avatar-l { width: 64px; height: 64px; font-size: 1.75rem; }
.c-member .c-name { font-family: var(--c-serif); font-style: italic; font-size: 2.25rem; font-weight: 600; line-height: 1; display: block; }
.k-app .k-account h3 { font-family: var(--c-serif); font-style: italic; text-transform: none; letter-spacing: 0; font-size: 1.375rem; font-weight: 600; color: var(--k-text); margin-left: 0; padding-bottom: 6px; border-bottom: 1px solid var(--k-line-strong); }
.k-app .k-account { gap: 0; background: var(--c-paper); border: 1px solid var(--k-line); border-radius: 1px; box-shadow: var(--k-shadow-1); overflow: hidden; }
.k-app .k-account > * { border-top: 1px solid var(--k-line); }
.k-app .k-account > :first-child { border-top: 0; }
.k-app .k-account > p:first-child, .k-app .k-account ul, .k-app .k-account > form { border-radius: 0; box-shadow: none; border-left: 0; border-right: 0; border-bottom: 0; background: transparent; }
.k-app .k-account > form > button { width: 100%; justify-content: flex-start; text-align: left; border-radius: 0; box-shadow: none; border: 0; background: transparent; color: var(--c-accent); min-height: 52px; padding: 0 18px; }
.c-rules .k-row-title { font-size: 1.1875rem; }

/* ======================= signed out ======================= */
.c-welcome { position: relative; overflow: hidden; margin: 0 -16px; padding: 36px 16px 44px; background: var(--c-ox); color: var(--c-page-light); display: grid; gap: 28px; }
.c-welcome::before { content: ""; position: absolute; width: 900px; height: 700px; right: -300px; top: -260px; background: none; pointer-events: none; }
.c-welcome > * { position: relative; min-width: 0; }
.c-welcome .k-kicker { color: var(--c-brass); }
.c-welcome h1 { font-family: var(--c-serif); font-style: italic; font-weight: 500; font-size: clamp(3rem, 2rem + 4.4vw, 6.25rem); line-height: .92; margin-top: 12px; color: #FFF8EA; }
.c-welcome .k-lead { color: rgba(246, 239, 225, .88); font-family: var(--c-serif); font-size: 1.375rem; line-height: 1.45; margin-top: 18px; max-width: 34ch; }
.c-welcome .k-btn { background: var(--c-page-light); color: var(--c-ox); }
.c-welcome .k-btn-line { background: transparent; color: var(--c-page-light); box-shadow: inset 0 0 0 1.5px rgba(246, 239, 225, .6); }
.c-welcome-actions { display: grid; gap: 12px; margin-top: 26px; }
@media (min-width: 720px) { .c-welcome-actions { display: flex; flex-wrap: wrap; } }
.c-welcome .c-fine { color: rgba(246, 239, 225, .78); font-size: .875rem; margin-top: 14px; }
.c-welcome .c-perks { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 0; border-top: 1px solid rgba(246, 239, 225, .25); }
.c-welcome .c-perks li { padding: 11px 0; border-bottom: 1px solid rgba(246, 239, 225, .25); font-size: 1rem; display: grid; grid-template-columns: 2.4em minmax(0, 1fr); }
.c-welcome .c-perks li::before { content: counter(list-item, upper-roman) "."; font-family: var(--c-serif); font-style: italic; color: var(--c-brass); font-size: 1.125rem; }
.c-welcome-art { display: flex; gap: 6px; align-items: flex-end; justify-content: center; border-bottom: 12px solid #3E1018; padding: 0 10px; }
.c-welcome-art .c-shelf-spine { flex: 0 0 auto; width: 54px; height: 230px; }
.c-welcome-art .c-shelf-spine:nth-child(2) { height: 200px; } .c-welcome-art .c-shelf-spine:nth-child(3) { height: 250px; width: 64px; } .c-welcome-art .c-shelf-spine:nth-child(4) { height: 214px; }
.c-welcome-art .c-front-lean { width: 150px; height: auto; aspect-ratio: 2 / 3; transform: rotate(5deg); transform-origin: bottom left; margin-left: 8px; box-shadow: 0 18px 30px rgba(0, 0, 0, .4); border-radius: 0 3px 3px 0; }
.c-welcome-art .c-shelf-spine.c-ox { background: #4A1520; } .c-welcome-art .c-shelf-spine.c-bl { background: var(--c-blue); } .c-welcome-art .c-shelf-spine.c-gr { background: var(--c-green); } .c-welcome-art .c-shelf-spine.c-in { background: #2A231E; }
@media (min-width: 1024px) {
  .c-welcome { margin: 0 calc(-1 * var(--k-gutter, 40px)); padding: 72px var(--k-gutter, 40px) 80px; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; gap: 56px; }
  .c-welcome-art .c-shelf-spine { width: 70px; height: 320px; } .c-welcome-art .c-shelf-spine:nth-child(2) { height: 286px; } .c-welcome-art .c-shelf-spine:nth-child(3) { height: 344px; width: 84px; } .c-welcome-art .c-shelf-spine:nth-child(4) { height: 300px; }
  .c-welcome-art .c-front-lean { width: 220px; }
}
@media (max-width: 719px) { .c-welcome-art { order: 2; } .c-welcome-art .c-front-lean { width: 120px; } .c-welcome-art .c-shelf-spine { width: 40px; height: 170px; } .c-welcome-art .c-shelf-spine:nth-child(2) { height: 150px; } .c-welcome-art .c-shelf-spine:nth-child(3) { height: 184px; width: 46px; } .c-welcome-art .c-shelf-spine:nth-child(4) { height: 160px; } .c-welcome-art .c-st { font-size: 1rem; } }
/* inner pages signed out: a members-only library card */
.k-app [data-pl-if="signed-out"] > .k-card.k-empty { max-width: 560px; margin: 24px auto; background: var(--c-card); color: var(--c-card-ink); border-radius: 2px; box-shadow: var(--k-shadow-2); padding: 70px 28px 30px; position: relative; text-align: left; }
.k-app [data-pl-if="signed-out"] > .k-card.k-empty::before { content: "Members only"; position: absolute; left: 0; right: 0; top: 0; height: 48px; display: flex; align-items: center; padding: 0 28px; background: var(--c-ox); color: var(--c-brass); font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .18em; font-size: .75rem; font-weight: 700; box-shadow: inset 0 -3px 0 var(--c-brass); }
.k-app [data-pl-if="signed-out"] > .k-card.k-empty h1 { font-style: italic; font-size: 2.5rem; line-height: 1; color: var(--c-card-ink); }
.k-app [data-pl-if="signed-out"] > .k-card.k-empty p { color: var(--c-card-body); }
.k-app [data-pl-if="signed-out"] > .k-card.k-empty .k-help { color: var(--c-card-muted); }
.k-app [data-pl-if="signed-out"] > .k-card.k-empty a:not(.k-btn) { color: var(--c-card-link); }
.k-app [data-pl-if="signed-out"] > .k-card.k-empty .k-btn { background: var(--c-ox); color: var(--c-page-light); }
.k-app [data-pl-if="signed-out"] > .k-card.k-empty .k-empty-art { margin: 0 0 10px; background: #EFE5D2; color: var(--c-ox); }
@media (min-width: 1024px) { body.k-app:not(:has(.k-tabs)) { display: block; } body.k-app:not(:has(.k-tabs)) .k-top .k-brand { display: flex; } }

/* ======================= public page ======================= */
body.k-app.c-pub { display: block; background: var(--c-page); }
.c-wrap { width: 100%; max-width: 1320px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 720px) { .c-wrap { padding: 0 32px; } }
.c-bar { position: absolute; top: 0; left: 0; right: 0; z-index: 20; color: var(--c-page-light); }
.c-bar .c-wrap { display: flex; align-items: center; gap: 12px; min-height: 68px; }
.c-bar .k-brand { color: var(--c-page-light); }
.c-bar nav { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.c-bar nav a.c-link { display: none; padding: 10px 12px; color: rgba(246, 239, 225, .85); text-decoration: none; font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .14em; font-size: .75rem; font-weight: 600; }
.c-bar nav a.c-link:hover { color: #FFF8EA; }
.c-bar .k-btn { background: var(--c-page-light); color: var(--c-ox); min-height: 44px; }
@media (min-width: 860px) { .c-bar nav a.c-link { display: inline-flex; } }
.c-poster { position: relative; overflow: visible; overflow-x: clip; background: var(--c-ox); color: var(--c-page-light); padding: 92px 0 56px; }
.c-poster::before { content: ""; position: absolute; width: 1100px; height: 900px; right: -320px; top: -260px; background: none; pointer-events: none; }
.c-poster::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: repeating-linear-gradient(90deg, var(--c-brass) 0 6px, var(--c-ox-deep) 6px 9px); }
.c-poster .c-wrap { position: relative; display: grid; gap: 30px; }
.c-poster .k-kicker { color: var(--c-brass); }
.c-poster h1 { font-family: var(--c-serif); font-style: italic; font-weight: 500; font-size: clamp(3.25rem, 1.2rem + 8.6vw, 9.25rem); line-height: .86; letter-spacing: -.02em; margin-top: 14px; color: #FFF8EA; }
.c-poster h1 em { font-style: normal; color: var(--c-brass); }
.c-poster .k-lead { font-family: var(--c-serif); font-size: 1.375rem; line-height: 1.45; color: rgba(246, 239, 225, .9); margin-top: 22px; max-width: 40ch; }
.c-poster .k-btn-row { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 12px; }
.c-poster .k-btn { background: var(--c-page-light); color: var(--c-ox); }
.c-poster .k-btn-line { background: transparent; color: var(--c-page-light); box-shadow: inset 0 0 0 1.5px rgba(246, 239, 225, .6); }
.c-poster-month { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 18px; align-items: end; }
.c-poster-month .c-jacket { filter: drop-shadow(0 22px 30px rgba(20, 4, 6, .5)); }
.c-poster-flap .k-kicker { color: var(--c-brass); }
.c-poster-flap h2 { font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: 2rem; line-height: 1; margin-top: 8px; color: #FFF8EA; }
.c-poster-flap p { color: rgba(246, 239, 225, .88); margin-top: 8px; font-size: .9375rem; }
.c-poster-flap .c-count { color: var(--c-brass); margin-top: 12px; }
.c-poster-month [data-pl-empty] { grid-column: 1 / -1; font-family: var(--c-serif); font-style: italic; font-size: 1.375rem; }
@media (min-width: 960px) {
  .c-poster { padding: 120px 0 56px; }
  .c-poster .c-wrap { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 56px; align-items: center; }
  .c-poster-month { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 22px; }
  .c-poster-month .c-jacket { width: min(100%, 418px); margin-bottom: -80px; position: relative; z-index: 2; }
  .c-poster-flap { text-align: center; order: -1; }
  .c-poster-flap h2 { font-size: 2.5rem; }
}
.c-sec { padding: 72px 0 8px; }
.c-sec-head { display: grid; gap: 10px; max-width: 760px; margin-bottom: 34px; }
.c-sec h2 { font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.75rem); line-height: .95; letter-spacing: -.01em; }
.c-sec-head p { font-family: var(--c-serif); font-size: 1.3125rem; line-height: 1.45; color: var(--k-muted); }
.c-showcase { display: grid; gap: 28px; align-items: start; }
@media (min-width: 1024px) { .c-showcase { grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(0, 4fr); gap: 32px; } }
.c-showcase figure { margin: 0; display: grid; gap: 14px; min-width: 0; }
.c-showcase figcaption { font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .12em; font-size: .8125rem; font-weight: 700; color: var(--c-accent); }
.c-showcase figcaption span { display: block; font-family: var(--c-serif); text-transform: none; letter-spacing: 0; font-size: 1.125rem; font-weight: 500; color: var(--k-muted); margin-top: 4px; }
.c-showcase .c-pocket .c-card { padding-bottom: 96px; }
.c-chapters { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--k-line-strong); }
.c-chapters li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 4px 16px; padding: 22px 0; border-bottom: 1px solid var(--k-line-strong); }
.c-chapters li::before { content: counter(list-item, upper-roman) "."; grid-row: 1 / span 2; font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: 2.25rem; line-height: 1; color: var(--c-accent); }
.c-chapters h3 { font-family: var(--c-serif); font-weight: 600; font-size: 1.75rem; line-height: 1.1; }
.c-chapters p { color: var(--k-muted); font-size: 1rem; line-height: 1.55; }
@media (min-width: 1024px) { .c-chapters { grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 0; gap: 0 28px; } .c-chapters li { grid-template-columns: minmax(0, 1fr); border-top: 3px solid var(--c-ox); border-bottom: 0; } .c-chapters li::before { grid-row: auto; font-size: 3rem; } }
.c-visit { display: grid; gap: 20px; }
@media (min-width: 860px) { .c-visit { grid-template-columns: 1.2fr 1fr; } }
.c-visit > * { min-width: 0; }
.c-visit .k-card { padding: 24px; }
.c-visit .k-card p { font-family: var(--c-serif); font-size: 1.1875rem; line-height: 1.5; margin-top: 8px; }
.c-join { margin: 80px 0 0; padding: 64px 0; background: var(--c-ox); color: var(--c-page-light); position: relative; overflow: hidden; }
.c-join::before { content: ""; position: absolute; width: 900px; height: 700px; left: -300px; bottom: -420px; background: none; }
.c-join .c-wrap { position: relative; }
.c-join h2 { font-family: var(--c-serif); font-style: italic; font-weight: 500; font-size: clamp(2.75rem, 1.6rem + 4.4vw, 5.5rem); line-height: .95; color: #FFF8EA; }
.c-join p { font-family: var(--c-serif); font-size: 1.3125rem; line-height: 1.5; color: rgba(246, 239, 225, .9); margin-top: 14px; max-width: 52ch; }
.c-join .k-btn-row { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 12px; }
.c-join .k-btn { background: var(--c-page-light); color: var(--c-ox); }
.c-join .k-btn-line { background: transparent; color: var(--c-page-light); box-shadow: inset 0 0 0 1.5px rgba(246, 239, 225, .6); }
.c-pub-foot { padding: 28px 0 44px; color: var(--k-muted); font-size: .875rem; background: var(--c-page); }
.c-pub-foot p + p { margin-top: 6px; }
.c-pub-foot a { color: var(--k-muted); }

/* ======================= privacy page ======================= */
.c-plain .c-bar { position: static; background: var(--c-ox); }
.c-doc { max-width: 760px; padding-top: 40px; padding-bottom: 56px; }
.c-doc h1 { font-family: var(--c-serif); font-style: italic; font-weight: 600; font-size: clamp(2.75rem, 2rem + 3vw, 4rem); line-height: 1; }
.c-doc h2 { font-family: var(--c-serif); font-weight: 600; font-size: 1.75rem; margin-top: 30px; }
.c-doc p, .c-doc li { color: var(--k-text); font-size: 1.0625rem; line-height: 1.65; }
.c-doc p { margin-top: 10px; }
.c-doc ul { padding-left: 1.2em; }
.c-doc .blank { background: color-mix(in srgb, var(--c-brass) 34%, transparent); border-radius: 2px; padding: 0 4px; }
.c-doc a { color: var(--c-blue); }
@media (prefers-color-scheme: dark) { .c-doc a { color: #B9CBE6; } }

/* ======================= motion ======================= */
@media (prefers-reduced-motion: reduce) {
  .c-stamp, .c-card, .c-pocket-form .c-lines li:first-child .c-stamp { animation: none !important; }
  .c-shortlist .k-item-art, .c-shortlist .k-item-name { transition: none; }
  .k-app *, .k-app *::before, .k-app *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
.c-poster-list { min-width: 0; }
.c-band-sheet .k-list { box-shadow: none; border: 0; background: transparent; }
.c-band-sheet .k-list .k-row { padding-left: 0; padding-right: 0; }

.c-poster h1 em { font-style: italic; }
.c-chapters { counter-reset: ch; } .c-chapters li { counter-increment: ch; } .c-chapters li::before { content: counter(ch, upper-roman) "."; }
.c-welcome .c-perks { counter-reset: pk; } .c-welcome .c-perks li { counter-increment: pk; } .c-welcome .c-perks li::before { content: counter(pk, upper-roman) "."; }
.k-app a.c-vote-done, .k-app a.c-vote-done .k-row-title { color: var(--k-text); }
.c-spine { padding-top: 22%; }
@media (max-width: 719px) { .c-month .c-spine-a, .c-poster-month .c-spine-a { display: none; } .c-meet-jacket { width: 62%; } }
.c-shelf-spine .c-st { max-height: 64%; font-size: 1.25rem; }
.c-shelf-spine .c-sa { max-height: 30%; }
.c-earlier-shelf .c-st { font-size: 1rem; }
.c-earlier { margin-top: 40px; }
.c-spine::before, .c-shelf-spine::before, .c-shortlist .k-item-art::before { background: linear-gradient(90deg, rgba(0, 0, 0, .4), rgba(255, 255, 255, .08) 38%, rgba(0, 0, 0, .14) 70%, rgba(0, 0, 0, .46)), rgba(0, 0, 0, .14); }
.k-app [data-pl-scan-show], .k-app [data-pl-wallet] button { border-radius: 2px; font-family: var(--c-sans); letter-spacing: .08em; }
.c-borrower [data-pl-scan-show] { background: var(--c-ox); color: var(--c-page-light); text-transform: uppercase; }
.c-tag { min-width: 0; overflow-wrap: anywhere; }
.c-tag .k-badge { white-space: normal; text-align: left; }
@media (max-width: 719px) {
  .c-tag-by { overflow-wrap: anywhere; }
  .c-tag .k-badge { font-size: .5625rem; letter-spacing: .04em; padding: 2px 4px; }
  .k-app .c-shortlist { padding-top: 12px; }
  .k-app .c-shortlist .k-item, .k-app .c-shortlist .k-item:nth-child(2) { grid-template-rows: 250px auto auto; }
}
.k-app .k-main { overflow-x: clip; }
.c-welcome-art { max-width: 100%; overflow: hidden; }
.c-welcome-art .c-shelf-spine { flex-shrink: 1; min-width: 26px; }
.c-welcome-art .c-front-lean { flex-shrink: 1; min-width: 0; }
.k-app :is(.c-poster, .c-bar, .c-join, .c-welcome) .k-btn:not(.k-btn-line):not(.k-btn-2) { background: var(--c-page-light); color: var(--c-ox); }
.k-app :is(.c-poster, .c-join, .c-welcome) .k-btn-line { color: var(--c-page-light); }
@media (max-width: 719px) { .c-tag .k-badge-ok { white-space: nowrap; letter-spacing: 0; font-size: .5625rem; padding: 2px 3px; } }

/* round 2 review fixes */
@media (max-width: 959px) {
  .c-poster-month { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 18px; }
  .c-poster-month .c-jacket { width: 272px; }
}
@media (max-width: 719px) {
  .c-poster h1 { font-size: 4rem; }
  .c-month { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .c-month > .c-jacket { width: 200px; }
  .c-month-title { justify-self: stretch; }
  .c-month .c-booktitle { font-size: 2.5rem; }
  .c-reply { grid-template-columns: minmax(0, 1fr); }
  .c-reply .c-stamp { justify-self: start; }
  .k-app .c-shortlist { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 8px; padding: 14px 8px 0; background: linear-gradient(var(--c-shelf-wood), var(--c-shelf-wood)) 0 264px / 100% 12px no-repeat, radial-gradient(40% 110px at 50% 0, var(--c-glow), transparent 100%); }
  .k-app .c-shortlist .k-item { grid-template-rows: 250px auto auto; }
  .c-shortlist .k-item-art { width: min(100%, 72px); justify-self: center; box-shadow: none; }
  .c-shortlist .k-item[aria-pressed="true"] .k-item-art { box-shadow: 0 0 0 2px var(--c-brass), 0 12px 20px rgba(40, 16, 8, .35); }
  .c-shortlist .k-item-name { font-size: 1rem; max-height: 170px !important; margin-bottom: 16px; }
  .c-shortlist .k-item-desc { grid-row: 2; border-top: 0; margin: 0; padding: 18px 0 0; }
  .c-shortlist .k-item-foot { grid-row: 3; }
  .c-shortlist .k-item-foot > span:first-child { display: none; }
  .c-shortlist .k-item:first-child .k-item-desc, .c-shortlist .k-item:last-child .k-item-desc { margin: 0; padding: 18px 0 0; }
}
.c-member .c-name, .c-borrower .k-big, .c-card-head span:last-child { min-width: 0; overflow-wrap: anywhere; }
.k-app .k-form ::placeholder { color: var(--k-muted); opacity: 1; }
.c-pocket-form .k-form ::placeholder { color: var(--c-card-muted); opacity: 1; }
.c-pocket-form .k-form select { border: 1.5px solid var(--c-rule); border-radius: 2px; padding: 8px 10px; }
.c-pocket-form h3 { margin-bottom: 10px; }
.k-app .k-account .k-btn, .k-app .k-account > form > button { font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .1em; font-size: .8125rem; white-space: normal; line-height: 1.25; min-height: 48px; }
.k-app .k-account > form > button { letter-spacing: 0; }

/* round 2 review fixes: part 2 */
.k-app .k-tabs .k-tabs-brand { color: var(--c-page-light); }
.c-shelf-spine .c-st { max-height: 52%; }
.c-shelf-spine .c-sa, .c-spine-a { letter-spacing: .12em; max-height: 44%; overflow-wrap: anywhere; }
.c-spine-t { max-height: 58%; }
.k-app .k-account, .k-app .k-account > * { min-width: 0; max-width: 100%; box-sizing: border-box; overflow-wrap: anywhere; }
@media (max-width: 719px) { .c-tag .k-badge-ok { white-space: normal; flex-wrap: wrap; overflow-wrap: anywhere; } }
.k-app .k-brand span { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.k-app .k-brand img { flex-shrink: 0; }
.c-pocket-form .c-card h2 { line-height: 1.15; margin-bottom: 10px; }
@media (min-width: 1024px) {
  .c-shelf-board .c-season > li, .c-pub-season .c-season > li { flex: 1 1 0; max-width: 230px; }
  .c-home-grid > .k-span-4 { position: sticky; top: 24px; align-self: start; }
  .c-join .c-wrap { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 56px; align-items: end; }
  .c-join-jackets { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; align-self: center; }
}

/* Home: "Where you're up to" is a page-edge bar, not a card */
.c-pagebar { padding: 20px 0 22px; background: none; border: 0; border-top: 1px solid var(--c-section-rule); border-bottom: 1px solid var(--c-section-rule); box-shadow: none; border-radius: 0; }
.c-pagebar .k-section-head { margin-bottom: 14px; }
.c-pagebar .k-bar { margin-top: 12px; }
/* Home: the club's shelf as a four-spine mini shelf */
.c-mini-shelf { display: flex; align-items: center; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--k-line-strong); color: var(--k-text); text-decoration: none; }
.c-mini-books { display: flex; align-items: flex-end; gap: 3px; padding: 0 6px; flex: none; border-bottom: 6px solid var(--c-shelf-wood); }
.c-mini-b { display: block; width: 14px; height: 52px; }
.c-mini-b:nth-child(2) { height: 42px; } .c-mini-b:nth-child(3) { height: 58px; } .c-mini-b:nth-child(4) { height: 46px; }
.c-mini-b.c-ox { background: var(--c-ox); } .c-mini-b.c-bl { background: var(--c-blue); } .c-mini-b.c-gr { background: var(--c-green); } .c-mini-b.c-in { background: #2A231E; }
.c-mini-t { display: grid; gap: 2px; min-width: 0; flex: 1; }
.c-mini-shelf .k-chev { flex: none; color: var(--c-accent); }
/* public: the Pull up a chair band carries three jackets */
.c-join-jackets { display: flex; align-items: center; margin-top: 28px; padding-left: 4px; }
.c-join-jackets img { position: relative; height: 230px; width: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 0 3px 3px 0; box-shadow: 0 16px 24px rgba(20, 4, 6, .45); }
.c-join-jackets img + img { margin-left: -44px; }
.c-join-jackets img:nth-child(3) { transform: rotate(-3deg); transform-origin: bottom left; }
.c-meet-log { max-width: 760px; margin-top: var(--k-6); }

/* ======================= round 3 review fixes ======================= */
.c-tag-by { display: block; min-width: 0; overflow-wrap: anywhere; font-family: var(--c-serif); font-style: italic; font-size: 1rem; line-height: 1.2; color: var(--k-muted); }
@media (max-width: 479px) { .c-season .c-sa { display: none; } }
.c-shortlist .k-item-desc { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 719px) {
  .c-shortlist .k-item[aria-pressed="true"] .k-item-name::after { content: none; }
  .c-shortlist .k-item[aria-pressed="true"] .k-item-foot::before { content: "Your pick"; font-family: var(--c-sans); font-weight: 700; font-size: .625rem; letter-spacing: .12em; text-transform: uppercase; background: var(--c-brass); color: #2A1D0B; padding: 3px 5px; }
  .c-join-jackets img { height: 168px; }
  .c-join-jackets img + img { margin-left: -30px; }
}
.c-borrower-card { display: grid; gap: 14px; }
.c-borrower-card > .k-big { margin-top: 22px; }
.c-borrower-card [data-pl-sign-in="scan"] { justify-self: start; }
.c-member-pocket .c-card { padding-bottom: 96px; }
.k-app .k-account > h3 { margin: 0; padding: 16px 18px 8px; }
.k-app .k-account > h3 + * { margin-top: 0; }
.c-member-pocket .c-member { margin-top: 18px; }
.c-member-pocket .c-stamp { margin-top: 16px; }
.c-star-legend { display: block; font-family: var(--c-sans); text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; font-weight: 600; color: var(--k-muted); margin-bottom: 8px; }
.c-star-pick { display: flex; gap: 2px; }
.k-app .k-form .c-star-pick button { width: 48px; height: 52px; padding: 0; margin: 0; border: 0; border-radius: 2px; background: transparent; box-shadow: none; font-family: var(--c-sans); font-size: 2.125rem; line-height: 1; letter-spacing: 0; text-transform: none; color: var(--c-star-idle); cursor: pointer; }
.k-app .k-form .c-star-pick button.on { color: #7A5A12; }
@media (prefers-color-scheme: dark) { .k-app .k-form .c-star-pick button.on { color: var(--c-brass); } }
.k-app .c-star-pick button:focus-visible { outline: 3px solid var(--c-brass); outline-offset: 2px; }
@media (min-width: 1024px) {
  .c-meet-root:not([hidden]) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 440px); column-gap: 40px; align-items: start; }
  .c-meet-root > [data-pl-list="meetings"], .c-meet-root .c-meeting, .c-meet-root .c-meet-forms, .c-meet-root .c-meet-forms > .k-span-5 { display: contents; }
  .c-meet-root .c-meeting > .k-pagehead, .c-meet-root .c-meeting > .c-meet-top, .c-meet-root > .c-month-empty { grid-column: 1 / -1; }
  .c-meet-root #questions { grid-column: 1; grid-row: 3; }
  .c-meet-root #reply { grid-column: 2; grid-row: 3 / span 2; position: sticky; top: 24px; }
  .c-meet-root #page { grid-column: 1; grid-row: 4; max-width: none; margin-top: 0; }
}

/* ======================= round 4 final review fixes ======================= */
/* shortlist author: keep the name whole and let the surname drop to its own line, not split mid-word */
.c-shortlist .k-item-desc [data-pl-field="author"] { overflow-wrap: normal; word-break: keep-all; letter-spacing: .06em; font-size: .625rem; }
@media (max-width: 399px) { .c-card-head > span:first-child { letter-spacing: .12em; font-size: .6875rem; } }
/* account: the leaving block sits inside the sheet with the same gutter as the other rows */
.k-app .k-account > h3 + p { margin: 0; padding: 0 18px 14px; }
.k-app .k-account > form:has(input[type="checkbox"]) { padding: 0 18px 16px; }
.k-app .k-account > p:last-child { margin: 0; padding: 0 18px 18px; }
/* card: the wallet buttons as outlined bookcloth-blue buttons, 40px tall, not black slabs */
.k-app .c-borrower [data-pl-wallet] button { min-height: 40px; border: 0; background: transparent; color: var(--c-blue); box-shadow: inset 0 0 0 1.5px var(--c-blue); }
/* meeting, phones: heading, jacket, details, reply card, then questions and the page log */
@media (max-width: 1023px) {
  .c-meet-root:not([hidden]) { display: flex; flex-direction: column; gap: 28px; }
  .c-meet-root [data-pl-list="meetings"], .c-meet-root .c-meeting, .c-meet-root .c-meet-forms, .c-meet-root .c-meet-forms > .k-span-5 { display: contents; }
  .c-meet-root .c-meeting > .k-pagehead { order: 0; }
  .c-meet-root .c-meeting > .c-meet-top { order: 1; }
  .c-meet-root #reply { order: 2; }
  .c-meet-root #questions { order: 3; }
  .c-meet-root #page { order: 4; }
}
@media (max-width: 719px) { .c-join-jackets img + img { margin-left: -6px; } }
/* desktop: the side column stays in view beside the longer main column */
@media (min-width: 1024px) {
  .k-board > .k-span-6:nth-child(2), .c-shelf-board > .k-span-4 { position: sticky; top: 24px; align-self: start; }
}
/* the app bar: the Notes stripe is brass on the dark green bar, where the dark brown could not be seen */
@media (prefers-color-scheme: dark) { .k-app .k-tabs a:not(.k-tabs-brand):nth-of-type(5) { --tab-c: var(--c-brass); } }

/* ======================= member app: by lamplight (polish 2026-10-26) =======================
   The member pages are the library after dark: a deep bookcloth blue-grey room (near-black ink at night) with a warm
   lamp glow, oxblood jackets and brass foil as the accents, the Library Green tab bar. Cream belongs only to the paper
   objects: the library card, the flap, note sheets, the borrower's card, cards and lists. Two token sets: the room
   (on body) and the paper (re-declared on each paper object, so everything inside it reads dark ink on cream). */
body.k-app:not(.c-pub) {
  /* paper, shared by both schemes (a touch dimmer at night) */
  --p-paper: #FBF7EE; --p-card: #FDFAF2; --p-surface-2: #EFE5D2; --p-line: #E0D3BA; --p-line-strong: #BFAE8E;
  --p-ink: #1D1A16; --p-muted: #5E5247; --p-body: #3B3128; --p-rule: #A9BCD6;
  /* the room */
  --c-page: #233047;
  --c-paper: #2B3953;
  --c-ink: #F3EAD8;
  --c-muted: #C9BEA8;
  --c-accent: #D9AE52;
  --c-link: #EBCB82;
  --c-section-rule: rgba(217, 174, 82, .55);
  --c-glow: rgba(240, 176, 82, .3);
  --c-rule: #56647E;
  --c-star-idle: #C9BEA8;
  --c-shelf-wood: #3E2416;
  --k-bg: #233047;
  --k-surface: #2B3953;
  --k-surface-2: #34435F;
  --k-line: #3E4D69;
  --k-line-strong: #5A6884;
  --k-text: #F3EAD8;
  --k-muted: #C9BEA8;
  --k-faint: #C2B8A4;
  --k-brand: #6E1E2B;
  --k-brand-ink: #F6EFE1;
  --k-brand-soft: rgba(217, 174, 82, .16);
  --k-ok: #9CC7AA;
  --k-ok-soft: rgba(156, 199, 170, .16);
  --k-danger: #FF8F80; --k-warn: #F0B24A; --k-warn-soft: rgba(240, 178, 74, .14); --k-info: #B9CBE6; --k-info-soft: rgba(185, 203, 230, .14);
  --k-shadow-1: 0 1px 0 rgba(255, 255, 255, .5) inset, 0 2px 4px rgba(6, 10, 18, .28), 0 14px 30px rgba(6, 10, 18, .32);
  --k-shadow-2: 0 4px 10px rgba(6, 10, 18, .34), 0 24px 48px rgba(6, 10, 18, .4);
  color: var(--k-text);
  background:
    radial-gradient(900px 640px at 14% -6%, rgba(240, 176, 82, .2), transparent 70%),
    radial-gradient(760px 560px at 96% 30%, rgba(240, 176, 82, .07), transparent 70%),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, .018) 0 2px, transparent 2px 5px),
    var(--c-page);
  background-attachment: fixed;
}
@media (prefers-color-scheme: dark) {
  body.k-app:not(.c-pub) {
    --p-paper: #ECE2CE; --p-card: #EFE6D4; --p-surface-2: #DFD3BB; --p-line: #CDBE9F; --p-line-strong: #A8977A;
    --p-ink: #1D1A16; --p-muted: #54493E; --p-body: #3B3128; --p-rule: #93A6C2;
    --c-page: #0E131C;
    --c-paper: #161D2A;
    --c-ink: #EDE3CF;
    --c-muted: #B3A994;
    --c-glow: rgba(240, 168, 72, .2);
    --c-rule: #33405A;
    --c-star-idle: #B3A994;
    --c-shelf-wood: #2E1A10;
    --k-bg: #0E131C;
    --k-surface: #161D2A;
    --k-surface-2: #1E2738;
    --k-line: #27324A;
    --k-line-strong: #3D4A64;
    --k-text: #EDE3CF;
    --k-muted: #B3A994;
    --k-faint: #A39A86;
    --k-brand: #6E1E2B;
    --k-shadow-1: 0 2px 4px rgba(0, 0, 0, .5), 0 16px 34px rgba(0, 0, 0, .55);
    --k-shadow-2: 0 4px 10px rgba(0, 0, 0, .55), 0 26px 52px rgba(0, 0, 0, .6);
    background:
      radial-gradient(900px 640px at 14% -6%, rgba(240, 168, 72, .16), transparent 70%),
      radial-gradient(760px 560px at 96% 30%, rgba(240, 168, 72, .05), transparent 70%),
      var(--c-page);
    background-attachment: fixed;
  }
}
/* the paper objects: dark ink on cream inside, whatever the room is doing */
body.k-app:not(.c-pub) :is(.k-card, .k-sheet, .k-list, .k-stat, .k-action, .k-panel, .k-table, .k-plan, .k-gate, .k-drop, .c-sheet-note, .c-close, .c-band-sheet, .k-account, .c-borrower, .c-pocket, .c-meet-flap),
body.k-app:not(.c-pub) .c-flap:not(.c-month > .c-flap) {
  --c-paper: var(--p-paper); --c-card: var(--p-card); --c-ink: var(--p-ink); --c-muted: var(--p-muted);
  --c-accent: #6E1E2B; --c-link: #23395B; --c-section-rule: #23395B; --c-rule: var(--p-rule); --c-star-idle: var(--p-muted);
  --c-card-muted: var(--p-muted); --c-card-body: var(--p-body);
  --k-surface: var(--p-paper); --k-surface-2: var(--p-surface-2); --k-line: var(--p-line); --k-line-strong: var(--p-line-strong);
  --k-text: var(--p-ink); --k-muted: var(--p-muted); --k-faint: var(--p-muted);
  --k-brand-soft: #EEDCD3; --k-ok: #1F4D3A; --k-ok-soft: #DCE8DF;
  --k-danger: #9B1C1C; --k-warn: #855000; --k-warn-soft: #FDF0D9; --k-info: #23395B; --k-info-soft: #E3E8F0;
  --k-shadow-1: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 1px 2px rgba(60, 36, 16, .12), 0 8px 20px rgba(60, 36, 16, .08);
  --k-shadow-2: 0 2px 6px rgba(60, 36, 16, .14), 0 18px 40px rgba(60, 36, 16, .16);
  color: var(--k-text);
}
/* the room's shadow under each paper object (a filter, so the objects' own paper shadows and stacked sheets stay) */
body.k-app:not(.c-pub) :is(.k-card, .k-list, .k-account, .c-sheet-note, .c-band-sheet, .c-borrower, .c-pocket, .c-close, .c-meet-flap):not(:is(.k-card, .k-list, .k-account, .c-band-sheet, .c-pocket, .c-borrower) *) {
  filter: drop-shadow(0 3px 4px rgba(6, 10, 18, .3)) drop-shadow(0 14px 22px rgba(6, 10, 18, .28));
}
/* the month's title and flap stand in the lamplight beside the jacket, on the room itself */
body.k-app:not(.c-pub) .c-month::before { display: none; }
/* the top bar is part of the room; the club name in cream italic, a brass rule under it */
body.k-app:not(.c-pub) .k-top { background: color-mix(in srgb, var(--c-page) 94%, transparent); border-bottom-color: rgba(217, 174, 82, .35); }
body.k-app:not(.c-pub) .k-btn-2 { box-shadow: inset 0 0 0 1.5px var(--k-line-strong); }
/* the oxblood ribbon needs a brass edge to show against the blue */
body.k-app:not(.c-pub) .c-progress .k-bar i::after { background: #8A2A38; box-shadow: 0 0 0 1px rgba(217, 174, 82, .7), 0 3px 6px rgba(0, 0, 0, .4); }
body.k-app:not(.c-pub) .c-mini-books { border-bottom-color: #5A3624; }
body.k-app:not(.c-pub) :is(.c-mini-b.c-bl, .c-mini-b.c-in, .c-plain-spine) { box-shadow: inset 0 0 0 1px rgba(217, 174, 82, .35); }
/* night: the cream objects keep their daytime inks (the old dark rules assumed dark surfaces) */
@media (prefers-color-scheme: dark) {
  body.k-app:not(.c-pub) .c-stars { color: #7A5A12; }
  body.k-app:not(.c-pub) .k-tile-gold, body.k-app:not(.c-pub) .c-note[data-k-state="new"] .k-badge-state { background: #F1E1B8; color: #5A3E08; }
  body.k-app:not(.c-pub) .c-history .k-row-title { color: var(--c-stamp); }
  body.k-app:not(.c-pub) .k-form .c-star-pick button.on { color: #7A5A12; }
  body.k-app:not(.c-pub) .c-progress .k-bar i::after { background: #8A2A38; }
}
