:root {
  --red: #e1251b;
  --red-deep: #b91812;
  --red-soft: #fff1ef;
  --ink: #232323;
  --text: #4e4e4e;
  --muted: #909090;
  --line: #e7e7e7;
  --soft: #f6f6f6;
  --dark: #242424;
  --font: "Microsoft Yahei", "PingFang SC", Tahoma, Arial, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: var(--ink); font: 14px/1.65 var(--font); }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
img { display: block; max-width: 100%; }
.wrap { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.icon { width: 17px; height: 17px; flex: 0 0 auto; }
.topbar { background: #2b2b2b; color: #bdbdbd; font-size: 14px; }
.topbar .wrap { height: 30px; display: flex; align-items: center; justify-content: space-between; }
.topbar .wrap > div { display: flex; gap: 17px; }
.topbar a:hover { color: #fff; }
.header { border-bottom: 1px solid var(--line); background: #fff; }
.header-main { min-height: 84px; display: flex; align-items: center; gap: 28px; }
.logo { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.logo img { width: 44px; height: 44px; border-radius: 10px; box-shadow: 0 4px 10px rgba(225,37,27,.16); }
.logo-text { display: flex; flex-direction: column; line-height: 1; }
.logo-text b { font-size: 23px; letter-spacing: -.06em; white-space: nowrap; }
.logo-text b em { color: var(--red); font-style: normal; }
.logo-text small { margin-top: 5px; color: var(--muted); font: 14px Consolas, monospace; letter-spacing: .05em; }
.search { flex: 1; max-width: 500px; margin-left: auto; height: 40px; display: flex; border: 2px solid var(--red); border-radius: 4px; overflow: hidden; }
.search input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 0 12px; font-size: 14px; }
.search button { width: 78px; border: 0; background: var(--red); color: #fff; font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 4px; cursor: pointer; }
.search button .icon { width: 14px; height: 14px; }
.header-tip { display: flex; align-items: center; gap: 5px; color: #777; font-size: 14px; white-space: nowrap; }
.header-tip .icon { color: var(--red); width: 15px; height: 15px; }
.header-tip b { color: var(--red); font: 700 14px Consolas, monospace; }
.mobile-menu-btn { display: none; border: 0; background: transparent; color: var(--ink); padding: 4px; }
.nav { background: var(--red); }
.nav .wrap { height: 42px; display: flex; align-items: stretch; gap: 3px; }
.nav a { display: inline-flex; align-items: center; padding: 0 25px; color: rgba(255,255,255,.9); font-size: 14px; font-weight: 700; }
.nav a:hover, .nav a.active { background: var(--red-deep); color: #fff; }
.section { padding-top: 27px; }
.block-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; padding-bottom: 9px; border-bottom: 1px solid var(--line); }
.block-head > div { display: flex; align-items: baseline; gap: 9px; }
.block-head h2 { margin: 0; padding-left: 9px; border-left: 3px solid var(--red); font-size: 20px; line-height: 1.2; }
.block-head span { color: var(--muted); font-size: 14px; }
.block-head > a { display: inline-flex; align-items: center; gap: 2px; color: var(--muted); font-size: 14px; }
.block-head > a:hover { color: var(--red); }
.block-head .icon { width: 12px; height: 12px; }
.home-top { display: grid; grid-template-columns: minmax(0,1fr) 285px; gap: 22px; padding-top: 22px; }
.home-main { min-width: 0; }
.focus { display: grid; grid-template-columns: minmax(0,1.58fr) minmax(0,1fr); gap: 9px; height: 312px; }
.focus-lead { position: relative; overflow: hidden; background: var(--dark); }
.focus-lead img { width: 100%; height: 100%; object-fit: cover; opacity: .86; }
.focus-lead::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.9), transparent 70%); }
.focus-copy { position: absolute; z-index: 1; left: 19px; right: 20px; bottom: 17px; }
.focus-copy em { display: block; color: #ff9f94; font: 14px var(--mono); font-style: normal; }
.focus-copy b { display: block; margin: 4px 0; color: #fff; font-size: 25px; line-height: 1.3; }
.focus-copy small { display: block; overflow: hidden; color: #d8d8d8; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.focus-list { display: grid; grid-template-rows: 1fr 1fr; gap: 9px; }
.focus-list a { display: flex; align-items: center; gap: 9px; padding: 8px; border: 1px solid var(--line); background: var(--soft); }
.focus-list a:hover { border-color: #f0b1ac; }
.focus-list img { width: 67px; height: 67px; object-fit: cover; flex: 0 0 auto; }
.focus-list span { min-width: 0; }
.focus-list b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.focus-list small { display: block; color: var(--muted); font-size: 14px; }
.download-rank { border: 1px solid var(--line); background: #fff; padding: 0 13px 8px; }
.rank-title { display: flex; align-items: baseline; justify-content: space-between; height: 42px; border-bottom: 1px solid var(--line); }
.rank-title b { padding-left: 8px; border-left: 3px solid var(--red); font-size: 17px; }
.rank-title span { color: #aaa; font: 14px Consolas, monospace; }
.rank-row { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px dashed #eee; }
.rank-row:hover .rank-info b { color: var(--red); }
.rank-no { width: 19px; color: #aaa; font: 700 14px Consolas, monospace; }
.rank-no.top { color: var(--red); }
.rank-row img { width: 39px; height: 39px; object-fit: cover; border-radius: 3px; }
.rank-info { flex: 1; min-width: 0; }
.rank-info b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.rank-info small { display: block; overflow: hidden; color: var(--muted); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.rank-row em { color: #bbb; }
.rank-row em .icon { width: 13px; height: 13px; }
.rank-more { display: flex; align-items: center; justify-content: center; gap: 3px; padding-top: 7px; color: var(--muted); font-size: 14px; }
.rank-more:hover { color: var(--red); }
.rank-more .icon { width: 11px; height: 11px; }
.quick-cats { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; margin-top: 18px; border: 1px solid var(--line); }
.quick-cats a { display: flex; align-items: center; gap: 9px; padding: 13px 14px; border-right: 1px solid var(--line); }
.quick-cats a:last-child { border-right: 0; }
.quick-cats a:hover { background: var(--red-soft); }
.quick-cats > a > b { color: var(--red); font: 700 18px Consolas, monospace; }
.quick-cats > a > span { flex: 1; font-size: 14px; font-weight: 700; }
.quick-cats small { display: block; color: var(--muted); font-size: 14px; font-weight: 400; }
.quick-cats .icon { width: 13px; height: 13px; color: #bbb; }
.latest-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.latest-row { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 6px 0; border-bottom: 1px dashed #ededed; }
.latest-row:hover .latest-info b { color: var(--red); }
.latest-row > img { width: 52px; height: 52px; object-fit: cover; border-radius: 3px; }
.latest-info { flex: 1; min-width: 0; }
.latest-info b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.latest-info small { display: block; color: var(--muted); font-size: 14px; }
.latest-meta { display: flex; flex-direction: column; color: #888; font: 14px Consolas, monospace; text-align: right; white-space: nowrap; }
.latest-meta em { color: #aaa; font-style: normal; }
.mini-download { display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid #f0b7b2; border-radius: 3px; color: var(--red); }
.mini-download .icon { width: 13px; height: 13px; }
.game-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.game-card { min-width: 0; border: 1px solid var(--line); background: #fff; transition: border-color .2s, box-shadow .2s; }
.game-card:hover { border-color: #efb2ad; box-shadow: 0 7px 18px rgba(96,36,30,.07); }
.game-cover { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--soft); }
.game-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.game-card:hover .game-cover img { transform: scale(1.025); }
.type-tag, .hot-tag { position: absolute; top: 8px; left: 8px; padding: 2px 5px; border-radius: 2px; background: rgba(0,0,0,.62); color: #fff; font-size: 14px; }
.hot-tag { left: auto; right: 8px; background: var(--red); font-family: Consolas, monospace; }
.game-body { padding: 9px 10px 10px; }
.game-body h3 { overflow: hidden; margin: 0 0 3px; font-size: 14px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.game-body h3 a:hover { color: var(--red); }
.game-body p { overflow: hidden; height: 30px; margin: 0 0 7px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.meta { display: flex; gap: 8px; color: #999; font-size: 14px; }
.meta span + span::before { content: "·"; margin-right: 7px; color: #ccc; }
.card-actions { display: flex; gap: 6px; margin-top: 9px; }
.card-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 3px; min-height: 28px; border-radius: 3px; font-size: 14px; }
.card-actions > a:first-child { width: 56px; border: 1px solid #ddd; color: #777; }
.card-actions > a:first-child:hover { border-color: var(--red); color: var(--red); }
.download-btn { flex: 1; background: var(--red); color: #fff; font-weight: 700; }
.download-btn:hover { background: var(--red-deep); }
.download-btn.disabled { background: #e7e7e7; color: #999; }
.download-btn .icon { width: 12px; height: 12px; }
.compact-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.two-column-block { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.mini-list { border-top: 1px solid var(--line); }
.mini-row { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px dashed #ededed; }
.mini-row:hover b { color: var(--red); }
.mini-row img { width: 43px; height: 43px; object-fit: cover; }
.mini-row span { flex: 1; min-width: 0; }
.mini-row b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.mini-row small { display: block; color: var(--muted); font-size: 14px; }
.mini-row em { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #f0b7b2; color: var(--red); }
.mini-row em .icon { width: 12px; height: 12px; }
.home-side { min-width: 0; }
.side-panel { border: 1px solid var(--line); background: #fff; margin-bottom: 14px; padding: 0 12px 10px; }
.side-panel-head { display: flex; align-items: baseline; justify-content: space-between; height: 42px; padding-top: 11px; border-bottom: 1px solid var(--line); }
.side-panel-head b { padding-left: 8px; border-left: 3px solid var(--red); font-size: 16px; }
.side-panel-head span { color: #aaa; font: 14px Consolas, monospace; }
.side-pick { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px dashed #eee; }
.side-pick:last-child { border-bottom: 0; }
.side-pick img { width: 54px; height: 40px; object-fit: cover; }
.side-pick span { min-width: 0; }
.side-pick b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.side-pick small { display: block; color: var(--muted); font-size: 14px; }
.side-cats { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.side-cats a { padding: 9px 0; border-bottom: 1px solid #f1f1f1; color: #666; font-size: 14px; }
.side-cats a:nth-child(odd) { border-right: 1px solid #f1f1f1; }
.side-cats a:hover { color: var(--red); }
.side-help { margin-bottom: 14px; padding: 15px; border: 1px solid #f0d6d1; background: #fff7f5; }
.side-help b { font-size: 14px; }
.side-help p { margin: 5px 0 9px; color: #8e7772; font-size: 14px; line-height: 1.8; }
.side-help a { display: flex; align-items: center; color: var(--red); font-size: 14px; }
.side-news { display: block; padding: 9px 0; border-bottom: 1px dashed #eee; }
.side-news em { display: block; color: var(--red); font-size: 14px; font-style: normal; }
.side-news b { display: block; margin: 2px 0; font-size: 14px; line-height: 1.55; }
.side-news small { color: #aaa; font-size: 14px; }
.side-more { display: flex; align-items: center; gap: 3px; padding-top: 9px; color: #999; font-size: 14px; }
.page-head { padding: 18px 0 24px; border-bottom: 1px solid var(--line); background: var(--soft); }
.breadcrumb { display: flex; align-items: center; gap: 6px; color: #999; font-size: 14px; }
.breadcrumb b { color: #666; font-weight: 400; }
.page-head-main { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-top: 28px; }
.page-kicker { color: var(--red); font: 14px Consolas, monospace; }
.page-head h1 { margin: 6px 0 5px; font-size: 33px; line-height: 1.2; }
.page-head p { margin: 0; color: #888; font-size: 14px; }
.page-count { display: flex; align-items: baseline; gap: 5px; color: #aaa; }
.page-count b { color: #eee; font: 700 52px/1 Arial Black, sans-serif; letter-spacing: -.04em; }
.page-count span { font-size: 14px; }
.listing-layout { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 24px; padding-top: 22px; padding-bottom: 40px; }
.filter-side { align-self: start; border: 1px solid var(--line); background: #fff; }
.filter-side > b { display: block; padding: 10px 12px; border-bottom: 1px solid var(--line); font-size: 14px; }
.filter-side > a { display: flex; justify-content: space-between; padding: 9px 12px; border-bottom: 1px solid #f1f1f1; color: #666; font-size: 14px; }
.filter-side > a:hover, .filter-side > a.active { color: var(--red); background: var(--red-soft); }
.filter-side em { color: #aaa; font: 14px Consolas, monospace; font-style: normal; }
.side-guide { margin-top: 13px; padding: 13px; border: 1px solid #f0d6d1; background: #fff7f5; }
.side-guide b { font-size: 14px; }
.side-guide p { margin: 4px 0 0; color: #8e7772; font-size: 14px; line-height: 1.7; }
.list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-bottom: 10px; border-bottom: 1px solid var(--line); color: #999; font-size: 14px; }
.list-toolbar b { color: var(--red); font: 700 16px Consolas, monospace; }
.list-toolbar span { margin-left: 5px; color: #aaa; }
.list-toolbar label { display: flex; align-items: center; gap: 4px; width: 175px; padding: 4px 7px; border: 1px solid var(--line); background: #fff; }
.list-toolbar label .icon { width: 13px; height: 13px; color: #aaa; }
.list-toolbar input { width: 100%; min-width: 0; border: 0; outline: 0; font-size: 14px; }
.app-list { border: 1px solid var(--line); border-top: 0; }
.app-row { display: flex; align-items: center; gap: 12px; min-height: 93px; padding: 11px; border-bottom: 1px solid #f0f0f0; }
.app-row:last-child { border-bottom: 0; }
.app-row:hover { background: #fffafa; }
.app-index { width: 22px; color: #ccc; font: 700 14px Consolas, monospace; }
.app-row > img { width: 74px; height: 74px; object-fit: cover; border-radius: 5px; flex: 0 0 auto; }
.app-info { flex: 1; min-width: 0; }
.app-tags { color: var(--red); font: 14px Consolas, monospace; }
.app-info h2 { overflow: hidden; margin: 2px 0 3px; font-size: 15px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.app-info h2 a:hover { color: var(--red); }
.app-info p { overflow: hidden; margin: 0 0 4px; color: #999; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.app-meta { display: flex; gap: 11px; color: #999; font-size: 14px; }
.app-action { display: flex; gap: 5px; flex: 0 0 auto; }
.app-detail, .app-download { display: inline-flex; align-items: center; justify-content: center; gap: 3px; min-height: 30px; padding: 0 10px; border-radius: 3px; font-size: 14px; }
.app-detail { border: 1px solid #ddd; color: #777; }
.app-download { background: var(--red); color: #fff; font-weight: 700; }
.app-download.disabled { background: #e7e7e7; color: #999; }
.app-download .icon { width: 12px; height: 12px; }
.empty-state { padding: 50px; color: #999; text-align: center; font-size: 14px; }
.item-top { display: grid; grid-template-columns: 340px minmax(0,1fr); gap: 30px; align-items: center; padding: 24px 0 28px; }
.item-cover { position: relative; height: 210px; overflow: hidden; border: 1px solid var(--line); background: var(--soft); }
.item-cover img { width: 100%; height: 100%; object-fit: cover; }
.item-cover > span { position: absolute; top: 10px; left: 10px; padding: 3px 6px; background: var(--red); color: #fff; font: 14px Consolas, monospace; }
.item-info h1 { margin: 7px 0 7px; font-size: 34px; line-height: 1.3; }
.item-info > p { max-width: 670px; margin-bottom: 12px; color: #888; font-size: 14px; line-height: 1.8; }
.item-data { display: flex; gap: 32px; padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.item-data b { display: block; font: 700 16px Consolas, monospace; }
.item-data span { display: block; margin-top: 2px; color: #aaa; font-size: 14px; }
.item-download { display: flex; align-items: center; gap: 9px; margin-top: 14px; }
.big-download { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 42px; padding: 0 23px; border-radius: 3px; background: var(--red); color: #fff; font-size: 14px; font-weight: 700; }
.big-download:hover { background: var(--red-deep); }
.big-download.disabled { background: #ddd; color: #888; }
.source-link { display: inline-flex; align-items: center; gap: 3px; color: #999; font-size: 14px; }
.source-link:hover { color: var(--red); }
.item-layout { display: grid; grid-template-columns: minmax(0,1fr) 275px; gap: 22px; padding-bottom: 35px; }
.item-content { min-width: 0; }
.item-box { padding: 16px 0; border-top: 1px solid var(--line); }
.box-title { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 9px; }
.box-title h2 { margin: 0; padding-left: 8px; border-left: 3px solid var(--red); font-size: 17px; }
.box-title span { color: #aaa; font: 14px Consolas, monospace; }
.item-box p { margin: 0 0 8px; color: #666; font-size: 14px; line-height: 1.9; }
.source-line { overflow-wrap: anywhere; font: 14px Consolas, monospace; }
.source-line a { color: var(--red); }
.item-aside { align-self: start; border: 1px solid var(--line); padding: 13px; background: #fff; }
.info-table > b { display: block; padding-bottom: 8px; border-bottom: 1px solid var(--line); font-size: 14px; }
.info-table > div { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px dashed #eee; font-size: 14px; }
.info-table span { color: #999; }
.info-table em { color: #444; font-style: normal; }
.aside-download { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 12px; min-height: 35px; background: var(--red); color: #fff; font-size: 14px; font-weight: 700; border-radius: 3px; }
.aside-download.disabled { background: #e5e5e5; color: #999; }
.info-note { margin-top: 9px; color: #999; font-size: 14px; line-height: 1.7; }
.related-section { padding-bottom: 38px; }
.related-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.related-card { display: flex; align-items: center; gap: 7px; padding: 8px; border: 1px solid var(--line); }
.related-card:hover { border-color: #efb2ad; }
.related-card img { width: 37px; height: 37px; object-fit: cover; }
.related-card span { flex: 1; min-width: 0; }
.related-card b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.related-card small { display: block; color: #999; font-size: 14px; }
.related-card .icon { width: 11px; height: 11px; color: #bbb; }
.news-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 22px; padding-bottom: 38px; }
.news-feature { display: block; }
.news-feature img { width: 100%; height: 280px; object-fit: cover; }
.news-feature h2 { margin: 7px 0; font-size: 25px; line-height: 1.45; }
.news-feature p { color: #888; font-size: 14px; line-height: 1.8; }
.news-list { border-top: 1px solid var(--line); }
.news-item { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid #eee; }
.news-item > span { color: #ccc; font: 700 14px Consolas, monospace; }
.news-item > div { flex: 1; min-width: 0; }
.news-item em { display: block; color: var(--red); font-size: 14px; font-style: normal; }
.news-item b { display: block; overflow: hidden; margin: 2px 0; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.news-item small { display: block; overflow: hidden; color: #999; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.news-item .icon { width: 12px; height: 12px; color: #bbb; }
.article { max-width: 820px; padding: 22px 0 38px; }
.article h1 { margin: 7px 0 8px; font-size: 33px; line-height: 1.4; }
.article-lead { color: #777; font-size: 14px; line-height: 1.8; }
.article > img { width: 100%; max-height: 360px; object-fit: cover; margin: 18px 0; }
.article-copy { max-width: 700px; color: #555; font-size: 14px; line-height: 2; }
.article-next { display: inline-flex; margin-top: 21px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--red); font-size: 14px; }
.search-page-form { display: flex; max-width: 600px; margin-top: 15px; border: 2px solid var(--red); border-radius: 3px; overflow: hidden; }
.search-page-form input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 9px 12px; }
.search-page-form button { border: 0; background: var(--red); color: #fff; padding: 0 18px; font-weight: 700; }
.search-layout { padding-top: 22px; padding-bottom: 38px; }
.info-page { max-width: 780px; padding: 22px 0 38px; color: #666; font-size: 14px; line-height: 2; }
.footer { margin-top: 30px; border-top: 2px solid var(--red); background: #f7f7f7; }
.footer-main { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 36px; padding: 27px 0 22px; }
.footer-brand p { max-width: 410px; margin: 10px 0 0; color: #999; font-size: 14px; line-height: 1.8; }
.footer-brand .logo img { width: 34px; height: 34px; }
.footer-brand .logo-text b { font-size: 17px; }
.footer-col { display: flex; flex-direction: column; gap: 5px; color: #888; font-size: 14px; }
.footer-col b { margin-bottom: 4px; color: #333; font-size: 14px; }
.footer-col a:hover { color: var(--red); }
.footer-bottom { display: flex; justify-content: space-between; padding: 10px 0; border-top: 1px solid #e5e5e5; color: #aaa; font-size: 14px; }
.mobile-menu { position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,.5); }
.mobile-menu-panel { position: relative; width: 260px; height: 100%; margin-left: auto; padding: 55px 20px 20px; background: #fff; display: flex; flex-direction: column; }
.mobile-menu-panel button { position: absolute; top: 14px; right: 14px; border: 0; background: transparent; }
.mobile-menu-panel a { padding: 12px 0; border-bottom: 1px solid #eee; font-size: 14px; }
@media (max-width: 1050px) {
  .home-top { grid-template-columns: minmax(0,1fr) 260px; gap: 16px; }
  .game-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .compact-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .focus { height: 285px; }
  .listing-layout { grid-template-columns: 170px minmax(0,1fr); gap: 16px; }
  .item-top { grid-template-columns: 290px minmax(0,1fr); gap: 22px; }
  .item-cover { height: 180px; }
}
@media (max-width: 800px) {
  .wrap { width: calc(100% - 24px); }
  .topbar .wrap > span { font-size: 14px; }
  .topbar nav { gap: 9px; font-size: 14px; }
  .header-main { min-height: 66px; gap: 11px; }
  .logo img { width: 36px; height: 36px; border-radius: 8px; }
  .logo-text b { font-size: 18px; }
  .logo-text small { font-size: 14px; }
  .search { height: 34px; margin-left: auto; border-width: 1px; }
  .search input { padding: 0 8px; font-size: 14px; }
  .search button { width: 48px; font-size: 0; }
  .search button .icon { width: 15px; height: 15px; }
  .header-tip { display: none; }
  .mobile-menu-btn { display: block; }
  .nav { display: none; }
  .home-top { grid-template-columns: 1fr; padding-top: 12px; gap: 12px; }
  .focus { height: 230px; grid-template-columns: 1fr; }
  .focus-list { display: none; }
  .focus-copy b { font-size: 20px; }
  .download-rank { padding: 0 10px 7px; }
  .rank-title { height: 36px; }
  .rank-title b { font-size: 14px; }
  .rank-row { padding: 6px 0; }
  .rank-row:nth-of-type(n+7) { display: none; }
  .quick-cats { grid-template-columns: 1fr 1fr; margin-top: 12px; }
  .quick-cats a { padding: 9px; }
  .quick-cats > a > b { font-size: 14px; }
  .quick-cats > a > span { font-size: 14px; }
  .quick-cats small { font-size: 14px; }
  .section { padding-top: 19px; }
  .block-head { margin-bottom: 9px; padding-bottom: 7px; }
  .block-head h2 { font-size: 16px; }
  .block-head span { display: none; }
  .latest-grid { grid-template-columns: 1fr; gap: 0; }
  .latest-row { min-height: 52px; }
  .latest-row > img { width: 45px; height: 45px; }
  .latest-meta { display: none; }
  .game-grid, .compact-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .game-body { padding: 7px; }
  .game-body h3 { font-size: 14px; }
  .game-body p { height: 28px; margin-bottom: 5px; font-size: 14px; }
  .meta { font-size: 14px; }
  .card-actions { margin-top: 6px; gap: 4px; }
  .card-actions > a:first-child { display: none; }
  .download-btn { min-height: 26px; font-size: 14px; }
  .two-column-block { grid-template-columns: 1fr; gap: 18px; }
  .home-side { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .side-panel { margin-bottom: 0; padding: 0 9px 8px; }
  .side-help { margin-bottom: 0; padding: 11px; }
  .side-panel-head { height: 37px; padding-top: 9px; }
  .side-panel-head b { font-size: 14px; }
  .side-panel-head span { font-size: 14px; }
  .side-pick { padding: 6px 0; }
  .side-pick img { width: 44px; height: 34px; }
  .side-pick b { font-size: 14px; }
  .side-cats a { font-size: 14px; }
  .news-side { grid-column: 1 / -1; }
  .page-head { padding: 14px 0 17px; }
  .page-head-main { margin-top: 18px; }
  .page-head h1 { font-size: 25px; }
  .page-head p { font-size: 14px; }
  .page-count b { font-size: 35px; }
  .listing-layout { grid-template-columns: 1fr; gap: 12px; padding-top: 15px; }
  .filter-side { display: flex; flex-wrap: wrap; border: 0; border-bottom: 1px solid var(--line); }
  .filter-side > b { width: 100%; padding: 7px 0; border: 0; }
  .filter-side > a { padding: 5px 9px; border: 1px solid var(--line); font-size: 14px; }
  .filter-side > a em { margin-left: 4px; }
  .side-guide { display: none; }
  .list-toolbar { padding-bottom: 7px; }
  .list-toolbar span { display: none; }
  .list-toolbar label { width: 135px; }
  .app-row { gap: 8px; padding: 8px; min-height: 78px; }
  .app-index { display: none; }
  .app-row > img { width: 56px; height: 56px; }
  .app-info h2 { font-size: 14px; }
  .app-info p { display: none; }
  .app-meta span:nth-child(2) { display: none; }
  .app-action { gap: 4px; }
  .app-detail { display: none; }
  .app-download { min-height: 27px; padding: 0 7px; font-size: 14px; }
  .item-top { grid-template-columns: 1fr; gap: 13px; padding: 15px 0 18px; }
  .item-cover { height: 185px; }
  .item-info h1 { font-size: 28px; }
  .item-data { gap: 22px; }
  .item-download { flex-wrap: wrap; }
  .item-layout { grid-template-columns: 1fr; gap: 0; }
  .item-aside { order: -1; margin-top: 15px; }
  .item-content { min-width: 0; }
  .related-grid { grid-template-columns: 1fr 1fr; }
  .news-layout { grid-template-columns: 1fr; gap: 14px; }
  .news-feature img { height: 180px; }
  .news-feature h2 { font-size: 20px; }
  .article h1 { font-size: 27px; }
  .search-page-form { margin-top: 10px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 18px; padding: 20px 0 16px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; gap: 3px; font-size: 14px; }
}

/* spacious download portal layout */
.wrap { width: min(1240px, calc(100% - 56px)); }
.header-main { min-height: 96px; gap: 34px; }
.nav .wrap { height: 48px; gap: 6px; }
.nav a { padding: 0 29px; font-size: 14px; }
.home-top { grid-template-columns: minmax(0, 1fr) 300px; gap: 30px; padding-top: 30px; }
.focus { height: 354px; gap: 12px; }
.focus-list { gap: 12px; }
.focus-list a { padding: 12px; gap: 12px; }
.focus-list img { width: 76px; height: 76px; }
.focus-list b { font-size: 14px; }
.download-rank { padding: 0 16px 12px; }
.rank-title { height: 50px; }
.rank-title b { font-size: 19px; }
.rank-row { gap: 10px; padding: 10px 0; }
.rank-row img { width: 45px; height: 45px; }
.rank-info b { font-size: 14px; }
.rank-info small { font-size: 14px; }
.quick-cats { margin-top: 24px; }
.quick-cats a { padding: 17px 18px; gap: 12px; }
.quick-cats > a > b { font-size: 21px; }
.quick-cats > a > span { font-size: 14px; }
.quick-cats small { margin-top: 2px; font-size: 14px; }
.section { padding-top: 42px; }
.block-head { gap: 16px; margin-bottom: 17px; padding-bottom: 13px; }
.block-head h2 { padding-left: 11px; font-size: 23px; }
.block-head span { font-size: 14px; }
.block-head > a { font-size: 14px; }
.latest-grid { gap: 0 30px; }
.latest-row { min-height: 68px; padding: 9px 0; gap: 12px; }
.latest-row > img { width: 58px; height: 58px; }
.latest-info b { font-size: 14px; }
.latest-info small { margin-top: 2px; font-size: 14px; }
.latest-meta { font-size: 14px; }
.mini-download { width: 29px; height: 29px; }
.game-grid { gap: 20px; }
.game-cover { aspect-ratio: 16 / 9; }
.game-body { padding: 12px 14px 14px; }
.game-body h3 { margin-bottom: 5px; font-size: 15px; }
.game-body p { height: 34px; margin-bottom: 9px; font-size: 14px; }
.meta { font-size: 14px; }
.card-actions { gap: 8px; margin-top: 11px; }
.card-actions a { min-height: 32px; font-size: 14px; }
.card-actions > a:first-child { width: 64px; }
.download-btn .icon { width: 14px; height: 14px; }
.compact-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.two-column-block { gap: 32px; }
.mini-row { gap: 11px; padding: 11px 0; }
.mini-row img { width: 50px; height: 50px; }
.mini-row b { font-size: 14px; }
.mini-row small { margin-top: 2px; font-size: 14px; }
.home-side { position: sticky; top: 12px; align-self: start; }
.side-panel { margin-bottom: 18px; padding: 0 15px 14px; }
.side-panel-head { height: 50px; padding-top: 14px; }
.side-panel-head b { font-size: 18px; padding-left: 10px; }
.side-pick { gap: 10px; padding: 10px 0; }
.side-pick img { width: 60px; height: 44px; }
.side-pick b { font-size: 14px; }
.side-pick small { margin-top: 2px; font-size: 14px; }
.side-cats a { padding: 11px 0; font-size: 14px; }
.side-help { margin-bottom: 18px; padding: 18px; }
.side-help b { font-size: 14px; }
.side-help p { margin: 7px 0 11px; font-size: 14px; }
.side-news { padding: 11px 0; }
.side-news b { font-size: 14px; }
.page-head { padding: 28px 0 34px; }
.page-head-main { margin-top: 34px; }
.page-head h1 { margin: 8px 0 7px; font-size: 38px; }
.page-head p { font-size: 14px; }
.listing-layout { grid-template-columns: 205px minmax(0,1fr); gap: 32px; padding-top: 30px; padding-bottom: 50px; }
.filter-side > b { padding: 13px 15px; font-size: 14px; }
.filter-side > a { padding: 12px 15px; font-size: 14px; }
.side-guide { margin-top: 18px; padding: 16px; }
.list-toolbar { padding-bottom: 14px; }
.list-toolbar label { width: 210px; padding: 6px 9px; }
.app-row { gap: 17px; min-height: 116px; padding: 15px; }
.app-row > img { width: 86px; height: 86px; }
.app-info h2 { margin: 4px 0 5px; font-size: 18px; }
.app-info p { margin-bottom: 7px; font-size: 14px; }
.app-meta { gap: 14px; font-size: 14px; }
.app-action { gap: 7px; }
.app-detail, .app-download { min-height: 34px; padding: 0 13px; font-size: 14px; }
.item-top { grid-template-columns: 390px minmax(0,1fr); gap: 38px; padding: 34px 0 40px; }
.item-cover { height: 244px; }
.item-info h1 { margin: 9px 0 9px; font-size: 40px; }
.item-info > p { margin-bottom: 17px; font-size: 14px; }
.item-data { gap: 42px; padding: 14px 0; }
.item-data b { font-size: 18px; }
.item-download { margin-top: 20px; gap: 13px; }
.big-download { min-height: 48px; padding: 0 28px; font-size: 14px; }
.item-layout { grid-template-columns: minmax(0,1fr) 305px; gap: 34px; padding-bottom: 48px; }
.item-box { padding: 23px 0; }
.box-title { margin-bottom: 14px; }
.box-title h2 { font-size: 20px; }
.item-box p { font-size: 14px; line-height: 2.05; }
.item-aside { padding: 18px; }
.info-table > div { padding: 10px 0; font-size: 14px; }
.aside-download { min-height: 40px; margin-top: 16px; font-size: 14px; }
.related-grid { gap: 14px; }
.related-card { gap: 10px; padding: 11px; }
.related-card img { width: 44px; height: 44px; }
.related-card b { font-size: 14px; }
.news-layout { gap: 36px; padding-top: 30px; padding-bottom: 48px; }
.news-feature img { height: 310px; }
.news-feature h2 { margin: 10px 0; font-size: 28px; }
.news-item { padding: 17px 0; gap: 14px; }
.news-item b { font-size: 15px; }
.article { padding: 30px 0 50px; }
.article h1 { font-size: 38px; margin: 10px 0 12px; }
.article-lead { font-size: 14px; }
.article > img { margin: 26px 0; }
.search-layout { padding-top: 30px; padding-bottom: 50px; }
.footer { margin-top: 54px; }
.footer-main { padding: 38px 0 31px; gap: 48px; }
.footer-brand p { margin-top: 13px; font-size: 14px; }
.footer-col { gap: 7px; font-size: 14px; }
.footer-bottom { padding: 14px 0; }
@media (max-width: 1050px) {
  .wrap { width: calc(100% - 40px); }
  .home-top { grid-template-columns: minmax(0,1fr) 270px; gap: 20px; }
  .focus { height: 310px; }
  .section { padding-top: 34px; }
  .game-grid { gap: 14px; }
  .latest-grid { gap: 0 18px; }
}
@media (max-width: 800px) {
  .wrap { width: calc(100% - 28px); }
  .header-main { min-height: 68px; }
  .home-top { padding-top: 14px; gap: 15px; }
  .focus { height: 225px; }
  .quick-cats { margin-top: 15px; }
  .quick-cats a { padding: 11px 10px; gap: 8px; }
  .section { padding-top: 27px; }
  .block-head { margin-bottom: 11px; padding-bottom: 8px; }
  .block-head h2 { font-size: 18px; padding-left: 8px; }
  .game-grid { gap: 10px; }
  .game-body { padding: 9px; }
  .latest-row { min-height: 59px; padding: 7px 0; }
  .latest-row > img { width: 50px; height: 50px; }
  .home-side { position: static; gap: 12px; }
  .side-panel { padding: 0 11px 10px; }
  .side-panel-head { height: 42px; padding-top: 11px; }
  .side-panel-head b { font-size: 15px; }
  .page-head { padding: 20px 0 24px; }
  .page-head h1 { font-size: 30px; }
  .listing-layout { padding-top: 20px; padding-bottom: 32px; gap: 18px; }
  .app-row { min-height: 90px; padding: 10px; gap: 10px; }
  .app-row > img { width: 62px; height: 62px; }
  .app-info h2 { font-size: 14px; }
  .item-top { padding: 20px 0 24px; gap: 16px; }
  .item-cover { height: 195px; }
  .item-info h1 { font-size: 30px; }
  .item-data { gap: 22px; padding: 12px 0; }
  .item-layout { padding-bottom: 32px; }
  .item-box { padding: 20px 0; }
  .item-aside { padding: 14px; }
  .news-layout { gap: 24px; padding-top: 20px; }
  .news-feature img { height: 200px; }
  .footer { margin-top: 36px; }
  .footer-main { padding: 28px 0 22px; gap: 24px; }
}

/* strong visual homepage */
.impact {
  position: relative;
  overflow: hidden;
  background: #151010;
  color: #f3e9df;
}
.impact::before {
  content: "09";
  position: absolute;
  right: -30px;
  top: -90px;
  color: rgba(255,255,255,.035);
  font: 900 380px/1 Arial Black, Arial, sans-serif;
  letter-spacing: -.16em;
  pointer-events: none;
}
.impact-grid {
  position: relative;
  z-index: 1;
  min-height: 505px;
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  align-items: center;
  gap: 55px;
  padding: 50px 0 42px;
}
.impact-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #ef9b8f;
  font: 14px var(--mono);
  letter-spacing: .1em;
}
.impact-kicker i { display: block; width: 7px; height: 7px; background: var(--red); border-radius: 50%; box-shadow: 0 0 0 5px rgba(225,37,27,.15); }
.impact-copy h1 {
  margin: 17px 0 15px;
  color: #fff;
  font: 900 clamp(60px, 6.2vw, 88px)/1.03 var(--font);
  letter-spacing: -.08em;
}
.impact-copy h1 span { color: var(--red); }
.impact-copy > p {
  max-width: 470px;
  margin-bottom: 22px;
  color: #b9aaa1;
  font-size: 14px;
  line-height: 1.9;
}
.impact-actions { display: flex; align-items: center; gap: 18px; }
.impact-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 43px;
  padding: 0 22px;
  background: var(--red);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}
.impact-btn:hover { background: #f0392e; }
.impact-link { color: #d1b9ae; font-size: 14px; }
.impact-link:hover { color: #fff; }
.impact-link b { color: #fff; font: 700 16px var(--mono); }
.impact-stats { display: flex; gap: 27px; margin-top: 35px; }
.impact-stats div { padding-left: 11px; border-left: 1px solid #49332d; }
.impact-stats b { display: block; color: #fff; font: 700 23px/1 var(--mono); }
.impact-stats span { display: block; margin-top: 5px; color: #98837a; font-size: 14px; }
.impact-visual {
  position: relative;
  display: grid;
  grid-template-columns: 1.42fr 1fr;
  grid-template-rows: 1fr 1fr;
  min-height: 380px;
  gap: 7px;
}
.impact-main { position: relative; grid-row: 1 / 3; overflow: hidden; background: #251716; }
.impact-main > img { width: 100%; height: 100%; object-fit: cover; opacity: .88; transition: transform .7s; }
.impact-main:hover > img { transform: scale(1.035); }
.impact-main::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(12,7,7,.96), transparent 65%); }
.impact-image-copy { position: absolute; z-index: 1; left: 17px; right: 14px; bottom: 15px; }
.impact-image-copy em { display: block; color: #ef8d80; font: 14px var(--mono); font-style: normal; }
.impact-image-copy b { display: block; margin-top: 4px; color: #fff; font-size: 19px; line-height: 1.35; }
.impact-side { display: contents; }
.impact-side a { position: relative; overflow: hidden; background: #271918; }
.impact-side img { width: 100%; height: 100%; object-fit: cover; opacity: .76; }
.impact-side a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,6,6,.9), transparent 70%); }
.impact-side span { position: absolute; z-index: 1; left: 11px; right: 8px; bottom: 10px; color: #fff; font-size: 14px; line-height: 1.4; }
.impact-stamp {
  position: absolute;
  right: -13px;
  bottom: -26px;
  z-index: 3;
  color: var(--red);
  font: 900 92px/.8 Arial Black, Arial, sans-serif;
  letter-spacing: -.13em;
  text-shadow: 4px 4px 0 #151010;
  pointer-events: none;
}
.impact-ticker { overflow: hidden; border-top: 1px solid #502a25; border-bottom: 1px solid #502a25; background: var(--red); color: #fff; }
.ticker-track { display: flex; width: max-content; gap: 0; animation: ticker 28s linear infinite; }
.ticker-track span { display: inline-flex; align-items: center; gap: 7px; min-height: 33px; padding: 0 25px; border-right: 1px solid rgba(255,255,255,.22); font: 14px var(--mono); letter-spacing: .02em; white-space: nowrap; }
.ticker-track b { font-size: 14px; }
@keyframes ticker { to { transform: translateX(-50%); } }
.impact-body { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 30px; padding-top: 27px; padding-bottom: 10px; }
.impact-main-column { min-width: 0; }
.impact-quick { display: grid; grid-template-columns: repeat(4,1fr); background: #211817; }
.impact-quick a { display: flex; align-items: center; gap: 11px; min-height: 83px; padding: 13px 14px; border-right: 1px solid #43302b; color: #f1e3d8; }
.impact-quick a:last-child { border-right: 0; }
.impact-quick a:hover { background: var(--red); }
.impact-quick > a > b { color: var(--red); font: 700 21px var(--mono); }
.impact-quick a:hover > b { color: #fff; }
.impact-quick > a > span { flex: 1; font-size: 14px; font-weight: 700; }
.impact-quick small { display: block; color: #9b8177; font-size: 14px; font-weight: 400; }
.impact-quick a:hover small { color: #f4c3bc; }
.impact-quick .icon { width: 13px; height: 13px; color: #846c63; }
.impact-quick a:hover .icon { color: #fff; }
.impact-section { padding-top: 39px; }
.impact-section .block-head { padding-bottom: 13px; margin-bottom: 16px; }
.imp-eyebrow { color: #ef9b8f; font: 14px var(--mono); letter-spacing: .1em; }
.spotlight { display: grid; grid-template-columns: 1.1fr .9fr; gap: 24px; margin-top: 39px; background: #1c1312; color: #f0e4d9; }
.spotlight-copy { padding: 28px 28px 25px; }
.spotlight-copy h2 { margin: 12px 0 10px; color: #fff; font: 800 37px/1.2 var(--font); letter-spacing: -.05em; }
.spotlight-copy p { max-width: 480px; color: #b8a198; font-size: 14px; line-height: 1.9; }
.spotlight-copy a { display: inline-flex; align-items: center; gap: 4px; color: #ff8b7d; font-size: 14px; font-weight: 700; }
.spotlight-image { position: relative; overflow: hidden; min-height: 220px; }
.spotlight-image img { width: 100%; height: 100%; object-fit: cover; opacity: .7; }
.spotlight-image span { position: absolute; left: 14px; right: 12px; bottom: 12px; color: #fff; font-size: 14px; font-weight: 700; }
.impact-mini-row { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin-top: 24px; }
.news-band { margin-top: 38px; padding: 0 0 18px; border-top: 2px solid var(--ink); }
.news-band .block-head { border-bottom: 0; margin-bottom: 12px; }
.news-band-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 11px; }
.news-band-grid a { border: 1px solid var(--line); background: #fff; }
.news-band-grid img { width: 100%; height: 118px; object-fit: cover; }
.news-band-grid span { display: block; padding: 9px 10px 11px; }
.news-band-grid em { display: block; color: var(--red); font: 14px var(--mono); font-style: normal; }
.news-band-grid b { display: -webkit-box; overflow: hidden; margin-top: 3px; font-size: 14px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.impact-sidebar { min-width: 0; }
.impact-sidebar .side-panel { margin-bottom: 17px; }
.impact-sidebar .side-panel-head { height: 48px; }
.impact-sidebar .side-panel-head b { font-size: 17px; }
.impact-sidebar .side-help { margin-bottom: 17px; }
@media (max-width: 1050px) {
  .impact-grid { gap: 30px; min-height: 430px; }
  .impact-copy h1 { font-size: 60px; }
  .impact-visual { min-height: 310px; }
  .impact-body { grid-template-columns: minmax(0,1fr) 270px; gap: 20px; }
  .impact-quick a { padding: 11px 9px; gap: 7px; }
  .impact-quick > a > b { font-size: 17px; }
  .impact-quick > a > span { font-size: 14px; }
  .impact-section { padding-top: 31px; }
}
@media (max-width: 800px) {
  .impact-grid { min-height: 0; grid-template-columns: 1fr; gap: 17px; padding: 28px 0 25px; }
  .impact::before { font-size: 150px; top: 20px; right: -20px; }
  .impact-copy h1 { margin: 13px 0 10px; font-size: 43px; }
  .impact-copy > p { font-size: 14px; margin-bottom: 15px; }
  .impact-actions { gap: 12px; }
  .impact-btn { min-height: 36px; padding: 0 14px; font-size: 14px; }
  .impact-link { font-size: 14px; }
  .impact-link b { font-size: 14px; }
  .impact-stats { margin-top: 21px; gap: 17px; }
  .impact-stats b { font-size: 18px; }
  .impact-stats span { font-size: 14px; }
  .impact-visual { min-height: 220px; }
  .impact-stamp { font-size: 62px; right: -5px; bottom: -17px; }
  .impact-image-copy b { font-size: 14px; }
  .impact-side span { font-size: 14px; }
  .ticker-track span { min-height: 29px; padding: 0 15px; font-size: 14px; }
  .impact-body { grid-template-columns: 1fr; gap: 20px; padding-top: 17px; }
  .impact-quick a { min-height: 63px; padding: 9px 8px; }
  .impact-quick > a > b { font-size: 15px; }
  .impact-quick > a > span { font-size: 14px; }
  .impact-quick small { font-size: 14px; }
  .impact-section { padding-top: 27px; }
  .impact-section .block-head { padding-bottom: 8px; margin-bottom: 10px; }
  .spotlight { grid-template-columns: 1fr; gap: 0; margin-top: 27px; }
  .spotlight-copy { padding: 20px 17px; }
  .spotlight-copy h2 { font-size: 27px; }
  .spotlight-image { min-height: 165px; }
  .impact-mini-row { grid-template-columns: 1fr; gap: 18px; margin-top: 18px; }
  .news-band { margin-top: 27px; }
  .news-band-grid { grid-template-columns: 1fr; gap: 7px; }
  .news-band-grid img { height: 155px; }
  .impact-sidebar { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .impact-sidebar .side-panel, .impact-sidebar .side-help { margin-bottom: 0; }
  .impact-sidebar .side-panel:first-child { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .ticker-track { animation: none; }
}

@media (max-width: 800px) {
  .impact-quick { grid-template-columns: 1fr 1fr; }
  .impact-quick a:nth-child(2) { border-right: 0; }
  .impact-quick a:nth-child(-n+2) { border-bottom: 1px solid #43302b; }
}

/* final mobile guards: keep responsive rules after desktop spacing overrides */
@media (max-width: 800px) {
  .listing-layout {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .filter-side {
    display: flex !important;
    flex-wrap: wrap;
  }
  .item-top {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 20px 0 24px !important;
  }
  .item-cover {
    width: 100% !important;
    height: 195px !important;
  }
  .item-info {
    width: 100% !important;
    min-width: 0 !important;
  }
  .item-layout {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  .item-content {
    width: 100% !important;
    min-width: 0 !important;
  }
  .item-aside {
    order: -1;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    width: 100% !important;
    margin-top: 15px !important;
  }
  .item-aside .info-table,
  .item-aside .aside-download,
  .item-aside .info-note {
    grid-column: 1 / -1;
  }
}

/* 9663-inspired green download portal */
:root {
  --green: #e1251b;
  --green-deep: #b91812;
  --green-soft: #fff1ef;
  --red: #e1251b;
  --red-deep: #b91812;
  --red-soft: #fff1ef;
}
body { background: #fff; }
.topbar { background: var(--green); color: rgba(255,255,255,.86); }
.topbar a:hover { color: #fff; }
.nav { background: var(--green); }
.nav a { color: rgba(255,255,255,.94); }
.nav a:hover, .nav a.active { background: var(--green-deep); color: #fff; }
.search { border-color: var(--green); }
.search button { background: var(--green); }
.logo-text b em { color: var(--green); }
.logo img { box-shadow: 0 4px 10px rgba(225,37,27,.2); }
.header-tip .icon { color: var(--green); }
.header-tip b { color: var(--green); }
.block-head h2 { border-left-color: var(--green); }
.block-head > a:hover { color: var(--green); }
.game-body h3 a:hover, .latest-row:hover .latest-info b, .app-info h2 a:hover, .mini-row:hover b { color: var(--green); }
.download-btn, .app-download, .big-download, .aside-download { background: var(--green); }
.download-btn:hover, .app-download:hover, .big-download:hover, .aside-download:hover, .impact-btn:hover { background: var(--green-deep); }
.page-kicker, .app-tags, .news-item em, .news-band-grid em, .latest-meta em, .source-line a { color: var(--green); }
.filter-side > a:hover, .filter-side > a.active { color: var(--green); background: var(--green-soft); }
.side-panel-head b { border-left-color: var(--green); }
.side-help { border-color: #f0c0bb; background: #fff5f3; }
.side-help a, .side-more, .source-link:hover { color: var(--green); }
.big-download { min-height: 44px; }
.footer { border-top-color: var(--green); }
.footer-col a:hover { color: var(--green); }
.home-wrap { padding-top: 18px; padding-bottom: 35px; }
.home-banner { display: grid; grid-template-columns: minmax(0,1fr) 290px; gap: 10px; height: 355px; }
.banner-main { position: relative; display: block; overflow: hidden; background: #17331c; }
.banner-main > img { width: 100%; height: 100%; object-fit: cover; opacity: .9; transition: transform .5s; }
.banner-main:hover > img { transform: scale(1.02); }
.banner-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,33,15,.88), rgba(9,33,15,.25) 55%, rgba(9,33,15,.05)); }
.banner-copy { position: absolute; z-index: 1; left: 35px; top: 50%; transform: translateY(-50%); max-width: 440px; }
.banner-copy em { display: inline-block; padding: 3px 8px; background: var(--green); color: #fff; font-size: 14px; font-style: normal; }
.banner-copy b { display: block; margin: 11px 0 7px; color: #fff; font-size: 35px; line-height: 1.25; }
.banner-copy small { display: block; overflow: hidden; color: #d1e7d4; font-size: 14px; line-height: 1.7; text-overflow: ellipsis; white-space: nowrap; }
.banner-btn { display: inline-flex; align-items: center; gap: 4px; margin-top: 16px; padding: 7px 14px; background: #fff; color: var(--green-deep); font-size: 14px; font-weight: 700; }
.banner-side { display: grid; grid-template-rows: 1fr 1fr; gap: 10px; }
.banner-side a { position: relative; overflow: hidden; background: #19351d; }
.banner-side img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.banner-side a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(7,26,10,.9), transparent 75%); }
.banner-side span { position: absolute; z-index: 1; left: 11px; right: 10px; bottom: 9px; color: #fff; font-size: 14px; font-weight: 700; }
.quick-entry { display: grid; grid-template-columns: repeat(3,1fr); max-width: 720px; margin: 17px auto 0; padding: 13px 0; }
.quick-entry a { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.quick-entry b { margin-top: 3px; font-size: 14px; }
.quick-entry small { color: #999; font-size: 14px; }
.quick-icon { display: grid; place-items: center; width: 53px; height: 53px; border-radius: 50%; color: #fff; font-size: 22px; font-weight: 900; }
.q-star { background: #f1b632; }
.q-rec { background: #e1251b; }
.q-game { background: #459fea; }
.home-section { margin-top: 25px; }
.home-section-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid #ededed; }
.home-section-head h2 { margin: 0; padding-left: 10px; border-left: 3px solid var(--green); font-size: 21px; line-height: 1.2; }
.home-section-head a { display: inline-flex; align-items: center; gap: 2px; color: #999; font-size: 14px; }
.home-section-head a:hover { color: var(--green); }
.home-section-head .icon { width: 12px; height: 12px; }
.icon-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 0; padding-top: 14px; }
.icon-card { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 7px 9px 12px; text-align: center; }
.icon-card:hover .icon-box { transform: translateY(-3px); border-color: #f0b1ac; box-shadow: 0 8px 18px rgba(180,30,25,.12); }
.icon-card:hover > b { color: var(--green); }
.icon-box { display: block; width: 100%; max-width: 104px; aspect-ratio: 1/1; padding: 5px; border: 1px solid #ededed; border-radius: 17px; background: #fff; transition: transform .25s, border-color .25s, box-shadow .25s; }
.icon-box img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; }
.icon-card > b { display: -webkit-box; overflow: hidden; min-height: 34px; margin-top: 6px; padding: 0 2px; font-size: 14px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.icon-card > small { display: none; color: #aaa; font-size: 14px; }
.latest-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; border-top: 1px solid #f0f0f0; margin-top: 10px; }
.latest-row { min-height: 67px; padding: 9px 0; border-bottom: 1px solid #f1f1f1; }
.latest-row > img { width: 55px; height: 55px; border-radius: 9px; }
.latest-info b { font-size: 14px; }
.latest-info small { font-size: 14px; }
.latest-meta { font-size: 14px; }
.news-home-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; padding-top: 12px; }
.news-home-grid a { display: flex; align-items: center; gap: 11px; padding: 10px; border: 1px solid #ededed; background: #fff; }
.news-home-grid a:hover { border-color: #f0b1ac; }
.news-home-grid img { width: 74px; height: 58px; object-fit: cover; flex: 0 0 auto; }
.news-home-grid span { min-width: 0; }
.news-home-grid em { display: block; color: var(--green); font-size: 14px; font-style: normal; }
.news-home-grid b { display: -webkit-box; overflow: hidden; margin: 3px 0; font-size: 14px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.news-home-grid small { color: #aaa; font-size: 14px; }
/* green typography accents on inner pages */
.impact-copy h1 span, .impact-kicker, .impact-stats b { color: var(--green); }
.impact { background: #102115; }
.impact-btn { background: var(--green); }
.impact-ticker { background: var(--green); border-color: #b91812; }
.impact-stamp { color: var(--green); text-shadow: 4px 4px 0 #102115; }
.impact-quick { background: #1c2d20; }
.impact-quick a { border-right-color: #38503d; color: #e7f2e9; }
.impact-quick > a > b { color: var(--green); }
.impact-quick a:hover { background: var(--green); }
.spotlight { background: #15261a; }
.spotlight-copy a { color: #72d881; }
.imp-eyebrow { color: #77d885; }
@media (max-width: 1050px) {
  .home-banner { height: 310px; grid-template-columns: minmax(0,1fr) 230px; }
  .banner-copy { left: 24px; }
  .banner-copy b { font-size: 29px; }
  .icon-grid { gap: 2px; }
  .icon-box { max-width: 92px; }
}
@media (max-width: 800px) {
  .home-wrap { padding-top: 12px; padding-bottom: 24px; }
  .home-banner { height: auto; grid-template-columns: 1fr; gap: 0; }
  .banner-main { height: 205px; }
  .banner-side { display: none; }
  .banner-copy { left: 18px; right: 18px; max-width: none; }
  .banner-copy b { margin: 7px 0 4px; font-size: 26px; }
  .banner-copy small { font-size: 14px; }
  .banner-copy em { font-size: 14px; }
  .banner-btn { margin-top: 10px; padding: 5px 10px; font-size: 14px; }
  .quick-entry { margin-top: 8px; padding: 8px 0 2px; }
  .quick-icon { width: 46px; height: 46px; font-size: 18px; }
  .quick-entry b { font-size: 14px; }
  .home-section { margin-top: 18px; }
  .home-section-head { padding-bottom: 8px; }
  .home-section-head h2 { font-size: 17px; }
  .icon-grid { grid-template-columns: repeat(3,1fr); padding-top: 9px; }
  .icon-card { padding: 5px 7px 10px; }
  .icon-box { max-width: 94px; border-radius: 15px; padding: 4px; }
  .icon-box img { border-radius: 11px; }
  .icon-card > b { min-height: 32px; margin-top: 4px; font-size: 14px; }
  .latest-list { grid-template-columns: 1fr; margin-top: 5px; }
  .latest-row { min-height: 59px; padding: 7px 0; }
  .latest-row > img { width: 47px; height: 47px; border-radius: 7px; }
  .news-home-grid { grid-template-columns: 1fr; gap: 7px; padding-top: 8px; }
  .news-home-grid a { padding: 8px; }
  .news-home-grid img { width: 66px; height: 50px; }
}

/* 9663-style category grid */
.browse-page { padding-top: 18px; padding-bottom: 38px; }
.browse-filter { display: flex; align-items: center; gap: 4px; padding-bottom: 10px; border-bottom: 1px solid #ececec; }
.browse-filter > a { display: inline-flex; align-items: center; min-height: 30px; padding: 0 13px; border: 1px solid #e8e8e8; border-radius: 3px; color: #666; font-size: 14px; }
.browse-filter > a:hover, .browse-filter > a.active { border-color: var(--green); background: var(--green); color: #fff; }
.browse-filter > span { margin-left: 10px; color: #aaa; font-size: 14px; }
.browse-filter label { display: flex; align-items: center; gap: 4px; width: 185px; margin-left: auto; padding: 5px 8px; border: 1px solid #e7e7e7; }
.browse-filter label .icon { width: 13px; height: 13px; color: #aaa; }
.browse-filter input { width: 100%; min-width: 0; border: 0; outline: 0; font-size: 14px; }
.browse-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 0; padding-top: 8px; }
.browse-card { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 14px 9px 16px; text-align: center; }
.browse-card:hover { background: #f8fdf9; }
.browse-img { display: block; width: 100%; max-width: 108px; aspect-ratio: 1/1; padding: 5px; border: 1px solid #ececec; border-radius: 17px; background: #fff; transition: transform .25s, border-color .25s, box-shadow .25s; }
.browse-card:hover .browse-img { transform: translateY(-3px); border-color: #f0b1ac; box-shadow: 0 8px 18px rgba(180,30,25,.1); }
.browse-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; }
.browse-card > b { display: -webkit-box; overflow: hidden; min-height: 34px; margin-top: 7px; font-size: 14px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.browse-card > small { display: block; overflow: hidden; max-width: 100%; margin-top: 2px; color: #aaa; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.browse-card > em { display: inline-flex; margin-top: 7px; padding: 3px 8px; border: 1px solid #f2c2bd; border-radius: 2px; color: var(--green-deep); font-size: 14px; font-style: normal; }
.browse-card:hover > em { background: var(--green); border-color: var(--green); color: #fff; }
@media (max-width: 1050px) {
  .browse-grid { grid-template-columns: repeat(5,1fr); }
}
@media (max-width: 800px) {
  .browse-page { padding-top: 11px; padding-bottom: 28px; }
  .browse-filter { flex-wrap: wrap; gap: 4px; }
  .browse-filter > a { min-height: 26px; padding: 0 9px; font-size: 14px; }
  .browse-filter > span { display: none; }
  .browse-filter label { width: 100%; margin: 5px 0 0; }
  .browse-grid { grid-template-columns: repeat(3,1fr); }
  .browse-card { padding: 9px 7px 12px; }
  .browse-img { max-width: 94px; border-radius: 15px; }
  .browse-img img { border-radius: 11px; }
  .browse-card > b { min-height: 32px; font-size: 14px; }
  .browse-card > small { font-size: 14px; }
  .browse-card > em { display: none; }
}

/* 9663 desktop store layout */
body { background: #f5f5f5; }
.topbar { background: #f7f7f7; color: #777; border-bottom: 1px solid #ececec; }
.topbar .wrap { height: 34px; }
.topbar a:hover { color: var(--green); }
.header { background: #fff; }
.header-main { min-height: 94px; gap: 28px; }
.logo img { width: 48px; height: 48px; border-radius: 5px; box-shadow: none; }
.logo-text b { font-size: 25px; }
.search { max-width: 525px; height: 42px; border: 1px solid #d8d8d8; border-radius: 0; }
.search input { padding: 0 12px; font-size: 14px; }
.search button { width: 72px; background: var(--green); font-size: 14px; }
.header-tip { font-size: 14px; }
.nav { background: #fff; border-bottom: 1px solid #e8e8e8; }
.nav .wrap { height: 48px; gap: 0; }
.nav a { color: #333; font-size: 14px; padding: 0 23px; }
.nav a:hover, .nav a.active { background: transparent; color: var(--green); }
.nav a.active::after { content: ""; position: absolute; left: 23px; right: 23px; bottom: 0; height: 3px; background: var(--green); }
.store-wrap { padding-top: 14px; padding-bottom: 34px; }
.shortcut-panel { background: #fff; border: 1px solid #ececec; padding: 17px 18px 6px; }
.shortcut-grid { display: grid; grid-template-columns: repeat(10,1fr); gap: 4px; padding-bottom: 12px; border-bottom: 1px solid #f1f1f1; }
.shortcut-grid a { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 0 4px; }
.shortcut-grid a > span { display: block; width: 86px; height: 86px; max-width: 100%; }
.shortcut-grid img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; }
.shortcut-grid b { display: block; overflow: hidden; width: 100%; margin-top: 4px; color: #555; font-size: 14px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.shortcut-grid a:hover b { color: var(--green); }
.tag-box { padding: 10px 0 4px; }
.tag-row { display: flex; align-items: flex-start; gap: 9px; padding: 5px 0; border-bottom: 1px dashed #f0f0f0; }
.tag-row:last-child { border-bottom: 0; }
.tag-label { flex: 0 0 auto; min-width: 38px; padding: 1px 4px; color: #fff; font-size: 14px; text-align: center; }
.tag-green .tag-label { background: #f15a4a; }
.tag-orange .tag-label { background: #f0a32b; }
.tag-blue .tag-label { background: #4a9bea; }
.tag-purple .tag-label { background: #a26bd3; }
.tag-row > div { display: flex; flex-wrap: wrap; gap: 3px 16px; min-width: 0; }
.tag-row > div a { color: #555; font-size: 14px; }
.tag-row > div a:hover { color: var(--green); }
.store-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 18px; margin-top: 16px; align-items: start; }
.store-main { min-width: 0; }
.store-section { margin-bottom: 16px; padding: 17px 19px 7px; background: #fff; border: 1px solid #ececec; }
.store-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 11px; border-bottom: 1px solid #f1f1f1; }
.store-head > div { display: flex; align-items: baseline; gap: 11px; min-width: 0; }
.store-head h2 { margin: 0; font-size: 21px; line-height: 1.2; }
.store-head > div > span { color: #999; font-size: 14px; }
.store-head > a { color: var(--green); font-size: 14px; white-space: nowrap; }
.store-tabs { display: flex; gap: 13px; margin-left: 4px; }
.store-tabs a { color: #777; font-size: 14px; }
.store-tabs a.on, .store-tabs a:hover { color: var(--green); }
.store-app-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0 20px; }
.store-app { display: grid; grid-template-columns: 54px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 9px; align-items: center; padding: 11px 0; border-bottom: 1px dashed #f0f0f0; }
.store-app:hover .store-info b { color: var(--green); }
.store-icon { display: block; width: 54px; height: 54px; grid-row: 1 / 3; }
.store-icon img { width: 100%; height: 100%; object-fit: cover; border-radius: 11px; }
.store-info { min-width: 0; }
.store-info b { display: block; overflow: hidden; color: #333; font-size: 14px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.store-info small { display: block; color: #aaa; font-size: 14px; }
.store-view { justify-self: start; margin-top: 3px; padding: 1px 6px; border: 1px solid #dedede; color: #888; font-size: 14px; }
.store-app:hover .store-view { border-color: #f0a8a2; color: var(--green); }
.latest-store-grid .store-app { grid-template-columns: 50px minmax(0,1fr); }
.latest-store-grid .store-icon { width: 50px; height: 50px; }
.store-side { min-width: 0; }
.side-box { margin-bottom: 14px; padding: 14px 15px; background: #fff; border: 1px solid #ececec; }
.side-box-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 9px; border-bottom: 1px solid #f0f0f0; }
.side-box-head b { padding-left: 8px; border-left: 3px solid var(--green); font-size: 17px; }
.side-box-head a { color: #999; font-size: 14px; }
.daily-lead { display: block; padding-top: 10px; }
.daily-lead img { width: 100%; height: 145px; object-fit: cover; }
.daily-lead b { display: block; margin: 7px 0 3px; font-size: 14px; line-height: 1.5; }
.daily-lead p { display: -webkit-box; overflow: hidden; margin: 0; color: #999; font-size: 14px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.daily-tags { display: grid; grid-template-columns: 1fr 1fr; gap: 5px 8px; margin-top: 10px; padding-top: 9px; border-top: 1px solid #f0f0f0; }
.daily-tags a { color: #666; font-size: 14px; }
.daily-tags a::before { content: "●"; margin-right: 4px; color: #e8a09a; font-size: 14px; }
.rank-box { padding-bottom: 8px; }
.rank-box .rank-row { padding: 8px 0; }
.rank-box .rank-row img { width: 37px; height: 37px; border-radius: 8px; }
.rank-box .rank-info b { font-size: 14px; }
.rank-box .rank-info small { font-size: 14px; }
.category-icons { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; padding-top: 6px; }
.category-icons a { padding: 8px 3px; border-bottom: 1px dashed #f0f0f0; color: #666; font-size: 14px; text-align: center; }
.category-icons a:hover { color: var(--green); }
.mobile-banner, .mobile-circles { display: none; }
@media (max-width: 1050px) {
  .shortcut-grid a > span { width: 72px; height: 72px; }
  .store-layout { grid-template-columns: minmax(0,1fr) 270px; }
  .store-app-grid { gap: 0 12px; }
}
@media (max-width: 800px) {
  .topbar { display: none; }
  .header-main { min-height: 61px; padding: 8px 0; gap: 8px; }
  .logo { gap: 6px; }
  .logo img { width: 0; height: 0; display: none; }
  .logo-text b { font-size: 18px; }
  .logo-text b em { color: var(--green); }
  .logo-text small { display: none; }
  .search { height: 34px; max-width: none; flex: 1; border: 1px solid var(--green); margin-left: 4px; }
  .search input { padding: 0 8px; font-size: 14px; }
  .search button { width: 52px; font-size: 0; }
  .header-tip { display: none; }
  .mobile-menu-btn { display: block; }
  .nav { display: block; border-top: 1px solid #f0f0f0; overflow: hidden; }
  .nav .wrap { height: 42px; gap: 0; overflow-x: auto; scrollbar-width: none; }
  .nav .wrap::-webkit-scrollbar { display: none; }
  .nav a { flex: 0 0 auto; padding: 0 14px; font-size: 14px; }
  .nav a.active::after { left: 14px; right: 14px; height: 2px; }
  .store-wrap { padding-top: 0; }
  .mobile-banner { display: block; margin: 0 -14px; }
  .mobile-banner a { position: relative; display: block; height: 200px; overflow: hidden; }
  .mobile-banner img { width: 100%; height: 100%; object-fit: cover; }
  .mobile-banner a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,38,14,.86), transparent 60%); }
  .mobile-banner a > span { position: absolute; z-index: 1; left: 14px; right: 14px; bottom: 13px; }
  .mobile-banner em { display: inline-block; padding: 2px 6px; background: var(--green); color: #fff; font-size: 14px; font-style: normal; }
  .mobile-banner b { display: block; margin-top: 5px; color: #fff; font-size: 20px; line-height: 1.35; }
  .mobile-circles { display: grid; grid-template-columns: repeat(3,1fr); padding: 12px 5px 3px; }
  .mobile-circles a { display: flex; flex-direction: column; align-items: center; gap: 3px; }
  .mobile-circles i { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; color: #fff; font-size: 18px; font-style: normal; font-weight: 700; }
  .c-star { background: #f2c230; }
  .c-rec { background: #e1251b; }
  .c-game { background: #459fea; }
  .mobile-circles b { font-size: 14px; }
  .shortcut-panel { display: none; }
  .store-layout { display: block; margin-top: 8px; }
  .store-section { margin-bottom: 10px; padding: 12px 10px 3px; }
  .store-head { padding-bottom: 8px; }
  .store-head h2 { font-size: 17px; }
  .store-head > div > span { display: none; }
  .store-head > a { font-size: 14px; }
  .store-tabs { display: none; }
  .store-app-grid { grid-template-columns: repeat(3,1fr); gap: 0 6px; }
  .store-app { display: flex; flex-direction: column; align-items: center; padding: 8px 3px 10px; text-align: center; }
  .store-icon { width: 76px; height: 76px; grid-row: auto; }
  .store-icon img { border-radius: 16px; }
  .store-info { width: 100%; }
  .store-info b { display: -webkit-box; min-height: 31px; margin-top: 5px; font-size: 14px; line-height: 1.4; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .store-info small { display: none; }
  .store-view { display: none; }
  .store-side { display: block; }
  .side-box { margin-bottom: 10px; }
  .daily-lead img { height: 155px; }
  .category-icons { grid-template-columns: repeat(4,1fr); }
  .side-box.category-box { display: none; }
}

@media (max-width: 800px) {
  .header { background: var(--green); }
  .header-main { min-height: 57px; }
  .logo-text b { color: #fff; font-size: 18px; }
  .logo-text b em { color: #fff; }
  .search { border: 0; background: #fff; height: 32px; }
  .search button { background: #b91812; }
  .mobile-menu-btn { color: #fff; }
  .nav { background: #fff; }
  .mobile-hot { display: block !important; }
  .mobile-hot .store-app-grid { display: grid; }
}
.mobile-hot { display: none; }

@media (max-width: 800px) {
  .store-head h2 { border-left: 0; padding-left: 0; }
  .store-main > .store-section:not(.mobile-hot) .store-app:nth-child(n+7) { display: none; }
}

.topics-page { padding-top: 22px; padding-bottom: 40px; }
.topic-block { margin-bottom: 13px; padding: 16px 18px; border: 1px solid #ececec; background: #fff; }
.topic-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid #f0f0f0; }
.topic-head h2 { margin: 0; padding-left: 8px; border-left: 3px solid var(--green); font-size: 18px; }
.topic-head a { display: inline-flex; align-items: center; gap: 2px; color: #999; font-size: 14px; }
.topic-links { display: flex; flex-wrap: wrap; gap: 8px 18px; padding-top: 10px; }
.topic-links a { color: #666; font-size: 14px; }
.topic-links a:hover { color: var(--green); }

@media (max-width: 800px) {
  .nav a:nth-child(n+7) { display: none; }
}

@media (max-width: 800px) {
  .nav a:nth-child(n+6) { display: none; }
}

@media (max-width: 800px) {
  .nav a { padding: 0 9px; font-size: 14px; }
  .nav a.active::after { left: 9px; right: 9px; }
}

/* source-synced detail page */
.detail-top { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 25px; align-items: center; padding-top: 18px; padding-bottom: 24px; }
.detail-icon { position: relative; width: 180px; height: 180px; padding: 5px; border: 1px solid #ececec; background: #fff; }
.detail-icon img { width: 100%; height: 100%; object-fit: cover; border-radius: 20px; }
.detail-icon span { position: absolute; left: 10px; top: 10px; padding: 2px 6px; background: var(--green); color: #fff; font-size: 14px; }
.detail-main-info { min-width: 0; }
.detail-main-info h1 { margin: 5px 0 6px; font-size: 32px; line-height: 1.3; }
.detail-main-info > p { overflow: hidden; max-width: 760px; margin: 0 0 8px; color: #888; font-size: 14px; line-height: 1.7; text-overflow: ellipsis; white-space: nowrap; }
.detail-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.detail-tags span { padding: 2px 7px; border: 1px solid #dcefdf; background: #f4fbf5; color: var(--green-deep); font-size: 14px; }
.detail-facts { display: flex; gap: 34px; padding: 10px 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.detail-facts b { display: block; overflow: hidden; max-width: 180px; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.detail-facts span { display: block; margin-top: 1px; color: #aaa; font-size: 14px; }
.detail-actions { display: flex; align-items: center; gap: 11px; margin-top: 13px; }
.detail-download { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 40px; padding: 0 23px; background: var(--green); color: #fff; font-size: 14px; font-weight: 700; }
.detail-download:hover { background: var(--green-deep); }
.detail-source { display: inline-flex; align-items: center; gap: 3px; color: #999; font-size: 14px; }
.detail-source:hover { color: var(--green); }
.detail-layout { display: grid; grid-template-columns: minmax(0,1fr) 290px; gap: 20px; padding-bottom: 30px; align-items: start; }
.detail-content { min-width: 0; }
.detail-box { margin-bottom: 13px; padding: 16px 18px; border: 1px solid #ececec; background: #fff; }
.detail-box-head { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid #f0f0f0; }
.detail-box-head h2 { margin: 0; padding-left: 8px; border-left: 3px solid var(--green); font-size: 19px; }
.detail-box-head span { color: #bbb; font: 14px Consolas, monospace; }
.detail-box > p { margin: 10px 0 0; color: #666; font-size: 14px; line-height: 2; }
.detail-shots { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; padding-top: 12px; }
.detail-shots img { width: 100%; height: 150px; object-fit: cover; border: 1px solid #eee; }
.download-table { margin-top: 11px; border: 1px solid #eee; }
.download-row { display: flex; align-items: center; gap: 11px; min-height: 50px; padding: 8px 10px; border-bottom: 1px solid #f0f0f0; }
.download-row:last-child { border-bottom: 0; }
.download-row > span { flex: 0 0 auto; width: 64px; color: #999; font-size: 14px; }
.download-row > b { flex: 1; overflow: hidden; font-size: 14px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.download-row > em { flex: 0 0 auto; color: #aaa; font-size: 14px; font-style: normal; }
.download-row > a { flex: 0 0 auto; padding: 4px 10px; background: var(--green); color: #fff; font-size: 14px; }
.download-row > a:hover { background: var(--green-deep); }
.detail-side { min-width: 0; }
.detail-side-card { margin-bottom: 13px; padding: 13px 14px; border: 1px solid #ececec; background: #fff; }
.detail-side-card .side-box-head { padding-bottom: 8px; }
.detail-side-card .side-box-head b { font-size: 16px; }
.info-rows > div { display: flex; justify-content: space-between; gap: 8px; padding: 7px 0; border-bottom: 1px dashed #f0f0f0; font-size: 14px; }
.info-rows > div:last-child { border-bottom: 0; }
.info-rows span { color: #999; }
.info-rows em { overflow: hidden; color: #444; font-style: normal; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.detail-note > b { display: block; padding-left: 8px; border-left: 3px solid var(--green); font-size: 14px; }
.detail-note p { margin: 7px 0 0; color: #999; font-size: 14px; line-height: 1.8; }
.related-section { padding-bottom: 40px; }
@media (max-width: 1050px) {
  .detail-top { grid-template-columns: 160px minmax(0,1fr); gap: 18px; }
  .detail-icon { width: 150px; height: 150px; }
  .detail-main-info h1 { font-size: 27px; }
  .detail-facts { gap: 22px; }
  .detail-layout { grid-template-columns: minmax(0,1fr) 260px; }
}
@media (max-width: 800px) {
  .detail-top { grid-template-columns: 104px minmax(0,1fr); gap: 12px; padding: 12px 0 16px; align-items: start; }
  .detail-icon { width: 100px; height: 100px; padding: 3px; }
  .detail-icon img { border-radius: 15px; }
  .detail-icon span { left: 6px; top: 6px; font-size: 14px; }
  .detail-main-info h1 { margin: 4px 0; font-size: 21px; }
  .detail-main-info > p { font-size: 14px; white-space: normal; }
  .detail-tags { display: none; }
  .detail-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 14px; padding: 8px 0; }
  .detail-facts b { font-size: 14px; max-width: 120px; }
  .detail-actions { flex-wrap: wrap; gap: 7px; margin-top: 9px; }
  .detail-download { min-height: 34px; padding: 0 14px; font-size: 14px; }
  .detail-source { font-size: 14px; }
  .detail-layout { grid-template-columns: 1fr; gap: 0; }
  .detail-box { padding: 12px 11px; }
  .detail-box-head h2 { font-size: 17px; }
  .detail-box > p { font-size: 14px; line-height: 1.9; }
  .detail-shots { gap: 5px; }
  .detail-shots img { height: 86px; }
  .download-row { gap: 7px; padding: 7px; }
  .download-row > span { width: 48px; }
  .download-row > b { font-size: 14px; }
  .download-row > em { display: none; }
  .download-row > a { padding: 4px 7px; }
  .detail-side { order: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 3px; }
  .detail-side-card { margin-bottom: 0; padding: 11px; }
  .detail-side-card:nth-child(3) { grid-column: 1 / -1; }
  .related-grid { grid-template-columns: 1fr 1fr; }
}

/* content typography: body copy and content titles at 15px */
body { font-size: 15px; }
.store-info b,
.icon-card > b,
.browse-card > b,
.shortcut-grid b,
.latest-info b,
.mini-row b,
.daily-lead b,
.rank-info b,
.news-home-grid b,
.news-item b,
.detail-main-info > p,
.detail-box > p,
.article-copy,
.article-lead,
.info-page,
.app-info p,
.download-row > b,
.info-rows > div,
.topic-links a {
  font-size: 15px;
}
.store-info b { line-height: 1.45; }
.detail-box > p { line-height: 2; }
.article-copy, .article-lead { line-height: 2; }
.download-row > b { line-height: 1.5; }

/* tags: unified 14px */
.app-tags,
.detail-tags span,
.tag-label,
.tag-row > div a,
.type-tag,
.hot-tag,
.store-tabs a,
.browse-filter > a,
.daily-tags a,
.category-icons a {
  font-size: 14px;
  line-height: 1.5;
}
.app-tags { display: inline-block; }
.detail-tags span { padding: 3px 8px; }
.tag-label { min-width: 48px; padding: 2px 7px; }
.tag-row { gap: 10px; padding-top: 6px; padding-bottom: 6px; }
.tag-row > div { gap: 5px 18px; }
.type-tag, .hot-tag { padding: 3px 7px; }
.store-tabs { gap: 15px; }
.browse-filter > a { min-height: 33px; padding: 0 14px; }
.daily-tags { gap: 7px 10px; }
.category-icons a { padding: 9px 3px; }
@media (max-width: 800px) {
  .app-tags, .detail-tags span, .tag-label, .tag-row > div a,
  .type-tag, .hot-tag, .store-tabs a, .browse-filter > a,
  .daily-tags a, .category-icons a { font-size: 14px; }
  .browse-filter > a { min-height: 31px; padding: 0 10px; }
}

/* navigation sizing */
.topbar { font-size: 14px; }
.nav a { font-size: 14px; }
.breadcrumb { font-size: 14px; }
.mobile-menu-panel a { font-size: 14px; }
@media (max-width: 800px) {
  .topbar { font-size: 14px; }
  .nav a { font-size: 14px; }
  .breadcrumb { font-size: 14px; }
}

/* source-style metadata between title and download button */
.detail-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 24px;
  margin: 9px 0 8px;
  padding: 8px 0;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}
.detail-field {
  display: flex;
  align-items: baseline;
  min-width: 0;
  gap: 8px;
  padding: 3px 0;
  font-size: 14px;
}
.detail-field > span {
  flex: 0 0 55px;
  color: #999;
  font-size: 14px;
}
.detail-field > b,
.detail-field > a {
  overflow: hidden;
  min-width: 0;
  color: #444;
  font-size: 14px;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.detail-field > a { color: var(--green); }
.detail-field > b[title$=".com"] { color: var(--green); }
@media (max-width: 800px) {
  .detail-fields {
    grid-template-columns: 1fr 1fr;
    gap: 0 12px;
    margin: 6px 0;
    padding: 6px 0;
  }
  .detail-field { gap: 5px; padding: 2px 0; }
  .detail-field > span { flex-basis: 48px; font-size: 14px; }
  .detail-field > b, .detail-field > a { font-size: 14px; }
}

/* detail top alignment and 14px field typography */
.detail-top {
  grid-template-columns: 200px minmax(0,1fr);
  gap: 28px;
  align-items: stretch;
  padding-top: 22px;
  padding-bottom: 28px;
}
.detail-icon {
  width: 200px;
  height: auto;
  min-height: 200px;
  align-self: stretch;
  padding: 4px;
}
.detail-icon img { width: 100%; height: 100%; object-fit: cover; }
.detail-main-info { display: flex; flex-direction: column; justify-content: center; min-height: 200px; }
.detail-main-info h1 { margin: 0 0 10px; font-size: 32px; }
.detail-fields {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px 28px;
  margin: 0 0 11px;
  padding: 12px 0;
}
.detail-field {
  gap: 10px;
  padding: 1px 0;
  font-size: 14px;
  line-height: 1.55;
}
.detail-field > span { flex: 0 0 64px; font-size: 14px; color: #999; }
.detail-field > b,
.detail-field > a { font-size: 14px; line-height: 1.55; }
.detail-tags { gap: 6px; margin: 0 0 12px; }
.detail-tags span { font-size: 14px; line-height: 1.5; padding: 3px 8px; }
.detail-actions { margin-top: 0; gap: 12px; }
@media (max-width: 1050px) {
  .detail-top { grid-template-columns: 180px minmax(0,1fr); gap: 22px; }
  .detail-icon { width: 180px; min-height: 190px; }
  .detail-fields { gap: 7px 20px; }
  .detail-field > span { flex-basis: 58px; }
}
@media (max-width: 800px) {
  .detail-top { grid-template-columns: 104px minmax(0,1fr); gap: 12px; align-items: start; padding: 12px 0 16px; }
  .detail-icon { width: 100px; min-height: 100px; height: 100px; align-self: start; }
  .detail-main-info { min-height: 0; display: block; }
  .detail-main-info h1 { margin: 2px 0 8px; font-size: 21px; }
  .detail-fields { grid-template-columns: 1fr 1fr; gap: 6px 12px; margin-bottom: 8px; padding: 8px 0; }
  .detail-field { font-size: 14px; gap: 5px; }
  .detail-field > span { flex-basis: 56px; font-size: 14px; }
  .detail-field > b, .detail-field > a { font-size: 14px; }
  .detail-tags { margin-bottom: 8px; }
}

.detail-download, .detail-source { font-size: 14px; }

/* detail title 28 and square icon */
.detail-top {
  grid-template-columns: 240px minmax(0,1fr);
  gap: 24px;
  align-items: start;
  padding-top: 22px;
  padding-bottom: 26px;
}
.detail-icon {
  width: 240px;
  height: 240px;
  min-height: 240px;
  aspect-ratio: 1 / 1;
  align-self: start;
  padding: 4px;
}
.detail-icon img { width: 100%; height: 100%; object-fit: cover; }
.detail-main-info {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 240px;
}
.detail-main-info h1 { margin: 0 0 8px; font-size: 28px; line-height: 1.3; }
.detail-fields {
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 4px 20px;
  margin: 0 0 8px;
  padding: 9px 0;
}
.detail-field { gap: 8px; padding: 1px 0; font-size: 14px; line-height: 1.4; }
.detail-field > span { flex: 0 0 62px; font-size: 14px; }
.detail-field > b, .detail-field > a { font-size: 14px; line-height: 1.4; }
.detail-tags { margin: 0 0 9px; }
.detail-actions { margin-top: 0; }
@media (max-width: 1050px) {
  .detail-top { grid-template-columns: 220px minmax(0,1fr); gap: 20px; }
  .detail-icon { width: 220px; height: 220px; min-height: 220px; }
  .detail-main-info { min-height: 220px; }
  .detail-main-info h1 { font-size: 28px; }
  .detail-fields { grid-template-columns: 1fr 1fr; gap: 4px 14px; }
}
@media (max-width: 800px) {
  .detail-top { grid-template-columns: 104px minmax(0,1fr); gap: 12px; align-items: start; padding: 12px 0 16px; }
  .detail-icon { width: 100px; height: 100px; min-height: 100px; }
  .detail-main-info { display: block; min-height: 0; }
  .detail-main-info h1 { margin: 2px 0 8px; font-size: 24px; }
  .detail-fields { grid-template-columns: 1fr 1fr; gap: 6px 12px; margin-bottom: 8px; padding: 8px 0; }
}

/* square 180 icon aligned with title/tag block */
.detail-top {
  grid-template-columns: 180px minmax(0,1fr);
  gap: 22px;
  align-items: start;
}
.detail-icon {
  width: 180px;
  height: 180px;
  min-height: 180px;
  aspect-ratio: 1 / 1;
  align-self: start;
}
.detail-icon img { width: 100%; height: 100%; object-fit: cover; }
.detail-main-info {
  display: block;
  min-height: 0;
}
.detail-main-info h1 { margin-top: 0; margin-bottom: 8px; font-size: 28px; }
@media (max-width: 1050px) {
  .detail-top { grid-template-columns: 180px minmax(0,1fr); gap: 20px; }
  .detail-icon { width: 180px; height: 180px; min-height: 180px; }
}
@media (max-width: 800px) {
  .detail-top { grid-template-columns: 100px minmax(0,1fr); gap: 12px; }
  .detail-icon { width: 100px; height: 100px; min-height: 100px; }
}

/* detail card layout matching reference */
.detail-crumb { padding-top: 13px; padding-bottom: 10px; color: #888; font-size: 14px; gap: 7px; }
.detail-crumb i { color: #aaa; font-style: normal; }
.detail-panel { margin-top: 0; padding: 20px 22px 18px; border: 1px solid #ececec; background: #fff; }
.detail-top { padding: 0; grid-template-columns: 180px minmax(0,1fr); gap: 24px; align-items: start; }
.detail-icon { width: 180px; height: 180px; min-height: 180px; align-self: start; }
.detail-main-info { display: flex; flex-direction: column; justify-content: flex-start; min-height: 0; }
.detail-main-info h1 { margin: 0 0 9px; font-size: 28px; line-height: 1.3; }
.detail-fields { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 3px 22px; margin: 0 0 8px; padding: 8px 0; }
.detail-field { gap: 9px; font-size: 14px; line-height: 1.5; }
.detail-field > span { flex: 0 0 60px; font-size: 14px; }
.detail-field > b, .detail-field > a { font-size: 14px; line-height: 1.5; }
.detail-tags { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 13px; margin: 0 0 9px; }
.detail-tags em { color: #999; font-size: 14px; font-style: normal; }
.detail-tags a { color: var(--green); font-size: 14px; }
.detail-tags a:hover { color: var(--green-deep); }
.detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 0; }
.report-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 13px; border: 1px solid #e2e2e2; background: #fff; color: #999; font-size: 14px; }
.report-btn:hover { border-color: #bbb; color: #666; }
.detail-download { min-height: 38px; padding: 0 20px; font-size: 14px; }
.detail-source { margin-left: 3px; font-size: 14px; }
@media (max-width: 1050px) {
  .detail-panel { padding: 17px; }
  .detail-top { grid-template-columns: 180px minmax(0,1fr); gap: 18px; }
  .detail-fields { grid-template-columns: 1fr 1fr; gap: 3px 14px; }
}
@media (max-width: 800px) {
  .detail-crumb { padding-top: 9px; padding-bottom: 8px; font-size: 14px; }
  .detail-panel { padding: 12px; }
  .detail-top { grid-template-columns: 100px minmax(0,1fr); gap: 12px; }
  .detail-icon { width: 100px; height: 100px; min-height: 100px; }
  .detail-main-info h1 { margin-bottom: 7px; font-size: 24px; }
  .detail-fields { grid-template-columns: 1fr 1fr; gap: 5px 10px; padding: 7px 0; }
  .detail-field { font-size: 14px; gap: 4px; }
  .detail-field > span { flex-basis: 54px; font-size: 14px; }
  .detail-field > b, .detail-field > a { font-size: 14px; }
  .detail-tags { gap: 5px 9px; margin-bottom: 8px; }
  .detail-tags em, .detail-tags a { font-size: 14px; }
  .report-btn { min-height: 30px; padding: 0 9px; font-size: 14px; }
  .detail-download { min-height: 34px; padding: 0 12px; font-size: 14px; }
  .detail-source { width: 100%; margin-left: 0; }
}

/* reports under icon, remove horizontal field lines */
.detail-left { width: 180px; display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
.detail-reports { display: flex; gap: 6px; }
.detail-reports .report-btn { flex: 1; min-height: 32px; padding: 0 4px; font-size: 14px; }
.detail-fields { border-top: 0; border-bottom: 0; padding-top: 5px; padding-bottom: 5px; }
@media (max-width: 1050px) {
  .detail-left { width: 180px; }
}
@media (max-width: 800px) {
  .detail-left { width: 100px; gap: 5px; }
  .detail-reports { gap: 3px; }
  .detail-reports .report-btn { min-height: 27px; padding: 0 2px; font-size: 14px; }
}

/* tag block moved below intro; actions pinned to bottom */
.detail-left { min-height: 220px; }
.detail-main-info { min-height: 220px; }
.detail-actions { margin-top: auto; }
.detail-tag-box { padding-top: 14px; padding-bottom: 14px; }
.detail-tag-box .detail-tags { margin: 10px 0 0; }
.detail-tag-box .detail-tags em { color: #999; }
@media (max-width: 800px) {
  .detail-left { min-height: 0; }
  .detail-main-info { min-height: 0; }
  .detail-actions { margin-top: 8px; }
}

/* pin download row to the bottom of the 220px info block */
@media (min-width: 801px) {
  .detail-main-info { position: relative; min-height: 220px; padding-bottom: 44px; }
  .detail-actions { position: absolute; left: 0; bottom: 0; margin: 0; }
}

@media (min-width: 801px) {
  .detail-main-info { height: 220px; min-height: 220px; max-height: 220px; }
}

/* update log module */
.update-log-box { margin-top: 0; }
.update-log-list { padding-top: 10px; }
.update-log-list p { margin: 0 0 7px; color: #666; font-size: 14px; line-height: 1.9; }
.update-log-list p:first-child { color: #333; font-weight: 700; }
.update-log-list p:last-child { margin-bottom: 0; }

/* lighter gradient red theme */
:root {
  --red: #e9564c;
  --red-deep: #cf3f37;
  --red-soft: #fff4f2;
  --green: #e9564c;
  --green-deep: #cf3f37;
  --green-soft: #fff4f2;
  --theme-gradient: linear-gradient(110deg, #f0786c 0%, #e9564c 48%, #d8423a 100%);
}
.topbar,
.nav {
  background: var(--theme-gradient);
}
.search { border-color: #ef8b80; }
.search button,
.download-btn,
.app-download,
.big-download,
.aside-download,
.detail-download,
.impact-btn {
  background: var(--theme-gradient);
}
.search button:hover,
.download-btn:hover,
.app-download:hover,
.big-download:hover,
.aside-download:hover,
.detail-download:hover,
.impact-btn:hover {
  background: linear-gradient(110deg, #e9655a 0%, #d94a41 48%, #c93831 100%);
}
.nav a:hover,
.nav a.active {
  background: rgba(146, 30, 25, .18);
  color: #fff;
}
.logo-text b em,
.header-tip .icon,
.header-tip b,
.block-head h2,
.page-kicker,
.app-tags,
.news-item em,
.news-band-grid em,
.latest-meta em,
.source-line a,
.side-help a,
.side-more,
.source-link:hover,
.filter-side > a:hover,
.filter-side > a.active {
  color: var(--red);
}
.block-head h2,
.side-panel-head b,
.side-box-head b,
.detail-box-head h2,
.topic-head h2,
.detail-note > b {
  border-left-color: var(--red);
}
.side-help { border-color: #f4cbc6; background: #fff7f5; }
.footer { border-top-color: #e9564c; }

/* keep the gradient light but restore text contrast in the top bars */
.topbar { background: linear-gradient(110deg, #df554b 0%, #ca3b33 100%); }
.nav { background: linear-gradient(110deg, #ef7267 0%, #e4544a 55%, #d64038 100%); }

/* keep the original header structure: no red banners */
.topbar {
  background: #f7f7f7;
  color: #777;
  border-bottom: 1px solid #ececec;
}
.topbar a:hover { color: var(--red); }
.header { background: #fff; }
.nav {
  background: #fff;
  border-bottom: 1px solid #e8e8e8;
}
.nav a {
  background: transparent;
  color: #333;
}
.nav a:hover,
.nav a.active {
  background: transparent;
  color: var(--red);
}
.nav a.active::after {
  background: var(--red);
}
@media (max-width: 800px) {
  .header { background: #fff; }
  .logo-text b { color: #222; }
  .logo-text b em { color: var(--red); }
  .mobile-menu-btn { color: #222; }
  .nav { background: #fff; }
  .nav a { color: #333; }
  .nav a:hover, .nav a.active { color: var(--red); }
}

/* 09pc top navigation category size */
.nav a { font-size: 16px; }

/* 09pc tag rows: one line only */
.tag-row > div {
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
  white-space: nowrap;
}
.tag-row > div a { flex: 0 0 auto; }

/* list card metadata */
.browse-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 2px 9px;
  margin-top: 6px;
  color: #777;
  font-size: 14px;
  line-height: 1.45;
}
.browse-meta span { white-space: nowrap; }
.browse-meta em { margin-right: 3px; color: #aaa; font-style: normal; }
.browse-meta b { color: var(--red); font-weight: 700; }
.browse-card > em { margin-top: 7px; }

/* list metrics: compact two-row alignment */
.browse-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas: "size rating" "update update";
  justify-items: center;
  gap: 2px 6px;
  width: 100%;
}
.browse-meta span:nth-child(1) { grid-area: size; }
.browse-meta span:nth-child(2) { grid-area: update; }
.browse-meta span:nth-child(3) { grid-area: rating; }

/* clean, uniform list cards */
.browse-page { padding-top: 16px; }
.browse-grid {
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 14px;
  align-items: stretch;
}
.browse-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  padding: 16px 13px 12px;
  border: 1px solid #ececec;
  border-radius: 7px;
  background: #fff;
  text-align: center;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.browse-card:hover {
  border-color: #efaaa4;
  background: #fff;
  box-shadow: 0 8px 20px rgba(120, 48, 40, .07);
  transform: translateY(-2px);
}
.browse-img {
  width: 92px;
  height: 92px;
  max-width: none;
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: 18px;
  overflow: hidden;
  background: transparent;
}
.browse-img img { width: 100%; height: 100%; border-radius: 18px; object-fit: cover; }
.browse-card:hover .browse-img { transform: none; border-color: transparent; box-shadow: none; }
.browse-card > b {
  display: -webkit-box;
  overflow: hidden;
  width: 100%;
  height: 40px;
  min-height: 40px;
  margin: 7px 0 0;
  color: #222;
  font-size: 14px;
  line-height: 1.45;
  text-align: center;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.browse-card > small { display: none; }
.browse-meta {
  display: flex;
  flex-direction: column;
  gap: 1px;
  width: 100%;
  margin-top: auto;
  padding-top: 9px;
  border-top: 1px solid #f1f1f1;
  color: #555;
  font-size: 14px;
  line-height: 1.55;
}
.browse-meta span {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  white-space: nowrap;
}
.browse-meta span:nth-child(1) { order: 1; }
.browse-meta span:nth-child(3) { order: 2; }
.browse-meta span:nth-child(2) { order: 3; }
.browse-meta em { flex: 0 0 auto; color: #999; font-style: normal; }
.browse-meta b { overflow: hidden; color: var(--red); font-weight: 700; text-overflow: ellipsis; }
.browse-meta span:nth-child(2) b { color: #333; font-weight: 400; }
@media (max-width: 1050px) {
  .browse-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (max-width: 800px) {
  .browse-page { padding-top: 12px; }
  .browse-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
  .browse-card { padding: 13px 11px 10px; }
  .browse-img { width: 84px; height: 84px; }
  .browse-card > b { height: 38px; min-height: 38px; margin-top: 6px; }
  .browse-meta { padding-top: 8px; }
}

/* compact list cards */
.browse-grid {
  grid-template-columns: repeat(6, minmax(0,1fr));
  gap: 10px;
}
.browse-card {
  padding: 11px 9px 9px;
}
.browse-img { width: 76px; height: 76px; border-radius: 15px; }
.browse-img img { border-radius: 15px; }
.browse-card > b {
  height: 36px;
  min-height: 36px;
  margin-top: 5px;
  font-size: 14px;
  line-height: 1.3;
}
.browse-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas: none;
  gap: 2px 5px;
  margin-top: 6px;
  padding-top: 6px;
}
.browse-meta span {
  display: flex;
  justify-content: flex-start;
  gap: 3px;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
}
.browse-meta span:nth-child(1) { grid-area: auto; grid-column: 1; grid-row: 1; }
.browse-meta span:nth-child(3) { grid-area: auto; grid-column: 2; grid-row: 1; }
.browse-meta span:nth-child(2) { grid-area: auto; grid-column: 1 / -1; grid-row: 2; }
.browse-meta b { overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1050px) {
  .browse-grid { grid-template-columns: repeat(5, minmax(0,1fr)); }
}
@media (max-width: 800px) {
  .browse-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
  .browse-card { padding: 10px 8px 8px; }
  .browse-img { width: 72px; height: 72px; }
  .browse-card > b { height: 35px; min-height: 35px; }
  .browse-meta { gap: 2px 4px; }
}

/* second-level source categories */
.subcategory-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px 4px;
  padding: 8px 0 9px;
  border-bottom: 1px solid #ececec;
  margin-bottom: 10px;
}
.subcategory-filter > span { margin-right: 5px; color: #999; font-size: 14px; }
.subcategory-filter button {
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: #666;
  padding: 4px 8px;
  font-size: 14px;
  line-height: 1.4;
  cursor: pointer;
}
.subcategory-filter button:hover { color: var(--red); }
.subcategory-filter button.active { background: var(--red-soft); color: var(--red); font-weight: 700; }
@media (max-width: 800px) {
  .subcategory-filter { gap: 2px; padding: 7px 0 8px; }
  .subcategory-filter > span { width: 100%; margin: 0 0 2px; }
  .subcategory-filter button { padding: 4px 7px; font-size: 14px; }
}

/* topic list */
.topics-page { padding-top: 22px; padding-bottom: 42px; }
.topics-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding-bottom: 14px; border-bottom: 1px solid #ececec; }
.topics-head h1 { margin: 5px 0 3px; font-size: 30px; }
.topics-head p { margin: 0; color: #888; font-size: 14px; }
.topics-count { color: #999; font-size: 14px; white-space: nowrap; }
.topic-filter { display: flex; gap: 4px; padding: 13px 0 11px; }
.topic-filter button { border: 0; border-radius: 3px; background: transparent; color: #666; padding: 5px 12px; font-size: 14px; cursor: pointer; }
.topic-filter button:hover { color: var(--red); }
.topic-filter button.active { background: var(--red-soft); color: var(--red); font-weight: 700; }
.topic-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.topic-card { min-width: 0; height: 100%; border: 1px solid #ececec; border-radius: 7px; background: #fff; overflow: hidden; transition: transform .2s, border-color .2s, box-shadow .2s; }
.topic-card:hover { transform: translateY(-2px); border-color: #efaaa4; box-shadow: 0 9px 22px rgba(120,48,40,.07); }
.topic-card > a { display: flex; flex-direction: column; height: 100%; }
.topic-cover { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #f2f2f2; }
.topic-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.topic-card:hover .topic-cover img { transform: scale(1.035); }
.topic-cover em { position: absolute; left: 9px; top: 9px; padding: 2px 6px; border-radius: 2px; background: rgba(0,0,0,.6); color: #fff; font-size: 14px; font-style: normal; }
.topic-body { display: flex; flex-direction: column; flex: 1; padding: 12px 13px 13px; }
.topic-body h2 { display: -webkit-box; overflow: hidden; min-height: 46px; margin: 0 0 5px; font-size: 17px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.topic-body > p { display: -webkit-box; overflow: hidden; min-height: 44px; margin: 0 0 10px; color: #888; font-size: 14px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.topic-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 9px; border-top: 1px solid #f2f2f2; color: #999; font-size: 14px; }
.topic-meta time { white-space: nowrap; }
.topic-meta i { display: inline-flex; align-items: center; gap: 3px; color: var(--red); font-style: normal; white-space: nowrap; }
.topic-meta .icon { width: 12px; height: 12px; }
@media (max-width: 1050px) {
  .topic-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 800px) {
  .topics-page { padding-top: 14px; padding-bottom: 28px; }
  .topics-head h1 { font-size: 25px; }
  .topics-head p { font-size: 14px; }
  .topics-count { font-size: 14px; }
  .topic-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
  .topic-body { padding: 9px 9px 10px; }
  .topic-body h2 { min-height: 40px; font-size: 15px; }
  .topic-body > p { min-height: 40px; font-size: 14px; }
  .topic-meta { display: block; font-size: 14px; }
  .topic-meta i { margin-top: 3px; }
}

/* list and topic breadcrumb */
.list-crumb { padding-top: 11px; padding-bottom: 7px; color: #888; font-size: 12px; }
.list-crumb i { color: #aaa; font-style: normal; }
.list-crumb b { color: #555; font-weight: 400; }

/* detail related topics, comments, recent updates */
.related-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; padding-top: 10px; }
.related-topic-card { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 11px; border: 1px solid #eee; border-radius: 4px; background: #fff; }
.related-topic-card:hover { border-color: #efaaa4; background: #fff8f6; }
.related-topic-card span { min-width: 0; }
.related-topic-card b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.related-topic-card small { display: block; margin-top: 2px; color: #999; font-size: 14px; }
.related-topic-card .icon { width: 13px; height: 13px; color: #aaa; }
.comment-box { margin-top: 0; }
.comment-count { color: #999; font-size: 14px; }
.comment-empty { padding: 13px 0 10px; color: #999; font-size: 14px; }
.comment-list { display: flex; flex-direction: column; gap: 9px; }
.comment-item { padding: 10px 0; border-top: 1px solid #f1f1f1; }
.comment-item > div { display: flex; align-items: center; gap: 8px; color: #999; font-size: 14px; }
.comment-item > div b { color: #444; font-size: 14px; }
.comment-item p { margin: 5px 0 0; color: #555; font-size: 14px; line-height: 1.8; }
.comment-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; margin-top: 12px; }
.comment-form textarea { width: 100%; min-height: 64px; resize: vertical; padding: 8px 10px; border: 1px solid #e6e6e6; border-radius: 3px; color: #333; font: 14px/1.6 var(--font); outline: 0; }
.comment-form textarea:focus { border-color: #efaaa4; }
.comment-form button { align-self: end; min-height: 34px; padding: 0 16px; border: 0; border-radius: 3px; background: var(--green); color: #fff; font-size: 14px; font-weight: 700; cursor: pointer; }
.comment-form button:hover { background: var(--green-deep); }
.recent-side-list { padding-top: 5px; }
.recent-side-row { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px dashed #f0f0f0; }
.recent-side-row:last-child { border-bottom: 0; }
.recent-side-row img { width: 34px; height: 34px; border-radius: 7px; object-fit: cover; }
.recent-side-row span { min-width: 0; }
.recent-side-row b { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.recent-side-row small { display: block; margin-top: 1px; color: #999; font-size: 14px; }
@media (max-width: 800px) {
  .related-topic-grid { grid-template-columns: 1fr; gap: 6px; }
  .comment-form { grid-template-columns: 1fr; }
  .comment-form button { width: 100%; }
}

/* source-style related topics */
.source-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; padding-top: 12px; }
.source-topic-card { min-width: 0; padding: 11px; border: 1px solid #ededed; border-radius: 4px; background: #fff; }
.source-topic-head { display: flex; align-items: center; gap: 9px; }
.source-topic-cover { display: block; flex: 0 0 78px; width: 78px; height: 56px; overflow: hidden; border-radius: 3px; background: linear-gradient(135deg, #f4f4f4, #e9e9e9); }
.source-topic-cover img { width: 100%; height: 100%; object-fit: cover; }
.source-topic-info { min-width: 0; }
.source-topic-title { display: block; overflow: hidden; color: #222; font-size: 15px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.source-topic-info > span { display: block; margin-top: 3px; color: #999; font-size: 14px; }
.source-topic-desc { display: -webkit-box; overflow: hidden; min-height: 44px; margin: 9px 0 8px; color: #888; font-size: 14px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.source-topic-apps { display: flex; flex-wrap: wrap; gap: 4px; }
.source-topic-apps a { display: block; max-width: 100%; overflow: hidden; padding: 2px 6px; border-radius: 2px; background: #f7f7f7; color: #666; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.source-topic-apps a:hover { background: #fff0ee; color: var(--red); }
@media (max-width: 800px) {
  .source-topic-grid { grid-template-columns: 1fr; gap: 8px; }
  .source-topic-desc { min-height: 0; }
}

/* source-style related topic tabs and app cards */
.source-topic-head { align-items: center; gap: 16px; }
.source-topic-head h2 { flex: 0 0 auto; }
.source-topic-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; min-width: 0; }
.source-topic-tabs button { border: 1px solid #e6b1aa; border-radius: 2px; background: #fff; color: #b04a3e; padding: 3px 12px; font-size: 14px; line-height: 1.7; cursor: pointer; }
.source-topic-tabs button:hover { background: #fff7f5; }
.source-topic-tabs button.active { border-color: var(--red); background: var(--red); color: #fff; }
.source-topic-panel { display: none; padding-top: 13px; }
.source-topic-panel.active { display: block; }
.source-topic-intro { display: flex; align-items: flex-start; gap: 18px; }
.source-topic-hero { display: block; flex: 0 0 258px; width: 258px; height: 156px; overflow: hidden; border-radius: 2px; background: #f3f3f3; }
.source-topic-hero img { width: 100%; height: 100%; object-fit: cover; }
.source-topic-copy { min-width: 0; flex: 1; padding-top: 2px; }
.source-topic-title-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.source-topic-title-row h3 { margin: 0; color: #222; font-size: 18px; }
.source-topic-title-row span { color: #999; font-size: 14px; white-space: nowrap; }
.source-topic-copy > p { margin: 8px 0 0; color: #777; font-size: 14px; line-height: 1.75; }
.source-topic-apps-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; margin-top: 15px; }
.source-topic-app { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 8px 10px; border: 1px solid #ececec; border-radius: 2px; background: #fafafa; }
.source-topic-app:hover { border-color: #efaaa4; background: #fff8f6; }
.source-topic-app-icon { flex: 0 0 46px; width: 46px; height: 46px; overflow: hidden; border-radius: 10px; background: #eee; }
.source-topic-app-icon img { width: 100%; height: 100%; object-fit: cover; }
.source-topic-app-info { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.source-topic-app-info b { overflow: hidden; color: #333; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.source-topic-app-info small { overflow: hidden; color: #999; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.source-topic-app-info em { display: flex; justify-content: space-between; gap: 8px; margin-top: 2px; color: #888; font-size: 14px; font-style: normal; }
.source-topic-app-info em i { color: #aaa; font-style: normal; white-space: nowrap; }
@media (max-width: 800px) {
  .source-topic-head { display: block; }
  .source-topic-tabs { margin-top: 8px; }
  .source-topic-intro { display: block; }
  .source-topic-hero { width: 100%; height: auto; aspect-ratio: 16 / 9; }
  .source-topic-copy { padding-top: 9px; }
  .source-topic-apps-grid { grid-template-columns: 1fr; gap: 6px; }
}

/* keep related-topic tabs next to the title, like source */
.source-topic-head { justify-content: flex-start; }

/* breathing room between basic info and content modules */
.detail-layout { margin-top: 20px; }
@media (max-width: 800px) {
  .detail-layout { margin-top: 14px; }
}

/* download actions per platform */
.detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.detail-download.ios { background: #2d2d2d; }
.detail-download.ios:hover { background: #111; }
.detail-download.pc { background: #2f6f9f; }
.detail-download.pc:hover { background: #245a82; }
.detail-download.netdisk { background: #2f8f5b; }
.detail-download.netdisk:hover { background: #247447; }
.detail-source { margin-left: 2px; }
@media (max-width: 800px) {
  .detail-actions { gap: 7px; }
  .detail-download { padding-left: 12px; padding-right: 12px; }
}

/* vivid download buttons */
.detail-download {
  border-radius: 6px;
  font-weight: 700;
  box-shadow: 0 3px 10px rgba(0,0,0,.10);
  transition: transform .2s, box-shadow .2s, filter .2s;
}
.detail-download.android {
  background: linear-gradient(135deg, #ff6b6b 0%, #ff2e63 100%);
  box-shadow: 0 4px 12px rgba(255, 46, 99, .28);
}
.detail-download.ios {
  background: linear-gradient(135deg, #8e7dff 0%, #5b6cff 100%);
  box-shadow: 0 4px 12px rgba(91, 108, 255, .28);
}
.detail-download.pc {
  background: linear-gradient(135deg, #22d3ee 0%, #0a84ff 100%);
  box-shadow: 0 4px 12px rgba(10, 132, 255, .28);
}
.detail-download.netdisk {
  background: linear-gradient(135deg, #34e89e 0%, #0ba360 100%);
  box-shadow: 0 4px 12px rgba(11, 163, 96, .28);
}
.detail-download:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
}
.detail-download.android:hover { box-shadow: 0 6px 16px rgba(255, 46, 99, .38); }
.detail-download.ios:hover { box-shadow: 0 6px 16px rgba(91, 108, 255, .38); }
.detail-download.pc:hover { box-shadow: 0 6px 16px rgba(10, 132, 255, .38); }
.detail-download.netdisk:hover { box-shadow: 0 6px 16px rgba(11, 163, 96, .38); }
.detail-source { color: #777; }
.detail-source:hover { color: var(--red); }

/* slightly wider download buttons */
.detail-download {
  min-width: 138px;
  justify-content: center;
  padding-left: 22px;
  padding-right: 22px;
}
@media (max-width: 800px) {
  .detail-download { min-width: 0; padding-left: 16px; padding-right: 16px; }
}

/* wider buttons and slightly larger label */
.detail-download {
  min-width: 160px;
  padding-left: 26px;
  padding-right: 26px;
  font-size: 15px;
}
@media (max-width: 800px) {
  .detail-download { min-width: 0; padding-left: 18px; padding-right: 18px; font-size: 15px; }
}

/* screenshots: landscape cards and portrait phone-style cards */
.detail-shots {
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
  align-items: center;
}
.detail-shots img {
  width: 100%;
  height: 172px;
  padding: 0;
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  background: #f7f7f7;
  object-fit: cover;
}
.detail-shots img.is-landscape {
  height: 172px;
  object-fit: cover;
}
.detail-shots img.is-portrait {
  width: auto;
  max-width: 100%;
  height: 320px;
  padding: 3px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(30, 30, 30, .10);
  object-fit: contain;
  justify-self: center;
}
@media (max-width: 800px) {
  .detail-shots { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
  .detail-shots img.is-landscape { height: 118px; }
  .detail-shots img.is-portrait { height: 238px; }
}

/* remove the red divider above the footer */
.footer { border-top: 0; }

/* full-width source-style latest showcases */
.home-showcase {
  position: relative;
  overflow: hidden;
  padding: 34px 0 42px;
  margin-top: 8px;
}
.apps-showcase { background: linear-gradient(115deg,#f2eaff 0%,#fff8ed 52%,#e9fbf3 100%); }
.games-showcase { background: linear-gradient(115deg,#fff4d8 0%,#fffaf0 54%,#ffe9f1 100%); }
.home-showcase::before,
.home-showcase::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.apps-showcase::before { width: 330px; height: 330px; left: -120px; top: -150px; background: rgba(177, 132, 255, .20); }
.apps-showcase::after { width: 280px; height: 280px; right: 9%; bottom: -170px; background: rgba(64, 214, 170, .18); }
.games-showcase::before { width: 320px; height: 320px; right: -110px; top: -160px; background: rgba(255, 153, 190, .20); }
.games-showcase::after { width: 260px; height: 260px; left: 18%; bottom: -160px; background: rgba(255, 202, 80, .20); }
.home-showcase .wrap { position: relative; z-index: 1; }
.showcase-heading { position: relative; margin-bottom: 20px; }
.showcase-heading > span {
  display: block;
  color: rgba(32, 28, 38, .09);
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.showcase-heading h2 { position: relative; margin: -9px 0 0; color: #262029; font-size: 28px; line-height: 1.2; }
.showcase-heading > a {
  position: absolute;
  right: 0;
  bottom: 5px;
  color: #7b7280;
  font-size: 14px;
  letter-spacing: .08em;
}
.showcase-heading > a:hover { color: var(--red); }
.showcase-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 18px;
  align-items: stretch;
}
.games-showcase-layout { grid-template-columns: 300px minmax(0, 1fr) 94px; }
.showcase-icons {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-content: start;
  gap: 13px 8px;
  padding: 18px 14px;
  border-radius: 18px;
  background: rgba(255, 255, 255, .48);
}
.showcase-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 0;
  padding: 4px 2px;
  border-radius: 12px;
  transition: background .2s, transform .2s;
}
.showcase-tile:hover { background: rgba(255,255,255,.75); transform: translateY(-2px); }
.showcase-tile img { width: 78px; height: 78px; border-radius: 18px; object-fit: cover; box-shadow: 0 4px 10px rgba(55, 35, 60, .08); }
.showcase-tile b { overflow: hidden; width: 100%; color: #333; font-size: 14px; font-weight: 600; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.showcase-tile small { overflow: hidden; width: 100%; color: #8d8592; font-size: 14px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.showcase-rank { padding: 17px 14px 11px; border-radius: 18px; color: #fff; }
.green-rank { background: linear-gradient(160deg, #3bdb9f 0%, #0fa97b 100%); box-shadow: 0 10px 24px rgba(15, 169, 123, .20); }
.purple-rank { background: linear-gradient(160deg, #a767ff 0%, #6d2cd7 100%); box-shadow: 0 10px 24px rgba(109, 44, 215, .20); }
.showcase-rank h3 { margin: 0 0 8px; padding: 0 4px 11px; border-bottom: 1px solid rgba(255,255,255,.22); color: #fff; font-size: 19px; text-align: center; }
.showcase-rank-row { display: flex; align-items: center; gap: 7px; padding: 7px 2px; border-bottom: 1px dashed rgba(255,255,255,.18); color: #fff; }
.showcase-rank-row:last-child { border-bottom: 0; }
.showcase-rank-no { flex: 0 0 15px; color: rgba(255,255,255,.75); font: 700 14px Consolas, monospace; text-align: center; }
.showcase-rank-row img { flex: 0 0 32px; width: 32px; height: 32px; border-radius: 8px; object-fit: cover; }
.showcase-rank-info { min-width: 0; flex: 1; }
.showcase-rank-info b { display: block; overflow: hidden; color: #fff; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.showcase-rank-info small { display: block; overflow: hidden; margin-top: 1px; color: rgba(255,255,255,.72); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.showcase-rank-row em { flex: 0 0 auto; color: #ffe27a; font-size: 14px; font-style: normal; white-space: nowrap; }
.showcase-cats { display: flex; flex-direction: column; gap: 8px; padding-top: 4px; }
.showcase-cats a { display: flex; align-items: center; justify-content: center; min-height: 38px; padding: 6px 4px; border: 1px solid rgba(255,255,255,.7); border-radius: 8px; background: rgba(255,255,255,.82); color: #666; font-size: 14px; text-align: center; }
.showcase-cats a:hover { color: var(--red); }
.showcase-cats a.on { border-color: var(--red); background: var(--red); color: #fff; }
@media (max-width: 1050px) {
  .showcase-layout { grid-template-columns: minmax(0, 1fr) 270px; }
  .games-showcase-layout { grid-template-columns: 270px minmax(0, 1fr) 88px; }
  .showcase-icons { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .home-showcase { padding: 24px 0 28px; }
  .showcase-heading { margin-bottom: 14px; }
  .showcase-heading > span { font-size: 25px; }
  .showcase-heading h2 { margin-top: -6px; font-size: 23px; }
  .showcase-heading > a { bottom: 2px; }
  .showcase-layout,
  .games-showcase-layout { grid-template-columns: 1fr; gap: 13px; }
  .games-showcase-layout .showcase-icons { order: 1; }
  .games-showcase-layout .showcase-rank { order: 2; }
  .games-showcase-layout .showcase-cats { order: 3; }
  .showcase-icons { grid-template-columns: repeat(3, minmax(0,1fr)); padding: 12px 8px; gap: 10px 6px; }
  .showcase-tile img { width: 64px; height: 64px; border-radius: 15px; }
  .showcase-tile b, .showcase-tile small { font-size: 14px; }
  .showcase-rank { padding: 15px 12px 9px; }
  .showcase-rank h3 { font-size: 17px; }
  .showcase-cats { flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .showcase-cats a { flex: 1 1 30%; min-height: 34px; }
}

/* equal-height showcase columns */
.showcase-layout { align-items: stretch; }
.showcase-icons {
  height: 100%;
  align-content: space-between;
}
.showcase-rank { height: 100%; }
.showcase-cats {
  height: 100%;
  justify-content: space-between;
}
.showcase-tile img { width: 84px; height: 84px; }
@media (max-width: 800px) {
  .showcase-icons,
  .showcase-rank,
  .showcase-cats { height: auto; }
  .showcase-icons { align-content: start; }
  .showcase-cats { justify-content: flex-start; }
  .showcase-tile img { width: 64px; height: 64px; }
}

/* ranking rows fill the panel evenly */
.showcase-rank {
  display: flex;
  flex-direction: column;
  padding-bottom: 8px;
}
.showcase-rank h3 { flex: 0 0 auto; }
.showcase-rank-row {
  flex: 1 1 0;
  min-height: 0;
  padding-top: 3px;
  padding-bottom: 3px;
}
@media (max-width: 800px) {
  .showcase-rank-row { flex: 0 0 auto; padding-top: 7px; padding-bottom: 7px; }
}

/* larger icons with a vertically aligned copy block */
.store-app {
  grid-template-columns: 66px minmax(0, 1fr);
  align-items: center;
}
.store-icon { width: 66px; height: 66px; }
.store-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  height: 66px;
}
.store-view {
  justify-self: auto;
  width: fit-content;
  margin-top: 1px;
}
@media (max-width: 800px) {
  .store-app { grid-template-columns: 60px minmax(0, 1fr); }
  .store-icon { width: 60px; height: 60px; }
  .store-copy { height: 60px; }
}

/* align the copy block edge-to-edge with the icon */
.store-copy {
  justify-content: space-between;
  gap: 0;
}
.store-view { margin-top: 0; }

/* single-row flex card: icon and copy share the same height */
.store-app {
  display: flex;
  align-items: center;
  gap: 9px;
}
.store-icon {
  flex: 0 0 66px;
  width: 66px;
  height: 66px;
}
.store-copy { flex: 1; height: 66px; }
@media (max-width: 800px) {
  .store-icon { flex-basis: 60px; width: 60px; height: 60px; }
  .store-copy { height: 60px; }
}

/* copy block: title at top, size at bottom, matching icon edges */
.store-copy { display: flex; align-items: stretch; }
.store-info {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  height: 100%;
}
.store-info b { line-height: 1.25; }
.store-info small { line-height: 1.3; }

/* taller card keeps icon, title and action aligned */
.store-app {
  gap: 10px;
  align-items: stretch;
}
.store-icon {
  flex: 0 0 76px;
  width: 76px;
  height: 76px;
  align-self: center;
}
.store-copy {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 76px;
}
.store-info {
  display: block;
  width: 100%;
  height: auto;
}
.store-view {
  margin-top: 0;
  width: fit-content;
}
@media (max-width: 800px) {
  .store-icon { flex-basis: 68px; width: 68px; height: 68px; }
  .store-copy { height: 68px; }
}

/* tighten text leading for clearer edge alignment */
.store-info b { line-height: 1.1; }
.store-info small { line-height: 1.2; }

/* games showcase mirrors apps layout */
.games-showcase-layout { grid-template-columns: minmax(0, 1fr) 300px; }
@media (max-width: 1050px) {
  .games-showcase-layout { grid-template-columns: minmax(0, 1fr) 270px; }
}
@media (max-width: 800px) {
  .games-showcase-layout { grid-template-columns: 1fr; }
  .games-showcase-layout .showcase-icons { order: 0; }
  .games-showcase-layout .showcase-rank { order: 0; }
}

/* restore balanced spacing in store cards */
.store-copy {
  justify-content: center;
  gap: 4px;
  height: 76px;
}
.store-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  height: auto;
}
.store-info b { line-height: 1.35; }
.store-info small { line-height: 1.35; }
.store-view { margin-top: 0; }
@media (max-width: 800px) {
  .store-copy { height: 68px; gap: 2px; }
  .store-info b, .store-info small { line-height: 1.25; }
}

/* colorful detail tag gradients */
.detail-tag-box .detail-tags { gap: 8px 10px; align-items: center; }
.detail-tag-box .detail-tags a {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 2px 11px;
  border: 0;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--tag-a), var(--tag-b));
  color: #fff;
  font-weight: 600;
  box-shadow: 0 3px 8px rgba(60, 30, 60, .14);
  transition: transform .2s, filter .2s;
}
.detail-tag-box .detail-tags a:hover { color: #fff; filter: brightness(1.06); transform: translateY(-1px); }

/* single-line tag row without section heading */
.detail-tag-line {
  display: flex;
  align-items: center;
  min-width: 0;
  margin: 0 0 13px;
  padding: 0 2px;
  overflow: hidden;
}
.detail-tag-line .detail-tags {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
  margin: 0;
  overflow: hidden;
}
.detail-tag-line .detail-tags em { flex: 0 0 auto; }
.detail-tag-line .detail-tags a { flex: 0 0 auto; }
@media (max-width: 800px) {
  .detail-tag-line { margin-bottom: 9px; }
  .detail-tag-line .detail-tags { gap: 6px; }
}

/* apply gradient chips to the single-line tag row */
.detail-tag-line .detail-tags a {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 2px 11px;
  border: 0;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--tag-a), var(--tag-b));
  color: #fff;
  font-weight: 600;
  box-shadow: 0 3px 8px rgba(60, 30, 60, .14);
  transition: transform .2s, filter .2s;
}
.detail-tag-line .detail-tags a:hover {
  color: #fff;
  filter: brightness(1.06);
  transform: translateY(-1px);
}

/* 09pc mobile header: keep menu button visible and give search its own row */
@media (max-width: 800px) {
  .header-main {
    flex-wrap: wrap;
    padding: 8px 0 9px;
    row-gap: 7px;
  }
  .header-main .logo { order: 1; flex: 0 0 auto; }
  .header-main .mobile-menu-btn {
    order: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-left: auto;
    border: 1px solid #e7e7e7;
    border-radius: 8px;
    background: #fff;
    color: #222;
  }
  .header-main .mobile-menu-btn .icon { width: 21px; height: 21px; }
  .header-main .search {
    order: 3;
    flex: 1 0 100%;
    width: 100%;
    max-width: none;
    height: 36px;
    margin-left: 0;
  }
  .header-main .header-tip { display: none; }
  .header-main .search input { font-size: 14px; }
  .header-main .search button { width: 68px; }
}

/* desktop app cards: allow two-line names instead of one-line truncation */
@media (min-width: 801px) {
  .store-info b {
    display: -webkit-box;
    overflow: hidden;
    min-height: 2.85em;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
}

/* home side modules */
.side-app-list { display: flex; flex-direction: column; }
.side-app { display: grid; grid-template-columns: 22px 42px minmax(0, 1fr); align-items: center; gap: 9px; padding: 10px 0; border-bottom: 1px dashed #f0f0f0; }
.side-app:last-child { border-bottom: 0; }
.side-app-no { color: #bbb; font-family: var(--mono); font-size: 13px; font-weight: 700; text-align: center; }
.side-app:nth-child(-n+3) .side-app-no { color: var(--green); }
.side-app img { width: 42px; height: 42px; border-radius: 10px; object-fit: cover; }
.side-app-info { min-width: 0; }
.side-app-info b { display: -webkit-box; overflow: hidden; color: #333; font-size: 14px; font-weight: 700; line-height: 1.35; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.side-app:hover .side-app-info b { color: var(--green); }
.side-app-info small { display: block; overflow: hidden; margin-top: 3px; color: #aaa; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.side-rank-box { margin-top: 14px; }
@media (max-width: 800px) {
  .side-rank-box, .side-new-box { display: none; }
}

/* equal-height two-column modules across the site */
.store-layout,
.news-layout,
.detail-layout {
  align-items: stretch;
}

.store-side,
.detail-side {
  display: flex;
  flex-direction: column;
}

.store-side > .side-box:last-child,
.detail-side > .detail-side-card:last-child {
  flex: 1 1 auto;
}

/* feature story should fill the left column and meet the list at the bottom */
.news-feature {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.news-feature > img {
  flex: 1 1 auto;
  min-height: 310px;
  height: auto;
}
.news-feature > h2,
.news-feature > p { flex: 0 0 auto; }

@media (max-width: 800px) {
  .news-feature { height: auto; }
  .news-feature > img { flex: 0 0 auto; min-height: 0; height: 200px; }
  .store-side,
  .detail-side { display: block; }
}

/* news feature image fills the exact remaining column height */
.news-feature > img {
  flex: 1 1 0;
  height: 0;
  min-height: 280px;
  max-height: none;
  object-fit: cover;
}
@media (max-width: 800px) {
  .news-feature > img { flex: 0 0 auto; height: 200px; min-height: 0; }
}

/* news list rows share the column height so both columns end together */
.news-list {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.news-item {
  flex: 1 1 0;
}
@media (max-width: 800px) {
  .news-list { height: auto; }
  .news-item { flex: 0 0 auto; }
}

/* news right column: list plus a small topic footer, filling the feature column */
.news-right {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.news-right .news-list { flex: 1 1 auto; }
.news-side-extra {
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid #e8e8e8;
}
.news-side-extra > b {
  display: block;
  margin-bottom: 9px;
  color: #333;
  font-size: 14px;
}
.news-extra-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.news-extra-links a {
  padding: 6px 10px;
  border: 1px solid #f0d1ce;
  background: #fff7f6;
  color: #d3392f;
  font-size: 14px;
}
.news-extra-links a:hover { border-color: #d3392f; background: #d3392f; color: #fff; }
@media (max-width: 800px) {
  .news-side-extra { margin-top: 10px; }
}

/* restored detail architecture: download table + info/download notes */
.download-box { margin-top: 0; }
.download-table { margin-top: 11px; border: 1px solid #eee; }
.download-row {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) 64px 94px;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 8px 11px;
  border-bottom: 1px solid #f0f0f0;
}
.download-row:last-child { border-bottom: 0; }
.download-row > span { color: #999; font-size: 14px; }
.download-row > b { overflow: hidden; color: #333; font-size: 14px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.download-row > em { color: #999; font-size: 14px; font-style: normal; text-align: right; }
.download-row-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 32px;
  padding: 0 10px;
  border-radius: 4px;
  background: var(--green);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}
.download-row-btn:hover { background: var(--green-deep); }
.download-row-btn.netdisk { background: #2f8f5b; }
.download-row-btn.ios { background: #2d2d2d; }
.download-row-btn.pc { background: #2f6f9f; }
.download-note-card p {
  margin: 9px 0 0;
  color: #888;
  font-size: 14px;
  line-height: 1.8;
}
.info-card .info-rows > div { padding: 7px 0; }
.info-card .info-rows > div > b { overflow: hidden; max-width: 175px; color: #333; font-size: 14px; font-weight: 600; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 800px) {
  .download-row { grid-template-columns: 56px minmax(0, 1fr) 72px; gap: 7px; padding: 8px; }
  .download-row > em { display: none; }
  .download-row-btn { min-height: 30px; padding: 0 9px; font-size: 14px; }
  .download-note-card { display: block !important; }
}

/* restored list page heading on mobile */
.list-intro { display: none; }
@media (max-width: 800px) {
  .list-intro {
    display: block;
    padding: 18px 0 10px;
    background: #fff;
    border-bottom: 1px solid #f0f0f0;
  }
  .list-intro .wrap { position: relative; }
  .list-intro-kicker {
    display: block;
    color: var(--green);
    font-size: 14px;
    letter-spacing: .08em;
  }
  .list-intro h1 {
    margin: 8px 0 6px;
    color: #222;
    font-size: 29px;
    line-height: 1.2;
  }
  .list-intro p {
    max-width: 75%;
    margin: 0;
    color: #888;
    font-size: 14px;
    line-height: 1.7;
  }
  .list-intro > .wrap > b {
    position: absolute;
    right: 0;
    bottom: 4px;
    color: var(--green);
    font-size: 24px;
    font-weight: 500;
  }
  .list-intro > .wrap > b em {
    margin-left: 3px;
    color: #aaa;
    font-size: 14px;
    font-style: normal;
  }
}

/* list page mobile: restore three-column card grid */
@media (max-width: 800px) {
  .browse-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0;
  }
  .browse-card { padding: 8px 5px 11px; }
  .browse-img { max-width: 84px; border-radius: 15px; }
  .browse-card > b { min-height: 32px; font-size: 14px; }
  .list-intro > .wrap > b em { margin-left: 4px; }
}

/* restore detail page to yesterday's final structure (no equal-height override) */
.detail-layout { align-items: start; }
.detail-side { display: block; }
.detail-side > .detail-side-card:last-child { flex: 0 0 auto; }

/* all card/list titles: one line by default, ellipsis when space is insufficient */
.store-info b,
.browse-card > b,
.side-app-info b,
.daily-lead b,
.news-item b {
  display: block;
  overflow: hidden;
  min-width: 0;
  min-height: 0;
  white-space: nowrap;
  text-overflow: ellipsis;
  -webkit-line-clamp: 1;
  -webkit-box-orient: horizontal;
}
.browse-card > b { line-height: 1.5; }

/* source-synced H3 typography */
.detail-copy h3 {
  margin: 20px 0 10px;
  color: #333;
  font-size: 15px;
  line-height: 1.6;
  font-weight: 700;
}
.detail-copy p {
  margin: 0 0 11px;
  color: #555;
  font-size: 14px;
  line-height: 1.9;
}
.detail-copy img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 10px auto;
}
.detail-copy a {
  color: inherit;
  text-decoration: none;
  pointer-events: none;
}

/* detail screenshots: single scrollable row + click-to-enlarge */
.detail-shots {
  display: flex;
  grid-template-columns: none;
  gap: 10px;
  align-items: stretch;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 12px 2px 14px;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.detail-shots .shot-thumb {
  flex: 0 0 280px;
  overflow: hidden;
  padding: 0;
  border: 1px solid #e9e9e9;
  border-radius: 5px;
  background: #f7f7f7;
  cursor: zoom-in;
  scroll-snap-align: start;
}
.detail-shots .shot-thumb img {
  display: block;
  width: 100%;
  height: 172px;
  max-width: none;
  padding: 0;
  border: 0;
  border-radius: 0;
  object-fit: cover;
}
.detail-shots .shot-thumb:hover { border-color: var(--green); }
.shot-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 34px;
  background: rgba(12, 16, 14, .88);
}
.shot-lightbox[hidden] { display: none; }
.shot-lightbox > img {
  max-width: 92vw;
  max-height: 84vh;
  border: 3px solid #fff;
  border-radius: 4px;
  background: #fff;
  object-fit: contain;
}
.shot-lightbox-close {
  position: absolute;
  top: 16px;
  right: 22px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 50%;
  background: rgba(0,0,0,.35);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.shot-lightbox-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 16px;
  color: rgba(255,255,255,.85);
  font-size: 14px;
  text-align: center;
}
body.shot-open { overflow: hidden; }
@media (max-width: 800px) {
  .detail-shots { gap: 8px; padding-top: 9px; padding-bottom: 10px; }
  .detail-shots .shot-thumb { flex-basis: 218px; }
  .detail-shots .shot-thumb img { height: 132px; }
  .shot-lightbox { padding: 18px; }
  .shot-lightbox > img { max-width: 94vw; max-height: 80vh; }
}

/* detail content: reading typography */
.detail-copy {
  max-width: 780px;
  color: #414141;
  font-family: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2.02;
  letter-spacing: .035em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
.detail-copy p {
  margin: 0 0 16px;
  color: #484848;
  font-size: 15px;
  line-height: 2.02;
  letter-spacing: .035em;
  overflow-wrap: anywhere;
}
.detail-copy > p:first-of-type {
  margin-bottom: 20px;
  color: #303030;
  font-size: 15.5px;
  font-weight: 500;
  line-height: 2.08;
}
.detail-copy strong {
  color: #2f3b33;
  font-weight: 650;
}
.detail-copy h3 {
  margin: 30px 0 13px;
  padding-left: 10px;
  border-left: 3px solid #b9ddc5;
  color: #2f3a32;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: .04em;
}
.detail-copy h3:first-child { margin-top: 0; }
.detail-copy h3 + p { margin-top: 0; }
.detail-copy img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 20px auto;
  border: 1px solid #ececec;
  border-radius: 6px;
  background: #fafafa;
}
.detail-copy ul,
.detail-copy ol {
  margin: 10px 0 17px;
  padding-left: 1.45em;
}
.detail-copy li {
  margin: 5px 0;
  line-height: 1.95;
}
.detail-copy span { line-height: inherit; }
@media (max-width: 800px) {
  .detail-copy,
  .detail-copy p { font-size: 15px; line-height: 1.95; letter-spacing: .025em; }
  .detail-copy h3 { margin-top: 25px; font-size: 15px; }
  .detail-copy img { margin: 16px auto; }
}

/* spacing below the section divider; first paragraph is normal weight */
.detail-copy { padding-top: 18px; }
.detail-copy > p:first-of-type {
  margin-top: 0;
  margin-bottom: 20px;
  color: #414141;
  font-size: 15px;
  font-weight: 400;
  line-height: 2.02;
}
@media (max-width: 800px) {
  .detail-copy { padding-top: 14px; }
}

/* screenshots: preserve the full source image instead of cropping */
.detail-shots { align-items: center; }
.detail-shots .shot-thumb {
  flex: 0 0 auto;
  width: auto;
  height: 210px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 5px;
  background: #f7f7f7;
}
.detail-shots .shot-thumb img {
  display: block;
  width: auto;
  height: 100%;
  max-width: none;
  max-height: 100%;
  border: 0;
  border-radius: 0;
  object-fit: contain;
}
@media (max-width: 800px) {
  .detail-shots .shot-thumb { height: 160px; }
  .detail-shots .shot-thumb img { height: 100%; width: auto; }
}

/* larger screenshot frames on desktop */
@media (min-width: 801px) {
  .detail-shots .shot-thumb { height: 280px; }
  .detail-shots .shot-thumb img { height: 100%; width: auto; }
}

/* content images: never exceed the article column, preserve aspect ratio */
.detail-copy img {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none;
  object-fit: contain;
}
.detail-copy p,
.detail-copy h3 { overflow: hidden; }

/* publication/license info is a separate block from technical fields */
.detail-publish {
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px dashed #e5e5e5;
}
.detail-publish > span {
  display: block;
  margin-bottom: 5px;
  color: #999;
  font-size: 13px;
}
.detail-publish .detail-fields { margin: 0; }

/* publication fields live above the download action, without a duplicate heading */
.detail-record-fields {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px dashed #e8e8e8;
}
@media (min-width: 801px) {
  .detail-main-info {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding-bottom: 0 !important;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }
  .detail-actions {
    position: static !important;
    margin-top: 14px;
  }
}

/* clickable permissions + privacy link */
.permission-link {
  border: 0;
  padding: 0;
  background: none;
  color: var(--green);
  font: inherit;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
}
.permission-link:hover { color: var(--green-deep); }
.permission-modal {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(12, 16, 14, .72);
}
.permission-modal[hidden] { display: none; }
.permission-dialog {
  width: min(520px, 100%);
  max-height: 78vh;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 60px rgba(0,0,0,.28);
}
.permission-dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid #eee;
}
.permission-dialog-head h3 { margin: 0; font-size: 18px; color: #222; }
.permission-close {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: #f3f3f3;
  color: #555;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.permission-dialog ul {
  max-height: calc(78vh - 66px);
  overflow-y: auto;
  margin: 0;
  padding: 13px 18px 18px 36px;
}
.permission-dialog li {
  padding: 7px 0;
  border-bottom: 1px dashed #f0f0f0;
  color: #555;
  font-size: 14px;
  line-height: 1.6;
}
.permission-dialog li:last-child { border-bottom: 0; }
body.permission-open { overflow: hidden; }

/* permissions and privacy share one access row */
.detail-access-row {
  grid-column: 1 / -1;
  display: flex;
  gap: 32px;
  margin-top: 2px;
  padding-top: 8px;
  border-top: 1px dashed #e8e8e8;
}
.detail-access-row .detail-field {
  flex: 1 1 0;
  min-width: 0;
}
@media (max-width: 800px) {
  .detail-access-row { gap: 16px; }
}

/* keep permission/privacy on one row without an extra visual module */
.detail-access-row {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

/* external privacy confirmation */
.privacy-modal {
  position: fixed;
  inset: 0;
  z-index: 1400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(12, 16, 14, .72);
}
.privacy-modal[hidden] { display: none; }
.privacy-dialog {
  width: min(480px, 100%);
  padding: 22px 24px 20px;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 60px rgba(0,0,0,.28);
}
.privacy-dialog h3 { margin: 0 0 12px; color: #222; font-size: 19px; }
.privacy-dialog p { margin: 0 0 10px; color: #555; font-size: 14px; line-height: 1.8; }
.privacy-dialog p b { color: var(--green-deep); }
.privacy-target { padding: 8px 10px; background: #f7f7f7; border-radius: 4px; }
.privacy-target span { color: #888; word-break: break-all; }
.privacy-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }
.privacy-actions button { min-height: 34px; padding: 0 20px; border-radius: 4px; font-size: 14px; cursor: pointer; }
.privacy-cancel { border: 1px solid #ddd; background: #fff; color: #666; }
.privacy-confirm { border: 1px solid var(--green); background: var(--green); color: #fff; }
.privacy-confirm:hover { background: var(--green-deep); border-color: var(--green-deep); }
body.privacy-open { overflow: hidden; }

/* detail copy fills the full main column */
.detail-copy {
  width: 100%;
  max-width: none;
}

/* source-style report / error dialogs */
.report-btn { font: inherit; cursor: pointer; }
.report-modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(18, 24, 20, .36);
}
.report-modal[hidden] { display: none; }
.report-dialog {
  width: 464px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 40px);
  overflow: hidden;
  border: 1px solid #f0f0f0;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 7px 27px 0 #bfbfbf;
}
.report-dialog[hidden] { display: none; }
.report-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 38px;
  padding: 0 12px 0 27px;
  color: #333;
  font-size: 16px;
  line-height: 1.45;
}
.report-head span { padding: 7px 0; }
.report-close {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border: 0;
  background: transparent;
  color: #999;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}
.report-body { padding: 4px 27px 0; overflow-y: auto; max-height: 330px; }
.report-textarea {
  display: block;
  width: 100%;
  height: 120px;
  padding: 10px;
  resize: vertical;
  border: 1px solid #f0f0f0;
  border-radius: 2px;
  color: #555;
  font: inherit;
  font-size: 14px;
  line-height: 1.7;
  box-sizing: border-box;
}
.report-radios {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  min-height: 105px;
}
.report-radios label {
  display: flex;
  align-items: center;
  width: 50%;
  margin: 8px 0;
  color: #666;
  font-size: 14px;
  cursor: pointer;
  box-sizing: border-box;
}
.report-radios input { position: absolute; opacity: 0; pointer-events: none; }
.report-radio-mark {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 6px;
  border: 1px solid #aaa;
  border-radius: 50%;
  box-sizing: border-box;
  position: relative;
}
.report-radios input:checked + .report-radio-mark { border-color: #306aff; }
.report-radios input:checked + .report-radio-mark::after {
  content: "";
  position: absolute;
  inset: 2px;
  border-radius: 50%;
  background: #306aff;
}
.report-label { margin: 7px 0 6px; color: #333; font-size: 15px; }
.report-input {
  display: block;
  width: 100%;
  height: 38px;
  padding: 0 10px;
  border: 1px solid #f0f0f0;
  border-radius: 2px;
  color: #555;
  font: inherit;
  font-size: 14px;
  box-sizing: border-box;
}
.report-hint { margin: 8px 0 0; color: #d9534f; font-size: 13px; }
.report-hint.success { color: #23a35a; }
.report-foot {
  display: flex;
  justify-content: center;
  gap: 21px;
  padding: 12px 27px 16px;
}
.report-cancel,
.report-submit {
  width: 116px;
  height: 38px;
  border: 1px solid #23c268;
  border-radius: 4px;
  background: #fff;
  color: #23c268;
  font: inherit;
  font-size: 16px;
  line-height: 36px;
  cursor: pointer;
}
.report-submit { background: #23c268; color: #fff; }
.report-cancel:hover { background: #f5fcf8; }
.report-submit:hover { background: #1ba758; border-color: #1ba758; }
body.report-open { overflow: hidden; }
@media (max-width: 520px) {
  .report-dialog { width: 100%; max-width: calc(100vw - 24px); }
  .report-head { padding-left: 18px; font-size: 15px; }
  .report-body { padding: 4px 18px 0; }
  .report-foot { padding: 12px 18px 16px; gap: 12px; }
  .report-cancel, .report-submit { width: 110px; }
  .report-radios label { width: 50%; font-size: 13px; }
}

/* 09pc brand lockup: icon + name + domain */
.logo-text small {
  display: block;
  margin-top: 4px;
  color: #9a9a9a;
  font: 10px/1.2 "Arial", "Microsoft YaHei", sans-serif;
  letter-spacing: .045em;
  white-space: nowrap;
}
.logo-text b { font-size: 23px; }
@media (max-width: 800px) {
  .logo-text b { font-size: 19px; }
  .logo-text small { margin-top: 3px; font-size: 9px; letter-spacing: .02em; }
}

@media (max-width: 800px) {
  .logo img { display: block; width: 36px; height: 36px; border-radius: 8px; }
  .logo-text small { display: block; font-size: 9px; margin-top: 3px; }
}

/* refined 09pc lockup: balanced icon, wordmark and domain */
.logo {
  gap: 10px;
  align-items: center;
}
.logo img {
  width: 46px;
  height: 46px;
  border-radius: 11px;
}
.logo-text {
  height: 46px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  line-height: 1;
}
.logo-name {
  display: flex;
  align-items: baseline;
  gap: 3px;
  margin: 0;
  font-size: 23px;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.logo-name em {
  font-style: normal;
  font-weight: 900;
  letter-spacing: -.045em;
}
.logo-name span {
  font-weight: 900;
  letter-spacing: .015em;
}
.logo-text small {
  display: block;
  margin: 0;
  color: #999;
  font: 10px/1 Arial, "Microsoft YaHei", sans-serif;
  letter-spacing: .055em;
  white-space: nowrap;
}
.footer-brand .logo { gap: 9px; }
.footer-brand .logo img { width: 38px; height: 38px; border-radius: 9px; }
.footer-brand .logo-text { height: 38px; gap: 3px; }
.footer-brand .logo-name { font-size: 17px; gap: 2px; }
.footer-brand .logo-text small { font-size: 9px; }
@media (max-width: 800px) {
  .logo { gap: 8px; }
  .logo img { display: block; width: 36px; height: 36px; border-radius: 9px; }
  .logo-text { height: 36px; gap: 3px; }
  .logo-name { font-size: 18px; gap: 2px; }
  .logo-text small { display: block; font-size: 8.5px; letter-spacing: .03em; }
  .footer-brand .logo-text { height: 34px; }
  .footer-brand .logo-name { font-size: 16px; }
}

/* final lockup: 09 prefix + centered Chinese/domain column */
.logo-text {
  height: 46px;
  flex-direction: row;
  align-items: center;
  gap: 6px;
}
.logo-number {
  flex: 0 0 auto;
  color: var(--red);
  font-size: 23px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.045em;
}
.logo-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 5px;
  line-height: 1;
}
.logo-copy b {
  display: block;
  margin: 0;
  color: #222;
  font-size: 23px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
}
.logo-copy small {
  display: block;
  margin: 0;
  color: #999;
  font: 10px/1 Arial, "Microsoft YaHei", sans-serif;
  letter-spacing: .05em;
  white-space: nowrap;
}
.footer-brand .logo-text { height: 38px; gap: 5px; }
.footer-brand .logo-number { font-size: 17px; }
.footer-brand .logo-copy { gap: 3px; }
.footer-brand .logo-copy b { font-size: 17px; }
.footer-brand .logo-copy small { font-size: 9px; }
@media (max-width: 800px) {
  .logo-text { height: 36px; gap: 4px; }
  .logo-number { font-size: 18px; }
  .logo-copy { gap: 3px; }
  .logo-copy b { font-size: 18px; }
  .logo-copy small { font-size: 8.5px; letter-spacing: .03em; }
  .footer-brand .logo-text { height: 34px; }
  .footer-brand .logo-number { font-size: 16px; }
  .footer-brand .logo-copy b { font-size: 16px; }
}

/* exact-width two-line lockup: wordmark and domain share both edges */
.logo-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  width: max-content;
  height: 46px;
  gap: 5px;
}
.logo-name {
  display: flex;
  align-items: baseline;
  width: max-content;
  margin: 0;
  gap: 3px;
  font-size: 23px;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.logo-name em {
  color: var(--red);
  font-style: normal;
  font-weight: 900;
  letter-spacing: -.045em;
}
.logo-name span {
  color: #222;
  font-weight: 900;
  letter-spacing: .01em;
}
.logo-domain {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin: 0;
  color: #999;
  font: 12px/1 Arial, "Microsoft YaHei", sans-serif;
  letter-spacing: 0;
  white-space: nowrap;
}
.logo-domain span { display: block; }
.footer-brand .logo-text { width: max-content; height: 38px; gap: 3px; }
.footer-brand .logo-name { font-size: 17px; gap: 2px; }
.footer-brand .logo-domain { font-size: 9px; }
@media (max-width: 800px) {
  .logo-text { width: max-content; height: 36px; gap: 3px; }
  .logo-name { font-size: 18px; gap: 2px; }
  .logo-domain { font-size: 9px; }
  .footer-brand .logo-text { height: 34px; }
  .footer-brand .logo-name { font-size: 16px; }
}

/* enforce horizontal domain letter grid over legacy small rules */
.logo-text .logo-domain {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: baseline;
  width: 100%;
  height: auto;
  overflow: visible;
  font-size: 12px;
  line-height: 1;
}
.logo-text .logo-domain > span {
  display: block;
  flex: 0 0 auto;
}
.footer-brand .logo-text .logo-domain { font-size: 9px; }
@media (max-width: 800px) {
  .logo-text .logo-domain { font-size: 9px; }
}

/* lock the text column to the wordmark width, then justify the domain across it */
.logo-text {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  justify-items: stretch;
  flex: 0 0 auto;
  width: max-content;
}
.logo-name {
  width: max-content;
  min-width: 100%;
}
.logo-text .logo-domain {
  width: 100%;
  min-width: 0;
}

/* use the fixed SVG lockup on both header and footer */
.logo { gap: 0; }
.logo .logo-lockup {
  display: block;
  width: 214px;
  height: 57px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  object-fit: contain;
}
.footer-brand .logo .logo-lockup {
  width: 180px;
  height: 48px;
}
@media (max-width: 800px) {
  .logo .logo-lockup { width: 190px; height: 51px; }
  .footer-brand .logo .logo-lockup { width: 168px; height: 45px; }
}

.logo .logo-lockup { width: 210px; height: 61px; }
.footer-brand .logo .logo-lockup { width: 176px; height: 51px; }
@media (max-width: 800px) {
  .logo .logo-lockup { width: 186px; height: 54px; }
  .footer-brand .logo .logo-lockup { width: 162px; height: 47px; }
}

/* detail H3 accent uses the 09pc theme color */
.detail-copy h3 {
  border-left-color: var(--red);
}
