:root{--bg: #0b0d10;--bg-card: #0f1115;--bg-elevated: #14161b;--bg-raised: #14161b;--surface: #191c22;--border: #1f2229;--border-hover: #2a2d36;--text: #e4e7ec;--text-mid: #a8adb8;--text-muted: #7c818d;--text-dim: #505460;--text-secondary: #a8adb8;--blue: #2ea8e5;--blue-light: #5cc0f0;--blue-dim: rgba(46, 168, 229, .08);--blue-glow: rgba(46, 168, 229, .12);--orange: #e87830;--orange-light: #f09050;--orange-dim: rgba(232, 120, 48, .08);--accent: #2ea8e5;--accent-soft: rgba(46, 168, 229, .12);--grad: linear-gradient(135deg, var(--blue), var(--orange));--grad-subtle: linear-gradient(135deg, rgba(46, 168, 229, .15), rgba(232, 120, 48, .15));--grad-dim: linear-gradient(135deg, rgba(46, 168, 229, .06), rgba(232, 120, 48, .06));--heading: "Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--body: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--max-w: 1160px;--radius: 14px;--radius-lg: 20px;--ease: cubic-bezier(.22, 1, .36, 1);--nav-offset: 96px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;scroll-behavior:smooth}body{font-family:var(--body);color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}[id]{scroll-margin-top:var(--nav-offset)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.page{max-width:1140px;margin:0 auto;padding:0 24px 64px}.nav-wrap{position:sticky;top:0;z-index:100;background:linear-gradient(180deg,#0b0d10ed,#0b0d10e0 60%,#0b0d1000);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px 0 0}.nav{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--border);border-radius:16px;background:#131318c7}.logo{display:flex;align-items:center;margin-right:auto}.logo-img{height:28px;width:auto;display:block}.nav-links{display:flex;gap:2px}.nav-links a{padding:7px 14px;font-size:13.5px;font-weight:500;color:var(--text-secondary);border-radius:100px;transition:color .15s,background .15s}.nav-links a:hover{color:var(--text);background:#ffffff0f}.nav-cta{padding:8px 20px;font-size:13.5px;font-weight:600;color:var(--bg);background:#fff;border-radius:100px;transition:transform .15s,opacity .15s;margin-left:8px}.nav-cta:hover{transform:translateY(-1px);opacity:.9}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;background:none;border:none;cursor:pointer;margin-left:8px}.hamburger span{display:block;width:100%;height:2px;background:var(--text);border-radius:2px;transition:transform .25s,opacity .25s}.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-menu{display:none;flex-direction:column;padding:16px 20px 24px;background:#131318f5;border:1px solid var(--border);border-top:none;border-radius:0 0 16px 16px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.mobile-menu a{padding:14px 0;font-size:16px;font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border);transition:color .15s}.mobile-menu a:last-of-type:not(.mobile-menu-cta){border-bottom:none}.mobile-menu a:hover{color:var(--text)}.mobile-menu-cta{margin-top:16px;justify-content:center;border-bottom:none!important;color:var(--bg)!important}.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;font-size:15px;font-weight:600;color:var(--bg);background:#fff;border-radius:100px;transition:transform .2s,box-shadow .2s}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px #ffffff14}.blog-header{padding:120px 0 48px;max-width:640px}.blog-header h1{font-family:var(--heading);font-size:clamp(32px,4vw,48px);font-weight:600;letter-spacing:-.03em;margin-bottom:12px}.blog-header p{font-size:17px;color:var(--text-secondary);line-height:1.6}.blog-list{display:flex;flex-direction:column;gap:0;padding-bottom:96px}.blog-card{display:block;padding:32px 0;border-bottom:1px solid var(--border);text-decoration:none;color:inherit;transition:opacity .15s}.blog-card:first-child{border-top:1px solid var(--border)}.blog-card:hover{opacity:.8}.blog-card-meta{display:flex;gap:12px;font-size:13px;color:var(--text-secondary);margin-bottom:10px}.blog-card h2{font-family:var(--heading);font-size:22px;font-weight:600;line-height:1.25;letter-spacing:-.01em;margin-bottom:8px;color:var(--text)}.blog-card p{font-size:15px;color:var(--text-secondary);line-height:1.55;max-width:640px}.blog-card-link{display:inline-flex;align-items:center;gap:4px;margin-top:12px;font-size:14px;font-weight:600;color:var(--accent)}.blog-card-link span{transition:transform .2s}.blog-card:hover .blog-card-link span{transform:translate(3px)}.article{max-width:680px;margin:0 auto;padding-bottom:96px}.article-header{padding:120px 0 48px}.article-back{display:inline-flex;align-items:center;font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:24px;transition:color .15s}.article-back:hover{color:var(--text)}.article-meta{display:flex;gap:12px;font-size:13px;color:var(--text-secondary);margin-bottom:16px}.article-header h1{font-family:var(--heading);font-size:clamp(28px,4vw,40px);font-weight:600;line-height:1.15;letter-spacing:-.025em}.article-body{font-size:16px;line-height:1.75;color:var(--text-secondary)}.article-body h2{font-family:var(--heading);font-size:24px;font-weight:600;color:var(--text);margin-top:48px;margin-bottom:16px;letter-spacing:-.015em}.article-body h3{font-family:var(--heading);font-size:18px;font-weight:600;color:var(--text);margin-top:32px;margin-bottom:12px}.article-body p{margin-bottom:16px}.article-body ul,.article-body ol{padding-left:20px;margin-bottom:16px}.article-body li{margin-bottom:8px}.article-body strong{color:var(--text);font-weight:600}.article-body code{background:var(--bg-card);border:1px solid var(--border);padding:2px 6px;border-radius:4px;font-size:14px}.article-body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.article-body a:hover{color:var(--blue-light)}.article-img{width:100%;border-radius:10px;border:1px solid var(--border);margin:24px 0}.terminal{margin:24px 0;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#0c0c0e;font-family:SF Mono,Cascadia Code,Fira Code,JetBrains Mono,Consolas,monospace}.terminal-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#1a1a1e;border-bottom:1px solid var(--border)}.terminal-bar>span:nth-child(1),.terminal-bar>span:nth-child(2),.terminal-bar>span:nth-child(3){width:10px;height:10px;border-radius:50%}.terminal-bar>span:nth-child(1){background:#ff5f57}.terminal-bar>span:nth-child(2){background:#febc2e}.terminal-bar>span:nth-child(3){background:#28c840}.terminal-title{margin-left:auto;font-size:11px;color:var(--text-secondary);font-weight:500;width:auto!important;height:auto!important;border-radius:0!important;background:none!important}.terminal pre{margin:0;padding:16px;overflow-x:auto}.terminal code{font-size:13px;line-height:1.65;color:#c9d1d9;background:none!important;border:none!important;padding:0!important;border-radius:0!important;font-family:inherit}.code-keyword{color:#c678dd}.code-var{color:#e5c07b}.code-string{color:#98c379}.code-num{color:#d19a66}.code-fn{color:#61afef}.code-prop{color:#e06c75}.code-comment{color:#5c6370;font-style:italic}.code-green{color:#28c840}.code-orange{color:#e07b00}.code-warn{color:#6c47ff;font-weight:700;font-size:14px}.bold{font-weight:700}.article-cta{margin-top:56px;padding:32px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-card)}.article-cta h3{font-family:var(--heading);font-size:18px;font-weight:600;margin-bottom:8px;color:var(--text)}.article-cta p{font-size:15px;color:var(--text-secondary);line-height:1.6}.article-cta a{color:var(--accent);font-weight:600}@media(max-width:768px){.page{padding:0 20px 48px}.nav{padding:8px 12px}.logo-img{height:22px}.nav-links,.desktop-only{display:none}.hamburger,.mobile-menu{display:flex}.blog-header{padding:80px 0 32px}.blog-header h1{font-size:clamp(28px,7vw,36px)}.article-header{padding:80px 0 32px}.article-header h1{font-size:clamp(24px,6vw,32px)}.terminal pre{padding:12px}.terminal code{font-size:11.5px}}@media(max-width:480px){.page{padding:0 16px 40px}.nav-wrap{padding:8px 0 0}}
