:root {
  --zy-hero-light-text: #2f3a45;
  --zy-hero-light-nav: #364453;
  --zy-hero-dark-text: rgba(255, 255, 255, 0.88);
  --zy-hero-dark-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}

html,
body,
#body-wrap {
  cursor: url("/img/cursor/default.cur"), auto !important;
}

/* Clickable elements */
a,
button,
img,
i,
svg,
.card-widget,
.recent-post-item,
.article-sort-item,
#pagination a,
#nav .menus_item,
#aside-content .card-info .card-info-social-icons a {
  cursor: url("/img/cursor/pointer.cur"), pointer !important;
}

/* Text input controls */
input,
textarea,
select {
  cursor: text !important;
}

/* Light mode + white home top image */
[data-theme="light"] #page-header.full_page #site-title,
[data-theme="light"] #page-header.full_page #site-subtitle,
[data-theme="light"] #page-header.full_page #site-subtitle #subtitle {
  color: var(--zy-hero-light-text) !important;
  text-shadow: none !important;
}

[data-theme="light"] #page-header.full_page #site-title {
  font-weight: 800;
}

/* Let anzhiyu keep its selector logic, only retune nav tokens for this scene */
[data-theme="light"] #page-header.full_page #nav {
  --light-grey: var(--zy-hero-light-nav);
  --white: var(--zy-hero-light-text);
}

/* Dark mode restore */
[data-theme="dark"] #page-header.full_page #site-title,
[data-theme="dark"] #page-header.full_page #site-subtitle,
[data-theme="dark"] #page-header.full_page #site-subtitle #subtitle {
  color: var(--zy-hero-dark-text) !important;
  text-shadow: var(--zy-hero-dark-shadow) !important;
}

/* Light mode post top image: improve readability only on article header */
[data-theme="light"] #page-header.post-bg::before {
  content: "" !important;
  position: absolute;
  inset: 0;
  background: rgba(20, 26, 34, 0.28) !important;
  z-index: 2;
  pointer-events: none;
}

[data-theme="light"] #page-header.post-bg #post-info {
  z-index: 3;
}

[data-theme="light"] #page-header.post-bg #post-info .post-title,
[data-theme="light"] #page-header.post-bg #post-info #post-meta,
[data-theme="light"] #page-header.post-bg #post-info #post-meta a,
[data-theme="light"] #page-header.post-bg #post-firstinfo .meta-firstline,
  [data-theme="light"] #page-header.post-bg #post-firstinfo .meta-firstline a,
  [data-theme="light"] #page-header.post-bg #post-firstinfo .article-meta__tags {
  color: rgba(255, 255, 255, 0.96) !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35) !important;
}

/* Footer social bar: normalize icon/avatar visual size */
#footer_deal {
  gap: 14px;
}

#footer_deal .deal_link,
#footer_deal .footer_mini_logo {
  width: 46px;
  height: 46px;
  min-width: 46px;
  min-height: 46px;
}

#footer_deal .deal_link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#footer_deal .deal_link i,
#footer_deal .deal_link svg {
  font-size: 22px !important;
  width: 22px;
  height: 22px;
  line-height: 1;
}


/* Home hero title/subtitle typography tuning */
#page-header.full_page #site-title {
  font-size: 2.35rem !important;
}

#page-header.full_page #site-subtitle,
#page-header.full_page #site-subtitle #subtitle {
  font-size: 1.1rem !important;
}

@media screen and (max-width: 768px) {
  #page-header.full_page #site-title {
    font-size: 1.9rem !important;
  }

  #page-header.full_page #site-subtitle,
  #page-header.full_page #site-subtitle #subtitle {
    font-size: 0.98rem !important;
  }
}

/* Mobile sidebar menu: hide top-level icons, keep child icons */
@media screen and (max-width: 768px) {
  #sidebar #sidebar-menus .menus_items > .menus_item > .site-page > i:first-child {
    display: none !important;
  }

  #sidebar #sidebar-menus .menus_items > .menus_item > .site-page {
    padding-left: 0 !important;
  }
}

/* ----------------------------------------------------
   Palette tuning only (no layout/feature changes)
   Cloud Pop 2026: neutral base + vibrant accents
----------------------------------------------------- */
[data-theme="light"] {
  --anzhiyu-background: #f7f8fa;
  --anzhiyu-card-bg: rgba(255, 255, 255, 0.94);
  --anzhiyu-main: #2563eb;
  --anzhiyu-main-op: #2563eb;
  --anzhiyu-main-op-deep: #1d4ed8;
  --anzhiyu-main-none: rgba(37, 99, 235, 0);
  --anzhiyu-blue: #7c3aed;
  --zy-sage: #ec4899;
  --zy-sage-soft: rgba(236, 72, 153, 0.18);
  --anzhiyu-red: #f43f5e;
  --anzhiyu-orange: #f43f5e;
  --anzhiyu-fontcolor: #111827;
  --anzhiyu-secondtext: #4b5563;
  --anzhiyu-lighttext: #6b7280;
  --anzhiyu-border-op: rgba(37, 99, 235, 0.2);
  --anzhiyu-shadow-main: 0 12px 26px rgba(17, 24, 39, 0.12);
  --anzhiyu-shadow-border: 0 8px 20px rgba(17, 24, 39, 0.08);
}

[data-theme="dark"] {
  --anzhiyu-background: #0f1115;
  --anzhiyu-card-bg: rgba(23, 26, 33, 0.9);
  --anzhiyu-main: #3b82f6;
  --anzhiyu-main-op: #3b82f6;
  --anzhiyu-main-op-deep: #2563eb;
  --anzhiyu-main-none: rgba(59, 130, 246, 0);
  --anzhiyu-blue: #a855f7;
  --zy-sage: #ec4899;
  --zy-sage-soft: rgba(236, 72, 153, 0.24);
  --anzhiyu-red: #f43f5e;
  --anzhiyu-orange: #f43f5e;
  --anzhiyu-fontcolor: #e5e7eb;
  --anzhiyu-secondtext: #9ca3af;
  --anzhiyu-lighttext: #cbd5e1;
  --anzhiyu-border-op: rgba(255, 255, 255, 0.12);
  --anzhiyu-shadow-main: 0 14px 28px rgba(0, 0, 0, 0.3);
  --anzhiyu-shadow-border: 0 8px 22px rgba(0, 0, 0, 0.24);
}

/* Only visual tone: keep author/wechat card behaviors untouched */
[data-theme="light"] #web_bg {
  background:
    radial-gradient(circle at 8% 12%, rgba(124, 58, 237, 0.1), transparent 34%),
    radial-gradient(circle at 86% 10%, rgba(236, 72, 153, 0.1), transparent 32%),
    linear-gradient(180deg, #fbfcff 0%, #f7f8fa 100%) !important;
}

[data-theme="dark"] #web_bg {
  background:
    radial-gradient(circle at 10% 14%, rgba(96, 165, 250, 0.14), transparent 34%),
    radial-gradient(circle at 86% 10%, rgba(34, 211, 238, 0.1), transparent 30%),
    linear-gradient(180deg, #111c33 0%, #0f172a 100%) !important;
}

[data-theme="light"] #aside-content .card-widget:not(.card-info):not(#card-wechat),
[data-theme="light"] #recent-posts > .recent-post-item,
[data-theme="light"] div#post,
[data-theme="light"] div#page,
[data-theme="light"] div#archive {
  border-color: rgba(107, 91, 115, 0.16) !important;
}

