/* 20 Oct (Elo): the library signs, by the designer (08 Reviews/2026-10-20 Library sign pocket museum). :root.night is set by read.html whenever the app is in its dark room */
/* LOOD library signs v2: Lapidary, Posy card, Penny post, Banderole (mockups, 20 Oct 2026). Generated from source/build2.mjs.
   Replaces riso/brass/enamel: SIGNS = [["lapidary","Lapidary"],["posy","Posy card"],["penny","Penny post"],["banderole","Banderole"]]. No new markup needed. */

/* header wash (dark is the default room; light overrides) */
#pgShelf .shelfhead{position:relative;isolation:isolate}
#pgShelf .shelfhead::before{content:"";position:absolute;left:-50vw;right:-50vw;top:-80px;bottom:-14px;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#17204A 0%,#1A2452 55%,rgba(11,31,51,0) 100%)}
:root:not(.night) #pgShelf .shelfhead::before{background:linear-gradient(180deg,#E3DDF3 0%,#E8E4F6 55%,rgba(238,244,250,0) 100%)}

/* shared sort button */
.libsign[data-sign="lapidary"] .ls-sort,.libsign[data-sign="posy"] .ls-sort,.libsign[data-sign="penny"] .ls-sort,.libsign[data-sign="banderole"] .ls-sort{min-height:34px}
.libsign[data-sign="lapidary"] .ls-pill,.libsign[data-sign="posy"] .ls-pill,.libsign[data-sign="penny"] .ls-pill,.libsign[data-sign="banderole"] .ls-pill{min-height:34px;padding:0 14px;gap:7px;font:700 13.5px/1 var(--f-ui);box-shadow:inset 0 0 0 1px rgba(27,31,69,.16),0 2px 0 rgba(27,42,85,.28)}
.libsign[data-sign="lapidary"] .ls-pill i,.libsign[data-sign="posy"] .ls-pill i,.libsign[data-sign="penny"] .ls-pill i,.libsign[data-sign="banderole"] .ls-pill i{font-style:normal;font-size:11px}
.libsign[data-sign="lapidary"] .ls-sort select,.libsign[data-sign="posy"] .ls-sort select,.libsign[data-sign="penny"] .ls-sort select,.libsign[data-sign="banderole"] .ls-sort select{inset:auto;left:-3px;top:-5px;width:calc(100% + 6px);height:calc(100% + 10px);-webkit-appearance:none;appearance:none}
.libsign[data-sign="lapidary"] .ls-name small,.libsign[data-sign="posy"] .ls-name small,.libsign[data-sign="penny"] .ls-name small,.libsign[data-sign="banderole"] .ls-name small{display:none}

