:root{--ink:#14243b;--muted:#64748b;--blue:#285fee;--line:#e4eaf2;--paper:#fff;--bg:#f5f7fb;--soft:#eef3ff;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8cb1ff;outline-offset:3px}a:hover{color:var(--blue)}.skip{position:absolute;top:-60px;left:20px;background:#fff;padding:12px;z-index:99}.skip:focus{top:12px}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line)}.top-inner{max-width:1400px;margin:auto;padding:0 32px;height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:inline-flex;align-items:center;gap:12px;font-size:18px;font-weight:750;letter-spacing:.02em}.brandmark{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:var(--ink);color:#fff;font-size:18px}.top-nav{display:flex;gap:24px;align-items:center;font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:#fff;font-size:14px;white-space:nowrap}.btn:hover{border-color:#afc2f5;color:var(--blue)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn:disabled{opacity:.45;cursor:default}.shell{max-width:1400px;margin:auto;padding:38px 32px 56px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:32px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--blue);margin:0 0 10px}h1{font-size:34px;line-height:1.35;letter-spacing:-.025em;margin:0 0 13px;font-weight:760}.lead{color:var(--muted);font-size:15px;line-height:1.85;margin:0;max-width:690px}.stats{display:flex;gap:30px;flex-shrink:0;padding-bottom:3px}.stat strong{display:block;font-size:27px;line-height:1.3;font-weight:730}.stat span{font-size:12px;color:var(--muted)}.workspace{display:grid;grid-template-columns:224px minmax(0,1fr);gap:26px;align-items:start}.sidebar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 14px;position:sticky;top:22px}.side-title{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.1em;padding:0 12px;margin:0 0 12px}.tech-nav{display:flex;flex-direction:column;gap:4px}.tech-link{display:flex;align-items:center;justify-content:space-between;border-radius:8px;padding:10px 12px;font-size:14px}.tech-link .count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.tech-link.active{background:var(--soft);color:var(--blue);font-weight:650}.tech-link.active .count{color:var(--blue)}.side-note{font-size:12px;line-height:1.8;color:var(--muted);border-top:1px solid var(--line);padding:15px 12px 0;margin:15px 0 0}.main-col{min-width:0}.filter-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:24px}.search-row{display:flex;gap:10px}.search-field{flex:1;min-width:0;position:relative}.search-field svg{position:absolute;left:15px;top:14px;color:#7a8da6}.search-field input{width:100%;height:47px;border:1px solid #dce3ec;border-radius:9px;background:#fbfcfe;padding:0 15px 0 43px;font-size:14px;color:var(--ink)}.search-field input::placeholder{color:#8694a8}.filter-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-top:17px;font-size:13px;color:var(--muted)}.filter-row select{border:1px solid var(--line);border-radius:7px;padding:7px 24px 7px 10px;background:#fff;color:var(--ink);max-width:100%}.check-label{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}input[type=checkbox]{accent-color:var(--blue);width:15px;height:15px}.text-button{border:none;background:none;padding:5px 0;color:var(--blue);font-size:13px}.results-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.results-head h2{font-size:18px;margin:0}.result-count{font-size:13px;font-weight:400;color:var(--muted);margin-left:10px}.page-size{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:8px}.page-size select{background:none;border:1px solid var(--line);border-radius:6px;padding:5px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.project-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:21px 22px;min-width:0;transition:border-color .15s,box-shadow .15s}.project-card:hover{border-color:#c4d1e7;box-shadow:0 5px 20px #14243b07}.card-top{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.tag{display:inline-flex;font-size:11px;line-height:1.4;padding:4px 8px;border-radius:5px;background:#f0f3f7;color:#56667c;max-width:100%;overflow-wrap:anywhere}.tag.tech{background:var(--soft);color:var(--blue)}.tag.paper{background:#eaf7ef;color:#25704b}.tag.directory{background:#faf0e8;color:#986033}.project-card h3{font-size:17px;line-height:1.65;font-weight:680;margin:0 0 10px;overflow-wrap:anywhere}.project-id{font-size:12px;color:var(--muted);margin:0 0 12px}.card-excerpt{color:#58677a;font-size:13px;line-height:1.9;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #edf0f5;padding-top:12px;font-size:12px}.card-bottom span{color:var(--muted)}.detail-link{color:var(--blue);font-weight:600}.pagination{display:flex;justify-content:center;align-items:center;gap:7px;margin:28px 0;flex-wrap:wrap}.page-btn{min-width:36px;height:36px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--muted);padding:0 10px;font-size:13px}.page-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}.page-btn:disabled{opacity:.45;cursor:default}.page-summary{text-align:center;font-size:12px;color:var(--muted);margin:0 0 26px}.empty{padding:65px 25px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:12px;grid-column:1/-1}.empty h3{font-size:18px;margin-top:0}.empty p{font-size:14px;color:var(--muted)}.catalogue-note{padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.9}.catalogue-note summary{cursor:pointer;color:#405777;font-size:13px;margin-bottom:7px}.catalogue-note p{margin:5px 0}.catalogue-note a{color:var(--blue)}.footer{border-top:1px solid var(--line);padding:24px 32px;background:#fff;color:var(--muted);font-size:12px;line-height:1.8}.footer-inner{max-width:1336px;margin:auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer a{color:#405777}.detail-shell{max-width:1040px;padding-top:30px}.breadcrumb{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:22px}.detail-article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:38px 44px}.detail-article h1{font-size:29px;line-height:1.65;margin:13px 0 15px;overflow-wrap:anywhere}.detail-meta{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--muted);padding-bottom:26px;border-bottom:1px solid var(--line);margin-bottom:27px}.detail-article h2{font-size:19px;margin:30px 0 13px}.intro-body{font-size:16px;line-height:2.1;color:#35465c;white-space:normal}.info-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin:0 0 23px}.info-row{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;display:flex;gap:15px;align-items:flex-start}.info-row dt{color:var(--muted);width:85px;flex-shrink:0}.info-row dd{margin:0;line-height:1.8;overflow-wrap:anywhere}.info-row.full{grid-column:1/-1}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:23px}.evidence{font-size:12px;color:var(--muted);line-height:1.9;margin:24px 0 0}.copy-status{font-size:12px;align-self:center;color:#25704b}.more-projects{margin-top:28px}.more-projects h2{font-size:18px;margin:0 0 15px}.category-list{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.category-row{padding:17px 22px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:20px}.category-row:last-child{border-bottom:none}.category-number{width:32px;color:#8998ab;font-size:12px;padding-top:5px;flex-shrink:0}.category-name{font-size:15px;line-height:1.8;flex:1}.category-data{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.download-note{font-size:12px;color:var(--muted);margin-top:10px}.noscript{padding:15px;background:#fff;margin-bottom:20px;font-size:14px;line-height:1.8}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1250px){.project-card{min-height:275px}}@media(max-width:1050px){.hero{align-items:flex-start}.stats{gap:20px}.stat strong{font-size:23px}.workspace{grid-template-columns:190px 1fr;gap:18px}.project-grid{grid-template-columns:1fr}.project-card{min-height:0}.shell{padding:28px 24px 40px}.top-inner{padding:0 24px}}
@media(max-width:720px){.topbar{height:66px}.top-inner{padding:0 18px}.brand{font-size:16px;gap:9px}.top-nav{gap:10px}.top-nav .nav-about{display:none}.top-nav .btn{font-size:12px;padding:8px 10px}.shell{padding:25px 18px 35px}.hero{display:block;margin-bottom:24px}h1{font-size:27px}.lead{font-size:14px}.stats{margin-top:21px;gap:27px}.stat strong{font-size:24px}.workspace{display:block}.sidebar{position:static;padding:13px;margin-bottom:18px}.side-title{padding-left:3px;margin-bottom:10px}.tech-nav{flex-direction:row;overflow-x:auto;padding:0 0 4px;gap:7px;scrollbar-width:thin}.tech-link{white-space:nowrap;gap:9px;padding:8px 10px;background:#f6f8fb;font-size:12px}.tech-link .count{font-size:10px}.side-note{display:none}.filter-panel{padding:15px;margin-bottom:20px}.search-row{gap:8px}.search-row>.btn{padding:10px 13px}.filter-row{gap:12px;font-size:12px}.filter-row label[for=catalogue]{display:none}.results-head h2{font-size:16px}.result-count{font-size:12px;margin-left:5px}.page-size>span{display:none}.project-card{padding:19px}.project-card h3{font-size:16px}.project-grid{gap:12px}.detail-article{padding:24px 21px;border-radius:12px}.detail-article h1{font-size:23px;line-height:1.7}.detail-meta{gap:9px 17px;font-size:12px;margin-bottom:20px;padding-bottom:20px}.intro-body{font-size:15px;line-height:2}.info-grid{grid-template-columns:1fr}.info-row{font-size:13px;gap:12px}.info-row dt{width:76px}.detail-actions>.btn{flex:1}.footer{padding:20px 18px}.category-row{padding:15px;gap:10px}.category-number{width:24px}.category-name{font-size:14px}}
.pricing-strip{display:flex;gap:30px;align-items:center;justify-content:space-between;background:#fff;border:1px solid #d8e3fa;border-radius:13px;padding:24px 28px;margin:0 0 28px}.price-kicker{display:block;color:var(--blue);font-size:12px;font-weight:650;letter-spacing:.04em;margin-bottom:7px}.pricing-strip strong{font-size:31px;color:var(--blue);line-height:1.35}.pricing-strip small{font-size:13px;font-weight:500;margin-left:7px;color:var(--muted)}.pricing-strip p{font-size:12px;line-height:1.8;color:var(--muted);margin:7px 0 0}.price-addons{display:flex;flex-direction:column;gap:9px;font-size:13px;color:#52637b}.price-addons b{color:var(--ink);font-weight:650;margin-left:8px}.price-cta p{text-align:center}.project-card .card-price{color:var(--blue);font-weight:650;font-size:14px}.detail-article .pricing-strip{flex-wrap:wrap;margin:24px 0 18px;padding:20px;gap:18px;background:#f8faff}.price-table{border-collapse:collapse;width:100%;font-size:14px;margin:18px 0}.price-table th,.price-table td{border:1px solid var(--line);padding:15px 17px;text-align:left;line-height:1.9}.price-table thead th{background:var(--soft);font-weight:650}.price-table tbody th{font-weight:500}.price-value{font-weight:650;color:var(--blue);white-space:nowrap}.price-explanation{font-size:13px;line-height:1.9;color:var(--muted)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:22px}.qq-contact,.wechat-contact{border:1px solid var(--line);border-radius:12px;padding:24px}.qq-contact h3{font-size:28px;letter-spacing:.01em;margin:15px 0;color:var(--ink)}.qq-contact p{font-size:14px;line-height:1.9;color:var(--muted)}.wechat-qr{display:block;width:100%;max-width:320px;height:auto;margin:12px auto 15px}.wechat-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;font-size:12px;color:var(--blue)}.wechat-tip{text-align:center;font-size:12px;color:var(--muted);line-height:1.9}.inquiry-project{font-size:14px;line-height:1.9;padding:15px 0;border-bottom:1px solid var(--line)}.inquiry-project a{color:var(--blue)}
@media(max-width:800px){.pricing-strip{flex-wrap:wrap;gap:20px;padding:20px}.price-cta{width:100%;display:flex;align-items:center;gap:15px}.price-cta p{margin:0}.contact-grid{grid-template-columns:1fr}.price-table th,.price-table td{padding:10px;font-size:12px}.qq-contact,.wechat-contact{padding:20px}.top-nav{font-size:12px}.wechat-qr{max-width:340px}.detail-article .pricing-strip .price-cta{display:block}.detail-article .pricing-strip .price-cta p{margin-top:8px}.detail-article .pricing-strip .price-cta .btn{width:100%}}
.tag.screenshot-link{background:#eaf4ff;color:#2360b6;font-weight:600}.tag.screenshot-link:hover{background:#dcecff}.gallery-shell{max-width:1260px}.gallery-shell h1{font-size:29px;line-height:1.7}.gallery-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}.gallery-nav a{font-size:12px;color:#405777;border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 13px}.screenshot-figure{margin:0 0 28px;background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;scroll-margin-top:25px}.screenshot-figure figcaption{display:flex;gap:13px;align-items:flex-start;font-size:14px;line-height:1.8;padding:18px 22px;border-bottom:1px solid var(--line)}.shot-number{font-size:12px;color:var(--blue);font-weight:650;padding-top:2px;flex-shrink:0}.screenshot-image-link{display:block;padding:15px;background:#f8fafd}.screenshot-image-link img{display:block;width:100%;height:auto;background:#fff}.shot-actions{font-size:12px;color:var(--blue);margin:0;padding:12px 22px;border-top:1px solid var(--line)}
@media(max-width:720px){.gallery-shell h1{font-size:23px}.gallery-shell .hero{display:block}.gallery-shell .hero>.btn{margin-top:15px}.screenshot-figure figcaption{padding:15px;font-size:13px}.screenshot-image-link{padding:6px}.shot-actions{padding:12px 15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
