*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:#0f172a;background:#d1d9e6;min-height:100dvh;margin:0;font-family:PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif}#root{min-height:100dvh}a{color:inherit}.app{--ink:#1c1917;--ink-muted:#78716c;--paper:#fafaf9;--line:#1c191714;--space:#be185d;--space-deep:#9f1239;--product:#a21caf;--product-deep:#86198f;--solution:#c45d0a;--solution-deep:#9e4800;background:radial-gradient(100% 85% at 88% -8%,#6366f124,#0000 52%),radial-gradient(85% 65% at 0 102%,#0ea5e91a,#0000 48%),radial-gradient(70% 50% at 50% 35%,#ffffff73,#0000 72%),linear-gradient(172deg,#e8edf5 0%,#dce4f0 45%,#cdd6e8 100%);max-width:440px;min-height:100dvh;margin:0 auto;box-shadow:0 0 0 1px #0f172a0f,0 24px 48px -28px #0f172a2e}.header{z-index:10;-webkit-backdrop-filter:blur(16px)saturate(1.15);backdrop-filter:blur(16px)saturate(1.15);background:linear-gradient(#f8fafce6 0%,#f8fafc80 82%,#0000 100%);padding:1.15rem 1.15rem 1.1rem;position:sticky;top:0;box-shadow:0 18px 36px -20px #0f172a24}.header-brand{justify-content:flex-start;align-items:center;width:100%;display:flex}.header-logo-row{flex-wrap:nowrap;align-items:center;gap:0;width:100%;max-width:100%;line-height:0;display:flex}.header-logo-slot{flex:0 0 50%;justify-content:center;align-items:center;width:50%;min-width:0;display:flex}.header-logo-slot--left{justify-content:flex-start}.header-logo-slot--left .header-logo-slot-inner{flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;width:100%;min-width:0;max-width:100%;display:flex}.header-logo-slot-inner .header-logo{box-sizing:border-box;-o-object-fit:contain;object-fit:contain;-o-object-position:left center;object-position:left center;flex:auto;width:auto;min-width:0;max-width:100%;height:auto;display:block}.header-logo-vline{background-color:#ff671f;border-radius:1px;flex:0 0 2px;align-self:stretch;width:2px;min-height:1rem;max-height:2.4rem;margin-right:10px;box-shadow:2px 0 4px #ff671f8c,5px 0 12px #ff671f38}.header-logo-slot>.header-logo{box-sizing:border-box;-o-object-fit:contain;object-fit:contain;-o-object-position:left center;object-position:left center;width:100%;max-width:100%;height:auto;display:block}.header-logo-row>.header-logo-slot:not(.header-logo-slot--left){justify-content:flex-start}.header+.error,.header+.loading,.header+.empty{margin-top:.65rem}.filters-hint{color:var(--ink-muted);margin:0 0 .55rem;font-size:.75rem;line-height:1.5}.filter-clear{color:var(--space);text-underline-offset:3px;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:.2rem 0;font-size:.6875rem;font-weight:600;text-decoration:underline}.filter-dock-sheet--product .filter-clear{color:var(--product)}.filter-dock-sheet--solution .filter-clear{color:var(--solution)}.filter-chips{flex-wrap:wrap;gap:.45rem;display:flex}.filter-chip{color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffffd1;border:1px solid #0f172a1a;border-radius:999px;padding:.42rem .72rem;font-size:.8125rem;transition:background .18s,border-color .18s,color .18s,box-shadow .18s}.filter-chip:hover{border-color:#0f172a24;box-shadow:0 2px 10px #0f172a0f}.filter-dock-sheet--space .filter-chip.on{background:linear-gradient(165deg, #e11d48 0%, var(--space-deep) 100%);color:#fff5f7;border-color:#0000;box-shadow:0 4px 14px #9f123959}.filter-dock-sheet--product .filter-chip.on{background:linear-gradient(165deg, #c026d3 0%, var(--product-deep) 100%);color:#fdf4ff;border-color:#0000;box-shadow:0 4px 14px #86198f59}.filter-dock-sheet--solution .filter-chip.on{background:linear-gradient(165deg, #e97818 0%, var(--solution-deep) 100%);color:#fffaf4;border-color:#0000;box-shadow:0 4px 14px #9e480052}.list{padding:1.15rem 1rem calc(2rem + 4.25rem + env(safe-area-inset-bottom,0px));flex-direction:column;gap:.85rem;display:flex}.filter-dock-backdrop{z-index:30;-webkit-backdrop-filter:blur(4px)saturate(.92);backdrop-filter:blur(4px)saturate(.92);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0f172a75;border:none;margin:0;padding:0;position:fixed;inset:0}.filter-dock{z-index:40;box-sizing:border-box;pointer-events:none;flex-direction:column;align-items:stretch;width:100%;max-width:440px;padding:0 1rem;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.filter-dock>*{pointer-events:auto}.filter-dock-sheet{opacity:0;background:#f8fafcf5;border:1px solid #ffffff8c;border-radius:22px 22px 18px 18px;width:100%;max-height:0;margin:0;transition:max-height .3s cubic-bezier(.33,1,.68,1),opacity .22s;overflow:hidden;box-shadow:inset 0 -1px #ffffffa6,0 -24px 48px #0f172a1a}.filter-dock-sheet-open{opacity:1;-webkit-overflow-scrolling:touch;max-height:min(52vh,400px);margin-bottom:.45rem;padding:1rem 1.05rem .85rem;overflow:hidden auto}.filter-dock-sheet--space.filter-dock-sheet-open{background:linear-gradient(#fce7f3 0%,#fafaf9fa 42%);border-color:#ffffff8c}.filter-dock-sheet--product.filter-dock-sheet-open{background:linear-gradient(#faf5ff 0%,#fafaf9fa 42%);border-color:#ffffff8c}.filter-dock-sheet--solution.filter-dock-sheet-open{background:linear-gradient(#fff4e8 0%,#fafaf9fa 42%);border-color:#ffffff8c}.filter-dock-sheet-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.filter-dock-sheet-title{color:var(--ink);letter-spacing:.04em;font-size:1rem;font-weight:700}.filter-dock-sheet-actions{flex-shrink:0;align-items:center;gap:.55rem;display:flex}.filter-dock-collapse{color:var(--ink-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffffb8;border:1px solid #0f172a1a;border-radius:999px;padding:.38rem .75rem;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.filter-dock-collapse:hover{color:var(--ink);background:#fffffff2}.filter-dock-bar{margin:0;margin-bottom:calc(.45rem + env(safe-area-inset-bottom,0px));box-shadow:none;background:0 0;border:none;gap:.5rem;padding:.2rem 0;display:flex}.filter-dock-tab{letter-spacing:.04em;cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:16px;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:3rem;padding:.45rem .35rem;font-size:.8125rem;font-weight:700;transition:transform .12s,box-shadow .2s,background .2s,color .2s;display:flex;position:relative}.filter-dock-tab:active{transform:scale(.97)}.filter-dock-tab--space{color:var(--space-deep);background:linear-gradient(165deg,#fff1f5 0%,#fbcfe8 100%);box-shadow:inset 0 1px #ffffffe6,0 1px 3px #9f12391a}.filter-dock-tab--space.has-value:not(.is-active){background:linear-gradient(165deg,#fce7f3 0%,#f9a8d4 100%);box-shadow:inset 0 0 0 1.5px #be185d61,inset 0 1px #ffffffd9,0 2px 8px #9f123924}.filter-dock-tab--space.is-active{color:#fff5f7;background:linear-gradient(165deg, #ec4899 0%, var(--space-deep) 100%);box-shadow:0 8px 22px #9f123959,inset 0 1px #ffffff38}.filter-dock-tab--product{color:var(--product-deep);background:linear-gradient(165deg,#fdf4ff 0%,#f5d0fe 100%);box-shadow:inset 0 1px #fffffff2,0 1px 3px #86198f1a}.filter-dock-tab--product.has-value:not(.is-active){background:linear-gradient(165deg,#fae8ff 0%,#f0abfc 100%);box-shadow:inset 0 0 0 1.5px #a21caf61,inset 0 1px #ffffffe6,0 2px 8px #86198f24}.filter-dock-tab--product.is-active{color:#fdf4ff;background:linear-gradient(165deg, #d946ef 0%, var(--product-deep) 100%);box-shadow:0 8px 22px #86198f59,inset 0 1px #fff3}.filter-dock-tab--solution{color:var(--solution-deep);background:linear-gradient(165deg,#fff8ef 0%,#fce8d4 100%);box-shadow:inset 0 1px #fffffff2,0 1px 3px #9e480014}.filter-dock-tab--solution.has-value:not(.is-active){background:linear-gradient(165deg,#ffecd8 0%,#f8dcc0 100%);box-shadow:inset 0 0 0 1.5px #c45d0a6b,inset 0 1px #ffffffe0,0 2px 8px #9e480024}.filter-dock-tab--solution.is-active{color:#fffaf4;background:linear-gradient(165deg, #f0922c 0%, var(--solution-deep) 100%);box-shadow:0 8px 22px #9e48005c,inset 0 1px #ffffff38}.filter-dock-tab-label{line-height:1.25}.filter-dock-tab-badge{text-align:center;min-width:1.05rem;height:1.05rem;color:var(--ink);background:#fffffff2;border-radius:999px;padding:0 .32rem;font-size:.625rem;font-weight:800;line-height:1.05rem;position:absolute;top:.28rem;right:.32rem;box-shadow:0 1px 4px #0f172a1f}.filter-dock-tab--space .filter-dock-tab-badge{color:var(--space-deep)}.filter-dock-tab--product .filter-dock-tab-badge{color:var(--product-deep)}.filter-dock-tab--solution .filter-dock-tab-badge{color:var(--solution-deep)}.filter-dock-tab.is-active .filter-dock-tab-badge{color:#fff;box-shadow:none;background:#ffffff38}.card{background:var(--paper);border:1px solid #ffffffb3;border-radius:18px;padding:1.05rem 1.05rem .95rem;box-shadow:inset 0 1px #fffffff2,0 8px 28px #0f172a12,0 2px 8px #0f172a0a}.card-meta{flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-bottom:.5rem;display:flex}.badge{color:#57534e;background:linear-gradient(#f5f5f4 0%,#e7e5e4 100%);border:1px solid #1c191714;border-radius:8px;padding:.22rem .48rem;font-size:.6875rem}.card-title{color:var(--ink);margin:0 0 .5rem;font-size:1.02rem;font-weight:600;line-height:1.45}.card-sub{color:var(--ink-muted);margin-bottom:.5rem;font-size:.8125rem}.tags{flex-wrap:wrap;gap:.35rem;margin:.5rem 0 .65rem;display:flex}.tag{color:#9f1239;background:#fce7f3;border:1px solid #9f123926;border-radius:999px;padding:.22rem .52rem;font-size:.6875rem}.tag.product{color:#701a75;background:#faf5ff;border-color:#701a752e}.tag.solution{color:#8a5c12;background:#fff8ee;border-color:#8a5c1226}.tag.platform{color:#44403c;background:#f5f5f4;border:1px solid #44403c33}.card-actions{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.45rem;padding-top:.45rem;display:grid}.card-actions:has(>a:only-child){grid-template-columns:1fr}.card-actions a{text-align:center;color:#fafaf9;word-break:break-word;background:linear-gradient(165deg,#57534e 0%,#292524 100%);border-radius:12px;padding:.58rem .65rem;font-size:.8125rem;font-weight:600;line-height:1.35;text-decoration:none;transition:transform .12s,box-shadow .18s;box-shadow:0 4px 16px #29252438}.card-actions a:hover{box-shadow:0 6px 20px #29252447}.card-actions a:active{transform:scale(.98)}.empty,.error{text-align:center;color:var(--ink-muted);padding:2rem 1rem;font-size:.875rem}.error{color:#b42a2a}.loading{text-align:center;color:var(--ink-muted);padding:1.75rem;font-size:.875rem}.filter-dock-tab--platform{color:#44403c;background:linear-gradient(165deg,#f5f5f4 0%,#e7e5e4 100%);box-shadow:inset 0 1px #fffffff2,0 1px 3px #44403c1a}.filter-dock-tab--platform.has-value:not(.is-active){background:linear-gradient(165deg,#e7e5e4 0%,#d6d3d1 100%);box-shadow:inset 0 0 0 1.5px #57534e59,inset 0 1px #ffffffe0,0 2px 8px #44403c1f}.filter-dock-tab--platform.is-active{color:#fafaf9;background:linear-gradient(165deg,#78716c 0%,#44403c 100%);box-shadow:0 8px 22px #44403c52,inset 0 1px #ffffff2e}.filter-dock-tab--platform .filter-dock-tab-badge{color:#44403c}.filter-dock-sheet--platform.filter-dock-sheet-open{background:linear-gradient(#f5f0eb 0%,#fafaf9fa 42%);border-color:#ffffff8c}.filter-dock-sheet--platform .filter-chip.on{color:#fafaf9;background:linear-gradient(165deg,#78716c 0%,#44403c 100%);border-color:#0000;box-shadow:0 4px 14px #44403c47}.filter-dock-sheet--platform .filter-clear{color:#57534e}.card-clickable{cursor:pointer;outline:none;transition:transform .12s,box-shadow .2s}.card-clickable:hover{box-shadow:inset 0 1px #fffffff2,0 10px 32px #0f172a17,0 3px 10px #0f172a0d}.card-clickable:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #be185d73}.card-detail-hint{border-top:1px solid var(--line);color:var(--ink-muted);margin-top:.65rem;padding-top:.55rem;font-size:.75rem;font-weight:600}.card-detail-hint.muted{opacity:.85;font-weight:500}.entry-detail{z-index:35;box-sizing:border-box;width:min(100vw,440px);max-width:440px;height:100dvh;min-height:0;max-height:100dvh;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);background:linear-gradient(172deg,#e8edf5 0%,#dce4f0 45%,#cdd6e8 100%);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.entry-detail-inner{-webkit-overflow-scrolling:touch;padding:.85rem 1rem calc(1.25rem + env(safe-area-inset-bottom,0px));flex:1;overflow-y:auto}.entry-detail-head{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#e8edf5fa 0%,#e8edf5e0 70%,#0000 100%);padding:.35rem 0 .65rem;position:sticky;top:0}.entry-detail-back{color:var(--ink);cursor:pointer;background:#ffffffbf;border:none;border-radius:999px;padding:.45rem .75rem;font-size:.875rem;font-weight:600;box-shadow:0 1px 4px #0f172a14}.entry-detail-title{color:var(--ink);margin:.35rem 0 .5rem;font-size:1.08rem;font-weight:700;line-height:1.45}.entry-detail-meta{color:var(--ink-muted);margin-bottom:.5rem;font-size:.8125rem}.entry-detail-tags{margin-bottom:.85rem}.entry-detail-section-title{color:var(--ink);margin:0 0 .5rem;font-size:.9375rem;font-weight:700}.entry-detail-empty{color:var(--ink-muted);margin:0;font-size:.875rem}.entry-detail-platform-block{background:#ffffffd1;border:1px solid #ffffffa6;border-radius:14px;margin-bottom:1rem;padding:.75rem .85rem;box-shadow:0 4px 16px #0f172a0d}.entry-detail-platform-name{color:#57534e;letter-spacing:.02em;margin:0 0 .45rem;font-size:.8125rem;font-weight:700}.entry-detail-url-list{margin:0;padding-left:1rem;font-size:.8125rem;line-height:1.55}.entry-detail-url-list a{color:#b45309;word-break:break-all}
