.zv-hub{color:#0F172A;line-height:1.6}.zv-hub .eyebrow{color:#4F46E5;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px}.zv-hub h1{font-size:clamp(2rem,5vw,3rem);line-height:1.15;margin:0 0 14px;letter-spacing:-.02em}.zv-hub .lead{color:#475569;font-size:1.1rem;max-width:60ch;margin:0 0 8px}.zv-hub .stats{display:flex;gap:22px;flex-wrap:wrap;margin:26px 0 0;padding:0;list-style:none}.zv-hub .stats li{font-size:.9rem;color:#475569}.zv-hub .stats b{color:#0F172A;font-weight:700}.zv-hub .chips{display:flex;gap:10px;flex-wrap:wrap;margin:38px 0 34px;padding:0;list-style:none;position:sticky;top:0;z-index:5;background:linear-gradient(#FFFFFF 70%,transparent);padding:14px 0}.zv-hub .chip{appearance:none;cursor:pointer;border:1px solid #E2E8F0;background:transparent;color:#475569;padding:9px 16px;border-radius:999px;font-size:.9rem;font-weight:600;transition:all .15s ease;font-family:inherit}.zv-hub .chip:hover{border-color:#4F46E5;color:#0F172A}.zv-hub .chip[aria-pressed="true"]{background:#4F46E5;border-color:#4F46E5;color:#fff}.zv-hub .chip .n{opacity:.6;font-weight:500;margin-left:5px}.zv-hub .cat{margin:0 0 52px}.zv-hub .cat[hidden]{display:none}.zv-hub .cat-head{display:flex;align-items:baseline;gap:12px;margin:0 0 4px}.zv-hub .cat-head h2{font-size:1.45rem;margin:0;letter-spacing:-.01em}.zv-hub .cat-head .count{color:#475569;font-size:.85rem}.zv-hub .cat-sub{color:#475569;font-size:.95rem;margin:0 0 22px}.zv-hub .cat-rule{height:2px;width:44px;background:#4F46E5;border-radius:2px;margin:0 0 18px}.zv-hub .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.zv-hub .card{position:relative;display:flex;flex-direction:column;background:#FFFFFF;border:1px solid #E2E8F0;border-radius:14px;padding:24px;transition:transform .16s ease,border-color .16s ease,background .16s ease}.zv-hub .card:hover{transform:translateY(-3px);border-color:#4F46E5;background:#F1F3F4}.zv-hub .card.soon{opacity:.82}.zv-hub .card.soon:hover{border-color:#E2E8F0;transform:none;background:#FFFFFF}.zv-hub .card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}.zv-hub .tag{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#475569;border:1px solid #E2E8F0;padding:4px 8px;border-radius:6px;white-space:nowrap}.zv-hub .badge{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:999px;white-space:nowrap}.zv-hub .badge.free{background:rgba(0,217,163,.12);color:#047857;border:1px solid rgba(0,217,163,.35)}.zv-hub .badge.paid{background:rgba(108,99,255,.14);color:#4338CA;border:1px solid rgba(108,99,255,.4)}.zv-hub .badge.soon{background:transparent;color:#475569;border:1px dashed #E2E8F0}.zv-hub .card h3{font-size:1.18rem;margin:0 0 8px;letter-spacing:-.01em}.zv-hub .card h3 a{color:#0F172A;text-decoration:none}.zv-hub .card h3 a:hover{color:#4F46E5}.zv-hub .card p{color:#475569;font-size:.94rem;margin:0 0 18px;flex:1}.zv-hub .foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;border-top:1px solid #E2E8F0;padding-top:16px}.zv-hub .price{font-weight:700;font-size:.95rem}.zv-hub .price.free{color:#047857}.zv-hub .price.soon{color:#475569;font-weight:600;font-size:.88rem}.zv-hub .price small{display:block;color:#475569;font-weight:500;font-size:.78rem}.zv-hub .go{color:#4F46E5;font-weight:700;font-size:.9rem;text-decoration:none;white-space:nowrap}.zv-hub .go:hover{text-decoration:underline}.zv-hub .go.muted{color:#475569}.zv-hub .demo{position:absolute;top:-1px;right:22px;background:#00D9A3;color:#04241C;font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:0 0 6px 6px}.zv-hub .card-link{position:absolute;inset:0;border-radius:14px}.zv-hub .roadmap{border-top:1px solid #E2E8F0;margin-top:20px;padding-top:34px}.zv-hub .roadmap h2{font-size:1.15rem;margin:0 0 6px}.zv-hub .roadmap p{color:#475569;font-size:.94rem;margin:0 0 18px;max-width:62ch}.zv-hub .roadmap ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}.zv-hub .roadmap li{border:1px dashed #E2E8F0;color:#475569;border-radius:8px;padding:7px 13px;font-size:.87rem}.zv-hub .roadmap li b{color:#0F172A;font-weight:600}.zv-hub .empty{color:#475569;font-size:.92rem;border:1px dashed #E2E8F0;border-radius:12px;padding:20px;text-align:center}