:root{--tx-bg:#0b0d10;--tx-surface:#101318;--tx-panel:#12161b;--tx-panel-hover:#171c22;--tx-line:#282e35;--tx-line-soft:#22282f;--tx-text:#e9edf2;--tx-text-secondary:#a6b1bd;--tx-text-muted:#76818c;--tx-text-faint:#65707c;--tx-green:#46c88a;--tx-red:#e56a61;--tx-amber:#e7aa4c;--tx-cyan:#42c7d3;--tx-violet:#8b7bf6;--tx-slate:#8c98a6;--tx-font:Inter, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--tx-display:Georgia, "Songti SC", serif;--tx-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;font-family:var(--tx-font);color:var(--tx-text);background:var(--tx-bg)}*{box-sizing:border-box}body{background:var(--tx-bg);margin:0}.portal-shell{background:radial-gradient(circle at 82% 8%,#42c7d314,transparent 28%),var(--tx-bg);width:min(1480px,100%);min-height:100vh;margin:0 auto;padding:0 42px}.topbar{border-bottom:1px solid var(--tx-line);justify-content:space-between;align-items:center;height:88px;display:flex}.brand{color:var(--tx-text);letter-spacing:.12em;align-items:center;gap:12px;font-size:12px;font-weight:650;text-decoration:none;display:flex}.brand>b{background:var(--tx-text);width:36px;height:36px;color:var(--tx-bg);font:20px var(--tx-display);place-items:center;display:grid}.brand>span{flex-direction:column;display:flex}.brand small{color:var(--tx-text-faint);font:7px var(--tx-mono);letter-spacing:.18em;margin-top:4px}.top-status{align-items:center;gap:20px;display:flex}.public-badge{border:1px solid var(--tx-line);color:var(--tx-text-secondary);font:8px var(--tx-mono);letter-spacing:.14em;border-radius:3px;padding:6px 9px}.sync-state{color:var(--tx-text-muted);font:9px var(--tx-mono);align-items:center;gap:8px;display:flex}.sync-state i{background:var(--tx-green);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #46c88a14}main{padding:0}.hero{border-bottom:1px solid var(--tx-line);grid-template-columns:1fr 210px;align-items:end;gap:60px;min-height:420px;padding:76px 0 64px;display:grid}.eyebrow{color:var(--tx-text-faint);font:9px var(--tx-mono);letter-spacing:.15em;margin:0}.hero h1{font:400 clamp(50px,6vw,86px)/1.02 var(--tx-display);letter-spacing:-.04em;margin:22px 0 0}.hero h1 em{color:var(--tx-text-muted);font-style:normal}.summary{max-width:620px;color:var(--tx-text-muted);margin:28px 0 0;font-size:12px;line-height:1.9}.hero-index{border:1px solid var(--tx-line);background:#12161bb8;flex-direction:column;align-items:flex-end;height:180px;padding:21px;display:flex}.hero-index span{color:var(--tx-text-muted);font-size:10px}.hero-index strong{font:56px var(--tx-display);margin:auto 0}.hero-index small{color:var(--tx-text-faint);font:8px var(--tx-mono);letter-spacing:.14em}.directory{padding:38px 0 72px}.section-head{justify-content:space-between;align-items:end;margin-bottom:18px;display:flex}.section-head h2{font:400 25px var(--tx-display);margin:7px 0 0}.section-head>span{color:var(--tx-text-faint);font-size:9px}.app-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.app-card{--accent:var(--tx-slate);background:var(--tx-panel);border:1px solid var(--tx-line);min-height:320px;color:var(--tx-text);animation:.45s both reveal;animation-delay:var(--delay);flex-direction:column;padding:20px;text-decoration:none;transition:background .25s,border-color .25s,transform .25s;display:flex;position:relative;overflow:hidden}.app-card:before{content:"";background:var(--accent);transform-origin:bottom;width:3px;transition:transform .3s;position:absolute;inset:0 auto 0 0;transform:scaleY(0)}.app-card:hover{background:var(--tx-panel-hover);border-color:#39424c;transform:translateY(-2px)}.app-card:hover:before{transform:scaleY(1)}.accent-violet{--accent:var(--tx-violet)}.accent-cyan{--accent:var(--tx-cyan)}.accent-amber{--accent:var(--tx-amber)}.accent-green{--accent:var(--tx-green)}.accent-red{--accent:var(--tx-red)}.accent-slate{--accent:var(--tx-slate)}.card-head{color:var(--tx-text-faint);font:8px var(--tx-mono);letter-spacing:.12em;grid-template-columns:45px 1fr auto;align-items:center;display:grid}.sequence{color:var(--tx-text-secondary)}.arrow{font-size:14px;transition:transform .25s}.app-card:hover .arrow{transform:translate(3px,-3px)}.app-icon{color:var(--accent);font:48px var(--tx-display);margin:auto 0;transition:transform .3s}.app-card:hover .app-icon{transform:scale(1.06)}.card-copy h3{font:400 25px var(--tx-display);margin:0}.card-copy p{min-height:38px;color:var(--tx-text-muted);margin:9px 0 23px;font-size:11px;line-height:1.7}.card-foot{border-top:1px solid var(--tx-line-soft);color:var(--tx-text-faint);font:8px var(--tx-mono);justify-content:space-between;align-items:center;padding-top:14px;display:flex}.card-foot span{align-items:center;gap:7px;display:flex}.card-foot i{background:var(--tx-green);border-radius:50%;width:5px;height:5px}.card-foot b{color:var(--tx-text-secondary);font-weight:500}.skeleton{border:1px solid var(--tx-line);background:linear-gradient(100deg,var(--tx-panel) 20%,#1a2027 40%,var(--tx-panel) 60%);background-size:200% 100%;height:320px;animation:1.2s infinite shimmer}.empty-state{border:1px solid var(--tx-line);background:var(--tx-panel);text-align:center;place-content:center;min-height:260px;display:grid}.empty-state b{font:22px var(--tx-display)}.empty-state span{color:var(--tx-text-muted);margin-top:9px;font-size:11px}footer{border-top:1px solid var(--tx-line);height:80px;color:var(--tx-text-faint);font:8px var(--tx-mono);letter-spacing:.1em;justify-content:space-between;align-items:center;display:flex}footer a{color:var(--tx-text-secondary);text-decoration:none}@keyframes reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=960px){.hero{grid-template-columns:1fr 160px}.app-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=650px){.portal-shell{padding:0 16px}.topbar{height:70px}.sync-state{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding:52px 0 40px}.hero h1{font-size:44px}.hero-index{align-items:flex-start;height:110px}.hero-index strong{font-size:38px}.app-grid{grid-template-columns:1fr}.app-card{min-height:285px}.section-head>span,footer span:nth-child(2){display:none}}
