.nw-blog{--blog-accent-grad:linear-gradient(120deg,#a4ddf2,#8cd02e);--blog-dot-grad:linear-gradient(120deg,#4d95e9,#8cd02e);--blog-ink:#0b0f16;--blog-cyan:#a4ddf2;--blog-eyebrow-bd:rgba(164,221,242,0.28);--blog-eyebrow-bg:rgba(77,149,233,0.08);--blog-search-bg:#0c121c;--blog-cover-a:#141a24;--blog-cover-b:#182030;--blog-cover-tint:linear-gradient(135deg,rgba(47,125,219,0.28),transparent 46%,rgba(140,208,46,0.2));--blog-scrim:rgba(11,15,22,0.55);--blog-oncover:rgba(233,237,242,0.6);--blog-oncover-1:#edf1f6;--blog-glow:radial-gradient(50% 50% at 62% 38%,rgba(77,149,233,0.2),transparent 70%);--svc-max:1440px;--svc-pad-x:120px;display:block;background:var(--surface-0)}[data-theme=light] .nw-blog{--blog-cyan:#1f6fbf;--blog-eyebrow-bd:rgba(31,111,191,0.32);--blog-eyebrow-bg:rgba(31,111,191,0.07);--blog-search-bg:var(--surface-1);--blog-glow:radial-gradient(50% 50% at 62% 38%,rgba(36,101,200,0.14),transparent 70%)}.nw-blog-hero{position:relative;overflow:hidden;box-sizing:border-box;padding-block:60px;padding-inline:max(var(--svc-pad-x),calc((100% - var(--svc-max)) / 2 + var(--svc-pad-x)));background:linear-gradient(155deg,var(--surface-0) 0,var(--surface-0-raised) 55%,var(--surface-0) 100%)}.nw-blog-ribbon{position:absolute;inset-block-end:-150px;inset-inline-start:-20%;inline-size:140%;block-size:220px;background:var(--grad-wave);border-radius:50% 50% 45% 55%/100% 100% 0 0;filter:blur(48px);opacity:.22;transform:rotate(-6deg);animation:nwRibbon 22s ease-in-out infinite;pointer-events:none}[dir=rtl] .nw-blog-ribbon{transform:rotate(6deg)}.nw-blog-glow{position:absolute;inset-block-start:-80px;inset-inline-end:-40px;inline-size:380px;block-size:300px;background:var(--blog-glow);filter:blur(42px);pointer-events:none}@media (prefers-reduced-motion:reduce){.nw-blog-ribbon{animation:none}}.nw-blog-topbar{position:relative;justify-content:space-between;gap:16px;-webkit-margin-after:26px;margin-block-end:26px}.nw-blog-crumb,.nw-blog-topbar{display:flex;align-items:center}.nw-blog-crumb{gap:8px;font:12.5px var(--font-body),sans-serif;color:var(--text-3)}.nw-blog-crumb a{color:var(--text-3);text-decoration:none}.nw-blog-crumb [aria-current],.nw-blog-crumb a:hover{color:var(--text-1)}.nw-blog-updated{display:inline-flex;align-items:center;gap:7px;flex:none;font:600 11.5px var(--font-body),sans-serif;color:var(--text-2);padding:6px 12px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass-bg)}.nw-blog-updated-dot{inline-size:6px;block-size:6px;border-radius:50%;background:var(--success);flex:none}.nw-blog-hero-grid{position:relative;display:flex;gap:64px;align-items:flex-start}.nw-blog-intro{flex:1 1;min-width:0;-webkit-padding-before:6px;padding-block-start:6px}.nw-blog-eyebrow{display:inline-flex;align-items:center;gap:9px;block-size:28px;padding-inline:13px;border:1px solid var(--blog-eyebrow-bd);border-radius:999px;background:var(--blog-eyebrow-bg);-webkit-margin-after:22px;margin-block-end:22px}.nw-blog-eyebrow-dot{inline-size:6px;block-size:6px;border-radius:50%;background:var(--blog-dot-grad);box-shadow:0 0 8px rgba(140,208,46,.6)}.nw-blog-eyebrow span:last-child{font:600 10.5px var(--font-mono);letter-spacing:.14em;color:var(--blog-cyan)}.nw-blog-title{margin:0;font:600 60px/1.04 var(--font-display),sans-serif;letter-spacing:-.02em;color:var(--text-1)}[dir=rtl] .nw-blog-title{letter-spacing:normal}.nw-blog-title .grad{background:var(--grad-head);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}[dir=rtl] .nw-blog-title .grad{background-image:var(--grad-head-rtl);-webkit-background-clip:text;background-clip:text}.nw-blog-lede{font:17px/1.65 var(--font-body),sans-serif;color:var(--text-2);max-width:520px;-webkit-margin-before:20px;margin-block-start:20px}.nw-blog-stats{display:flex;gap:26px;-webkit-margin-before:30px;margin-block-start:30px}.nw-blog-stat-num{font:600 27px var(--font-display),sans-serif;letter-spacing:-.01em;color:var(--text-1)}.nw-blog-stat--blue .nw-blog-stat-num{background:var(--grad-about-v1);-webkit-background-clip:text;background-clip:text;color:transparent}.nw-blog-stat--green .nw-blog-stat-num{background:var(--grad-about-v4);-webkit-background-clip:text;background-clip:text;color:transparent}.nw-blog-stat-label{font:11.5px var(--font-body),sans-serif;color:var(--text-3);-webkit-margin-before:3px;margin-block-start:3px}.nw-blog-stat-div{inline-size:1px;background:var(--glass-border);align-self:stretch}.nw-blog-aside{flex:none;inline-size:360px;display:flex;flex-direction:column;gap:14px}.nw-blog-search{position:relative;border-radius:14px;padding:1px;background:linear-gradient(120deg,rgba(77,149,233,.5),rgba(140,208,46,.4))}.nw-blog-search-inner{display:flex;align-items:center;gap:11px;block-size:52px;background:var(--blog-search-bg);border-radius:13px;padding-inline:15px}.nw-blog-search-inner svg{flex:none}.nw-blog-search-ph{color:var(--text-3)}.nw-blog-search-input,.nw-blog-search-ph{flex:1 1;font:14px var(--font-body),sans-serif}.nw-blog-search-input{min-inline-size:0;background:transparent;border:0;outline:0;color:var(--text-1)}.nw-blog-search-input::-ms-input-placeholder{color:var(--text-3)}.nw-blog-search-input::placeholder{color:var(--text-3)}.nw-blog-search-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.nw-blog-search-kbd{font:600 10px var(--font-mono);color:var(--text-3);border:1px solid var(--glass-border);border-radius:6px;padding:3px 7px;flex:none}.nw-blog-search-clear{flex:none;display:inline-flex;align-items:center;justify-content:center;inline-size:22px;block-size:22px;border:0;border-radius:6px;background:transparent;color:var(--text-3);font-size:12px;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.nw-blog-search-clear:hover{color:var(--text-1);background:var(--glass-bg)}.nw-blog-section{padding-block:52px 4px;padding-inline:max(var(--svc-pad-x),calc((100% - var(--svc-max)) / 2 + var(--svc-pad-x)));-webkit-border-before:1px solid var(--glass-border);border-block-start:1px solid var(--glass-border)}.nw-blog-shead{display:flex;align-items:center;gap:10px;-webkit-margin-after:18px;margin-block-end:18px}.nw-blog-shead-bar{inline-size:16px;block-size:2px;border-radius:2px;background:linear-gradient(90deg,#2f7ddb,#8cd02e);flex:none}.nw-blog-shead-label{font:600 11px var(--font-mono);letter-spacing:.14em;color:var(--blog-cyan)}.nw-blog-shead-label.is-muted{color:var(--text-3)}.nw-blog-featured{position:relative;display:flex;background:var(--glass-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--glass-border);border-radius:20px;box-shadow:inset 0 1px 0 var(--glass-light),var(--shadow-float);overflow:hidden;text-decoration:none}.nw-blog-feat-cover{position:relative;flex:1.15 1;min-block-size:330px;overflow:hidden;background:repeating-linear-gradient(45deg,var(--blog-cover-a),var(--blog-cover-a) 12px,var(--blog-cover-b) 12px,var(--blog-cover-b) 24px)}.nw-blog-feat-cover img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.nw-blog-feat-tint{position:absolute;inset:0;background:var(--blog-cover-tint)}.nw-blog-feat-covlabel{position:absolute;inset-block-start:16px;inset-inline-start:18px;font:10px var(--font-mono);color:var(--blog-oncover)}.nw-blog-feat-badge{position:absolute;inset-block-end:18px;inset-inline-start:18px;display:inline-flex;align-items:center;gap:8px;block-size:30px;padding-inline:13px;background:var(--chip-scrim);border:1px solid var(--glass-border);border-radius:999px;font:600 11px var(--font-body),sans-serif;letter-spacing:.03em;color:var(--blog-oncover-1)}.nw-blog-feat-badge-dot{inline-size:6px;block-size:6px;border-radius:50%;background:var(--success);box-shadow:0 0 8px rgba(140,208,46,.7)}.nw-blog-audiochip{display:inline-flex;align-items:center;gap:5px}.nw-blog-feat-body{flex:1 1;padding:40px 44px;display:flex;flex-direction:column;gap:16px}.nw-blog-feat-tags{display:flex;gap:10px;align-items:center}.nw-blog-feat-pill{font:600 10px var(--font-body),sans-serif;letter-spacing:.06em;color:var(--blog-ink);background:var(--blog-accent-grad);border-radius:999px;padding:4px 12px}.nw-blog-feat-cat{font:600 11px var(--font-body),sans-serif;letter-spacing:.05em;color:var(--feat-accent,var(--blog-cyan))}:root[data-theme=light] .nw-blog-feat-cat{color:var(--text-2)}.nw-blog-feat-title{font:600 34px/1.15 var(--font-display),sans-serif;letter-spacing:-.015em;color:var(--text-1)}.nw-blog-feat-ex{font:15px/1.65 var(--font-body),sans-serif;color:var(--text-2);flex:1 1}.nw-blog-feat-byline{display:flex;align-items:center;gap:12px}.nw-blog-feat-ava{inline-size:38px;block-size:38px;border-radius:50%;object-fit:cover;border:1px solid var(--glass-border);flex:none}.nw-blog-feat-ava--ph{display:inline-flex;align-items:center;justify-content:center;background:var(--glass-bg);color:var(--text-3)}.nw-blog-feat-meta{font:12px/1.4 var(--font-body),sans-serif;color:var(--text-3)}.nw-blog-feat-meta b{color:var(--text-1);font-weight:600}.nw-blog-feat-meta .is-updated{color:var(--success)}.nw-blog-feat-more{-webkit-margin-start:auto;margin-inline-start:auto;display:inline-flex;align-items:center;gap:7px;font:600 12.5px var(--font-body),sans-serif;color:var(--blog-cyan);flex:none}[dir=rtl] .nw-blog-feat-more svg{transform:scaleX(-1)}.nw-blog-cats{display:flex;align-items:center;gap:14px;-webkit-margin-before:40px;margin-block-start:40px}.nw-blog-cats-label{font:600 11px var(--font-mono);letter-spacing:.14em;color:var(--text-3);flex:none}.nw-blog-cats-rule{flex:1 1;block-size:1px;background:linear-gradient(90deg,rgba(77,149,233,.45),rgba(212,216,222,.04))}[dir=rtl] .nw-blog-cats-rule{background:linear-gradient(270deg,rgba(77,149,233,.45),rgba(212,216,222,.04))}.nw-blog-pills{display:flex;gap:10px;flex-wrap:wrap;-webkit-margin-before:16px;margin-block-start:16px}.nw-blog-pill{display:inline-flex;align-items:center;gap:8px;font:500 12.5px var(--font-body),sans-serif;color:var(--text-1-soft);border:1px solid var(--glass-border);border-radius:999px;padding:9px 15px;background:var(--glass-bg);text-decoration:none;white-space:nowrap;transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.nw-blog-pill:hover{color:var(--text-1);border-color:var(--glass-border-strong,var(--glass-border))}.nw-blog-pill-dot{inline-size:5px;block-size:5px;border-radius:50%;flex:none}.nw-blog-pill--all{font-weight:600;background:var(--blog-accent-grad);border-color:transparent;padding:9px 16px;box-shadow:0 4px 14px rgba(140,208,46,.22)}.nw-blog-pill--all,.nw-blog-pill--all:hover{color:var(--blog-ink)}.nw-blog-pill--tag{-webkit-padding-start:12px;padding-inline-start:12px}.nw-blog-pill-hash{flex:none;font:700 12px var(--font-display),sans-serif;background:linear-gradient(120deg,#5299e2,#8cd02e);-webkit-background-clip:text;background-clip:text;color:transparent}.nw-blog-tagwrap{-webkit-padding-after:80px;padding-block-end:80px;padding-inline:max(var(--svc-pad-x),calc((100% - var(--svc-max)) / 2 + var(--svc-pad-x)))}.nw-blog-gridwrap:has(+.nw-blog-tagwrap){-webkit-padding-after:24px;padding-block-end:24px}.nw-blog-gridwrap{padding-block:34px 80px;padding-inline:max(var(--svc-pad-x),calc((100% - var(--svc-max)) / 2 + var(--svc-pad-x)))}.nw-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.nw-blog-cell{display:flex;min-inline-size:0}.nw-blog-cell>*{flex:1 1}.nw-blog-cell[hidden]{display:none}.nw-blog-empty{-webkit-margin-before:8px;margin-block-start:8px;font:15px/1.6 var(--font-body),sans-serif;color:var(--text-2)}.nw-blog-empty[hidden]{display:none}.nw-blog-pager{display:flex;align-items:center;justify-content:center;gap:14px;-webkit-margin-before:28px;margin-block-start:28px;flex-wrap:wrap}.nw-blog-pager[hidden]{display:none}.nw-blog-pagebtn{block-size:46px;display:inline-flex;align-items:center;padding-inline:22px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;font:600 13.5px var(--font-body),sans-serif;color:var(--text-1);text-decoration:none;transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.nw-blog-pagebtn:hover{border-color:var(--blog-cyan)}.nw-blog-pagebtn.is-disabled{opacity:.4;pointer-events:none}.nw-blog-pageinfo{font:12.5px var(--font-body),sans-serif;color:var(--text-3)}@media (max-width:860px){.nw-blog-hero{padding:28px 22px 8px}.nw-blog-topbar{-webkit-margin-after:16px;margin-block-end:16px}.nw-blog-hero-grid{flex-direction:column;gap:20px}.nw-blog-intro{-webkit-padding-before:0;padding-block-start:0}.nw-blog-title{font-size:34px;line-height:1.06}.nw-blog-lede{font-size:14px;line-height:1.6;-webkit-margin-before:14px;margin-block-start:14px;max-width:none}.nw-blog-stats{gap:18px;-webkit-margin-before:18px;margin-block-start:18px}.nw-blog-stat-num{font-size:21px}.nw-blog-stat-label{font-size:10.5px}.nw-blog-aside{inline-size:auto}.nw-blog-search-inner{block-size:48px}.nw-blog-search-kbd{display:none}.nw-blog-section{padding:24px 22px 4px;-webkit-border-before:0;border-block-start:0}.nw-blog-featured{flex-direction:column;border-radius:16px}.nw-blog-feat-cover{flex:none;min-block-size:0;block-size:218px}.nw-blog-feat-body{padding:16px;gap:8px}.nw-blog-feat-title{font-size:18px;line-height:1.3}.nw-blog-feat-ex,.nw-blog-feat-more{display:none}.nw-blog-cats{-webkit-margin-before:20px;margin-block-start:20px;padding-inline:0}.nw-blog-pills{flex-wrap:nowrap;overflow-x:auto;gap:8px;-webkit-margin-before:14px;margin-block-start:14px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 36px),transparent)}[dir=rtl] .nw-blog-pills{-webkit-mask-image:linear-gradient(270deg,transparent 0,#000 20px,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(270deg,transparent 0,#000 20px,#000 calc(100% - 36px),transparent)}.nw-blog-pills::-webkit-scrollbar{display:none}.nw-blog-pill{flex:none}.nw-blog-gridwrap{padding:24px 22px 64px}.nw-blog-gridwrap:has(+.nw-blog-tagwrap){-webkit-padding-after:12px;padding-block-end:12px}.nw-blog-tagwrap{padding-inline:22px;-webkit-padding-after:48px;padding-block-end:48px}.nw-blog-grid{grid-template-columns:1fr;gap:16px}}[data-theme=light] .nw-blog-pill{border-color:rgba(96,108,128,.2);background:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 1px 3px rgba(16,22,31,.05)}[data-theme=light] .nw-blog-pill:hover{border-color:rgba(29,95,191,.4)}[data-theme=light] .nw-blog-pill--all{box-shadow:0 4px 14px rgba(140,208,46,.22)}[data-theme=light] .nw-blog-updated{border-color:rgba(96,108,128,.2);box-shadow:inset 0 1px 0 #fff,0 1px 3px rgba(16,22,31,.05)}