[data-theme="dark"] #aside-content .card-widget:not(.card-info):not(#card-wechat),
[data-theme="dark"] #recent-posts > .recent-post-item,
[data-theme="dark"] div#post,
[data-theme="dark"] div#page,
[data-theme="dark"] div#archive {
  border-color: rgba(255, 255, 255, 0.12) !important;
}

/* Stronger tone visibility (color only) */
[data-theme="light"] {
  --anzhiyu-main: #2563eb;
  --anzhiyu-main-op: #2563eb;
  --anzhiyu-main-op-deep: #1d4ed8;
}

[data-theme="light"] #aside-content .card-widget:not(.card-info):not(#card-wechat),
[data-theme="light"] #recent-posts > .recent-post-item,
[data-theme="light"] div#post,
[data-theme="light"] div#page,
[data-theme="light"] div#archive {
  background: rgba(255, 255, 255, 0.84) !important;
}

[data-theme="light"] a {
  color: #3b82f6;
}

[data-theme="light"] a:hover {
  color: var(--zy-sage);
}

[data-theme="light"] .categoryButton,
[data-theme="light"] .pagination .page-number.current,
[data-theme="light"] .site-page.child:hover,
[data-theme="light"] #pagination .page-number.current {
  background: #5d4a68 !important;
  color: #fff !important;
}

[data-theme="light"] #nav .site-page:hover,
[data-theme="light"] #sidebar .menus_items .site-page:hover,
[data-theme="light"] .recent-post-item:hover .article-title,
[data-theme="light"] .card-widget a:hover {
  color: var(--zy-sage) !important;
}

[data-theme="light"] #pagination .page-number.current,
[data-theme="light"] .pagination .page-number.current {
  background: var(--zy-sage) !important;
  border-color: var(--zy-sage) !important;
}

[data-theme="light"] .card-tag-cloud a:hover,
[data-theme="light"] .article-meta__tags a:hover,
[data-theme="light"] .tag-cloud-list a:hover {
  color: var(--zy-sage) !important;
}

[data-theme="dark"] a {
  color: #c9b4db;
}

[data-theme="dark"] a:hover {
  color: var(--zy-sage);
}

[data-theme="dark"] #nav .site-page:hover,
[data-theme="dark"] #sidebar .menus_items .site-page:hover,
[data-theme="dark"] .recent-post-item:hover .article-title,
[data-theme="dark"] .card-widget a:hover {
  color: var(--zy-sage) !important;
}

[data-theme="dark"] #pagination .page-number.current,
[data-theme="dark"] .pagination .page-number.current {
  background: var(--zy-sage) !important;
  border-color: var(--zy-sage) !important;
  color: #1f1a23 !important;
}

[data-theme="light"] .article-meta__tags a,
[data-theme="light"] .card-tag-cloud a,
[data-theme="light"] .tag-cloud-list a {
  background: var(--zy-sage-soft);
  border-radius: 8px;
  padding: 0 6px;
}

[data-theme="dark"] .article-meta__tags a,
[data-theme="dark"] .card-tag-cloud a,
[data-theme="dark"] .tag-cloud-list a {
  background: var(--zy-sage-soft);
  border-radius: 8px;
  padding: 0 6px;
}

/* Restore author card custom style */
.card-widget.card-info {
  position: relative;
  background: url("/img/card/cover.webp") center center / cover no-repeat !important;
  overflow: hidden;
}

/* Hide yellow overlay layer from theme */
.card-widget.card-info::before,
.card-widget.card-info::after {
  background: transparent !important;
  opacity: 0 !important;
}

.card-widget.card-info .card-content {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 24px 22px 86px !important;
}

/* Hide avatar */
.card-widget.card-info .author-info-avatar {
  display: none !important;
}

/* Keep text readable on image */
.card-widget.card-info .author-info__name,
.card-widget.card-info #author-info__name {
  color: #fff !important;
  text-shadow: 0 3px 12px rgba(0, 0, 0, .36);
}

.card-widget.card-info .author-info__desc,
.card-widget.card-info .author-info-description {
  color: rgba(255, 255, 255, .92) !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .3);
}

/* Bottom social buttons */
.author-social {
  position: absolute;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  z-index: 5;
}

.author-social a {
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, .18);
  color: #fff !important;
  font-size: 18px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: transform .25s ease, background .25s ease;
}

.author-social a:hover {
  transform: translateY(-3px) scale(1.08);
  background: rgba(255, 255, 255, .28);
}

/* Sidebar welcome card (below #card-wechat) */
#zy-welcome-card {
  margin-top: 12px;
}

#zy-welcome-card .item-headline {
  display: flex;
  align-items: center;
  gap: 8px;
}

#zy-welcome-card .zy-welcome-box {
  border-radius: 14px;
  border: var(--style-border-always);
  padding: 12px 14px;
  background: color-mix(in srgb, var(--anzhiyu-card-bg) 90%, transparent);
}

#zy-welcome-card .zy-welcome-box p {
  margin: 0 0 8px;
  line-height: 1.7;
  color: var(--anzhiyu-fontcolor);
}

#zy-welcome-card .zy-welcome-box p:last-child {
  margin-bottom: 0;
}

#zy-welcome-card .zy-welcome-time {
  color: var(--anzhiyu-secondtext) !important;
  font-size: 0.92rem;
}

#zy-welcome-card .zy-text-strong,
.zy-text-strong {
  color: #fff;
  font-weight: 700;
}

#zy-welcome-card .zy-text-blue,
.zy-text-blue {
  color: #57a9ff;
  font-weight: 600;
}

#zy-welcome-card .zy-text-green,
.zy-text-green {
  color: #ff6bb3;
  font-weight: 600;
}

#zy-welcome-card .zy-text-purple,
.zy-text-purple {
  color: #b38cff;
  font-weight: 600;
}

#zy-welcome-card .zy-text-pink,
.zy-text-pink {
  color: #ff93d2;
  font-weight: 600;
}

.zy-text-yellow {
  color: #ffd84d;
  font-weight: 600;
}

[data-theme="light"] .zy-text-strong {
  color: #111827;
}

[data-theme="dark"] .zy-text-strong,
[data-theme="dark"] .zy-text-blue,
[data-theme="dark"] .zy-text-green,
[data-theme="dark"] .zy-text-purple,
[data-theme="dark"] .zy-text-pink,
[data-theme="dark"] .zy-text-yellow {
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.28);
}

#zy-welcome-card .zy-ip-blur {
  filter: blur(5px);
  color: var(--anzhiyu-main);
  transition: filter .25s ease;
}

#zy-welcome-card .zy-ip-blur:hover {
  filter: blur(0);
}

/* YYsuni share-style resource pages: downloads / sites / tools */
:root {
  --zy-share-brand: #2fcbe7;
  --zy-share-primary: #5b423f;
  --zy-share-secondary: #8b7667;
  --zy-share-bg: #d4e8f3;
  --zy-share-card: rgba(255, 255, 255, 0.6);
  --zy-share-border: #ffffff;
  --zy-share-chip: rgba(139, 118, 103, 0.1);
  --zy-share-muted-star: #d1d5dc;
}

