/* ===== v3 字體：標題 源泉圓體 TW Bold（自架子集）＋ Nunito；內文 Noto Sans TC；小標籤 Courier Prime ===== */
@font-face{font-family:"GenSen Rounded TW";src:url("/webfonts/GenSenRounded2TW-B.subset.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{--paper:#F3ECDF;--paper2:#EAE1D1;--card:#FFFDF8;--ink:#1E1B18;--ink2:#5B544C;--line:#D8CDBB;--acc:#D64933;--acc2:#B23A27;--green:#1E1B18;--mono:"Courier Prime","Courier New",Courier,monospace;--serif:"Noto Serif TC","Source Han Serif TC","Songti TC","PMingLiU",Georgia,serif;--head:Georgia,"Noto Serif TC","Source Han Serif TC","Songti TC","PMingLiU",serif;--sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--sans)}
a{color:var(--acc2)}h1,h2,h3,h2.h3{font-family:var(--serif);line-height:1.35;margin:.2em 0 .5em}h1{font-size:clamp(26px,4vw,38px)}h2{font-size:24px}h3,h2.h3{font-size:18px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}.narrow{max-width:640px}.sec{padding:28px 20px}.mt{margin-top:28px}
.muted{color:var(--ink2)}.small{font-size:14px}.tiny{font-size:11px;opacity:.7}.lead{font-size:18px;color:var(--ink2)}
.kicker{font-size:13px;letter-spacing:.08em;color:var(--acc);font-weight:700}
.row{display:flex;align-items:center}.gap{gap:10px}.between{justify-content:space-between;gap:12px;flex-wrap:wrap}.wrapx{flex-wrap:wrap}.nowrap{white-space:nowrap}
button,.btn{font:inherit;border-radius:999px;padding:8px 18px;border:1px solid transparent;cursor:pointer;text-decoration:none;display:inline-block;line-height:1.4}
.primary{background:var(--acc);color:#fff}.primary:hover{background:var(--acc2)}.ghost{background:transparent;border-color:var(--line);color:var(--ink)}.ghost:hover{border-color:var(--ink2)}
.danger{background:#fff;border-color:#c9503a;color:#a33a26}button:disabled{opacity:.5;cursor:not-allowed}button.small{padding:4px 12px;font-size:14px}
.want.on{border-color:var(--green);color:var(--green)}
.buy{background:#fff;border:1px solid var(--ink);color:var(--ink);font-size:14px;padding:5px 14px}.buy:hover{background:var(--ink);color:#fff}
input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;color:var(--ink);width:100%}
label{display:block;font-size:14px;margin:8px 0 4px;color:var(--ink2)}label input,label select,label textarea{margin-top:4px}
.check{display:flex;gap:8px;align-items:flex-start;color:var(--ink)}.check input{width:auto;margin-top:5px}
.chip{display:inline-block;border:1px solid var(--acc);color:var(--acc2);border-radius:999px;padding:2px 12px;margin:0 6px 6px 0;font-size:14px;text-decoration:none;background:#fff8f2}.chip:hover{background:var(--acc);color:#fff}
.site-head{border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:5}
.head-in{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;gap:12px;flex-wrap:wrap}
.logo{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--ink);text-decoration:none}.logo small{display:block;font-family:var(--sans);font-size:12px;color:var(--ink2);font-weight:400}
.nav{display:flex;gap:16px;flex-wrap:wrap}.nav a{color:var(--ink);text-decoration:none;font-size:15px}.nav a:hover{color:var(--acc)}.nav-me{border:1px solid var(--ink);border-radius:999px;padding:0 12px}
.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center;padding-top:36px;padding-bottom:28px}
.hero-covers{display:flex;gap:12px;justify-content:center}.hero-covers .cover:nth-child(2){transform:translateY(18px)}
.sec-h{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);margin-bottom:16px}.sec-h a{font-size:14px}
.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.tcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;text-decoration:none;color:var(--ink);border-top:4px solid var(--acc)}.tcard:nth-child(2n){border-top-color:var(--green)}.tcard:nth-child(3n){border-top-color:#34446b}.tcard:hover{box-shadow:0 4px 14px rgba(0,0,0,.07)}
.lcard{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;text-decoration:none;color:var(--ink)}.lcard:hover{box-shadow:0 4px 14px rgba(0,0,0,.07)}.lcard h3,.lcard h2.h3{font-size:17px;margin:2px 0}
.lcard.archived{opacity:.75;background:var(--paper2)}.lcard-covers{display:flex;flex-shrink:0}.lcard-covers .cover{margin-right:-22px;box-shadow:2px 2px 6px rgba(0,0,0,.2)}.lcard-covers .cover:last-child{margin-right:0}.lcard-body{padding-left:24px}
.cover{width:120px;height:170px;border-radius:3px 6px 6px 3px;padding:12px 10px;display:flex;flex-direction:column;justify-content:space-between;font-family:var(--serif);box-shadow:3px 4px 10px rgba(0,0,0,.18);position:relative;overflow:hidden;flex-shrink:0}
.cover:before{content:"";position:absolute;left:5px;top:0;bottom:0;width:2px;background:rgba(255,255,255,.18)}
.cover-t{font-weight:700;font-size:16px;line-height:1.3;word-break:break-all}.cover-a{font-size:11px;opacity:.85;font-family:var(--sans)}
.cover.xxs{width:34px;height:48px;padding:3px}.cover.xxs span{font-size:6px}.cover.xs{width:56px;height:80px;padding:6px 5px}.cover.xs .cover-t{font-size:9px}.cover.xs .cover-a{display:none}
.cover.md{width:96px;height:136px}.cover.md .cover-t{font-size:13px}.cover.lg{width:150px;height:212px}.cover.lg .cover-t{font-size:19px}.cover.xl{width:200px;height:282px}.cover.xl .cover-t{font-size:24px}
.cover-ph{background:repeating-linear-gradient(45deg,#efe7da,#efe7da 8px,#f7f1e7 8px,#f7f1e7 16px);border:2px dashed #cbbda6;box-shadow:none;align-items:center;justify-content:center;color:#9b8a70;font-family:var(--sans);font-size:13px}.cover-ph:before{display:none}
.list-page{max-width:820px}.news-box{background:#fff;border-left:4px solid var(--acc);padding:12px 18px;border-radius:0 10px 10px 0;margin:12px 0 18px}.news-box p{margin:.3em 0}.src{margin:6px 0 0;padding-left:18px;font-size:14px}
.archived-banner{background:#ece6db;border:1px solid #d3c7b3;padding:10px 14px;border-radius:10px;font-size:14px;margin-bottom:14px}
.booklist{list-style:none;padding:0;margin:20px 0}.bitem{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}.bitem h3,.bitem h2.h3{margin:0}.bitem h3 a,.bitem h2.h3 a{color:var(--ink);text-decoration:none}
.num{font-family:var(--serif);font-size:13px;color:var(--acc);font-weight:700}.reason{font-size:17px;margin:6px 0 10px;font-family:var(--serif)}.bitem.ph{opacity:.8}
.related-themes,.inline-sub,.theme-sub{background:var(--paper2);border-radius:14px;padding:18px 20px;margin-top:20px}
.subform .row{gap:8px;margin:8px 0}.subform .row input{flex:1}.subform h3,.subform h2.h3{margin-top:0}.chips-pick{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.pick{margin:0}.pick input{display:none}.pick span{display:inline-block;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 12px;font-size:14px;cursor:pointer;color:var(--ink)}.pick input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.consent{font-size:13px}.err{color:#a33a26}
.site-foot{background:#2b2622;color:#efe7da;margin-top:40px;padding:30px 0}.site-foot a{color:#f6c9a8}.foot-in{display:grid;grid-template-columns:1.3fr 1fr;gap:30px}
.subform.dark .pick span{background:transparent;color:#efe7da;border-color:#6b6158}.subform.dark .pick input:checked+span{background:#efe7da;color:#2b2622}.subform.dark .check{color:#efe7da}.subform.dark .err{color:#ffb4a0}
.shelf{display:flex;flex-wrap:wrap;gap:18px}.shelf-item{width:100px;display:flex;flex-direction:column;gap:6px}.shelf-item a{text-decoration:none;color:var(--ink)}
.book-page{display:flex;gap:32px;align-items:flex-start}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:16px}.card.soft{background:var(--paper2)}.ok-card{border-color:var(--green);background:#f1f7f2}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;flex-wrap:wrap}.tab{padding:8px 14px;text-decoration:none;color:var(--ink2);border-bottom:3px solid transparent}.tab.on{color:var(--ink);border-bottom-color:var(--acc);font-weight:700}
.wantlist{list-style:none;padding:0}.wantlist li{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.modal-back{position:fixed;inset:0;background:rgba(30,24,20,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal{background:var(--paper);border-radius:14px;padding:24px;max-width:520px;width:100%;max-height:90vh;overflow:auto;position:relative}.modal-x{position:absolute;right:10px;top:8px;background:none;font-size:22px;padding:2px 10px}
.fake-mail{border:1px dashed var(--ink2);border-radius:10px;padding:12px 16px;background:#fff}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--ink);color:#fff;padding:10px 20px;border-radius:999px;transition:.3s;z-index:60;font-size:14px}#toast.show{transform:translateX(-50%) translateY(0)}
.badge{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;background:#eee;white-space:nowrap}.badge.ok{background:#e1efe5;color:#2d5a3c}.badge.warn{background:#fbe9d8;color:#8e3f20}
.st-published{background:#e1efe5;color:#2d5a3c}.st-draft{background:#eee;color:#555}.st-scheduled{background:#e3e8f4;color:#34446b}.st-archived{background:#ece6db;color:#6b5a40}
.ms-subscribed{background:#e1efe5;color:#2d5a3c}.ms-pending{background:#fff3cf;color:#7a5b00}.ms-unsubscribed{background:#f2dede;color:#8a2d2d}
/* admin */
body.is-admin{background:#f5f2ec}body.is-admin .site-head,body.is-admin .site-foot{display:none}
.admin{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 26px)}
.a-side{background:#2b2622;color:#efe7da;padding:18px 0;display:flex;flex-direction:column}.a-logo{color:#fff;text-decoration:none;font-family:var(--serif);font-weight:700;font-size:18px;padding:0 18px 14px}.a-logo small{display:block;font-family:var(--sans);font-weight:400;font-size:12px;color:#bfb3a3}
.a-side nav{display:flex;flex-direction:column}.a-side nav a{color:#e9dfd1;text-decoration:none;padding:8px 18px;font-size:15px}.a-side nav a.on{background:#463d36;border-left:3px solid #e98b5d}.a-side nav a.locked{opacity:.45}.a-side nav a:hover{background:#3a322c}
.a-front{color:#f6c9a8;padding:14px 18px;margin-top:auto;font-size:14px}
.a-main{min-width:0}.a-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 24px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}.a-top label{display:flex;gap:6px;align-items:center;margin:0}.a-top select{width:auto;padding:4px 8px}
.a-body{padding:20px 24px;max-width:1200px}.a-body h1{font-size:26px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.kpi b{display:block;font-size:28px;font-family:var(--serif)}.kpi span{font-size:13px;color:var(--ink2)}
.tbl-wrap{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;background:#fff;font-size:14px}.tbl th{text-align:left;font-weight:600;color:var(--ink2);border-bottom:2px solid var(--line);padding:8px;white-space:nowrap}.tbl td{border-bottom:1px solid #eee5d8;padding:8px;vertical-align:middle}
.live-row{background:#fff8e6}.act-skip{color:#999}.act-new td:first-child{color:var(--green);font-weight:700}
.hbars{display:flex;flex-direction:column;gap:6px}.hbar{display:grid;grid-template-columns:minmax(90px,38%) 1fr 40px;gap:8px;align-items:center;font-size:13px}.hb-k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hb-b{background:#f1ebe1;border-radius:4px;height:14px;overflow:hidden}.hb-b i{display:block;height:100%;background:var(--acc)}.hb-v{text-align:right}
.chart{width:100%;height:auto}.chart rect{fill:var(--acc)}.chart .ax{font-size:11px;fill:#8a7f73}
.aform{max-width:1000px}.narrowform{max-width:480px}.booksearch{margin:6px 0 10px;max-width:420px}
.items-ed{list-style:none;padding:0;counter-reset:it}.items-ed li{display:grid;grid-template-columns:60px 1fr auto;gap:12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;counter-increment:it;position:relative}
.items-ed li:before{content:counter(it);position:absolute;left:-10px;top:-8px;background:var(--ink);color:#fff;border-radius:50%;width:22px;height:22px;font-size:12px;display:flex;align-items:center;justify-content:center}
.ie-main{display:flex;flex-direction:column;gap:6px}.ie-ctl{display:flex;flex-direction:column;gap:4px}.ie-ctl button{padding:2px 10px;background:#f3ece0}.cnt{color:var(--ink2);text-align:right}.cnt.over{color:#a33a26;font-weight:700}
#checks{padding-left:4px;list-style:none;margin:6px 0}#checks .bad{color:#a33a26}#checks .warn{color:#8a5a1f}#checks .good{color:var(--green)}
fieldset.ret{border:1px solid var(--line);border-radius:10px;margin:0 0 10px;padding:6px 12px 10px;background:#fff}legend{font-size:14px;font-weight:700;padding:0 6px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.filters select,.filters input{width:auto;min-width:140px}
.prose li{margin-bottom:6px}
@media (max-width:760px){.hero{grid-template-columns:1fr}.hero-covers .cover.lg{width:100px;height:142px}.hero-covers .cover.lg .cover-t{font-size:13px}.grid2,.foot-in{grid-template-columns:1fr}.book-page{flex-direction:column}.cover.xl{width:150px;height:212px}
.admin{grid-template-columns:1fr}.a-side{padding:10px 0}.a-side nav{flex-direction:row;overflow-x:auto}.a-side nav a{white-space:nowrap}.a-front{margin-top:0}.bitem .cover.md{width:72px;height:102px}.grid3{grid-template-columns:1fr}.nav{gap:10px}}

/* ===== v2：有本書翻個頁 / This is a book. 視覺識別（A 博物館標籤） ===== */
h1,h2,h3,h2.h3{font-family:var(--head);letter-spacing:.01em}
a{color:var(--acc2)}
button,.btn{border-radius:2px}
.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.primary:hover{background:var(--acc);border-color:var(--acc)}
.ghost{border-color:var(--ink);color:var(--ink)}.ghost:hover{background:var(--ink);color:var(--paper)}
.buy{border-radius:2px;font-family:var(--mono);font-weight:700;background:var(--card)}.buy:hover{background:var(--ink);color:var(--paper)}
.want.on{border-color:var(--acc);color:var(--acc2)}
input,select,textarea{border-radius:2px;border-color:#cfc3af;background:var(--card)}
.kicker{font-family:var(--mono);letter-spacing:.06em;color:var(--acc);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chip{border-radius:2px;border-color:var(--ink);color:var(--ink);background:var(--card);font-family:var(--sans)}.chip:hover{background:var(--ink);color:var(--paper)}
.badge{border-radius:2px;font-family:var(--sans)}
.entry-news{background:var(--acc);color:#fff}.entry-life{background:#F2C9A6;color:#5a2a12}.entry-borrowed{background:var(--ink);color:var(--paper)}
.lab-meta{font-family:var(--mono);font-size:13px;color:var(--ink2);margin:4px 0}
.please{font-family:var(--mono);font-size:12px;color:var(--acc2);white-space:nowrap}
.site-head{background:rgba(243,236,223,.96);border-bottom:2px solid var(--ink)}
.head-in{padding:8px 20px}
.logo{display:block;line-height:0}.logo svg{height:64px;width:auto;display:block}
.nav a{font-family:var(--sans);font-weight:500}.nav a:hover{color:var(--acc)}.nav-me{border-radius:2px;border-width:1.5px}
/* hero */
.hero{grid-template-columns:1fr 1fr;padding-top:48px;padding-bottom:36px}
.hero-title{font-family:var(--mono);font-size:clamp(40px,6vw,72px);line-height:1.05;margin:.1em 0 .15em}
.hero-sub{font-family:var(--serif);font-size:clamp(20px,2.4vw,26px);font-weight:700;margin:0 0 14px;border-bottom:4px solid var(--acc);display:inline-block;padding-bottom:4px}
.hero-exhibit{display:block;text-decoration:none;color:var(--ink);background:var(--card);border:2px solid var(--ink);box-shadow:8px 8px 0 rgba(30,27,24,.12);padding:20px}
.hero-exhibit:hover{box-shadow:8px 8px 0 rgba(214,73,51,.35)}
.ex-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.hero-exhibit .hero-covers{padding:6px 0 26px;background:var(--paper);margin:0 -20px;padding-top:18px}
.ex-label{border-top:2px solid var(--ink);padding-top:12px;margin-top:0}.ex-label .lab-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.focus-title{font-size:20px;margin:0 0 6px}

.num{font-family:var(--mono);font-size:14px;color:var(--acc);font-weight:700}
.sec-h{border-bottom:2px solid var(--ink)}
.etabs{display:flex;gap:0;margin:0 0 16px;border:1.5px solid var(--ink);width:max-content;max-width:100%}
.etab{padding:5px 16px;text-decoration:none;color:var(--ink);font-size:14px;border-right:1.5px solid var(--ink)}.etab:last-child{border-right:0}.etab.on{background:var(--ink);color:var(--paper)}
.lcard,.tcard{background:var(--card);border:1.5px solid var(--ink);border-radius:0;box-shadow:4px 4px 0 rgba(30,27,24,.10)}
.lcard:hover,.tcard:hover{box-shadow:4px 4px 0 rgba(214,73,51,.45)}
.tcard{border-top:1.5px solid var(--ink);position:relative}.tcard:nth-child(2n),.tcard:nth-child(3n){border-top-color:var(--ink)}
.tcard:before{content:"";position:absolute;left:16px;bottom:-1.5px;width:28px;height:4px;background:var(--acc)}
.lcard.archived{background:var(--paper2)}
.exhibit-empty{background:var(--card);border:2px dashed var(--ink);padding:22px 24px;max-width:560px}.exhibit-empty h3,.exhibit-empty h2.h3{font-size:28px;margin:4px 0}
/* list page: each book = exhibit caption */
.news-box{background:var(--card);border:1.5px solid var(--ink);border-left:6px solid var(--acc);border-radius:0}
.archived-banner{border-radius:0;background:var(--paper2);border:1.5px dashed var(--ink2)}
.bitem{border-bottom:0;padding:14px 0;align-items:flex-start}
.label-card{flex:1;min-width:0;background:var(--card);border:1.5px solid var(--ink);box-shadow:5px 5px 0 rgba(30,27,24,.10);padding:12px 16px 12px}
.lab-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}
.lab-tag{font-family:var(--mono);font-size:11px;letter-spacing:.12em;border:1px solid var(--ink);padding:0 6px;text-transform:uppercase}
.bitem h3,
.bitem h2.h3{font-family:var(--serif);font-size:20px}.reason{font-size:17px;margin:8px 0 10px;padding-top:8px;border-top:1px solid var(--line)}
.lab-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;flex-wrap:wrap}
.bitem.ph{opacity:1}.bitem.ph .label-card{border-style:dashed;box-shadow:none;background:transparent}
.related-themes,.inline-sub,.theme-sub{background:var(--card);border:1.5px solid var(--ink);border-radius:0}
.pick span{border-radius:2px;background:var(--card)}
.cover{border-radius:1px 3px 3px 1px}
/* sign-up */
.signup-card{display:grid;grid-template-columns:1fr 1.2fr;gap:28px;background:var(--card);border:2px solid var(--ink);box-shadow:8px 8px 0 rgba(30,27,24,.12);padding:26px 28px;position:relative}
.signup-card:after{content:"";position:absolute;left:28px;bottom:-2px;width:56px;height:6px;background:var(--acc)}
.signup-copy h2{font-size:30px;margin:4px 0 8px}
/* footer */
.site-foot{background:var(--ink);color:var(--paper)}.site-foot a{color:#F2B4A6}
.foot-mark{display:flex;gap:18px;align-items:center}.foot-mark svg{width:110px;height:110px;flex-shrink:0}
.foot-say{font-family:var(--mono);font-size:26px;font-weight:700;margin:0;line-height:1.3}.foot-say span{font-family:var(--serif);font-size:16px;font-weight:400}
.foot-cap{font-family:var(--mono);opacity:.6}
.subform.dark .pick span{border-radius:2px}
.card{border-radius:0;border-color:var(--ink);background:var(--card)}
.tabs .tab.on{border-bottom-color:var(--acc)}
.modal{border-radius:0;border:2px solid var(--ink);background:var(--paper)}
.fake-mail{border-radius:0;background:var(--card)}
#toast{border-radius:2px;font-family:var(--sans)}
/* admin keeps its layout, re-skinned */
body.is-admin{background:#F7F2E9}.a-side{background:var(--ink)}.a-logo{font-family:var(--serif)}.a-logo small{font-family:var(--mono)}.a-side nav a.on{background:#38322c;border-left-color:var(--acc)}
.a-front{color:#F2B4A6}.hb-b i,.chart rect{background:var(--acc);fill:var(--acc)}
.kpi{border-radius:0;border-color:var(--ink);background:var(--card)}.kpi b{font-family:var(--mono)}
.items-ed li{border-radius:0;background:var(--card)}
@media (max-width:760px){
 .logo svg{height:46px}.head-in{padding:6px 14px}.nav{gap:12px;font-size:14px}
 .hero{grid-template-columns:1fr;padding-top:26px;gap:22px}.hero-exhibit{padding:16px}.hero-exhibit .hero-covers{margin:0 -16px}

 .bitem{gap:10px}.bitem .cover.md{width:64px;height:92px;padding:6px 5px}.bitem .cover.md .cover-t{font-size:10px}.bitem .cover.md .cover-a{display:none}
 .label-card{padding:10px 12px}.bitem h3,.bitem h2.h3{font-size:17px}.reason{font-size:15px}
 .signup-card{grid-template-columns:1fr;padding:20px}.foot-mark svg{width:80px;height:80px}.foot-say{font-size:20px}
}
button,.btn{white-space:nowrap}
.list-page>.row.gap{flex-wrap:wrap}
#signup{scroll-margin-top:100px}
@media (max-width:760px){#signup{scroll-margin-top:150px}.hero-title{font-size:32px}.list-page>.row.gap .lab-meta{flex-basis:100%}}

/* v3 font system */
:root{
 --sans:"Noto Sans TC","PingFang TC","Heiti TC","Microsoft JhengHei","Noto Sans CJK TC",system-ui,sans-serif;
 --head:"Nunito","GenSen Rounded TW","GenSenRounded2 TW","Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;
 --serif:var(--head);
}
body{font-family:var(--sans)}
h1,h2,h3,.hero-sub,.focus-title,.bitem h3,.signup-copy h2,.exhibit-empty h3,.a-logo,.cover,h2.h3,.bitem h2.h3,.exhibit-empty h2.h3{font-family:var(--head)}
.hero-title{font-family:"Nunito","GenSen Rounded TW",system-ui,sans-serif;font-weight:800;letter-spacing:-.01em}
.reason,.foot-say span,.lead,.news-box p{font-family:var(--sans)}
.reason{font-weight:400}
.kicker,.lab-meta,.please,.lab-tag,.num,.foot-say,.foot-cap,.kpi b,.a-logo small,.buy{font-family:var(--mono)}

/* v4：真書封、主視覺（入稿後台） */
.cover.cover-img{padding:0;background:#e8dfcf}.cover.cover-img img{display:block;width:100%;height:100%;object-fit:cover}
.cover.cover-img:before{z-index:1}
.hero-visual{margin:0 -20px;background:var(--paper)}.hero-visual img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.list-hero{margin:6px 0 16px;border:2px solid var(--ink);box-shadow:8px 8px 0 rgba(30,27,24,.12)}.list-hero img{display:block;width:100%;max-height:420px;object-fit:cover}
@media (max-width:760px){.hero-visual{margin:0 -16px}}
.tbooks{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.shelf-item.tbook{width:auto;flex-direction:row;gap:14px;background:var(--card);border:1px solid var(--line);padding:12px;align-items:flex-start}
.tbook-body{min-width:0;display:flex;flex-direction:column;gap:4px}.tbook-body h3,.tbook-body h2.h3{font-size:16px;margin:0}.tbook-body h3 a,.tbook-body h2.h3 a{color:var(--ink);text-decoration:none}.tbook-body h3 a:hover,.tbook-body h2.h3 a:hover{text-decoration:underline}
.tbook-body .lab-tag{align-self:flex-start}.tbook-body .buy{font-size:13px;padding:4px 8px}
@media (max-width:760px){.tbooks{grid-template-columns:1fr}.shelf-item.tbook .cover.md{width:72px;height:102px}}
#toast:not(.show){opacity:0;pointer-events:none}

/* 有新書單時通知我 */
.subform .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.sub-done h3,
.sub-done h2.h3{margin-top:0}
.tbook-body a.lab-tag{text-decoration:none;color:inherit}.tbook-body a.lab-tag:hover{background:var(--ink);color:var(--paper)}
.sec .theme-sub{margin-top:28px}

/* v5：品牌描述條（不可點）、翻過的書（書介文章） */
.brand-strip{display:flex;align-items:center;gap:8px 28px;flex-wrap:wrap;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);padding:10px 20px;margin-top:4px;margin-bottom:8px}
.wrap.brand-strip{max-width:1080px}
.bs-name{margin:0;font-family:var(--head);font-weight:700;font-size:15px;white-space:nowrap}.bs-name span{font-family:var(--mono);font-weight:700;font-size:13px;margin-left:8px;color:var(--ink2)}
.bs-steps{list-style:none;margin:0;padding:0;display:flex;gap:6px 24px;flex-wrap:wrap;font-size:14px;color:var(--ink2)}
.bs-steps li{white-space:nowrap}.bs-steps .num{font-size:12px;margin-right:6px;letter-spacing:.04em}.bs-steps b{font-family:var(--head);color:var(--ink);margin-right:8px}
@media (max-width:760px){.brand-strip{flex-direction:column;align-items:flex-start;padding:10px 16px;margin-left:16px;margin-right:16px}.bs-steps{flex-direction:column;gap:2px}.bs-steps li{white-space:normal}}
.entry-read{background:var(--ink);color:var(--paper)}
.acard .lcard-body p{margin:4px 0 0}
.article-page{max-width:760px}
.kick-link{color:var(--acc);text-decoration:none}.kick-link:hover{text-decoration:underline}
.article-page h1{font-size:clamp(28px,4.2vw,40px);margin:.2em 0 .3em}
.a-books a{color:var(--ink)}
.a-covers{display:flex;gap:18px;flex-wrap:wrap;padding:22px 24px;margin:14px 0 26px;background:var(--card);border:1.5px solid var(--ink);box-shadow:6px 6px 0 rgba(30,27,24,.10)}
.a-covers .cover.lg{width:150px;height:212px}.acover-link{display:block;line-height:0}
.art-body{font-size:17px;line-height:1.95}.art-body p{margin:0 0 1.1em}
.art-body h2{font-size:22px;margin:1.6em 0 .5em}
.art-body blockquote{margin:1.2em 0;padding:4px 0 4px 18px;border-left:4px solid var(--acc);color:var(--ink2)}
.art-body a{color:var(--acc2)}
.a-origin{border-top:1px solid var(--line);padding-top:10px;margin-top:22px}
.a-shelf{margin-top:28px}.a-shelf h2{font-size:20px;border-bottom:2px solid var(--ink);padding-bottom:4px}
.a-book{display:flex;gap:16px;padding:12px 0;align-items:flex-start}.a-book h3,.a-book h2.h3{margin:0;font-size:17px}.a-book h3 a,.a-book h2.h3 a{color:var(--ink);text-decoration:none}
@media (max-width:760px){.a-covers{padding:16px;gap:12px}.a-covers .cover.lg{width:110px;height:156px}.art-body{font-size:16px}}