/* Lapidary */
.libsign[data-sign="lapidary"]{position:relative;isolation:isolate;gap:7px;padding:15px 17px 13px;border-radius:2px;background:radial-gradient(130% 100% at 28% 18%,#F3F0F9,#E2DCEE 62%,#D5CEE5);box-shadow:inset 1px 1px 0 #FBFAFE,inset -1px -1px 0 #A9A1C0,0 2px 5px -1px rgba(27,42,85,.32)}
.libsign[data-sign="lapidary"]::before{content:"";position:absolute;inset:4px;z-index:-1;pointer-events:none;background:url("signs/b1c88726ce6b.svg") 0 0/8px 8px no-repeat,url("signs/b1c88726ce6b.svg") 100% 0/8px 8px no-repeat,url("signs/b1c88726ce6b.svg") 0 100%/8px 8px no-repeat,url("signs/b1c88726ce6b.svg") 100% 100%/8px 8px no-repeat,url("signs/3518bbceb1a7.svg") 8px 1px/12px 6px repeat no-repeat,url("signs/3518bbceb1a7.svg") 8px calc(100% - 1px)/12px 6px repeat no-repeat,url("signs/8a62a3e5d4eb.svg") 1px 8px/6px 12px no-repeat repeat,url("signs/8a62a3e5d4eb.svg") calc(100% - 1px) 8px/6px 12px no-repeat repeat}
.libsign[data-sign="lapidary"]::after{content:"";position:absolute;inset:12px;z-index:-1;pointer-events:none;box-shadow:inset 1px 1px 1.5px rgba(60,50,90,.26),inset -1px -1px 0 rgba(255,255,255,.85)}
.libsign[data-sign="lapidary"] .ls-name b{font-family:Spectral,Georgia,serif;font-weight:600;font-style:normal;text-transform:uppercase;letter-spacing:.11em;padding-left:.11em;color:#363B62;text-shadow:0 1px 0 rgba(255,255,255,.9),0 -.6px 0 rgba(50,40,80,.3)}
.libsign[data-sign="lapidary"] .ls-name b.two{text-transform:none;letter-spacing:.02em}
.libsign[data-sign="lapidary"] .ls-pill{background:#C9BEF0;color:#1B1F45}
:root.night .libsign[data-sign="lapidary"]{background:radial-gradient(130% 100% at 28% 18%,#4C5482,#3A416B 62%,#30365C);box-shadow:inset 1px 1px 0 #6A719C,inset -1px -1px 0 #161A33,0 2px 6px -1px rgba(0,0,0,.55)}
:root.night .libsign[data-sign="lapidary"]::before{background:url("signs/4d6ba5f038a0.svg") 0 0/8px 8px no-repeat,url("signs/4d6ba5f038a0.svg") 100% 0/8px 8px no-repeat,url("signs/4d6ba5f038a0.svg") 0 100%/8px 8px no-repeat,url("signs/4d6ba5f038a0.svg") 100% 100%/8px 8px no-repeat,url("signs/010d2615a6bc.svg") 8px 1px/12px 6px repeat no-repeat,url("signs/010d2615a6bc.svg") 8px calc(100% - 1px)/12px 6px repeat no-repeat,url("signs/ffbc336b9ded.svg") 1px 8px/6px 12px no-repeat repeat,url("signs/ffbc336b9ded.svg") calc(100% - 1px) 8px/6px 12px no-repeat repeat}
:root.night .libsign[data-sign="lapidary"]::after{box-shadow:inset 1px 1px 1.5px rgba(0,0,0,.4),inset -1px -1px 0 rgba(255,255,255,.08)}
:root.night .libsign[data-sign="lapidary"] .ls-name b{color:#EEEAF8;text-shadow:0 -1px 0 rgba(0,0,0,.6),0 1px 0 rgba(255,255,255,.08)}
:root.night .libsign[data-sign="lapidary"] .ls-pill{box-shadow:inset 0 0 0 1px rgba(27,31,69,.2),0 2px 0 rgba(0,0,0,.4)}

/* Posy card */
.libsign[data-sign="posy"]{position:relative;isolation:isolate;gap:5px;padding:18px 9px 7px;border-radius:8px;background:#CDD2EE url("signs/31114c22966b.svg") 0 0/12px 12px;border:2px solid #F7F4FC;box-shadow:0 0 0 1px #949CC8,0 2px 5px -1px rgba(27,42,85,.3)}
.libsign[data-sign="posy"]::before{content:"";position:absolute;inset:0 -11px;pointer-events:none;background:url("signs/94aee94c8fff.svg") 0 50%/9px 9px no-repeat,url("signs/94aee94c8fff.svg") 100% 50%/9px 9px no-repeat}
.libsign[data-sign="posy"]::after{content:"";position:absolute;left:50%;margin-left:-55px;top:-8px;width:106px;height:34.7px;z-index:2;pointer-events:none;background:url("signs/3071100d5e8b.svg") 0 0/106px 34.7px no-repeat}
.libsign[data-sign="posy"] .ls-name{background:#FAF3F1;padding:6px 11px 4px;border-radius:2px;transform:rotate(-1deg);box-shadow:1.5px 2px 0 rgba(27,42,85,.2),inset 0 0 0 1px rgba(27,42,85,.1)}
.libsign[data-sign="posy"] .ls-name b{font-family:Vollkorn,Georgia,serif;font-weight:600;font-style:normal;color:#1B2A55}
.libsign[data-sign="posy"] .ls-pill{background:#B9ACEC;color:#1B1F45}
:root.night .libsign[data-sign="posy"]{background:#2E3762 url("signs/5d5c6beef6eb.svg") 0 0/12px 12px;border-color:#B9C0E2;box-shadow:0 0 0 1px #0B1324,0 2px 6px -1px rgba(0,0,0,.55)}
:root.night .libsign[data-sign="posy"]::before{background:url("signs/a36eb8e478ce.svg") 0 50%/9px 9px no-repeat,url("signs/a36eb8e478ce.svg") 100% 50%/9px 9px no-repeat}
:root.night .libsign[data-sign="posy"]::after{background-image:url("signs/1e6f16c82d68.svg")}
:root.night .libsign[data-sign="posy"] .ls-name{background:#EDE4E6}
:root.night .libsign[data-sign="posy"] .ls-pill{background:#C9BEF0;box-shadow:inset 0 0 0 1px rgba(27,31,69,.2),0 2px 0 rgba(0,0,0,.4)}

/* Penny post */
.libsign[data-sign="penny"]{position:relative;isolation:isolate;gap:5px;padding:11px 12px 10px;transform:rotate(1.2deg);filter:drop-shadow(0 1.2px 1.2px rgba(27,42,85,.32))}
.libsign[data-sign="penny"]::before{content:"";position:absolute;inset:-4px;z-index:-2;padding:8px;clip-path:inset(4px);background:#F7E4EA;--pf:radial-gradient(circle at center,transparent 2.5px,#000 2.9px);-webkit-mask:linear-gradient(#000 0 0) content-box,var(--pf) 0 0/8px 8px round no-repeat padding-box,var(--pf) 0 100%/8px 8px round no-repeat padding-box,var(--pf) 0 0/8px 8px no-repeat round padding-box,var(--pf) 100% 0/8px 8px no-repeat round padding-box;mask:linear-gradient(#000 0 0) content-box,var(--pf) 0 0/8px 8px round no-repeat padding-box,var(--pf) 0 100%/8px 8px round no-repeat padding-box,var(--pf) 0 0/8px 8px no-repeat round padding-box,var(--pf) 100% 0/8px 8px no-repeat round padding-box}
.libsign[data-sign="penny"]::after{content:"";position:absolute;inset:6px;z-index:-1;pointer-events:none;border:1.5px solid #A23257;box-shadow:inset 0 0 0 1.6px #F7E4EA,inset 0 0 0 2.2px #A23257;background:url("signs/02b1a025de3a.svg") 3px calc(100% - 2px)/24px 24px no-repeat,url("signs/1d95fe9614c3.svg") calc(100% - 3px) calc(100% - 2px)/24px 24px no-repeat,url("signs/9100f94edeab.svg") 0 0/4px 1.6px}
.libsign[data-sign="penny"] .ls-name{position:relative;background:#FCF3F5;padding:5px 10px;box-shadow:0 0 0 1px #A23257}
.libsign[data-sign="penny"] .ls-name b{font-family:Spectral,Georgia,serif;font-weight:600;font-style:normal;text-transform:uppercase;letter-spacing:.09em;padding-left:.09em;color:#7E1E40}
.libsign[data-sign="penny"] .ls-name b.two{text-transform:none;letter-spacing:.02em}
.libsign[data-sign="penny"] .ls-pill{background:#F0B9C9;color:#5E1230;box-shadow:inset 0 0 0 1px rgba(126,30,64,.3),0 2px 0 rgba(126,30,64,.3)}
:root.night .libsign[data-sign="penny"]{filter:drop-shadow(0 1.5px 2px rgba(0,0,0,.55))}
:root.night .libsign[data-sign="penny"]::before{background:#E9D3DC}
:root.night .libsign[data-sign="penny"]::after{box-shadow:inset 0 0 0 1.6px #E9D3DC,inset 0 0 0 2.2px #A23257}

/* Banderole */
.libsign[data-sign="banderole"]{position:relative;isolation:isolate;gap:10px;padding:4px 16px}
.libsign[data-sign="banderole"]::before{content:"";position:absolute;left:-30px;right:-8px;top:6px;height:36px;z-index:-2;pointer-events:none;background:url("signs/6b4190c360dc.svg") 0 50%/24px 18px repeat-x,url("signs/6b4190c360dc.svg") 12px 50%/24px 18px repeat-x;-webkit-mask:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent);mask:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent)}
.libsign[data-sign="banderole"] .ls-name{position:relative;padding:8px 6px 7px;background:repeating-linear-gradient(180deg,rgba(27,42,85,.26) 0 .5px,transparent .5px 1.5px) 0 3px/100% 4px no-repeat,repeating-linear-gradient(180deg,rgba(27,42,85,.26) 0 .5px,transparent .5px 1.5px) 0 calc(100% - 3px)/100% 4px no-repeat,#DDE0F4;box-shadow:inset 0 1.2px 0 #1B2A55,inset 0 -1.2px 0 #1B2A55}
.libsign[data-sign="banderole"] .ls-name::before,.libsign[data-sign="banderole"] .ls-name::after{content:"";position:absolute;top:7px;bottom:-7px;width:24px;z-index:-1;background:url("signs/f649b30787d8.svg") 0 0/100% 100% no-repeat}
.libsign[data-sign="banderole"] .ls-name::before{left:-16px}
.libsign[data-sign="banderole"] .ls-name::after{right:-16px;background-image:url('data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='30' viewBox='0 0 24 30' preserveAspectRatio='none'%3E%3Cdefs%3E%3CclipPath id='c'%3E%3Cpath d='M0 .6H23L15.5 15L23 29.4H0Z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cpath d='M0 .6H23L15.5 15L23 29.4H0Z' fill='%23CBD0EC'/%3E%3Cg clip-path='url%28%23c%29'%3E%3Cpath d='M15.0 0.6V29.4' stroke='%231B2A55' stroke-width='0.3'/%3E%3Cpath d='M12.9 0.6V29.4' stroke='%231B2A55' stroke-width='0.3'/%3E%3Cpath d='M10.8 0.6V29.4' stroke='%231B2A55' stroke-width='0.4'/%3E%3Cpath d='M8.7 0.6V29.4' stroke='%231B2A55' stroke-width='0.5'/%3E%3Cpath d='M6.6 0.6V29.4' stroke='%231B2A55' stroke-width='0.6'/%3E%3Cpath d='M4.5 0.6V29.4' stroke='%231B2A55' stroke-width='0.7'/%3E%3Cpath d='M2.4 0.6V29.4' stroke='%231B2A55' stroke-width='0.8'/%3E%3C/g%3E%3Cpath d='M24 .6H1L8.5 15L1 29.4H24' fill='none' stroke='%231B2A55' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E')}
.libsign[data-sign="banderole"] .ls-name b{font-family:Spectral,Georgia,serif;font-weight:600;font-style:normal;text-transform:uppercase;letter-spacing:.1em;padding-left:.1em;color:#1B2A55}
.libsign[data-sign="banderole"] .ls-name b.two{text-transform:none;letter-spacing:.02em}
.libsign[data-sign="banderole"] .ls-pill{background:#C3CBF3;color:#1B1F45;box-shadow:0 0 0 1.5px #E8E4F6,0 0 0 2.3px #1B2A55}
:root.night .libsign[data-sign="banderole"]::before{background-image:url("signs/a8e6ded72e73.svg"),url("signs/a8e6ded72e73.svg");opacity:.7}
:root.night .libsign[data-sign="banderole"] .ls-name{background-color:#CDD1EE}
:root.night .libsign[data-sign="banderole"] .ls-name::before{background-image:url("signs/1f37e649b522.svg")}:root.night .libsign[data-sign="banderole"] .ls-name::after{background-image:url('data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='30' viewBox='0 0 24 30' preserveAspectRatio='none'%3E%3Cdefs%3E%3CclipPath id='c'%3E%3Cpath d='M0 .6H23L15.5 15L23 29.4H0Z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cpath d='M0 .6H23L15.5 15L23 29.4H0Z' fill='%23B9BFE4'/%3E%3Cg clip-path='url%28%23c%29'%3E%3Cpath d='M15.0 0.6V29.4' stroke='%231B2A55' stroke-width='0.3'/%3E%3Cpath d='M12.9 0.6V29.4' stroke='%231B2A55' stroke-width='0.3'/%3E%3Cpath d='M10.8 0.6V29.4' stroke='%231B2A55' stroke-width='0.4'/%3E%3Cpath d='M8.7 0.6V29.4' stroke='%231B2A55' stroke-width='0.5'/%3E%3Cpath d='M6.6 0.6V29.4' stroke='%231B2A55' stroke-width='0.6'/%3E%3Cpath d='M4.5 0.6V29.4' stroke='%231B2A55' stroke-width='0.7'/%3E%3Cpath d='M2.4 0.6V29.4' stroke='%231B2A55' stroke-width='0.8'/%3E%3C/g%3E%3Cpath d='M24 .6H1L8.5 15L1 29.4H24' fill='none' stroke='%231B2A55' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E')}
:root.night .libsign[data-sign="banderole"] .ls-pill{background:#C3CBF3;box-shadow:0 0 0 1.5px #1A2452,0 0 0 2.3px #C3CBF3}

/* 20 Oct (Ed): the right-hand tail of the Banderole was tucked behind the ribbon by a general rule; it shows now, a mirror of the left */
.libsign[data-sign="banderole"] .ls-name::after{right:-16px!important;left:auto!important;top:7px!important;bottom:-7px!important;height:auto!important;width:24px!important}

/* 20 Oct (Ed): the right tail is the left tail, mirrored as a whole piece */
.libsign[data-sign="banderole"] .ls-name::after{background-image:url("signs/f649b30787d8.svg")!important;transform:scaleX(-1)}
:root.night .libsign[data-sign="banderole"] .ls-name::after{background-image:url("signs/1f37e649b522.svg")!important;transform:scaleX(-1)}
