:root{--background:0 0% 100%;--foreground:224 24% 12%;--card:0 0% 100%;--card-foreground:224 24% 12%;--popover:0 0% 100%;--popover-foreground:224 24% 12%;--primary:152 56% 40%;--primary-foreground:0 0% 100%;--secondary:220 16% 96%;--secondary-foreground:224 24% 18%;--muted:220 16% 96%;--muted-foreground:220 9% 46%;--accent:152 56% 95%;--accent-foreground:152 56% 33%;--accent-2:190 72% 42%;--accent-2-foreground:0 0% 100%;--destructive:0 72% 51%;--destructive-foreground:0 0% 100%;--border:220 14% 90%;--input:220 14% 90%;--ring:152 56% 40%;--radius:0.75rem;--node:152 58% 56%;--line:152 40% 82%;--shadow-color:224 32% 20%;--shadow-xs:0 1px 2px hsl(var(--shadow-color)/.04),0 1px 3px hsl(var(--shadow-color)/.06);--shadow-sm:0 1px 2px hsl(var(--shadow-color)/.05),0 2px 6px -1px hsl(var(--shadow-color)/.08);--shadow-md:0 4px 12px -2px hsl(var(--shadow-color)/.10),0 2px 6px -2px hsl(var(--shadow-color)/.06);--shadow-lg:0 12px 32px -8px hsl(var(--shadow-color)/.16),0 4px 10px -4px hsl(var(--shadow-color)/.08);--shadow-pop:var(--shadow-lg);--font-display:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Songti SC","STSong","PingFang SC","Microsoft YaHei",system-ui,serif;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-en:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--maxw:1200px;--bg:hsl(var(--background));--surface:hsl(var(--card));--surface-2:hsl(var(--secondary));--text:hsl(var(--foreground));--text-2:hsl(var(--muted-foreground));--text-3:hsl(var(--muted-foreground)/.9);--primary-weak:hsl(var(--accent));--primary-strong:hsl(var(--primary)/1);--shadow-card:var(--shadow-sm)}html[data-theme=dark]{--background:224 28% 8%;--foreground:220 18% 92%;--card:224 24% 11%;--card-foreground:220 18% 92%;--popover:224 24% 11%;--popover-foreground:220 18% 92%;--primary:152 56% 58%;--primary-foreground:224 32% 8%;--secondary:224 18% 18%;--secondary-foreground:220 18% 88%;--muted:224 18% 16%;--muted-foreground:220 12% 60%;--accent:152 56% 22%;--accent-foreground:152 56% 82%;--accent-2:190 72% 56%;--accent-2-foreground:224 32% 8%;--destructive:0 62% 52%;--destructive-foreground:0 0% 100%;--border:224 16% 22%;--input:224 16% 24%;--ring:152 56% 58%;--node:152 56% 62%;--line:152 30% 34%;--shadow-color:0 0% 0%;--shadow-xs:0 1px 2px hsl(var(--shadow-color)/.4);--shadow-sm:0 1px 2px hsl(var(--shadow-color)/.5),0 2px 6px -1px hsl(var(--shadow-color)/.4);--shadow-md:0 4px 12px -2px hsl(var(--shadow-color)/.5),0 2px 6px -2px hsl(var(--shadow-color)/.4);--shadow-lg:0 16px 40px -8px hsl(var(--shadow-color)/.6),0 4px 12px -4px hsl(var(--shadow-color)/.4);--bg:hsl(var(--background));--surface:hsl(var(--card));--surface-2:hsl(var(--secondary));--text:hsl(var(--foreground));--text-2:hsl(var(--muted-foreground));--text-3:hsl(var(--muted-foreground)/.9);--primary-weak:hsl(var(--accent));--primary-strong:hsl(var(--primary)/1);--shadow-card:var(--shadow-sm)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}body.no-scroll{overflow:hidden}.to-top.show{opacity:1;visibility:visible;transform:translateY(0)}.to-top:hover{background:var(--primary-strong)}.toast.show{opacity:1;visibility:visible;transform:translate(-50%)}.toast.err{background:hsl(var(--destructive))}html[data-lang=zh] .en{display:none}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--surface);-webkit-backdrop-filter:saturate(160%) blur(8px);backdrop-filter:saturate(160%) blur(8px);border-bottom:1px solid var(--border)}.topbar-inner{justify-content:space-between;gap:16px;width:100%;max-width:var(--maxw);margin:0 auto;padding:12px 24px}.topbar-actions,.topbar-inner{display:flex;align-items:center}.topbar-actions{gap:6px}.brand{min-width:0}.brand .logo{width:50px;height:50px}.brand:hover .logo{transform:scale(1.06);box-shadow:0 4px 14px hsl(var(--primary)/.42)}.brand-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.brand-name{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--text-1)}.brand-sub{display:block;font-size:11px;font-weight:400;color:var(--text-2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero{background:linear-gradient(135deg,hsl(var(--primary)/.1),hsl(var(--node)/.14))}.hero-net{position:absolute;inset:0;width:100%;height:100%;opacity:.68;pointer-events:none;transition:opacity .3s ease}.hero:hover .hero-net{opacity:.9}.hero-net .hub-node{transform-box:fill-box;transform-origin:center;transition:fill .3s ease,r .3s ease,opacity .3s ease;cursor:pointer;animation:nodeFloat 5.5s ease-in-out infinite}.hero-net .hub-node.active{r:16;fill:hsl(var(--primary));filter:drop-shadow(0 0 8px hsl(var(--primary)/.9))}.hero-net .hub-core{transform-box:fill-box;transform-origin:center;transition:r .3s ease,fill .3s ease;fill:hsl(var(--core-hue,152) 65% 38%)!important}.hero-net .hub-core,.hub-core{animation:corePulse 2.6s ease-in-out infinite}.hero-net .hub-core:after{content:""}.hub-glow{transform-box:fill-box;transform-origin:center;animation:coreGlow 3.4s ease-in-out infinite;fill:hsl(var(--core-hue,152) 65% 38%)}@keyframes corePulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes coreGlow{0%{transform:scale(1);opacity:.35}50%{transform:scale(1.9);opacity:0}to{transform:scale(1);opacity:0}}@keyframes nodeFloat{0%,to{transform:translateY(0);opacity:.82}50%{transform:translateY(-4px);opacity:1}}@keyframes netBreathe{0%,to{opacity:.5}50%{opacity:.85}}@media (max-width:640px){.hero{padding:28px 18px;margin:4px auto 20px}.hero-net{opacity:.5}}.hero-net.searching .hub-core,.hero-net.searching .hub-glow{animation:none}.hero-net.filtering .hub-core{r:20}.hero-net.searching .net-line{stroke:hsl(var(--primary)/.85);stroke-width:3;animation:netPulse 1.6s ease-in-out infinite}@keyframes netPulse{0%,to{opacity:.5}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.hero-net .hub-core,.hero-net .hub-glow{animation:none}.hero-net .net-dot{display:none}.hero-net .hub-node,.hero-net .net-line,.hero-net.searching .net-line{animation:none}}.hero-inner{position:relative;z-index:1;max-width:720px}.hero-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:hsl(var(--primary));margin-bottom:12px}.hero-eyebrow:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--node);box-shadow:0 0 0 4px hsl(var(--node)/.25)}.hero h1{margin:0 0 10px;font-family:var(--font-display);font-size:clamp(28px,4vw,44px);line-height:1.12;letter-spacing:-.01em;color:hsl(var(--foreground))}.hero h1 .accent{color:hsl(var(--primary))}.hero p{margin:0;color:var(--text-2);font-size:15px;max-width:56ch}.hero-stat{display:inline-flex;gap:22px;margin-top:20px;flex-wrap:wrap}.hero-stat .num{font-family:var(--font-display);font-size:26px;font-weight:700;color:hsl(var(--foreground));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-stat .lbl{font-size:12px;color:var(--text-2)}.hero-features{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}.hero-features li{font-size:12.5px;line-height:1.5;color:var(--text-2);background:hsl(var(--secondary));border:1px solid var(--border);border-radius:999px;padding:4px 12px}.hero-dice{display:flex;margin-top:18px}.btn-dice{padding:10px 18px;border-radius:999px;border:1px solid hsl(var(--primary));background:hsl(var(--primary)/.12);color:hsl(var(--primary));transition:transform .12s ease,box-shadow .2s ease,background .2s ease}.btn-dice:hover{background:hsl(var(--primary)/.2);box-shadow:0 4px 14px hsl(var(--primary)/.3)}.btn-dice:active{transform:scale(.96) rotate(-4deg)}.btn-dice .dice-face{font-size:16px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.btn-dice:active .dice-face{transform:rotate(1turn)}.dice-hint{font-size:12.5px;color:var(--text-2)}@media (prefers-reduced-motion:reduce){.btn-dice:active .dice-face{transform:none}}.controls-inner{flex-wrap:wrap;gap:12px;width:100%;max-width:var(--maxw);margin:0 auto;padding:14px 24px}.controls-inner,.search{display:flex;align-items:center}.search{flex:1 1 260px;gap:8px;padding:9px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.search input{border:0;outline:0;background:transparent;flex:1 1;font-size:15px;color:var(--text)}.search .icon{opacity:.6}.result-count{margin-left:auto;white-space:nowrap}.filter-scroll{width:100%;max-width:var(--maxw);margin:0 auto;padding:6px 24px}.cats{overflow:hidden}.grid.list .card{flex-direction:row;align-items:center;gap:14px}.grid.list .card .card-body{min-width:0}.grid.list .card .card-desc{-webkit-line-clamp:1;line-clamp:1}.grid.list .cat-bar{position:absolute;top:0;bottom:0;left:0;width:4px;height:auto;margin:0;border-radius:0}.overlay.show{display:block}.dialog{overflow:hidden;transform-origin:center}.dialog.show{display:flex}.dialog.flip{animation:dialogFlip .55s cubic-bezier(.34,1.4,.64,1)}@keyframes dialogFlip{0%{transform:perspective(1200px) rotateY(90deg) scale(.9);opacity:0}60%{transform:perspective(1200px) rotateY(-12deg) scale(1.02);opacity:1}to{transform:perspective(1200px) rotateY(0deg) scale(1);opacity:1}}@media (prefers-reduced-motion:reduce){.dialog.flip{animation:none}}.dialog-head h2{margin:0;font-family:var(--font-display);font-size:18px}.dialog-head .sub{color:var(--text-2);font-size:12px;font-family:var(--font-en)}.dialog-head .dialog-cat{color:hsl(var(--primary));font-size:12px;margin-top:2px}.dialog-close{margin-left:auto}.dialog-body{padding:22px;overflow:auto}.dialog.sheet{inset:auto 0 0 0;margin:0;width:100%;height:min(86vh,760px);border-radius:18px 18px 0 0;animation:sheetUp .28s ease}.dialog.sheet .dialog-head{padding-top:16px}.dialog.sheet .dialog-head:before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:999px;background:var(--border)}.dialog.sheet .dialog-head{position:relative}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.dialog.sheet{animation:none}}.empty-net{width:120px;height:80px;margin:0 auto 14px;display:block}.empty-net .en-line{stroke:hsl(var(--border));stroke-width:1.2}.empty-net .en-node{fill:hsl(var(--node))}.empty-net .en-core{fill:hsl(var(--primary))}.empty-net .en-glass{fill:none}.empty-net .en-glass,.empty-net .en-handle{stroke:hsl(var(--primary));stroke-width:2.4}.empty-net .en-handle{stroke-linecap:round}.sheet.show{display:flex;transform:translateY(0)}.empty-state .empty-title{font-size:18px;font-weight:600;color:var(--text)}.empty-state .empty-desc{font-size:14px}.footer-inner{max-width:var(--maxw)}.footer-brand{display:flex;align-items:center;gap:10px;font-weight:700}.footer-brand .logo{width:26px;height:26px}.footer-desc{color:var(--text-2);font-size:13px;margin-top:4px}.footer-links{gap:8px 18px}.footer-link{color:var(--text-2);text-decoration:none;font-size:13px}.footer-link:hover{color:var(--primary)}.footer-bottom{max-width:var(--maxw)}.footer-ver{font-weight:600;color:var(--text)}.footer-sep{opacity:.5}.footer-copy{margin-left:auto}.footer-stats{align-items:baseline}.footer-stats .stats-scope{flex-basis:100%;font-size:11px;letter-spacing:.04em;color:var(--text-2);text-transform:uppercase;opacity:.8}.footer-stats .stat{display:flex;flex-direction:column;gap:2px}.footer-stats .num{font-family:var(--font-display);font-size:22px;font-weight:700;color:hsl(var(--foreground));font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.footer-stats .lbl{color:var(--text-2)}.star-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border:1px solid hsl(var(--primary));font-size:13px;font-weight:600;text-decoration:none;transition:filter .15s,transform .15s ease}.star-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.star-btn svg{color:hsl(var(--primary-foreground))}.share-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;background:var(--surface);color:hsl(var(--accent-2));border:1px solid color-mix(in srgb,hsl(var(--accent-2)) 35%,var(--border));font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s,transform .15s ease}.share-btn:hover{border-color:hsl(var(--accent-2));color:hsl(var(--accent-2));background:color-mix(in srgb,hsl(var(--accent-2)/.08),var(--surface));transform:translateY(-1px)}@media (max-width:640px){.footer-cta{flex-basis:100%}.share-btn,.star-btn{flex:1 1 auto;justify-content:center}}.chip{--hue:220;display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-size:13px;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s ease,filter .15s ease}.chip:hover{transform:translateY(-2px)}.chip.active{border-color:hsl(var(--hue) 90% 66%);transform:translateY(-1px)}.chip.active:hover{color:#fff;transform:translateY(-2px)}.chip-count{font-size:11px;opacity:.8;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip.active .chip-count{opacity:1}@media (max-width:640px){.chip{padding:6px 10px;max-width:132px}.chip>span:not(.chip-count){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.chip-all.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary));transform:translateY(-1px)}.chip-all.active:hover{color:hsl(var(--primary-foreground));transform:translateY(-2px)}.card:hover{border-color:color-mix(in srgb,hsl(var(--hue,152) 55% 50%) 45%,var(--border));background:color-mix(in srgb,hsl(var(--hue,152) 55% 50%/.04),var(--surface))}.card.pulse{animation:cardPulse 1s ease-in-out infinite;box-shadow:0 0 0 2px hsl(var(--hue,152) 65% 50%/.6),var(--shadow-pop)}@keyframes cardPulse{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.card.pulse{animation:none}}.skeleton{position:relative;overflow:hidden;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:14px;display:flex;flex-direction:column;gap:12px;min-height:134px}.skeleton .cat-bar{position:absolute;inset:0 auto 0 0;width:4px;background:var(--border)}.skeleton .sk-top{display:flex;align-items:center;gap:10px}.skeleton .avatar{background:color-mix(in srgb,var(--text) 14%,var(--surface))}.skeleton .sk-meta{display:flex;flex-direction:column;gap:6px;flex:1 1}.skeleton .sk-desc{display:flex;flex-direction:column;gap:6px}.skeleton .bar{height:9px;border-radius:5px;background:color-mix(in srgb,var(--text) 12%,var(--surface))}.skeleton .w40{width:40%}.skeleton .w60{width:60%}.skeleton .w70{width:70%}.skeleton .w80{width:80%}.skeleton .w90{width:90%}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text) 7%,transparent),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none;display:none}}.card .cat-bar{height:6px;background:hsl(var(--hue,152) 50% 52%);transition:filter .2s ease,box-shadow .2s ease}.card:hover .cat-bar{filter:saturate(1.15) brightness(1.05);box-shadow:0 2px 10px hsl(var(--hue,152) 55% 50%/.45)}.avatar{background:linear-gradient(135deg,hsl(var(--hue,152) 70% 46%),hsl(var(--hue,152) 65% 38%));color:#fff;box-shadow:0 2px 8px hsl(var(--hue,152) 60% 40%/.35)}.avatar.sm{flex:none}.title-row{min-width:0}.card-title{min-width:0;font-size:16px;letter-spacing:-.005em}.card-title .en{font-size:16px;color:var(--text-2)}:root[data-lang=en] .card-title .en{font-size:inherit;font-weight:600;color:inherit;margin-top:0}:root[data-name-mode=zh] .card-title .zh{display:block;font-weight:600}:root[data-name-mode=en] .card-title .en{display:block;font-size:inherit;font-weight:600;color:inherit;margin-top:0}:root[data-lang=zh] #dialog .sub.en{display:block;font-size:12px;color:var(--text-2);font-weight:400;margin-top:2px}:root[data-lang=en] #dialog .sub.en{display:none}.card-desc{color:color-mix(in srgb,var(--text) 68%,var(--text-2))}.card-desc>span{display:block}.card-cat{color:hsl(var(--primary));font-size:12px;margin-top:2px}:root[data-density=compact] .card .cat-bar{margin:-11px -11px 0}:root[data-density=compact] .card .card-desc{font-size:11px;line-height:1.4;-webkit-line-clamp:2;line-clamp:2}:root[data-density=compact] .grid{gap:10px}:root[data-show-bar=off] .grid.list .cat-bar,:root[data-show-bar=off] .grid:not(.list) .cat-bar,:root[data-show-cat=off] .card-cat{display:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:9px;color:var(--text-2);transition:background .15s,color .15s;line-height:1;font-size:14px}.icon-btn:hover{background:hsl(var(--secondary));color:var(--text)}.icon-btn:active{transform:translateY(0)}.icon-btn[aria-pressed=true]{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}[data-theme=light] .theme-sun{display:none}[data-theme=dark] .theme-sun,[data-theme=light] .theme-moon{display:block}.theme-moon,[data-theme=dark] .theme-moon{display:none}.icon-btn{position:relative}.icon-btn:after{content:attr(data-tip-zh);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);padding:5px 9px;border-radius:7px;background:hsl(var(--popover));color:hsl(var(--popover-foreground));font-size:12px;font-weight:500;line-height:1.2;white-space:nowrap;box-shadow:0 4px 14px hsl(var(--shadow-color)/.18);border:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:60}.icon-btn:focus-visible:after,.icon-btn:hover:after{opacity:1;transform:translateX(-50%) translateY(0)}html[data-lang=en] .icon-btn:after{content:attr(data-tip-en)}.view-btn{width:34px;height:34px;border-radius:7px;display:grid;place-items:center;color:var(--text-2);transition:background .15s,color .15s}.view-btn:hover{color:var(--text)}.view-btn.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.sort-wrap select{color:var(--text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}.sort-wrap select:hover{border-color:hsl(var(--primary))}.sort-wrap select:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:1px}.btn:hover{border-color:var(--primary);color:var(--primary)}.btn-primary,.btn.primary{background:var(--primary);border-color:var(--primary);color:hsl(var(--primary-foreground))}.btn-primary:hover,.btn.primary:hover{background:var(--primary-strong);color:hsl(var(--primary-foreground))}.btn-secondary,.btn.secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border-color:var(--border)}.btn-outline,.btn.outline{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover{border-color:var(--text-3);color:var(--text)}.settings-row{gap:12px;min-height:32px}.settings-label{font-size:13px;color:var(--text)}.settings-panel{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden}.settings-head{display:flex;align-items:center;gap:12px;padding:18px 22px 12px;border-bottom:1px solid var(--border)}.settings-head h2{margin:0;flex:1 1;font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--text-1)}.settings-head .close-x{width:34px;height:34px;flex:none;border-radius:10px;border:1px solid var(--border);background:hsl(var(--muted));color:var(--text-2);font-size:20px;line-height:1;cursor:pointer;transition:background .15s,color .15s}.settings-head .close-x:hover{background:hsl(var(--muted)/.7);color:var(--text)}.settings-body{padding:8px 22px 22px;gap:18px}.settings-body,.settings-group{display:flex;flex-direction:column}.settings-group{gap:8px}.switch{width:42px;height:24px;flex:none;border-radius:999px;border:1px solid var(--border);background:hsl(var(--muted));position:relative;cursor:pointer;transition:background .2s ease,border-color .2s ease}.switch .knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s ease}.switch.on{background:hsl(var(--primary));border-color:hsl(var(--primary))}.switch.on .knob{transform:translateX(18px)}.seg{display:inline-flex;width:100%;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:hsl(var(--muted))}.seg-btn{flex:1 1;padding:6px 4px;border:none;background:transparent;color:var(--text-2);font-size:12.5px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;line-height:1.2}.seg-btn+.seg-btn{border-left:1px solid var(--border)}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:600}.dialog-foot{padding:12px 22px}.detail{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--surface);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.detail-close{width:34px;height:34px;flex:none;border-radius:10px;border:1px solid var(--border);background:hsl(var(--muted));color:var(--text-2);font-size:20px;line-height:1;cursor:pointer;transition:background .15s,color .15s}.detail-close:hover{background:hsl(var(--muted)/.7);color:var(--text)}.detail-head{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 14px;border-bottom:1px solid var(--border);position:relative}.d-title{margin:0;font-family:var(--font-display);font-weight:700;line-height:1.3;flex:1 1;min-width:0;font-size:19px}.d-title .en,.d-title .zh{display:block}.d-title .en{font-size:12px;font-weight:400;color:var(--text-2);margin-top:3px;word-break:break-word}.d-actions{display:flex;align-items:center;gap:8px;flex:none}.copy-tip{font-size:12px;color:hsl(var(--primary));opacity:0;transform:translateY(-2px);transition:opacity .2s,transform .2s}.copy-tip.show{opacity:1;transform:translateY(0)}.detail-meta{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.meta-row{display:flex;flex-direction:column;gap:3px;padding:11px 22px;background:var(--surface)}.meta-k{font-size:11.5px;color:var(--text-3);letter-spacing:.02em}.meta-v{font-size:13.5px;color:var(--text);font-weight:500;word-break:break-word;overflow-wrap:anywhere}.meta-v.link{color:hsl(var(--primary));text-decoration:none}.meta-v.link:hover{text-decoration:underline}.detail-metrics{display:flex;flex-wrap:wrap;gap:10px;padding:14px 22px;background:hsl(var(--muted));border-bottom:1px solid var(--border)}.metric{display:flex;flex-direction:column;gap:4px;min-width:92px}.metric-k{font-size:11px;color:var(--text-3);letter-spacing:.02em}.metric-v{font-size:14px;font-weight:600;color:var(--text)}.metric-pop-wrap{min-width:150px}.metric-pop{display:flex;flex-direction:column;gap:5px}.heat-bars{display:flex;gap:3px}.heat-bars i{width:16px;height:6px;border-radius:3px;background:var(--border);transition:background .15s}.heat-bars i.on{background:hsl(var(--primary))}.pop-label{font-size:11.5px;color:var(--text-3)}.detail-body{padding:18px 22px 22px;overflow:visible;display:flex;flex-direction:column;gap:16px;flex:none}.d-desc{margin:0;line-height:1.75;color:var(--text);white-space:pre-line}.d-related h4,.d-tools h4{margin:0 0 9px;font-size:12px;font-weight:600;color:var(--text-3);letter-spacing:.02em}.tool-chips{display:flex;flex-wrap:wrap;gap:7px}.tool-chip{font-family:var(--font-mono);font-size:12px;padding:3px 9px;border-radius:7px;background:hsl(var(--muted));color:hsl(var(--muted-foreground));border:1px solid var(--border)}.related-list{display:grid;grid-template-columns:1fr 1fr;grid-gap:9px;gap:9px}.related-card{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:hsl(var(--muted));cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color .15s,transform .15s}.related-card:hover{border-color:hsl(var(--primary));transform:translateY(-1px)}.rc-cat{font-size:11px;color:hsl(var(--primary))}.rc-name{font-size:13.5px;font-weight:600}.d-install{border-top:1px solid var(--border);padding:16px 22px}.d-install h4{margin:0 0 9px;font-size:12px;font-weight:600;color:var(--text-3);letter-spacing:.02em}.cmd-row{display:flex;align-items:stretch;gap:8px}.cmd-text{flex:1 1;min-width:0;font-family:var(--font-mono);font-size:12.5px;padding:9px 11px;border-radius:8px;background:hsl(var(--muted));color:hsl(var(--muted-foreground));border:1px solid var(--border);overflow-x:auto;white-space:nowrap}.d-install .btn.ghost{flex:none}.d-install .copy-tip{display:block;margin-top:6px}.pager{display:none}.pager.show{display:flex}.pg-btn{min-width:34px;height:34px;padding:0 9px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.pg-btn.num.active,.pg-btn:hover:not(:disabled){border-color:hsl(var(--primary))}.pg-btn.num.active{background:hsl(var(--primary));color:#fff;font-weight:600}.pg-btn:disabled{opacity:.4;cursor:not-allowed}.pg-ellipsis{color:var(--text-3);padding:0 2px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pg-info{font-size:12.5px;color:var(--text-3);margin-left:8px;white-space:nowrap}@media (max-width:1024px){.hero{padding:36px 24px;margin:8px auto 22px}.hero h1{font-size:clamp(26px,3.6vw,38px)}.topbar-inner{padding:10px 18px}.grid{padding:20px;gap:14px;grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.to-top,.toast{transform:none!important}}.to-top{position:fixed;right:20px;bottom:20px;z-index:40;width:44px;height:44px;border-radius:50%;background:var(--primary);color:hsl(var(--primary-foreground));display:grid;place-items:center;box-shadow:var(--shadow-pop);transform:translateY(8px)}.to-top,.toast{opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);z-index:60;padding:10px 18px;border-radius:10px;background:hsl(var(--popover));color:hsl(var(--popover-foreground));font-size:14px;font-weight:500;box-shadow:0 8px 24px rgba(0,0,0,.18);pointer-events:none;max-width:86vw;text-align:center}html[data-lang=en] .zh{display:none}.brand{display:flex;align-items:center;gap:12px;font-weight:700;text-decoration:none;color:inherit}.brand .logo{width:30px;height:30px;flex:none;border-radius:8px;transition:transform .25s ease,box-shadow .25s ease;box-shadow:0 2px 8px hsl(var(--primary)/.28)}.icon-btn{min-width:38px;height:38px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font-weight:600;font-size:13px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.icon-btn:hover{color:hsl(var(--primary));border-color:hsl(var(--primary)/.5)}.hero{position:relative;overflow:hidden;width:100%;max-width:var(--maxw);margin:8px auto 28px;padding:44px 32px;background:linear-gradient(135deg,hsl(var(--primary)/.1),hsl(var(--node,152 50% 60%)/.14));border:1px solid var(--border);border-radius:18px}.hero-net .hub-node:hover{r:14;filter:drop-shadow(0 0 6px hsl(var(--node)/.9))}.hero-net .hub-glow{transform-box:fill-box;transform-origin:center;animation:coreGlow 3.4s ease-in-out infinite;fill:hsl(var(--core-hue,152) 65% 38%)}0%,to{transform:scale(1)}50%{transform:scale(1.18)}0%{transform:scale(1);opacity:.35}50%{transform:scale(1.9)}50%,to{opacity:0}to{transform:scale(1)}0%,to{transform:translateY(0);opacity:.82}50%{transform:translateY(-4px)}.hero-net .net-line{animation:netBreathe 4.8s ease-in-out infinite}50%{opacity:.85}.hero-net .net-dot{fill:hsl(var(--primary));opacity:.85;pointer-events:none;animation:netDot 3s ease-in-out infinite}0%,to{opacity:.5}50%{opacity:1}.hero-net.searching .hub-core,.hero-net.searching .hub-glow,.hero-net.searching .hub-node{animation:none}.hero-net.filtering .hub-node{fill:hsl(var(--primary))}.hero-parallax{position:absolute;inset:-20px;pointer-events:none}@media (prefers-reduced-motion:reduce){.hero-net .hub-core,.hero-net .hub-glow,.hero-net .hub-node,.hero-net .net-dot,.hero-net .net-line,.hero-net.searching .net-line{animation:none}}.hero-dice{flex-wrap:wrap;gap:10px;margin-top:20px}.btn-dice,.hero-dice{display:inline-flex;align-items:center}.btn-dice{gap:8px;padding:10px 16px;border-radius:12px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:600;font-size:14px;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn-dice:hover{transform:translateY(-1px);box-shadow:0 6px 16px -6px hsl(var(--primary)/.5)}.btn-dice:active{transform:scale(.98)}.btn-dice .dice-face{font-size:18px}.controls{position:-webkit-sticky;position:sticky;top:var(--topbar-h,52px);z-index:20}.cats,.controls{background:var(--surface);border-bottom:1px solid var(--border)}.cats{width:100%;max-width:var(--maxw);margin:0 auto;padding:12px 24px}.filter-scroll{display:flex;flex-wrap:wrap;gap:8px}@media (max-width:640px){.filter-scroll{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.filter-scroll::-webkit-scrollbar{display:none}}.grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;padding:24px;max-width:1200px;margin:0 auto}.grid.list{grid-template-columns:1fr;max-width:860px}.grid.list .card .avatar.sm{flex:none}.overlay{z-index:50;background:hsl(var(--shadow-color)/.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog,.overlay{position:fixed;inset:0;display:none}.dialog{z-index:51;margin:auto;width:min(720px,92vw);height:min(82vh,720px);background:var(--surface);border-radius:16px;box-shadow:var(--shadow-pop);flex-direction:column;overflow-y:auto;overflow-x:hidden}.dialog.flip{animation:flipIn .5s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}0%{opacity:.2;transform:perspective(1000px) rotateX(82deg) translateY(24px)}55%{transform:perspective(1000px) rotateX(-12deg) translateY(-6px)}to{opacity:1;transform:perspective(1000px) rotateX(0deg) translateY(0)}0%{transform:translateY(0)}40%{transform:translateY(-4px)}@media (prefers-reduced-motion:reduce){.card.pulse,.dialog.flip{animation:none}.card.pulse{box-shadow:var(--shadow-pop)}}.dialog-head{display:flex;align-items:center;gap:12px;padding:20px 22px;border-bottom:1px solid var(--border);flex:none}.detail .dialog-body{overflow:visible;flex:none}.sheet{position:fixed;z-index:51;left:0;right:0;bottom:0;width:100%;max-height:88vh;background:var(--surface);border-radius:18px 18px 0 0;box-shadow:var(--shadow-pop);display:none;flex-direction:column;overflow:hidden;transform:translateY(100%);transition:transform .25s ease}.sheet-grip{width:40px;height:4px;border-radius:999px;background:var(--border);margin:10px auto 0;flex:0 0 auto}.empty-state{grid-column:1/-1;text-align:center;color:var(--text-2);padding:40px 16px;display:flex;flex-direction:column;align-items:center;gap:8px}.site-footer{border-top:1px solid var(--border);background:var(--surface-2);padding:28px 24px;margin-top:24px}.footer-inner{max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.footer-version{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-2);font-size:12px}.footer-bottom{max-width:1200px;margin:16px auto 0;padding-top:14px;border-top:1px solid var(--border);gap:8px 14px;color:var(--text-2);font-size:12px}.footer-bottom,.footer-cta{display:flex;flex-wrap:wrap;align-items:center}.footer-cta{gap:10px}.install-source{display:inline-block;margin-top:8px;font-size:12.5px;color:var(--text-2);text-decoration:none;word-break:break-all}.install-source:hover{color:hsl(var(--primary));text-decoration:underline}.footer-links{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.footer-links a{color:var(--text-2);text-decoration:none;font-size:13px;transition:color .15s ease}.footer-links a:hover{color:var(--primary)}.footer-stats{flex-basis:100%;display:flex;flex-wrap:wrap;gap:14px 28px;margin-top:6px;padding-top:16px;border-top:1px dashed var(--border)}.footer-stats .lbl{font-size:11.5px;color:hsl(var(--text-2))}.result-count{max-width:1200px;margin:0 auto;padding:0 24px;font-size:12.5px;color:var(--text-2)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 0}.settings-label{font-size:14px;color:hsl(var(--foreground))}:root[data-density=compact] .card{padding:11px;gap:6px}:root[data-density=compact] .card-desc{-webkit-line-clamp:2;line-clamp:2}:root[data-show-desc=off] .card-desc{display:none}.settings-panel{margin:10px 0 4px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:12px}.settings-section h3{margin:0 0 6px;font-size:14px;font-weight:700;color:var(--foreground)}.settings-panel .settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 0;font-size:14px;color:hsl(var(--foreground));cursor:pointer}.settings-panel .settings-row input[type=checkbox]{width:18px;height:18px;accent-color:hsl(var(--primary));cursor:pointer}.settings-panel .seg{display:inline-flex;width:100%;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:hsl(var(--muted))}.settings-panel .seg-btn{flex:1 1;padding:6px 4px;border:none;background:transparent;color:hsl(var(--text-2));font-size:12.5px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;line-height:1.2}.settings-panel .seg-btn+.seg-btn{border-left:1px solid var(--border)}.settings-panel .seg-btn:hover{color:hsl(var(--foreground))}.settings-panel .seg-btn.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:600}.chip:hover{border-color:var(--text-3);color:var(--text)}.chip.active{background:hsl(var(--hue) 82% 46%);color:#fff;border-color:hsl(var(--hue) 82% 46%)}.card{position:relative;display:flex;flex-direction:column;gap:8px;padding:16px;width:100%;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer;overflow:hidden;box-shadow:var(--shadow-card);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-pop);border-color:color-mix(in srgb,var(--primary) 40%,var(--border))}.card.pulse{animation:cardPulse 1.1s ease-out;box-shadow:var(--shadow-pop),0 0 0 3px hsl(var(--primary)/.35)}.card:focus-visible{border-color:var(--primary);box-shadow:var(--shadow-pop),0 0 0 2px hsl(var(--ring)/.45)}.card-body{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1 1}.card .cat-bar{height:4px;border-radius:999px;background:hsl(var(--hue,152) 55% 50%);margin:-16px -16px 0}.avatar{width:36px;height:36px;border-radius:10px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:grid;place-items:center;font-weight:700}.avatar.sm{width:30px;height:30px;font-size:13px}.title-row{display:flex;align-items:center;gap:10px}.card-title{font-family:var(--font-display);font-weight:600;font-size:15px;line-height:1.3}.card-title .zh{display:block}.card-title .en{display:block;font-size:12px;font-weight:400;color:hsl(var(--text-2));margin-top:2px;letter-spacing:.01em;overflow-wrap:break-word;word-break:break-word}:root[data-name-mode=both][data-lang=zh] .card-title .en{display:block}:root[data-name-mode=en] .card-title .zh,:root[data-name-mode=zh] .card-title .en{display:none}:root[data-lang=zh] .dialog .sub.en{display:block;font-size:12px;color:hsl(var(--text-2));font-weight:400;margin-top:2px}:root[data-lang=en] .dialog .sub.en{display:none}.card-desc{color:var(--text-2);font-size:12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.view-toggle{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.sort-wrap{display:inline-flex;align-items:center}.sort-wrap select{height:34px;padding:0 28px 0 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:hsl(var(--foreground));font-size:13px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a8a8a8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:600;line-height:1;background:hsl(var(--accent));color:hsl(var(--accent-foreground));border:1px solid transparent}.badge.secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border-color:var(--border)}.badge.muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.badge.outline{background:transparent;color:var(--text-2);border-color:var(--border)}.src-badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:600;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:1px solid var(--border)}.skeleton{display:block;border-radius:8px;background:linear-gradient(100deg,hsl(var(--secondary)) 30%,hsl(var(--muted)) 50%,hsl(var(--secondary)) 70%);background-size:200% 100%;animation:skeleton-shimmer 1.3s ease-in-out infinite}0%{background-position:200% 0}to{background-position:-200% 0}.separator{height:1px;width:100%;background:var(--border);border:0}.separator.v{width:1px;height:auto;align-self:stretch}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;font-size:14px;text-decoration:none;transition:all .15s ease}.dialog-title{margin:0;font-size:20px;font-weight:700;line-height:1.25}.block{margin:0 0 18px}.block h3{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--text-3);text-transform:none;letter-spacing:.01em}.block p{margin:0;line-height:1.7;color:var(--text)}.tools{display:flex;flex-wrap:wrap;gap:8px}.tools code{font-family:var(--font-mono);font-size:12.5px;padding:3px 9px;border-radius:7px;background:hsl(var(--muted));color:hsl(var(--muted-foreground));border:1px solid var(--border)}.skill-link{color:inherit;text-decoration:none}.btn-primary .en,.btn-primary .zh{color:hsl(var(--primary-foreground))}.tool-tag{font-family:var(--font-mono);font-size:12.5px;padding:3px 9px;border-radius:7px;background:hsl(var(--muted));color:hsl(var(--muted-foreground));border:1px solid var(--border)}.dialog-foot{display:flex;gap:10px;justify-content:flex-end;padding:16px 22px;border-top:1px solid var(--border)}.zh-desc{white-space:pre-line;line-height:1.7;color:var(--text-2)}.detail-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:hsl(var(--shadow-color)/.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.detail.dialog{position:relative;overflow-y:auto;overflow-x:hidden}@media (max-width:640px){.detail.dialog.sheet{inset:auto 0 0 0;margin:0;width:100%;height:min(86vh,760px);border-radius:18px 18px 0 0;animation:sheetUp .28s ease}.detail.dialog.sheet .detail-head{padding-top:16px;position:relative}.detail.dialog.sheet .detail-head:before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:2px;background:hsl(var(--border))}.detail.dialog.sheet.flip{animation:sheetUp .28s ease;transform-style:flat}}0%{transform:translateY(100%)}to{transform:translateY(0)}@media (prefers-reduced-motion:reduce){.detail.dialog.sheet,.detail.dialog.sheet.flip{animation:none}}.detail .d-install,.detail .detail-meta,.detail .detail-metrics{flex:none}.detail .d-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.detail .copy-tip{font-size:12px;color:hsl(var(--primary));opacity:0;transform:translateY(-2px);transition:opacity .2s,transform .2s}.detail .copy-tip.show{opacity:1;transform:translateY(0)}.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin:28px auto 8px;padding:0 16px}@media (max-width:640px){.topbar-inner{padding:10px 16px}.hero{padding:36px 16px 22px}.controls-inner{padding:12px 16px}.search{flex:1 1 100%}.view-toggle{display:none}.grid{padding:16px;gap:12px;grid-template-columns:1fr}.dialog{width:96vw;height:90vh}.footer-inner{flex-direction:column;align-items:flex-start}.footer-copy{margin-left:0}.card-title{white-space:normal}}