[data-theme="dark"] {
  --zy-share-primary: rgba(255, 255, 255, 0.86);
  --zy-share-secondary: rgba(255, 255, 255, 0.58);
  --zy-share-bg: #151a24;
  --zy-share-card: rgba(31, 35, 49, 0.62);
  --zy-share-border: rgba(255, 255, 255, 0.12);
  --zy-share-chip: rgba(255, 255, 255, 0.08);
  --zy-share-muted-star: rgba(255, 255, 255, 0.16);
}

body[data-type="downloads"] #web_bg,
body[data-type="sites"] #web_bg,
body[data-type="tools"] #web_bg {
  background:
    radial-gradient(circle at 18% 10%, rgba(47, 203, 231, 0.2), transparent 34%),
    radial-gradient(circle at 78% 64%, rgba(238, 194, 94, 0.18), transparent 30%),
    var(--zy-share-bg) !important;
}

body[data-type="downloads"] #page,
body[data-type="sites"] #page,
body[data-type="tools"] #page {
  max-width: 1280px;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-type="downloads"] #content-inner.layout,
body[data-type="sites"] #content-inner.layout,
body[data-type="tools"] #content-inner.layout {
  max-width: 1280px !important;
  padding: 96px 24px 48px !important;
}

body[data-type="downloads"] #content-inner.layout > div:first-child,
body[data-type="sites"] #content-inner.layout > div:first-child,
body[data-type="tools"] #content-inner.layout > div:first-child {
  width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-type="downloads"] #page .page-title,
body[data-type="sites"] #page .page-title,
body[data-type="tools"] #page .page-title {
  display: none !important;
}

body[data-type="downloads"] #article-container,
body[data-type="sites"] #article-container,
body[data-type="tools"] #article-container {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

body[data-type="downloads"] #aside-content,
body[data-type="sites"] #aside-content,
body[data-type="tools"] #aside-content {
  display: none !important;
}

body[data-type="downloads"] #article-container > p:first-of-type,
.download-hero,
.download-featured,
.download-section-head,
.download-sync-note,
.sites-hero,
.tools-hero {
  display: none !important;
}

.download-center,
.sites-center,
.tools-center {
  display: block !important;
  position: relative;
  isolation: isolate;
  color: var(--zy-share-primary);
  animation: none;
}

.download-center::before,
.sites-center::before,
.tools-center::before {
  content: none !important;
}

body[data-type="downloads"] .download-toolbar,
body[data-type="sites"] .sites-toolbar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 0 36px !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.download-search,
.sites-search {
  width: min(100%, 420px);
  border: 1px solid rgba(255, 255, 255, 0.64);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.68);
  box-shadow: none;
  color: var(--zy-share-secondary);
  transform: none;
}

[data-theme="dark"] .download-search,
[data-theme="dark"] .sites-search {
  background: rgba(31, 35, 49, 0.72);
}

.download-search:focus-within,
.sites-search:focus-within {
  box-shadow: none;
  transform: none;
}

.download-filter-chip,
.sites-filter-chip {
  min-height: 30px;
  border: 0;
  border-radius: 999px;
  background: rgba(229, 231, 235, 0.86);
  color: var(--zy-share-primary);
  box-shadow: none;
  font-size: .875rem;
  font-weight: 500;
  line-height: 1;
  padding: 0 16px;
  transform: none;
  transition: background .18s ease, color .18s ease;
}

[data-theme="dark"] .download-filter-chip,
[data-theme="dark"] .sites-filter-chip {
  background: rgba(255, 255, 255, 0.08);
}

.download-filter-chip span {
  display: none;
}

.download-filter-chip:hover,
.download-filter-chip.is-active,
.sites-filter-chip:hover,
.sites-filter-chip.is-active {
  border: 0;
  background: var(--zy-share-brand);
  color: #fff;
  box-shadow: none;
  transform: none;
}

.download-sections,
.sites-grid,
.tools-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
}

.download-section,
.download-grid {
  display: contents;
}

.download-card,
.sites-card,
.tools-card {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  align-items: start;
  gap: 16px;
  min-height: 242px;
  border: 1px solid var(--zy-share-border);
  border-radius: 40px !important;
  background: var(--zy-share-card);
  box-shadow: 0 40px 50px -32px rgba(0, 0, 0, 0.05), inset 0 0 20px rgba(255, 255, 255, 0.25);
  color: var(--zy-share-primary) !important;
  padding: 24px;
  border-bottom: 1px solid var(--zy-share-border) !important;
  text-decoration: none !important;
  background-image: none !important;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  animation: none;
  transform: none;
  transition: border-color .18s ease, background .18s ease;
}

.download-card::before,
.sites-card::before,
.tools-card::before {
  content: none !important;
}

.download-card:hover,
.sites-card:hover,
.tools-card:hover {
  border-color: var(--zy-share-border);
  border-radius: 40px !important;
  background: var(--zy-share-card) !important;
  box-shadow: 0 40px 50px -32px rgba(0, 0, 0, 0.05), inset 0 0 20px rgba(255, 255, 255, 0.25);
  color: var(--zy-share-primary) !important;
  transform: none;
}

body[data-type="downloads"] #article-container .download-card,
body[data-type="downloads"] #article-container .download-card:hover,
body[data-type="downloads"] #article-container .download-card:active,
body[data-type="sites"] #article-container .sites-card,
body[data-type="sites"] #article-container .sites-card:hover,
body[data-type="sites"] #article-container .sites-card:active,
body[data-type="tools"] #article-container .tools-card,
body[data-type="tools"] #article-container .tools-card:hover,
body[data-type="tools"] #article-container .tools-card:active {
  border-radius: 40px !important;
  border-bottom: 1px solid var(--zy-share-border) !important;
  overflow: hidden !important;
  padding: 24px !important;
  text-decoration: none !important;
  background-image: none !important;
}

