:root { --bg:#0b0c10; --card:#121319; --muted:#a1a1aa; --text:#e5e7eb; --accent:#4f46e5; --accent-2:#22c55e; --ring:rgba(79,70,229,.35); --shadow:0 10px 25px rgba(0,0,0,.25); --radius:18px; }
@media (prefers-color-scheme: light) { :root{ --bg:#f6f7fb; --card:#ffffff; --text:#111827; --muted:#6b7280; --shadow:0 10px 30px rgba(17,24,39,.08);} }
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; background:radial-gradient(1200px 600px at 10% -10%, rgba(79,70,229,.15), transparent 60%),
radial-gradient(1000px 500px at 110% 10%, rgba(34,197,94,.12), transparent 60%), var(--bg);
    color:var(--text); font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,PingFang SC,Noto Sans CJK,Arial,sans-serif;}
.wrap{max-width:1120px; margin:0 auto; padding:28px 18px 60px}
header{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px}
.brand{display:flex; align-items:center; gap:12px}
.brand .logo{
    width:48px;
    height:48px;
    border-radius:10px;
    /*background:linear-gradient(135deg, var(--accent), var(--accent-2));*/
    box-shadow:var(--shadow);
    background-image:url("../icons/logo.png");
    background-position:center;   /* 居中 */
    background-repeat:no-repeat;  /* 不平铺 */
    background-size:contain;      /* 保持比例完整显示（或用 cover 充满裁切） */
}
h1{font-size:22px; margin:0}
.sub{color:var(--muted); font-size:14px}

/* 顶部介绍/活动区 */
.intro{background:var(--card); border:1px solid rgba(255,255,255,.06); border-radius:var(--radius); box-shadow:var(--shadow); padding:20px; margin:10px 0 22px}
.intro h2{margin:0 0 6px; font-size:20px}
.intro p{margin:6px 0 0; color:var(--muted)}

/* 分区标题 */
.section{display:flex; align-items:baseline; justify-content:space-between; margin:24px 0 12px}
.section h3{margin:0; font-size:18px}
.section .tip{color:var(--muted); font-size:13px}

/* 卡片网格 */
.grid{display:grid; gap:18px; grid-template-columns:repeat(auto-fit, minmax(260px,1fr));}
.card{background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; display:flex; flex-direction:column; gap:14px; border:1px solid rgba(255,255,255,.06)}
.top{display:flex; gap:14px; align-items:center}
.app-logo{width:64px; height:64px; border-radius:16px; flex:0 0 auto; background:#0e1016; display:grid; place-items:center; border:1px solid rgba(255,255,255,.06); overflow:hidden}
.app-logo img{width:100%; height:100%; object-fit:cover; display:block}
.name{font-weight:700; font-size:18px; margin:0}
.desc{color:var(--muted); font-size:14px; margin:2px 0 0}
.btns{display:flex; gap:10px; margin-top:4px}
.btn{appearance:none; border:0; border-radius:14px; padding:12px 14px; font-weight:600; cursor:pointer; background:#1b1f2a; color:#e5e7eb; flex:1; transition:transform .06s ease, box-shadow .2s ease, background .2s ease; outline:2px solid transparent; outline-offset:2px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.btn.primary{background:linear-gradient(180deg, rgba(79,70,229,.9), rgba(79,70,229,.75)); box-shadow:0 8px 18px var(--ring)}
.btn.success{background:linear-gradient(180deg, rgba(34,197,94,.9), rgba(34,197,94,.75)); box-shadow:0 8px 18px rgba(34,197,94,.35)}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}

.footer{margin-top:30px; color:var(--muted); font-size:12px; text-align:center}

@media (max-width:480px){ header{flex-direction:column; align-items:flex-start} h1{font-size:20px} .sub{font-size:13px} .btn{padding:12px} }