/* ============ 基础 ============ */
  :root{
    --bg:#070d1a;
    --bg-soft:#0b1526;
    --panel:#0e1a2e;
    --panel-2:#122138;
    --line:rgba(120,175,255,.14);
    --line-strong:rgba(120,175,255,.28);
    --accent:#4aa3ff;
    --accent-deep:#2563c9;
    --gold:#ffce6b;
    --text:#e8f1fd;
    --muted:#93a7c2;
    --radius:18px;
    --max:1160px;
    --shadow:0 24px 60px -24px rgba(0,0,0,.85);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Source Han Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
    line-height:1.75;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  /* 背景光晕 + 网格 */
  body::before{
    content:"";
    position:fixed;inset:0;z-index:-2;pointer-events:none;
    background:
      radial-gradient(900px 560px at 12% -8%, rgba(74,163,255,.16), transparent 62%),
      radial-gradient(760px 520px at 92% 6%, rgba(64,150,255,.10), transparent 60%),
      radial-gradient(700px 500px at 50% 108%, rgba(255,206,107,.07), transparent 62%);
  }
  body::after{
    content:"";
    position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
    background-image:
      linear-gradient(rgba(120,175,255,.045) 1px, transparent 1px),
      linear-gradient(90deg, rgba(120,175,255,.045) 1px, transparent 1px);
    background-size:52px 52px;
    mask-image:radial-gradient(ellipse 92% 74% at 50% 32%, #000 34%, transparent 100%);
    -webkit-mask-image:radial-gradient(ellipse 92% 74% at 50% 32%, #000 34%, transparent 100%);
  }
  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}
  ::selection{background:rgba(74,163,255,.32);}

  .wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px;}

  /* ============ 顶部导航 ============ */
  .nav{
    position:sticky;top:0;z-index:50;
    backdrop-filter:blur(14px) saturate(140%);
    -webkit-backdrop-filter:blur(14px) saturate(140%);
    background:rgba(7,13,26,.72);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    max-width:var(--max);margin:0 auto;padding:12px 24px;
    display:flex;align-items:center;gap:20px;
  }
  .brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:.14em;font-size:15px;}
  .logo{
    width:30px;height:30px;display:grid;grid-template-columns:1fr 1fr;gap:2px;
    transform:rotate(0deg);
  }
  .logo i{display:block;background:var(--accent);}
  .logo i:nth-child(1){background:var(--accent);}
  .logo i:nth-child(2){background:var(--accent-deep);}
  .logo i:nth-child(3){background:var(--accent-deep);}
  .logo i:nth-child(4){background:var(--accent);}
  .brand small{display:block;font-size:10px;letter-spacing:.28em;color:var(--muted);font-weight:500;margin-top:-2px;}
  .nav-links{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
  .nav-links a{
    padding:8px 14px;border-radius:999px;font-size:14px;color:var(--muted);
    transition:.22s;border:1px solid transparent;
  }
  .nav-links a:hover{color:var(--text);background:rgba(255,255,255,.05);}
  .nav-links a.active{color:#051021;background:var(--accent);font-weight:700;border-color:transparent;}

  /* ============ 首屏 ============ */
  .hero{
    position:relative;
    padding:clamp(56px,9vw,104px) 0 clamp(36px,5vw,58px);
    text-align:center;
  }
  .eyebrow{
    display:inline-flex;align-items:center;gap:9px;
    padding:6px 15px 6px 11px;border-radius:999px;
    border:1px solid var(--line-strong);
    background:linear-gradient(180deg,rgba(74,163,255,.16),rgba(74,163,255,.05));
    font-size:12.5px;letter-spacing:.16em;color:#c6e0ff;
    margin-bottom:26px;
  }
  .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(74,163,255,.16);animation:pulse 2.4s infinite;}
  @keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.45;transform:scale(.82);}}

  h1{
    margin:0;
    font-size:clamp(38px,7.2vw,80px);
    line-height:1.1;
    letter-spacing:.02em;
    font-weight:900;
  }
  h1 .grad{
    background:linear-gradient(96deg,#eaf4ff 8%,#4aa3ff 46%,#b49dff 96%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .hero-sub{
    max-width:640px;margin:20px auto 0;
    color:var(--muted);font-size:clamp(14.5px,1.6vw,17px);
  }
  .hero-sub strong{color:#d5eaff;font-weight:600;}

  .stats{
    display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:30px 0 0;
  }
  .stat{
    display:flex;align-items:center;gap:9px;
    padding:8px 16px;border-radius:999px;
    background:rgba(255,255,255,.035);border:1px solid var(--line);
    font-size:13px;color:#cddef4;
  }
  .stat b{color:var(--accent);font-weight:700;letter-spacing:.02em;}

  /* 三个入口 */
  .routes{
    display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
    margin-top:clamp(38px,6vw,60px);text-align:left;
  }
  .route{
    position:relative;overflow:hidden;
    display:flex;flex-direction:column;
    padding:26px 24px 22px;
    border-radius:var(--radius);
    border:1px solid var(--line);
    background:
      linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012)),
      var(--panel);
    transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s,background .3s;
  }
  .route::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(420px 200px at 50% 0%,rgba(74,163,255,.16),transparent 70%);
    opacity:0;transition:.35s;
  }
  .route:hover{transform:translateY(-6px);border-color:rgba(74,163,255,.42);box-shadow:var(--shadow);}
  .route:hover::after{opacity:1;}
  .route .ico{
    width:46px;height:46px;border-radius:13px;
    display:grid;place-items:center;
    background:linear-gradient(145deg,rgba(74,163,255,.22),rgba(74,163,255,.06));
    border:1px solid rgba(74,163,255,.26);
    color:var(--accent);margin-bottom:16px;
  }
  .route h3{margin:0 0 6px;font-size:19px;letter-spacing:.03em;}
  .route p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.7;}
  .route .go{
    display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:18px;
    font-size:13px;color:var(--accent);font-weight:600;letter-spacing:.05em;
  }
  .route .go svg{transition:transform .28s;}
  .route:hover .go svg{transform:translateX(5px);}
  .route .num{
    position:absolute;top:18px;right:20px;
    font-size:12px;letter-spacing:.2em;color:rgba(255,255,255,.22);font-weight:700;
  }

  /* ============ 区块通用 ============ */
  section{scroll-margin-top:76px;}
  .band{padding:clamp(60px,8vw,96px) 0;border-top:1px solid rgba(120,175,255,.08);}
  .band.alt{background:linear-gradient(180deg,rgba(255,255,255,.018),transparent 70%);}
  .sec-head{margin-bottom:38px;max-width:760px;}
  .kicker{
    display:inline-flex;align-items:center;gap:10px;
    font-size:12px;letter-spacing:.24em;color:var(--accent);
    text-transform:uppercase;font-weight:700;margin-bottom:14px;
  }
  .kicker::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,transparent,var(--accent));}
  .sec-head h2{
    margin:0 0 12px;font-size:clamp(26px,3.6vw,42px);line-height:1.24;letter-spacing:.01em;font-weight:800;
  }
  .sec-head p{margin:0;color:var(--muted);font-size:15.5px;}

  /* ============ 服务器卡片 ============ */
  .servers{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .server{
    position:relative;overflow:hidden;
    border-radius:20px;border:1px solid var(--line);
    background:
      linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0) 42%),
      var(--panel);
    padding:30px 30px 28px;
    display:flex;flex-direction:column;
  }
  .server::before{
    content:"";position:absolute;left:0;right:0;top:0;height:3px;
    background:linear-gradient(90deg,var(--accent),rgba(74,163,255,0));
  }
  .server.vanilla::before{background:linear-gradient(90deg,#b49dff,rgba(167,139,250,0));}
  .server-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
  .tag{
    font-size:11.5px;letter-spacing:.14em;padding:5px 11px;border-radius:999px;font-weight:700;
    background:rgba(74,163,255,.14);color:#c2e2ff;border:1px solid rgba(74,163,255,.3);
  }
  .server.vanilla .tag{background:rgba(167,139,250,.12);color:#d6c8ff;border-color:rgba(167,139,250,.3);}
  .ver{
    font-size:12px;letter-spacing:.1em;padding:5px 11px;border-radius:8px;
    background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#d2e2f5;
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  }
  .server h3{margin:0 0 4px;font-size:25px;letter-spacing:.02em;}
  .server .style{color:var(--accent);font-size:12.5px;letter-spacing:.18em;font-weight:600;margin-bottom:14px;}
  .server.vanilla .style{color:#b49dff;}
  .server p.desc{color:var(--muted);font-size:14.5px;margin:0 0 20px;}

  .features{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px;}
  .features li{display:flex;gap:10px;align-items:flex-start;font-size:13.8px;color:#d0e1f4;}
  .features li .ck{
    flex:0 0 auto;width:17px;height:17px;margin-top:3px;border-radius:5px;
    display:grid;place-items:center;background:rgba(74,163,255,.14);color:var(--accent);
  }
  .server.vanilla .features li .ck{background:rgba(167,139,250,.12);color:#b49dff;}
  .server footer{
    margin-top:auto;padding-top:18px;border-top:1px dashed rgba(255,255,255,.1);
    display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
    font-size:13px;color:var(--muted);
  }
  .pill-note{
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    font-size:12.5px;padding:6px 12px;border-radius:8px;
    background:rgba(0,0,0,.32);border:1px solid rgba(255,255,255,.1);color:#e8f2fe;
  }

  /* 对比小表格 */
  .compare{
    margin-top:22px;border-radius:16px;overflow:hidden;border:1px solid var(--line);
    background:rgba(255,255,255,.022);
  }
  .compare table{width:100%;border-collapse:collapse;font-size:13.5px;}
  .compare th,.compare td{padding:13px 18px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06);}
  .compare th{background:rgba(255,255,255,.035);color:#cddef4;font-weight:600;letter-spacing:.04em;font-size:12.5px;}
  .compare tr:last-child td{border-bottom:0;}
  .compare td:first-child{color:var(--muted);width:26%;}
  .compare td strong{color:#e8f3ff;font-weight:600;}

  /* ============ 加入服务器 ============ */
  .join-grid{display:grid;grid-template-columns:400px 1fr;gap:22px;align-items:start;}
  .qr-card{
    border-radius:20px;border:1px solid var(--line);background:var(--panel);
    padding:22px;text-align:center;position:relative;overflow:hidden;
  }
  .qr-card.douyin::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(340px 200px at 50% 0%,rgba(37,244,238,.14),rgba(254,44,85,.10),transparent 72%);
  }
  .qr-frame{
    position:relative;background:#fff;border-radius:14px;padding:12px;
    box-shadow:0 18px 44px -18px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.08);
    cursor:zoom-in;
  }
  .qr-frame img{width:100%;height:auto;border-radius:6px;}
  .qr-frame::after{
    content:"点击放大";position:absolute;right:14px;bottom:14px;
    font-size:11px;color:#06101f;background:rgba(255,255,255,.9);
    padding:3px 8px;border-radius:999px;letter-spacing:.06em;opacity:0;transition:.25s;
  }
  .qr-frame:hover::after{opacity:1;}
  .qr-label{
    display:inline-flex;align-items:center;gap:8px;margin-top:16px;
    font-size:13px;color:#e8f3ff;letter-spacing:.08em;font-weight:600;
  }
  .qr-label .badge-dy{
    width:22px;height:22px;border-radius:7px;display:grid;place-items:center;
    background:#0d1117;border:1px solid rgba(255,255,255,.16);
    color:#25f4ee;font-size:11px;font-weight:800;
  }
  .qr-id{
    margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    font-size:13px;color:var(--muted);letter-spacing:.06em;
  }
  .qr-hint{margin:14px 0 0;font-size:12.5px;color:#8ba0bf;line-height:1.65;}

  .steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:14px;}
  .steps li{
    position:relative;counter-increment:s;
    padding:18px 20px 18px 62px;border-radius:14px;
    border:1px solid var(--line);background:rgba(255,255,255,.028);
    font-size:14.5px;color:#d0e1f4;
  }
  .steps li::before{
    content:counter(s,decimal-leading-zero);
    position:absolute;left:18px;top:17px;
    width:28px;height:28px;border-radius:9px;display:grid;place-items:center;
    background:rgba(74,163,255,.14);border:1px solid rgba(74,163,255,.3);
    color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.02em;
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  }
  .steps li b{color:#f1f8ff;font-weight:600;}
  .steps code{
    background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.1);
    padding:1px 7px;border-radius:6px;font-size:12.5px;color:#bfe0ff;
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  }
  .note{
    margin-top:18px;display:flex;gap:12px;align-items:flex-start;
    padding:15px 18px;border-radius:13px;font-size:13.5px;color:#cddff2;
    border:1px solid rgba(255,206,107,.26);
    background:linear-gradient(180deg,rgba(255,206,107,.1),rgba(255,206,107,.03));
  }
  .note svg{flex:0 0 auto;color:var(--gold);margin-top:2px;}
  .note strong{color:var(--gold);}

  .rules{margin-top:26px;}
  .rules h3{font-size:16px;margin:0 0 12px;letter-spacing:.06em;color:#dcebff;}
  .rule-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
  .rule{
    display:flex;gap:10px;align-items:flex-start;
    padding:12px 15px;border-radius:11px;font-size:13.3px;color:#c5d8ee;
    background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06);
  }
  .rule span.x{color:#ff8a8a;flex:0 0 auto;font-weight:700;}
  .rule span.ok{color:var(--accent);flex:0 0 auto;font-weight:700;}

  /* ============ 赞助 ============ */
  .donate-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .pay-card{
    border-radius:20px;border:1px solid var(--line);background:var(--panel);
    padding:24px;text-align:center;position:relative;overflow:hidden;
  }
  .pay-card::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.9;}
  .pay-card.wechat::before{background:radial-gradient(340px 220px at 50% 0%,rgba(7,193,96,.16),transparent 72%);}
  .pay-card.alipay::before{background:radial-gradient(340px 220px at 50% 0%,rgba(22,119,255,.18),transparent 72%);}
  .pay-brand{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:16px;position:relative;}
  .pay-ico{
    width:26px;height:26px;border-radius:8px;display:grid;place-items:center;
    font-size:13px;font-weight:800;color:#fff;
  }
  .wechat .pay-ico{background:linear-gradient(145deg,#25c56a,#0b8f47);}
  .alipay .pay-ico{background:linear-gradient(145deg,#2f8cff,#0b5ed7);}
  .pay-brand h3{margin:0;font-size:17px;letter-spacing:.08em;}
  .amount{
    display:inline-block;margin-top:16px;padding:7px 18px;border-radius:999px;
    font-size:13px;letter-spacing:.06em;color:#f2f8ff;
    background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  }
  .amount b{color:var(--gold);font-size:16px;margin:0 2px;}
  .donate-note{
    margin-top:24px;border-radius:16px;border:1px solid var(--line);
    background:rgba(255,255,255,.025);padding:22px 24px;
  }
  .donate-note h3{margin:0 0 12px;font-size:16px;letter-spacing:.05em;color:#e5f0ff;}
  .donate-note ul{margin:0;padding-left:20px;color:var(--muted);font-size:14px;display:grid;gap:8px;}
  .donate-note li::marker{color:var(--accent);}
  .thanks{
    display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;
  }
  .thanks span{
    font-size:12.5px;padding:5px 12px;border-radius:999px;
    background:rgba(255,206,107,.1);border:1px solid rgba(255,206,107,.24);color:#ffe6b3;
  }

  /* ============ 页脚 ============ */
  footer.site{
    border-top:1px solid var(--line);padding:40px 0 34px;
    background:linear-gradient(180deg,transparent,rgba(0,0,0,.4));
  }
  .foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start;}
  .foot p{margin:0;color:#7d90ad;font-size:13px;}
  .foot .f-brand{font-weight:800;letter-spacing:.16em;color:#d6e6f9;font-size:14px;margin-bottom:8px;}
  .foot .f-links{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:#8ba0bf;}
  .foot .f-links a:hover{color:var(--accent);}

  /* ============ 图片灯箱 ============ */
  .lightbox{
    position:fixed;inset:0;z-index:99;display:none;
    background:rgba(3,7,17,.9);backdrop-filter:blur(6px);
    padding:28px;place-items:center;
  }
  .lightbox.on{display:grid;}
  .lightbox img{
    max-width:min(88vw,560px);max-height:82vh;width:auto;border-radius:16px;
    background:#fff;padding:14px;box-shadow:0 30px 90px -20px #000;
  }
  .lightbox .lb-close{
    position:absolute;top:20px;right:24px;width:42px;height:42px;border-radius:50%;
    border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;
    font-size:19px;cursor:pointer;display:grid;place-items:center;
  }
  .lightbox .lb-tip{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);font-size:12.5px;color:#8ba0bf;letter-spacing:.08em;}

  /* ============ 滚动出现 ============ */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1);}
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
    .dot{animation:none;}
  }

  /* ============ 响应式 ============ */
  @media (max-width:980px){
    .routes{grid-template-columns:1fr;gap:14px;}
    .servers{grid-template-columns:1fr;}
    .join-grid{grid-template-columns:1fr;}
    .qr-card{max-width:420px;margin:0 auto;}
    .donate-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto;}
    .rule-grid{grid-template-columns:1fr;}
    .compare td:first-child{width:34%;}
  }
  @media (max-width:640px){
    .wrap{padding:0 18px;}
    .nav-inner{padding:10px 18px;gap:10px;}
    .brand span.full{display:none;}
    .nav-links a{padding:7px 10px;font-size:12.5px;}
    .stat{font-size:12px;padding:7px 12px;}
    .server{padding:24px 20px;}
    .compare th,.compare td{padding:11px 13px;font-size:12.5px;}
    .steps li{padding:16px 16px 16px 56px;}
    .lightbox img{padding:10px;}
  }

  /* ============ 多页面补充 ============ */
  body.sub .band:first-of-type{border-top:none;padding-top:clamp(44px,6vw,68px);}
  .page-nav-note{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px;}
  .crumb{
    display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:#8ba0bf;
    letter-spacing:.12em;margin-bottom:8px;
  }
  .crumb a{color:#a9c1dd;}
  .crumb a:hover{color:var(--accent);}
  .home-links{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:34px;font-size:13px;color:var(--muted);}
  .home-links a{padding:6px 14px;border-radius:999px;border:1px solid var(--line);color:#cddef4;}
  .home-links a:hover{border-color:var(--line-strong);color:#fff;}
  .route{margin:0;}
  a.route{display:flex;}

  /* ============ 邮箱 / 联系方式 ============ */
  .donate-note a.mail, .foot a.mail{
    color:#bfe0ff;text-decoration:none;
    border-bottom:1px dashed rgba(120,175,255,.45);
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    font-size:12.5px;letter-spacing:.02em;
  }
  .foot a.mail:hover{color:#fff;border-bottom-color:#4aa3ff;}
  .contact-line{
    margin-top:16px;padding:14px 18px;border-radius:12px;font-size:13.5px;
    color:#a8bdd6;line-height:1.9;
    border:1px dashed rgba(120,175,255,.32);
    background:linear-gradient(180deg,rgba(74,163,255,.09),rgba(74,163,255,.03));
  }
  .contact-line b{color:#d5eaff;font-weight:600;}
  .contact-line a{
    color:#bfe0ff;text-decoration:none;
    border-bottom:1px dashed rgba(120,175,255,.5);
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    font-size:13px;
  }
  .contact-line a:hover{color:#fff;border-bottom-color:#4aa3ff;}

  /* ============ 站点标志图 ============ */
  .brand .logo-img{
    width:40px;height:40px;flex:0 0 auto;object-fit:contain;
    filter:drop-shadow(0 0 10px rgba(74,163,255,.45));
  }
  @media (max-width:640px){
    .brand .logo-img{width:32px;height:32px;}
  }
