/* 官网与永久 SEO 内容页共用品牌样式。 */
:root{color-scheme:light;--ink:#393043;--muted:#80758b;--paper:#fcfaff;--accent:#8e5bc8;--accent-soft:#f0e8fa;--mint:#68bfb5;--mint-ink:#477f79;--coral:#f67e83;--line:#eae1f3}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.85 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
a{color:var(--accent);text-underline-offset:5px}header,main,footer{max-width:1120px;margin:auto;padding-left:32px;padding-right:32px}
header{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid var(--line)}header nav{display:flex;gap:28px;align-items:center;font-size:14px}header nav a{color:var(--muted);text-decoration:none}header nav a:hover{color:var(--accent)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}.brand-avatar{display:block;width:54px;height:54px}.brand-wordmark{display:block;width:145px;height:74px;object-fit:contain}
main{padding-top:28px;padding-bottom:48px}h1,h2,h3{font-weight:650;line-height:1.4}h1{font-size:clamp(30px,5vw,48px);letter-spacing:-1px}h2{font-size:26px;margin-top:38px}h3{font-size:20px}p{overflow-wrap:anywhere}
.hero{padding:62px 0 80px;max-width:850px}.eyebrow{font-size:12px;letter-spacing:3px;color:var(--muted)}.hero h1{font-size:clamp(40px,6.4vw,70px);line-height:1.28;letter-spacing:-2px;margin:24px 0;color:var(--ink)}.hero h1 span{color:var(--accent)}.intro{max-width:620px;font-size:18px;color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid transparent;border-radius:100px;padding:12px 26px;background:var(--accent);color:#fff;font-weight:550;transition:background .2s,transform .2s}.button:hover{background:#7b49b3;transform:translateY(-2px)}.hero .button{margin-top:22px;box-shadow:0 8px 24px #8e5bc81c}
.section-head{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding-top:30px;margin-bottom:28px}.section-head h2{font-size:28px;margin:0}.section-head p{color:var(--muted);font-size:14px}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:76px}.card{padding:30px;background:#fff;border:1px solid var(--line);border-radius:24px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #8e5bc810}.number{display:inline-block;font-size:12px;color:var(--accent);background:var(--accent-soft);padding:4px 11px;border-radius:20px}.card:nth-child(2) .number{color:var(--mint-ink);background:#eaf7f3}.card:nth-child(3) .number{color:#b65368;background:#fff0f1}.card h3{font-size:24px;margin:26px 0 12px}.card p{color:var(--muted);font-size:15px}.more{display:block;margin-top:26px;font-size:14px;color:var(--accent)}
#download{padding:42px;border:1px solid #e5d8f2;border-radius:28px;background:linear-gradient(115deg,#f2eafb 0%,#f5eefb 60%,#eaf7f4 100%);margin-bottom:20px;scroll-margin-top:30px}#download h2{font-size:32px;margin:0 0 12px}#download p{color:var(--muted)}.download-icon{display:block;width:78px;height:78px;border-radius:21px;margin-bottom:24px;box-shadow:0 6px 20px #8e5bc815}.downloads{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.downloads a{background:#fff;color:var(--accent);border:1px solid #e0d0ee}.downloads a:hover{background:#faf5ff}
.breadcrumb,.subtitle,time{color:var(--muted)}.breadcrumb{font-size:14px;margin-top:10px}.cover{display:block;max-width:100%;max-height:600px;border-radius:24px}.gallery{display:flex;flex-wrap:wrap;gap:16px}.gallery img{max-width:280px;width:100%;height:auto;object-fit:contain;border-radius:18px}.prose{white-space:pre-wrap;overflow-wrap:anywhere}.tags{display:flex;flex-wrap:wrap;gap:10px}.tags span{background:var(--accent-soft);color:var(--accent);padding:3px 13px;border-radius:20px}dl{display:grid;grid-template-columns:90px 1fr;gap:8px}dt{color:var(--muted)}dd{margin:0}
.browse-gate{text-align:center;background:linear-gradient(115deg,#f2eafb,#eaf7f4);border:1px solid var(--line);border-radius:24px;margin:40px 0 12px;padding:28px 20px}.browse-gate h2{margin:0;font-size:24px}.browse-gate p{color:var(--muted);font-size:14px}.browse-gate .button{margin-top:8px}.pagination{display:flex;justify-content:center;gap:24px;padding:30px 0}.timeline{padding-left:24px}.timeline li{padding:16px 0;border-bottom:1px solid var(--line)}.timeline li::marker{color:var(--mint)}
footer{border-top:1px solid var(--line);padding-top:25px;padding-bottom:35px;font-size:13px;color:var(--muted)}.footer-wordmark{display:block;width:112px;height:62px;object-fit:contain}.footer-links{display:flex;flex-wrap:wrap;gap:22px;margin:12px 0}footer a{color:var(--muted)}
a:focus-visible{outline:3px solid var(--mint);outline-offset:5px}
@media(max-width:700px){header,main,footer{padding-left:22px;padding-right:22px}header{min-height:96px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:10px;padding-top:12px;padding-bottom:18px}header nav{gap:22px;grid-column:1/-1;grid-row:2}.brand{min-width:0;max-width:100%;gap:8px}.brand-avatar{width:42px;height:42px;flex-shrink:0}.brand-wordmark{width:125px;height:62px;min-width:0}main{padding-top:20px}.hero{padding:34px 0 52px}.hero h1{font-size:clamp(28px,6vw,42px);letter-spacing:-1px}.intro{font-size:16px}.cards{grid-template-columns:1fr;gap:14px;margin-bottom:44px}.card{padding:24px}.card h3{margin-top:20px}.section-head{display:block}.section-head p{margin-bottom:0}#download{padding:27px}#download h2{font-size:26px}.downloads a{flex:1;white-space:nowrap;padding:12px 18px}.pagination{gap:16px;font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.card,.entry-card{transition:none}.button:hover,.card:hover,.entry-card:hover{transform:none}}

/* 公开目录：封面始终占据固定比例，名字与图片分层，缺图不改变网格高度。 */
header nav a[aria-current="page"] { color: #7847ac; font-weight: 650; background: #efe7f6; border-radius: 100px; padding: 6px 17px; }
.site-download { display: inline-flex; align-items: center; gap: 16px; padding: 9px 20px; border: 1px solid #ded0ee; border-radius: 100px; text-decoration: none; font-size: 13px; white-space: nowrap; }
.site-download:hover { background: var(--accent-soft); }
.browse-page { padding-top: 4px; }
.browse-page .breadcrumb { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 12px; }
.breadcrumb a { color: var(--muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--accent); }
.browse-heading { position: relative; display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; padding: 32px 36px; margin: 24px 0 32px; overflow: hidden; border: 1px solid #e9e0ef; border-radius: 24px; background: linear-gradient(112deg, #f3edf8 0%, #faf6f8 55%, #f7f5ef 100%); }
.browse-heading::after { content: ""; position: absolute; width: 200px; height: 200px; right: -80px; top: -125px; border: 1px solid #e6ddd9; border-radius: 50%; box-shadow: 0 0 0 24px #f3eee975, 0 0 0 25px #e9e1dc80; pointer-events: none; }
.browse-heading > * { position: relative; z-index: 1; }
.browse-eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 12px; color: #80648e; font-size: 10px; font-weight: 600; letter-spacing: 2px; }
.browse-eyebrow::before { content: ""; width: 5px; height: 5px; background: #a78ab9; border-radius: 50%; }
.browse-heading h1 { margin: 0; font-size: clamp(32px, 4vw, 44px); font-weight: 600; letter-spacing: -1px; line-height: 1.25; }
.browse-heading h1 span { color: #8a5ab0; letter-spacing: -2px; margin-left: 3px; }
.browse-intro { margin: 0 0 3px; color: #64586f; font-size: 15px; line-height: 1.9; }
.browse-intro span { display: block; color: var(--muted); font-size: 12px; margin-top: 4px; }
.entries { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 22px; list-style: none; padding: 0; margin: 0 0 44px; }
.entries li { min-width: 0; }
.entries .entry-card { display: flex; flex-direction: column; height: 100%; padding: 9px; overflow: hidden; border: 1px solid #ece6f1; border-radius: 21px; background: #fff; text-decoration: none; color: var(--ink); box-shadow: 0 2px 4px #49316103, 0 8px 22px #49316105; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.entry-media { display: block; position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 13px; background: #f3edf8; isolation: isolate; }
.entry-media::after { content: ""; position: absolute; inset: 0; border: 1px solid #49316108; border-radius: inherit; pointer-events: none; }
.entry-cover { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; background: #f3edf8; transition: transform .4s ease; }
.entry-cover[hidden] { display: none; }
.entry-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; background: radial-gradient(ellipse at 25% 10%, #fff9ed 0, transparent 65%), linear-gradient(150deg, #f5effa, #ede5f6); }
.entries li:nth-child(3n + 2) .entry-placeholder { background: radial-gradient(ellipse at 25% 10%, #fffdf4 0, transparent 65%), linear-gradient(150deg, #f0f5f0, #e2ede9); }
.entries li:nth-child(3n) .entry-placeholder { background: radial-gradient(ellipse at 25% 10%, #fffaf5 0, transparent 65%), linear-gradient(150deg, #fbefec, #f1e2e8); }
.placeholder-orbit { position: relative; display: grid; place-items: center; width: 114px; height: 114px; border: 1px solid #ffffffe0; border-radius: 50%; background: #ffffff65; box-shadow: 0 8px 24px #6e547c08; }
.placeholder-orbit::before { content: ""; position: absolute; inset: -15px; border: 1px solid #ffffff80; border-radius: 50%; }
.placeholder-orbit img { width: 72px; height: 72px; object-fit: contain; opacity: .8; }
.placeholder-caption { font-size: 11px; letter-spacing: 1px; color: #796982; }
.entry-info { display: flex; align-items: center; gap: 12px; height: 76px; flex-shrink: 0; padding: 15px 9px 7px; }
.entry-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; flex: 1; margin: 0; padding: 0; color: #44364d; font-size: 16px; font-weight: 600; letter-spacing: .3px; line-height: 1.6; }
.entry-author { position: relative; display: block; flex: 0 0 30px; width: 30px; height: 30px; overflow: hidden; border: 1px solid #e7ddef; border-radius: 50%; background: #f4eef8; }
.entry-author::before { content: ""; position: absolute; top: 20%; left: 34%; width: 32%; height: 32%; border-radius: 50%; background: #b5a1c5; }
.entry-author::after { content: ""; position: absolute; left: 18%; bottom: -9%; width: 64%; height: 49%; border-radius: 50% 50% 0 0; background: #b5a1c5; }
.entry-author img { position: relative; z-index: 1; display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; background: #f4eef8; }
.entry-author img[hidden] { display: none; }
.entry-card:focus-visible { outline: 3px solid #ab8cc4; outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  .entry-card:hover { transform: translateY(-4px); border-color: #d9c8e6; box-shadow: 0 6px 12px #69518208, 0 18px 36px #69518212; }
  .entry-card:hover .entry-cover { transform: scale(1.025); }
}
.browse-empty { text-align: center; border: 1px dashed #ddd0eb; border-radius: 20px; padding: 48px 20px; margin-bottom: 40px; }
.browse-empty h2 { margin: 0; font-size: 22px; }
.browse-empty p { margin-bottom: 0; color: var(--muted); }
.browse-page .browse-gate { display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 32px; padding: 30px 36px; margin-top: 48px; border-color: #e8dfee; background: linear-gradient(110deg, #f2eaf9, #f8f5fa 65%, #edf5f1); text-align: left; }
.browse-page .browse-gate h2 { grid-column: 1; font-size: 22px; font-weight: 600; }
.browse-page .browse-gate p { grid-column: 1; margin: 8px 0 0; font-size: 13px; }
.browse-page .browse-gate .button { grid-column: 2; grid-row: 1 / 3; margin: 0; font-size: 13px; padding: 12px 22px; box-shadow: 0 5px 14px #8e5bc81a; }
@media (max-width: 980px) and (min-width: 701px) {
  .entries { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 18px; }
}
@media (max-width: 700px) {
  .site-download { grid-column: 2; grid-row: 1; padding: 7px 12px; gap: 7px; font-size: 12px; }
  .browse-heading { align-items: flex-start; flex-direction: column; gap: 16px; padding: 24px 22px; margin: 18px 0 24px; border-radius: 20px; }
  .browse-intro { font-size: 14px; }
  .browse-intro span { font-size: 11px; }
  .entries { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; margin-bottom: 32px; }
  .entries .entry-card { padding: 6px; border-radius: 16px; }
  .entry-media { border-radius: 10px; }
  .entry-info { height: 64px; padding: 11px 5px 5px; gap: 6px; }
  .entry-name { font-size: 14px; }
  .entry-author { flex-basis: 26px; width: 26px; height: 26px; }
  .entry-placeholder { gap: 20px; }
  .placeholder-orbit { width: 76px; height: 76px; }
  .placeholder-orbit::before { inset: -10px; }
  .placeholder-orbit img { width: 50px; height: 50px; }
  .placeholder-caption { font-size: 10px; letter-spacing: 0; }
  .browse-page .browse-gate { display: block; text-align: center; margin-top: 32px; padding: 26px 18px; }
  .browse-page .browse-gate h2 { font-size: 20px; }
  .browse-page .browse-gate .button { margin-top: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .entries .entry-card, .entry-cover { transition: none; }
  .entry-card:hover, .entry-card:hover .entry-cover { transform: none; }
}
