@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-color:#050505;--surface-color:#111;--surface-hover:#1a1a1a;--accent-primary:#7c3aed;--accent-secondary:#06b6d4;--text-primary:#f8fafc;--text-secondary:#94a3b8;--border-color:#ffffff1a;--glass-bg:#ffffff08;--glass-border:#ffffff14;--font-main:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--shadow-lg:0 10px 15px -3px #0000001a;--card-shadow:0 10px 15px -3px #0000004d;--surface-subtle:#ffffff05}[data-theme=light]{--bg-color:#f8fafc;--surface-color:#fff;--surface-hover:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--border-color:#e2e8f0;--glass-bg:#ffffffb3;--glass-border:#e2e8f0;--card-shadow:0 4px 6px -1px #0000000d, 0 2px 4px -2px #0000000d;--surface-subtle:#00000005}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}#root{min-height:100vh;display:flex}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border)}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);box-shadow:var(--card-shadow);border-radius:12px;padding:20px;transition:all .3s}.glass-card:hover{border-color:var(--accent-primary);background:#ffffff0a;transform:translateY(-2px)}input,textarea,select{background:var(--surface-color);border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-main);border-radius:8px;outline:none;padding:10px 14px;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #7c3aed33}textarea{font-family:var(--font-mono);resize:vertical;font-size:14px}.btn{cursor:pointer;font-weight:500;font-family:var(--font-main);border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-secondary{background:var(--surface-color);border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--text-secondary)}.app-container{width:100%;display:flex}.sidebar{border-right:1px solid var(--border-color);z-index:10;flex-direction:column;width:280px;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.main-content{flex-direction:column;flex:1;width:100%;max-width:1200px;min-height:100vh;margin:0 auto;padding:40px;display:flex}@media (width<=1024px){.sidebar{z-index:1000;transition:left .3s cubic-bezier(.4,0,.2,1);position:fixed;left:-280px}.sidebar.open{left:0}.main-content{padding:80px 24px 24px}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;opacity:0;visibility:hidden;background:#00000080;transition:all .3s;position:fixed;inset:0}.sidebar-overlay.open{opacity:1;visibility:visible}}@media (width<=640px){.main-content{padding:72px 16px 16px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s forwards fadeIn}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--surface-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-color)}.ecosystem-suite{border-top:1px solid var(--border-color);flex-direction:column;gap:2rem;width:100%;margin:3rem auto 1rem;padding:3rem 0;display:flex}.ecosystem-header{flex-direction:column;gap:.5rem;display:flex}.ecosystem-title-wrapper{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.ecosystem-badge{color:#a78bfa;letter-spacing:.05em;text-transform:uppercase;background:#7c3aed1a;border-radius:6px;padding:.25rem .6rem;font-size:.7rem;font-weight:800}[data-theme=light] .ecosystem-badge{color:var(--accent-primary);background:#7c3aed14}.ecosystem-title{background:linear-gradient(135deg, var(--text-primary) 40%, var(--accent-primary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800;margin:0!important;font-size:1.5rem!important}.ecosystem-subtitle-text{max-width:600px;margin:0;font-size:.95rem;color:var(--text-secondary)!important}.ecosystem-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem;width:100%;display:grid}.ecosystem-card{border:1px solid var(--border-color);box-sizing:border-box;border-radius:16px;flex-direction:column;justify-content:space-between;height:100%;min-height:170px;padding:1.5rem;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;background:var(--surface-subtle)!important}.ecosystem-card:hover{border-color:#7c3aed40;transform:translateY(-4px);box-shadow:0 10px 25px -10px #7c3aed26;background:linear-gradient(135deg,#7c3aed0a 0%,#06b6d40a 100%)!important}.eco-card-header{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.eco-card-icon{color:var(--accent-primary);background:#7c3aed14;border-radius:8px;align-items:center;padding:.4rem;display:flex}.eco-card-tag{color:var(--text-secondary);background:var(--surface-subtle);border:1px solid var(--border-color);border-radius:100px;padding:.15rem .5rem;font-size:.75rem}.eco-card-body h4{font-size:1.1rem;font-weight:700;color:var(--text-primary)!important;margin:0 0 .4rem!important}.eco-card-body p{line-height:1.4;color:var(--text-secondary)!important;margin:0!important;font-size:.85rem!important}.eco-card-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:1.2rem;padding-top:.8rem;display:flex}.eco-card-url{color:var(--text-secondary);opacity:.7;font-size:.8rem;font-family:var(--font-mono)}.eco-card-arrow{color:var(--text-secondary);opacity:.6;transition:all .3s}.ecosystem-card:hover .eco-card-arrow{color:var(--accent-primary);opacity:1;transform:translate(2px,-2px)}
