*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#0f1223;color:#e6e8ee;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
.bg{position:fixed;inset:0;background:radial-gradient(1200px 600px at 10% 10%,#3b82f6 0%,rgba(59,130,246,0)60%),radial-gradient(800px 400px at 90% 20%,#a855f7 0%,rgba(168,85,247,0)55%),radial-gradient(1000px 500px at 50% 100%,#06b6d4 0%,rgba(6,182,212,0)65%);filter:blur(60px);opacity:.6;pointer-events:none;animation:bgShift 18s linear infinite}
.page{max-width:820px;margin:0 auto;padding:28px;position:relative}
.card{background:rgba(20,24,46,.7);border-radius:18px;box-shadow:0 10px 30px rgba(0,0,0,.35);padding:22px;margin-bottom:18px;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(12px)}
.hero{display:flex;align-items:center;gap:18px}
.app-icon{width:88px;height:88px;border-radius:20px;object-fit:cover;background:#1e223e;transform:translateZ(0)}
.shadow{box-shadow:0 20px 40px rgba(59,130,246,.35)}
.app-info{flex:1}
.app-name{margin:0;font-size:26px;font-weight:800;letter-spacing:.3px}
.app-tagline{margin-top:6px;color:#a9b0bf;font-size:14px}
.app-meta{margin-top:8px;color:#a9b0bf;font-size:14px}
.dot{padding:0 6px}
.action-card{display:flex;flex-direction:column;align-items:center;gap:12px}
.btn{display:inline-block;text-decoration:none;font-weight:700;padding:14px 22px;border-radius:14px;width:100%;text-align:center;font-size:16px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.btn:hover{transform:translateY(-2px)}
.primary{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;box-shadow:0 10px 24px rgba(124,58,237,.35)}
.primary:hover{background:linear-gradient(135deg,#1d4ed8,#6d28d9)}
.ghost{background:rgba(255,255,255,.06);color:#e6e8ee;border:1px solid rgba(255,255,255,.12)}
.ghost:hover{background:rgba(255,255,255,.12)}
.hint{margin-top:4px;color:#a9b0bf;font-size:13px;text-align:center}
.qr-card{text-align:center}
.qr-wrap{display:flex;justify-content:center;align-items:center}
.qr-img{width:220px;height:220px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 24px rgba(0,0,0,.35)}
.pulse{position:relative}
.pulse::after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);border:2px solid rgba(124,58,237,.25);animation:pulse 2.8s ease-out infinite}
.info-card .section{margin-top:4px}
.section-title{font-weight:800;color:#fff;margin-bottom:8px}
.section-body{white-space:pre-wrap;color:#d5d9e2}
.footer{padding:16px 0;text-align:center;color:#a9b0bf;font-size:12px}
.fade-up{animation:fadeUp .5s ease-out both}
.blob{position:fixed;width:380px;height:380px;border-radius:50%;filter:blur(40px);opacity:.7}
.b1{left:-80px;top:-60px;background:linear-gradient(135deg,#2563eb,#06b6d4);animation:float 10s ease-in-out infinite}
.b2{right:-60px;top:40px;background:linear-gradient(135deg,#7c3aed,#a855f7);animation:float 12s ease-in-out infinite reverse}
.b3{left:30%;bottom:-80px;background:linear-gradient(135deg,#06b6d4,#22c55e);animation:float 14s ease-in-out infinite}
@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}100%{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.6}70%{transform:translate(-50%,-50%) scale(1.25);opacity:0}100%{transform:translate(-50%,-50%) scale(1.25);opacity:0}}
@keyframes bgShift{0%{filter:blur(60px) hue-rotate(0deg)}100%{filter:blur(60px) hue-rotate(360deg)}}
@media (max-width:480px){
  .page{padding:16px}
  .app-icon{width:76px;height:76px}
  .btn{font-size:15px}
}