.download-card::after {
  content: attr(href);
  position: absolute;
  top: 64px;
  left: 104px;
  right: 24px;
  overflow: hidden;
  color: var(--zy-share-secondary);
  font-size: .9rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.download-card-icon,
.sites-card-icon,
.tools-card-icon {
  width: 64px;
  height: 64px;
  border-radius: 12px;
  background: var(--zy-share-chip);
  color: var(--zy-share-brand);
  font-size: 1.55rem;
}

.download-card-main,
.sites-card-main,
.tools-card-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.download-card-main strong,
.sites-card-main strong,
.tools-card-main strong {
  order: 1;
  display: block;
  overflow: hidden;
  color: var(--zy-share-primary) !important;
  font-size: 1.28rem;
  font-weight: 700;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.download-card-desc,
.sites-card-main span,
.tools-card-main span {
  order: 4;
  display: -webkit-box !important;
  min-height: 0;
  margin-top: 20px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  color: var(--anzhiyu-fontcolor) !important;
  font-size: 1rem;
  line-height: 1.65;
  white-space: normal !important;
}

.download-card-main::before,
.sites-card-main::before,
.tools-card-main::before {
  content: none !important;
  display: none !important;
}

.download-card-tags,
.sites-card-main em,
.tools-card-main::after {
  order: 3;
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 42px;
}

.download-card-tags em,
.sites-card-main em,
.tools-card-main::after {
  max-width: 180px;
  border: 0;
  border-radius: 999px;
  background: var(--zy-share-chip);
  color: var(--zy-share-primary) !important;
  font-size: .86rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  padding: 6px 12px;
}

.tools-card-main::after {
  content: "本站";
  width: max-content;
}

.download-card-meta {
  grid-column: 2;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
  margin-top: 8px;
  color: var(--zy-share-secondary);
  font-size: .86rem;
}

.download-card-meta span {
  border-radius: 999px;
  background: var(--zy-share-chip);
  padding: 6px 12px;
}

.sites-card,
.tools-card {
  position: relative;
}

.sites-card::after,
.tools-card::after {
  content: attr(href);
  position: absolute;
  top: 64px;
  left: 104px;
  right: 24px;
  overflow: hidden;
  color: var(--zy-share-secondary);
  font-size: .9rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tools-card-main {
  grid-column: 2;
}

.tools-card-action {
  display: none !important;
}

.download-empty,
.sites-empty {
  margin-top: 20px;
  border: 1px solid var(--zy-share-border);
  border-radius: 40px;
  background: var(--zy-share-card);
  box-shadow: 0 40px 50px -32px rgba(0, 0, 0, 0.05), inset 0 0 20px rgba(255, 255, 255, 0.25);
  color: var(--zy-share-secondary);
  padding: 28px;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

@media (max-width: 1100px) {
  .download-sections,
  .sites-grid,
  .tools-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
  }
}

@media (max-width: 768px) {
  body[data-type="downloads"] #content-inner.layout,
  body[data-type="sites"] #content-inner.layout,
  body[data-type="tools"] #content-inner.layout {
    padding: 72px 16px 40px !important;
  }

  .download-toolbar,
  .sites-toolbar {
    padding-bottom: 24px;
  }

  .download-filter-chip,
  .sites-filter-chip {
    min-height: 38px;
    padding: 0 16px;
    font-size: .92rem;
  }

  .download-sections,
  .sites-grid,
  .tools-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .download-card,
  .sites-card,
  .tools-card {
    min-height: 240px;
    padding: 24px;
  }

  .download-card::after,
  .sites-card::after,
  .tools-card::after {
    left: 104px;
    right: 24px;
    top: 64px;
  }
}

/* Lightweight motion system for downloads / sites / tools cards */
body[data-type="downloads"] .download-card,
body[data-type="sites"] .sites-card,
body[data-type="tools"] .tools-card {
  position: relative;
  will-change: transform, box-shadow;
  transition:
    transform .26s cubic-bezier(.22, 1, .36, 1),
    box-shadow .26s ease,
    border-color .2s ease,
    background-color .2s ease;
}

body[data-type="downloads"] .download-card::before,
body[data-type="sites"] .sites-card::before,
body[data-type="tools"] .tools-card::before {
  content: "" !important;
  position: absolute;
  inset: -28% auto -28% -48%;
  width: 44%;
  background: linear-gradient(115deg, transparent 0%, rgba(255, 255, 255, 0.08) 26%, rgba(255, 255, 255, 0.34) 48%, rgba(255, 255, 255, 0.08) 68%, transparent 100%);
  opacity: 0;
  pointer-events: none;
  transform: translateX(-135%) rotate(12deg);
  transition: transform .66s cubic-bezier(.22, 1, .36, 1), opacity .22s ease;
  z-index: 0;
}

body[data-type="downloads"] .download-card > *,
body[data-type="sites"] .sites-card > *,
body[data-type="tools"] .tools-card > * {
  position: relative;
  z-index: 1;
}

body[data-type="downloads"] .download-card-icon,
body[data-type="sites"] .sites-card-icon,
body[data-type="tools"] .tools-card-icon {
  transition:
    transform .24s cubic-bezier(.22, 1, .36, 1),
    background-color .24s ease,
    color .24s ease,
    box-shadow .24s ease;
}

body[data-type="downloads"] .download-card-main strong,
body[data-type="downloads"] .download-card-desc,
body[data-type="downloads"] .download-card-meta,
body[data-type="downloads"] .download-card-tags em,
body[data-type="sites"] .sites-card-main strong,
body[data-type="sites"] .sites-card-main span,
body[data-type="sites"] .sites-card-main em,
body[data-type="tools"] .tools-card-main strong,
body[data-type="tools"] .tools-card-main span,
body[data-type="tools"] .tools-card-main::after {
  transition:
    transform .22s cubic-bezier(.22, 1, .36, 1),
    color .22s ease,
    opacity .22s ease;
}

body[data-type="downloads"] .download-card:hover,
body[data-type="downloads"] .download-card:focus-visible,
body[data-type="sites"] .sites-card:hover,
body[data-type="sites"] .sites-card:focus-visible,
body[data-type="tools"] .tools-card:hover,
body[data-type="tools"] .tools-card:focus-visible {
  transform: translateY(-6px);
  box-shadow:
    0 28px 44px -26px rgba(48, 58, 88, 0.28),
    0 14px 24px -18px rgba(47, 203, 231, 0.24),
    inset 0 0 22px rgba(255, 255, 255, 0.28) !important;
  border-color: rgba(255, 255, 255, 0.94) !important;
}

body[data-type="downloads"] .download-card:hover::before,
body[data-type="downloads"] .download-card:focus-visible::before,
body[data-type="sites"] .sites-card:hover::before,
body[data-type="sites"] .sites-card:focus-visible::before,
body[data-type="tools"] .tools-card:hover::before,
body[data-type="tools"] .tools-card:focus-visible::before {
  opacity: 1;
  transform: translateX(332%) rotate(12deg);
}

body[data-type="downloads"] .download-card:hover .download-card-icon,
body[data-type="downloads"] .download-card:focus-visible .download-card-icon,
body[data-type="sites"] .sites-card:hover .sites-card-icon,
body[data-type="sites"] .sites-card:focus-visible .sites-card-icon,
body[data-type="tools"] .tools-card:hover .tools-card-icon,
body[data-type="tools"] .tools-card:focus-visible .tools-card-icon {
  transform: translateY(-1px) scale(1.08);
  box-shadow: 0 14px 20px -16px rgba(47, 203, 231, 0.45);
}

body[data-type="downloads"] .download-card:hover .download-card-main strong,
body[data-type="downloads"] .download-card:focus-visible .download-card-main strong,
body[data-type="sites"] .sites-card:hover .sites-card-main strong,
body[data-type="sites"] .sites-card:focus-visible .sites-card-main strong,
body[data-type="tools"] .tools-card:hover .tools-card-main strong,
body[data-type="tools"] .tools-card:focus-visible .tools-card-main strong {
  transform: translateY(-1px);
}

body[data-type="downloads"] .download-card:hover .download-card-desc,
body[data-type="downloads"] .download-card:hover .download-card-meta,
body[data-type="downloads"] .download-card:hover .download-card-tags em,
body[data-type="sites"] .sites-card:hover .sites-card-main span,
body[data-type="sites"] .sites-card:hover .sites-card-main em,
body[data-type="tools"] .tools-card:hover .tools-card-main span,
body[data-type="tools"] .tools-card:hover .tools-card-main::after {
  transform: translateY(-1px);
}

body[data-type="downloads"] .download-filter-chip,
body[data-type="sites"] .sites-filter-chip {
  transition:
    transform .2s cubic-bezier(.22, 1, .36, 1),
    background-color .2s ease,
    color .2s ease,
    box-shadow .2s ease;
}

body[data-type="downloads"] .download-filter-chip:hover,
body[data-type="downloads"] .download-filter-chip:focus-visible,
body[data-type="sites"] .sites-filter-chip:hover,
body[data-type="sites"] .sites-filter-chip:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 10px 18px -16px rgba(47, 203, 231, 0.42);
}

.card-motion-enabled body[data-type="downloads"] .download-card,
.card-motion-enabled body[data-type="sites"] .sites-card,
.card-motion-enabled body[data-type="tools"] .tools-card {
  opacity: 0;
  transform: translateY(18px);
}

.card-motion-enabled body[data-type="downloads"] .download-card.is-revealed,
.card-motion-enabled body[data-type="sites"] .sites-card.is-revealed,
.card-motion-enabled body[data-type="tools"] .tools-card.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

.card-motion-enabled body[data-type="downloads"] .download-card.is-revealed:nth-child(2n),
.card-motion-enabled body[data-type="sites"] .sites-card.is-revealed:nth-child(2n),
.card-motion-enabled body[data-type="tools"] .tools-card.is-revealed:nth-child(2n) {
  transition-delay: .04s;
}

.card-motion-enabled body[data-type="downloads"] .download-card.is-revealed:nth-child(3n),
.card-motion-enabled body[data-type="sites"] .sites-card.is-revealed:nth-child(3n),
.card-motion-enabled body[data-type="tools"] .tools-card.is-revealed:nth-child(3n) {
  transition-delay: .08s;
}

@media (prefers-reduced-motion: reduce) {
  .card-motion-enabled body[data-type="downloads"] .download-card,
  .card-motion-enabled body[data-type="sites"] .sites-card,
  .card-motion-enabled body[data-type="tools"] .tools-card {
    opacity: 1;
    transform: none;
    transition: none;
  }

  body[data-type="downloads"] .download-card::before,
  body[data-type="sites"] .sites-card::before,
  body[data-type="tools"] .tools-card::before,
  body[data-type="downloads"] .download-card-icon,
  body[data-type="sites"] .sites-card-icon,
  body[data-type="tools"] .tools-card-icon,
  body[data-type="downloads"] .download-filter-chip,
  body[data-type="sites"] .sites-filter-chip {
    transition: none;
  }
}
/* ============================================================
   Glassmorphism v2 · tools / downloads / sites 页面美化
   毛玻璃质感：通透 + 柔光 + 渐变图标，深浅色自适应
   ============================================================ */

/* ---- 1. 环境光背景：更丰富的色彩层次 ---- */
body[data-type="downloads"] #web_bg,
body[data-type="sites"] #web_bg,
body[data-type="tools"] #web_bg {
  background:
    radial-gradient(40% 30% at 10% 6%, rgba(47, 203, 231, 0.32), transparent 70%),
    radial-gradient(34% 28% at 90% 12%, rgba(167, 139, 250, 0.26), transparent 70%),
    radial-gradient(38% 32% at 86% 84%, rgba(238, 194, 94, 0.22), transparent 70%),
    radial-gradient(30% 26% at 6% 92%, rgba(244, 114, 182, 0.16), transparent 70%),
    var(--zy-share-bg) !important;
}

