@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";
:root{--bg-primary:#0a0a12;--bg-secondary:#12121e;--bg-elevated:#1a1a2e;--bg-glass:#1a1a2ea6;--bg-glass-hover:#1a1a2ed9;--text-primary:#f0f0f5;--text-secondary:#9ca3af;--text-muted:#6b7280;--border-subtle:#ffffff0f;--border-hover:#ffffff1f;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px;--header-height:64px;--sidebar-width:280px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}body{background:var(--bg-primary);color:var(--text-primary);width:100vw;height:100vh;overflow:hidden}a{color:inherit;text-decoration:none}a:hover{color:#196bff}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}.canvas-layout{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.canvas-body{flex:1;display:flex;overflow:hidden}.canvas-container{flex:1;position:relative}.header{height:var(--header-height);padding:0 var(--space-lg);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle);z-index:100;justify-content:space-between;align-items:center;display:flex}.header__left{align-items:center;gap:var(--space-lg);display:flex}.header__title{letter-spacing:-.02em;align-items:center;gap:var(--space-sm);background:linear-gradient(135deg,#fff 0%,#a5b4fc 50%,#818cf8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800;display:flex}.header__flag{-webkit-text-fill-color:initial;font-size:1.6rem}.header__tagline{color:var(--text-secondary);max-width:400px;font-size:.85rem;font-weight:400}.header__right{align-items:center;gap:var(--space-xl);display:flex}.header__stats{flex-direction:column;align-items:center;gap:2px;display:flex}.header__stat-number{color:var(--text-primary);font-size:1.25rem;font-weight:700}.header__stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.header__btn{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-base);font-size:.8rem;font-weight:500;display:flex}.header__btn:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);color:var(--text-primary);transform:translateY(-1px)}.sidebar{width:var(--sidebar-width);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border-subtle);transition:width var(--transition-slow);z-index:90;flex-direction:column;display:flex;position:relative}.sidebar--collapsed{width:48px}.sidebar__toggle{top:var(--space-md);right:calc(-1 * var(--space-md));background:var(--bg-elevated);border:1px solid var(--border-subtle);width:32px;height:32px;color:var(--text-secondary);z-index:10;transition:all var(--transition-base);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.sidebar__toggle:hover{background:var(--bg-glass-hover);color:var(--text-primary);transform:scale(1.05)}.sidebar__content{height:100%;padding:var(--space-lg);flex-direction:column;display:flex;overflow-y:auto}.sidebar__title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--space-md);font-size:.75rem;font-weight:600}.sidebar__list{gap:var(--space-xs);flex-direction:column;list-style:none;display:flex}.sidebar__item{align-items:center;gap:var(--space-xs);display:flex}.sidebar__category{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:var(--text-primary);transition:all var(--transition-base);border:1px solid #0000;flex:1;font-size:.85rem;font-weight:500;display:flex}.sidebar__category:hover{background:var(--cat-color-light);border-color:var(--cat-color)}.sidebar__category--hidden{opacity:.4}.sidebar__cat-emoji{font-size:1.1rem}.sidebar__cat-name{flex:1}.sidebar__cat-count{color:var(--text-muted);background:var(--bg-elevated);border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600}.sidebar__visibility{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);transition:all var(--transition-base);justify-content:center;align-items:center;display:flex}.sidebar__visibility:hover{background:var(--bg-elevated);color:var(--text-primary)}.sidebar__visibility--off{opacity:.4}.sidebar__footer{padding-top:var(--space-lg);border-top:1px solid var(--border-subtle);gap:var(--space-sm);flex-direction:column;margin-top:auto;display:flex}.sidebar__contribute{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md);gap:var(--space-sm);transition:all var(--transition-base);flex-direction:column;display:flex}.sidebar__contribute:hover{border-color:#818cf84d;box-shadow:0 0 16px #818cf814}.sidebar__contribute-text{color:var(--text-secondary);font-size:.8rem;line-height:1.5}.sidebar__contribute-btn{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);transition:all var(--transition-base);text-align:center;background:linear-gradient(135deg,#818cf826,#6366f11a);border:1px solid #818cf840;justify-content:center;font-size:.75rem;font-weight:600;display:inline-flex;color:#a5b4fc!important}.sidebar__contribute-btn:hover{background:linear-gradient(135deg,#818cf840,#6366f133);border-color:#818cf880;transform:translateY(-1px);box-shadow:0 4px 12px #818cf826;color:#c7d2fe!important}.sidebar__credit{color:var(--text-muted);text-align:center;padding:var(--space-sm);font-size:.7rem}.category-group{background:var(--cat-color-light);border:1.5px solid var(--cat-color);border-radius:var(--radius-xl);width:100%;height:100%;transition:border-color var(--transition-base);position:relative}.category-group:before{content:"";border-radius:var(--radius-xl);background:radial-gradient(ellipse at top left, var(--cat-color-light) 0%, transparent 60%);pointer-events:none;position:absolute;inset:0}.category-group__header{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);z-index:1;display:flex;position:relative}.category-group__emoji{font-size:1.3rem}.category-group__name{color:var(--text-primary);letter-spacing:-.01em;font-size:1rem;font-weight:700}.category-group__count{color:var(--cat-color);background:#0000004d;border-radius:12px;margin-left:auto;padding:2px 10px;font-size:.75rem;font-weight:600}.project-node{width:100%;height:100%;padding:var(--space-md);background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);gap:var(--space-xs);transition:all var(--transition-base);cursor:grab;flex-direction:column;display:flex;position:relative;overflow:hidden}.project-node:before{content:"";background:linear-gradient(90deg, var(--cat-color) 0%, transparent 100%);border-radius:var(--radius-md) var(--radius-md) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.project-node:hover{background:var(--bg-glass-hover);border-color:var(--cat-color);box-shadow:var(--shadow-md), 0 0 20px color-mix(in srgb, var(--cat-color) 20%, transparent);transform:translateY(-2px)}.project-node:active{cursor:grabbing}.project-handle{opacity:0!important;width:1px!important;height:1px!important}.project-node__header{align-items:center;gap:var(--space-xs);display:flex}.project-node__emoji{font-size:.9rem}.project-node__category{text-transform:uppercase;letter-spacing:.06em;color:var(--cat-color);font-size:.65rem;font-weight:600}.project-node__title{color:var(--text-primary);letter-spacing:-.01em;font-size:.95rem;font-weight:700;line-height:1.2}.project-node__description{color:var(--text-secondary);flex:1;font-size:.75rem;line-height:1.5}.project-node__footer{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.project-node__author{color:var(--text-muted);font-size:.7rem;font-weight:500}.project-node__link{width:28px;height:28px;color:var(--text-muted);transition:all var(--transition-base);border-radius:50%;justify-content:center;align-items:center;display:flex}.project-node__link:hover{background:var(--cat-color-light);color:var(--cat-color);transform:scale(1.1)}.react-flow{background:var(--bg-primary)!important}.react-flow__node{box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;padding:0!important}.react-flow__node.selected{box-shadow:none!important}.react-flow__node.selected .project-node{border-color:var(--cat-color);box-shadow:0 0 0 2px var(--cat-color), 0 0 30px color-mix(in srgb, var(--cat-color) 25%, transparent)}.canvas-controls{-webkit-backdrop-filter:blur(16px);overflow:hidden;background:var(--bg-glass)!important;border:1px solid var(--border-subtle)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important}.canvas-controls button{border:none!important;border-bottom:1px solid var(--border-subtle)!important;width:32px!important;height:32px!important;transition:background var(--transition-fast)!important;background:0 0!important;justify-content:center!important;align-items:center!important;display:flex!important}.canvas-controls button:hover{background:var(--bg-elevated)!important}.canvas-controls button:last-child{border-bottom:none!important}.canvas-controls button svg{fill:var(--text-secondary)!important}.canvas-controls button:hover svg{fill:var(--text-primary)!important}.canvas-minimap{-webkit-backdrop-filter:blur(16px);overflow:hidden;background:var(--bg-glass)!important;border:1px solid var(--border-subtle)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important}.canvas-loading{background:var(--bg-primary);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.canvas-loading__inner{text-align:center;animation:.5s ease-out fadeIn}.canvas-loading__flag{margin-bottom:var(--space-md);font-size:3rem}.canvas-loading__title{background:linear-gradient(135deg,#fff 0%,#a5b4fc 50%,#818cf8 100%);-webkit-text-fill-color:transparent;margin-bottom:var(--space-sm);-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:800}.canvas-loading__text{color:var(--text-secondary);margin-bottom:var(--space-lg);font-size:.9rem}.canvas-loading__spinner{border:3px solid var(--border-subtle);border-top-color:#818cf8;border-radius:50%;width:32px;height:32px;margin:0 auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%,to{opacity:.5}50%{opacity:1}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.header{animation:.5s ease-out fadeIn}.sidebar__content{animation:.4s ease-out .1s both fadeIn}.sidebar__item{animation:.3s ease-out both fadeIn}.sidebar__item:first-child{animation-delay:50ms}.sidebar__item:nth-child(2){animation-delay:.1s}.sidebar__item:nth-child(3){animation-delay:.15s}.sidebar__item:nth-child(4){animation-delay:.2s}.sidebar__item:nth-child(5){animation-delay:.25s}.sidebar__item:nth-child(6){animation-delay:.3s}.sidebar__item:nth-child(7){animation-delay:.35s}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}@media (max-width:768px){:root{--header-height:56px}.header{padding:0 var(--space-sm);gap:var(--space-sm)}.header__tagline{display:none}.header__title{font-size:1.2rem}.header__flag{font-size:1.3rem}.header__right{gap:var(--space-md)}.header__stats{gap:1px}.header__stat-number{font-size:1rem}.header__stat-label{font-size:.6rem}.header__btn{padding:var(--space-xs) var(--space-sm);font-size:0}.header__btn svg{width:18px;height:18px}.sidebar{left:0;top:var(--header-height);height:calc(100vh - var(--header-height));z-index:200;background:var(--bg-secondary);-webkit-backdrop-filter:blur(24px);position:absolute}.sidebar--collapsed{border:none;width:0;overflow:hidden}.sidebar--collapsed .sidebar__toggle{right:-44px}.sidebar__toggle{width:36px;height:36px}.sidebar__content{padding:var(--space-md)}.sidebar__category{padding:var(--space-sm) var(--space-sm);font-size:.8rem}.canvas-controls{bottom:16px!important;left:16px!important}.canvas-minimap{display:none!important}.canvas-loading__title{font-size:1.5rem}.canvas-loading__text{font-size:.8rem}}
