/* 11 Scribes — dark, lamplit theme (rainy night, honey light on the cobblestone) */
:root{
  --paper:#14110d; --paper2:#1d1813; --ink:#e7ddca; --muted:#a3937b;
  --line:#3a2f24; --accent:#d99a3e; --accent2:#e7b25a; --gold:#d4a64e;
  --honey:#d99a3e; --honey-deep:#c0802c; --parchment:#e9ddc4; --taupe:#b6a585;
  --warn-bg:#2a1d11; --warn-line:#7a5a2f; --good:#79b184;
  --shadow:0 1px 3px rgba(0,0,0,.45),0 12px 32px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; color:var(--ink);
  background:radial-gradient(130% 88% at 50% -8%, #231a12 0%, #16110c 56%, #0f0c0a 100%) fixed;
  font:16px/1.6 "Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent2); text-decoration:none}
a:hover{text-decoration:underline}
::selection{background:#6b4a16; color:#fff}
.wrap{max-width:1080px; margin:0 auto; padding:0 22px}

/* Masthead */
.mast{
  background:linear-gradient(180deg,#0b0908,#191310);
  color:#ece3d2; border-bottom:4px solid var(--accent);
  padding:38px 0 30px; box-shadow:0 6px 30px rgba(0,0,0,.6);
}
.mast .wrap{display:block}
.mast .eyebrow{letter-spacing:.32em; text-transform:uppercase; font-size:11px; color:#cf9a4a; margin:0 0 8px}
.mast h1{font-size:34px; margin:0 0 6px; line-height:1.12; font-weight:700; color:#efe6d4}
.mast .sub{color:#b6a78d; font-size:15px; margin:0; max-width:760px}
.mast .meta{margin-top:16px; font-size:12.5px; color:#8d8068}
.mast .meta b{color:#d8c39a}

/* Index nav / search */
.toolbar{display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin:22px 0 6px}
.toolbar input[type=search]{
  flex:1; min-width:240px; padding:11px 14px; font-size:15px; font-family:inherit;
  border:1px solid var(--line); border-radius:8px; background:#1c1713; color:var(--ink);
}
.toolbar input[type=search]::placeholder{color:#7c7160}
.toolbar .count{font-size:13px; color:var(--muted)}
.jump{display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 8px}
.jump a{font-size:12.5px; padding:5px 11px; border:1px solid var(--line); border-radius:999px; background:#1c1713; color:var(--muted)}
.jump a:hover{border-color:var(--accent); color:var(--accent2); text-decoration:none}

/* Cards / sections */
.card{background:var(--paper2); border:1px solid var(--line); border-radius:12px; padding:20px 22px; margin:20px 0; box-shadow:var(--shadow)}
.card h2{margin:0 0 10px; font-size:21px; color:var(--accent)}
.card h2 .sk{color:var(--ink)}
.note{font-size:14.5px; color:var(--muted)}

/* Group section + table */
.group{margin:30px 0}
.group h2{font-size:23px; border-bottom:2px solid var(--line); padding-bottom:8px; margin:0 0 4px; color:#e7dccb}
.group .gcount{font-size:13px; color:var(--muted); font-weight:400}
table.books{width:100%; border-collapse:collapse; margin-top:10px; font-size:14.5px; table-layout:fixed}
table.books th{text-align:left; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); border-bottom:2px solid var(--line); padding:8px 10px}
table.books td{border-bottom:none; padding:9px 10px 4px; vertical-align:top}
tbody.book tr.r-points td{border-bottom:1px solid var(--line); padding-top:0}
tbody.book tr.r-main:last-child td{border-bottom:1px solid var(--line)}
tbody.book:hover td{background:#221b17}
table.books .t-title{font-weight:600; font-size:15.5px; word-break:break-word}
table.books .t-title a{color:var(--ink)}
table.books .t-title a:hover{color:var(--accent2)}
table.books .t-byline{font-size:12px; color:var(--muted); font-style:italic; font-weight:400}
table.books th.th-title{white-space:nowrap}
table.books .t-year{color:var(--muted); font-size:13px; font-weight:400; margin-left:6px}
table.books .t-link{color:var(--ink); text-decoration:underline; text-decoration-color:#6f5a44; text-underline-offset:3px}
table.books .t-link:hover{color:var(--accent2); text-decoration-color:var(--accent2)}
table.books .t-head{line-height:1.3}
tbody.book td.t-points{padding:0 12px 13px 62px; font-size:12.5px; line-height:1.55; color:#bcae96}
table.books .t-pub{margin-top:4px; font-size:12px; color:var(--muted); font-style:italic; word-break:break-word}
.col-year{white-space:nowrap; width:58px; color:var(--muted)}
/* Mobile: the 6-column table can't fit narrow screens (it crushes the title to ~1 char and wraps it
   letter-by-letter). Below 600px, stack each book as a card with labeled meta rows. */
@media(max-width:600px){
  table.books, table.books thead, table.books tbody, table.books tr, table.books td{display:block}
  table.books{table-layout:auto; font-size:14.5px}
  table.books thead{position:absolute; left:-9999px; top:-9999px}      /* hide header row (kept for a11y) */
  tbody.book{border:1px solid var(--line); border-radius:9px; margin:12px 0; padding:11px 13px 13px; background:var(--paper2); position:relative}
  tbody.book:hover td{background:transparent}
  tbody.book td{border:none !important; background:transparent !important; padding:0}
  tbody.book.owned{background:#13211a; box-shadow:inset 3px 0 0 var(--good)}
  tbody.book td.col-own{position:absolute; top:10px; right:10px; width:auto}
  tbody.book td.t-title{margin-right:34px}                             /* leave room for the checkbox */
  tbody.book td.col-price, tbody.book td.col-run, tbody.book td.col-val, tbody.book td.col-buy{
    display:flex; justify-content:space-between; align-items:baseline; gap:12px;
    padding-top:6px; margin-top:6px; border-top:1px solid rgba(255,255,255,.06); font-size:14px}
  tbody.book td.col-price{margin-top:11px}
  tbody.book td.col-price::before, tbody.book td.col-run::before, tbody.book td.col-val::before, tbody.book td.col-buy::before{
    content:attr(data-label); flex:0 0 auto; color:var(--muted); font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; padding-top:2px}
  tbody.book tr.r-points td.col-own{display:none}
  tbody.book td.t-points{padding:9px 0 0; margin-top:9px; border-top:1px solid rgba(255,255,255,.06)}
}
.col-pub{width:128px; color:var(--muted); font-size:13px; word-break:break-word}
.col-price{white-space:nowrap; width:72px; font-variant-numeric:tabular-nums}

/* Badges */
.badge{display:inline-block; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; padding:2px 8px; border-radius:999px; vertical-align:middle; white-space:nowrap}
.badge.jewel{background:#2b2210; color:#d8b056; border:1px solid #7a5e23}
.badge.verify{background:#241d17; color:#9a8c76; border:1px solid var(--line)}
.badge.flag{background:#2c1512; color:#e2796f; border:1px solid var(--warn-line)}
.badge.grail{background:#241634; color:#c498e6; border:1px solid #6b478f}
.badge.collectible{background:#152619; color:#79b485; border:1px solid #3d6647}
.badge.common{background:#241d17; color:#9a8c76; border:1px solid var(--line)}
.badge.conf-high{background:#152619; color:var(--good); border:1px solid #3d6647}
.badge.conf-medium{background:#2a2210; color:#c9a14c; border:1px solid #6b5620}
.badge.conf-low{background:#2c1512; color:#e2796f; border:1px solid var(--warn-line)}
/* the confidence "badge" carries a long verification note, not a short label. Render it as a
   full-width rounded-rectangle note (NOT a pill) — .badge's white-space:nowrap + border-radius:999px
   were making it a giant ~5700px-wide green oval. */
.badge.conf-high, .badge.conf-medium, .badge.conf-low{
  display:block; white-space:normal; text-transform:none; letter-spacing:0; text-align:left;
  border-radius:8px; padding:11px 14px; margin:0; line-height:1.5; font-size:12.5px}
.foot.bookfoot{display:block}                 /* stack the note (full width) above the back link */
.foot.bookfoot .back{margin-top:14px}

/* Per-book page */
.bookhead{margin:26px 0 6px}
.bookhead .crumb{font-size:13px; color:var(--muted); margin-bottom:10px}
.bookhead h1{font-size:30px; margin:0 0 4px; line-height:1.14; color:#ece3d1}
.bookhead .byline{font-style:italic; color:var(--muted); font-size:16px}
.bookhead .publine{margin-top:8px; font-size:15px; color:var(--ink)}
.bookhead .publine b{color:var(--accent2)}

.callout{border-radius:10px; padding:14px 16px; margin:16px 0; font-size:14.5px}
.callout .lbl{display:block; font-size:11px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:5px; font-weight:700}
.callout.first{background:#142318; border:1px solid #355c3e}
.callout.first .lbl{color:var(--good)}
.callout.warn{background:var(--warn-bg); border:1px solid var(--warn-line)}
.callout.warn .lbl{color:var(--accent2)}

.points{display:grid; grid-template-columns:1fr 1fr; gap:0 26px; margin:18px 0}
.points .row{border-bottom:1px solid var(--line); padding:10px 2px}
.points .k{display:block; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:3px}
.points .v{font-size:15px}
@media(max-width:640px){.points{grid-template-columns:1fr}}

.sec{margin:22px 0}
.sec h3{font-size:16px; color:var(--accent); margin:0 0 6px; border-bottom:1px solid var(--line); padding-bottom:5px}
.sec p{margin:6px 0; font-size:14.5px}

.imgrid{display:flex; flex-wrap:wrap; gap:12px; margin:10px 0}
.imgcard{display:block; width:160px; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#241e19}
.imgcard img{display:block; width:100%; height:120px; object-fit:cover}
.imgcard .imgurl{display:block; font-size:10px; color:var(--muted); padding:5px 7px; word-break:break-all; line-height:1.3}
.imgcard.noimg{width:auto; max-width:100%}
.imgcard.noimg .imgurl{padding:8px 10px}

ul.links{margin:6px 0; padding-left:18px; font-size:13px}
ul.links li{margin:3px 0; word-break:break-all}
.missing{color:#7f7361; font-style:italic}

.foot{margin:34px 0 20px; padding-top:14px; border-top:1px solid var(--line); font-size:13px; color:var(--muted); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px}
.back{font-size:14px}
.disclaimer{font-size:12.5px; color:var(--muted); background:#1b1613; border:1px dashed var(--line); border-radius:8px; padding:12px 14px; margin:18px 0}

/* Glossary */
.gloss dt{font-weight:700; color:var(--accent2); margin-top:12px}
.gloss dd{margin:3px 0 0; font-size:14.5px; color:var(--ink)}
.gloss code{background:#241d17; border:1px solid var(--line); border-radius:4px; padding:1px 5px; font-size:13px}
.pitfalls li, .missinglist li{margin:6px 0; font-size:14.5px}

/* Owned / collection tracking */
.toolbar .chk{display:flex; align-items:center; gap:6px; font-size:14px; color:var(--muted); white-space:nowrap; cursor:pointer}
.toolbar .chk input{width:16px; height:16px; accent-color:var(--good); cursor:pointer}
.toolbar .btn{font-family:inherit; font-size:13px; padding:8px 13px; border:1px solid var(--line); border-radius:8px; background:#1c1713; color:var(--ink); cursor:pointer}
.toolbar .btn:hover{border-color:var(--accent); color:var(--accent2)}
.toolbar .btn.danger:hover{border-color:var(--accent); color:#fff; background:rgba(207,70,63,.22)}
.toolbar #ownCnt{color:var(--good); font-weight:600}
.col-own{width:46px; text-align:center}
table.books td.col-own input{width:18px; height:18px; accent-color:var(--good); cursor:pointer}
tbody.book.owned td{background:#13211a}
tbody.book.owned td.col-own{box-shadow:inset 3px 0 0 var(--good)}
tbody.book.owned .t-link{color:#8fc99b}

.ownpanel{background:#15221a; border:1px solid #2f5740; border-radius:10px; padding:16px 18px; margin:16px 0}
.ownpanel.owned{background:#16271c; border-color:#3f7a55; box-shadow:inset 4px 0 0 var(--good)}
.ownpanel .owntoggle{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:600; color:var(--ink); cursor:pointer}
.ownpanel .owntoggle input{width:20px; height:20px; accent-color:var(--good); cursor:pointer}
.ownpanel .ownmeta{font-size:13px; color:var(--muted); margin:6px 0 2px 30px}
.ownpanel.owned .ownmeta{color:var(--good)}
.ownpanel .ownnote-l{display:block; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:12px 0 5px}
.ownpanel .ownnote{width:100%; min-height:66px; font-family:inherit; font-size:14px; line-height:1.5; padding:9px 11px; border:1px solid var(--line); border-radius:8px; background:#120f0d; color:var(--ink); resize:vertical}

/* OWNERSHIP UI — HIDDEN pending the owner's redesign. Markup + JS stay intact; this block
   alone makes the whole current surface invisible. Delete it (and the `hidden` attr on
   #ownpanel in generate.js) to restore. Covers: the index "Own" column + its toolbar
   controls (Owned-only filter, owned counter, Export / Import / Clear). The book-page
   #ownpanel is hidden via its `hidden` attribute. */
.col-own, .toolbar .chk, #ownCnt, #expBtn, #impBtn, #clrBtn{display:none !important}
.ownpanel .ownnote::placeholder{color:#6f6453}
.ownpanel .ownsaved{font-size:12px; color:var(--good); height:16px; margin-top:5px; opacity:0; transition:opacity .25s}

/* Cover images — index thumbnails + detail-page figure */
table.books .t-cell{display:flex; gap:11px; align-items:flex-start}
table.books .t-main{min-width:0}
.t-thumblink{flex:0 0 auto; display:block; line-height:0}
.t-thumb{flex:0 0 auto; width:40px; height:58px; object-fit:cover; border-radius:3px; border:1px solid var(--line); background:#2a231e}
.t-noimg{display:inline-block; border-style:dashed; background:
  repeating-linear-gradient(45deg,#241e1a,#241e1a 5px,#2c2520 5px,#2c2520 10px)}
img.t-thumb.t-noimg{content:""}
figure.cover{float:right; width:208px; margin:4px 0 18px 24px; text-align:center}
figure.cover img{width:100%; height:auto; border:1px solid #463a31; border-radius:5px; box-shadow:0 6px 26px rgba(0,0,0,.6); background:#2a231e}
figure.cover figcaption{font-size:11.5px; color:var(--muted); margin-top:7px; line-height:1.4}
@media(max-width:600px){figure.cover{float:none; width:170px; margin:0 auto 16px}}
/* small secondary edition image floated inside the true-first callout (e.g. the small-press true first) */
figure.edition-aside{float:right; width:118px; margin:0 0 8px 14px; text-align:center}
figure.edition-aside img{width:100%; height:auto; border:1px solid #355c3e; border-radius:4px; box-shadow:0 3px 14px rgba(0,0,0,.5); background:#2a231e; cursor:zoom-in}
figure.edition-aside figcaption{font-size:10.5px; color:var(--muted); margin-top:5px; line-height:1.35}
@media(max-width:600px){figure.edition-aside{width:92px; margin:0 0 6px 10px}}

/* index: print-run + value columns */
.col-run{white-space:nowrap; width:94px; color:var(--muted); font-size:13px}
.col-val{white-space:nowrap; width:92px; font-variant-numeric:tabular-nums; font-size:13.5px}
.val-conf{font-weight:600; color:var(--good)}
.val-est{color:var(--muted); font-style:italic}

/* detail page: market-value panel */
.value-sec{background:#1e1712; border:1px solid var(--line); border-radius:10px; padding:14px 16px 12px}
.value-sec h3{border-bottom:none; margin-bottom:2px}
.value-headline{font-size:23px; font-weight:700; color:var(--accent2); margin:2px 0 4px; line-height:1.2}
.value-basis{font-size:12.5px; color:var(--muted); margin:0 0 9px}
.prov{font-size:10px; letter-spacing:.07em; text-transform:uppercase; padding:2px 8px; border-radius:999px; vertical-align:middle; margin-left:8px; font-weight:700}
.prov.confirmed{background:#152619; color:#7fbf8a; border:1px solid #3d6647}
.prov.estimate{background:#2a2110; color:#d6ab57; border:1px solid #6b5620}
.prov.accepted{background:#161f2c; color:#90a8cc; border:1px solid #3a4d6b}
.points .prov{font-size:9.5px; padding:1px 6px; margin-left:6px}
.value-src{margin-top:6px; font-size:12px}
.value-src .k-inline{color:var(--muted); font-weight:600; margin-right:4px}

/* header menu + popups (glossary / checklist / outside-this-guide) */
.mast-menu{display:flex; gap:10px; flex-wrap:wrap; margin-top:18px}
.mbtn{font-family:inherit; font-size:13px; padding:8px 15px; border:1px solid #5a4a3a; border-radius:8px; background:rgba(220,200,170,.08); color:#dcccae; cursor:pointer; transition:background .15s,border-color .15s,color .15s}
.mbtn:hover{background:rgba(207,70,63,.16); border-color:var(--accent); color:#f3e6d2}
.modal{position:fixed; inset:0; background:rgba(0,0,0,.74); display:flex; align-items:flex-start; justify-content:center; padding:42px 16px; z-index:60; overflow:auto}
.modal[hidden]{display:none}
.modal-box{position:relative; width:100%; max-width:780px; margin:auto; background:var(--paper2); border:1px solid var(--line); border-radius:12px; box-shadow:0 24px 80px rgba(0,0,0,.7)}
.modal-box .card{margin:0; box-shadow:none; border:none; background:transparent}
.modal-x{position:absolute; top:6px; right:12px; background:none; border:none; font-size:28px; line-height:1; color:var(--muted); cursor:pointer; z-index:2; padding:4px 8px}
.modal-x:hover{color:var(--accent2)}

/* verified owner marker photos + click-to-expand lightbox */
.markers-sec h3 .vmark{font-size:11px; background:#152619; color:#8fd09b; border:1px solid #3d6647; padding:2px 9px; border-radius:999px; margin-left:8px; vertical-align:middle; letter-spacing:.04em}
.marker-grid{display:flex; flex-wrap:wrap; gap:14px; margin-top:12px}
.marker-thumb{margin:0; width:172px}
.marker-thumb img{width:100%; height:132px; object-fit:cover; border:1px solid var(--line); border-radius:6px; background:#2a231e; cursor:zoom-in; transition:border-color .15s,transform .15s}
.marker-thumb img:hover{border-color:var(--accent); transform:scale(1.015)}
.marker-thumb figcaption{font-size:11.5px; color:var(--muted); margin-top:6px; line-height:1.35}
figure.cover img{cursor:zoom-in}
.lightbox{position:fixed; inset:0; background:rgba(0,0,0,.9); display:flex; align-items:center; justify-content:center; z-index:80; padding:30px; cursor:zoom-out}
.lightbox[hidden]{display:none}
.lightbox img{max-width:100%; max-height:100%; object-fit:contain; border-radius:4px; box-shadow:0 10px 50px rgba(0,0,0,.7)}
.lightbox-x{position:fixed; top:14px; right:20px; background:none; border:none; color:#ddd; font-size:38px; line-height:1; cursor:pointer; z-index:81}
.lightbox-x:hover{color:var(--accent2)}

/* where-to-buy: index column + book-page marker-checked listings */
.col-buy{text-align:center; white-space:nowrap; width:104px}
th.col-buy{text-align:center}
.buy-none{color:var(--line)}
.buy-pill{display:inline-block; font-size:11.5px; font-weight:600; padding:3px 8px; border-radius:999px; text-decoration:none; border:1px solid transparent; white-space:nowrap}
.bp-confirmed{background:#13241a; color:#86d29a; border-color:#356b48}
.bp-likely{background:#0f1f2b; color:#7fb4d6; border-color:#2d5871}
.bp-cover{background:#241f12; color:#ccad63; border-color:#5e4f2b}
.buy-pill:hover{filter:brightness(1.18)}
.buy-sec .buy-tag{font-size:11px; background:#13241a; color:#86d29a; border:1px solid #356b48; padding:2px 9px; border-radius:999px; margin-left:8px; vertical-align:middle; letter-spacing:.04em}
.buy-row{display:grid; grid-template-columns:150px 66px 175px 1fr; align-items:center; gap:10px; padding:9px 12px; margin-top:8px; border:1px solid var(--line); border-radius:7px; background:var(--paper2); text-decoration:none; color:var(--ink); transition:border-color .15s,background .15s}
.buy-row:hover{border-color:var(--accent); background:#221b16}
.buy-v{font-size:11px; font-weight:700; padding:3px 8px; border-radius:5px; text-align:center; white-space:nowrap}
.v-confirmed{background:#13241a; color:#86d29a; border:1px solid #356b48}
.v-likely{background:#0f1f2b; color:#7fb4d6; border:1px solid #2d5871}
.v-cover{background:#241f12; color:#ccad63; border:1px solid #5e4f2b}
.v-uncertain{background:#22201d; color:#9a8d79; border:1px solid var(--line)}
.v-wrong{background:#241313; color:#d08a8a; border:1px solid #6b3535}
.buy-price{font-weight:700; color:var(--gold)}
.buy-seller{color:var(--ink); font-size:13px}
.buy-detail{color:var(--muted); font-size:11.5px; line-height:1.35}
.buy-rec{display:inline-block; font-size:10px; font-weight:700; padding:1px 7px; border-radius:999px; margin-right:3px; letter-spacing:.02em; vertical-align:baseline}
/* 4-tier buy rating, a clear hot->cold gradient: green = Strong buy, teal = Fair (a square deal),
   amber = Negotiate (haggle toward fair), red = Pass (don't, at this price/condition). */
.br-strong{background:#13301c; color:#74e3a0; border:1px solid #2f7d4a}
.br-fair{background:#14222b; color:#7fc6d9; border:1px solid #2f5d6b}
.br-negotiate{background:#2a2410; color:#e3c46f; border:1px solid #6b5a2f}
.br-pass{background:#2c1416; color:#e08a8a; border:1px solid #7d3030}
.br-bench{background:#241327; color:#d29ae0; border:1px solid #6b3580}
.buy-cond{color:var(--ink); font-weight:600}
.buy-hidden{color:var(--muted); font-size:12px; font-style:italic; margin-top:10px}
@media (max-width:680px){.buy-row{grid-template-columns:1fr; gap:4px} .col-buy{width:auto}}

/* where-to-buy: per-listing card with confirmed / not-pictured marker bullets */
.buy-card{border:1px solid var(--line); border-left-width:3px; border-radius:8px; background:var(--paper2); padding:12px 14px; margin-top:10px}
.buy-card::after{content:''; display:block; clear:both}
.buy-body{min-width:0}
.buy-thumb-link{float:right; display:block; line-height:0; margin:2px 0 8px 14px}
.buy-thumb{width:128px; height:168px; object-fit:cover; border-radius:7px; border:1px solid var(--line); background:#0c0c0c; display:block; transition:border-color .15s}
.buy-thumb-link:hover .buy-thumb{border-color:var(--gold)}
@media (max-width:560px){.buy-thumb{width:88px; height:118px}}
.buy-edge-v-confirmed{border-left-color:#356b48}
.buy-edge-v-likely{border-left-color:#2d5871}
.buy-edge-v-cover{border-left-color:#5e4f2b}
.buy-edge-v-uncertain{border-left-color:var(--line)}
.buy-card .buy-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.buy-card .buy-price{font-weight:700; color:var(--gold); font-size:15px}
.buy-seller-link{color:var(--ink); font-size:13.5px; font-weight:600; text-decoration:none; margin-left:auto}
.buy-seller-link:hover{color:var(--accent2); text-decoration:underline}
.buy-chips{display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:8px}
.buy-oneline{font-size:13.5px; color:var(--ink); line-height:1.5; margin:9px 0 2px}
.buy-mk{margin-top:9px}
.buy-mk-h{display:block; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:3px}
.buy-mk.confirmed .buy-mk-h{color:#86d29a}
.buy-mk.missing .buy-mk-h{color:#e3c46f}
.buy-mk.allclear{font-size:12.5px; color:#86d29a; margin:9px 0 2px}
.buy-mk ul{margin:0; padding-left:18px}
.buy-mk li{font-size:13px; line-height:1.5; margin:3px 0; color:var(--ink)}
.buy-mk.missing li{color:var(--muted)}
.buy-mk li b{font-weight:600}
.buy-mk.confirmed li b{color:#a9dbb4}
.buy-mk.missing li b{color:#cdb682}
@media (max-width:560px){.buy-seller-link{margin-left:0; width:100%; order:3}}

/* what it's about — spoiler-free synopsis + significance */
.synopsis-sec .synopsis{font-size:15px; line-height:1.62; color:var(--ink); margin:0}
.synopsis-sec .significance{font-size:13px; color:var(--muted); margin-top:10px; line-height:1.5}
.synopsis-sec .sig-label{color:var(--gold); font-weight:700; letter-spacing:.05em; text-transform:uppercase; font-size:10.5px; margin-right:7px; border:1px solid var(--line); padding:1px 6px; border-radius:4px}

/* 11 Scribes brand */
.brand{display:flex; align-items:baseline; gap:6px 16px; flex-wrap:wrap; margin-bottom:20px; padding-bottom:15px; border-bottom:1px solid var(--line)}
.wordmark{display:inline-block; font-family:Georgia,'Times New Roman',serif; font-size:27px; font-weight:700; letter-spacing:.005em; color:var(--ink)}
.wordmark::first-letter{color:var(--accent)}
.brand-tag{font-size:12.5px; color:var(--muted); letter-spacing:.01em}
.brand-code{color:var(--gold); font-weight:600; white-space:nowrap; margin-left:5px; border:1px solid var(--line); padding:1px 8px; border-radius:4px; font-size:.92em}
.brand-code sup{font-size:.6em; vertical-align:.32em}
.brand-mini{font-family:Georgia,serif; font-weight:700; color:var(--accent2); text-decoration:none; letter-spacing:.01em}
.brand-mini:hover{color:var(--accent)}

/* ---- loupe card: how to spot a true first (the 30-second check) ---- */
.loupe-sec .loupe-tag{font-size:11px; background:#241c10; color:var(--gold); border:1px solid #5e4a22; padding:2px 9px; border-radius:999px; margin-left:8px; vertical-align:middle; letter-spacing:.04em}
.tell{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; background:linear-gradient(180deg,#241c10,#1d1814); border:1px solid var(--gold); border-radius:9px; padding:12px 15px; margin:10px 0 14px; box-shadow:var(--shadow)}
.tell-star{color:var(--gold); font-size:18px; line-height:1}
.tell-lbl{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700; align-self:center}
.tell-txt{flex:1 1 280px; font-size:15px; color:var(--ink); line-height:1.45; font-weight:600}
.marker-strip{display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:8px}
.mcell{background:var(--paper2); border:1px solid var(--line); border-radius:7px; padding:9px 11px; display:flex; flex-direction:column; gap:4px}
.mcell-star{border-color:var(--gold); background:#221c12}
.mcell-na{opacity:.5}
.mk-label{font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:700}
.mcell-star .mk-label{color:var(--gold)}
.mk-key{color:var(--gold); letter-spacing:.03em; white-space:nowrap}
.mk-val{font-size:13px; color:var(--ink); line-height:1.4}
.mcell-na .mk-val{color:var(--muted)}
.mk-na{font-size:10.5px; color:var(--muted); font-style:italic}
/* dual decisive tell: a BOOK tell + a JACKET tell, both required (married-copy guard) */
.tell-dual{flex-direction:column; align-items:stretch; gap:9px}
.tell-row{display:flex; align-items:baseline; gap:9px; flex-wrap:wrap}
.tell-tag{font-size:10px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; border-radius:6px; padding:3px 8px; white-space:nowrap; align-self:flex-start}
.tt-book{color:var(--gold); border:1px solid #5e4a22; background:#241c10}
.tt-dj{color:#d6c08e; border:1px solid #4d4232; background:#211c14}
.tell-row .tell-txt{flex:1 1 240px; font-weight:600}
.tell-rule{margin:3px 0 0; font-size:12.5px; color:var(--muted); line-height:1.45; border-top:1px solid var(--line); padding-top:9px}
.tell-rule b{color:#e6c98a} .tell-rule em{color:var(--ink); font-style:normal; font-weight:700}
.tell-warn{margin:8px 0 0; font-size:12.5px; line-height:1.5; color:#e7b486; background:#1c1109; border:1px solid #6e3f1c; border-left:3px solid #c2702e; border-radius:6px; padding:8px 11px}
.tell-warn b{color:#f0b27a}
.mcell-star-dj{border-color:#6a5a3a; background:#1f1b13}
.mcell-star-dj .mk-label{color:#d6c08e}
.mk-key-dj{color:#d6c08e}
.note.disclaimer{border:1px solid var(--line); border-left:3px solid #8a6d2e; background:#15110a; border-radius:6px; padding:9px 12px; margin:6px 0 10px; color:var(--muted); font-size:12.5px; line-height:1.5}
.note.disclaimer strong{color:#e0c489}

/* ---- highlights (condensed per-marker notes) ---- */
.hl-list{margin:6px 0 0; padding-left:18px}
.hl-list li{font-size:14px; line-height:1.5; margin:5px 0; color:var(--ink)}

/* ---- compact value chip ----
   border-radius is a FIXED 12px, never 999px: the value string wraps to several lines on a
   phone, and a 999px "pill" radius on a tall box renders as a giant ellipse (the recurring
   "oval" bug — same failure mode documented on .notebox above). flex-wrap lets it grow as a
   tidy rounded rectangle instead. */
.value-chip{display:inline-flex; flex-wrap:wrap; align-items:baseline; gap:9px; background:var(--paper2); border:1px solid var(--line); border-radius:12px; padding:8px 15px; margin:6px 0 2px; font-size:14px}
.value-chip .vc-k{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted)}
.value-chip b{font-size:16px; color:var(--accent2)}
.vc-basis{font-size:11px; color:var(--muted)}
.note.mini{font-size:12.5px; margin:4px 0 8px}

/* ---- full-detail expander (the old, complete page lives here) ---- */
details.fulldetail{margin:22px 0 8px; border:1px solid var(--line); border-radius:9px; background:var(--paper2); overflow:hidden}
details.fulldetail>summary{cursor:pointer; list-style:none; padding:13px 16px; user-select:none}
details.fulldetail>summary::-webkit-details-marker{display:none}
details.fulldetail>summary>span:first-child{font-size:15px; font-weight:700; color:var(--accent); display:block}
details.fulldetail>summary>span:first-child::before{content:"\25B8"; margin-right:8px; font-size:12px}
details.fulldetail[open]>summary>span:first-child::before{content:"\25BE"}
details.fulldetail[open]>summary{border-bottom:1px solid var(--line)}
.fd-hint{display:block; font-size:11.5px; color:var(--muted); margin-top:3px; letter-spacing:.02em}
.fulldetail-body{padding:2px 16px 14px}

@media (max-width:560px){
  .tell-txt{font-size:14px}
  .marker-strip{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
}

/* ============ LANDING / STOREFRONT (index.html) ============ */
.lp-hero{position:relative; text-align:center; padding:74px 0 38px; overflow:hidden}
.lp-hero::after{content:""; position:absolute; left:50%; bottom:-26px; transform:translateX(-50%);
  width:560px; max-width:90vw; height:120px;
  background:radial-gradient(ellipse at center, rgba(217,154,62,.20) 0%, rgba(217,154,62,0) 70%); filter:blur(4px); pointer-events:none}
.lp-eyebrow{letter-spacing:.34em; text-transform:uppercase; font-size:11px; color:var(--honey);
  font-family:ui-sans-serif,system-ui,sans-serif; margin:0 0 18px; opacity:.92}
.lp-wordmark{font-size:60px; line-height:1; font-weight:600; color:var(--parchment); margin:0 0 14px;
  letter-spacing:.5px; text-shadow:0 1px 0 rgba(0,0,0,.5), 0 0 38px rgba(217,154,62,.16)}
.lp-code{display:inline-block; font-family:ui-sans-serif,system-ui,sans-serif; font-size:12px; letter-spacing:.1em;
  color:var(--gold); border:1px solid var(--honey-deep); border-radius:999px; padding:5px 13px; margin:0 0 22px}
.lp-code sup{font-size:.7em}
.lp-tag{font-size:19px; color:var(--ink); margin:0 auto 10px; max-width:640px; line-height:1.5}
.lp-mood{font-size:15px; color:var(--taupe); margin:0 auto; max-width:560px; font-style:italic; line-height:1.6}
.lp-mood b{color:var(--honey); font-style:normal; font-weight:600}
.lp-shelf-h{text-align:center; margin:50px 0 4px; font-family:ui-sans-serif,system-ui,sans-serif;
  letter-spacing:.28em; text-transform:uppercase; font-size:11.5px; color:var(--muted)}
.lp-collection{position:relative; margin:18px 0 0; border:1px solid var(--line); border-radius:14px;
  background:linear-gradient(180deg,#1d1812,#171209); box-shadow:0 18px 50px rgba(0,0,0,.5); padding:26px 26px 22px; overflow:hidden}
.lp-collection::before{content:""; position:absolute; inset:0 0 auto 0; height:2px;
  background:linear-gradient(90deg,transparent, rgba(217,154,62,.55), transparent)}
.lp-col-name{font-size:26px; color:var(--parchment); margin:0 0 4px; line-height:1.15}
.lp-col-name .by{color:var(--muted); font-size:.62em; font-weight:400}
.lp-col-meta{font-family:ui-sans-serif,system-ui,sans-serif; font-size:13px; color:var(--gold); margin:0 0 18px}
.lp-col-meta .dot{color:var(--line); margin:0 8px}
.lp-covers{display:flex; gap:12px; align-items:flex-end; overflow:hidden; margin:0 0 20px}
.lp-covers img{height:150px; width:auto; border-radius:4px; border:1px solid #000; box-shadow:0 6px 16px rgba(0,0,0,.55); background:#0c0c0c}
.lp-enter{display:inline-flex; align-items:center; gap:8px; font-family:ui-sans-serif,system-ui,sans-serif;
  font-size:14px; font-weight:600; color:#1a140c; background:var(--honey); border-radius:8px; padding:11px 20px; text-decoration:none}
.lp-enter:hover{background:var(--gold); text-decoration:none}
.lp-ghosts{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:14px 0 0}
.lp-ghost{border:1px dashed var(--line); border-radius:12px; padding:18px; background:rgba(255,255,255,.012); opacity:.72}
.lp-ghost .g-sub{font-family:ui-sans-serif,system-ui,sans-serif; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--honey-deep); margin:0 0 4px}
.lp-ghost .g-name{font-size:16px; color:var(--taupe); margin:0}
.lp-trust{text-align:center; margin:48px auto 8px; max-width:680px; color:var(--muted); font-size:14.5px; line-height:1.65}
.lp-trust b{color:var(--ink)}
.lp-foot{margin:44px 0 40px; padding-top:18px; border-top:1px solid var(--line);
  font-family:ui-sans-serif,system-ui,sans-serif; font-size:12.5px; color:var(--muted); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px}
.lp-foot b{color:var(--gold)}
@media (max-width:560px){
  .lp-hero{padding:50px 0 28px}
  .lp-eyebrow{letter-spacing:.18em; font-size:10px}
  .lp-wordmark{font-size:42px}
  .lp-tag{font-size:17px}
  .lp-col-name{font-size:23px}
  .lp-col-meta .dot{margin:0 5px}
  .lp-ghosts{grid-template-columns:1fr}
  .lp-covers img{height:112px}
}

/* ============ THE VERIFICATION LEDGER (book page, photo-gated format) ============ */
.ledger-sec .loupe-tag{background:rgba(217,154,62,.14); color:var(--honey); border:1px solid var(--honey-deep)}
.ledger-legend{font-size:11.5px; color:var(--muted); margin:.3em 0 1.1em; display:flex; flex-wrap:wrap; gap:5px 8px; align-items:center; line-height:1.9}
.ledger-group{margin:0 0 16px}
.lg-h{font-family:ui-sans-serif,system-ui,sans-serif; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; margin:0 0 9px; padding-bottom:5px; border-bottom:1px solid var(--line)}
.lg-first{color:var(--good)}
.lg-dq{color:var(--honey)}
.lg-trap{color:var(--muted)}
.ledger-list{list-style:none; margin:0; padding:0}
.ledger-list li{margin:0 0 9px; line-height:1.55; font-size:14.5px; color:var(--ink)}
.ledger-list b{color:var(--parchment); font-weight:600}
.prov{display:inline-block; font-family:ui-sans-serif,system-ui,sans-serif; font-size:9.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:2px 7px; border-radius:5px; vertical-align:1px; white-space:nowrap}
.pv-verified{background:rgba(121,177,132,.16); color:#8fce9a; border:1px solid #3f6a46}
.pv-asserted{background:rgba(217,154,62,.14); color:var(--honey); border:1px solid var(--honey-deep)}
.pv-unverified{background:rgba(160,150,130,.12); color:var(--muted); border:1px solid var(--line)}
.pv-shared{background:transparent; color:var(--muted); border:1px dashed var(--line)}
.lg-side{font-family:ui-sans-serif,system-ui,sans-serif; font-size:9.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); border:1px solid var(--line); border-radius:4px; padding:1px 5px; vertical-align:1px}
.lg-side-dj{color:var(--gold)}
.ledger-unresolved{font-size:13px; color:var(--ink); background:var(--warn-bg); border:1px solid var(--warn-line); border-radius:8px; padding:10px 12px; margin:8px 0 0}
.ledger-unresolved b{color:var(--honey)}
