/* Book A — People & places set as a printed phone book (Chet 97/98/99, Dave 104).
   Loaded after place.css, which supplies the fonts (FC Barlow Condensed, FC DM Serif, FC Special Elite) and the
   --serif/--sans/--cond/--type variables. Paper grain is the shared postoffice-grain.jpg. Nothing here is copied
   from a study; it has no inline image URLs and no new font or image files.
   Sizes are rem so enlarged text and browser zoom reflow the columns instead of shrinking the type. */

.fc-book { --bk-ink:#29231a; --bk-stock:#dac18b; --bk-edge:#a88b54; --bk-rule:#675334; --bk-control:#f2ead8; --bk-controlink:#263c31; --bk-focus:#176391;
  --bk-print:Georgia,'Times New Roman',serif; }
.bk-main { max-width:1000px; margin:0 auto; padding:6px 10px 28px; }
.bk-main * { box-sizing:border-box; }

/* ---- the two control lines: Folks / Places, then search with the small A–Z at its right ---- */
.bk-tools { margin:0 0 8px; color:var(--bk-controlink); font-family:var(--sans); }
.bk-type { display:flex; align-items:center; min-height:44px; }
.bk-type a { display:inline-flex; align-items:center; min-height:44px; margin-right:6px; padding:0 14px 0 0; color:inherit; font:600 .9375rem/1 var(--sans); text-decoration:none; }
.bk-type a:hover { text-decoration:underline; text-underline-offset:6px; }
.bk-type a[aria-current="true"] { text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:2px; }
.bk-type a:focus-visible, .bk-letter:focus-visible { outline:3px solid var(--bk-focus); outline-offset:2px; }
.bk-find { display:flex; gap:6px; }
.bk-find input, .bk-find select { min-width:0; min-height:44px; padding:8px; border:1px solid var(--bk-rule); border-radius:2px; background:var(--bk-control); color:var(--bk-controlink); font:1rem/1.25 var(--sans); }
.bk-find input { flex:1; width:100%; }
.bk-find select { width:4.5rem; padding:8px 4px; }
.bk-find input:focus-visible, .bk-find select:focus-visible { outline:3px solid var(--bk-focus); outline-offset:2px; }

