    :root{
      --bg:#f4f7fb;
      --panel:#ffffff;
      --panel-soft:rgba(255, 255, 255, .72);
      --primary:#1f6feb; /* 主蓝 */
      --primary-strong:#0b5ad9;
      --accent:#2aa8ff; /* 亮蓝 */
      --text:#0b1b33;
      --muted:#4f6380;
      --shadow:0 12px 30px rgba(13, 50, 102, .12);
      --shadow-strong:0 18px 44px rgba(13, 50, 102, .18);
      --hover-shadow:0 10px 22px rgba(31,111,235,.22);
      --hover-border:rgba(31,111,235,.35);
      --radius:16px;
    }
    *{box-sizing:border-box}
    img{ -webkit-user-drag:none; }
    html,body{height:100%;}
    body{
      margin:0;
      background:
        radial-gradient(900px 500px at 10% -10%, rgba(31,111,235,.16), transparent 60%),
        radial-gradient(900px 500px at 110% 0%, rgba(42,168,255,.14), transparent 60%),
        linear-gradient(180deg, #f6f9ff 0%, #eef3fb 45%, #f7f9fc 100%);
      color:var(--text);
      font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
      line-height:1.6;
      -webkit-tap-highlight-color: transparent;
    }

    /* 背景粒子层 */
    canvas#bg-particles{position:fixed;inset:0;z-index:-1;opacity:.75;filter: blur(.2px);}
    /* 固定顶部区域与滚动卡片区 */
    body{ overflow:hidden; }
    .fixed-area{
      position:fixed;
      top:0; left:0; right:0;
      z-index:10;
      background: transparent;
    }
    .cards-scroll{
      position:fixed;
      left:0; right:0; bottom:0;
      overflow:auto;
      -webkit-overflow-scrolling: touch;
    }
    .top-bg{
      position:fixed;
      top:60px;
      left:0;
      right:0;
      height:320px;
      background:
        linear-gradient(180deg, rgba(255,255,255,.15), rgba(255,255,255,.75) 70%),
        url('./bjbj.webp') center top/cover no-repeat;
      opacity:.85;
      z-index:-2;
      pointer-events:none;
      filter: saturate(1.05);
    }

    /* 顶部栏 */
    header{
      position:sticky; top:0; z-index:20;
      background:
        linear-gradient(180deg, rgba(220,232,250,.98), rgba(200,218,245,.9));
      backdrop-filter: blur(10px);
      border-bottom:1px solid rgba(15, 40, 90, .1);
      box-shadow: 0 10px 26px rgba(15, 40, 90, .08);
      position: relative;
      overflow: hidden;
    }
    header::before{
      content:"";
      position:absolute; inset:0;
      background:
        linear-gradient(120deg, rgba(31,111,235,.12), transparent 60%),
        repeating-linear-gradient(90deg, rgba(15,40,90,.08) 0 1px, transparent 1px 24px),
        repeating-linear-gradient(0deg, rgba(15,40,90,.06) 0 1px, transparent 1px 18px);
      opacity:.95;
      pointer-events:none;
    }
    header::after{
      content:"";
      position:absolute; left:0; right:0; bottom:0; height:2px;
      background: linear-gradient(90deg, transparent, rgba(31,111,235,.6), transparent);
      opacity:.8;
      pointer-events:none;
    }
    .nav{
      max-width:1200px; margin:0 auto; padding:10px 20px;
      display:flex; align-items:center; justify-content:space-between; gap:16px;
      position: relative; z-index: 1;
    }
    .brand{display:flex; align-items:center; gap:12px; font-weight:800; letter-spacing:.6px;}
    .brand .logo{
      width:38px; aspect-ratio:1/1; border-radius:50%;
      display:grid; place-items:center; color:#fff; font-weight:900;
      background: radial-gradient(circle at 30% 30%, rgba(42,168,255,.9), transparent 55%),
                  radial-gradient(circle at 70% 70%, rgba(31,111,235,.9), transparent 55%),
                  #0b4db8;
      box-shadow: var(--shadow);
    }
    .brand .title{font-size:18px; color:#0b1b33; text-shadow:0 2px 12px rgba(31,111,235,.18)}

    .nav-links{display:flex; gap:12px; flex-wrap:wrap}
    .nav-links a{
      color:#0b1b33; text-decoration:none; padding:9px 14px; border-radius:14px;
      border:1px solid rgba(15, 40, 90, .18);
      transition:.25s ease; font-weight:700; font-size:14px;
      background: #ffffff;
      box-shadow: 0 10px 20px rgba(15, 40, 90, .18);
      backdrop-filter: blur(6px);
    }
    .nav-links a:hover{ color:#0b1b33; border-color:var(--hover-border); box-shadow:var(--hover-shadow)}

    /* 轮播 */
    .carousel{ max-width:1200px; margin:2px auto 6px; padding:0 20px; }
    .carousel-wrap{ position:relative; border-radius:var(--radius); overflow:hidden; box-shadow: var(--shadow); border:1px solid rgba(15, 40, 90, .08); background:#fff; }
    .slide img{ opacity:.92; }
    .slides, .car-btn, .dots{ position:relative; z-index:1; }
    .slides{ display:flex; transition: transform .6s ease; }
    .slide{ min-width:100%; height:42vw; max-height:420px; background:#eaf1ff; position:relative; }
    .slide img{ width:100%; height:100%; object-fit:cover; display:block; opacity:.92; }
    .slide-link{display:block;width:100%;height:100%;position:relative;color:#fff;text-decoration:none;}
    .slide-caption{position:absolute;left:22px;bottom:24px;z-index:2;padding:7px 12px;border-radius:10px;background:rgba(7,18,38,.68);color:#fff;font-size:15px;font-weight:800;letter-spacing:.2px;box-shadow:0 8px 24px rgba(0,0,0,.22);backdrop-filter:blur(8px)}

    .car-btn{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; border:1px solid rgba(15, 40, 90, .12); background:rgba(255,255,255,.8); color:#0b1b33; display:grid; place-items:center; cursor:pointer; box-shadow:var(--shadow); transition: transform .42s cubic-bezier(.22,1,.36,1), background .34s cubic-bezier(.22,1,.36,1), box-shadow .42s cubic-bezier(.22,1,.36,1), border-color .34s cubic-bezier(.22,1,.36,1); }
    .car-btn:hover{ background:rgba(31,111,235,.12); box-shadow:var(--hover-shadow)}
    .car-prev{ left:12px; }
    .car-next{ right:12px; }

    .dots{ position:absolute; bottom:10px; left:0; right:0; display:flex; gap:8px; justify-content:center; }
    .dot{ width:10px; height:10px; border-radius:50%; background:rgba(15, 40, 90, .15); border:1px solid rgba(15, 40, 90, .2); cursor:pointer; transition: transform .46s cubic-bezier(.22,1,.36,1), background .34s cubic-bezier(.22,1,.36,1), box-shadow .34s cubic-bezier(.22,1,.36,1), border-color .34s cubic-bezier(.22,1,.36,1); }
    .dot.active{ background:var(--primary); box-shadow:0 0 12px rgba(31,111,235,.35); transform: scale(1.18); }

    /* 区块标题 */
    .section{ max-width:1200px; margin:10px auto; padding:0 20px; }
    .section h2{ font-size:18px; margin:6px 0 6px; color:#0b1b33; text-shadow:none}
    .section-head{
      display:flex;
      justify-content:center;
      align-items:center;
      gap:12px;
      margin:6px 0 10px;
    }
.category-tabs{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
  padding:6px;
  border-radius:14px;
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(245,250,255,.7));
  border:1px solid rgba(15, 40, 90, .08);
  box-shadow: 0 10px 22px rgba(31,111,235,.14);
}
.tab-btn{
  padding:6px 12px;
  border-radius:10px;
  border:1px solid rgba(15, 40, 90, .12);
  background: rgba(255,255,255,.9);
  color:#0b1b33;
  font-weight:700;
  font-size:12px;
  cursor:pointer;
  box-shadow: 0 4px 10px rgba(31,111,235,.1);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.tab-btn.active{
  background: linear-gradient(90deg, var(--primary-strong), var(--accent));
  color:#fff;
  border-color: rgba(31,111,235,.35);
  box-shadow: 0 8px 16px rgba(31,111,235,.22);
  transform: translateY(-1px);
}

    /* 让卡片区标题更贴近热门轮播 */
    #cardsScroll .section h2{
      margin-top:2px;
      margin-bottom:4px;
    }

    /* 卡片栅格（按钮区） */
    .card-grid{ display:flex; flex-direction:column; gap:10px; }
    .card-row{
      position:relative;
      display:grid;
      grid-template-columns: repeat(4, minmax(0,1fr));
      gap:6px;
      padding:8px 10px;
      border-radius:16px;
      background:
        linear-gradient(180deg, rgba(255,255,255,.92), rgba(245,250,255,.86));
      border:1px solid rgba(15, 40, 90, .08);
      box-shadow: 0 10px 22px rgba(31,111,235,.14);
    }

    .card{
      background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(248,251,255,.95));
      border:1px solid rgba(15, 40, 90, .08);
      border-radius:12px; padding:6px 4px; display:flex; flex-direction:column; gap:4px; align-items:center; text-align:center;
      box-shadow: 0 6px 14px rgba(31,111,235,.12);
      transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
      position: relative;
      overflow: hidden;
      text-decoration:none;
      color: inherit;
    }
    .card:hover{ transform: translateY(-4px); border-color: rgba(31,111,235,.25); box-shadow: var(--shadow-strong); }

    .avatar{ width:42px; height:42px; border-radius:10px; border:2px solid rgba(31,111,235,.18); box-shadow:0 6px 12px rgba(31,111,235,.16); flex: none; background:#eef4ff; object-fit:cover }

    .title{ font-weight:700; color:#0b1b33; font-size:11px; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100% }
    .card-cta{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:3px 8px;border-radius:999px;background:linear-gradient(90deg,#1768d6,#2aa8ff);color:#fff;font-size:9.5px;font-weight:800;line-height:1;white-space:nowrap;box-shadow:0 5px 12px rgba(31,111,235,.24);transition:transform .22s ease,box-shadow .22s ease;}
    .card:hover .card-cta{transform:translateY(-1px);box-shadow:0 7px 16px rgba(31,111,235,.32)}

    /* 新增卡片按钮（浮动） */
    .fab{ position:fixed; right:18px; bottom:18px; z-index:15; }
    .fab button{
      width:56px; height:56px; border-radius:50%; border:1px solid rgba(31,111,235,.25);
      background: radial-gradient(circle at 30% 30%, rgba(42,168,255,.9), transparent 55%), #0b4db8;
      color:#fff; font-weight:900; cursor:pointer; box-shadow: var(--shadow-strong);
    }

    /* 弹窗 */
    .dialog-backdrop{ position:fixed; inset:0; background:rgba(20,40,80,.28); backdrop-filter:blur(4px); display:none; align-items:center; justify-content:center; z-index:25; }
    .dialog{ width:min(580px, 92vw); background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.98)); border:1px solid rgba(15, 40, 90, .12); border-radius:18px; padding:16px; box-shadow: var(--shadow-strong)}
    .dialog h3{ margin:0 0 10px; text-shadow:none}
    .form{ display:grid; grid-template-columns:1fr 1fr; gap:12px }
    .form .full{ grid-column:1/-1 }
    label{ font-size:12px; color:var(--muted) }
    input[type="text"], textarea, input[type="number"]{
      width:100%; padding:10px 12px; border-radius:12px; border:1px solid rgba(15, 40, 90, .12); background:rgba(255,255,255,.9); color:#0b1b33; outline:none;
    }
    textarea{ min-height:84px; resize:vertical }
    .uploader{ display:flex; gap:10px; align-items:center }
    .uploader input{ display:block }
    .preview{ width:60px; height:60px; border-radius:50%; border:2px dashed rgba(31,111,235,.25); display:grid; place-items:center; color:var(--muted); font-size:12px; overflow:hidden }
    .preview img{ width:100%; height:100%; object-fit:cover }

    .dlg-actions{ display:flex; justify-content:flex-end; gap:10px; margin-top:12px }
    .btn{ padding:10px 14px; border-radius:12px; border:1px solid rgba(15, 40, 90, .12); cursor:pointer; font-weight:700 }
    .btn.secondary{ background:rgba(255,255,255,.9); color:#0b1b33 }
    .btn.primary{ background: linear-gradient(90deg, var(--primary-strong), var(--accent)); color:#fff; box-shadow:0 10px 20px rgba(31,111,235,.25) }
    .btn.primary:hover{ box-shadow: var(--hover-shadow); }

    /* 轻水印（基础防抄袭，可关闭） */
    .wm{ position:fixed; inset:0; pointer-events:none; z-index:0; opacity:.06; background-image: repeating-linear-gradient( 45deg, transparent 0 40px, rgba(31,111,235,.25) 40px 41px ), repeating-linear-gradient( -45deg, transparent 0 40px, rgba(42,168,255,.22) 40px 41px ); }

    /* 底部品牌信息区 */
    .site-footer{
      max-width:1200px;
      margin:6px auto 88px;
      padding:0 20px;
    }
    .bottom-nav{
      position:fixed; left:50%; bottom:14px; transform:translateX(-50%); z-index:30;
      width:min(430px, calc(100% - 28px)); height:58px; padding:6px;
      display:grid; grid-template-columns:repeat(3,1fr); gap:6px;
      border:1px solid rgba(15,40,90,.12); border-radius:18px;
      background:rgba(255,255,255,.94); box-shadow:0 16px 42px rgba(15,40,90,.22);
      backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    }
    .bottom-nav a{display:flex; align-items:center; justify-content:center; gap:7px; color:#62718a; text-decoration:none; font-size:13px; font-weight:800; border-radius:13px;}
    .bottom-nav a.active{color:#1768d6; background:#eaf3ff;}
    .bottom-nav svg{width:21px; height:21px; stroke:currentColor; fill:none; stroke-width:2;}
    .content-state{grid-column:1/-1; padding:48px 18px; color:#718096; text-align:center; font-size:14px;}
    @media (prefers-reduced-motion: reduce){
      *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
      #bg-particles{display:none}
    }
    .brand-footer{
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:6px;
      background: transparent;
      border:none;
      border-radius:0;
      padding:6px 0;
      box-shadow: none;
      color:#6b7a92;
      font-size:12px;
      text-align:center;
    }
    .brand-footer .logo{
      width:auto;
      max-width:120px;
      height:24px;
      border-radius:6px;
      overflow:hidden;
      border:1px solid rgba(15, 40, 90, .12);
      background:#fff;
      padding:2px 6px;
      display:flex;
      align-items:center;
    }
    .brand-footer .logo img{ width:auto; height:100%; object-fit:contain; display:block; }
    .brand-footer .text{ display:flex; flex-direction:column; gap:2px; align-items:center; }
    .brand-footer .name{ font-weight:700; font-size:12px; color:#4f6380; }
    .brand-footer .desc{ font-size:11px; color:#7b8aa3; }
    .brand-footer .copy{ font-size:11px; color:#7b8aa3; white-space:nowrap; }
    @media (max-width:600px){
      .brand-footer{ flex-direction:column; align-items:center; }
    }
    /* 限制选择复制（表单除外） */
    .no-select{ user-select:none }
    .no-select input, .no-select textarea{ user-select:text }
    /* 顶部主按钮（导航 / 关于合并版） */
.nav-main-btn{
  color:#0b1b33 !important;
  font-weight:800;
  padding:10px 20px;
  border-radius:14px;
  background: #ffffff;
  box-shadow: 0 16px 30px rgba(15, 40, 90, .22);
  border:1px solid rgba(15, 40, 90, .22);
  position:relative;
  overflow:hidden;
  text-shadow: none;
  transition: transform .42s cubic-bezier(.22,1,.36,1), box-shadow .42s cubic-bezier(.22,1,.36,1), border-color .34s cubic-bezier(.22,1,.36,1), background .34s cubic-bezier(.22,1,.36,1);
}

/* hover 发光 */
.nav-main-btn:hover{
  transform: translateY(-1px);
  box-shadow: var(--hover-shadow);
}

/* 轻微流光效果 */
.nav-main-btn::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    120deg,
    transparent 30%,
    rgba(255,255,255,.45),
    transparent 70%
  );
  transform: translateX(-120%);
  transition: .6s ease;
}

.nav-main-btn:hover::after{
  transform: translateX(120%);
}
.brand-logo {
  height: 40px;
  background: transparent;
  filter: drop-shadow(0 6px 14px rgba(31,111,235,.25));
}
.marquee-wrap {
  width: 100%;
  overflow: hidden;
  background: linear-gradient(90deg, #2b6fe9, #4aa3ff);
  border-radius: 10px;
  padding: 6px 10px 6px 58px;
  box-shadow: 0 10px 22px rgba(31,111,235,.2);
  border:1px solid rgba(15, 40, 90, .08);
  display:flex;
  align-items:center;
  gap:8px;
  min-height:40px;
  position:relative;
}
.marquee-wrap::before{
  content:"";
  position:absolute;
  left:-18px; top:0; bottom:0;
  width:70px;
  background: linear-gradient(135deg, #ff4d4d, #ff8a3d);
  border-radius:10px;
  z-index:1;
}
.marquee-wrap.no-badge{
  padding: 2px 10px;
  min-height:28px;
}
.marquee-wrap.no-badge::before{
  content:none;
}
.marquee-wrap.compact{ margin-top:6px; }

.marquee {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  animation: marqueeMove 12s linear infinite;
  padding-left: 6px;
  z-index:2;
}

.coin-icon {
  display: inline-flex;
  align-items: center;
  gap:6px;
  height:40px;
  padding:0 12px;
  margin: 0;
  border-radius:10px;
  background: transparent;
  color:#fff;
  font-weight:700;
  font-size:13px;
  box-shadow:none;
  flex:0 0 auto;
  z-index:3;
  position:relative;
}

.marquee-text {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  letter-spacing: .5px;
  text-shadow:
    0 1px 0 rgba(0,0,0,.2),
    0 6px 16px rgba(0,0,0,.18);
}

/* 图标轮播 */
.icon-ticker{
  margin-top:4px;
  margin-bottom:2px;
  background: rgba(255,255,255,.92);
  border:1px solid rgba(15, 40, 90, .08);
  border-radius:14px;
  box-shadow: 0 10px 24px rgba(31,111,235,.16);
  padding:10px 12px;
  overflow:hidden;
  position:relative;
  touch-action: pan-y;
}
.icon-ticker .ticker-status{
  position:absolute;
  right:10px; top:6px;
  background: rgba(0,0,0,.45);
  color:#fff;
  font-size:11px;
  padding:2px 6px;
  border-radius:8px;
  opacity:0;
  transition: opacity .2s ease;
  pointer-events:none;
}
.icon-ticker.paused .ticker-status{ opacity:1; }
.icon-ticker.compact{ margin-top:6px; margin-bottom:6px; }
.icon-track{
  display:flex;
  gap:14px;
  align-items:center;
  will-change: transform;
}
.icon-item{
  flex:0 0 auto;
  width:52px;
  height:52px;
  border-radius:50%;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(243,248,255,.95));
  border:1px solid rgba(15, 40, 90, .1);
  box-shadow: 0 8px 18px rgba(31,111,235,.14);
  display:grid;
  place-items:center;
  cursor:pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.icon-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 22px rgba(31,111,235,.2);
}
.icon-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
}

@keyframes marqueeMove {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-100%);
  }
}

/* ===== iOS Glassmorphism Theme Override ===== */
:root{
  --bg:#edf3ff;
  --panel:rgba(255,255,255,.7);
  --panel-soft:rgba(255,255,255,.5);
  --primary:#2f7bff;
  --primary-strong:#1f6bff;
  --accent:#5fb4ff;
  --text:#0f1e3a;
  --muted:#4b6288;
  --shadow:0 10px 22px rgba(37,79,152,.12);
  --shadow-strong:0 16px 36px rgba(29,67,132,.18);
  --hover-shadow:0 12px 24px rgba(47,123,255,.2);
  --hover-border:rgba(47,123,255,.32);
}

body{
  background:
    radial-gradient(1200px 520px at -10% -8%, rgba(96,165,250,.22), transparent 62%),
    radial-gradient(900px 460px at 110% 2%, rgba(125,211,252,.18), transparent 60%),
    linear-gradient(180deg,#f6f9ff 0%,#eef3ff 42%,#edf3ff 100%);
  font-family:"SF Pro Display","SF Pro Text","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}

header{
  background:linear-gradient(180deg, rgba(236,244,255,.78), rgba(220,234,252,.7));
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  border-bottom:1px solid rgba(255,255,255,.6);
  box-shadow: 0 6px 18px rgba(31,81,168,.1);
}

.nav-main-btn{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.72);
  background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(241,248,255,.72));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 10px 24px rgba(28,72,142,.2);
}

.carousel-wrap{
  border-radius:20px;
  border:1px solid rgba(255,255,255,.65);
  background: linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,.28));
  backdrop-filter: blur(10px) saturate(1.08);
  -webkit-backdrop-filter: blur(10px) saturate(1.08);
  box-shadow: 0 14px 30px rgba(25,61,126,.18);
}

.car-btn{
  border:1px solid rgba(255,255,255,.66);
  background:rgba(255,255,255,.5);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.car-btn:hover{
  transform: translateY(-50%) scale(1.06);
}

.marquee-wrap{
  border-radius:14px;
  border:1px solid rgba(255,255,255,.65);
  background: linear-gradient(120deg, rgba(44,115,255,.82), rgba(89,178,255,.78));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.3),
    0 8px 18px rgba(42,105,214,.2);
}

.icon-ticker{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.62);
  background: linear-gradient(180deg, rgba(255,255,255,.58), rgba(247,251,255,.48));
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.icon-item{
  border:1px solid rgba(255,255,255,.74);
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(245,250,255,.64));
  box-shadow: 0 8px 20px rgba(31,88,183,.14);
}

#cardsScroll .section h2{
  color:#122248;
  letter-spacing:.8px;
}

.card{
  border-radius:20px;
  border:1px solid rgba(255,255,255,.66);
  background:
    linear-gradient(180deg, rgba(255,255,255,.66), rgba(245,250,255,.56));
  backdrop-filter: blur(12px) saturate(1.08);
  -webkit-backdrop-filter: blur(12px) saturate(1.08);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.85),
    0 14px 30px rgba(26,68,138,.13);
  opacity:0;
  transform: translateY(12px) scale(.985);
  animation: iosCardIn .62s cubic-bezier(.22,1,.36,1) forwards;
  animation-delay: var(--stagger, 0ms);
}

.card:hover{
  transform: translateY(-3px) scale(1.01);
  border-color: rgba(84,151,255,.48);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.88),
    0 16px 36px rgba(37,92,184,.2);
}

.card .go{
  border-radius:14px;
  border:1px solid rgba(255,255,255,.48);
  background: linear-gradient(110deg, #2f7bff 0%, #50a8ff 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.26),
    0 8px 18px rgba(47,123,255,.34);
}

@keyframes iosCardIn{
  0%{
    opacity:0;
    transform: translateY(12px) scale(.985);
  }
  68%{
    opacity:1;
    transform: translateY(-1px) scale(1.003);
  }
  100%{
    opacity:1;
    transform: translateY(0) scale(1);
  }
}

@media (prefers-reduced-motion: reduce){
  .card{
    animation:none;
    opacity:1;
    transform:none;
  }
}

.brand-footer .logo{
  border-radius:10px;
  border:1px solid rgba(255,255,255,.72);
  background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(245,250,255,.72));
}

.brand-footer .name{
  color:#243f6f;
}

@media (max-width:768px){
  .carousel-wrap{ border-radius:18px; }
  .card{ border-radius:16px; }
}

/* ===== Template V2: Neo Glass Board ===== */
body{
  background:
    radial-gradient(1000px 540px at -20% -10%, rgba(56,189,248,.25), transparent 60%),
    radial-gradient(860px 480px at 120% 6%, rgba(37,99,235,.24), transparent 62%),
    linear-gradient(160deg, #eef4ff 0%, #e8effd 48%, #edf3ff 100%);
}

.fixed-area{
  background: linear-gradient(180deg, rgba(236,244,255,.82), rgba(236,244,255,0));
}

header{
  max-width:1200px;
  margin:8px auto 4px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.75);
  box-shadow: 0 12px 28px rgba(26,69,138,.14);
}

header::after{
  height:1px;
  opacity:.5;
}

.nav{
  padding:10px 18px;
}

.brand-logo{
  height:40px;
  filter: drop-shadow(0 8px 16px rgba(31,111,235,.16));
}

.nav-main-btn{
  min-width:120px;
  border-radius:14px;
  font-size:15px;
  font-weight:800;
  letter-spacing:.4px;
}

.carousel{
  margin:2px auto 2px;
}

.carousel-wrap{
  border-radius:26px;
  box-shadow: 0 26px 46px rgba(30,78,158,.22);
}

.slide{
  height:36vw;
  min-height:220px;
  max-height:380px;
}

.car-btn{
  width:48px;
  height:48px;
}

#apps.section{
  margin-top:6px;
  margin-bottom:2px;
}

.marquee-wrap{
  min-height:32px;
  border-radius:12px;
  padding:3px 10px;
}

.marquee-text{
  font-size:13px;
  font-weight:700;
}

.icon-ticker{
  margin-top:4px;
  border-radius:14px;
  padding:6px 8px;
}

.icon-track{
  gap:10px;
}

.icon-item{
  width:46px;
  height:46px;
}

.cards-scroll .section{
  margin-top:0;
  padding-top:0;
}

#cardsScroll .section h2{
  margin-top:0;
  margin-bottom:10px;
  font-size:30px;
  font-weight:900;
  letter-spacing:1px;
  color:#0f2250;
}

.card-grid{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:6px;
}

.card-row{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:6px;
  padding:8px 10px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.66);
  background: linear-gradient(180deg, rgba(255,255,255,.7), rgba(245,250,255,.6));
  backdrop-filter: blur(10px) saturate(1.05);
  -webkit-backdrop-filter: blur(10px) saturate(1.05);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.75),
    0 14px 28px rgba(26,68,138,.12);
}

@media (min-width:1025px){
  .card-grid{ gap:8px; }
  .card-row{
    gap:4px;
    padding:3px 4px;
    border-radius:10px;
  }
  .card{
    padding:3px 2px;
    gap:2px;
    border-radius:8px;
  }
  .avatar{ width:34px; height:34px; }
  .title{ font-size:9.5px; }
}

.card{
  border-radius:14px;
  padding:6px 4px;
  gap:4px;
  align-items:center;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
  transition: transform .28s cubic-bezier(.2,1.4,.3,1), box-shadow .24s ease, filter .24s ease;
}

.card::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(circle at center, rgba(47,123,255,.25), transparent 60%);
  opacity:0;
  transform: scale(0.7);
  transition: opacity .24s ease, transform .24s cubic-bezier(.2,1.2,.3,1);
  pointer-events:none;
}

.card:active{
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(47,123,255,.28);
  filter: brightness(1.02) saturate(1.08);
}

.card:active::after{
  opacity:1;
  transform: scale(1.05);
}

.avatar{
  width:42px;
  height:42px;
}

    .title{
      font-size:11px;
      line-height:1.2;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      max-width:100%;
    }

    .rec-badge{
      position:absolute;
      left:0;
      top:0;
      width:34px;
      height:34px;
      background: linear-gradient(135deg, #ff3b30, #ff8a3d);
      clip-path: polygon(0 0, 100% 0, 0 100%);
      display:flex;
      align-items:flex-start;
      justify-content:flex-start;
      padding:0;
      overflow:hidden;
    }
    .rec-badge-text{
      position:absolute;
      left:2px;
      top:12px;
      color:#fff;
      font-weight:800;
      font-size:10px;
      letter-spacing:.4px;
      text-shadow:0 2px 6px rgba(0,0,0,.35);
      -webkit-text-stroke: 0.4px rgba(0,0,0,.2);
      transform: rotate(-45deg) translate(-4px, -2px);
      transform-origin: 0 0;
    }

.site-footer{
  margin-top:8px;
}

@media (max-width:1200px){
  #cardsScroll .section h2{ font-size:30px; }
}

@media (max-width:1024px){
  .card-row{ grid-template-columns: repeat(4, minmax(0,1fr)); }
  #cardsScroll .section h2{ font-size:26px; }
  .title{ font-size:11px; }
  .avatar{ width:40px; height:40px; }
}

@media (max-width:768px){
  header{ margin:0 auto 4px; border-radius:0 0 16px 16px; }
  .nav{ padding:8px 12px; }
  .brand-logo{ height:28px; }
  .nav-main-btn{ font-size:12px; min-width:86px; padding:7px 10px; border-radius:10px; }
  .carousel{ padding:0 10px; margin:2px auto 2px; }
  .slide{ min-height:160px; max-height:220px; height:44vw; }
  .car-btn{ width:36px; height:36px; }
  #apps.section{ padding:0 10px; margin-top:2px; }
  .marquee-wrap{ min-height:28px; border-radius:10px; }
  .marquee{
    animation: marqueeMove 12s linear infinite;
    width:auto;
    justify-content:flex-start;
    padding-left:6px;
  }
  .marquee-text{
    font-size:11px;
    white-space:nowrap;
  }
  .icon-ticker{ margin-top:4px; padding:6px 8px; }
  .icon-item{ width:40px; height:40px; }
  #cardsScroll .section{ padding:0 10px; }
  #cardsScroll .section h2{ font-size:18px; margin-bottom:8px; }
  .card-row{ grid-template-columns: repeat(4, minmax(0, 1fr)); gap:6px; }
  .card{
    padding:6px 4px;
    gap:4px;
    border-radius:12px;
  }
  .avatar{ width:38px; height:38px; }
  .title{
    font-size:10px;
    line-height:1.2;
  }
}

@media (max-width:420px){
  .card-row{ grid-template-columns: repeat(4, minmax(0,1fr)); }
  .card{ padding:5px 3px; }
  .title{ font-size:10px; }
}

/* 紫金品牌顶部栏 */
body .premium-header{overflow:visible;background:linear-gradient(135deg,#fffdf8 0%,#fff 36%,#fbf3df 100%);border-bottom:1px solid #d89a25;box-shadow:0 7px 22px rgba(122,78,5,.16);}
body .premium-header::before{background:linear-gradient(110deg,transparent 0 50%,rgba(194,139,41,.08) 50% 64%,transparent 64%),radial-gradient(circle at 70% 45%,rgba(212,161,54,.11),transparent 34%);opacity:1;}
body .premium-header::after{height:2px;background:linear-gradient(90deg,#8b5300,#f2cf68,#a76705);opacity:1;}
.premium-nav{position:relative;z-index:2;max-width:1200px;height:88px;margin:auto;padding:7px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.premium-brand{display:flex;align-items:center;min-width:0;gap:12px;}
.premium-logo{width:74px;height:74px;object-fit:contain;filter:drop-shadow(0 5px 7px rgba(111,54,0,.23));flex:none;}
.premium-copy{display:flex;flex-direction:column;min-width:0;line-height:1;}
.premium-name{font-family:Georgia,"Times New Roman","Songti SC",serif;font-size:31px;font-weight:900;letter-spacing:3px;color:#17120f;text-shadow:0 1px #fff;white-space:nowrap;}
.premium-slogan{display:flex;align-items:center;gap:8px;margin-top:8px;color:#29231d;font-size:12px;font-weight:700;letter-spacing:4px;white-space:nowrap;}
.premium-slogan::before,.premium-slogan::after{content:"";width:34px;height:1px;background:#8f6a2b;}
.premium-powered{margin-top:7px;color:#79736d;font-size:8px;font-weight:800;letter-spacing:.5px;white-space:nowrap;}.premium-powered strong{font-size:12px;color:#98701f;letter-spacing:1px;}
.quick-center{position:relative;flex:none;}
.quick-center summary{list-style:none;min-width:150px;height:48px;padding:0 16px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #c68a1e;border-radius:25px;background:rgba(255,255,255,.9);color:#1b2335;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 5px 14px rgba(136,84,0,.14);user-select:none;}
.quick-center summary::-webkit-details-marker{display:none}.quick-center summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease}.quick-center[open] summary::after{transform:rotate(225deg) translate(-2px,-2px)}
.quick-dots{width:22px;height:22px;display:grid;grid-template-columns:repeat(2,8px);gap:3px;place-content:center}.quick-dots i{width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#d9a83a,#8f5600);box-shadow:inset 0 1px 1px rgba(255,255,255,.7)}
.quick-panel{position:absolute;right:0;top:54px;width:218px;padding:9px;display:grid;grid-template-columns:1fr;gap:7px;border:1px solid #d3a34b;border-radius:15px;background:rgba(255,253,248,.98);box-shadow:0 14px 32px rgba(79,47,0,.2);backdrop-filter:blur(16px);}
.quick-panel::before{content:"";position:absolute;right:55px;top:-7px;width:12px;height:12px;background:#fffdf8;border-left:1px solid #d3a34b;border-top:1px solid #d3a34b;transform:rotate(45deg)}
.quick-item{position:relative;z-index:1;min-height:46px;padding:7px 11px;display:flex;align-items:center;gap:9px;border:1px solid rgba(145,98,14,.09);border-radius:11px;background:linear-gradient(145deg,#fff,#f8f8f8);color:#151b2c;text-decoration:none;font-size:12px;font-weight:800;box-shadow:0 4px 10px rgba(50,50,50,.05);cursor:pointer;}
button.quick-item{width:100%;font-family:inherit}.quick-item:hover{border-color:rgba(183,121,9,.38);transform:translateY(-1px);box-shadow:0 8px 18px rgba(128,81,0,.12)}
.quick-item svg{width:21px;height:21px;flex:none;fill:none;stroke:#a56a06;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
@media(max-width:600px){.premium-nav{height:72px;padding:5px 10px;gap:7px}.premium-logo{width:59px;height:59px}.premium-brand{gap:6px}.premium-name{font-size:21px;letter-spacing:1px}.premium-slogan{margin-top:5px;font-size:9px;letter-spacing:1.5px;gap:4px}.premium-slogan::before,.premium-slogan::after{width:14px}.premium-powered{display:none}.quick-center summary{min-width:106px;height:40px;padding:0 11px;gap:6px;font-size:12px}.quick-dots{transform:scale(.78)}.quick-panel{top:47px;right:0;width:190px;padding:8px}.quick-panel::before{right:45px}.quick-item{min-height:42px;padding:6px 9px;font-size:11px}.quick-item svg{width:19px;height:19px}}

/* 3–5 秒随机预加载层：增加自动化抓取成本，真正限速仍由服务器/CDN负责 */
.site-preloader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(700px 360px at 50% 18%,rgba(75,142,245,.18),transparent 65%),linear-gradient(180deg,#f8fbff,#eaf2ff);opacity:1;visibility:visible;transition:opacity .45s ease,visibility .45s ease;}
.site-preloader.is-done{opacity:0;visibility:hidden;pointer-events:none;}
.preload-card{width:min(320px,calc(100% - 46px));padding:30px 26px 25px;text-align:center;border:1px solid rgba(255,255,255,.78);border-radius:24px;background:rgba(255,255,255,.72);box-shadow:0 24px 58px rgba(28,72,142,.18);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
.preload-logo{width:108px;height:108px;object-fit:contain;filter:drop-shadow(0 10px 15px rgba(90,48,0,.2));animation:preloadFloat 1.8s ease-in-out infinite;}
.preload-title{margin-top:12px;color:#172641;font-size:20px;font-weight:900;letter-spacing:2px;}
.preload-desc{margin-top:5px;color:#6a7890;font-size:12px;letter-spacing:.6px;}
.preload-track{height:5px;margin-top:20px;overflow:hidden;border-radius:999px;background:rgba(31,111,235,.12);}
.preload-progress{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#1f6feb,#68b5ff);box-shadow:0 0 12px rgba(31,111,235,.34);animation:preloadProgress var(--preload-time,4s) linear forwards;}
.preload-note{margin-top:9px;color:#8793a6;font-size:10px;}
@keyframes preloadProgress{to{width:100%}}
@keyframes preloadFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media(prefers-reduced-motion:reduce){.preload-logo{animation:none}.preload-progress{animation-timing-function:linear}}
