:root{--void:#0c0e16;--steel-1:#13161f;--steel-2:#181c27;--steel-3:#1e2231;--steel-4:#252a3a;--wire:#2e3446;--wire-light:#3a4158;--text-1:#d1d5e0;--text-2:#8b91a3;--text-3:#555c70;--text-4:#3a3f50;--accent:#3ec9b4;--accent-dim:#2a8f7e;--amber:#d4a244;--ember:#c25650;--sage:#5aac72;--indigo:#7c6ed4;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--ease:cubic-bezier(0.4, 0, 0.2, 1)}html{scroll-behavior:smooth}body{background:var(--void);color:var(--text-1)}::selection{background:rgba(62,201,180,.18)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--void)}::-webkit-scrollbar-thumb{background:var(--wire);border-radius:3px}.t-label{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3)}.t-gradient{background:linear-gradient(135deg,var(--accent),#5ab4d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hdr{background:rgba(12,14,22,.92);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border-bottom:1px solid var(--wire);box-shadow:0 1px 0 0 rgba(0,0,0,.4)}.hdr-search{background:var(--steel-2);border:1px solid var(--wire);border-radius:var(--radius-md);color:var(--text-1);font-size:13px;padding:5px 10px 5px 30px;outline:0;transition:border-color .3s var(--ease),box-shadow .3s var(--ease);width:170px}.hdr-search:focus{border-color:var(--accent-dim);box-shadow:0 0 0 2px rgba(62,201,180,.08)}.hdr-search::placeholder{color:var(--text-4)}.hdr-link{font-size:13px;color:var(--text-2);transition:color .3s var(--ease);text-decoration:none}.hdr-link:hover{color:var(--text-1)}#app-sidebar{background:var(--steel-1);border-right:1px solid var(--wire);transition:width .25s var(--ease);scrollbar-width:none}#app-sidebar::-webkit-scrollbar{width:0}#app-sidebar .nav-wrap::-webkit-scrollbar{width:0}.sb-pin-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;color:var(--text-3);transition:all .25s var(--ease);cursor:pointer;background:0 0;border:none;flex-shrink:0}.sb-pin-btn:hover{color:var(--text-1);background:var(--steel-3)}.sb-pin-icon{transition:transform .25s var(--ease),color .25s var(--ease);transform:rotate(-45deg)}#app-sidebar.pinned .sb-pin-icon{transform:rotate(0)}#app-sidebar.pinned .sb-pin-btn{color:var(--accent)}.sb-link{display:flex;align-items:center;padding:7px 10px;margin:1px 6px;border-radius:8px;font-size:13px;color:var(--text-2);transition:all .2s var(--ease);text-decoration:none;white-space:nowrap;overflow:hidden}.sb-link:hover{color:var(--text-1);background:var(--steel-3)}.sb-link.active{color:var(--accent);background:rgba(62,201,180,.06)}.sb-link .ic{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sb-link .ic svg{flex-shrink:0}.sb-link .lb{margin-left:10px;flex:1;transition:opacity .15s var(--ease),width .25s var(--ease)}.sb-link .ct{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text-4);min-width:16px;text-align:right;transition:opacity .15s var(--ease),width .25s var(--ease)}#app-sidebar.collapsed .ct,#app-sidebar.collapsed .lb,#app-sidebar.collapsed .sb-hdr-text{opacity:0;pointer-events:none;width:0;min-width:0;overflow:hidden;margin-left:0;margin-right:0;padding-left:0;padding-right:0;flex:0}#app-sidebar.collapsed .sb-link{display:flex;justify-content:center;align-items:center;padding:8px 0;margin:1px 8px}#app-sidebar.collapsed .sb-hdr-row{justify-content:center;padding:0 8px}#app-sidebar.collapsed .sb-link:hover{background:var(--steel-3);color:var(--text-1)}.hero{background:var(--void);border-bottom:1px solid var(--wire);position:relative;overflow:hidden}.hero::after{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,var(--wire) .4px,transparent .4px);background-size:24px 24px;opacity:.12;pointer-events:none;mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black 20%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black 20%,transparent 70%)}.hero-orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;will-change:transform,opacity}.hero-orb-1{width:500px;height:500px;background:radial-gradient(circle,rgba(62,201,180,.12),transparent 70%);top:-15%;left:-5%;animation:orb-float-1 12s ease-in-out infinite}.hero-orb-2{width:400px;height:400px;background:radial-gradient(circle,rgba(90,180,212,.09),transparent 70%);top:-10%;right:-8%;animation:orb-float-2 15s ease-in-out infinite}.hero-orb-3{width:350px;height:350px;background:radial-gradient(circle,rgba(124,110,212,.07),transparent 70%);bottom:-20%;left:35%;animation:orb-float-3 18s ease-in-out infinite}@keyframes orb-float-1{0%,100%{transform:translate(0,0) scale(1);opacity:.8}33%{transform:translate(30px,20px) scale(1.05);opacity:1}66%{transform:translate(-15px,10px) scale(.95);opacity:.7}}@keyframes orb-float-2{0%,100%{transform:translate(0,0) scale(1);opacity:.7}50%{transform:translate(-25px,15px) scale(1.08);opacity:1}}@keyframes orb-float-3{0%,100%{transform:translate(0,0) scale(1);opacity:.6}40%{transform:translate(20px,-20px) scale(1.1);opacity:.9}70%{transform:translate(-10px,-10px) scale(.97);opacity:.7}}.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--text-2);background:rgba(24,28,39,.7);border:1px solid var(--wire);border-radius:50px;padding:6px 16px 6px 12px;margin-bottom:24px;text-decoration:none;transition:all .3s var(--ease);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:hero-fade-in .6s ease-out both}.hero-badge:hover{border-color:var(--wire-light);color:var(--text-1);background:rgba(30,34,49,.8)}.hero-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--sage);box-shadow:0 0 6px rgba(90,172,114,.5);animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,100%{opacity:1;box-shadow:0 0 6px rgba(90,172,114,.5)}50%{opacity:.6;box-shadow:0 0 2px rgba(90,172,114,.3)}}.hero-h1{font-size:36px;font-weight:800;letter-spacing:-.025em;line-height:1.15;color:var(--text-1);margin-bottom:20px;animation:hero-fade-in .6s ease-out .1s both}@media (min-width:768px){.hero-h1{font-size:52px}}.hero-cta-primary{padding:12px 28px;font-size:14px;border-radius:var(--radius-md);box-shadow:0 2px 12px rgba(42,143,126,.25),0 0 0 1px rgba(62,201,180,.1);animation:hero-fade-in .6s ease-out .2s both}.hero-cta-primary:hover{box-shadow:0 4px 20px rgba(42,143,126,.35),0 0 0 1px rgba(62,201,180,.2);transform:translateY(-1px)}.hero-cta-secondary{padding:12px 28px;font-size:14px;animation:hero-fade-in .6s ease-out .25s both}.hero-stats{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;animation:hero-fade-in .6s ease-out .35s both}.hero-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.hero-stat-num{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:18px;font-weight:700;color:var(--text-1)}.hero-stat-label{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}.hero-stat-sep{width:1px;height:28px;background:var(--wire)}@media (max-width:480px){.hero-stats{gap:12px}.hero-stat-sep{height:20px}.hero-stat-num{font-size:15px}}@keyframes hero-fade-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.search-bar{display:flex;align-items:center;background:var(--steel-2);border:1px solid var(--wire);border-radius:var(--radius-md);transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.search-bar:focus-within{border-color:var(--accent-dim);box-shadow:0 0 0 3px rgba(62,201,180,.06)}.search-bar input{background:0 0;border:none;outline:0;color:var(--text-1);font-size:14px;padding:11px 12px;flex:1}.search-bar input::placeholder{color:var(--text-4)}.search-bar button{background:var(--accent-dim);color:#fff;font-size:13px;font-weight:600;padding:7px 18px;border-radius:8px;margin:3px;border:none;cursor:pointer;transition:background .3s var(--ease)}.search-bar button:hover{background:var(--accent)}.card{display:block;background:linear-gradient(165deg,var(--steel-2) 0,var(--steel-3) 100%);border:1px solid var(--wire);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease);text-decoration:none;box-shadow:0 1px 3px rgba(0,0,0,.2)}.card:hover{border-color:var(--wire-light);box-shadow:0 2px 8px rgba(0,0,0,.35),0 0 0 1px var(--wire);transform:translateY(-1px)}.card .thumb{position:relative;overflow:hidden;background:var(--steel-1)}.card .thumb img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .5s var(--ease),filter .5s var(--ease);filter:brightness(.88) contrast(1.05)}.card:hover .thumb img{transform:scale(1.02);filter:brightness(.95) contrast(1.02)}.card .thumb::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,14,22,.3) 0,transparent 40%,transparent 50%,rgba(12,14,22,.75) 100%);pointer-events:none}.thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,var(--wire) .5px,transparent .5px),linear-gradient(160deg,var(--steel-1) 0,var(--steel-3) 100%);background-size:20px 20px,100% 100%}.thumb-name{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:16px;font-weight:700;letter-spacing:.04em;color:var(--text-3);text-align:center;padding:0 20px;position:relative;z-index:1}.thumb-name::before{content:'> ';color:var(--accent-dim);opacity:.6}.card .badges{position:absolute;top:10px;left:10px;right:10px;display:flex;justify-content:space-between;align-items:flex-start;z-index:2}.pill{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:50px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08)}.pill-featured{background:rgba(124,110,212,.7);color:#e0dbff}.pill-free{background:rgba(90,172,114,.55);color:#c8ecd2}.pill-freemium{background:rgba(70,130,200,.5);color:#c4dbf4}.pill-paid{background:rgba(212,162,68,.5);color:#f0deb4}.pill-opensource{background:rgba(90,172,114,.45);color:#c8ecd2}.card .body{padding:14px 16px 16px}.card .name{font-size:14px;font-weight:600;color:var(--text-1);line-height:1.35}.card .desc{font-size:13px;color:var(--text-2);line-height:1.65;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .meta{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:8px}.card .tag{font-size:10px;color:var(--text-3);background:var(--steel-1);padding:3px 9px;border-radius:50px;border:1px solid var(--wire);white-space:nowrap}.card .price{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--accent-dim);font-weight:500}.card .stars{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-2)}.card .stars .s{color:var(--amber);font-size:11px}.surface{background:linear-gradient(165deg,var(--steel-2) 0,var(--steel-3) 100%);border:1px solid var(--wire);border-radius:var(--radius-lg);box-shadow:0 1px 3px rgba(0,0,0,.15)}.cpill{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);background:var(--steel-2);border:1px solid var(--wire);padding:6px 14px;border-radius:50px;transition:all .3s var(--ease);text-decoration:none}.cpill svg{flex-shrink:0}.cpill:hover{color:var(--text-1);border-color:var(--wire-light);background:var(--steel-3)}.sec-hdr{display:flex;align-items:center;gap:14px;margin-bottom:20px}.sec-hdr::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--wire),transparent)}.btn{display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;border-radius:var(--radius-md);padding:10px 20px;transition:all .3s var(--ease);text-decoration:none;cursor:pointer;border:none}.btn-accent{background:linear-gradient(135deg,var(--accent-dim),#2a9b8a);color:#fff;box-shadow:0 1px 3px rgba(42,143,126,.3)}.btn-accent:hover{box-shadow:0 2px 8px rgba(42,143,126,.4);filter:brightness(1.08)}.btn-ghost{background:var(--steel-3);color:var(--text-2);border:1px solid var(--wire)}.btn-ghost:hover{color:var(--text-1);border-color:var(--wire-light);background:var(--steel-4)}.prose-dark{color:var(--text-2);font-size:14px;line-height:1.8}.star-on{color:var(--amber)}.star-off{color:var(--text-4)}.form-input{width:100%;background:var(--steel-2);border:1px solid var(--wire);border-radius:var(--radius-md);color:var(--text-1);font-size:14px;padding:10px 14px;outline:0;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.form-input:focus{border-color:var(--accent-dim);box-shadow:0 0 0 2px rgba(62,201,180,.08)}.form-input::placeholder{color:var(--text-4)}textarea.form-input{resize:vertical;min-height:80px}select.form-input{cursor:pointer}.blog-content{color:var(--text-2);font-size:15px;line-height:1.85}.blog-content h2{color:var(--text-1);font-size:20px;font-weight:700;margin:2em 0 .75em}.blog-content h3{color:var(--text-1);font-size:16px;font-weight:600;margin:1.5em 0 .5em}.blog-content p{margin-bottom:1.25em}.blog-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.blog-content a:hover{color:var(--text-1)}.blog-content ol,.blog-content ul{margin-bottom:1.25em;padding-left:1.5em}.blog-content li{margin-bottom:.5em}.blog-content code{font-family:'JetBrains Mono',monospace;font-size:.85em;background:var(--steel-3);padding:2px 6px;border-radius:4px}.blog-content pre{background:var(--steel-2);border:1px solid var(--wire);border-radius:var(--radius-md);padding:16px;overflow-x:auto;margin-bottom:1.25em}.blog-content pre code{background:0 0;padding:0}.blog-content blockquote{border-left:3px solid var(--accent-dim);padding-left:16px;color:var(--text-3);margin-bottom:1.25em}.blog-content table{width:100%;border-collapse:collapse;margin-bottom:1.25em;font-size:14px}.blog-content th{text-align:left;font-weight:600;color:var(--text-1);padding:8px 12px;border-bottom:1px solid var(--wire)}.blog-content td{padding:8px 12px;border-bottom:1px solid var(--wire)}.blog-content img{border-radius:var(--radius-md);margin:1.5em 0}.ftr{background:var(--steel-1);border-top:1px solid var(--wire)}.ftr a{color:var(--text-2);text-decoration:none;transition:color .3s var(--ease)}.ftr a:hover{color:var(--accent)}