:root{--bg:#0b1020;--bg-soft:#121a32;--card:#161f3d;--border:#243056;--text:#e6ebff;--muted:#93a0c8;--brand:#5b8cff;--brand-2:#7a5cff;--ok:#2fcc8b;--warn:#ffb020;--radius:16px}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:radial-gradient(1200px 600px at 80% -10%,#1b2550 0,var(--bg) 55%);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh}a{color:inherit;text-decoration:none}.shell{max-width:1040px;margin:0 auto;padding:24px 18px 64px}.topbar{justify-content:space-between;padding:6px 2px 22px}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;font-weight:700;font-size:18px}.brand .dot{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--brand),var(--brand-2));display:grid;place-items:center;font-size:16px}.user{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px}.hero{padding:8px 2px 22px}.hero h1{font-size:26px;margin:0 0 6px;letter-spacing:.3px}.hero p{color:var(--muted);margin:0;font-size:14px}.grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(2,1fr)}@media (max-width:720px){.grid{grid-template-columns:1fr}}.card{background:linear-gradient(180deg,var(--card),var(--bg-soft));border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:12px;transition:transform .15s ease,border-color .15s ease}.launch.card:hover{transform:translateY(-2px);border-color:var(--brand);cursor:pointer}.card .icon{font-size:28px}.card h3{margin:0;font-size:18px}.card .desc{color:var(--muted);font-size:13.5px;line-height:1.6;flex:1 1}.card .meta{display:flex;gap:18px;color:var(--muted);font-size:13px}.card .meta b{color:var(--text);font-size:16px}.cta{color:var(--brand);font-weight:600;font-size:14px}.section-title{margin:28px 2px 12px;color:var(--muted);font-size:13px;letter-spacing:1px;text-transform:uppercase}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:380px;background:linear-gradient(180deg,var(--card),var(--bg-soft));border:1px solid var(--border);border-radius:20px;padding:30px}.auth-card .brand{justify-content:center;margin-bottom:6px}.auth-card .sub{text-align:center;color:var(--muted);font-size:13px;margin-bottom:22px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.field input{width:100%;padding:12px 14px;border-radius:11px;background:#0d1430;border:1px solid var(--border);color:var(--text);font-size:15px;outline:none}.field input:focus{border-color:var(--brand)}.btn{width:100%;padding:12px 14px;border:none;border-radius:11px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-size:15px;font-weight:600;cursor:pointer;margin-top:6px}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--muted)}.switch{text-align:center;margin-top:16px;font-size:13.5px;color:var(--muted)}.switch a{color:var(--brand);font-weight:600}.msg{font-size:13px;padding:10px 12px;border-radius:10px;margin-bottom:12px}.msg.err{background:rgba(255,80,80,.12);color:#ff9a9a;border:1px solid rgba(255,80,80,.25)}.msg.ok{background:rgba(47,204,139,.12);color:#8ff0c4;border:1px solid rgba(47,204,139,.25)}.linkbtn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px}.linkbtn:hover{color:var(--text)}