/* ---- the book ---- */
.bk-book { position:relative; padding:12px 14px 10px; background-color:var(--bk-stock);
  background-image:radial-gradient(ellipse at 12% 2%,#fff4ca42,transparent 65%),radial-gradient(ellipse at 100% 95%,#67451f30,transparent 60%),
    linear-gradient(90deg,#64411d44,transparent 5%,transparent 95%,#65452238);
  border:1px solid var(--bk-edge); border-radius:5% 4% 3% 2% / 1% 1% 1% 1%;
  box-shadow:0 2px 0 var(--bk-edge),0 5px 0 var(--bk-stock),0 6px 0 var(--bk-edge),0 12px 15px #17140d26; color:var(--bk-ink); font-family:var(--bk-print); overflow:hidden; }
.bk-book::before { content:''; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.18; background:url('postoffice-grain.jpg') center/cover; mix-blend-mode:multiply; }
.bk-book > * { position:relative; z-index:1; }
@media (min-width:700px) {
  .bk-book { padding:15px 22px 12px; background-image:radial-gradient(ellipse at 12% 2%,#fff4ca42,transparent 65%),radial-gradient(ellipse at 100% 95%,#67451f30,transparent 60%),
    linear-gradient(90deg,#64411d36,transparent 3%,#fff1c711 46%,#6d4a2944 49.8%,#52331e66 50%,#fff6d51c 52%,transparent 96%,#65452242); }
}
.bk-running, .bk-foot { display:flex; justify-content:space-between; gap:6px; font:bold .625rem/1.2 var(--bk-print); letter-spacing:.3px; text-transform:uppercase; }
.bk-running { padding-bottom:5px; margin-bottom:9px; border-bottom:3px double var(--bk-ink); }
.bk-foot { padding-top:6px; margin-top:12px; border-top:3px double var(--bk-ink); }
@media (max-width:359px) { .bk-wab { display:none; } .bk-running { justify-content:flex-start; gap:14px; } }
.bk-title { margin:0; font:inherit; letter-spacing:inherit; }
.bk-warn { margin:0 0 9px; padding:6px 8px; border:1px solid var(--bk-ink); background:#f2ead8c9; font:.8125rem/1.4 var(--sans); }
.bk-sec { margin:0; }
.bk-az-plain { display:flex; flex-wrap:wrap; gap:0 2px; margin:0 0 6px; }
.bk-az-plain a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; color:inherit; font:bold 1rem var(--bk-print); }

/* columns read down, then across; the type never shrinks to fit, the column count gives way instead */
.bk-cols { columns:2 9.5rem; column-gap:16px; column-rule:1px solid var(--bk-rule); }
@media (min-width:700px) { .bk-cols { columns:4 8.25rem; column-gap:22px; } }
.bk-group { margin:0 0 7px; }
.bk-letter { margin:0 0 3px; padding:2px 0; border-top:1px solid var(--bk-ink); border-bottom:1px solid var(--bk-ink); color:inherit; font:bold .9375rem/1.1 var(--bk-print); text-align:center; scroll-margin-top:12px; break-after:avoid; }
.bk-list { margin:0; padding:0; list-style:none; }
.bk-item { break-inside:avoid; }

.bk-entry { display:block; min-height:44px; padding:5px 2px; color:var(--bk-ink); font:.875rem/1.16 var(--bk-print); text-decoration:none; overflow-wrap:anywhere; }
.bk-entry:hover { background:#fff3b835; }
.bk-entry:focus-visible { outline:3px solid var(--bk-focus); outline-offset:-3px; background:#fff3b855; }
.bk-name { display:block; font-variant:small-caps; letter-spacing:.1px; font-weight:400; }
.bk-entry--bold .bk-name { font-weight:800; }
.bk-line { display:flex; gap:3px; margin-top:1px; font-size:.75rem; }
.bk-dots { flex:1; min-width:8px; height:11px; border-bottom:1px dotted var(--bk-rule); }
.bk-tag { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin-top:2px; font-size:.75rem; font-style:italic; }

/* a printed display listing: only ever drawn from an approved recognition (100); real pages have none yet */
.bk-entry--display { display:flex; flex-direction:column; margin:7px 0 9px; padding:9px 7px; border:4px double var(--bk-ink); text-align:center; }
.bk-entry--display .bk-name { order:1; font:800 1.8rem/.95 var(--cond); font-variant:normal; letter-spacing:-.3px; text-transform:uppercase; }
.bk-entry--display .bk-tag { order:2; display:block; margin:8px 0; padding:6px 0; border-block:1px solid var(--bk-ink); font:bold .8125rem/1.25 var(--bk-print); font-style:normal; text-transform:uppercase; }
.bk-entry--display .bk-line { order:3; justify-content:center; margin-top:0; font:bold 1.0625rem/1.1 var(--bk-print); }
.bk-entry--display .bk-dots, .bk-entry--display .bk-go { display:none; }
.bk-hand { order:4; display:block; margin-top:7px; font:.6875rem/1.2 var(--bk-print); letter-spacing:.2px; text-transform:uppercase; }
.bk-d-checker { border:7px solid transparent; background:linear-gradient(var(--bk-stock),var(--bk-stock)) padding-box,conic-gradient(var(--bk-ink) 25%,var(--bk-stock) 0 50%,var(--bk-ink) 0 75%,var(--bk-stock) 0) border-box; background-size:auto,14px 14px; }
.bk-entry--display { container-type:inline-size; }
.bk-d-banner .bk-name { margin:-5px -3px 0; padding:9px 3px; background:var(--bk-ink); color:var(--bk-stock); font:italic bold 1.6875rem/1.05 var(--bk-print); font-size:min(1.6875rem, 16cqw); text-transform:none; }  /* a banner name fits its column on one line: 16% of the column's width, capped at the full size (Yellowberri wrapped at 390 — Dave, 10-18) */
.bk-d-plain .bk-name { font:900 1.875rem/.95 'Times New Roman',serif; }
/* the house: the publisher's listing wears the ink banner; the Desk keeper is bold italic. Labelled, never "recognized". */
.bk-house-line { display:block; margin-top:3px; font:italic .75rem/1.2 var(--bk-print); letter-spacing:.04em; }
.bk-entry--display .bk-house-line { order:4; margin-top:6px; text-transform:uppercase; font-style:normal; letter-spacing:.12em; }
.bk-entry--desk .bk-name { font-weight:800; font-style:italic; }

.bk-none, .bk-empty { margin:6px 0; font:italic .875rem/1.4 var(--bk-print); }
.bk-empty a { display:inline-flex; align-items:center; min-height:44px; color:inherit; }
.bk-note { max-width:60ch; margin:14px 2px 0; color:var(--muted); font:.8125rem/1.6 var(--sans); }
.bk-make { display:inline-flex; align-items:center; min-height:44px; color:var(--ink); }

/* ---- the paper popup (98 behavior, 99 material): warm paper, the shared grain, a tape tab, ink rules, Barlow ---- */
.bk-pop { --p-ink:#20352b; --p-paper:#eee8d0; --p-head:#ed8853; --p-headink:#20352b;
  width:min(510px,calc(100% - 24px)); max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); margin:auto; padding:0 0 16px; overflow:auto; overscroll-behavior:contain;
  border:1px solid var(--p-ink); border-radius:0; background:var(--p-paper) url('postoffice-grain.jpg') center/cover; background-blend-mode:soft-light; color:var(--p-ink);
  box-shadow:5px 7px 0 #17271d40,0 16px 55px #17271d55; }
.bk-pop::backdrop { background:#201b14a8; }
.bk-pop[data-kind="folk"] { --p-head:#b8ccbf; }
.bk-pop-top { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 18px; border-bottom:3px double var(--p-ink); background:var(--p-paper); }
.bk-pop-top span { font:.75rem/1.4 var(--type); letter-spacing:.3px; }
.bk-pop-close { min-width:72px; min-height:44px; padding:8px 0; border:0; background:transparent; color:inherit; font:.875rem var(--sans); cursor:pointer; }
.bk-pop-close:focus-visible, .bk-pop-actions a:focus-visible { outline:3px solid var(--bk-focus); outline-offset:2px; }
.bk-pop-head { position:relative; margin:22px 12px 0; padding:16px 14px 10px; border-block:2px solid currentColor; color:var(--p-headink); box-shadow:3px 4px 0 #17271d28;
  background:var(--p-head) url('postoffice-grain.jpg') center/100% 100%; background-blend-mode:soft-light; }
.bk-tape { position:absolute; top:-13px; left:calc(50% - 39px); width:78px; height:20px; background:#e9dfabcf; box-shadow:0 1px 0 #2222; transform:rotate(-5deg); pointer-events:none; }
.bk-pop-kind { margin:0; padding-bottom:8px; border-bottom:1px solid currentColor; font:.75rem/1.4 var(--type); }
.bk-pop h2 { margin:9px 0 6px; color:inherit; font:800 clamp(2.375rem,8vw,3.6875rem)/.96 var(--cond); letter-spacing:-.8px; text-transform:uppercase; overflow-wrap:anywhere; }
.bk-pop[data-kind="folk"] h2 { font:italic 400 clamp(2.1875rem,7vw,3rem)/1.03 var(--serif); letter-spacing:-1px; text-transform:none; }
.bk-pop-read { padding:21px 23px 0; }
.bk-pop-tag { margin:0 0 18px; font:1.1875rem/1.48 var(--bk-print); overflow-wrap:anywhere; }
.bk-pop-rec { margin:0 0 18px; padding:12px 0 0; border-top:1px solid var(--p-ink); font:.8125rem/1.5 var(--type); overflow-wrap:anywhere; }
.bk-pop-actions { display:grid; margin:20px 18px 0; border-top:2px solid var(--p-ink); border-bottom:3px double var(--p-ink); }
.bk-pop-actions a { display:flex; align-items:center; min-height:48px; padding:12px 8px; color:var(--p-ink); font:500 1rem/1.25 var(--sans); text-decoration:underline; text-underline-offset:4px; }
.bk-pop-actions .bk-pop-visit { border-bottom:1px dashed var(--p-ink); font:italic 700 1.5rem/1.25 var(--bk-print); }

@media (forced-colors:active) { .bk-book, .bk-pop, .bk-entry--display, .bk-find input, .bk-find select { border:2px solid CanvasText; } .bk-book::before { display:none; } }
@media print { .bk-tools, .bk-pop, .bk-note { display:none; } .bk-book { box-shadow:none; } }
