.card[data-v-dd29e9fa]{background:linear-gradient(180deg,var(--color-bg-elev),var(--color-bg-elev-2));border:1px solid var(--color-surface-line);border-radius:var(--r-md);display:flex;flex-direction:column;isolation:isolate;overflow:hidden;position:relative;transition:transform .22s ease,border-color .22s ease,box-shadow .32s ease}.card-thumb[data-v-dd29e9fa]{aspect-ratio:16/9;background:linear-gradient(135deg,#ef5aa029,#b450c81f);border-bottom:1px solid var(--color-surface-line);-o-object-fit:cover;object-fit:cover;width:100%}.card-thumb.fallback[data-v-dd29e9fa]{background:radial-gradient(circle at 20% 20%,rgba(239,90,160,.22),transparent 32%),radial-gradient(circle at 80% 30%,rgba(191,160,243,.3),transparent 40%),linear-gradient(135deg,#fff,#eef4ff);display:flex}.card-thumb.fallback[data-v-dd29e9fa],.fallback-mark[data-v-dd29e9fa]{align-items:center;justify-content:center}.fallback-mark[data-v-dd29e9fa]{background:#ffffffb8;border:1px solid color-mix(in oklab,var(--cat) 28%,transparent);border-radius:999px;box-shadow:0 10px 24px #7a3df51f;color:var(--cat);display:inline-flex;font-family:var(--font-serif);font-size:24px;font-weight:700;height:64px;letter-spacing:.04em;min-width:64px;padding:0 18px}.card[data-v-dd29e9fa]:hover{border-color:color-mix(in oklab,var(--cat) 60%,transparent);box-shadow:var(--shadow-violet),0 0 0 1px color-mix(in oklab,var(--cat) 30%,transparent);transform:translateY(-3px)}.card-rule[data-v-dd29e9fa]{background:linear-gradient(90deg,var(--cat),color-mix(in oklab,var(--cat) 60%,transparent));box-shadow:0 0 18px color-mix(in oklab,var(--cat) 50%,transparent);display:block;height:3px;width:100%}.card-glow[data-v-dd29e9fa]{background:radial-gradient(360px 160px at 80% -20%,color-mix(in oklab,var(--cat) 22%,transparent),transparent 60%);border-radius:inherit;inset:-1px;opacity:0;position:absolute;transition:opacity .32s ease;z-index:-1}.card:hover .card-glow[data-v-dd29e9fa]{opacity:1}.card-body[data-v-dd29e9fa]{flex:1;flex-direction:column;padding:var(--sp-5)}.card-body[data-v-dd29e9fa],.card-top[data-v-dd29e9fa]{display:flex;gap:var(--sp-2)}.card-top[data-v-dd29e9fa]{align-items:center;justify-content:space-between}.card-cat[data-v-dd29e9fa]{color:var(--cat);letter-spacing:.22em;text-shadow:0 0 12px color-mix(in oklab,var(--cat) 50%,transparent);text-transform:uppercase}.card-cat[data-v-dd29e9fa],.size-badge[data-v-dd29e9fa]{font-size:11px;font-weight:700}.size-badge[data-v-dd29e9fa]{background:var(--color-surface-glass);border:1px solid var(--color-surface-line-strong);border-radius:var(--r-full);color:var(--color-text-mute);letter-spacing:.06em;padding:2px 8px}.size-badge[data-size=S][data-v-dd29e9fa]{border-color:#3b6bb559;color:#3b6bb5}.size-badge[data-size=M][data-v-dd29e9fa]{border-color:#2e7a5559;color:#2e7a55}.size-badge[data-size=L][data-v-dd29e9fa]{border-color:#8a3edd59;color:#8a3edd}.card-title[data-v-dd29e9fa]{color:var(--color-text);font-family:var(--font-serif);font-size:var(--title-size,var(--fs-20));font-weight:700;letter-spacing:-.018em;line-height:1.32}.card-excerpt[data-v-dd29e9fa],.card-title[data-v-dd29e9fa]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-excerpt[data-v-dd29e9fa]{color:var(--color-text-soft);font-size:var(--fs-14);line-height:1.55}.badges[data-v-dd29e9fa]{display:flex;flex-wrap:wrap;gap:4px;min-height:22px}.badge[data-v-dd29e9fa]{align-items:center;border-radius:var(--r-sm);display:inline-flex;font-size:10px;font-weight:800;letter-spacing:.08em;padding:2px 7px;text-transform:uppercase}.badge-new[data-v-dd29e9fa]{background:linear-gradient(135deg,#ef5aa0,#9b6cef);color:#fff}.badge-best[data-v-dd29e9fa]{background:linear-gradient(135deg,#ffce4d,#ff9a3d);color:#fff}.badge-ai[data-v-dd29e9fa]{background:linear-gradient(135deg,#7c5cff,#bfa0f3);color:#fff}.badge-sub[data-v-dd29e9fa]{background:linear-gradient(135deg,#38d39f,#2bb673);color:#fff}.badge-verified[data-v-dd29e9fa]{background:#2a94601a;border:1px solid rgba(42,148,96,.28);color:var(--color-verified)}.badge-cat[data-v-dd29e9fa]{background:color-mix(in oklab,var(--cat) 10%,transparent);border:1px solid color-mix(in oklab,var(--cat) 30%,transparent);color:var(--cat)}.badge-origin[data-v-dd29e9fa]{background:var(--color-surface-glass);border:1px solid var(--color-surface-line);color:var(--color-text-soft)}.badge-tier[data-tier=bronze][data-v-dd29e9fa]{background:linear-gradient(135deg,#b87333,#8a5424);color:#fff}.badge-tier[data-tier=silver][data-v-dd29e9fa]{background:linear-gradient(135deg,#9ea7b6,#6c7382);color:#fff}.badge-tier[data-tier=gold][data-v-dd29e9fa]{background:linear-gradient(135deg,#d6a44b,#a87826);color:#fff}.badge-size[data-v-dd29e9fa]{background:var(--color-surface-glass);border:1px solid var(--color-surface-line-strong);color:var(--color-text-soft)}.badge-size[data-size=S][data-v-dd29e9fa]{border-color:#3b6bb559;color:#3b6bb5}.badge-size[data-size=M][data-v-dd29e9fa]{border-color:#2e7a5559;color:#2e7a55}.badge-size[data-size=L][data-v-dd29e9fa]{border-color:#8a3edd59;color:#8a3edd}.badge-extra[data-v-dd29e9fa]{background:#ff8e3c1f;border:1px solid rgba(194,84,31,.32);color:#c2541f}.card-meta[data-v-dd29e9fa]{align-items:center;border-top:1px solid var(--color-surface-line);color:var(--color-text-mute);display:flex;font-size:var(--fs-12);gap:var(--sp-2);margin-top:auto;padding-top:var(--sp-3)}.card-meta .sep[data-v-dd29e9fa]{opacity:.5}.card-meta .who[data-v-dd29e9fa]{color:var(--color-text-soft)}.card-foot[data-v-dd29e9fa]{color:var(--color-text-mute);display:flex;font-size:var(--fs-12);gap:var(--sp-3);min-height:18px}.card-foot[data-v-dd29e9fa],.stat[data-v-dd29e9fa]{align-items:center}.stat[data-v-dd29e9fa]{display:inline-flex;font-variant-numeric:tabular-nums;gap:4px}.card[data-layout=list][data-v-dd29e9fa]{align-items:center;border-radius:var(--r-sm);flex-direction:row;min-height:64px}.card[data-layout=list][data-v-dd29e9fa]:hover{transform:translate(2px)}.card[data-layout=list] .card-rule[data-v-dd29e9fa]{align-self:stretch;background:linear-gradient(180deg,var(--cat),color-mix(in oklab,var(--cat) 50%,transparent));flex-shrink:0;height:auto;min-width:3px;width:3px}.card[data-layout=list] .card-glow[data-v-dd29e9fa]{background:radial-gradient(180px 80px at -10% 50%,color-mix(in oklab,var(--cat) 14%,transparent),transparent 60%)}.card[data-layout=list] .card-thumb[data-v-dd29e9fa]{aspect-ratio:1/1;-o-object-fit:cover;object-fit:cover}.card[data-layout=list] .card-thumb[data-v-dd29e9fa],.card[data-layout=list] .card-thumb.fallback[data-v-dd29e9fa]{border-bottom:none;border:1px solid var(--color-surface-line);border-radius:var(--r-sm);flex-shrink:0;height:56px;margin:6px 0 6px 8px;min-width:56px;width:56px}.card[data-layout=list] .fallback-mark[data-v-dd29e9fa]{font-size:13px;height:28px;min-width:32px;padding:0 10px}.card[data-layout=list] .card-body[data-v-dd29e9fa]{flex:1;gap:4px;justify-content:center;min-width:0;padding:var(--sp-2) var(--sp-3)}.card[data-layout=list] .card-top[data-v-dd29e9fa]{gap:var(--sp-2)}.card[data-layout=list] .card-cat[data-v-dd29e9fa]{font-size:10px;letter-spacing:.16em}.card[data-layout=list] .card-title[data-v-dd29e9fa]{font-family:var(--font-sans,inherit);font-size:var(--fs-14);font-weight:600;-webkit-line-clamp:1;line-height:1.35}.card[data-layout=list] .card-excerpt[data-v-dd29e9fa]{display:none}.card[data-layout=list] .badges[data-v-dd29e9fa]{gap:3px;min-height:0}.card[data-layout=list] .badge[data-v-dd29e9fa]{font-size:9px;letter-spacing:.04em;padding:1px 5px}.card[data-layout=list] .badge-cat[data-v-dd29e9fa],.card[data-layout=list] .badge-extra[data-v-dd29e9fa],.card[data-layout=list] .badge-origin[data-v-dd29e9fa]{display:none}.card[data-layout=list] .card-meta[data-v-dd29e9fa]{border-top:none;font-size:11px;margin-top:0;padding-top:0}.card[data-layout=list] .card-foot[data-v-dd29e9fa]{font-size:11px;gap:var(--sp-2);min-height:0}.card[data-layout=list] .stat svg[data-v-dd29e9fa]{height:11px;width:11px}@media(max-width:480px){.card[data-layout=list] .card-thumb[data-v-dd29e9fa],.card[data-layout=list] .card-thumb.fallback[data-v-dd29e9fa]{height:44px;margin:5px 0 5px 6px;min-width:44px;width:44px}.card[data-layout=list] .card-body[data-v-dd29e9fa]{padding:var(--sp-2)}.card[data-layout=list] .badges[data-v-dd29e9fa]{display:none}}
