:root{
  --bg:#0b1220; --panel:#13203a; --panel2:#0f1a30; --line:#24344f;
  --text:#dbe7ff; --muted:#8fa6cc; --accent:#4fa8ff; --accent2:#7ee2a8; --warn:#ffcf6b;
}
*{box-sizing:border-box}
body{
  margin:0;background:radial-gradient(1200px 600px at 50% -10%,#16294a 0%,var(--bg) 60%);
  color:var(--text);font:16px/1.7 system-ui,-apple-system,"PingFang SC","Noto Sans CJK SC",sans-serif;
  min-height:100vh;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:960px;margin:0 auto;padding:32px 20px 80px}
header.hero{text-align:center;padding:36px 0 8px}
.hero h1{font-size:clamp(24px,5vw,40px);margin:0 0 10px;letter-spacing:.5px}
.hero p{color:var(--muted);margin:0}
.whale{font-size:44px;line-height:1;display:inline-block;animation:float 3s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:28px}
.card{
  background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);
  border-radius:16px;padding:20px;transition:.2s transform,.2s border-color;
}
.card:hover{transform:translateY(-3px);border-color:#36507a}
.card h3{margin:0 0 8px;font-size:18px}
.card p{color:var(--muted);margin:0 0 14px;font-size:14px}
.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:#1b2b47;color:var(--accent);margin-bottom:10px}
.btn{
  display:inline-block;padding:10px 18px;border-radius:10px;background:var(--accent);color:#06101f;
  font-weight:600;border:0;cursor:pointer;font-size:15px;text-decoration:none;
}
.btn:hover{filter:brightness(1.1);text-decoration:none}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
footer{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;text-align:center}
code,kbd{background:#0a1424;border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:13px}
pre{background:#0a1424;border:1px solid var(--line);border-radius:10px;padding:14px;overflow:auto;font-size:13px}
.note{border-left:3px solid var(--warn);background:#1a1a10;color:#e8d9a8;padding:10px 14px;border-radius:8px;font-size:14px}
.donate{background:linear-gradient(135deg,#1b2b47,#12203a);border:1px solid #2c4670;border-radius:16px;padding:24px;text-align:center;margin-top:28px}
.donate .qr{width:160px;height:160px;border:2px dashed #3a5580;border-radius:12px;display:grid;place-items:center;margin:14px auto;color:var(--muted);font-size:13px}
.tiny{font-size:12px;color:var(--muted)}

/* 打赏码 */
.qr-img{display:block;width:200px;max-width:70vw;margin:16px auto 8px;border-radius:14px;background:#fff;padding:8px;box-shadow:0 8px 30px #0006}
.donate .pay-title{font-size:15px;color:var(--accent2);margin:6px 0 0}
