/* Hallmark · genre: modern-minimal · theme: custom · posture: restrained · surface: white paper, slate ink, Amazon orange as the one signal · nav: the KDPTop bar shared with the app, wordmark left and sign-in right · footer: link columns with kdp123 and the locale switch · hero: settled · job: read the list, then open the full category in the app */
/* Hallmark · pre-emit critique: P3 H4 E4 S4 R4 V3 · weakest: V, the blog, research and category pages share one template; the pass kept it and cleared literals, kickers and dot-joined meta */
:root{--paper: #ffffff;--bg: #f5f7fb;--fill: #f6f7f9;--fill-2: #eef0f4;--line: #e6e9ef;--line-strong: #d5dae2;--faint: #666d79;--on-night-faint: #949cab;--field-edge: #828a97;--muted: #5b6270;--ink2: #3b4250;--ink: #141b2b;--night: #0b1220;--night-2: #172033;--night-line: #2b3445;--on-night: #e6e9ef;--on-night-muted: #aeb6c4;--brand: #ff9900;--brand-deep: #e47911;--brand-ink: #a64e00;--brand-ink-deep: #5a3b00;--brand-soft: #fff4e2;--brand-soft-2: #ffe6bf;--brand-line: #ffd08a;--brand-bright: #ffb547;--green: #18a058;--green-ink: #0a7a3d;--green-soft: #e8f7ee;--green-line: #abefc6;--green-bright: #3ddc84;--red: #d03050;--red-ink: #b42318;--red-soft: #fef3f2;--red-line: #fecdca;--blue: #2b6fe0;--blue-soft: #e8f0ff;--navy: #1d3557;--brand-a06: rgb(255 153 0 / 0.06);--brand-a12: rgb(255 153 0 / 0.12);--brand-a18: rgb(255 153 0 / 0.18);--brand-a30: rgb(255 153 0 / 0.3);--brand-a45: rgb(255 153 0 / 0.45);--white-a05: rgb(255 255 255 / 0.05);--white-a10: rgb(255 255 255 / 0.1);--white-a18: rgb(255 255 255 / 0.18);--white-a25: rgb(255 255 255 / 0.25);--white-a50: rgb(255 255 255 / 0.5);--white-a92: rgb(255 255 255 / 0.92);--white-a97: rgb(255 255 255 / 0.97);--shade-a04: rgb(15 23 42 / 0.04);--shade-a08: rgb(15 23 42 / 0.08);--shade-a14: rgb(15 23 42 / 0.14);--shade-a20: rgb(15 23 42 / 0.2);--shade-a35: rgb(15 23 42 / 0.35);--shade-a45: rgb(15 23 42 / 0.45);--shade-a70: rgb(15 23 42 / 0.7);--shade-a82: rgb(15 23 42 / 0.82);--green-a15: rgb(24 160 88 / 0.15);--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
:focus-visible{outline:2px solid var(--brand-ink);outline-offset:2px}
button:disabled{cursor:not-allowed}
a:active,button:active{opacity:.8}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
body{margin: 0;font:17px/1.7 var(--font-sans);color:var(--night-2);background:var(--paper)}
a{color:var(--brand-ink);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto}
.wrap{max-width:1080px;margin: 0 auto;padding: 0 20px}
.container{max-width:1180px;margin: 0 auto;padding: 0 24px}
[hidden]{display:none!important}
.site-header{position:sticky;top:0;z-index:50;background:var(--white-a92);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s;font-family:var(--font-sans);line-height:1.5}
.site-header.scrolled{border-bottom-color:var(--line)}
.site-header a:hover{text-decoration:none}
.bar{display:flex;align-items:center;height:64px;gap: 32px}
.brand{display:flex;align-items:center}
.site-header .logo{display:block;height:35px;width:auto}
.links{display:flex;gap: 16px;flex:1}
.links a,.signin{color:var(--ink2);font-size:14px;white-space:nowrap;transition:color .15s}
.links a:hover,.signin:hover{color:var(--brand)}
.links a[aria-current]{color:var(--night);font-weight:600}
.actions,.guest{display:flex;align-items:center;gap: 16px}
.locale{display:inline-flex;align-items:center;gap: 4px;height:32px;padding: 0 8px;border-radius:8px;border:1px solid var(--line);color:var(--ink2);font-size:13px;white-space:nowrap}
.locale:hover{border-color:var(--brand);color:var(--brand-deep)}
.btn.sm{display:inline-flex;align-items:center;justify-content:center;height:36px;padding: 0 16px;font-size:14px;font-weight:600;border-radius:8px;white-space:nowrap}
.btn.primary{color:var(--ink);background:linear-gradient(180deg,var(--brand-bright),var(--brand));box-shadow:0 6px 20px var(--brand-a30);transition:transform .15s,box-shadow .15s}
.btn.primary:hover{transform:translateY(-1px);box-shadow:0 10px 26px var(--brand-a45)}
.burger{display:none;border:0;background:none;padding: 10px;margin-right:-10px;color:var(--night);cursor:pointer}
.drawer{display:flex;flex-direction:column;padding: 8px 24px 16px;border-top:1px solid var(--fill-2);background:var(--paper)}
.drawer a{padding: 12px 0;font-size:16px;color:var(--night);border-bottom:1px solid var(--fill-2)}
@media (max-width:1080px){.links{display:none}.bar{justify-content:space-between}.burger{display:block}}
@media (min-width:1081px){.drawer{display:none!important}}
@media (max-width:520px){.signin{display:none}.actions,.guest{gap: 8px}}
main.wrap{padding-top: 28px;padding-bottom: 56px}
.crumbs{font-size:13.5px;color:var(--faint);margin-bottom: 16px}
.crumbs a{color:var(--faint)}
.post{max-width:760px;margin: 0 auto}
h1{font-size:38px;line-height:1.2;letter-spacing:-.6px;margin: 0 0 12px;color:var(--night)}
.meta{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--faint);font-size:14px;margin: 0 0 16px}
.lead{font-size:19px;color:var(--ink2);margin: 0 0 24px}
.keynums{display:grid;grid-template-columns:repeat(3,minmax(0, 1fr));gap: 12px;margin: 0 0 24px}
.keynums div{background:var(--brand-soft);border:1px solid var(--brand-soft-2);border-radius:12px;padding: 16px 16px}
.keynums b{display:block;font-size:26px;color:var(--night);line-height:1.2}
.keynums span{font-size:13.5px;color:var(--faint)}
.toc{background:var(--fill);border:1px solid var(--line);border-radius:12px;padding: 16px 20px;margin: 0 0 28px}
.toc-title{font-weight:700;margin: 0 0 8px}
.toc ol{margin: 0;padding-left: 20px;font-size:15.5px}
.toc li a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
h2{font-size:27px;line-height:1.3;margin: 40px 0 16px;color:var(--night);scroll-margin-top:76px}
h3{font-size:19px;margin: 24px 0 8px;color:var(--night)}
section{scroll-margin-top:76px}
p{margin: 0 0 16px}
figure{margin: 8px 0 24px}
figure img{border:1px solid var(--line);border-radius:12px;display:block;width:100%}
figcaption{font-size:14px;color:var(--faint);margin-top: 8px}
details{margin-top: 8px;font-size:14px}
summary{cursor:pointer;color:var(--brand-ink)}
table{border-collapse:collapse;width:100%;margin-top: 8px}
th,td{text-align:left;padding: 8px 8px;border-bottom:1px solid var(--fill-2)}
th{background:var(--fill)}
td:last-child,th:last-child{text-align:right}
.books{display:grid;gap: 12px;margin: 8px 0 20px}
ol.books{list-style:none;padding: 0}
h3.bt{font-size:16.5px;margin-top: 0}
.book{display:flex;gap: 16px;border:1px solid var(--line);border-radius:12px;padding: 12px}
.book img{width:90px;height:135px;object-fit:cover;border-radius:4px;flex:none;background:var(--bg)}
.book-main{min-width:0}
.bt{font-weight:700;margin: 0 0 2px;line-height:1.35}
.ba{margin: 0 0 8px;font-size:14.5px;color:var(--muted)}
.bn{list-style:none;padding: 0;margin: 0 0 8px;display:flex;flex-wrap:wrap;gap: 8px 16px;font-size:14px}
.bn span{color:var(--faint);margin-right: 4px}
.bl{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13.5px;margin: 0}
.takeaways ul{padding-left: 20px}
.takeaways li{margin-bottom: 8px}
.method{font-size:15px;color:var(--muted)}
.method p,.method li{max-width:62ch}
.method h2{font-size:21px}
.cta-box{background:var(--night);color:var(--line);border-radius:14px;padding: 24px 24px;margin: 32px 0}
.cta-title{color:var(--paper);font-size:20px;font-weight:700;margin: 0 0 8px}
.btn{display:inline-block;background:var(--brand);color:var(--ink);font-weight:700;padding: 8px 16px;border-radius:8px;white-space:nowrap}
.btn:hover{text-decoration:none;background:var(--brand-bright)}
.tags{display:flex;flex-wrap:wrap;gap: 8px;margin: 24px 0}
.tags a{background:var(--bg);border-radius:999px;padding: 4px 12px;font-size:14px;color:var(--ink2)}
.cards{list-style:none;padding: 0;margin: 16px 0;display:grid;grid-template-columns:repeat(3,minmax(0, 1fr));gap: 16px}
.card a{display:flex;flex-direction:column;height:100%;border:1px solid var(--line);border-radius:14px;overflow:hidden;color:inherit}
.card a:hover{text-decoration:none;border-color:var(--brand-line);box-shadow:0 10px 30px var(--shade-a08)}
.card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--bg)}
.card-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:var(--faint);margin: auto 16px 16px}
.card-kind{font-weight:600;color:var(--brand-ink)}
.card h2,.card h3{font-size:17.5px;line-height:1.4;margin: 12px 16px 8px}
.card p{font-size:14.5px;color:var(--muted);margin: 0 16px 8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.list h1{font-size:34px}
.kinds{display:flex;flex-wrap:wrap;gap: 8px;margin: 8px 0 8px}
.kinds a{border:1px solid var(--line);border-radius:999px;padding: 4px 16px;font-size:14.5px;color:var(--ink2)}
.kinds a[aria-current]{background:var(--night);border-color:var(--night);color:var(--paper)}
.count{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--faint);font-size:14.5px;margin: 4px 0 0}
.pager{display:flex;justify-content:center;flex-wrap:wrap;gap: 8px;align-items:center;margin: 32px 0;font-size:15px}
.pager .num,.pager .step{min-width:38px;height:38px;padding: 0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;color:var(--ink2)}
.pager a:hover{text-decoration:none;border-color:var(--brand);color:var(--brand-ink)}
.pager .num[aria-current]{background:var(--night);border-color:var(--night);color:var(--paper);font-weight:700}
.hubs{margin-top: 40px;font-size:15px}
.hubs h2{font-size:22px}
.hubs h3{font-size:16px;margin-top: 16px}
.empty{color:var(--faint)}
.site-footer{background:var(--night);color:var(--on-night-faint);padding: 56px 0 28px;font-size:14px;line-height:1.5}
.site-footer .cols{display:grid;grid-template-columns:minmax(0, 1.5fr) repeat(5, minmax(0, 1fr));gap: 28px}
.site-footer .logo{display:block;height:38px;width:auto}
.site-footer .about p{max-width:340px;line-height:1.8;margin: 16px 0 0}
.site-footer .fh{color:var(--line);font-size:14px;font-weight:700;margin: 0 0 16px}
.site-footer a{display:block;color:var(--on-night-faint);line-height:2.1;white-space:nowrap}
.site-footer a:hover{color:var(--brand);text-decoration:none}
.site-footer .copy{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top: 40px;padding-top: 20px;border-top:1px solid var(--white-a10);font-size:12px}
@media (max-width:1023px){.site-footer .cols{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr)}.site-footer .about{grid-column:1/-1}}
.tbl-wrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
@media (max-width:640px){.site-footer{padding: 40px 0 calc(24px + env(safe-area-inset-bottom))}.site-footer .cols{gap:24px 16px}.site-footer .fh{margin-bottom: 4px}.site-footer a{line-height:1.4;padding: 9px 0;white-space:normal}.site-footer .copy{margin-top: 28px}}
.explore{margin: 32px 0}
.explore h2{font-size:21px;margin: 0 0 12px}
.explore ul{list-style:none;padding: 0;margin: 0;display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap: 12px}
.explore a{display:block;border:1px solid var(--line);border-radius:12px;padding: 12px 16px;color:inherit;height:100%}
.explore a:hover{text-decoration:none;border-color:var(--brand-line)}
.explore b{display:block;color:var(--night);font-size:15.5px}
.explore span{font-size:14px;color:var(--faint)}
.byline{color:inherit;border-bottom:1px dotted var(--faint)}
.byline:hover{text-decoration:none;color:var(--brand-ink)}
.about-page{max-width:760px;margin: 0 auto}
.about-page ul{padding-left: 20px}
.insights{background:var(--fill);border-radius:12px;padding: 16px 20px;margin: 0 0 24px}
.insights h2{font-size:19px;margin: 0 0 8px}
.insights ul{padding-left: 20px;margin: 0}
.insights li{margin-bottom: 8px}
.facts{margin: 0 0 24px;font-size:15px}
.facts th{background:none;font-weight:500;color:var(--muted)}
.facts td{font-weight:600}
.market .btn.ghost{background:none;border:1px solid var(--muted);color:var(--line);margin-left: 8px}
.niches{list-style:none;padding: 0;margin: 8px 0 20px;display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap: 8px 16px;font-size:15px}
.niches li{display:flex;align-items:baseline;gap: 8px;border-bottom:1px solid var(--fill-2);padding: 4px 0}
.niches a{flex:1;min-width:0}
.niches small{color:var(--faint)}
.score{font-size:13px;font-weight:700;color:var(--red-ink);background:var(--brand-soft);border-radius:6px;padding: 1px 8px}
.score.hi{color:var(--green-ink);background:var(--green-soft)}
.score.lo{color:var(--faint);background:var(--bg)}
.tier{font-size:13px;font-weight:700;border-radius:6px;padding: 1px 8px;color:var(--faint);background:var(--bg)}
.tier.high{color:var(--green-ink);background:var(--green-soft)}
.tier.medium{color:var(--brand-ink);background:var(--brand-soft)}
.kwtable td:last-child{width:96px}
.src{font-size:14px;color:var(--faint)}
.sublinks{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14.5px;line-height:1.9;color:var(--faint)}
.ranking{font-size:15px}
.ranking td:first-child{color:var(--faint);width:48px}
.twin{font-size:15px}
@media (max-width:860px){.cards{grid-template-columns:repeat(2,minmax(0, 1fr))}}
@media (max-width:640px){
  body{font-size:16.5px}
  h1{font-size:29px}
  h2{font-size:23px}
  .keynums{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);gap: 8px}
  .keynums b{font-size:20px}
  .market h1{font-size:25px}
  .market .lead{font-size:16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .cards,.related .cards,.explore ul,.niches{grid-template-columns:minmax(0, 1fr)}
  main.wrap{padding-top: 20px;padding-bottom: 40px}
  .tbl-wrap table{min-width:100%}
  .tbl-wrap td,.tbl-wrap th{white-space:nowrap}
  .tbl-wrap td:first-child,.tbl-wrap th:first-child{white-space:normal;min-width:140px}
  .kinds{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}
  .kinds a{white-space:nowrap;padding: 8px 16px}
  .pager .num,.pager .step{min-width:44px;height:44px}
}
.claim{display:flex;align-items:center;justify-content:space-between;gap: 16px;margin: 0 0 24px;padding: 16px 16px;border:1px solid var(--brand-line);border-radius:12px;background:var(--brand-soft)}
.claim b{font-size:16px}.claim p{margin: 4px 0 0;color:var(--muted);font-size:14px}.claim .btn{flex:none}
.locked-rows{position:relative;margin: -8px 0 20px;border-radius:12px;overflow:hidden;border:1px solid var(--brand-soft-2)}
.locked-rows .ghost{list-style:none;margin: 0;padding: 8px 16px;filter:blur(3px);opacity:.55}
.locked-rows .ghost li{display:flex;align-items:center;gap: 16px;padding: 8px 0;border-bottom:1px solid var(--fill-2);color:var(--faint);font-weight:700}
.locked-rows .ghost i{display:block;height:10px;border-radius:5px;background:var(--line-strong);width:38%}.locked-rows .ghost i+i{width:16%}
.locked-over{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap: 8px;padding: 16px;text-align:center;background:linear-gradient(180deg,var(--white-a50),var(--white-a97) 40%)}
.locked-over p{margin: 0;font-weight:700;color:var(--brand-ink-deep)}
.sticky-cta{display:none}
@media (max-width:760px){
.claim{flex-direction:column;align-items:flex-start}
.sticky-cta:not([hidden]){display:flex;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:40;align-items:center;gap: 8px;padding: 8px 12px;border-radius:12px;background:var(--night);color:var(--line);font-size:13.5px;box-shadow:0 10px 30px var(--shade-a20)}
.sticky-cta span{flex:1;line-height:1.35}
.sticky-x{border:0;background:none;color:var(--faint);font-size:20px;line-height:1;padding: 0 2px;cursor:pointer}
.site-footer{padding-bottom: 84px}
}
.report .tbl-wrap{overflow-x:auto;margin: 8px 0 24px}
.report table.data{font-size:14.5px;min-width:560px}
.report table.data td:last-child,.report table.data th:last-child{text-align:left}
.report table.data td:not(:first-child),.report table.data th:not(:first-child){white-space:nowrap}
.report .takeaways ol{padding-left: 24px}
.report .takeaways li{margin-bottom: 8px}
.report .note{font-size:14px;color:var(--faint)}
.report .downloads{display:flex;flex-wrap:wrap;gap: 8px 16px;padding-left: 20px}
.report .cite{white-space:pre-wrap;background:var(--fill);border:1px solid var(--fill-2);border-radius:10px;padding: 12px 16px;font-size:14px}
.report .preview-note{background:var(--brand-soft);border-radius:8px;padding: 8px 12px;font-size:14px}
.report .quote{font:inherit;font-size:12.5px;color:var(--faint);background:none;border:1px solid var(--line);border-radius:6px;padding: 1px 8px;margin-left: 4px;cursor:pointer;vertical-align:1px}
.report .quote:hover{color:var(--night);border-color:var(--brand-bright)}
.report .quotable li:target{background:var(--brand-soft);border-radius:6px}
.report ul.terms{display:flex;flex-wrap:wrap;gap: 8px 16px;padding-left: 20px}
.report ul.history{list-style:none;padding: 0;font-size:14.5px}
.report dl.terms dt{font-weight:600;margin-top: 16px;scroll-margin-top:80px}
.report dl.terms dt:target{background:var(--brand-soft)}
.report dl.terms dd{margin: 4px 0 0}
.reports{list-style:none;padding: 0;margin: 12px 0 16px;display:grid;gap: 12px}
.reports a{display:block;border:1px solid var(--line);border-radius:12px;padding: 16px 16px;color:inherit}
.reports a:hover{text-decoration:none;border-color:var(--brand-bright)}
.reports b{display:block;font-size:17.5px}
.reports span{display:block;font-size:14.5px;color:var(--muted);margin-top: 4px}
.reports .when{font-size:13px;color:var(--faint)}