/* ---- 2. Hero 毛玻璃横幅（恢复显示并重塑） ---- */
body[data-type="downloads"] .download-hero,
body[data-type="sites"] .sites-hero,
body[data-type="tools"] .tools-hero {
  display: flex !important;
  position: relative;
  overflow: hidden;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin: 0 0 40px !important;
  padding: 38px 42px !important;
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  border-radius: 28px !important;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.16)) !important;
  -webkit-backdrop-filter: blur(24px) saturate(160%) !important;
  backdrop-filter: blur(24px) saturate(160%) !important;
  box-shadow:
    0 30px 60px -28px rgba(47, 203, 231, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.65) !important;
}

/* hero 内装饰光斑 */
body[data-type="downloads"] .download-hero::after,
body[data-type="sites"] .sites-hero::after,
body[data-type="tools"] .tools-hero::after {
  content: "" !important;
  position: absolute;
  top: -70px;
  right: -50px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(47, 203, 231, 0.35), transparent 70%);
  filter: blur(10px);
  pointer-events: none;
}

body[data-type="downloads"] .download-hero > *,
body[data-type="sites"] .sites-hero > *,
body[data-type="tools"] .tools-hero > * {
  position: relative;
  z-index: 1;
}

body[data-type="tools"] .tools-eyebrow,
body[data-type="downloads"] .download-eyebrow,
body[data-type="sites"] .sites-eyebrow {
  display: inline-block;
  margin-bottom: 12px;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(47, 203, 231, 0.14);
  border: 1px solid rgba(47, 203, 231, 0.35);
  color: #0e9db8;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body[data-type="tools"] .tools-hero h2,
body[data-type="downloads"] .download-hero h2,
body[data-type="sites"] .sites-hero h2 {
  margin: 0 0 10px !important;
  font-size: 2.1rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em;
  background: linear-gradient(120deg, #33414f 20%, #0e9db8 60%, #7c8cf8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

body[data-type="tools"] .tools-hero p,
body[data-type="downloads"] .download-hero p,
body[data-type="sites"] .sites-hero p {
  margin: 0 !important;
  max-width: 520px;
  color: var(--zy-share-secondary) !important;
  font-size: 1rem;
  line-height: 1.7;
}

body[data-type="tools"] .tools-hero-badges {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}

body[data-type="tools"] .tools-hero-badges span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.65);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--zy-share-primary);
  box-shadow: 0 8px 18px -12px rgba(47, 203, 231, 0.5);
  white-space: nowrap;
}

body[data-type="tools"] .tools-hero-badges i {
  color: #0e9db8;
}

/* downloads hero 右侧数据卡 */
body[data-type="downloads"] .download-overview {
  display: flex;
  gap: 14px;
  flex-shrink: 0;
}

body[data-type="downloads"] .download-overview-item {
  min-width: 96px;
  text-align: center;
  padding: 16px 18px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

body[data-type="downloads"] .download-overview-item strong {
  display: block;
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--zy-share-primary);
  line-height: 1.2;
}

body[data-type="downloads"] .download-overview-item span {
  font-size: 0.8rem;
  color: var(--zy-share-secondary);
}

/* ---- 3. 卡片：更通透的玻璃质感 ---- */
body[data-type="downloads"] #article-container .download-card,
body[data-type="sites"] #article-container .sites-card,
body[data-type="tools"] #article-container .tools-card {
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  border-radius: 24px !important;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.2)) !important;
  -webkit-backdrop-filter: blur(20px) saturate(150%) !important;
  backdrop-filter: blur(20px) saturate(150%) !important;
  box-shadow:
    0 24px 44px -24px rgba(60, 80, 110, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

body[data-type="downloads"] #article-container .download-card:hover,
body[data-type="sites"] #article-container .sites-card:hover,
body[data-type="tools"] #article-container .tools-card:hover {
  border-radius: 24px !important;
}

