.fab-wrap[data-v-4de0e6a9]{z-index:900;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:26px;right:22px}.fab-btns[data-v-4de0e6a9]{flex-direction:column;gap:12px;display:flex}.fab[data-v-4de0e6a9]{cursor:pointer;color:#fff;border:none;border-radius:50%;place-items:center;width:48px;height:48px;transition:transform .18s,filter .18s;display:grid;box-shadow:0 6px 20px #00000047}.fab[data-v-4de0e6a9]:hover{filter:brightness(1.1);transform:translateY(-3px)}.fab.contact[data-v-4de0e6a9]{background:linear-gradient(135deg, var(--primary), #7c3aed)}.fab.sponsor[data-v-4de0e6a9]{background:linear-gradient(135deg,#f43f5e,#f59e0b)}.fab.on[data-v-4de0e6a9]{transform:scale(.92)}.fab-panel[data-v-4de0e6a9]{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:34px;padding:14px 14px 12px;box-shadow:0 14px 40px #00000038}.contact-panel[data-v-4de0e6a9]{width:min(300px,74vw)}.sponsor-panel[data-v-4de0e6a9]{text-align:center;width:min(240px,64vw)}.panel-title[data-v-4de0e6a9]{color:var(--text);margin-bottom:10px;font-size:14px;font-weight:700}textarea[data-v-4de0e6a9]{resize:vertical;border:1px solid var(--border);width:100%;color:var(--text);background:0 0;border-radius:9px;padding:9px 10px;font-family:inherit;font-size:13px;line-height:1.6}.panel-actions[data-v-4de0e6a9]{align-items:center;margin-top:8px;display:flex}.counter[data-v-4de0e6a9]{color:var(--muted);margin-right:auto;font-size:11px}.send[data-v-4de0e6a9]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:6px 18px;font-size:12.5px;font-weight:700}.send[data-v-4de0e6a9]:disabled{opacity:.45;cursor:default}.sent-tip[data-v-4de0e6a9]{color:#16a34a;margin-top:8px;font-size:12px}.mail-row[data-v-4de0e6a9]{border-top:1px dashed var(--border);color:var(--muted);align-items:center;gap:6px;margin-top:10px;padding-top:9px;font-size:12.5px;display:flex}.mail-row a[data-v-4de0e6a9]{color:var(--primary);word-break:break-all;text-decoration:none}.mail-row a[data-v-4de0e6a9]:hover{text-decoration:underline}.sponsor-panel img[data-v-4de0e6a9]{border-radius:10px;width:100%;display:block}.qr-missing[data-v-4de0e6a9]{color:var(--muted);margin:8px 0 0;font-size:11px;line-height:1.5}.panel-sub[data-v-4de0e6a9]{color:var(--muted);margin:8px 0 0;font-size:12px}.fab-panel[data-v-4de0e6a9]{animation:.22s fab-in-4de0e6a9}@keyframes fab-in-4de0e6a9{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.fab-wrap[data-v-4de0e6a9]{bottom:18px;right:14px}.fab[data-v-4de0e6a9]{width:44px;height:44px}}:root{--bg:#f6f7f9;--surface:#fff;--surface2:#eef1f5;--text:#16181d;--muted:#5b6470;--border:#e3e7ec;--primary:#2563eb;--primary-weak:#e8f0fe;--glow-b:#7c3aed;--c-a:#2563eb;--c-b:#7c3aed;--warn-bg:#fff7e6;--warn-border:#f59e0b;--warn-text:#92400e;--card-shadow:0 10px 24px #0f172a14, 0 2px 6px #0f172a0d;--card-shadow-hover:0 16px 34px #0f172a21, 0 4px 10px #0f172a14;--deck-edge:#0f172a1a;--deck-ring:linear-gradient(140deg, #0f172a47 0%, #0f172a0d 38%, #0f172a3d 72%, #0f172a0f 100%)}html.dark{--bg:#000;--surface:#0d0f12;--surface2:#161a1f;--text:#e8eaee;--muted:#9aa3ae;--border:#232830;--primary:#5b93f5;--primary-weak:#1b2a44;--glow-b:#a78bfa;--c-a:#5b93f5;--c-b:#a78bfa;--warn-bg:#2a2415;--warn-border:#b45309;--warn-text:#fbbf24;--card-shadow:0 16px 36px #00000080, 0 4px 10px #00000052;--card-shadow-hover:0 24px 50px #00000094, 0 8px 18px #0000005c;--deck-edge:#ffffff24;--deck-ring:linear-gradient(140deg, #ffffff80 0%, #b2bacc1a 38%, #fff6 72%, #b2bacc24 100%)}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;font-size:15px;line-height:1.7;transition:background-color .2s,color .2s}a{color:var(--primary);text-decoration:none}.container{max-width:1280px;margin:0 auto;padding:0 20px}*,:before,:after{transition:background-color .3s,border-color .3s,color .3s,fill .3s,stroke .3s,box-shadow .3s}::view-transition-old(root){animation-duration:.45s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.45s;animation-timing-function:ease}.topbar{z-index:10;background:color-mix(in srgb, var(--surface) 52%, transparent);-webkit-backdrop-filter:blur(22px)saturate(1.6);border-bottom:1px solid color-mix(in srgb, var(--border) 55%, transparent);position:sticky;top:0}.topbar.scrolled{background:color-mix(in srgb, var(--surface) 72%, transparent);box-shadow:0 10px 30px color-mix(in srgb, var(--primary) 8%, transparent)}.topbar-inner{flex-wrap:wrap;align-items:center;gap:16px;padding:12px 0;display:flex}.brand{color:var(--text);flex-shrink:0;align-items:center;gap:9px;font-size:17px;font-weight:700;display:flex}.brand-logo{background:linear-gradient(135deg, var(--primary), var(--glow-b));color:#fff;width:30px;height:30px;box-shadow:0 3px 10px color-mix(in srgb, var(--primary) 35%, transparent);border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.brand-text{background:linear-gradient(120deg, var(--text), var(--muted));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.nav-links{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.nav-links a{color:var(--text);border-radius:8px;padding:7px 12px 9px;font-size:14px;transition:color .25s}.nav-links a:hover,.nav-links a.router-link-active,.nav-links a.active{color:var(--primary)}.nav-divider{background:var(--border);flex:none;width:1px;height:18px;margin:0 8px}.nav-links a.nav-tool-link{color:var(--primary);border:1px solid color-mix(in srgb, var(--primary) 42%, transparent);background:color-mix(in srgb, var(--primary) 10%, transparent);border-radius:999px;align-items:center;gap:6px;padding:7px 14px 8px;font-weight:700;transition:color .2s,background .25s,border-color .25s,box-shadow .25s;display:inline-flex}.nav-links a.nav-tool-link svg{flex:none}.nav-links a.nav-tool-link:hover,.nav-links a.nav-tool-link.active,.nav-links a.nav-tool-link.router-link-active{color:#fff;background:linear-gradient(135deg, var(--primary), var(--glow-b));box-shadow:0 6px 16px color-mix(in srgb, var(--primary) 34%, transparent);border-color:#0000}.nav-indicator{background:linear-gradient(90deg, var(--primary), var(--glow-b));height:2px;box-shadow:0 0 8px color-mix(in srgb, var(--primary) 45%, transparent);opacity:0;pointer-events:none;border-radius:2px;transition:opacity .25s,transform .35s cubic-bezier(.22,1,.36,1),width .35s cubic-bezier(.22,1,.36,1);position:absolute;bottom:1px;left:0}.nav-indicator.ready{opacity:1}.nav-indicator.ready.hidden{opacity:0}.topbar-right{align-items:center;gap:8px;margin-left:auto;display:flex}.nav-burger{background:var(--surface2);border:1px solid var(--border);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .25s,color .25s;display:none}.nav-burger:hover,.nav-burger.open{border-color:color-mix(in srgb, var(--primary) 55%, transparent);color:var(--primary)}.nav-drawer{display:none}@media (width<=1024px){.topbar-inner{flex-wrap:nowrap;gap:10px}.nav-links{display:none}.nav-burger{display:inline-flex}.nav-drawer.open{background:color-mix(in srgb, var(--surface) 68%, transparent);-webkit-backdrop-filter:blur(22px)saturate(1.6);border-bottom:1px solid var(--border);box-shadow:0 18px 40px color-mix(in srgb, var(--primary) 10%, transparent);border-radius:0 0 16px 16px;flex-direction:column;gap:2px;margin:0;padding:8px;animation:.28s cubic-bezier(.22,1,.36,1) drawerIn;display:flex;position:absolute;top:100%;left:0;right:0}.nav-drawer a{color:var(--text);border-radius:10px;padding:12px 16px;font-size:15px;transition:background .2s,color .2s}.nav-drawer a:hover{background:var(--surface2)}.nav-drawer a.active,.nav-drawer a.router-link-active{color:#fff;background:linear-gradient(135deg, var(--primary), var(--glow-b));font-weight:700}.nav-drawer a.drawer-tool{color:var(--primary);border:1px solid color-mix(in srgb, var(--primary) 38%, transparent);margin-top:6px;font-weight:700}}@keyframes drawerIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.search-block{justify-content:flex-start;margin:0;display:flex}.search-shell{--c-a:var(--primary);--c-b:#22d3ee;border-radius:999px;width:min(560px,100%);padding:2px;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s;position:relative}@property --border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.search-shell:before{content:"";background:conic-gradient(from var(--border-angle), var(--c-a) 0deg, var(--c-b) 90deg, var(--c-a) 180deg, var(--c-b) 270deg, var(--c-a) 360deg);-webkit-mask-composite:xor;filter:blur(.6px);opacity:0;pointer-events:none;border-radius:999px;padding:1.6px;transition:opacity .3s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.search-flow{opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .3s;position:absolute;inset:0;overflow:visible}.search-flow .flow-beam{stroke-dashoffset:0;animation:4s linear infinite paused flow-run}.search-flow .flow-beam-2{animation-delay:-2s}@keyframes flow-run{to{stroke-dashoffset:-100px}}.search-shell:hover,.search-shell:focus-within{box-shadow:0 10px 28px color-mix(in srgb, var(--c-a) 26%, transparent), 0 0 34px color-mix(in srgb, var(--c-b) 16%, transparent);transform:translateY(-3px)}.search-shell:hover:before,.search-shell:focus-within:before,.search-shell:hover .search-flow,.search-shell:focus-within .search-flow{opacity:1}.search-shell:hover .search-flow .flow-beam,.search-shell:focus-within .search-flow .flow-beam{animation-play-state:running}@media (width<=640px){.search-flow{display:none}}.search-bar{border:1px solid color-mix(in srgb, var(--border) 78%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--surface2) 76%, var(--surface)), color-mix(in srgb, var(--surface2) 88%, transparent));border-radius:999px;align-items:center;gap:10px;height:44px;padding:0 16px;transition:border-color .3s;display:flex}.search-icon{color:var(--muted);flex:none;transition:color .3s}.search-shell:hover .search-icon,.search-shell:focus-within .search-icon{color:var(--c-a)}.search-input{min-width:0;height:100%;color:var(--text);caret-color:var(--c-a);letter-spacing:.3px;background:0 0;border:none;outline:none;flex:1;font-size:15px}.search-input::placeholder{color:var(--muted)}.search-clear{background:color-mix(in srgb, var(--muted) 16%, transparent);width:22px;height:22px;color:var(--text);cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .25s,color .25s;display:flex}.search-clear:hover{background:color-mix(in srgb, var(--c-a) 32%, transparent);color:#fff}.search-kbd{color:var(--muted);border:1px solid color-mix(in srgb, var(--border) 82%, transparent);background:color-mix(in srgb, var(--surface2) 72%, transparent);border-radius:8px;flex:none;padding:5px 9px;font-size:12px;line-height:1;transition:color .3s,border-color .3s}.search-shell:hover .search-kbd,.search-shell:focus-within .search-kbd{color:var(--c-a);border-color:color-mix(in srgb, var(--c-a) 42%, transparent)}.hero{padding:34px 0 8px}.hero h1{letter-spacing:.5px;margin:0 0 6px;font-size:26px}.hero p{color:var(--muted);margin:0 0 10px}.card-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-top:18px;display:grid}@media (width<=1100px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.card-grid{grid-template-columns:1fr}}.layout{align-items:flex-start;gap:24px;display:flex}.main-col{flex:1;min-width:0}.side-col{flex-shrink:0;width:272px;margin-top:18px;position:sticky;top:74px}@media (width<=1100px){.side-col,.nav-indicator,.sk-summary .sk-row+.sk-row{display:none}}.sidebar-rec{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(10px);border-radius:14px;padding:16px 14px}.sidebar-rec-title{color:var(--text);border-bottom:1px solid var(--border);align-items:center;gap:7px;margin-bottom:8px;padding:0 4px 12px;font-size:15px;font-weight:700;display:flex}.sidebar-rec-title svg{color:var(--primary)}.sidebar-rec-loading{color:var(--muted);padding:14px 6px;font-size:13px}.sidebar-tags{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(10px);border-radius:14px;margin-top:18px;padding:16px 14px}.sidebar-tags-count{color:var(--muted);margin-left:auto;font-size:12px;font-weight:400}.tag-cloud{flex-wrap:wrap;gap:7px;padding:2px 2px 0;display:flex}.tag-cloud-item{border:1px solid var(--border);background:var(--surface2);color:var(--muted);border-radius:999px;align-items:center;gap:5px;padding:5px 8px 5px 11px;font-size:12.5px;line-height:1;transition:transform .22s,box-shadow .22s,border-color .22s;display:inline-flex}.tag-cloud-item:hover{transform:translateY(-2px)}.tag-cloud-num{font-variant-numeric:tabular-nums;background:color-mix(in srgb, var(--muted) 18%, transparent);min-width:17px;height:17px;color:var(--text);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:11px;font-weight:700;display:inline-flex}.tag-cloud-item.lv1{color:#fff;background:linear-gradient(135deg, var(--primary), var(--glow-b));box-shadow:0 6px 16px color-mix(in srgb, var(--primary) 28%, transparent);border-color:#0000}.tag-cloud-item.lv1 .tag-cloud-num{color:#fff;background:#ffffff3d}.tag-cloud-item.lv2{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 32%, transparent);background:var(--primary-weak)}.tag-cloud-item.lv2 .tag-cloud-num{background:color-mix(in srgb, var(--primary) 22%, transparent);color:var(--primary)}.tag-cloud-item.lv3{opacity:.62}.tag-cloud-item.cur{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 55%, transparent)}.tag-cloud-item.lv1.cur{box-shadow:0 0 0 2px color-mix(in srgb, var(--glow-b) 62%, transparent), 0 6px 16px color-mix(in srgb, var(--primary) 28%, transparent)}.rec-item{border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;margin-bottom:4px;padding:9px 10px;transition:transform .25s,background-color .22s,box-shadow .25s,border-color .25s;display:flex;position:relative}.rec-item:hover{background:var(--primary-weak);border-color:color-mix(in srgb, var(--primary) 40%, transparent);box-shadow:0 8px 18px color-mix(in srgb, var(--primary) 18%, transparent);transform:translateY(-2px)}.rec-rank{background:var(--surface2);width:24px;height:24px;color:var(--muted);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:12.5px;font-weight:700;display:inline-flex}.rec-rank.r1,.rec-rank.r2,.rec-rank.r3{background:linear-gradient(135deg, var(--primary), var(--glow-b));color:#fff}.rec-info{flex-direction:column;gap:2px;min-width:0;display:flex}.rec-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;transition:color .22s;overflow:hidden}.rec-item:hover .rec-name{color:var(--primary)}.rec-views{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.rec-preview{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.3);border:1px solid color-mix(in srgb, var(--primary) 30%, var(--border));width:248px;box-shadow:0 16px 36px #0000002e, 0 0 0 1px color-mix(in srgb, var(--primary) 8%, transparent);opacity:0;pointer-events:none;z-index:6;border-radius:12px;padding:12px 14px;transition:opacity .26s,transform .26s cubic-bezier(.22,1,.36,1);position:absolute;top:0;right:calc(100% + 14px);transform:translate(10px)scale(.97)}.rec-preview:after{content:"";background:var(--surface);border-top:1px solid color-mix(in srgb, var(--primary) 30%, var(--border));border-right:1px solid color-mix(in srgb, var(--primary) 30%, var(--border));width:10px;height:10px;position:absolute;top:22px;right:-5px;transform:rotate(45deg)}.rec-item:hover .rec-preview{opacity:1;transform:translate(0)scale(1)}.rec-preview-title{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:700}.rec-preview-summary{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:8px;font-size:12.5px;line-height:1.6;display:-webkit-box;overflow:hidden}.rec-preview-meta{color:var(--muted);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding-top:7px;font-size:12px;display:flex}.rec-preview-views{align-items:center;gap:4px;display:inline-flex}@media (hover:none){.rec-preview{display:none}}.article-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;transform-style:preserve-3d;will-change:transform;box-shadow:var(--card-shadow);border-radius:18px;align-items:stretch;gap:18px;padding:20px;transition:background-color .3s,border-color .3s,color .3s,transform .35s cubic-bezier(.22,1,.36,1),box-shadow .4s;display:flex;position:relative;overflow:hidden}.card-thumb{border-radius:13px;flex:0 0 150px;min-height:128px;position:relative;overflow:hidden}.card-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .45s cubic-bezier(.22,1,.36,1);display:block}.article-card:hover .card-thumb img{transform:scale(1.06)}.thumb-placeholder{color:#ffffffd1;background:linear-gradient(135deg, var(--c-a), var(--c-b));flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;height:100%;display:flex}.thumb-placeholder svg{opacity:.55}.thumb-letter{opacity:.9;font-size:34px;font-weight:800;line-height:1}.card-body{flex-direction:column;flex:1;min-width:0;display:flex}@media (width<=640px){.card-thumb{flex-basis:108px}.article-card{gap:14px;padding:16px}}.article-card:before{content:"";background:conic-gradient(from var(--border-angle), transparent 0%, color-mix(in srgb, var(--c-a) 55%, transparent) 22%, color-mix(in srgb, var(--c-b) 35%, transparent) 42%, transparent 58%, color-mix(in srgb, var(--c-a) 55%, transparent) 78%, transparent 100%);-webkit-mask-composite:xor;opacity:0;pointer-events:none;border-radius:18px;padding:1.5px;transition:opacity .35s;animation:4.5s linear infinite paused border-rotate;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.article-card{--mx:85%;--my:0%;background-image:radial-gradient(color-mix(in srgb, var(--c-a) 5%, transparent) 1px, transparent 1px);background-size:18px 18px}.article-card:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--c-a) 55%, transparent), transparent) top / 100% 2px no-repeat, radial-gradient(140px circle at var(--mx,85%) var(--my,0%), color-mix(in srgb, var(--c-a) 11%, transparent) 0%, transparent 60%);opacity:0;pointer-events:none;border-radius:18px;transition:opacity .3s;position:absolute;inset:0}.article-card:hover{border-color:color-mix(in srgb, var(--c-a) 55%, var(--border));box-shadow:var(--card-shadow-hover), 0 0 0 1px color-mix(in srgb, var(--c-a) 25%, transparent), 0 0 26px color-mix(in srgb, var(--c-a) 16%, transparent), 0 2px 40px color-mix(in srgb, var(--c-b) 10%, transparent);transform:translateY(-5px)}.article-card:hover:before,.article-card:hover:after{opacity:1;animation-play-state:running}.article-card.flash-card:before{background:conic-gradient(from var(--border-angle), transparent 0deg, #22d3eea6 55deg, #a78bfaa6 125deg, #f472b6a6 195deg, #facc158c 255deg, #22d3eea6 310deg, transparent 360deg);opacity:.5;animation-play-state:running}.article-card.flash-card:hover:before{opacity:1}.article-card.flash-card .thumb-placeholder{background:radial-gradient(circle at 30% 30%,#ffffff47,#0000 52%) 0 0/100% 100%,linear-gradient(135deg,#22d3ee,#a78bfa 34%,#f472b6 66%,#facc15) 0 0/220% 220%;animation:9s ease-in-out infinite alternate flash-holo-shift}@keyframes flash-holo-shift{0%{background-position:0 0,0 0}to{background-position:0 0,100% 100%}}.article-card.flash-card:hover{border-color:#a78bfa73;box-shadow:0 16px 40px #00000029,0 0 0 1px #a78bfa4d,0 0 30px #22d3ee33,0 0 46px #f472b624}.article-card .flash-shine,.article-card .flash-sparkle,.article-card .flash-glare{pointer-events:none;opacity:0;border-radius:18px;transition:opacity .35s;position:absolute;inset:0}.article-card.flash-card:hover .flash-shine,.article-card.flash-card:hover .flash-sparkle,.article-card.flash-card:hover .flash-glare{opacity:1}.article-card .flash-shine{z-index:2;background:linear-gradient(110deg,#0000 16%,#ff00842e 33%,#ffd6002e 41%,#00ffbe2e 49%,#0099ff2e 57%,#be00ff2e 65%,#0000 84%) 0 0/260% 260%;background-position:var(--mx,50%) var(--my,50%);mix-blend-mode:overlay}.article-card .flash-sparkle{z-index:3;mix-blend-mode:overlay;-webkit-mask-image:radial-gradient(120px circle at var(--mx,50%) var(--my,50%), #000 0%, transparent 70%);-webkit-mask-image:radial-gradient(120px circle at var(--mx,50%) var(--my,50%), #000 0%, transparent 70%);mask-image:radial-gradient(120px circle at var(--mx,50%) var(--my,50%), #000 0%, transparent 70%);background-image:radial-gradient(circle,#fffffff2 .8px,#0000 1.5px),radial-gradient(circle,#fffc .7px,#0000 1.3px);background-position:0 0,5px 6px;background-size:14px 14px,9px 9px}.article-card .flash-glare{z-index:4;background:radial-gradient(140px circle at var(--mx,50%) var(--my,50%), #ffffff59 0%, #ffffff1f 34%, transparent 62%);mix-blend-mode:screen}.article-card .flash-holo{z-index:1;pointer-events:none;border-radius:inherit;opacity:0;background-blend-mode:luminosity, soft-light;background-image:linear-gradient(-45deg,#6e50ffe6,#00beffe6),repeating-linear-gradient(-35deg,#ff008499 0%,#ffd60099 7%,#00ffbe99 14%,#09f9 21%,#be00ff99 28%,#ff008499 35%);background-size:200% 200%,300% 300%;background-position:calc(25% + var(--mx,50%) / 2) calc(25% + var(--my,50%) / 2), calc(25% + var(--mx,50%) / 2) calc(25% + var(--my,50%) / 2);filter:brightness(.55)contrast(1.35)saturate(.85);mix-blend-mode:color-dodge;transition:opacity .35s;position:absolute;inset:0}.article-card.flash-card:hover .flash-holo{opacity:.55}.article-card.flash-card .card-thumb img{will-change:transform}.article-card.flash-card:hover .card-thumb img{transform:translate(calc((var(--mx,50%) - 50%) * -.07), calc((var(--my,50%) - 50%) * -.07)) scale(1.1);transition:transform .1s ease-out}.article-card.flash-card:hover .thumb-placeholder{transform:translate(calc((var(--mx,50%) - 50%) * -.05), calc((var(--my,50%) - 50%) * -.05)) scale(1.06)}@media (prefers-reduced-motion:reduce){.article-card.flash-card:before,.article-card.flash-card .thumb-placeholder{animation:none}.article-card .flash-shine,.article-card .flash-sparkle,.article-card .flash-glare{transition:none}.article-card.flash-card:hover .card-thumb img,.article-card.flash-card:hover .thumb-placeholder{transition:none;transform:none}.article-card .flash-holo{transition:none}}.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:18px;display:grid}@media (width<=1024px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.tool-grid{grid-template-columns:1fr}}.tool-card{--rx:0;--ry:0;--mx:50;--my:50;aspect-ratio:3/4;cursor:pointer;perspective:950px;display:block;position:relative}.tool-tilt{width:100%;height:100%;transform-style:preserve-3d;will-change:transform;transform:rotateX(calc(var(--rx) * 1deg)) rotateY(calc(var(--ry) * 1deg));transition:transform .2s ease-out;position:relative}.tool-deck{border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:16px;transition:border-color .3s,box-shadow .4s;position:absolute;inset:0;overflow:hidden;transform:translateZ(0)}.tool-card:hover .tool-deck{box-shadow:var(--card-shadow-hover), 0 0 0 1px #a78bfa40, 0 0 26px #22d3ee1f;border-color:#a78bfa66}.tool-deck:before{content:"";background:conic-gradient(from var(--border-angle), transparent 0deg, #22d3ee80 55deg, #a78bfa80 125deg, #f472b680 195deg, #facc1566 255deg, #22d3ee80 310deg, transparent 360deg);-webkit-mask-composite:xor;opacity:.45;pointer-events:none;border-radius:16px;padding:1.5px;animation:4.5s linear infinite border-rotate;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.tool-card:hover .tool-deck:before{opacity:1}.tool-spacer{display:none}.tool-bg{position:absolute;inset:0}.tool-bg img{object-fit:cover;object-position:center 72%;width:100%;height:100%;display:block}.tool-card.has-figure .tool-bg img{filter:brightness(.62)saturate(.75)}.tool-card.no-cover{--cov-h:210}.tool-card.no-cover .tool-bg{background:radial-gradient(circle at 32% 26%, hsla(var(--cov-h), 70%, 70%, .22), transparent 58%), linear-gradient(135deg, hsl(var(--cov-h) 34% 20%), hsl(calc(var(--cov-h) + 26) 38% 27%) 38%, hsl(calc(var(--cov-h) + 58) 36% 31%) 70%, hsl(calc(var(--cov-h) + 96) 32% 23%))}.tool-letter{color:#ffffffeb;text-shadow:0 8px 20px #0006;justify-content:center;align-items:center;font-size:56px;font-weight:800;display:flex;position:absolute;inset:0}.tool-figure{transform:translateZ(40px) rotateX(calc(var(--rx) * -.42deg)) rotateY(calc(var(--ry) * -.42deg)) scale(1.1) translate(calc((var(--mx,50) - 50) * -.15px), calc((var(--my,50) - 50) * -.12px));transform-origin:bottom;pointer-events:none;transition:transform .2s ease-out;position:absolute;inset:0}.tool-figure img{object-fit:contain;object-position:bottom center;opacity:0;width:100%;height:100%;transition:opacity .4s;position:absolute;inset:0}.tool-figure img.ready{opacity:1}.tool-figure .tool-letter{color:#fffffff0;text-shadow:0 10px 22px #00000073;font-size:64px;font-weight:800;position:absolute;bottom:12%;left:50%;translate:-50%}.tool-title{-webkit-line-clamp:2;transform:translateZ(62px) rotateX(calc(var(--rx) * -.58deg)) rotateY(calc(var(--ry) * -.58deg)) translate(calc((var(--mx,50) - 50) * .12px), calc((var(--my,50) - 50) * .1px));color:#0000;background-image:linear-gradient(100deg,#fff 0%,#cfe0ff 22%,#f2f6ff 36%,#e6dcff 50%,#c3b4ff 68%,#fff 84%,#dbe6ff 100%),linear-gradient(#00000080,#0000001a 55%,#0000);background-size:260% 100%,100% 100%;-webkit-background-clip:text,padding-box;background-clip:text,padding-box;background-position:calc(50% + (var(--mx,50) - 50) * 1.6%) 0, 0 0;filter:drop-shadow(0 2px 5px #000000a6);-webkit-box-orient:vertical;padding:14px 14px 24px;font-family:Noto Serif SC,STZhongsong,SimSun,serif;font-size:19px;font-weight:900;line-height:1.4;transition:transform .2s ease-out;display:-webkit-box;position:absolute;top:0;left:0;right:0;overflow:hidden}.tool-title:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--primary) 80%, transparent) 18%, #fff 50%, color-mix(in srgb, var(--glow-b) 80%, transparent) 82%, transparent);border-radius:2px;height:2px;position:absolute;bottom:8px;left:14px;right:14px;box-shadow:0 1px 4px #0006}.tool-foil{pointer-events:none;opacity:.7;background:linear-gradient(118deg, color-mix(in srgb, var(--primary) 30%, transparent), color-mix(in srgb, var(--glow-b) 16%, transparent) 45%, #ffffff0f 70%);mix-blend-mode:overlay;border-radius:16px;position:absolute;inset:0;transform:translateZ(45px)}.tool-bg:before{content:"";border-radius:inherit;pointer-events:none;opacity:0;background-image:linear-gradient(var(--holo-angle,110deg), #9233ff 0%, #ff38f2 10%, #ff387a 20%, #ff6d38 30%, #ffe438 40%, #a0ff33 50%, #33ff41 60%, #3fb 70%, #38caff 80%, #3853ff 90%, #9233ff 100%);background-size:var(--holo-scale,260%) var(--holo-scale,260%);background-position:calc(50% + var(--ry,0) * 2.6%) calc(50% + var(--rx,0) * 2.6%);filter:brightness(1.04) contrast(1.05) saturate(1.4) hue-rotate(var(--holo-hue,0deg));mix-blend-mode:overlay;transition:opacity .3s;position:absolute;inset:0}.tool-card:hover .tool-bg:before{opacity:.8}.tool-card.shine-1{--holo-angle:110deg;--holo-hue:0deg;--holo-scale:400%}.tool-card.shine-2{--holo-angle:96deg;--holo-hue:45deg;--holo-scale:360%}.tool-card.shine-3{--holo-angle:124deg;--holo-hue:-40deg;--holo-scale:440%}.tool-card.shine-4{--holo-angle:84deg;--holo-hue:90deg;--holo-scale:380%}.tool-card.shine-5{--holo-angle:138deg;--holo-hue:-80deg;--holo-scale:420%}.tool-card.is-tcg .tool-deck{border:1px solid var(--deck-edge);background:var(--surface);box-shadow:var(--card-shadow), inset 0 1px 0 #ffffff1a;border-radius:16px;transition:border-color .3s,box-shadow .4s}.tool-card.is-tcg .tool-deck:before{background:var(--deck-ring);opacity:.55;z-index:2;padding:1px;animation:none}.tool-card.is-tcg:hover .tool-deck{border-color:color-mix(in srgb, var(--primary) 50%, var(--deck-edge));box-shadow:var(--card-shadow-hover), 0 0 28px color-mix(in srgb, var(--primary) 16%, transparent), inset 0 1px 0 #ffffff1f}.tool-card.is-tcg:hover .tool-deck:before{opacity:1}.tool-card.is-tcg .tool-bg{border:none;border-radius:8px 8px 0 0;inset:12px 12px 55%;overflow:hidden;box-shadow:inset 0 2px 14px #0000008c,inset 0 0 0 1px #ffffff0f}.tool-card.is-tcg .tool-bg img,.tool-card.is-tcg .tool-letter{border-radius:0}.tool-card.is-tcg .tool-figure{clip-path:inset(12px 12px 55%)}.tool-card.is-tcg .tool-info{background:color-mix(in srgb, var(--surface) 90%, #fff);border-radius:0 0 8px 8px;grid-auto-rows:max-content;align-content:space-evenly;height:calc(55% - 12px);padding:0 14px;display:grid;position:absolute;bottom:12px;left:12px;right:12px;overflow:hidden;box-shadow:inset 0 1px #ffffff0f,inset 0 0 0 1px #ffffff0a}.tool-card.is-tcg .tcg-name{letter-spacing:.1px;color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-family:inherit;font-size:18px;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.tool-card.is-tcg .tcg-summary{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.6;display:-webkit-box;overflow:hidden}.tool-card.is-tcg .tcg-row{align-items:center;gap:6px;display:flex;overflow:hidden}.tool-card.is-tcg .tcg-tag{color:var(--primary);background:color-mix(in srgb, var(--primary) 13%, transparent);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);white-space:nowrap;border-radius:999px;flex:none;padding:4px 10px;font-size:10.5px;line-height:1}.tool-card.is-tcg a.tcg-tag{cursor:pointer;text-decoration:none;transition:background .18s,border-color .18s,box-shadow .18s}.tool-card.is-tcg a.tcg-tag:hover{background:color-mix(in srgb, var(--primary) 30%, transparent);border-color:color-mix(in srgb, var(--primary) 62%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 16%, transparent)}.tool-card.is-tcg a.tcg-tag:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tool-grid.same-cat .tool-card.is-tcg .tcg-tag.cat{display:none}.tool-card.is-tcg .tcg-meta{color:var(--muted);white-space:nowrap;align-items:center;gap:3px;margin-left:auto;font-size:10px;display:inline-flex}.tool-card:hover{z-index:6}.tool-card:hover .tool-tilt{transform:rotateX(calc(var(--rx) * 1deg)) rotateY(calc(var(--ry) * 1deg)) translateY(-4px)}@media (prefers-reduced-motion:reduce){.tool-deck:before{animation:none}.tool-tilt,.tool-figure,.tool-title{transition:none;transform:none!important}}@keyframes border-rotate{to{--border-angle:360deg}}.article-card .title{color:var(--text);letter-spacing:.2px;margin:0 0 8px;font-size:20px;font-weight:800;line-height:1.4;transition:color .25s}.article-card:hover .title{color:var(--c-a)}.article-card .summary{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 12px;font-size:15px;display:-webkit-box;overflow:hidden}.card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag-link{white-space:nowrap;height:22px;color:var(--text);background:color-mix(in srgb, var(--muted) 18%, transparent);border-radius:6px;align-items:center;padding:0 8px;font-size:12px;line-height:1;transition:background-color .2s,color .2s,transform .2s;display:inline-flex}.tag-link:hover{color:var(--primary);background:var(--primary-weak);transform:translateY(-1px)}.tag-link.cat-link{color:var(--primary);background:var(--primary-weak)}.tag-link.cat-link:hover{color:#fff;background:linear-gradient(135deg, var(--primary), var(--glow-b))}.card-meta .date{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:13.5px}.card-meta .views{color:var(--muted);white-space:nowrap;align-items:center;gap:4px;margin-left:auto;font-size:13.5px;display:inline-flex}.card-meta .views+.date{margin-left:10px}.updated-badge{color:#f59e0b;white-space:nowrap;background:#f59e0b24;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:12.5px;font-weight:700}.list-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.result-count{color:var(--muted);margin-left:auto;font-size:13px}.page-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.imp-strong{color:#f59e0b;font-size:1.2em;font-weight:800}.imp-red{color:#ef4444;font-weight:700}html.dark .imp-red{color:#f87171}.imp-blue{color:var(--primary);font-weight:700}.imp-lg{font-size:1.28em;font-weight:800}.skeleton-card{pointer-events:none;cursor:default}.skeleton-card:hover{border-color:var(--border);box-shadow:none;transform:none}.skeleton-card:before,.skeleton-card:after{display:none}.sk-line{background:linear-gradient(90deg, var(--surface2) 30%, color-mix(in srgb, var(--muted) 7%, var(--surface2)) 50%, var(--surface2) 70%);background-size:200% 100%;border-radius:6px;height:22px;animation:1.8s ease-in-out infinite sk-shimmer}.sk-title{width:60%;height:28px;margin-bottom:8px}.sk-thumb{background:linear-gradient(135deg, var(--surface2) 30%, color-mix(in srgb, var(--muted) 7%, var(--surface2)) 50%, var(--surface2) 70%);background-size:200% 100%;border-radius:13px;width:100%;height:100%;min-height:128px;animation:1.8s ease-in-out infinite sk-shimmer}.sk-summary{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.sk-row{margin:0}.sk-short{width:72%}.sk-chip{background:linear-gradient(90deg, var(--surface2) 30%, color-mix(in srgb, var(--muted) 7%, var(--surface2)) 50%, var(--surface2) 70%);background-size:200% 100%;border-radius:999px;width:54px;height:22px;animation:1.8s ease-in-out infinite sk-shimmer}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tool-card.skeleton-card{perspective:none}.tool-card.skeleton-card .sk-deck{border:1px solid var(--border);background:var(--surface);box-shadow:var(--card-shadow);border-radius:16px;position:absolute;inset:0;overflow:hidden}.tool-card.skeleton-card .sk-thumb{border-radius:8px 8px 0 0;width:auto;height:auto;min-height:0;position:absolute;inset:12px 12px 55%}.tool-card.skeleton-card .sk-panel{background:color-mix(in srgb, var(--surface) 90%, #fff);border-radius:0 0 8px 8px;flex-direction:column;gap:10px;height:calc(55% - 12px);padding:14px;display:flex;position:absolute;bottom:12px;left:12px;right:12px;overflow:hidden}.tool-card.skeleton-card .sk-panel .sk-title{width:76%;height:20px;margin:0}.tool-card.skeleton-card .sk-panel .sk-row{height:12px}.tool-card.skeleton-card .sk-panel .sk-row.sk-short{width:64%}.tool-card.skeleton-card .sk-chips{gap:6px;margin-top:auto;display:flex}.tool-card.skeleton-card .sk-chips .sk-chip{width:46px;height:18px}.article-detail{max-width:760px;margin:0 auto;padding:24px 0}.article-detail h1{margin:0 0 10px;font-size:26px;line-height:1.35}.article-detail .content{font-size:15.5px}.article-detail .content img{border-radius:10px;height:auto;margin:12px auto;display:block;max-width:min(520px,100%)!important}.article-detail .content pre{background:var(--surface2);border-radius:10px;padding:12px;overflow-x:auto}.reveal{transition:opacity .7s,transform .7s,background-color .3s,border-color .3s,color .3s}.reveal.reveal-hide{opacity:0;transform:translateY(26px)}.reveal.visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{transition:none}.reveal.reveal-hide{opacity:1;transform:none}}.back-btn{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 82%, transparent);height:28px;color:var(--muted);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:0 11px 0 8px;font-family:inherit;font-size:13px;line-height:1;transition:color .2s,border-color .2s,background-color .2s,transform .2s;display:inline-flex}.back-btn:hover{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 45%, transparent);background:var(--primary-weak);transform:translate(-2px)}.back-btn:active{transform:translate(-2px)scale(.96)}.title-line{flex-wrap:wrap;align-items:center;gap:10px;margin:26px 0 6px;display:flex}.title-line>.page-title{margin:0}.cancel-btn{border:1px dashed color-mix(in srgb, var(--muted) 45%, transparent);height:28px;color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-family:inherit;font-size:13px;line-height:1;transition:color .2s,border-color .2s,background-color .2s,transform .2s;display:inline-flex}.cancel-btn:hover{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 50%, transparent);background:var(--primary-weak)}.cancel-btn:active{transform:scale(.96)}.hero-title-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hero-title-line h1{margin:0}.page-title{margin:26px 0 6px;font-size:20px;font-weight:700}.section-block{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin:12px 0;padding:16px 18px}.pagination-row{justify-content:center;margin:22px 0 40px;display:flex}.pager{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:blur(10px);box-shadow:0 8px 24px color-mix(in srgb, var(--primary) 7%, transparent);border-radius:999px;align-items:center;gap:6px;padding:6px;display:inline-flex}.pager-btn,.pager-num{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:14px;transition:background-color .25s,color .25s,transform .2s,box-shadow .25s;display:inline-flex}.pager-btn:hover:not(:disabled),.pager-num:hover:not(.current){background:var(--primary-weak);color:var(--primary)}.pager-btn:active:not(:disabled),.pager-num:active:not(.current){transform:scale(.92)}.pager-btn:disabled{color:var(--muted);opacity:.45;cursor:not-allowed}.pager-num.current{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 62%, transparent), color-mix(in srgb, var(--glow-b) 62%, transparent));-webkit-backdrop-filter:blur(10px)saturate(1.5);color:#fff;box-shadow:inset 0 1px 0 #ffffff38, 0 4px 14px color-mix(in srgb, var(--primary) 32%, transparent);border:1px solid #ffffff4d;font-weight:700}.pager-ellipsis{width:24px;height:32px;color:var(--muted);pointer-events:none;background:0 0;border:none;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.empty-tip{color:var(--muted);text-align:center;padding:60px 0}.app-shell.has-fixed-footer{padding-bottom:54px}.site-footer{z-index:40;border-top:1px solid color-mix(in srgb, var(--border) 80%, transparent);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.4);box-shadow:0 -6px 20px color-mix(in srgb, var(--primary) 6%, transparent);padding:7px 0 calc(7px + env(safe-area-inset-bottom,0px));position:fixed;bottom:0;left:0;right:0}.site-footer-inner{text-align:center;flex-flow:wrap;justify-content:center;align-items:center;gap:12px;display:flex}@media (width<=640px){.app-shell.has-fixed-footer{padding-bottom:56px}.site-footer{padding:5px 0 calc(5px + env(safe-area-inset-bottom,0px))}.site-footer-links{gap:8px}.site-footer-copy{display:none}.site-footer-links{row-gap:2px;font-size:12px}}.legal-page{max-width:860px;padding:30px 20px 48px}.legal-title{color:var(--text);letter-spacing:.3px;margin:0 0 6px;font-size:26px;font-weight:800}.legal-meta{color:var(--muted);margin:0 0 18px;font-size:13px}.legal-intro{color:var(--text);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:0 12px 12px 0;margin:0 0 8px;padding:14px 16px;font-size:15px;line-height:1.9}.legal-section{margin-top:24px}.legal-section h2{color:var(--text);border-left:3px solid color-mix(in srgb, var(--primary) 70%, transparent);margin:0 0 8px;padding-left:10px;font-size:17px;font-weight:700;line-height:1.4}.legal-section p{color:var(--text);margin:0 0 8px;font-size:15px;line-height:1.9}.legal-section ul{margin:0 0 8px;padding-left:22px}.legal-section li{color:var(--text);margin-bottom:5px;font-size:15px;line-height:1.9}.legal-tip{background:var(--warn-bg);border:1px solid color-mix(in srgb, var(--warn-border) 32%, transparent);border-left:3px solid var(--warn-border);color:var(--warn-text);border-radius:0 10px 10px 0;margin:10px 0 0;padding:10px 14px;font-size:14px;line-height:1.8}.legal-foot{border-top:1px solid var(--border);margin-top:32px;padding-top:18px}@media (width<=640px){.legal-page{padding:20px 16px 40px}.legal-title{font-size:22px}.legal-section p,.legal-section li{font-size:14.5px}}.site-footer-links{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.site-footer-links a{color:var(--muted);transition:color .2s}.site-footer-links a:hover{color:var(--primary)}.site-footer-links .beian-link{letter-spacing:.3px;font-weight:600}.site-footer-links .beian-link:hover{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.site-footer-links .sep{opacity:.5}.site-footer-copy{color:var(--muted);opacity:.82;font-size:12.5px}.admin-shell{background:var(--bg);min-height:100vh;display:flex}.admin-sider{background:var(--surface);border-right:1px solid var(--border);z-index:30;flex-direction:column;flex-shrink:0;align-self:flex-start;width:236px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.admin-brand{color:var(--text);align-items:center;gap:10px;padding:4px 6px 18px;display:flex}.admin-logo{color:#fff;background:linear-gradient(135deg, var(--primary), var(--glow-b));width:36px;height:36px;box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 38%, transparent);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.admin-brand-text{letter-spacing:.3px;flex-direction:column;font-size:15px;font-weight:800;line-height:1.25;display:flex}.admin-brand-sub{letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;font-size:11.5px;font-weight:600}.admin-nav{flex-direction:column;flex:1;gap:4px;padding-top:6px;display:flex;overflow-y:auto}.admin-nav-group{letter-spacing:1px;color:var(--muted);padding:14px 12px 6px;font-size:11.5px;font-weight:700}.admin-nav-item{color:var(--text);cursor:pointer;border-radius:11px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;transition:background-color .2s,color .2s,transform .2s,box-shadow .2s;display:flex;position:relative}.admin-nav-item:hover{background:var(--surface2);color:var(--primary)}.admin-nav-item.active{color:#fff;background:linear-gradient(135deg, var(--primary), var(--glow-b));box-shadow:0 8px 20px color-mix(in srgb, var(--primary) 30%, transparent)}.admin-nav-icon{flex-shrink:0;width:18px;height:18px;display:inline-flex}.admin-nav-icon svg{width:18px;height:18px}.admin-nav-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.admin-nav-badge{text-align:center;color:#fff;min-width:18px;height:18px;box-shadow:0 0 0 2px var(--surface);background:#ef4444;border-radius:999px;padding:0 5px;font-size:11.5px;font-weight:700;line-height:18px}.admin-nav-item.active .admin-nav-badge{box-shadow:none;background:#ffffff47}.admin-sider-foot{border-top:1px solid var(--border);margin-top:10px;padding-top:12px}.admin-main{flex-direction:column;flex:1;min-width:0;display:flex}.admin-topbar{z-index:20;background:color-mix(in srgb, var(--surface) 78%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.5);border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);align-items:center;gap:14px;padding:12px 22px;display:flex;position:sticky;top:0}.admin-topbar-left{min-width:0}.admin-page-title{letter-spacing:.3px;color:var(--text);margin:0;font-size:18px;font-weight:800}.admin-page-sub{color:var(--muted);margin:1px 0 0;font-size:12.5px}.admin-topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.admin-icon-btn{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .2s,color .2s,background-color .2s;display:inline-flex}.admin-icon-btn:hover{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 48%, transparent);background:var(--primary-weak)}.admin-burger{display:none}.admin-user{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:9px;padding:5px 10px 5px 5px;transition:border-color .2s,box-shadow .2s;display:flex}.admin-user:hover{border-color:color-mix(in srgb, var(--primary) 45%, transparent);box-shadow:0 6px 16px color-mix(in srgb, var(--primary) 14%, transparent)}.admin-avatar{color:#fff;background:linear-gradient(135deg, var(--primary), var(--glow-b));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:inline-flex}.admin-user-info{flex-direction:column;line-height:1.2;display:flex}.admin-user-info b{color:var(--text);font-size:13px}.admin-user-info span{color:var(--muted);font-size:11px}.admin-content{flex:1;width:100%;max-width:1320px;padding:20px 22px 40px}.admin-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 20px}.admin-panel+.admin-panel{margin-top:16px}.admin-panel-title{color:var(--text);align-items:center;gap:8px;margin:0 0 14px;font-size:15px;font-weight:700;display:flex}.admin-panel-title .dot{background:linear-gradient(180deg, var(--primary), var(--glow-b));border-radius:3px;width:6px;height:16px}.admin-panel-hint{color:var(--muted);margin-left:auto;font-size:12.5px;font-weight:400}.admin-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;display:flex}.admin-toolbar .spacer{flex:1}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}@media (width<=1200px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px 18px;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s,border-color .3s;position:relative;overflow:hidden}.stat-card:after{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--sc,var(--primary)) 20%, transparent), transparent 70%);opacity:.75;pointer-events:none;border-radius:50%;width:110px;height:110px;position:absolute;top:-30px;right:-30px}.stat-card:hover{border-color:color-mix(in srgb, var(--sc,var(--primary)) 45%, var(--border));box-shadow:0 14px 30px color-mix(in srgb, var(--sc,var(--primary)) 16%, transparent);transform:translateY(-4px)}.stat-head{color:var(--muted);align-items:center;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.stat-icon{color:#fff;background:linear-gradient(135deg, var(--sc,var(--primary)), color-mix(in srgb, var(--sc,var(--primary)) 55%, #fff));border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.stat-icon svg{width:15px;height:15px}.stat-value{letter-spacing:-.5px;color:var(--text);font-variant-numeric:tabular-nums;font-size:27px;font-weight:800;line-height:1.1}.stat-foot{color:var(--muted);margin-top:4px;font-size:12px}.quick-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.quick-item{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:13px;align-items:center;gap:12px;padding:14px 15px;transition:transform .25s,border-color .25s,background-color .25s;display:flex}.quick-item:hover{border-color:color-mix(in srgb, var(--primary) 45%, transparent);background:var(--primary-weak);transform:translateY(-3px)}.quick-icon{width:34px;height:34px;color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, transparent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.quick-icon svg{width:18px;height:18px}.quick-text b{font-size:14px;font-weight:700;display:block}.quick-text span{color:var(--muted);font-size:12px}.admin-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:6px 8px 12px;overflow:hidden}.admin-table-wrap .n-data-table .n-data-table-th{font-weight:700}.cell-cover{object-fit:cover;background:var(--surface2);border:1px solid var(--border);border-radius:8px;width:46px;height:34px;display:block}.cell-cover-ph{color:#fff;background:linear-gradient(135deg, var(--c-a), var(--c-b));border-radius:8px;justify-content:center;align-items:center;width:46px;height:34px;font-size:13px;font-weight:800;display:flex}.cell-title{color:var(--text);font-weight:600}.cell-sub{color:var(--muted);font-size:12px}.cell-mono{font-variant-numeric:tabular-nums;color:var(--muted)}.cell-sched{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.cell-sched .cell-sub{font-variant-numeric:tabular-nums}.batch-bar{border:1px solid color-mix(in srgb, var(--primary) 35%, var(--border));background:var(--primary-weak);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;animation:.24s batchIn;display:flex}@keyframes batchIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.batch-bar b{color:var(--primary);font-size:13.5px}.admin-empty{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:54px 20px;display:flex}.admin-empty svg{opacity:.5}.admin-empty p{margin:0;font-size:14px}.form-block{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 20px}.form-block+.form-block{margin-top:16px}.form-block-head{color:var(--text);border-bottom:1px dashed var(--border);align-items:center;gap:8px;margin-bottom:14px;padding-bottom:12px;font-size:14px;font-weight:700;display:flex}.form-block-head .dot{background:linear-gradient(180deg, var(--primary), var(--glow-b));border-radius:3px;width:5px;height:14px}.sticky-actions{z-index:15;border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);box-shadow:0 -6px 22px color-mix(in srgb, var(--primary) 8%, transparent);border-radius:14px;align-items:center;gap:10px;margin-top:16px;padding:12px 16px;display:flex;position:sticky;bottom:0}.sticky-actions .spacer{flex:1}.cover-row{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.cover-preview{border:1px dashed var(--border);background:var(--surface2);width:168px;height:112px;color:var(--muted);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex;overflow:hidden}.cover-preview img{object-fit:cover;width:100%;height:100%}.cover-presets{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.cover-preset{object-fit:cover;cursor:pointer;border:2px solid #0000;border-radius:8px;width:52px;height:36px;transition:transform .2s,border-color .2s}.cover-preset:hover{transform:translateY(-2px)}.cover-preset.active{border-color:var(--primary)}.tag-chips{flex-wrap:wrap;gap:7px;margin-top:8px;display:flex}.tag-chip{cursor:pointer;color:var(--muted);border:1px solid var(--border);background:var(--surface2);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12.5px;transition:all .2s;display:inline-flex}.tag-chip:hover{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 45%, transparent)}.tag-chip.on{color:#fff;background:linear-gradient(135deg, var(--primary), var(--glow-b));border-color:#0000}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:14px;display:grid}.cat-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s,border-color .28s;position:relative}.cat-card:hover{border-color:color-mix(in srgb, var(--primary) 42%, var(--border));box-shadow:0 14px 30px color-mix(in srgb, var(--primary) 14%, transparent);transform:translateY(-4px)}.cat-card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.cat-name{color:var(--text);font-size:16px;font-weight:800}.cat-slug{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.cat-count{align-items:baseline;gap:5px;margin-top:12px;display:inline-flex}.cat-count b{color:var(--primary);font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.cat-count span{color:var(--muted);font-size:12px}.cat-actions{border-top:1px dashed var(--border);gap:6px;margin-top:12px;padding-top:10px;display:flex}.cmt-item{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;transition:border-color .25s,box-shadow .25s}.cmt-item+.cmt-item{margin-top:10px}.cmt-item:hover{border-color:color-mix(in srgb, var(--primary) 38%, var(--border));box-shadow:0 8px 22px color-mix(in srgb, var(--primary) 10%, transparent)}.cmt-head{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:8px;display:flex}.cmt-avatar{color:#fff;background:linear-gradient(135deg, var(--c-a), var(--c-b));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:800;display:inline-flex}.cmt-nick{color:var(--text);font-size:13.5px;font-weight:700}.cmt-time{color:var(--muted);margin-left:auto;font-size:12px}.cmt-body{color:var(--text);word-break:break-word;font-size:14px;line-height:1.65}.cmt-art{color:var(--muted);margin-top:8px;font-size:12.5px}.cmt-art b{color:var(--primary);font-weight:600}.cmt-foot{align-items:center;gap:8px;margin-top:12px;display:flex}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-wrap:before,.login-wrap:after{content:"";filter:blur(70px);pointer-events:none;border-radius:50%;position:absolute}.login-blob-a{filter:blur(90px);opacity:.5;background:radial-gradient(circle, color-mix(in srgb, var(--primary) 55%, transparent), transparent 70%);pointer-events:none;border-radius:50%;width:420px;height:420px;position:absolute;top:-80px;left:-80px}.login-blob-b{filter:blur(90px);opacity:.42;background:radial-gradient(circle, color-mix(in srgb, var(--glow-b) 55%, transparent), transparent 70%);pointer-events:none;border-radius:50%;width:460px;height:460px;position:absolute;bottom:-120px;right:-120px}.login-card{z-index:2;border:1px solid color-mix(in srgb, var(--border) 80%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(22px)saturate(1.5);width:384px;max-width:100%;box-shadow:0 26px 60px color-mix(in srgb, var(--primary) 16%, transparent);border-radius:20px;padding:30px 28px 26px;position:relative}.login-head{text-align:center;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px;display:flex}.login-logo{color:#fff;background:linear-gradient(135deg, var(--primary), var(--glow-b));width:54px;height:54px;box-shadow:0 10px 26px color-mix(in srgb, var(--primary) 42%, transparent);border-radius:16px;justify-content:center;align-items:center;display:inline-flex}.login-title{color:var(--text);margin:0;font-size:19px;font-weight:800}.login-sub{color:var(--muted);margin:0;font-size:13px}.login-foot{text-align:center;color:var(--muted);margin-top:16px;font-size:12px}.admin-sider-mask{display:none}@media (width<=980px){.admin-sider{transition:transform .28s cubic-bezier(.22,1,.36,1);position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:0 0 60px #00000047}.admin-sider.open{transform:translate(0)}.admin-sider-mask{z-index:25;background:#0000006b;animation:.2s batchIn;display:block;position:fixed;inset:0}.admin-burger{display:inline-flex}.admin-content{padding:16px 14px 40px}.admin-topbar{padding:10px 14px}.admin-user-info{display:none}}@media (width<=640px){.stat-grid{grid-template-columns:1fr}.admin-page-sub{display:none}}.tool-article-footer[data-v-a9209ef2]{border-top:1px solid var(--border);margin-top:44px;padding-top:24px}.taf-inner[data-v-a9209ef2]{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:880px;margin:0 auto;padding:16px 20px;display:flex}.taf-declare[data-v-a9209ef2]{color:var(--muted);margin:0;font-size:13.5px}.taf-link[data-v-a9209ef2]{background:linear-gradient(135deg, var(--primary), var(--glow-b));color:#fff;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-size:13.5px;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.taf-link[data-v-a9209ef2]:hover{opacity:.92}.taf-note[data-v-a9209ef2]{color:var(--muted);margin:0;font-size:12.5px}@media (width<=560px){.taf-inner[data-v-a9209ef2]{flex-direction:column;align-items:flex-start}}