/* 图标：渐变玻璃砖 */
body[data-type="downloads"] .download-card-icon,
body[data-type="sites"] .sites-card-icon,
body[data-type="tools"] .tools-card-icon {
  background: linear-gradient(135deg, #2fcbe7 0%, #6f9bf8 100%) !important;
  color: #fff !important;
  border-radius: 18px !important;
  box-shadow:
    0 12px 22px -12px rgba(47, 203, 231, 0.65),
    inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
}

body[data-type="tools"] .tools-card-icon-image {
  background: linear-gradient(135deg, #a78bfa 0%, #7c8cf8 100%) !important;
  box-shadow:
    0 12px 22px -12px rgba(167, 139, 250, 0.65),
    inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
}

body[data-type="tools"] .tools-card-icon-qrcode {
  background: linear-gradient(135deg, #34d399 0%, #2fcbe7 100%) !important;
  box-shadow:
    0 12px 22px -12px rgba(52, 211, 153, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
}

/* ---- 4. 工具栏玻璃化 ---- */
body[data-type="downloads"] .download-search,
body[data-type="sites"] .sites-search {
  background: rgba(255, 255, 255, 0.5) !important;
  -webkit-backdrop-filter: blur(16px) saturate(150%) !important;
  backdrop-filter: blur(16px) saturate(150%) !important;
  border: 1px solid rgba(255, 255, 255, 0.65) !important;
  border-radius: 16px !important;
  box-shadow:
    0 14px 28px -18px rgba(60, 80, 110, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.55) !important;
}

body[data-type="downloads"] .download-filter-chip,
body[data-type="sites"] .sites-filter-chip {
  background: rgba(255, 255, 255, 0.45) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  box-shadow:
    0 8px 16px -12px rgba(60, 80, 110, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;
}

body[data-type="downloads"] .download-filter-chip.is-active,
body[data-type="sites"] .sites-filter-chip.is-active {
  background: linear-gradient(135deg, #2fcbe7, #1fa8d0) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  color: #fff !important;
  box-shadow:
    0 10px 20px -10px rgba(47, 203, 231, 0.7),
    inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
}

/* ---- 5. 深色模式 ---- */
[data-theme="dark"] body[data-type="downloads"] .download-hero,
[data-theme="dark"] body[data-type="sites"] .sites-hero,
[data-theme="dark"] body[data-type="tools"] .tools-hero {
  background: linear-gradient(135deg, rgba(52, 60, 82, 0.55), rgba(30, 35, 50, 0.3)) !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
  box-shadow:
    0 30px 60px -28px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] body[data-type="tools"] .tools-hero h2,
[data-theme="dark"] body[data-type="downloads"] .download-hero h2,
[data-theme="dark"] body[data-type="sites"] .sites-hero h2 {
  background: linear-gradient(120deg, #e8eef5 20%, #2fcbe7 65%, #a78bfa 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

[data-theme="dark"] body[data-type="tools"] .tools-eyebrow,
[data-theme="dark"] body[data-type="downloads"] .download-eyebrow,
[data-theme="dark"] body[data-type="sites"] .sites-eyebrow {
  background: rgba(47, 203, 231, 0.12);
  border-color: rgba(47, 203, 231, 0.3);
  color: #2fcbe7;
}

[data-theme="dark"] body[data-type="tools"] .tools-hero-badges span,
[data-theme="dark"] body[data-type="downloads"] .download-overview-item {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.14);
}

[data-theme="dark"] body[data-type="downloads"] #article-container .download-card,
[data-theme="dark"] body[data-type="sites"] #article-container .sites-card,
[data-theme="dark"] body[data-type="tools"] #article-container .tools-card {
  background: linear-gradient(150deg, rgba(52, 60, 82, 0.5), rgba(28, 32, 46, 0.32)) !important;
  border-color: rgba(255, 255, 255, 0.13) !important;
  box-shadow:
    0 24px 44px -24px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] body[data-type="downloads"] .download-search,
[data-theme="dark"] body[data-type="sites"] .sites-search {
  background: rgba(40, 46, 64, 0.5) !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}

[data-theme="dark"] body[data-type="downloads"] .download-filter-chip,
[data-theme="dark"] body[data-type="sites"] .sites-filter-chip {
  background: rgba(255, 255, 255, 0.07) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
}

/* ---- 6. 移动端适配 ---- */
@media (max-width: 768px) {
  body[data-type="downloads"] .download-hero,
  body[data-type="sites"] .sites-hero,
  body[data-type="tools"] .tools-hero {
    flex-direction: column;
    align-items: flex-start;
    padding: 28px 24px !important;
    border-radius: 22px !important;
  }

  body[data-type="tools"] .tools-hero h2,
  body[data-type="downloads"] .download-hero h2,
  body[data-type="sites"] .sites-hero h2 {
    font-size: 1.6rem !important;
  }

  body[data-type="downloads"] .download-overview {
    width: 100%;
  }

  body[data-type="downloads"] .download-overview-item {
    flex: 1;
    min-width: 0;
  }
}

/* ====== 卡片插画图标（AI 定制） ====== */
.download-card-icon:has(img),
.tools-card-icon:has(img) {
  background: transparent !important;
  box-shadow: 0 14px 24px -14px rgba(70, 90, 130, .45) !important;
  padding: 0;
  overflow: hidden;
}
.download-card-icon img,
.tools-card-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  display: block;
}
[data-theme="dark"] .download-card-icon:has(img),
[data-theme="dark"] .tools-card-icon:has(img) {
  box-shadow: 0 14px 24px -14px rgba(0, 0, 0, .6) !important;
}
/* ============================================================
   Bento Redesign · downloads + tools
   设计语言：安知鱼主题 #425AEF 钴蓝主色 / 圆角卡片 / 扁平几何插画
   ============================================================ */

/* ---------- 分类色（供文件卡片继承） ---------- */
.dlx-section[data-category="Android"] { --cat: #3DDC84; --cat-soft: rgba(61,220,132,.14); }
.dlx-section[data-category="iOS"] { --cat: #64748B; --cat-soft: rgba(100,116,139,.14); }
.dlx-section[data-category="Windows"] { --cat: #0078D4; --cat-soft: rgba(0,120,212,.12); }
.dlx-section[data-category="v2ray"] { --cat: #425AEF; --cat-soft: rgba(66,90,239,.12); }
.dlx-section[data-category="bandizip"] { --cat: #FF9F0A; --cat-soft: rgba(255,159,10,.14); }
.dlx-section[data-category="geek"] { --cat: #FF6B6B; --cat-soft: rgba(255,107,107,.12); }

/* ============================================================
   DOWNLOADS · dlx-
   ============================================================ */
.dlx { --dlx-ink: #1e2433; --dlx-sub: #5b6478; --dlx-card: #ffffff; --dlx-line: #e8ecf5; }
[data-theme="dark"] .dlx { --dlx-ink: #eef1f8; --dlx-sub: #9aa3b8; --dlx-card: #1d1e26; --dlx-line: #2c2e3a; }

/* ---- Hero：安知鱼式渐变横幅 ---- */
.dlx-hero {
  position: relative; overflow: hidden;
  border-radius: 22px; margin-bottom: 28px;
  background: linear-gradient(120deg, #2b3fd4 0%, #425AEF 45%, #7a5cff 100%);
  color: #fff;
}
.dlx-hero-art { position: absolute; inset: 0; pointer-events: none; }
.dlx-hero-art i { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; }
.dlx-hero-art .a { width: 420px; height: 420px; right: -120px; top: -140px; background: #9db4ff; }
.dlx-hero-art .b { width: 300px; height: 300px; left: 30%; bottom: -160px; background: #b47cff; opacity: .45; }
.dlx-hero-art .c { width: 180px; height: 180px; left: -60px; top: -60px; background: #6fe3ff; opacity: .35; }
.dlx-hero-inner { position: relative; padding: 56px 48px 44px; }
.dlx-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; letter-spacing: .22em; font-weight: 700;
  background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.28);
  padding: 7px 14px; border-radius: 999px; margin: 0 0 18px;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.dlx-hero h1 { color: #fff !important; font-size: 44px; font-weight: 800; margin: 0 0 10px; letter-spacing: .02em; }
.dlx-sub { color: rgba(255,255,255,.85); font-size: 16px; margin: 0 0 26px; }
.dlx-stats { display: flex; gap: 34px; margin-bottom: 28px; }
.dlx-stats b { display: block; font-size: 30px; font-weight: 800; line-height: 1.1; }
.dlx-stats span { font-size: 12px; color: rgba(255,255,255,.7); letter-spacing: .12em; }
.dlx-search {
  display: flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.95); border-radius: 14px;
  padding: 4px 6px 4px 18px; max-width: 460px;
  box-shadow: 0 12px 32px -12px rgba(20,30,90,.45);
}
.dlx-search i { color: #8a93ad; }
.dlx-search input {
  flex: 1; border: 0; outline: 0; background: transparent;
  font-size: 15px; padding: 12px 8px; color: #1e2433;
}

/* ---- 分类 Bento 网格 ---- */
.dlx-cats {
  display: grid; gap: 16px; margin-bottom: 40px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-areas:
    "all all android ios"
    "windows v2ray bandizip geek";
}
.dlx-cat {
  position: relative; overflow: hidden; cursor: pointer;
  border: 0; border-radius: 18px; min-height: 168px; padding: 0;
  text-align: left; font-family: inherit;
  box-shadow: 0 10px 26px -14px rgba(40,55,120,.35);
  transition: transform .25s ease, box-shadow .25s ease;
}
.dlx-cat:hover { transform: translateY(-4px); box-shadow: 0 18px 34px -14px rgba(40,55,120,.45); }
.dlx-cat img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.dlx-cat:hover img { transform: scale(1.07); }
.dlx-cat::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,14,30,0) 30%, rgba(10,14,30,.72) 100%);
}
.dlx-cat-info { position: absolute; left: 18px; bottom: 14px; z-index: 1; }
.dlx-cat-info b { display: block; color: #fff; font-size: 19px; font-weight: 800; }
.dlx-cat-info i { font-style: normal; color: rgba(255,255,255,.75); font-size: 12px; }
.dlx-cat.is-active { outline: 3px solid var(--cat, #425AEF); outline-offset: 2px; }
/* 全部 tile */
.dlx-cat-all {
  grid-area: all;
  background: linear-gradient(120deg, #2b3fd4, #425AEF 60%, #6a7cff);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 30px; min-height: 168px;
}
.dlx-cat-all::after { background: linear-gradient(180deg, rgba(43,63,212,0) 40%, rgba(20,28,90,.35) 100%); }
.dlx-cat-alltxt { position: relative; z-index: 1; }
.dlx-cat-alltxt b { display: block; color: #fff; font-size: 30px; font-weight: 800; }
.dlx-cat-alltxt i { font-style: normal; color: rgba(255,255,255,.8); font-size: 13px; }
.dlx-cat-arrow {
  position: relative; z-index: 1;
  width: 58px; height: 58px; border-radius: 16px;
  background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.3);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 24px;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.dlx-cat[data-download-filter="Android"] { grid-area: android; }
.dlx-cat[data-download-filter="iOS"] { grid-area: ios; }
.dlx-cat[data-download-filter="Windows"] { grid-area: windows; }
.dlx-cat[data-download-filter="v2ray"] { grid-area: v2ray; }
.dlx-cat[data-download-filter="bandizip"] { grid-area: bandizip; }
.dlx-cat[data-download-filter="geek"] { grid-area: geek; }

/* ---- 分区 ---- */
.dlx-section { margin-bottom: 36px; }
.dlx-sec-head { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.dlx-sec-head img {
  width: 62px; height: 62px; border-radius: 16px; object-fit: cover; flex: none;
  box-shadow: 0 8px 20px -8px var(--cat);
  outline: 2px solid var(--cat-soft); outline-offset: -2px;
}
.dlx-sec-head h2 { margin: 0; font-size: 22px; font-weight: 800; color: var(--dlx-ink); }
.dlx-sec-head p { margin: 2px 0 0; font-size: 13px; color: var(--dlx-sub); }

/* ---- 文件卡片 ---- */
.dlx-files { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dlx-file {
  position: relative; display: flex; align-items: center; gap: 14px;
  background: var(--dlx-card); border: 1px solid var(--dlx-line);
  border-radius: 14px; padding: 14px 14px 14px 18px;
  text-decoration: none !important; overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.dlx-file::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px;
  background: var(--cat); border-radius: 14px 0 0 14px;
}
.dlx-file:hover {
  transform: translateY(-3px); border-color: var(--cat);
  box-shadow: 0 14px 28px -14px var(--cat);
}
.dlx-file-meta { flex: 1; min-width: 0; }
.dlx-file-meta b {
  display: block; font-size: 14.5px; font-weight: 700; color: var(--dlx-ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dlx-file-meta i { font-style: normal; font-size: 12px; color: var(--dlx-sub); }
.dlx-file-go {
  flex: none; width: 42px; height: 42px; border-radius: 12px;
  background: var(--cat-soft); color: var(--cat);
  display: flex; align-items: center; justify-content: center; font-size: 16px;
  transition: background .22s ease, color .22s ease, transform .22s ease;
}
.dlx-file:hover .dlx-file-go { background: var(--cat); color: #fff; transform: scale(1.06); }

/* ---- 空状态 ---- */
.dlx-empty { text-align: center; padding: 70px 20px; color: var(--dlx-sub); }
.dlx-empty i { font-size: 44px; margin-bottom: 14px; opacity: .4; }
.dlx-empty p { margin: 0; font-size: 15px; }

/* ============================================================
   TOOLS · tlx-
   ============================================================ */
.tlx { --tlx-ink: #1e2433; --tlx-sub: #5b6478; --tlx-card: #ffffff; --tlx-line: #e8ecf5; }
[data-theme="dark"] .tlx { --tlx-ink: #eef1f8; --tlx-sub: #9aa3b8; --tlx-card: #1d1e26; --tlx-line: #2c2e3a; }

.tlx-hero {
  position: relative; overflow: hidden; border-radius: 22px;
  background: linear-gradient(120deg, #2b3fd4 0%, #425AEF 50%, #7a5cff 100%);
  color: #fff; margin-bottom: 28px;
}
.tlx-hero-art { position: absolute; inset: 0; pointer-events: none; }
.tlx-hero-art i { position: absolute; border-radius: 50%; filter: blur(55px); opacity: .5; }
.tlx-hero-art .a { width: 340px; height: 340px; right: -100px; top: -120px; background: #9db4ff; }
.tlx-hero-art .b { width: 240px; height: 240px; left: 40%; bottom: -130px; background: #6fe3ff; opacity: .35; }
.tlx-hero-inner { position: relative; padding: 48px 44px 40px; }
.tlx-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; letter-spacing: .22em; font-weight: 700;
  background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.28);
  padding: 7px 14px; border-radius: 999px; margin: 0 0 16px;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.tlx-hero h1 { color: #fff !important; font-size: 38px; font-weight: 800; margin: 0 0 8px; }
.tlx-sub { color: rgba(255,255,255,.85); font-size: 15px; margin: 0; max-width: 560px; }

.tlx-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.tlx-card {
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--tlx-card); border: 1px solid var(--tlx-line); border-radius: 20px;
  text-decoration: none !important;
  box-shadow: 0 12px 30px -18px rgba(40,55,120,.35);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.tlx-card:hover { transform: translateY(-6px); border-color: var(--cat); box-shadow: 0 24px 44px -18px var(--cat); }
.tlx-ill { display: block; aspect-ratio: 16 / 8.2; overflow: hidden; background: var(--tlx-line); }
.tlx-ill img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.tlx-card:hover .tlx-ill img { transform: scale(1.05); }
.tlx-body { display: flex; flex-direction: column; gap: 10px; padding: 24px 26px 26px; }
.tlx-body b { font-size: 21px; font-weight: 800; color: var(--tlx-ink); }
.tlx-body p { margin: 0; font-size: 14px; line-height: 1.7; color: var(--tlx-sub); }
.tlx-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.tlx-tags i {
  font-style: normal; font-size: 12px; font-weight: 700;
  color: var(--cat); background: color-mix(in srgb, var(--cat) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--cat) 30%, transparent);
  padding: 4px 12px; border-radius: 999px;
}
.tlx-go {
  margin-top: 8px; display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 800; color: #fff;
  background: linear-gradient(120deg, var(--cat), color-mix(in srgb, var(--cat) 70%, #7a5cff));
  padding: 11px 22px; border-radius: 12px; align-self: flex-start;
  transition: transform .2s ease, box-shadow .2s ease;
}
.tlx-card:hover .tlx-go { transform: translateX(4px); box-shadow: 0 10px 22px -10px var(--cat); }
.tlx-go i { font-size: 13px; }

/* ============================================================
   移动端
   ============================================================ */
@media (max-width: 900px) {
  .dlx-cats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "all all"
      "android ios"
      "windows v2ray"
      "bandizip geek";
  }
  .dlx-cat { min-height: 132px; }
  .dlx-cat-all { min-height: 120px; }
  .dlx-files { grid-template-columns: 1fr; }
  .tlx-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .dlx-hero-inner { padding: 40px 26px 34px; }
  .dlx-hero h1 { font-size: 32px; }
  .dlx-stats { gap: 24px; }
  .tlx-hero-inner { padding: 36px 26px 32px; }
  .tlx-hero h1 { font-size: 30px; }
}
/* ============================================================
   泡泡池 Bubble Playground · downloads
   ============================================================ */
.dlx-stagebar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin: 6px 2px 14px;
}
.dlx-stagebar p { margin: 0; font-size: 13px; color: var(--dlx-sub); display: flex; align-items: center; gap: 8px; }
.dlx-stagebar p i { color: #425AEF; }
.dlx-viewbtn {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid var(--dlx-line); background: var(--dlx-card); color: var(--dlx-ink);
  font-size: 13px; font-weight: 700; padding: 9px 16px; border-radius: 999px; cursor: pointer;
  transition: border-color .2s, color .2s, transform .2s;
  font-family: inherit;
}
.dlx-viewbtn:hover { border-color: #425AEF; color: #425AEF; transform: translateY(-1px); }
[data-theme="dark"] .dlx-viewbtn:hover { color: #8a9bff; border-color: #8a9bff; }

.dlx-stage {
  position: relative; overflow: hidden;
  height: min(66vh, 620px); min-height: 480px;
  border-radius: 22px; border: 1px solid var(--dlx-line);
  background:
    radial-gradient(640px 320px at 18% 8%, rgba(66,90,239,.10), transparent 70%),
    radial-gradient(560px 300px at 88% 88%, rgba(122,92,255,.10), transparent 70%),
    radial-gradient(400px 240px at 70% 20%, rgba(111,227,255,.07), transparent 70%),
    var(--dlx-card);
  cursor: crosshair; touch-action: pan-y; margin-bottom: 8px;
}
.dlx-stage::before {
  content: "把光标伸进来"; position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: var(--dlx-sub); opacity: .35; font-size: 15px; letter-spacing: .3em;
  pointer-events: none; transition: opacity .4s;
}
.dlx-stage.touched::before { opacity: 0; }

/* 泡泡 */
.bb {
  position: absolute; left: 0; top: 0;
  width: var(--d); height: var(--d);
  margin: calc(var(--d) / -2) 0 0 calc(var(--d) / -2);
  will-change: transform; text-decoration: none !important; z-index: 1;
}
.bb-core {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; border-radius: 50%;
  background:
    radial-gradient(circle at 32% 26%, rgba(255,255,255,.8), rgba(255,255,255,0) 44%),
    radial-gradient(circle at 50% 58%, color-mix(in srgb, var(--cat) 82%, #ffffff 18%), var(--cat);
  box-shadow:
    inset -10px -14px 26px rgba(0,0,0,.20),
    inset 8px 12px 20px rgba(255,255,255,.35),
    0 16px 30px -12px var(--cat);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
.bb-core b {
  color: #fff; font-weight: 800; letter-spacing: .05em;
  font-size: calc(var(--d) * .155); text-shadow: 0 2px 10px rgba(0,0,0,.28);
  pointer-events: none;
}
.bb:hover, .bb:focus-visible { z-index: 6; }
.bb:hover .bb-core, .bb:focus-visible .bb-core {
  transform: scale(1.34);
  box-shadow:
    inset -10px -14px 26px rgba(0,0,0,.20),
    inset 8px 12px 20px rgba(255,255,255,.35),
    0 22px 44px -10px var(--cat);
}
/* 详情浮层 */
.bb-tip {
  position: absolute; left: 50%; bottom: calc(100% + 14px);
  transform: translateX(-50%) translateY(10px) scale(.94);
  min-width: 190px; max-width: 250px;
  background: var(--dlx-card); border: 1px solid var(--dlx-line); border-radius: 14px;
  padding: 12px 14px; opacity: 0; pointer-events: none;
  transition: opacity .22s ease, transform .22s ease; z-index: 7;
  box-shadow: 0 20px 44px -14px rgba(20,30,80,.4); text-align: left;
}
.bb-tip::after {
  content: ""; position: absolute; top: 100%; left: 50%; margin-left: -7px;
  border: 7px solid transparent; border-top-color: var(--dlx-line);
}
.bb:hover .bb-tip, .bb:focus-visible .bb-tip { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
.bb.tip-below .bb-tip { bottom: auto; top: calc(100% + 14px); transform: translateX(-50%) translateY(-10px) scale(.94); }
.bb.tip-below .bb-tip::after { top: auto; bottom: 100%; border-top-color: transparent; border-bottom-color: var(--dlx-line); }
.bb.tip-below:hover .bb-tip, .bb.tip-below:focus-visible .bb-tip { transform: translateX(-50%) translateY(0) scale(1); }
.bb-tip b { display: block; font-size: 13px; font-weight: 700; color: var(--dlx-ink); word-break: break-all; line-height: 1.5; }
.bb-tip i { display: block; font-style: normal; font-size: 12px; color: var(--dlx-sub); margin-top: 3px; }
.bb-tip u {
  display: inline-block; margin-top: 9px; text-decoration: none;
  font-size: 12px; font-weight: 800; color: #fff;
  background: var(--cat); padding: 5px 14px; border-radius: 999px;
}

@media (max-width: 640px) {
  .dlx-stage { min-height: 420px; height: 62vh; }
  .dlx-stagebar p { font-size: 12px; }
}
