PageSourceSearch

https://www.moesif.com/blog/

html moesif.com collected 2026-09-24 08:31:42 UTC 159,409 bytes, 1,992 lines download raw bytes

1<!doctype html>
2<html lang="en" class="no-js">
3
4<head>
5  <meta charset="utf-8">
6
7<!-- begin _includes/seo.html -->
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45<title>Best practices for Building and Growing API Platforms | Moesif Blog</title>
46<meta name="description" content="Guides and Best Practices for Building and Growing API Businesses.">
47
48
49
50
51
52<meta property="og:type" content="website">
53<meta property="og:locale" content="en_US">
54<meta property="og:site_name" content="Best practices for Building and Growing API Platforms | Moesif Blog">
55<meta property="og:title" content="Best practices for Building and Growing API Platforms">
56<meta property="og:url" content="https://www.moesif.com/blog/">
57
58
59  <meta property="og:description" content="Guides and Best Practices for Building and Growing API Businesses.">
60  <meta name="description" cotent="Guides and Best Practices for Building and Growing API Businesses."/>
61
62
63
64
65  <meta name="twitter:site" content="@MoesifHQ">
66  <meta name="twitter:title" content="Best practices for Building and Growing API Platforms">
67  <meta name="twitter:description" content="Guides and Best Practices for Building and Growing API Businesses.">
68  <meta name="twitter:url" content="https://www.moesif.com/blog/">
69
70  
71    <meta name="twitter:card" content="summary_large_image">
72    
73      <meta name="twitter:image" content="https://blog.moesif.com/images/og_image-blog.png">
74    
75  
76
77  
78
79
80
81
82
83
84
85  
86
87  
88    <meta property="fb:app_id" content="232433703771289">
89  
90
91
92
93  <meta property="og:image" content="https://blog.moesif.com/images/og_image-blog.png">
94
95
96
97<link rel="canonical" href="https://www.moesif.com/blog/">
98
99
100
101  <link rel="next" href="https://www.moesif.com/blog/page2/">
102
103
104
105  
105<script type="application/ld+json">
106    {
107      "@context": "https://schema.org",
108      "@type": "Organization",
109      "url": "https://www.moesif.com",
110      "name" : "Moesif",
111      "description": "Guides and Best Practices for Building and Growing API Businesses.",
112      "email": "[email protected]",
113      "legalName" : "Moesif, Inc",
114      "contactPoint": [{
115        "@type": "ContactPoint",
116        "email": "[email protected]",
117        "contactType": "customer service",
118        "telephone": "+1-415-851-9835"
119      }],
120      "logo": "https://blog.moesif.com/images/og_image-blog.png",
121      "sameAs": [
122        
123        
124        
125      ],
126      "address": {
127        "@type": "PostalAddress",
128        "streetAddress": "77 Van Ness Ave STE 101-1513",
129        "addressLocality": " San Francisco",
130        "addressRegion": " California",
131        "postOfficeBoxNumber": 94102
132      }
133    }
134  </script>
134
135
136
137
138
139
140
141
142<!-- end _includes/seo.html -->
143
144
145<meta name="apple-itunes-app" content="app-id=1545437670" />
146
147<link href="/blog/feed.xml" type="application/atom+xml" rel="alternate" title="Moesif Blog Feed" />
148
149<link rel="preconnect" href="https://px.ads.linkedin.com" />
150<link rel="preconnect" href="https://forms.hsforms.com" />
151<link rel="preconnect" href="https://www.google-analytics.com" />
152<link rel="preconnect" href="https://fonts.gstatic.com" />
153<link rel="preconnect" href="https://www.googleadservices.com" />
154<link rel="preconnect" href="https://www.googletagmanager.com" />
155<link rel="preconnect" href="https://pubads.g.doubleclick.net" />
156<link rel="preconnect" href="https://snap.licdn.com" />
157<link rel="preconnect" href="https://t.co" />
158<!-- https://t.co/dKP3o1e -->
159
160<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap">
161<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Iceland&display=swap">
162
163<meta name="viewport" content="width=device-width, initial-scale=1.0">
164
165<script>
166  document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
167</script>
vendor: 1 bytes, line 167
167
168<script>
169  /*! lazysizes - v5.2.0 */
170!function(a,b){var c=b(a,a.document,Date);a.lazySizes=c,"object"==typeof module&&module.exports&&(module.exports=c)}("undefined"!=typeof window?window:{},function(a,b,c){"use strict";var d,e;if(function(){var b,c={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};e=a.lazySizesConfig||a.lazysizesConfig||{};for(b in c)b in e||(e[b]=c[b])}(),!b||!b.getElementsByClassName)return{init:function(){},cfg:e,noSupport:!0};var f=b.documentElement,g=a.HTMLPictureElement,h="addEventListener",i="getAttribute",j=a[h].bind(a),k=a.setTimeout,l=a.requestAnimationFrame||k,m=a.requestIdleCallback,n=/^picture$/i,o=["load","error","lazyincluded","_lazyloaded"],p={},q=Array.prototype.forEach,r=function(a,b){return p[b]||(p[b]=new RegExp("(\\s|^)"+b+"(\\s|$)")),p[b].test(a[i]("class")||"")&&p[b]},s=function(a,b){r(a,b)||a.setAttribute("class",(a[i]("class")||"").trim()+" "+b)},t=function(a,b){var c;(c=r(a,b))&&a.setAttribute("class",(a[i]("class")||"").replace(c," "))},u=function(a,b,c){var d=c?h:"removeEventListener";c&&u(a,b),o.forEach(function(c){a[d](c,b)})},v=function(a,c,e,f,g){var h=b.createEvent("Event");return e||(e={}),e.instance=d,h.initEvent(c,!f,!g),h.detail=e,a.dispatchEvent(h),h},w=function(b,c){var d;!g&&(d=a.picturefill||e.pf)?(c&&c.src&&!b[i]("srcset")&&b.setAttribute("srcset",c.src),d({reevaluate:!0,elements:[b]})):c&&c.src&&(b.src=c.src)},x=function(a,b){return(getComputedStyle(a,null)||{})[b]},y=function(a,b,c){for(c=c||a.offsetWidth;c<e.minSize&&b&&!a._lazysizesWidth;)c=b.offsetWidth,b=b.parentNode;return c},z=function(){var a,c,d=[],e=[],f=d,g=function(){var b=f;for(f=d.length?e:d,a=!0,c=!1;b.length;)b.shift()();a=!1},h=function(d,e){a&&!e?d.apply(this,arguments):(f.push(d),c||(c=!0,(b.hidden?k:l)(g)))};return h._lsFlush=g,h}(),A=function(a,b){return b?function(){z(a)}:function(){var b=this,c=arguments;z(function(){a.apply(b,c)})}},B=function(a){var b,d=0,f=e.throttleDelay,g=e.ricTimeout,h=function(){b=!1,d=c.now(),a()},i=m&&g>49?function(){m(h,{timeout:g}),g!==e.ricTimeout&&(g=e.ricTimeout)}:A(function(){k(h)},!0);return function(a){var e;(a=!0===a)&&(g=33),b||(b=!0,e=f-(c.now()-d),e<0&&(e=0),a||e<9?i():k(i,e))}},C=function(a){var b,d,e=99,f=function(){b=null,a()},g=function(){var a=c.now()-d;a<e?k(g,e-a):(m||f)(f)};return function(){d=c.now(),b||(b=k(g,e))}},D=function(){var g,m,o,p,y,D,F,G,H,I,J,K,L=/^img$/i,M=/^iframe$/i,N="onscroll"in a&&!/(gle|ing)bot/.test(navigator.userAgent),O=0,P=0,Q=0,R=-1,S=function(a){Q--,(!a||Q<0||!a.target)&&(Q=0)},T=function(a){return null==K&&(K="hidden"==x(b.body,"visibility")),K||!("hidden"==x(a.parentNode,"visibility")&&"hidden"==x(a,"visibility"))},U=function(a,c){var d,e=a,g=T(a);for(G-=c,J+=c,H-=c,I+=c;g&&(e=e.offsetParent)&&e!=b.body&&e!=f;)(g=(x(e,"opacity")||1)>0)&&"visible"!=x(e,"overflow")&&(d=e.getBoundingClientRect(),g=I>d.left&&H<d.right&&J>d.top-1&&G<d.bottom+1);return g},V=function(){var a,c,h,j,k,l,n,o,q,r,s,t,u=d.elements;if((p=e.loadMode)&&Q<8&&(a=u.length)){for(c=0,R++;c<a;c++)if(u[c]&&!u[c]._lazyRace)if(!N||d.prematureUnveil&&d.prematureUnveil(u[c]))ba(u[c]);else if((o=u[c][i]("data-expand"))&&(l=1*o)||(l=P),r||(r=!e.expand||e.expand<1?f.clientHeight>500&&f.clientWidth>500?500:370:e.expand,d._defEx=r,s=r*e.expFactor,t=e.hFac,K=null,P<s&&Q<1&&R>2&&p>2&&!b.hidden?(P=s,R=0):P=p>1&&R>1&&Q<6?r:O),q!==l&&(D=innerWidth+l*t,F=innerHeight+l,n=-1*l,q=l),h=u[c].getBoundingClientRect(),(J=h.bottom)>=n&&(G=h.top)<=F&&(I=h.right)>=n*t&&(H=h.left)<=D&&(J||I||H||G)&&(e.loadHidden||T(u[c]))&&(m&&Q<3&&!o&&(p<3||R<4)||U(u[c],l))){if(ba(u[c]),k=!0,Q>9)break}else!k&&m&&!j&&Q<4&&R<4&&p>2&&(g[0]||e.preloadAfterLoad)&&(g[0]||!o&&(J||I||H||G||"auto"!=u[c][i](e.sizesAttr)))&&(j=g[0]||u[c]);j&&!k&&ba(j)}},W=B(V),X=function(a){var b=a.target;if(b._lazyCache)return void delete b._lazyCache;S(a),s(b,e.loadedClass),t(b,e.loadingClass),u(b,Z),v(b,"lazyloaded")},Y=A(X),Z=function(a){Y({target:a.target})},$=function(a,b){try{a.contentWindow.location.replace(b)}catch(c){a.src=b}},_=function(a){var b,c=a[i](e.srcsetAttr);(b=e.customMedia[a[i]("data-media")||a[i]("media")])&&a.setAttribute("media",b),c&&a.setAttribute("srcset",c)},aa=A(function(a,b,c,d,f){var g,h,j,l,m,p;(m=v(a,"lazybeforeunveil",b)).defaultPrevented||(d&&(c?s(a,e.autosizesClass):a.setAttribute("sizes",d)),h=a[i](e.srcsetAttr),g=a[i](e.srcAttr),f&&(j=a.parentNode,l=j&&n.test(j.nodeName||"")),p=b.firesLoad||"src"in a&&(h||g||l),m={target:a},s(a,e.loadingClass),p&&(clearTimeout(o),o=k(S,2500),u(a,Z,!0)),l&&q.call(j.getElementsByTagName("source"),_),h?a.setAttribute("srcset",h):g&&!l&&(M.test(a.nodeName)?$(a,g):a.src=g),f&&(h||l)&&w(a,{src:g})),a._lazyRace&&delete a._lazyRace,t(a,e.lazyClass),z(function(){var b=a.complete&&a.naturalWi
170dth>1;p&&!b||(b&&s(a,"ls-is-cached"),X(m),a._lazyCache=!0,k(function(){"_lazyCache"in a&&delete a._lazyCache},9)),"lazy"==a.loading&&Q--},!0)}),ba=function(a){if(!a._lazyRace){var b,c=L.test(a.nodeName),d=c&&(a[i](e.sizesAttr)||a[i]("sizes")),f="auto"==d;(!f&&m||!c||!a[i]("src")&&!a.srcset||a.complete||r(a,e.errorClass)||!r(a,e.lazyClass))&&(b=v(a,"lazyunveilread").detail,f&&E.updateElem(a,!0,a.offsetWidth),a._lazyRace=!0,Q++,aa(a,b,f,d,c))}},ca=C(function(){e.loadMode=3,W()}),da=function(){3==e.loadMode&&(e.loadMode=2),ca()},ea=function(){if(!m){if(c.now()-y<999)return void k(ea,999);m=!0,e.loadMode=3,W(),j("scroll",da,!0)}};return{_:function(){y=c.now(),d.elements=b.getElementsByClassName(e.lazyClass),g=b.getElementsByClassName(e.lazyClass+" "+e.preloadClass),j("scroll",W,!0),j("resize",W,!0),j("pageshow",function(a){if(a.persisted){var c=b.querySelectorAll("."+e.loadingClass);c.length&&c.forEach&&l(function(){c.forEach(function(a){a.complete&&ba(a)})})}}),a.MutationObserver?new MutationObserver(W).observe(f,{childList:!0,subtree:!0,attributes:!0}):(f[h]("DOMNodeInserted",W,!0),f[h]("DOMAttrModified",W,!0),setInterval(W,999)),j("hashchange",W,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(a){b[h](a,W,!0)}),/d$|^c/.test(b.readyState)?ea():(j("load",ea),b[h]("DOMContentLoaded",W),k(ea,2e4)),d.elements.length?(V(),z._lsFlush()):W()},checkElems:W,unveil:ba,_aLSL:da}}(),E=function(){var a,c=A(function(a,b,c,d){var e,f,g;if(a._lazysizesWidth=d,d+="px",a.setAttribute("sizes",d),n.test(b.nodeName||""))for(e=b.getElementsByTagName("source"),f=0,g=e.length;f<g;f++)e[f].setAttribute("sizes",d);c.detail.dataAttr||w(a,c.detail)}),d=function(a,b,d){var e,f=a.parentNode;f&&(d=y(a,f,d),e=v(a,"lazybeforesizes",{width:d,dataAttr:!!b}),e.defaultPrevented||(d=e.detail.width)&&d!==a._lazysizesWidth&&c(a,f,e,d))},f=function(){var b,c=a.length;if(c)for(b=0;b<c;b++)d(a[b])},g=C(f);return{_:function(){a=b.getElementsByClassName(e.autosizesClass),j("resize",g)},checkElems:g,updateElem:d}}(),F=function(){!F.i&&b.getElementsByClassName&&(F.i=!0,E._(),D._())};return k(function(){e.init&&F()}),d={cfg:e,autoSizer:E,loader:D,init:F,uP:w,aC:s,rC:t,hC:r,fire:v,gW:y,rAF:z}});
171</script>
171
172<!-- For all browsers -->
173
174  
175  <style>
176      /*!
177 * Minimal Mistakes Jekyll Theme 4.17.2 by Michael Rose
178 * Copyright 2013-2019 Michael Rose - mademistakes.com | @mmistakes
179 * Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE)
180*/.mfp-counter{font-family:Georgia,Times,serif}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#000;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:none !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:"";display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-0.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:rgba(0,0,0,0);border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:1;filter:alpha(opacity=100);padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Georgia,Times,serif}.mfp-close:hover,.mfp-close:focus{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#fff}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px}.mfp-arrow{position:absolute;opacity:1;filter:alpha(opacity=100);margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1;filter:alpha(opacity=100)}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:"";display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset rgba(0,0,0,0)}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #fff}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #fff}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:"";position:absolute;
180left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-figure figcaption{margin-top:0;margin-bottom:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width: 800px)and (orientation: landscape),screen and (max-height: 300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width: 900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}button:focus,a:focus{outline:thin dotted #ff4f00;outline:5px auto #ff4f00;outline-offset:-2px}*{box-sizing:border-box}html{box-sizing:border-box;background-color:#fff;font-size:14px}@media(min-width: 48em){html{font-size:14px}}@media(min-width: 64em){html{font-size:16px}}@media(min-width: 84.375em){html{font-size:16px}}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}::-moz-selection{color:#fff;background:#000}::selection{color:#fff;background:#000}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}a{color:#ff4f00}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;width:auto\9 ;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}label,select,button,input[type=button],input[type=reset],input[type=submit],input[type=radio],input[type=checkbox]{cursor:pointer}input[type=search]{box-sizing:border-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}html{position:relative;min-height:100%}body{margin:0;padding:0;color:#212121;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.5}body.overflow--hidden{overflow:hidden}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{margin:1.5em 0 .5em;line-height:1.2;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500}h1[id]:before,.h1[id]:before,h2[id]:before,.h2[id]:before,h3[id]:before,.h3[id]:before,h4[id]:before,.h4[id]:before,h5[id]:before,.h5[id]:before,h6[id]:before,.h6[id]:before{content:" ";display:block;padding-top:60px;margin-top:-60px}h1,.h1{margin-top:0;font-size:1.953em}h2,.h2{font-size:1.563em}h3,.h3{font-size:1.25em}h4,.h4{font-size:1em}h5,.h5{font-size:1em}h6,.h6{font-size:1em}small,.small{font-size:.8em}p{margin-bottom:1.3em}u,ins{text-decoration:none;border-bottom:1px solid #212121}u a,ins a{color:inherit}del a{color:inherit}p,pre,blockquote,ul,ol,dl,figure,table,fieldset{orphans:3;widows:3}abbr[title],abbr[data-original-title]{text-decoration:none;cursor:help;border-bottom:1px dotted #212121}blockquote{margin:2em 1em 2em 0;padding-left:1em;padding-right:1em;font-style:italic;border-left:.25em solid #ff4f00}blockquote cite{font-style:italic}blockquote cite:before{content:"—";padding-right:5px}a:hover,a:active{color:rgb(178.5,55.3,0);outline:0}a:visited{color:rgb(178.5,55.3,0)}a:hover{color:rgb(178.5,55.3,0);outline:0}tt,code,kbd,samp,pre{font-family:Monaco,Consolas,"Lucida Console",monospace}pre{overflow-x:auto;word-wrap:break-word;white-space:-moz-pre-wrap;white-space:pre-wrap;word-break:keep-all}p>code,a>code,li>code,figcaption>code,td>code{padding-top:.1rem;padding-bottom:.1rem;font-size:.8em;background:#fafafa;border-radius:4px}p>code:before,p>code:after,a>code:before,a>code:after,li>code:before,li>code:after,figcaption>code:before,figcaption>code:after,td>code:before,td>code:after{letter-spacing:-0.2em;content:" "}hr{display:block;margin:1em 0;border:0;border-top:1px solid hsl(0,0%,93.5%)}ul li,ol li{margin-bottom:0}li ul,li ol{margin-top:.5em}figure{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start;flex-wrap:wrap;margin:2em 0}figure img,figure iframe,figure .fluid-width-video-wrapper{margin-bottom:1em}figure img{width:100%;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}figure>a{display:block}@media(min-width: 37.5em){figure.half>a,figure.half>img{width:calc(50% - .5em)}}figure.half figcaption{width:100%}@media(min-width: 37.5em){figure.third>a,figure.third>img{width:calc(33.3333% - .5em)}}figure.third figcaption{width:100%}figcaption{margin-bottom:.5em;color:#666;font-family:Georgia,Times,serif;font-size:.8em}figcaption a{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}figcaption a:hover{color:rgb(178.5,55.3,0)}svg:not(:root){overflow:hidden}nav ul{margin:0;padding:0}nav li{list-style:none}nav a{text-decoration:none}nav ul li,nav ol li{margin-bottom:0}nav li ul,nav li ol{margin-top:0}b,i,strong,em,blockquote,p,q,span,figure,img,h1,h2,header,input,a,tr,td,form button,input[type=submit],.btn,#goog-wm-sb,.highlight,.archive__item-teaser{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}form{margin:0 0 5px 0;padding:1em;background-color:hsl(0,0%,93.5%)}form fieldset{margin-bottom:5px;padding:0;border-width:0}form legend{display:block;width:100%;margin-bottom:10px;*margin-left:-7px;padding:0;color:#212121;border:0;white-space:normal}form p{margin-bottom:2.5px}form ul{list-style-type:none;margin:0 0 5px 0;padding:0}form br{display:none}label,input,button,select,textarea{vertical-align:baseline;*vertical-align:middle}input,button,select,textarea{box-sizing:border-box;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:.25em;color:#212121;cursor:pointer}label small{font-size:.8em}label input,label textarea,label select{display:block}input,textarea,select{display:inline-block;width:100%;padding:.25em;margin-bottom:.5em;color:#212121;background-color:#fff;border:hsl(0,0%,93.5%);border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.125)}.input-mini{width:60px}.input-small{width:90px}input[type=image],input[type=checkbox],input[type=radio]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;border-radius:0;border:0 \9 }input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type=image]{border:0;box-shadow:none}input[type=file]{width:auto;padding:initial;line-height:initial;border:initial;background-color:rgba(0,0,0,0);background-color:initial;box-shadow:none}input[type=button],input[type=reset],input[type=submit]{width:auto;height:auto;cursor:pointer;*overflow:visible}select,input[type=file]{*margin-top:4px}select{width:auto;background-color:#fff}select[multiple],select[size]{height:auto}textarea{resize:vertical;height:auto;overflow:auto;vertical-align:top}input[type=hidden]{display:none}.form{position:relative}.radio,.checkbox{padding-left:18px;font-weight:normal}.radio input[type=radio],.checkbox input[type=checkbox]{float:left;margin-left:-18px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{opacity:.5;cursor:not-allowed}input:focus,textarea:focus{border-color:#ff4f00;outline:0;outline:thin dotted \9 ;box-shadow:inset 0 1px 3px rgba(33,33,33,.06),0 0 5px rgba(255,79,0,.7)}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus,select:focus{box-shadow:none}.help-block,.help-inline{color:#666}.help-block{display:block;margin-bottom:1em;line-height:1em}.help-inline{display:inline-block;vertical-align:middle;padding-left:5px}.form-group{margin-bottom:5px;padding:0;border-width:0}.form-inline input,.form-inline textarea,.form-inline select{display:inline-block;margin-bottom:0}.form-inline label{display:inline-block}.form-inline .radio,.form-inline .checkbox,.form-inline .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:left;margin-left:0;margin-right:3px}.form-search input,.form-search textarea,.form-search select{display:inline-block;margin-bottom:0}.form-search .search-query{padding-left:14px;padding-right:14px;margin-bottom:0;border-radius:14px}.form-search label{display:inline-block}.form-search .radio,.form-search .checkbox,.form-inline .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type=radio],.form-search .checkbox input[type=checkbox]{float:left;margin-left:0;margin-right:3px}.form--loading:before{content:""}.form--loading .form__spinner{display:block}.form:before{position:absolute;top:0;left:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.7);z-index:10}.form__spinner{display:none;position:absolute;top:50%;left:50%;z-index:11}#goog-fixurl ul{list-style:none;margin-left:0;padding-left:0}#goog-fixurl ul li{list-style-type:none}#goog-wm-qt{width:auto;margin-right:10px;margin-bottom:20px;padding:8px 20px;display:inline-block;font-size:.8em;background-color:#fff;color:#000;border-width:2px !important;border-style:solid !important;border-color:hsl(0,0%,93.5%);border-radius:4px}table{display:block;margin-bottom:1em;width:100%;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em;border-collapse:collapse;overflow-x:auto}
180table+table{margin-top:1em}table tr:nth-child(odd)>td{background-color:hsl(0,0%,96.7%)}table tr:nth-child(even)>td{background-color:hsl(0,0%,93%)}thead{background-color:hsl(0,0%,93.5%);border-bottom:2px solid hsl(0,0%,70.125%)}th{padding:.5em;font-weight:bold;text-align:left}td{padding:.5em;border-bottom:1px solid hsl(0,0%,70.125%)}tr,td,th{vertical-align:middle}@-webkit-keyframes intro{0%{opacity:0}100%{opacity:1}}@keyframes intro{0%{opacity:0}100%{opacity:1}}.btn,#goog-wm-sb,button{display:inline-flex;margin:.25em;padding:.5em 1em;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em;font-weight:bold;text-align:center;text-decoration:none;border-width:0;border-radius:4px;cursor:pointer;line-height:1.4}.btn .icon+.hidden,#goog-wm-sb .icon+.hidden,button .icon+.hidden{margin-left:-0.5em}.btn--primary,button--primary{background-color:#ff4f00;color:#fff}.btn--primary:visited,button--primary:visited{background-color:#ff4f00;color:#fff}.btn--primary:hover,button--primary:hover{background-color:rgb(204,63.2,0);color:#fff}.btn--inverse,button--inverse{background-color:#fff;color:#212121;border:1px solid hsl(0,0%,93.5%)}.btn--inverse:visited,button--inverse:visited{background-color:#fff;color:#212121}.btn--inverse:hover,button--inverse:hover{background-color:#ccc;color:#212121}.btn--inverse-primary,button--inverse-primary{background-color:#fff;color:#212121;border:1px solid #ff4f00}.btn--inverse-primary:visited,button--inverse-primary:visited{background-color:#fff;color:#212121}.btn--inverse-primary:hover,button--inverse-primary:hover{background-color:#ccc;color:#212121}.btn--light-outline,button--light-outline{background-color:rgba(0,0,0,0);color:#fff;border:1px solid #fff}.btn--light-outline:visited,button--light-outline:visited{background-color:rgba(0,0,0,0);color:#fff}.btn--light-outline:hover,button--light-outline:hover{background-color:rgba(0,0,0,.2);color:#fff}.btn--success,button--success{background-color:#54c000;color:#fff}.btn--success:visited,button--success:visited{background-color:#54c000;color:#fff}.btn--success:hover,button--success:hover{background-color:rgb(67.2,153.6,0);color:#fff}.btn--warning,button--warning{background-color:#ff9800;color:#fff}.btn--warning:visited,button--warning:visited{background-color:#ff9800;color:#fff}.btn--warning:hover,button--warning:hover{background-color:rgb(204,121.6,0);color:#fff}.btn--danger,button--danger{background-color:#e51c23;color:#fff}.btn--danger:visited,button--danger:visited{background-color:#e51c23;color:#fff}.btn--danger:hover,button--danger:hover{background-color:rgb(183.2,22.4,28);color:#fff}.btn--info,button--info{background-color:#1387ff;color:#fff}.btn--info:visited,button--info:visited{background-color:#1387ff;color:#fff}.btn--info:hover,button--info:hover{background-color:rgb(15.2,108,204);color:#fff}.btn--facebook,button--facebook{background-color:#3b5998;color:#fff}.btn--facebook:visited,button--facebook:visited{background-color:#3b5998;color:#fff}.btn--facebook:hover,button--facebook:hover{background-color:rgb(47.2,71.2,121.6);color:#fff}.btn--twitter,button--twitter{background-color:#55acee;color:#fff}.btn--twitter:visited,button--twitter:visited{background-color:#55acee;color:#fff}.btn--twitter:hover,button--twitter:hover{background-color:rgb(68,137.6,190.4);color:#fff}.btn--linkedin,button--linkedin{background-color:#007bb6;color:#fff}.btn--linkedin:visited,button--linkedin:visited{background-color:#007bb6;color:#fff}.btn--linkedin:hover,button--linkedin:hover{background-color:rgb(0,98.4,145.6);color:#fff}.btn--block,button--block{display:block;width:100%}.btn--block+.btn--block,button--block+.btn--block{margin-top:.25em}.btn--disabled,button--disabled{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:.65}.btn--x-large,button--x-large{font-size:1.25em}.btn--large,button--large{font-size:1em}.btn--small,button--small{font-size:.6875em}.notice{margin:2em 0 !important;padding:1em;color:#212121;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em !important;text-indent:initial;background-color:rgb(248.2,248.2,248.2);border-radius:4px;box-shadow:0 1px 1px rgba(187,187,187,.25)}.notice h4,.notice h3{margin-top:0 !important;margin-bottom:.75em !important}.page__content .notice h4{margin-bottom:0;font-size:1em}.notice p:last-child{margin-bottom:0 !important}.notice h4+p{margin-top:0;padding-top:0}.notice a{color:#bbb}.notice a:hover{color:hsl(0,0%,44%)}.notice .btn,.notice #goog-wm-sb{color:#fff}.notice .btn--inverse{color:#212121}.notice code{background-color:rgb(251.6,251.6,251.6)}.notice pre code{background-color:inherit}.notice ul:last-child{margin-bottom:0}.notice--primary{margin:2em 0 !important;padding:1em;color:#212121;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em !important;text-indent:initial;background-color:rgb(255,237.4,229.5);border-radius:4px;box-shadow:0 1px 1px rgba(255,79,0,.25)}.notice--primary h4,.notice--primary h3{margin-top:0 !important;margin-bottom:.75em !important}.page__content .notice--primary h4{margin-bottom:0;font-size:1em}.notice--primary p:last-child{margin-bottom:0 !important}.notice--primary h4+p{margin-top:0;padding-top:0}.notice--primary a{color:#ff4f00}.notice--primary a:hover{color:rgb(153,47.4,0)}.notice--primary .btn,.notice--primary #goog-wm-sb{color:#fff}.notice--primary .btn--inverse{color:#212121}.notice--primary code{background-color:rgb(255,246.2,242.25)}.notice--primary pre code{background-color:inherit}.notice--primary ul:last-child{margin-bottom:0}.notice--info{margin:2em 0 !important;padding:1em;color:#212121;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em !important;text-indent:initial;background-color:rgb(231.4,243,255);border-radius:4px;box-shadow:0 1px 1px rgba(19,135,255,.25)}.notice--info h4,.notice--info h3{margin-top:0 !important;margin-bottom:.75em !important}.page__content .notice--info h4{margin-bottom:0;font-size:1em}.notice--info p:last-child{margin-bottom:0 !important}.notice--info h4+p{margin-top:0;padding-top:0}.notice--info a{color:#1387ff}.notice--info a:hover{color:rgb(11.4,81,153)}.notice--info .btn,.notice--info #goog-wm-sb{color:#fff}.notice--info .btn--inverse{color:#212121}.notice--info code{background-color:rgb(243.2,249,255)}.notice--info pre code{background-color:inherit}.notice--info ul:last-child{margin-bottom:0}.notice--warning{margin:2em 0 !important;padding:1em;color:#212121;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em !important;text-indent:initial;background-color:rgb(255,244.7,229.5);border-radius:4px;box-shadow:0 1px 1px rgba(255,152,0,.25)}.notice--warning h4,.notice--warning h3{margin-top:0 !important;margin-bottom:.75em !important}.page__content .notice--warning h4{margin-bottom:0;font-size:1em}.notice--warning p:last-child{margin-bottom:0 !important}.notice--warning h4+p{margin-top:0;padding-top:0}.notice--warning a{color:#ff9800}.notice--warning a:hover{color:rgb(153,91.2,0)}.notice--warning .btn,.notice--warning #goog-wm-sb{color:#fff}.notice--warning .btn--inverse{color:#212121}.notice--warning code{background-color:rgb(255,249.85,242.25)}.notice--warning pre code{background-color:inherit}.notice--warning ul:last-child{margin-bottom:0}.notice--success{margin:2em 0 !important;padding:1em;color:#212121;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em !important;text-indent:initial;background-color:rgb(237.9,248.7,229.5);border-radius:4px;box-shadow:0 1px 1px rgba(84,192,0,.25)}.notice--success h4,.notice--success h3{margin-top:0 !important;margin-bottom:.75em !important}.page__content .notice--success h4{margin-bottom:0;font-size:1em}.notice--success p:last-child{margin-bottom:0 !important}.notice--success h4+p{margin-top:0;padding-top:0}.notice--success a{color:#54c000}.notice--success a:hover{color:rgb(50.4,115.2,0)}.notice--success .btn,.notice--success #goog-wm-sb{color:#fff}.notice--success .btn--inverse{color:#212121}.notice--success code{background-color:rgb(246.45,251.85,242.25)}.notice--success pre code{background-color:inherit}.notice--success ul:last-child{margin-bottom:0}.notice--danger{margin:2em 0 !important;padding:1em;color:#212121;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em !important;text-indent:initial;background-color:rgb(252.4,232.3,233);border-radius:4px;box-shadow:0 1px 1px rgba(229,28,35,.25)}.notice--danger h4,.notice--danger h3{margin-top:0 !important;margin-bottom:.75em !important}.page__content .notice--danger h4{margin-bottom:0;font-size:1em}.notice--danger p:last-child{margin-bottom:0 !important}.notice--danger h4+p{margin-top:0;padding-top:0}.notice--danger a{color:#e51c23}.notice--danger a:hover{color:rgb(137.4,16.8,21)}.notice--danger .btn,.notice--danger #goog-wm-sb{color:#fff}.notice--danger .btn--inverse{color:#212121}.notice--danger code{background-color:rgb(253.7,243.65,244)}.notice--danger pre code{background-color:inherit}.notice--danger ul:last-child{margin-bottom:0}.masthead{position:sticky;top:0;background-color:#fff;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.15s;animation-delay:.15s;z-index:20;transition:all .3s}
180.masthead__inner-wrap{clear:both}.masthead__inner-wrap::after{clear:both;content:"";display:table}.masthead__inner-wrap{margin-left:auto;margin-right:auto;padding:1.25em 1em;max-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;transition:all .3s}@media(min-width: 84.375em){.masthead__inner-wrap{max-width:1350px}}.masthead__inner-wrap nav{z-index:10}.masthead__inner-wrap a{text-decoration:none}.masthead--sticky{box-shadow:rgba(2,23,49,.15) 0px 10px 30px 0px}.masthead--sticky .masthead__inner-wrap{padding:1em 1em}.site-logo img{height:48px}@media(min-width: 48em){.site-logo img{height:24px}}@media(min-width: 64em){.site-logo img{height:48px}}.site-title{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:center;align-self:center;font-weight:bold;z-index:20}.site-subtitle{display:block;font-size:.625em}.masthead__menu{float:left;margin-left:0;margin-right:0;width:100%;clear:both}.masthead__menu .site-nav{margin-left:0}@media(min-width: 37.5em){.masthead__menu .site-nav{float:right}}.masthead__menu ul{margin:0;padding:0;clear:both;list-style-type:none}.masthead__menu-item{display:block;list-style-type:none;white-space:nowrap}.masthead__menu-item--lg{padding-right:2em;font-weight:700}.masthead__divider{display:inline-block;vertical-align:middle;margin:0 16px;width:1px;height:48px;background:#d2dade}.breadcrumbs{clear:both}.breadcrumbs::after{clear:both;content:"";display:table}.breadcrumbs{margin:0 auto;max-width:100%;padding-left:1em;padding-right:1em;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.3s;animation-delay:.3s}@media(min-width: 84.375em){.breadcrumbs{max-width:1350px}}.breadcrumbs ol{padding:0;list-style:none;font-size:.8em}@media(min-width: 64em){.breadcrumbs ol{float:right;width:calc(100% - 200px)}}@media(min-width: 84.375em){.breadcrumbs ol{width:calc(100% - 300px)}}.breadcrumbs li{display:inline}.breadcrumbs .current{font-weight:bold}.pagination{clear:both}.pagination::after{clear:both;content:"";display:table}.pagination{float:left;margin-top:1em;padding-top:1em;width:100%}.pagination ul{margin:0;padding:0;list-style-type:none;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}.pagination li{display:block;float:left;margin-left:-1px}.pagination li a{display:block;margin-bottom:.25em;padding:.5em 1em;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:bold;line-height:1.5;text-align:center;text-decoration:none;color:#666;border:1px solid hsl(0,0%,70.125%);border-radius:0}.pagination li a:hover{color:rgb(178.5,55.3,0)}.pagination li a.current,.pagination li a.current.disabled{color:#fff;background:#ff4f00}.pagination li a.disabled{color:hsla(0,0%,40%,.5);pointer-events:none;cursor:not-allowed}.pagination li:first-child{margin-left:0}.pagination li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination--pager{display:block;padding:1em 2em;float:left;width:50%;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1em;font-weight:bold;text-align:center;text-decoration:none;color:#666;border:1px solid hsl(0,0%,70.125%);border-radius:4px}.pagination--pager:hover{background-color:#666;color:#fff}.pagination--pager:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.pagination--pager:last-child{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.pagination--pager.disabled{color:hsla(0,0%,40%,.5);pointer-events:none;cursor:not-allowed}.page__content+.pagination,.page__meta+.pagination,.comment__date+.pagination,.page__share+.pagination,.page__comments+.pagination{margin-top:2em;padding-top:2em;border-top:1px solid hsl(0,0%,93.5%)}.greedy-nav{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:2em;background:#fff}.greedy-nav a{display:block;margin:0 1rem;color:#ff4f00;text-decoration:none}.greedy-nav a:hover{color:rgb(178.5,55.3,0)}.greedy-nav a.site-logo{margin-left:0;margin-right:0;display:flex;align-items:center}.greedy-nav a.site-title{margin-left:-4px;color:#212121;font-weight:300;margin-bottom:-2px;font-size:1.1em}@media(min-width: 48em){.greedy-nav a.site-title{font-weight:300}}@media(min-width: 64em){.greedy-nav a.site-title{font-weight:200}}.greedy-nav a.site-title:hover{text-decoration:underline}.greedy-nav__toggle{-ms-flex-item-align:center;align-self:center;border:0;outline:none;background-color:rgba(0,0,0,0);cursor:pointer;color:#ff4f00;padding:0}.greedy-nav .visible-links{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;align-items:center}.greedy-nav .visible-links li{-webkit-box-flex:0;-ms-flex:none;flex:none}.greedy-nav .visible-links a{position:relative}.greedy-nav .visible-links a::before{content:"";position:relative;display:block;height:2px;width:100%}.greedy-nav .visible-links a:after{content:"";position:relative;display:block;left:0;bottom:0;height:2px;background:rgb(178.5,55.3,0);width:0;transition:all .3s}.greedy-nav .visible-links a:hover:after{width:100%}.greedy-nav .hidden-links{position:absolute;top:100%;right:0;margin-top:15px;padding:5px;border:1px solid hsl(0,0%,93.5%);border-radius:4px;background:#fff;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.greedy-nav .hidden-links.hidden{display:none}.greedy-nav .hidden-links a{margin:0;padding:10px 20px;font-size:1em}.greedy-nav .hidden-links a:hover{color:rgb(178.5,55.3,0);background:rgb(178.5,55.3,0)}.greedy-nav .hidden-links:before{content:"";position:absolute;top:-11px;right:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:hsl(0,0%,93.5%) rgba(0,0,0,0);display:block;z-index:0}.greedy-nav .hidden-links:after{content:"";position:absolute;top:-10px;right:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#fff rgba(0,0,0,0);display:block;z-index:1}.greedy-nav .hidden-links li{display:block;border-bottom:1px solid hsl(0,0%,93.5%)}.greedy-nav .hidden-links li:last-child{border-bottom:none}.masthead--sticky a.site-logo::after{width:0;overflow:hidden}.no-js .greedy-nav .visible-links{-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:visible}.nav__list{display:grid;margin-bottom:1.5em}.nav__list input[type=checkbox],.nav__list label{display:none}@media(max-width: 47.9375em){.nav__list label{position:relative;display:inline-block;padding:.5em 2.5em .5em 1em;color:#666;font-size:.8em;font-weight:bold;border:1px solid #bbb;border-radius:4px;z-index:20;
180-webkit-transition:.2s ease-out;transition:.2s ease-out;cursor:pointer}.nav__list label:before,.nav__list label:after{content:"";position:absolute;right:1em;top:1.25em;width:.75em;height:.125em;line-height:1;background-color:#666;-webkit-transition:.2s ease-out;transition:.2s ease-out}.nav__list label:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.nav__list label:hover{color:#fff;border-color:#666;background-color:#333}.nav__list label:hover:before,.nav__list label:hover:after{background-color:#fff}.nav__list input:checked+label{color:#fff;background-color:#333}.nav__list input:checked+label:before,.nav__list input:checked+label:after{background-color:#fff}.nav__list label:hover:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.nav__list input:checked+label:hover:after{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}.nav__list ul{margin-bottom:1em}.nav__list a{display:block;padding:.25em 0}}@media(max-width: 47.9375em)and (min-width: 64em){.nav__list a{padding-top:.125em;padding-bottom:.125em}}@media(max-width: 47.9375em){.nav__list a:hover{text-decoration:underline}}.nav__list .nav__sub-titles{margin:0}.nav__list .nav__sub-titles .active,.nav__list .nav__sub-titles .active:hover,.nav__list .nav__sub-titles .active:focus{color:#ff4f00}@media(max-width: 47.9375em){.nav__list .nav__sub-titles{position:relative;max-height:0;opacity:0%;overflow:hidden;z-index:10;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out;-webkit-transform:translate(0, 10%);-ms-transform:translate(0, 10%);transform:translate(0, 10%)}}@media(max-width: 47.9375em){.nav__list input:checked~.nav__sub-titles{-webkit-transition:.5s ease-in-out;transition:.5s ease-in-out;max-height:9999px;overflow:visible;opacity:1;margin-top:1em;-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}}.nav__title{margin:0;padding:.5rem .75rem;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1em;font-weight:bold}.nav__sub-titles{display:grid}.nav__sub-titles>li{display:grid}.nav__sub-titles>li:not(:first-child){border-top:1px solid hsl(0,0%,93.5%)}.nav__sub-titles .nav__sub-title{padding:.5em;text-transform:uppercase;border:0px;background-color:rgba(0,0,0,0);color:#212121;display:flex;align-items:center;font-size:.9em}.nav__sub-titles .nav__sub-title.active{color:#ff4f00}.nav__sub-titles .nav__sub-title:hover{background-color:hsl(0,0%,93.5%)}.nav__sub-titles .nav__sub-title:focus{outline:none}.nav__children{display:grid;margin-bottom:.5em}.nav__children .nav__child{display:flex;align-items:center;font-size:.9em;color:#212121;padding:0 .5em;border-radius:3px;flex:1;font-weight:300;height:28px}.nav__children .nav__child:hover,.nav__children .nav__child:focus{background-color:hsl(0,0%,93.5%)}.toc{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;color:#666;font-size:1em}@media(min-width: 48em){.toc .active::before{background-image:url("../../images/icons/right-arrow-mini.png");background-size:22px 22px}}.toc .active a{color:#ff4f00;font-weight:400}.toc--sticky{position:sticky;top:4em}.toc__title{font-size:.8em;padding:.5em 0;color:#666;opacity:.8}@media(min-width: 48em){.toc__title{margin-left:22px}}.toc__menu{margin:0;padding:0;width:100%;list-style:none;font-size:.8em}@media(min-width: 64em){.toc__menu{font-size:.6875em}}.toc__menu li{display:flex;align-items:center}@media(min-width: 48em){.toc__menu li::before{display:inline-block;height:22px;width:22px;content:" "}}.toc__menu a{align-items:center;padding:.5em 0;color:#666;line-height:1.3;font-size:1.3em;border-top:1px solid hsl(0,0%,93.5%);font-weight:300;flex:1}.toc__menu a:hover{color:#ff4f00}.toc__menu li ul>li a{padding-left:1.25rem;font-weight:normal}.toc__menu li ul li ul>li a{padding-left:1.75rem}.toc__menu li ul li ul li ul>li a{padding-left:2.25rem}.toc__menu li ul li ul li ul li ul>li a{padding-left:2.75rem}.toc__menu li ul li ul li ul li ul li ul>li a{padding-left:3.25rem}.toc__menu--tub{margin:0;padding:0;width:200px;list-style:none;font-size:.8em}@media(min-width: 64em){.toc__menu--tub{font-size:.6875em}}.toc__menu--tub li{display:flex;align-items:center}.toc__menu--tub a{align-items:center;padding:.5em;color:#666;line-height:1.3;font-size:18px;font-weight:300;flex:1}.toc__menu--tub a:hover{color:#ff4f00;background-color:#f5f5f5}.toc__menu--tub li ul>li a{padding-left:1.25rem;font-weight:normal}.toc__menu--tub li ul li ul>li a{padding-left:1.75rem}.toc__menu--tub li ul li ul li ul>li a{padding-left:2.25rem}.toc__menu--tub li ul li ul li ul li ul>li a{padding-left:2.75rem}.toc__menu--tub li ul li ul li ul li ul li ul>li a{padding-left:3.25rem}
180.api-guide-navigation{display:grid;grid-template-columns:repeat(auto-fill, minmax(120px, 1fr));grid-gap:24px}@media(min-width: 48em){.api-guide-navigation{grid-template-columns:repeat(auto-fill, minmax(300px, 1fr))}}.api-guide-navigation__item{text-decoration:none !important;border-radius:8px;box-shadow:0px 10px 40px 0px rgba(0,0,0,.1019607843);text-align:center}@media(min-width: 48em){.api-guide-navigation__item{display:flex;text-align:left}}.api-guide-navigation__item:hover,.api-guide-navigation__item:active{box-shadow:0px 10px 40px 0px rgba(0,0,0,.2)}.api-guide-navigation__image{box-shadow:none !important;background-color:#103251;min-width:100px;border-radius:8px 8px 0 0}@media(min-width: 48em){.api-guide-navigation__image{border-radius:8px 0 0 8px;width:100px}}.api-guide-navigation__text{border-radius:0 0 8px 8px;padding:12px;place-self:center;flex:1}@media(min-width: 48em){.api-guide-navigation__text{border-radius:0 8px 8px 0}}.api-guide-navigation__title{margin:0;line-height:1;margin-bottom:8px;font-size:1em}.api-guide-navigation__excerpt{font-size:.8em !important;margin:0 !important;color:#212121 !important;line-height:1.2}.language-navigation{display:flex;flex-wrap:wrap}.language-navigation__item{margin:0 16px 16px 0;text-decoration:none !important;display:flex;box-shadow:0px 5px 20px 0px rgba(0,0,0,.1019607843);padding:3px 12px;border-radius:4px}.language-navigation__item:hover,.language-navigation__item:active{box-shadow:0px 5px 20px 0px rgba(0,0,0,.2)}.language-navigation__item:hover .language-navigation__language,.language-navigation__item:active .language-navigation__language{color:#212121}.language-navigation__image{max-height:40px;max-width:40px;display:flex;margin-right:6px}.language-navigation__image img{width:100%;place-self:center}.language-navigation__language{margin:0;font-weight:400;place-self:center;font-size:.9em;color:#666}.page__footer{clear:both}.page__footer::after{clear:both;content:"";display:table}.page__footer{float:left;margin-left:0;margin-right:0;width:100%;clear:both;margin-top:3em;color:#666;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.45s;animation-delay:.45s;background-color:hsl(0,0%,93.5%)}.page__footer footer{clear:both}.page__footer footer::after{clear:both;content:"";display:table}.page__footer footer{margin-left:auto;margin-right:auto;margin-top:2em;max-width:100%;padding:0 1em 2em}@media(min-width: 84.375em){.page__footer footer{max-width:1350px}}.page__footer a{color:inherit;text-decoration:none}.page__footer a:hover{text-decoration:underline}.page__footer .fas,.page__footer .fab,.page__footer .far,.page__footer .fal{color:#666}.page__footer-copyright{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em}.page__footer-follow ul{margin:0;padding:0;list-style-type:none}.page__footer-follow li{display:inline-block;padding-top:5px;padding-bottom:5px;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1em;text-transform:uppercase}.page__footer-follow li+li:before{content:"";padding-right:5px}.page__footer-follow a{padding-right:10px;font-weight:bold}.page__footer-follow .social-icons a{white-space:nowrap}.layout--search .archive__item-teaser{margin-bottom:.25em}.search__toggle{margin-left:.5em;margin-right:.5em;border:0;outline:none;color:#ff4f00;background-color:rgba(0,0,0,0);cursor:pointer;-webkit-transition:.2s;transition:.2s;padding:0}.search__toggle:hover{color:rgb(191.25,59.25,0)}.search-icon{width:100%;height:100%}.search-content{display:none;visibility:hidden;padding-top:1em;padding-bottom:1em}.search-content__inner-wrap{width:100%;margin-left:auto;margin-right:auto;padding-left:1em;padding-right:1em;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.15s;animation-delay:.15s}@media(min-width: 84.375em){.search-content__inner-wrap{max-width:1350px}}.search-content__form{background-color:rgba(0,0,0,0)}.search-content .search-input{display:block;margin-bottom:0;padding:0;border:none;outline:none;box-shadow:none;background-color:rgba(0,0,0,0);font-size:1.563em}@media(min-width: 64em){.search-content .search-input{font-size:1.953em}}@media(min-width: 84.375em){.search-content .search-input{font-size:2.441em}}.search-content.is--visible{display:block;visibility:visible}.search-content.is--visible::after{content:"";display:block}.search-content .results__found{margin-top:.5em;font-size:.8em}.search-content .archive__item{margin-bottom:2em}@media(min-width: 64em){.search-content .archive__item{width:75%}}@media(min-width: 84.375em){.search-content .archive__item{width:50%}}.search-content .archive__item-title{margin-top:0}.search-content .archive__item-excerpt{margin-bottom:0}.ais-search-box{max-width:100% !important;margin-bottom:2em}.archive__item-title .ais-Highlight{color:#ff4f00;font-style:normal;text-decoration:underline}.archive__item-excerpt .ais-Highlight{color:#ff4f00;font-style:normal;font-weight:bold}div.highlighter-rouge,figure.highlight{position:relative;margin-bottom:1em;background:#263238;color:#eff;font-family:Monaco,Consolas,"Lucida Console",monospace;font-size:.8em;line-height:1.8;border-radius:4px}div.highlighter-rouge>pre,div.highlighter-rouge pre.highlight,figure.highlight>pre,figure.highlight pre.highlight{margin:0;padding:1em}.highlight table{margin-bottom:0;font-size:1em;border:0}.highlight table td{padding:0;width:calc(100% - 1em);border:0}.highlight table td.gutter,.highlight table td.rouge-gutter{padding-right:1em;width:1em;color:#b2ccd6;border-right:1px solid #b2ccd6;text-align:right}.highlight table td.code,.highlight table td.rouge-code{padding-left:1em}.highlight table pre{margin:0}.highlight pre{width:100%}.highlight .hll{background-color:#eff}.highlight .c{color:#b2ccd6}.highlight .err{color:#f07178}.highlight .k{color:#c792ea}.highlight .l{color:#f78c6c}.highlight .n{color:#eff}.highlight .o{color:#89ddff}.highlight .p{color:#eff}.highlight .cm{color:#b2ccd6}.highlight .cp{color:#b2ccd6}.highlight .c1{color:#b2ccd6}.highlight .cs{color:#b2ccd6}.highlight .gd{color:#f07178}.highlight .ge{font-style:italic}.highlight .gh{color:#eff;font-weight:bold}.highlight .gi{color:#c3e88d}.highlight .gp{color:#b2ccd6;font-weight:bold}.highlight .gs{font-weight:bold}.highlight .gu{color:#89ddff;font-weight:bold}.highlight .kc{color:#c792ea}.highlight .kd{color:#c792ea}.highlight .kn{color:#89ddff}.highlight .kp{color:#c792ea}.highlight .kr{color:#c792ea}.highlight .kt{color:#ffcb6b}.highlight .ld{color:#c3e88d}.highlight .m{color:#f78c6c}.highlight .s{color:#c3e88d}.highlight .na{color:#82aaff}.highlight .nb{color:#eff}.highlight .nc{color:#ffcb6b}.highlight .no{color:#f07178}.highlight .nd{color:#89ddff}.highlight .ni{color:#eff}.highlight .ne{color:#f07178}.highlight .nf{color:#82aaff}.highlight .nl{color:#eff}.highlight .nn{color:#ffcb6b}.highlight .nx{color:#82aaff}.highlight .py{color:#eff}.highlight .nt{color:#89ddff}.highlight .nv{color:#f07178}.highlight .ow{color:#89ddff}.highlight .w{color:#eff}
180.highlight .mf{color:#f78c6c}.highlight .mh{color:#f78c6c}.highlight .mi{color:#f78c6c}.highlight .mo{color:#f78c6c}.highlight .sb{color:#c3e88d}.highlight .sc{color:#eff}.highlight .sd{color:#b2ccd6}.highlight .s2{color:#c3e88d}.highlight .se{color:#f78c6c}.highlight .sh{color:#c3e88d}.highlight .si{color:#f78c6c}.highlight .sx{color:#c3e88d}.highlight .sr{color:#c3e88d}.highlight .s1{color:#c3e88d}.highlight .ss{color:#c3e88d}.highlight .bp{color:#eff}.highlight .vc{color:#f07178}.highlight .vg{color:#f07178}.highlight .vi{color:#f07178}.highlight .il{color:#f78c6c}.gist th,.gist td{border-bottom:0}.hidden,.is--hidden{display:none;visibility:hidden}.load{display:none}.transparent{opacity:0}.visually-hidden,.screen-reader-text,.screen-reader-text span,.screen-reader-shortcut{position:absolute !important;clip:rect(1px, 1px, 1px, 1px);height:1px !important;width:1px !important;border:0 !important;overflow:hidden}body:hover .visually-hidden a,body:hover .visually-hidden input,body:hover .visually-hidden button{display:none !important}.screen-reader-text:focus,.screen-reader-shortcut:focus{clip:auto !important;height:auto !important;width:auto !important;display:block;font-size:1em;font-weight:bold;padding:15px 23px 14px;background:#fff;z-index:100000;text-decoration:none;box-shadow:0 0 2px 2px rgba(0,0,0,.6)}.skip-link{position:fixed;z-index:20;margin:0;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;white-space:nowrap}.skip-link li{height:0;width:0;list-style:none}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.task-list{padding:0}.task-list li{list-style-type:none}.task-list .task-list-item-checkbox{margin-right:.5em;opacity:1}.task-list .task-list{margin-left:1em}.cf{clear:both}.wrapper{margin-left:auto;margin-right:auto;width:100%}.align-left{display:block;margin-left:auto;margin-right:auto}@media(min-width: 37.5em){.align-left{float:left;margin-right:1em}}.align-right{display:block;margin-left:auto;margin-right:auto}@media(min-width: 37.5em){.align-right{float:right;margin-left:1em}}.align-center{display:block;margin-left:auto;margin-right:auto}@media(min-width: 64em){.full{margin-right:-20.3389830508% !important}}.bw-logos{display:inline-block;filter:grayscale(100%);width:5em;height:5.1em;position:relative;top:-0.1em;vertical-align:middle}.icon{display:inline-block;fill:currentColor;width:20px;line-height:1;position:relative;top:-0.1em;vertical-align:middle}.social-icons .fas,.social-icons .fab,.social-icons .far,.social-icons .fal{color:#212121}.social-icons .fa-behance,.social-icons .fa-behance-square{color:#1769ff}.social-icons .fa-bitbucket{color:#205081}.social-icons .fa-dribbble,.social-icons .fa-dribble-square{color:#ea4c89}.social-icons .fa-facebook,.social-icons .fa-facebook-square,.social-icons .fa-facebook-f{color:#3b5998}.social-icons .fa-flickr{color:#ff0084}.social-icons .fa-foursquare{color:#0072b1}.social-icons .fa-github,.social-icons .fa-github-alt,.social-icons .fa-github-square{color:#171516}.social-icons .fa-gitlab{color:#e24329}.social-icons .fa-instagram{color:#517fa4}.social-icons .fa-keybase{color:#ef7639}.social-icons .fa-lastfm,.social-icons .fa-lastfm-square{color:#d51007}.social-icons .fa-linkedin,.social-icons .fa-linkedin-in{color:#007bb6}.social-icons .fa-mastodon,.social-icons .fa-mastodon-square{color:#2b90d9}.social-icons .fa-pinterest,.social-icons .fa-pinterest-p,.social-icons .fa-pinterest-square{color:#cb2027}.social-icons .fa-reddit{color:#ff4500}.social-icons .fa-rss,.social-icons .fa-rss-square{color:#fa9b39}.social-icons .fa-soundcloud{color:#f30}.social-icons .fa-stack-exchange,.social-icons .fa-stack-overflow{color:#fe7a15}.social-icons .fa-tumblr,.social-icons .fa-tumblr-square{color:#32506d}.social-icons .fa-twitter,.social-icons .fa-twitter-square{color:#55acee}.social-icons .fa-vimeo,.social-icons .fa-vimeo-square,.social-icons .fa-vimeo-v{color:#1ab7ea}.social-icons .fa-vine{color:#00bf8f}.social-icons .fa-youtube{color:#b00}.social-icons .fa-xing,.social-icons .fa-xing-square{color:#006567}.navicon{position:relative;width:1.5rem;height:.25rem;background:#ff4f00;margin:auto;-webkit-transition:.3s;transition:.3s}.navicon:before,.navicon:after{content:"";position:absolute;
180left:0;width:1.5rem;height:.25rem;background:#ff4f00;-webkit-transition:.3s;transition:.3s}.navicon:before{top:-0.5rem}.navicon:after{bottom:-0.5rem}.close .navicon{background:rgba(0,0,0,0)}.close .navicon:before,.close .navicon:after{-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;top:0;width:1.5rem}.close .navicon:before{-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg)}.close .navicon:after{-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg)}.greedy-nav__toggle:hover .navicon,.greedy-nav__toggle:hover .navicon:before,.greedy-nav__toggle:hover .navicon:after{background:rgb(191.25,59.25,0)}.greedy-nav__toggle:hover.close .navicon{background:rgba(0,0,0,0)}@media(min-width: 64em){.sticky{clear:both}.sticky::after{clear:both;content:"";display:table}.sticky{position:-webkit-sticky;position:sticky;top:2em}.sticky>*{display:block}}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.show-modal{overflow:hidden;position:relative}.show-modal:before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;z-index:999;background-color:hsla(0,0%,100%,.85)}.show-modal .modal{display:block}.modal{display:none;position:fixed;width:300px;top:50%;left:50%;margin-left:-150px;margin-top:-150px;min-height:0;z-index:9999;background:#fff;border:1px solid hsl(0,0%,93.5%);border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.125)}.modal__title{margin:0;padding:.5em 1em}.modal__supporting-text{padding:0 1em .5em 1em}.modal__actions{padding:.5em 1em;border-top:1px solid hsl(0,0%,93.5%)}.footnote{color:hsl(0,0%,55%);text-decoration:none}.footnotes{color:hsl(0,0%,55%)}.footnotes ol,.footnotes li,.footnotes p{margin-bottom:0;font-size:.8em}a.reversefootnote{color:#666;text-decoration:none}a.reversefootnote:hover{text-decoration:underline}.required{color:#e51c23;font-weight:bold}.gsc-control-cse table,.gsc-control-cse tr,.gsc-control-cse td{border:0}.responsive-video-container{position:relative;margin-bottom:1em;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.responsive-video-container iframe,.responsive-video-container object,.responsive-video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}:-webkit-full-screen-ancestor .masthead,:-webkit-full-screen-ancestor .page__footer{position:static}#main{clear:both}#main::after{clear:both;content:"";display:table}#main{margin-left:auto;margin-right:auto;padding-left:1em;padding-right:1em;-webkit-animation:intro .3s both;animation:intro .3s both;max-width:100%;-webkit-animation-delay:.15s;animation-delay:.15s}@media(min-width: 84.375em){#main{max-width:1350px}}body{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:100vh;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.initial-content,.search-content{flex:1 0 auto}@media(min-width: 64em){.page{float:right;width:calc(100% - 200px);padding-right:200px}}@media(min-width: 84.375em){.page{width:calc(100% - 300px);padding-right:300px}}.page .page__inner-wrap{float:left;margin-top:1em;margin-left:0;margin-right:0;width:100%;clear:both}.page .page__inner-wrap .page__content,.page .page__inner-wrap .page__meta,.page .page__inner-wrap .comment__date,.page .page__inner-wrap .page__share{position:relative;float:left;margin-left:0;margin-right:0;width:100%;clear:both}.page__title{margin-top:0;line-height:1}.page__title+.page__meta,.page__title+.comment__date{margin-top:-0.5em}.page__lead{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1.25em}.page__content h2{padding-bottom:.5em;border-bottom:1px solid hsl(0,0%,93.5%)}.page__content h1 .header-link,.page__content h2 .header-link,.page__content h3 .header-link,.page__content h4 .header-link,.page__content h5 .header-link,.page__content h6 .header-link{position:relative;left:.5em;opacity:0;font-size:.8em;-webkit-transition:opacity .2s ease-in-out .1s;-moz-transition:opacity .2s ease-in-out .1s;-o-transition:opacity .2s ease-in-out .1s;transition:opacity .2s ease-in-out .1s}.page__content h1:hover .header-link,.page__content h2:hover .header-link,.page__content h3:hover .header-link,.page__content h4:hover .header-link,.page__content h5:hover .header-link,.page__content h6:hover .header-link{opacity:1}.page__content p,.page__content li,.page__content dl{font-size:1em}.page__content p{margin:0 0 1.3em}
180.page__content a:not(.btn):not(#goog-wm-sb):hover{text-decoration:underline}.page__content a:not(.btn):not(#goog-wm-sb):hover img{box-shadow:0 0 10px rgba(0,0,0,.25)}.page__content dt{margin-top:1em;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold}.page__content dd{margin-left:1em;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em}.page__content .small{font-size:.8em}.page__content blockquote+.small{margin-top:-1.5em;padding-left:1.25rem}.page__hero{position:relative;margin-bottom:2em;clear:both}.page__hero::after{clear:both;content:"";display:table}.page__hero{-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.25s;animation-delay:.25s}.page__hero--overlay{position:relative;margin-bottom:2em;padding:3em 0;clear:both}.page__hero--overlay::after{clear:both;content:"";display:table}.page__hero--overlay{background-size:cover;background-repeat:no-repeat;background-position:center;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.25s;animation-delay:.25s}.page__hero--overlay a{color:#fff}.page__hero--overlay .wrapper{padding-left:1em;padding-right:1em}@media(min-width: 84.375em){.page__hero--overlay .wrapper{max-width:1350px}}.page__hero--overlay .page__title,.page__hero--overlay .page__meta,.page__hero--overlay .comment__date,.page__hero--overlay .page__lead,.page__hero--overlay .btn,.page__hero--overlay #goog-wm-sb{color:#fff;text-shadow:1px 1px 4px rgba(0,0,0,.5)}.page__hero--overlay .page__lead{max-width:768px}.page__hero--overlay .page__title{font-size:1.953em}@media(min-width: 37.5em){.page__hero--overlay .page__title{font-size:2.441em}}.page__hero-image{width:100%;height:auto;-ms-interpolation-mode:bicubic}.page__hero-caption{position:absolute;bottom:0;right:0;margin:0 auto;padding:2px 5px;color:#fff;font-family:Georgia,Times,serif;font-size:.6875em;background:#000;text-align:right;z-index:5;opacity:.5;border-radius:4px 0 0 0}@media(min-width: 64em){.page__hero-caption{padding:5px 10px}}.page__hero-caption a{color:#fff;text-decoration:none}.page__share{margin-top:2em;padding-top:1em;border-top:1px solid hsl(0,0%,93.5%)}@media(max-width: 37.5em){.page__share .btn span,.page__share #goog-wm-sb span{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}}.page__share-title{margin-bottom:10px;font-size:.8em;text-transform:uppercase}.page__meta,.comment__date{margin-top:2em;color:#666;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em}.page__meta p,.comment__date p{margin:0}.page__meta a,.comment__date a{color:inherit}.page__meta-title{margin-bottom:10px;font-size:.8em;text-transform:uppercase}.page__taxonomy .sep{display:none}.page__taxonomy strong{margin-right:10px}.page__taxonomy-item{display:inline-block;margin-right:5px;margin-bottom:8px;padding:5px 10px;text-decoration:none;border:1px solid hsl(0,0%,70.125%);border-radius:4px}.page__taxonomy-item:hover{text-decoration:none;color:rgb(178.5,55.3,0)}.taxonomy__section{margin-bottom:2em;padding-bottom:1em}.taxonomy__section:not(:last-child){border-bottom:solid 1px hsl(0,0%,93.5%)}.taxonomy__section .archive__item-title{margin-top:0}.taxonomy__section .archive__subtitle{clear:both;border:0}.taxonomy__section+.taxonomy__section{margin-top:2em}.taxonomy__title{margin-bottom:.5em;color:#bababa}.taxonomy__count{color:rgb(160.5,160.5,160.5)}.taxonomy__index{display:grid;grid-column-gap:2em;grid-template-columns:repeat(2, 1fr);margin:1.414em 0;padding:0;font-size:.75em;list-style:none}@media(min-width: 64em){.taxonomy__index{grid-template-columns:repeat(3, 1fr)}}.taxonomy__index a{display:-webkit-box;display:-ms-flexbox;display:flex;padding:.25em 0;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;color:inherit;text-decoration:none;border-bottom:1px solid hsl(0,0%,93.5%)}.back-to-top{display:block;clear:both;color:rgb(160.5,160.5,160.5);font-size:.6em;text-transform:uppercase;text-align:right;text-decoration:none}.page__comments{float:left;margin-left:0;margin-right:0;width:100%;clear:both}.page__comments-title{margin-top:2rem;margin-bottom:10px;padding-top:2rem;font-size:.8em;border-top:1px solid hsl(0,0%,93.5%);text-transform:uppercase}.page__comments-form{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.page__comments-form.disabled input,.page__comments-form.disabled button,.page__comments-form.disabled textarea,.page__comments-form.disabled label{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:.65}
180.comment{clear:both}.comment::after{clear:both;content:"";display:table}.comment{margin:1em 0}.comment:not(:last-child){border-bottom:1px solid hsl(0,0%,93.5%)}.comment__avatar-wrapper{float:left;width:60px;height:60px}@media(min-width: 64em){.comment__avatar-wrapper{width:100px;height:100px}}.comment__avatar{width:40px;height:40px;border-radius:50%}@media(min-width: 64em){.comment__avatar{width:80px;height:80px;padding:5px;border:1px solid hsl(0,0%,93.5%)}}.comment__content-wrapper{float:right;width:calc(100% - 60px)}@media(min-width: 64em){.comment__content-wrapper{width:calc(100% - 100px)}}.comment__author{margin:0}.comment__author a{text-decoration:none}.comment__date{margin:0}.comment__date a{text-decoration:none}.page__related{clear:both}.page__related::after{clear:both;content:"";display:table}.page__related{float:left;margin-top:2em;padding-top:1em;border-top:1px solid hsl(0,0%,93.5%)}@media(min-width: 64em){.page__related{float:right;width:calc(100% - 200px)}}@media(min-width: 84.375em){.page__related{width:calc(100% - 300px)}}.page__related a{color:inherit;text-decoration:none}.page__related-title{margin-bottom:10px;font-size:.8em;text-transform:uppercase}@media(min-width: 64em){.wide .page{padding-right:0}}@media(min-width: 84.375em){.wide .page{padding-right:0}}@media(min-width: 64em){.wide .page__related{padding-right:0}}@media(min-width: 84.375em){.wide .page__related{padding-right:0}}.archive{margin-top:1em;margin-bottom:2em}@media(min-width: 64em){.archive{float:right;width:calc(100% - 200px);padding-right:200px}}@media(min-width: 84.375em){.archive{width:calc(100% - 300px);padding-right:300px}}.archive-card-grid{display:grid;grid-gap:20px;width:100%}@media(min-width: 48em){.archive-card-grid{grid-template-columns:repeat(auto-fill, minmax(420px, 1fr));grid-gap:40px}}@media(min-width: 48em){.archive-card-grid--mini{grid-template-columns:repeat(auto-fit, minmax(380px, 1fr));grid-gap:20px}}a:-webkit-any-link.archive-card{text-decoration-line:none}.archive-card{background-color:#fff;box-shadow:rgba(2,23,49,.14) 0px 42px 84px 0px;border-radius:8px;overflow:hidden;cursor:pointer;z-index:2;display:flex;text-decoration-line:none}.archive-card:hover{transform:scale(1.02)}@media(min-width: 37.5em){.archive-card{min-height:150px}}.archive-card__teaser{background-color:#103251;width:150px;display:flex;place-items:center}.archive-card__text{flex:1;padding:20px 20px 10px;display:flex;flex-direction:column}.archive-card__categories{display:flex}.archive-card__categories p{border-radius:3px;margin:0 16px 0 0;line-height:1;font-size:.6875em;text-transform:uppercase;color:#bbb}.archive-card h2.archive-card__title{font-size:1.25em;line-height:1.1;margin:.5em 0;font-weight:400;letter-spacing:.5px}.archive-card__excerpt{font-size:1.25em;line-height:1.2;flex:1;color:#666;margin:0;font-weight:300}@media(min-width: 37.5em){.archive-card__excerpt{font-size:1em}}.archive-card__date{display:flex;justify-content:flex-end;color:#bbb;margin:0;font-size:.6875em}@media(min-width: 37.5em){.archive-card--mini{min-height:100px}}.archive-card--mini .archive-card__teaser{width:100px}.archive-card--mini .archive-card__title{font-size:1em}.archive-card--mini .archive-card__excerpt{display:none}.archive__item{position:relative}.archive__item a{position:relative;z-index:10}.archive__item a[rel=permalink]{position:static}.archive__subtitle{color:#666}.archive__item-title{margin-bottom:.25em;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;line-height:initial;overflow:hidden;text-overflow:ellipsis}.archive__item-title a[rel=permalink]::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0}.archive__item-title a{color:inherit;position:relative;text-decoration:none;color:#ff4f00;font-weight:400}.archive__item-title a+a{opacity:.5}.page__content .archive__item-title{margin-top:1em;border-bottom:none}.archive__item-excerpt{margin-top:0;font-size:.8em}.archive__item-excerpt+p{text-indent:0}.archive__item-excerpt a{position:relative}.archive__item-teaser{position:relative;border-radius:4px;overflow:hidden}.archive__item-teaser img{width:100%}.archive__item:hover .archive__item-teaser{box-shadow:0 0 10px rgba(0,0,0,.25)}
180.archive__item:hover .archive__item-title{text-decoration:underline}.archive__item-caption{position:absolute;bottom:0;right:0;margin:0 auto;padding:2px 5px;color:#fff;font-family:Georgia,Times,serif;font-size:.625em;background:#000;text-align:right;z-index:5;opacity:.5;border-radius:4px 0 0 0}@media(min-width: 64em){.archive__item-caption{padding:5px 10px}}.archive__item-caption a{color:#fff;text-decoration:none}.list__item .page__meta,.list__item .comment__date{margin:0 0 4px;font-size:.6em}@media(min-width: 64em){.archive .grid__wrapper{margin-right:-200px}}@media(min-width: 84.375em){.archive .grid__wrapper{margin-right:-300px}}.grid__item{margin-bottom:2em}@media(min-width: 37.5em){.grid__item{float:left;width:48.9795918367%}.grid__item:nth-child(2n+1){clear:both;margin-left:0}.grid__item:nth-child(2n+2){clear:none;margin-left:2.0408163265%}}@media(min-width: 48em){.grid__item{margin-left:0;margin-right:0;width:23.7288135593%}.grid__item:nth-child(2n+1){clear:none}.grid__item:nth-child(4n+1){clear:both}.grid__item:nth-child(4n+2){clear:none;margin-left:1.6949152542%}.grid__item:nth-child(4n+3){clear:none;margin-left:1.6949152542%}.grid__item:nth-child(4n+4){clear:none;margin-left:1.6949152542%}}.grid__item .page__meta,.grid__item .comment__date{margin:0 0 4px;font-size:.6em}.grid__item .archive__item-title{margin-top:.5em;font-size:1em}.grid__item .archive__item-excerpt{display:none}@media(min-width: 48em){.grid__item .archive__item-excerpt{display:block;font-size:.8em}}@media(min-width: 37.5em){.grid__item .archive__item-teaser{max-height:200px}}@media(min-width: 48em){.grid__item .archive__item-teaser{max-height:120px}}.feature__wrapper{clear:both}.feature__wrapper::after{clear:both;content:"";display:table}.feature__wrapper{margin-bottom:2em;border-bottom:1px solid hsl(0,0%,93.5%)}.feature__wrapper .archive__item-title{margin-bottom:0}.feature__item{position:relative;margin-bottom:2em;font-size:1.125em}@media(min-width: 37.5em){.feature__item{float:left;margin-bottom:0;width:18.3673469388%}.feature__item:nth-child(5n+1){clear:both;margin-left:0}.feature__item:nth-child(5n+2){clear:none;margin-left:2.0408163265%}.feature__item:nth-child(5n+3){clear:none;margin-left:2.0408163265%}.feature__item:nth-child(5n+4){clear:none;margin-left:2.0408163265%}.feature__item:nth-child(5n+5){clear:none;margin-left:2.0408163265%}.feature__item .feature__item-teaser{max-height:200px;overflow:hidden}}.feature__item .archive__item-body{padding-left:2.0408163265%;padding-right:2.0408163265%}.feature__item a.btn::before,.feature__item a#goog-wm-sb::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0}.feature__item--left{position:relative;float:left;margin-left:0;margin-right:0;width:100%;clear:both;font-size:1.125em}.feature__item--left .archive__item{float:left}.feature__item--left .archive__item-teaser{margin-bottom:2em}.feature__item--left a.btn::before,.feature__item--left a#goog-wm-sb::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0}@media(min-width: 37.5em){.feature__item--left .archive__item-teaser{float:left;width:40.6779661017%}.feature__item--left .archive__item-body{float:right;padding-left:2.0408163265%;padding-right:2.0408163265%;width:69.387755102%}}.feature__item--right{position:relative;float:left;margin-left:0;margin-right:0;width:100%;clear:both;font-size:1.125em}.feature__item--right .archive__item{float:left}.feature__item--right .archive__item-teaser{margin-bottom:2em}.feature__item--right a.btn::before,.feature__item--right a#goog-wm-sb::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0}@media(min-width: 37.5em){.feature__item--right{text-align:right}.feature__item--right .archive__item-teaser{float:right;width:40.6779661017%}.feature__item--right .archive__item-body{float:left;width:57.6271186441%;padding-left:2.0408163265%;padding-right:2.0408163265%}}.feature__item--center{position:relative;float:left;margin-left:0;margin-right:0;width:100%;clear:both;font-size:1.125em}.feature__item--center .archive__item{float:left;width:100%}.feature__item--center .archive__item-teaser{margin-bottom:2em}.feature__item--center a.btn::before,.feature__item--center a#goog-wm-sb::before{content:"";position:absolute;
180left:0;top:0;right:0;bottom:0}@media(min-width: 37.5em){.feature__item--center{text-align:center}.feature__item--center .archive__item-teaser{margin:0 auto;width:40.6779661017%}.feature__item--center .archive__item-body{margin:0 auto;width:57.6271186441%}}.archive .feature__wrapper .archive__item-title{margin-top:.25em;font-size:1em}.archive .feature__item,.archive .feature__item--left,.archive .feature__item--center,.archive .feature__item--right{font-size:1em}@media(min-width: 64em){.wide .archive{padding-right:0}}@media(min-width: 84.375em){.wide .archive{padding-right:0}}.layout--single .feature__wrapper{display:inline-block}.ebook-gallery{display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));width:100%;grid-gap:2em;margin-bottom:2em}.ebook-item{background-color:#fff;box-shadow:1px 2px 12px -4px rgba(15,49,81,.2509803922);text-decoration-line:none;border-radius:3px}.ebook-item:hover{box-shadow:1px 2px 16px -4px rgba(15,49,81,.2509803922)}.ebook-item__img{max-height:290px;overflow:hidden;border-radius:3px 3px 0 0}.ebook-item__img img{width:100%}.ebook-item__type{padding:16px 16px 8px;line-height:1;font-size:.6875em;text-transform:uppercase;color:#bbb;border-top-width:4px;border-top-style:solid}.ebook-item__type--ebook{border-top-color:#ff4f00}.ebook-item__type--case-study{border-top-color:#007aff}.ebook-item__type--infographic{border-top-color:#000}.ebook-item__title{margin:0 16px 1em;font-weight:400;font-size:1.15em}.ebook-body{background-image:linear-gradient(#ff4f00, orange);position:relative}.ebook-download__header{display:grid;color:#fff;margin:2em 0 1em;grid-auto-flow:dense;overflow:hidden}@media(min-width: 64em){.ebook-download__header--split{grid-template-columns:1fr 1fr;grid-template-rows:auto max-content}}.ebook-download__header--split{padding:0 2em}.ebook-download__header h1{margin-top:-1em;margin-bottom:10px;grid-column-start:1}@media(min-width: 84.375em){.ebook-download__header h1{font-size:2.75em}}.ebook-download__header .title-container{text-align:center;margin-left:25px}.ebook-download__header-logos{grid-column-start:1;display:flex;flex-wrap:wrap}@media(min-width: 84.375em){.ebook-download__header-logos{margin-bottom:1em}}.ebook-download__header-logos img{height:200px;display:block;margin-left:auto;margin-right:auto}.ebook-download__header-image{grid-row:span 2;place-self:center}.ebook-download__content .form-container{margin-top:16px}.ebook-download__content{background-color:hsla(0,0%,100%,.3);padding:0 5em;box-shadow:0 3px 10px rgba(0,0,0,.25)}@media(min-width: 64em){.ebook-download__content{display:grid;grid-column-gap:5em;grid-template-columns:1fr 1fr}}.ebook-download__content .page__footer{background-color:inherit;text-align:end}.ebook-download__content h1{margin-top:0em;padding-top:1em}.ebook-download__form{padding:2em 1em}.ebook-body-new{height:100%;width:100%;background:linear-gradient(0deg, #ffffff 60%, #e8e8e8 40%)}.ebook-download-new{display:grid;position:relative;grid-template-columns:1fr 1fr;column-gap:3em}.ebook-download-new__container-left{display:grid;grid-template-rows:1fr 1fr;row-gap:0;margin:0 1em}.ebook-download-new__container-left-image1{place-self:center;margin-bottom:-4.1em}.ebook-download-new__container-left-image2{place-self:center;margin-bottom:-5.5em}.ebook-download-new__container-left-image3{place-self:center;margin-bottom:-6.5em}.ebook-download-new__container-left-text{place-self:center}.ebook-download-new__container-left-text h1{margin-top:0}.ebook-download-new__container-left-text h2{margin-top:1em}.ebook-download-new__container-right{display:flex;flex-direction:column;margin:2em 1em}.ebook-download-new__container-right-logo{display:flex;place-self:center;align-self:center}.ebook-download-new__container-right-logo img{width:70%}.ebook-download-new__form{position:relative;max-width:500px;margin:2em 1em;padding:3em 2em;background-color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.25)}.guest-post-body{height:100%;width:100%;background:#fff}.guest-post{display:grid;position:relative;grid-template-columns:1fr 1fr;column-gap:3em}.guest-post__container-left{display:grid;row-gap:0;margin:1em 1em 0 0}.guest-post__container-left-image1{place-self:center;margin-bottom:-4.1em}.guest-post__container-left-image2{place-self:center;
180margin-bottom:-5.5em}.guest-post__container-left-image3{place-self:center;margin-bottom:-6.5em}.guest-post__container-left-text{place-self:center}.guest-post__container-left-text h1{margin-top:0}.guest-post__container-left-text h2{margin-top:1em}.guest-post__container-right{display:flex;flex-direction:column;margin:2em 1em}.guest-post__container-right-logo{display:flex;place-self:center;align-self:center}.guest-post__container-right-logo img{width:70%}.guest-post__form{position:relative;max-width:500px;margin:2em 1em;padding:3em 2em;background-color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.25)}.layout{display:flex;flex-direction:column}.content{flex:1;margin:0 auto;padding:1em;width:100%;display:grid;place-items:center}.content h1{justify-self:flex-start;margin:1em 0}@media(min-width: 84.375em){.content{max-width:1350px}}a:-webkit-any-link.carousel-item{text-decoration-line:none}.carousel-item{background-color:#fff;box-shadow:rgba(2,23,49,.14) 0px 42px 84px 0px;border-radius:8px;overflow:hidden;cursor:pointer;margin:20px 0 0 0;max-width:1100px;opacity:0;grid-area:1/1/2/2;transition:opacity 1s ease-in-out;display:grid;place-items:center}@media(min-width: 64em){.carousel-item{grid-template-columns:3fr 2fr}}.carousel-item:hover .carousel-item__title::after{width:100px}.carousel-item--active{opacity:1;z-index:10}@media(min-width: 64em){.carousel-item__image{min-width:100%;object-fit:cover}}.carousel-item__text{padding:1em;display:flex;flex-direction:column}@media(min-width: 48em){.carousel-item__text{padding:2em}}.carousel-item__header{color:#bbb;font-size:1em;margin:0}.carousel-item__title{font-size:1.563em;margin:0;line-height:1.2;margin:15px 0 10px;font-weight:300}.carousel-item__title::after{content:"";position:relative;display:block;left:0;bottom:0;height:2px;margin:10px 0;background:#b33700;width:0;transition:all .3s}.carousel-item__excerpt{font-size:1.25em;line-height:1.2;flex:1;color:#666;margin:0}.carousel-item__date{display:flex;justify-content:flex-end;color:#bbb;font-size:.8em;margin:0}.secondary-nav{width:100%;margin:1em 0;padding:10px 0;display:flex;flex-wrap:wrap}.secondary-nav__link{margin:4px;padding:0px 8px;border-radius:4px;border:1px solid;font-size:1em}.carousel{display:flex;justify-content:center;place-items:center}.carousel__items{display:grid}.carousel__prev,.carousel__next{cursor:pointer;font-weight:bold;font-size:18px;user-select:none;z-index:5;border-radius:3px;padding:10px}@media(min-width: 48em){.carousel__prev,.carousel__next{margin:10px}}.fade{animation-name:fade;animation-duration:1.5s}@keyframes fade{from{opacity:1}to{opacity:1}}.dot{cursor:pointer;height:8px;width:8px;margin:0 4px;background-color:#bbb;border-radius:50%;display:inline-block;transition:background-color .4s ease}.dot:hover,.dot.active{background-color:#ff4f00}.sidebar{clear:both}.sidebar::after{clear:both;content:"";display:table}@media(max-width: 64em){.sidebar{position:relative;z-index:10;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@media(min-width: 64em){.sidebar{float:left;width:calc(200px - 1em);opacity:1;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.sidebar:hover{opacity:1}.sidebar.sticky{overflow-y:auto;height:calc(100vh - 2em - 2em);padding-right:9px}}@media(min-width: 84.375em){.sidebar{width:calc(300px - 1em)}}.sidebar>*{margin-top:1em;margin-bottom:1em}.sidebar h2,.sidebar h3,.sidebar h4,.sidebar h5,.sidebar h6{margin-bottom:0;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}.sidebar p,.sidebar li{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em;line-height:1.5}.sidebar img{width:100%}.sidebar img.emoji{width:20px;height:20px}.sidebar__right{margin-bottom:1em}@media(min-width: 64em){.sidebar__right{position:absolute;top:0;right:0;width:200px;margin-right:-200px;padding-left:1em;z-index:10}.sidebar__right.sticky{clear:both}.sidebar__right.sticky::after{clear:both;content:"";display:table}.sidebar__right.sticky{position:-webkit-sticky;position:sticky;top:2em;float:right}}@media(min-width: 84.375em){.sidebar__right{width:300px;margin-right:-300px}}@media(min-width: 64em){.splash .sidebar__right{position:relative;float:right;margin-right:0}}@media(min-width: 84.375em){.splash .sidebar__right{margin-right:0}}.email-signup{margin-bottom:1em;padding:0;background:#fff}.email-signup .email{background:#ddd;
180width:200px}@media(min-width: 64em){.email-signup{float:right;z-index:10;width:200px;position:absolute}}@media(min-width: 84.375em){.email-signup{width:300px}}.author__avatar{display:table-cell;vertical-align:top;width:36px;height:36px}@media(min-width: 64em){.author__avatar{display:grid;width:auto;height:auto;place-content:center}}.author__avatar img{max-width:110px;border-radius:50%}@media(min-width: 64em){.author__avatar img{padding:5px;border:1px solid hsl(0,0%,93.5%)}}.author__avatar__large{display:table-cell;vertical-align:top;width:56px;height:56px}@media(min-width: 64em){.author__avatar__large{display:block;width:auto;height:auto}}.author__avatar__large img{max-width:190px;border-radius:50%}@media(min-width: 64em){.author__avatar__large img{padding:5px;border:1px solid hsl(0,0%,93.5%)}}.author__content{display:table-cell;vertical-align:top;padding-left:15px;padding-right:25px;line-height:1}@media(min-width: 64em){.author__content{display:block;width:100%;padding-left:0;padding-right:0}}.author__content a{color:inherit;text-decoration:none}.author__name{margin:0}@media(min-width: 64em){.author__name{margin-top:10px;margin-bottom:10px;text-align:center}}.sidebar .author__name{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1em}.author__bio{margin:0}@media(min-width: 64em){.author__bio{margin-top:10px;margin-bottom:20px}}.author__urls-wrapper{position:relative;display:table-cell;vertical-align:middle;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;z-index:10;position:relative;cursor:pointer}.author__urls-wrapper li:last-child a{margin-bottom:0}@media(min-width: 64em){.author__urls-wrapper{display:block}}.author__urls-wrapper button{margin-bottom:0}@media(min-width: 64em){.author__urls-wrapper button{display:none}}.author__urls{display:none;position:absolute;right:0;margin-top:30px;padding:10px;list-style-type:none;border:1px solid hsl(0,0%,93.5%);border-radius:4px;background:#fff;z-index:-1;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);cursor:default}.author__urls.is--visible{display:block}@media(min-width: 64em){.author__urls{display:grid;position:relative;margin:0;padding:0;border:0;background:rgba(0,0,0,0);box-shadow:none;grid-template-columns:auto auto}}.author__urls:before{display:block;content:"";position:absolute;top:-11px;left:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 10px;border-color:hsl(0,0%,93.5%) rgba(0,0,0,0);z-index:0}@media(min-width: 64em){.author__urls:before{display:none}}.author__urls:after{display:block;content:"";position:absolute;top:-10px;left:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 10px;border-color:#fff rgba(0,0,0,0);z-index:1}@media(min-width: 64em){.author__urls:after{display:none}}.author__urls li{white-space:nowrap}.author__urls a{display:block;margin-bottom:0;padding-right:5px;padding-top:2px;padding-bottom:2px;color:inherit;font-size:1em;text-decoration:none}.author__urls a:hover{text-decoration:underline}.wide .sidebar__right{margin-bottom:1em}@media(min-width: 64em){.wide .sidebar__right{position:initial;top:initial;right:initial;width:initial;margin-right:initial;padding-left:initial;z-index:initial}.wide .sidebar__right.sticky{float:none}}@media(min-width: 84.375em){.wide .sidebar__right{width:initial;margin-right:initial}}@media print{[hidden]{display:none}*{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}html{margin:0;padding:0;min-height:auto !important;font-size:16px}body{margin:0 auto;background:#fff !important;color:#000 !important;font-size:1rem;line-height:1.5;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{color:#000;line-height:1.2;margin-bottom:.75rem;margin-top:0}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}a,a:visited{color:#000;text-decoration:underline;word-wrap:break-word}table{border-collapse:collapse}thead{display:table-header-group}table,th,td{border-bottom:1px solid #000}td,th{padding:8px 16px}img{border:0;display:block;max-width:100% !important;vertical-align:middle}hr{border:0;border-bottom:2px solid #bbb;height:0;margin:2.25rem 0;padding:0}dt{font-weight:bold}dd{margin:0;margin-bottom:.75rem}abbr[title],acronym[title]{border:0;text-decoration:none}table,blockquote,pre,code,figure,li,hr,ul,ol,a,tr{page-break-inside:avoid}h2,h3,h4,p,a{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid;page-break-inside:avoid}h1+p,h2+p,h3+p{page-break-before:avoid}img{page-break-after:auto;page-break-before:auto;page-break-inside:avoid}pre{white-space:pre-wrap !important;word-wrap:break-word}a[href^="http://"]:after,a[href^="https://"]:after,a[href^="ftp://"]:after{content:" (" attr(href) ")";font-size:80%}abbr[title]:after,acronym[title]:after{content:" (" attr(title) ")"}#main{max-width:100%}.page{margin:0;padding:0;width:100%}.page-break,.page-break-before{page-break-before:always}.page-break-after{page-break-after:always}.no-print{display:none}a.no-reformat:after{content:""}abbr[title].no-reformat:after,acronym[title].no-reformat:after{content:""}.page__hero-caption{color:#000 !important;background:#fff !important;opacity:1}.page__hero-caption a{color:#000 !important}.masthead,.toc,.page__share,.page__related,.pagination,.ads,.page__footer,.page__comments-form,.author__avatar,.author__content,.author__urls-wrapper,.nav__list,.sidebar,.adsbygoogle{display:none !important;height:1px !important}}.hub p{color:#666}.hub-body{background-image:linear-gradient(#ff4f00, orange);position:relative}.hub__header{grid-column:2/3;margin:1em 0}@media(min-width: 48em){.hub__header{margin:4em 0 2em}}
180.hub__header-image{box-shadow:rgba(2,23,49,.14) 0px 20px 84px 0px;margin:1em 0;width:100%}.hub-layout{display:flex}@media(min-width: 48em){.hub-layout{display:grid;grid-template-columns:minmax(auto, 1fr) minmax(100px, 800px) minmax(auto, 1fr)}}.hub-monetization-nav{width:100%;margin:0;padding-top:42px;display:flex;flex-direction:column;position:sticky;top:80px;display:none}@media(min-width: 48em){.hub-monetization-nav{display:flex}}.hub-body{display:flex}.hub__content{font-size:18px;display:flex;flex-direction:column;width:fit-content;max-width:800px;margin-bottom:30px}.hub__content h2{padding-top:60px}.hub__content h1,.hub__content h2,.hub__content h3,.hub__content h4,.hub__content h5,.hub__content h6{color:#000}.hub__content h1 .header-link,.hub__content h2 .header-link,.hub__content h3 .header-link,.hub__content h4 .header-link,.hub__content h5 .header-link,.hub__content h6 .header-link{position:relative;left:.5em;opacity:0;font-size:.8em;-webkit-transition:opacity .2s ease-in-out .1s;-moz-transition:opacity .2s ease-in-out .1s;-o-transition:opacity .2s ease-in-out .1s;transition:opacity .2s ease-in-out .1s;color:#ff4f00}.hub__content h1:hover .header-link,.hub__content h2:hover .header-link,.hub__content h3:hover .header-link,.hub__content h4:hover .header-link,.hub__content h5:hover .header-link,.hub__content h6:hover .header-link{opacity:1}.hub__content h1{font-size:1.563em;margin:0;font-weight:300}@media(min-width: 48em){.hub__content h1{font-size:2.441em}}.hub__content hr{position:relative;top:40px}.hub-link{display:flex;align-items:center;margin:5px 0;padding:1.5em 1.5em;background-color:#eee}.hub-link h5{margin:0}.hub-link h5 a{color:#000;text-decoration:none}.hub-link h5 a:hover{color:#ff4f00;text-decoration:underline}.link-button{margin-left:6px}.link-button a{text-decoration:none}.hub-section{display:flex;flex-direction:column;top:100px;width:fit-content}.hub-sub-section{display:flex;flex-direction:column}.hub-sub-section h5 a{font-size:1.25em;color:#000;text-decoration:none}.hub-sub-section h5 a:hover{color:#ff4f00;text-decoration:underline}.hub-sub-section p{padding-bottom:0}@media(min-width: 48em){.hub-sub-section{display:flex;flex-direction:row}}.hub-sub-section-last{display:flex;flex-direction:column}.hub-sub-section-last h5 a{font-size:1.25em;color:#000;text-decoration:none}.hub-sub-section-last h5 a:hover{color:#ff4f00;text-decoration:underline}.hub-sub-section-last p{padding-bottom:0}@media(min-width: 48em){.hub-sub-section-last{display:flex;flex-direction:row}}.sticky-cta{background:var(--Citrus, radial-gradient(95.82% 70.71% at 100% 0%, rgba(250, 215, 145, 0.64) 0%, rgba(250, 221, 145, 0) 100%), radial-gradient(121.53% 116.92% at 100% 91.41%, rgba(255, 242, 126, 0.78) 0%, rgba(255, 244, 126, 0.69) 18.14%, rgba(255, 242, 126, 0.41) 53.88%, rgba(255, 242, 126, 0.15) 74.54%, rgba(255, 242, 126, 0) 100%), radial-gradient(599.22% 35.81% at 100% 0%, rgba(255, 222, 137, 0.6) 0%, rgba(255, 222, 137, 0) 97.13%), radial-gradient(180.07% 180.05% at 40.1% -4.04%, #ff7c1d 0%, rgba(255, 124, 29, 0) 100%), radial-gradient(215.78% 106.31% at 19.45% 86.62%, #ff4895 0%, rgba(255, 72, 149, 0) 100%), #ff4f00);z-index:10;position:sticky;justify-self:flex-end;bottom:1em;right:1em;margin-top:-320px}.sticky-cta--left{justify-self:flex-start}.sticky-cta{background-color:#fff;text-align:center;padding:1em;box-shadow:0 0 20px 0px rgba(0,0,0,.1490196078);border-radius:.25em;width:250px;display:grid;justify-items:center}@media screen and (max-width: 1024px){.sticky-cta{bottom:0;margin:1em 0 0;justify-self:center;display:flex;width:100%;max-width:600px;padding:.5em;align-items:center}}.sticky-cta img{padding:.5em}@media screen and (max-width: 1024px){.sticky-cta img{margin-left:.5em;max-width:100px}}@media screen and (max-width: 600px){.sticky-cta img{display:none}}.sticky-cta h3{padding-bottom:.5em;font-weight:500}@media screen and (max-width: 1024px){.sticky-cta h3{font-weight:500;margin:.5em;flex:1}}.sticky-cta h3{color:#fff;margin-top:1em}@media screen and (max-width: 1024px){.sticky-cta__close-button{margin:0;order:1}}.sticky-cta__close-button{background-color:rgba(0,0,0,0);padding:0;margin:-10px -10px 0 0;place-self:end}.sticky-cta__close-button:focus,.sticky-cta__close-button:hover{outline:none;background-color:hsl(0,0%,93.5%)}.sticky-cta .btn,.sticky-cta #goog-wm-sb{display:flex;justify-content:center;align-items:center;width:90%;background-color:rgba(0,0,0,0);border:1px solid #fff;text-align:center !important}@media screen and (max-width: 1024px){.sticky-cta .btn,.sticky-cta #goog-wm-sb{display:block;justify-content:center;line-height:1;padding:.25em .5em;max-width:100px;font-weight:500}}.sticky-cta svg{color:#666;width:20px}.sticky-cta--close{display:none}.cta-section__wrapper{display:flex;align-items:center;border-radius:4px;background:var(--Citrus, radial-gradient(95.82% 70.71% at 100% 0%, rgba(250, 215, 145, 0.64) 0%, rgba(250, 221, 145, 0) 100%), radial-gradient(121.53% 116.92% at 100% 91.41%, rgba(255, 242, 
180126, 0.78) 0%, rgba(255, 244, 126, 0.69) 18.14%, rgba(255, 242, 126, 0.41) 53.88%, rgba(255, 242, 126, 0.15) 74.54%, rgba(255, 242, 126, 0) 100%), radial-gradient(599.22% 35.81% at 100% 0%, rgba(255, 222, 137, 0.6) 0%, rgba(255, 222, 137, 0) 97.13%), radial-gradient(180.07% 180.05% at 40.1% -4.04%, #ff7c1d 0%, rgba(255, 124, 29, 0) 100%), radial-gradient(215.78% 106.31% at 19.45% 86.62%, #ff4895 0%, rgba(255, 72, 149, 0) 100%), #ff4f00);padding:24px;gap:24px;box-shadow:0 4px 6px rgba(0,0,0,.1)}.cta-section__text{flex:1;color:#fff}.cta-section__excerpt{display:block;padding-top:1rem;font-size:1.5rem;font-weight:500;color:#fff;line-height:1.3}.cta-section__subtext{display:block;padding-top:.5rem;padding-bottom:1rem;font-size:1rem;font-weight:400;color:#fff}.buttoncta,.buttoncta:visited{display:inline-flex;width:120px;justify-content:center;align-items:center;padding:.5em;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em;font-weight:bold;text-align:center;text-decoration:none;border-width:0;border-radius:4px;cursor:pointer;line-height:1.4;color:#fff;text-decoration:none;box-shadow:0px 4px 8px 0px rgba(0,0,0,.08)}.buttoncta--large{font-size:1rem;color:#f3001d}.buttoncta--primary{background-color:#fff;color:#f3001d}.cta-section__image{border-radius:4px;display:flex;height:175px;justify-content:center;align-items:center;flex-shrink:0}@media(max-width: 768px){.cta-section__wrapper{flex-direction:column}.cta-section__image{max-width:100%;margin:2rem 0}}.masthead .hs-form-private{background-color:rgba(0,0,0,0);display:flex;margin:0;padding:0;place-items:center}.masthead .hs-form-private>div:first-child{flex:1}.masthead .hs-richtext{display:none}.masthead label{display:none}.masthead .hs-input{margin:0;border:1px solid #bbb;padding:3px 8px !important;font-size:.8em;line-height:1;box-shadow:none}.masthead .hs-button{display:inline-block;margin:.25em;padding:.5em 1em;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em;font-weight:bold;text-align:center;text-decoration:none;border-width:0;border-radius:4px;line-height:1.4;cursor:pointer;color:#fff;background-color:#ff4f00;padding:7px 8px}.landing-subscription{width:100%}.landing-subscription .hs-form-private{display:grid;flex-wrap:wrap;grid-gap:.5em}.landing-subscription .hs-form-private>div:first-child{min-width:100%}@media(min-width: 48em){.landing-subscription .hs-form-private>div:first-child{display:flex;min-width:0;flex:1}}@media(min-width: 48em){.landing-subscription .hs-form-private{display:flex;padding:1em 3em;margin:2em 0}}.landing-subscription .hs-richtext{flex:1;font-size:1.25em}.landing-subscription .hs-richtext p{margin:0}.landing-subscription .hs-email{display:flex;place-items:center;min-width:30%}.landing-subscription .hs-email .input{width:100%;margin-right:10px;height:100%}.landing-subscription .hs-email input{height:100%;box-shadow:none}.landing-subscription .hs-submit,.landing-subscription .hs-actions{display:flex}.landing-subscription .hs-button{display:inline-block;margin:.25em;padding:.5em 1em;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.8em;font-weight:bold;text-align:center;text-decoration:none;border-width:0;border-radius:4px;line-height:1.4;cursor:pointer;color:#fff;background-color:#ff4f00;padding:7px 8px}.landing-subscription label{display:none}.landing-subscription input{margin:0}.post{display:grid;grid-template-columns:minmax(auto, 1fr) minmax(100px, 800px) minmax(auto, 1fr)}.post pre{word-break:break-all}.post--wide .post__header,.post--wide .post__body,.post--wide .post__footer{grid-column:2/4}.post__header{grid-column:2/3;margin:1em 0}@media(min-width: 48em){.post__header{margin:4em 0 2em}}.post__header time{color:#bbb;font-size:1em;font-weight:300}@media(min-width: 48em){.post__header time{font-size:1.25em}}.post__header .post__categories::before{color:#bbb;content:"—";margin:0 .75em}.post__header .post__category{text-decoration-line:none;color:#bbb;font-size:1em;font-weight:300;margin-right:1em}@media(min-width: 48em){.post__header .post__category{font-size:1.25em}}
180.post__header .post__category:visited{color:#bbb}.post__header .post__category:hover,.post__header .post__category :focus{color:#ff4f00}.post__header h1{font-size:1.563em;margin:0;font-weight:300}@media(min-width: 48em){.post__header h1{font-size:2.441em}}.post__header-image{border-radius:16px;box-shadow:rgba(2,23,49,.14) 0px 20px 84px 0px;border:4px solid #fff;margin:2em 0;width:100%}.post__navigation{grid-column:2/3}@media(min-width: 48em){.post__navigation{opacity:.9;grid-column:1/2;grid-row:1/4;position:-webkit-sticky;position:sticky;place-self:flex-start;top:4em;margin:4em 2em 1em}.post__navigation:hover{opacity:1}}.post__right-sidebar{grid-column:2/3}@media(min-width: 48em){.post__right-sidebar{grid-column:3/4;grid-row:1/4;margin-top:4em;max-width:260px}}.post__body{grid-column:2/3}@media(min-width: 48em){.post__body{display:flex;flex-direction:row-reverse}}.post__body .post__share{display:flex;margin-bottom:1em}@media(min-width: 48em){.post__body .post__share{display:grid;grid-template-rows:min-content min-content min-content;align-self:self-start;margin-left:1.5em;position:-webkit-sticky;position:sticky;top:4em}.post__body .post__share>*{display:block}}.post__body .post__share--icon{color:#666;font-size:22px;border:1px solid hsl(0,0%,93.5%);width:40px;height:40px;display:flex;align-content:baseline;place-items:center;place-content:space-around;border-radius:4px;margin-right:8px}@media(min-width: 48em){.post__body .post__share--icon{width:48px;height:48px;margin:8px}}.post__body .post__content{flex:1;color:#666}.post__body .post__content>*:first-child{margin-top:0}.post__body .post__content p{margin-top:0}.post__body .post__content h1,.post__body .post__content h2,.post__body .post__content h3,.post__body .post__content h4,.post__body .post__content h5,.post__body .post__content h6{color:#000}.post__body .post__content h1 .header-link,.post__body .post__content h2 .header-link,.post__body .post__content h3 .header-link,.post__body .post__content h4 .header-link,.post__body .post__content h5 .header-link,.post__body .post__content h6 .header-link{position:relative;left:.5em;opacity:0;font-size:.8em;-webkit-transition:opacity .2s ease-in-out .1s;-moz-transition:opacity .2s ease-in-out .1s;-o-transition:opacity .2s ease-in-out .1s;transition:opacity .2s ease-in-out .1s;color:#ff4f00}.post__body .post__content h1:hover .header-link,.post__body .post__content h2:hover .header-link,.post__body .post__content h3:hover .header-link,.post__body .post__content h4:hover .header-link,.post__body .post__content h5:hover .header-link,.post__body .post__content h6:hover .header-link{opacity:1}.post__body .post__content dl{font-size:1em}.post__body .post__content dt{margin-top:1em;font-weight:bold}.post__body .post__content dd{margin-left:1em}.post__body .post__author .author__profile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;grid-column-gap:1em}.post__body .post__author .author__avatar{grid-row:1/-1;width:80px;height:80px;place-self:center}.post__body .post__author .author__avatar img{max-width:80px}.post__body .post__author .author__content{padding:0}.post__body .post__author .author__name{font-size:1em;text-align:left}.post__body .post__author .author__bio{color:#666;margin:10px 0;line-height:1.2}.post__body .post__author .author__urls-wrapper{display:grid}.post__body .post__author .author__urls.is--visible{display:grid}@media(min-width: 64em){.post__body .post__author .author__urls{display:flex;flex-wrap:wrap}}.post__body .post__author .author__urls li{margin-right:10px}.post__footer{grid-column:2/3}.post__footer .post__related h4,.post__footer .post__comments h4{color:#666;font-size:1em}.post__podcast-toc{padding-inline-start:0;margin-left:70px}.post__podcast-toc a{text-decoration:none}.post__podcast-toc li{display:block;line-height:1.2;margin:.7em 0;font-weight:300}.post__podcast-toc span{margin-left:-50px;margin-right:.5em;font-weight:500}.post__podcast-badges-row{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.post__podcast-badges-row a{flex:50%;padding:10px}.popup-modal{display:block;position:fixed;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;display:none}.popup-content{overflow:hidden;position:relative;align-items:center;background:#fff;border-radius:.5rem;box-shadow:0 4px 6px rgba(0,0,0,.1);color:#272f34}.popup-logo-close{display:flex;justify-content:space-between;align-items:center;align-self:stretch}.popup-top{background:var(--Citrus, radial-gradient(95.82% 70.71% at 100% 0%, rgba(250, 215, 145, 0.64) 0%, rgba(250, 221, 145, 0) 100%), radial-gradient(121.53% 116.92% at 100% 91.41%, rgba(255, 242, 
180126, 0.78) 0%, rgba(255, 244, 126, 0.69) 18.14%, rgba(255, 242, 126, 0.41) 53.88%, rgba(255, 242, 126, 0.15) 74.54%, rgba(255, 242, 126, 0) 100%), radial-gradient(599.22% 35.81% at 100% 0%, rgba(255, 222, 137, 0.6) 0%, rgba(255, 222, 137, 0) 97.13%), radial-gradient(180.07% 180.05% at 40.1% -4.04%, #ff7c1d 0%, rgba(255, 124, 29, 0) 100%), radial-gradient(215.78% 106.31% at 19.45% 86.62%, #ff4895 0%, rgba(255, 72, 149, 0) 100%), #ff4f00);display:flex;padding:50px;flex-direction:column;align-items:center;gap:16px}.image-wrapper{display:inline-block;border-radius:10px;overflow:hidden}.image-wrapper img{max-width:480px;max-height:260px;object-fit:contain;width:100%;height:auto}.popup-bottom{text-align:center;display:flex;align-items:center;justify-content:center;display:flex;padding:32px 24px;flex-direction:column;gap:24px}.popup-hero{color:var(--Moesif-Orange, var(--moesif-orange, #ff4f00));align-self:center;text-align:center;font-size:24px;font-style:normal;font-weight:700;line-height:normal;letter-spacing:-0.456px;width:20em}.popup-body{color:var(--Moesif-Black, #272f34);text-align:center;font-size:16px;font-style:normal;font-weight:400;line-height:normal;letter-spacing:-0.304px;width:30em}.popup-footer{color:#aab4bd;text-align:center;font-family:Roboto;font-size:14px;font-style:normal;font-weight:500;line-height:150%;letter-spacing:-0.266px}.cta-button,button.cta-button{font-size:18px;padding:12;border-radius:3px;background-color:#ff4f00;color:#fff !important;text-decoration:none}.close-button{position:absolute;top:10px;right:15px;font-size:36px;cursor:pointer;color:#fff;color:hsla(0,0%,100%,.7)}.close-link{color:inherit;text-decoration:none;cursor:pointer}.dropdown-menu nav ul ul{position:absolute;min-width:auto;background:#fff;display:none;box-shadow:0 5px 60px 0 rgba(0,0,0,.2);padding-bottom:5px;border-radius:8px}.dropdown-menu nav ul li:hover ul{display:block}.masthead__dropdown-menu__item{display:block;font-weight:lighter;background:#fff;margin-top:5px;margin-bottom:5px}.podcast-index{display:grid;grid-gap:60px}@media(min-width: 48em){.podcast-index{grid-template-columns:minmax(max-content, 1fr) minmax(100px, 600px)}}.podcast-index__sidebar{display:grid;justify-items:center;text-align:center}.podcast-index__sidebar .podcast-index__cover{max-width:200px;width:100%;border-radius:8px}.podcast-index__sidebar h1{justify-self:center;margin-bottom:0}@media(min-width: 48em){.podcast-index__sidebar{text-align:left;display:block;max-width:300px}.podcast-index__sidebar .podcast-index__cover{max-width:100%}}.podcast-index__badges{display:grid;gap:1em;max-width:230px}.podcast-index .archive-card__teaser{align-items:flex-end;background-color:#734d29}div#disqus_thread iframe[sandbox]{max-height:0px !important}
181  </style>
182
183<!--[if IE]>
184  <style>
185    /* old IE unsupported flexbox fixes */
186    .greedy-nav .site-title {
187      padding-right: 3em;
188    }
189    .greedy-nav button {
190      position: absolute;
191      top: 0;
192      right: 0;
193      height: 100%;
194    }
195  </style>
196<![endif]-->
197
198
199
200  <!-- start custom head snippets -->
201
202<!-- Google Tag Manager -->
203<script>
vendor: 343 bytes, lines 203-207
203(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
204    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
205    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
206    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
207    })(window,document,'script','dataLayer','
207GTM-WXWPX6T
vendor: 3 bytes, line 207
207');
207</script>
207
208<!-- End Google Tag Manager -->
209
210<!-- Facebook Pixel Code -->
211<script>
vendor: 435 bytes, lines 211-220
211
212    !function(f,b,e,v,n,t,s)
213    {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
214    n.callMethod.apply(n,arguments):n.queue.push(arguments)};
215    if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
216    n.queue=[];t=b.createElement(e);t.async=!0;
217    t.src=v;s=b.getElementsByTagName(e)[0];
218    s.parentNode.insertBefore(t,s)}(window, document,'script',
219    'https://connect.facebook.net/en_US/fbevents.js');
220    fbq('init', '
220258723467888184
vendor: 34 bytes, lines 220-221
220');
221    fbq('track', 'PageView');
222</script>
222
223<!-- End Facebook Pixel Code -->
224
225<!-- Clearbit Visitor Tracker Code -->
226<script type="text/javascript">
227    (function (d, u, h, s) {
228      h = d.getElementsByTagName('head')[0];
229      s = d.createElement('script');
230      s.async = 1;
231      s.src = u + new Date().getTime();
232      h.appendChild(s);
233    })(document, 'https://grow.clearbitjs.com/api/pixel.js?v=');
234  </script>
234
235  <!-- End Clearbit Visitor Tracker Code -->
236<!-- end custom head snippets -->
237
238<!-- Add posthog script -->
vendor: 1,212 bytes, lines 239-242
239<script>
240  !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys onSessionId".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
241  posthog.init('phc_WAJsVgzU1R0oSYDjVfIHkoLXvVHj6HPdI9NrnVr58IQ',{api_host:'https://app.posthog.com'})
242</script>
242
243<!-- end posthog script -->
244
245<!-- Add MS Clarity script: -->
246<script type="text/javascript">
247  (function(c,l,a,r,i,t,y){
248      c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
249      t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
250      y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
251  })(window, document, "clarity", "script", "4da0o51axz");
252</script>
252
253<!-- end MS Clarity script -->
254
255</head>
256
257<body class="layout">
258  <nav class="skip-links">
259  <h2 class="screen-reader-text">Skip links</h2>
260  <ul>
261    <li><a href="#site-nav" class="screen-reader-shortcut">Skip to primary navigation</a></li>
262    <li><a href="#main" class="screen-reader-shortcut">Skip to content</a></li>
263    <li><a href="#footer" class="screen-reader-shortcut">Skip to footer</a></li>
264  </ul>
265</nav>
266
267  <!--[if lt IE 9]>
268<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="https://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
269<![endif]-->
270
271  
272
273<div class="masthead" id='masthead'>
274  <div class="masthead__inner-wrap">
275    <div class="masthead__menu dropdown-menu">
276      <nav id="site-nav" class="greedy-nav">
277        
278        <a class="site-logo" href="https://www.moesif.com"><img src="https://blog.moesif.com/images/moesif-logo-lockup-branded-mixed.svg"
279            alt="moesif"></a>
280        
281        <span class="masthead__divider"></span>
282        
283        <a class="site-title" href="/blog/">Blog</a>
284        
285        
286
287        <ul class="visible-links">
288          
289  
290  
291  <li class="masthead__menu-item ">
292    <a href="https://www.moesif.com/features/api-analytics?utm_source=blog&utm_medium=header&utm_content=home" >API Observability</a>
293    
294      <ul class="">
295       
296         
297         <li class="masthead__dropdown-menu__item">
298          <a href="https://www.moesif.com/features/api-analytics?utm_source=blog&utm_medium=header&utm_content=home" >API Product Analytics</a>
299         </li>
300       
301         
302         <li class="masthead__dropdown-menu__item">
303          <a href="https://www.moesif.com/features/api-logs?utm_source=blog&utm_medium=header&utm_content=home" >API Logs and Metrics</a>
304         </li>
305       
306         
307         <li class="masthead__dropdown-menu__item">
308          <a href="https://www.moesif.com/features/api-monitoring?utm_source=blog&utm_medium=header&utm_content=home" >API Monitoring</a>
309         </li>
310       
311         
312         <li class="masthead__dropdown-menu__item">
313          <a href="https://www.moesif.com/features/api-dashboards?utm_source=blog&utm_medium=header&utm_content=home" >Custom Dashboard</a>
314         </li>
315       
316         
317         <li class="masthead__dropdown-menu__item">
318          <a href="https://www.moesif.com/features/embedded-api-logs?utm_source=blog&utm_medium=header&utm_content=home" >Embedded Metrics</a>
319         </li>
320       
321      </ul>
322    
323  </li>
324  
325  
326  <li class="masthead__menu-item ">
327    <a href="https://www.moesif.com/solutions/metered-api-billing?utm_source=blog&utm_medium=header&utm_content=home" >API Monetization</a>
328    
329      <ul class="">
330       
331         
332         <li class="masthead__dropdown-menu__item">
333          <a href="https://www.moesif.com/solutions/metered-api-billing?utm_source=blog&utm_medium=header&utm_content=home" >Usage Based Billing</a>
334         </li>
335       
336         
337         <li class="masthead__dropdown-menu__item">
338          <a href="https://www.moesif.com/features/product-catalog?utm_source=blog&utm_medium=header&utm_content=home" >Product Catalog</a>
339         </li>
340       
341         
342         <li class="masthead__dropdown-menu__item">
343          <a href="https://www.moesif.com/features/api-governance-rules?utm_source=blog&utm_medium=header&utm_content=home" >Quotas and Governance</a>
344         </li>
345       
346         
347         <li class="masthead__dropdown-menu__item">
348          <a href="https://www.moesif.com/solutions/developer-portal?utm_source=blog&utm_medium=header&utm_content=home" >Developer Portal</a>
349         </li>
350       
351      </ul>
352    
353  </li>
354  
355  
356  <li class="masthead__menu-item ">
357    <a href="/blog/changelog/?utm_campaign=Int-site&utm_source=blog&utm_medium=header&utm_content=changelog" >Changelog</a>
358    
359  </li>
360  
361  
362  <li class="masthead__menu-item ">
363    <a href="/blog/ebooks/?utm_campaign=Int-site&utm_source=blog&utm_medium=header&utm_content=resources" >Resources</a>
364    
365      <ul class="">
366       
367         
368         <li class="masthead__dropdown-menu__item">
369          <a href="/blog/hubs/api-monetization/?utm_campaign=Int-site&utm_source=blog&utm_medium=header&utm_content=how-to-monetize#api-monetization" >How to Monetize</a>
370         </li>
371       
372         
373         <li class="masthead__dropdown-menu__item">
374          <a href="/blog/ebooks/?utm_campaign=Int-site&utm_source=blog&utm_medium=header&utm_content=resources" >Ebooks</a>
375         </li>
376       
377         
378         <li class="masthead__dropdown-menu__item">
379          <a href="/blog/categories/?utm_campaign=Int-site&utm_source=blog&utm_medium=header&utm_content=resources" >Categories</a>
380         </li>
381       
382         
383         <li class="masthead__dropdown-menu__item">
384          <a href="/blog/tags/?utm_campaign=Int-site&utm_source=blog&utm_medium=header&utm_content=resources" >Tags</a>
385         </li>
386       
387         
388         <li class="masthead__dropdown-menu__item">
389          <a href="/blog/api-guide/?utm_campaign=Int-site&utm_source=blog&utm_medium=header&utm_content=resources" >API Guide For Best Practices</a>
390         </li>
391       
392         
393         <li class="masthead__dropdown-menu__item">
394          <a href="/blog/write-for-us/" >Guest Post Submission</a>
395         </li>
396       
397      </ul>
398    
399  </li>
400  
401
402
403          
404          <li>
405          <button class="search__toggle" type="button">
406            <span
407              class="visually-hidden">Toggle search</span>
408            <svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
409              <path
410                d="M13.89,12.47a6,6,0,0,0,.95-4.87,6,6,0,1,0-2.37,6.29L18.58,20A1,1,0,0,0,20,20h0a1,1,0,0,0,0-1.42ZM9,13a4,4,0,1,1,4-4A4,4,0,0,1,9,13Z" />
411            </svg>
412          </button>
413          </li>
414          
415        </ul>
416
417        <a
418          id="blog-header-signup"
419          href="https://www.moesif.com/wrap?onboard=true&utm_source=blog"
420          class="btn btn--inverse-primary btn--small"
421          type="button"
422        >
423          Sign Up/Login
424        </a>
425
426        <button class="greedy-nav__toggle hidden" type="button">
427          <span class="visually-hidden">Toggle Menu</span>
428          <svg class='icon' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
429            <path d="M18,8H6A1,1,0,0,1,6,6H18a1,1,0,0,1,0,2Z" />
430            <path d="M18,18H6a1,1,0,0,1,0-2H18a1,1,0,0,1,0,2Z" />
431            <path d="M18,13H6a1,1,0,0,1,0-2H18a1,1,0,0,1,0,2Z" />
432          </svg>
433        </button>
434        <ul class="hidden-links hidden"></ul>
435      </nav>
436    </div>
437  </div>
438</div>
439<script>
440  $(document).ready(function () {
441    $("nav div").click(function () {
442      $("ul").slideToggle();
443      $("ul ul").css("display", "none");
444    });
445    $("ul li").click(function () {
446      $(this).siblings().find("ul").slideUp();
447      $(this).find("ul").slideToggle();
448    });
449
450    $(window).resize(function () {
451      if ($(window).width() > 768) {
452        $("ul").removeAttr("style");
453      }
454    });
455  });
456</script>
456
457
458
459  
460  <div class="search-content">
461    <div class="search-content__inner-wrap"><div class="search-searchbar"></div>
462  <div class="search-hits"></div></div>
463
464  </div>
465  
466
467  <div class="content">
468
469    
470
471<div class="carousel">
472  <a class="carousel__prev" onclick="window.CAROUSEL.onClickPrevious()">&#10094;</a>
473  <div class="carousel__items">
474    
475    <a class="carousel-item" href=/blog/monitoring/model-context-protocol/How-to-Setup-Observability-For-Your-MCP-Server-with-Moesif/>
476      
477      <img class="carousel-item__image" width="976" height="600" src=https://blog.moesif.com/images/landing/How-to-Setup-Observability-for-Your-MCP-Server-with-Moesif.png alt=How to Setup Observability for your MCP Server with Moesif">
478      
479
480      <div class="carousel-item__text">
481        <p class="carousel-item__header">Featured Post</p>
482        <h3 class="carousel-item__title"> How to Setup Observability for your MCP Server with Moesif</h3>
483        <p class="carousel-item__excerpt"> Keep a pulse on your MCP server's health. Learn how to set up Moesif for deep observability into your Model Context Protocol traffic. </p>
484        
485      </div>
486    </a>
487    
488    <a class="carousel-item" href=/blog/technical/api-development/Achieving-API-Traceability-With-OpenTelemetry-And-Moesif/>
489      
490      <img class="carousel-item__image blur-up lazyload" width="976" height="600" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src=https://blog.moesif.com/images/landing/Achieving-API-Traceability-With-OpenTelemetry-And-Moesif.png alt=Achieving API Traceability with OpenTelemetry and Moesif">
491      
492
493      <div class="carousel-item__text">
494        <p class="carousel-item__header">Featured Post</p>
495        <h3 class="carousel-item__title"> Achieving API Traceability with OpenTelemetry and Moesif</h3>
496        <p class="carousel-item__excerpt"> APIs are complex. Moesif's OpenTelemetry integration helps you get a clear picture of what's happening in your system, with unified API analytics and granular trace data. </p>
497        
498      </div>
499    </a>
500    
501    <a class="carousel-item" href=/blog/technical/api-development/Monetizing-AI-APIs-with-Billing-Meters-in-Moesif/>
502      
503      <img class="carousel-item__image blur-up lazyload" width="976" height="600" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src=https://blog.moesif.com/images/landing/ai-apis-with-billing-meters.png alt=Monetizing AI APIs with Billing Meters in Moesif">
504      
505
506      <div class="carousel-item__text">
507        <p class="carousel-item__header">Featured Post</p>
508        <h3 class="carousel-item__title"> Monetizing AI APIs with Billing Meters in Moesif</h3>
509        <p class="carousel-item__excerpt"> Don't just charge per API call. Learn how Moesif's Billing Meters let you monetize AI APIs by tracking metrics like token usage and more, seamlessly integrating with billing providers like Stripe. </p>
510        
511      </div>
512    </a>
513    
514    <a class="carousel-item" href=/blog/api-product-management/stripe/Using-Moesif-And-Stripe-For-Pay-As-You-Go-API-Billing/>
515      
516      <img class="carousel-item__image blur-up lazyload" width="976" height="600" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src=https://blog.moesif.com/images/landing/PAYG.png alt=Moesif and Stripe for Pay-As-You-Go API Billing">
517      
518
519      <div class="carousel-item__text">
520        <p class="carousel-item__header">Featured Post</p>
521        <h3 class="carousel-item__title"> Moesif and Stripe for Pay-As-You-Go API Billing</h3>
522        <p class="carousel-item__excerpt"> Offering customers a pay-as-you-go (PAYG) option with Moesif and Stripe is straightforward. By integrating both platforms, you can track API usage, automatically block access when credits run out, and notify users via email to top up their accounts. </p>
523        
524      </div>
525    </a>
526    
527    <a class="carousel-item" href=/blog/monitoring/Monetizing-Proprietary-Data-Through-APIs/>
528      
529      <img class="carousel-item__image blur-up lazyload" width="976" height="600" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src=https://blog.moesif.com/images/landing/Monetizing-Proprietary-Data-Through-APIs.png alt=Monetizing Proprietary Data Through APIs: How to Unlock New Revenue in the AI World">
530      
531
532      <div class="carousel-item__text">
533        <p class="carousel-item__header">Featured Post</p>
534        <h3 class="carousel-item__title"> Monetizing Proprietary Data Through APIs: How to Unlock New Revenue in the AI World</h3>
535        <p class="carousel-item__excerpt"> Data is the new gold, and your proprietary data could be your most valuable asset. Learn how to monetize it through APIs with strategies like pay-as-you-go billing, and discover how to meter consumption based on data value, not just API calls. </p>
536        
537      </div>
538    </a>
539    
540    <a class="carousel-item" href=/blog/api-analytics/api-strategy/API-Analytics/>
541      
542      <img class="carousel-item__image blur-up lazyload" width="976" height="600" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src=https://blog.moesif.com/images/landing/APIAnalytics.png alt=What is API Analytics? - The Ultimate Guide">
543      
544
545      <div class="carousel-item__text">
546        <p class="carousel-item__header">Featured Post</p>
547        <h3 class="carousel-item__title"> What is API Analytics? - The Ultimate Guide</h3>
548        <p class="carousel-item__excerpt"> Move beyond simple monitoring with API Analytics. This guide shows you how to turn raw API data into strategic insights about user behavior, security, and performance. </p>
549        
550      </div>
551    </a>
552    
553    <div style="text-align:center">
554      
555      <!-- formatter throw a temper tantrum here, but it works. -->
556      <span class="dot" onclick=window.CAROUSEL.onClickDot(1)></span>
557      
558      <!-- formatter throw a temper tantrum here, but it works. -->
559      <span class="dot" onclick=window.CAROUSEL.onClickDot(2)></span>
560      
561      <!-- formatter throw a temper tantrum here, but it works. -->
562      <span class="dot" onclick=window.CAROUSEL.onClickDot(3)></span>
563      
564      <!-- formatter throw a temper tantrum here, but it works. -->
565      <span class="dot" onclick=window.CAROUSEL.onClickDot(4)></span>
566      
567      <!-- formatter throw a temper tantrum here, but it works. -->
568      <span class="dot" onclick=window.CAROUSEL.onClickDot(5)></span>
569      
570      <!-- formatter throw a temper tantrum here, but it works. -->
571      <span class="dot" onclick=window.CAROUSEL.onClickDot(6)></span>
572      
573    </div>
574  </div>
575  <a class="carousel__next" onclick="window.CAROUSEL.onClickAdvance()">&#10095;</a>
576</div>
577
578
579
580<nav class="secondary-nav" id="secondary-nav">
581  <a class="secondary-nav__link" href="/blog/api-guide/">
582    API Guide
583  </a>
584  <a class="secondary-nav__link" href="/blog/categories/api-development/">
585    API Development
586  </a>
587  <a class="secondary-nav__link" href="/blog/categories/api-security/">
588    API Security
589  </a>
590  <a class="secondary-nav__link" href="/blog/categories/api-analytics/">
591    API Analytics
592  </a>
593  <a class="secondary-nav__link" href="/blog/categories/api-product-management/">
594    API Product Management
595  </a>
596  <a class="secondary-nav__link" href="/blog/categories/developer-relations/">
597    Developer Relations and Marketing
598  </a>
599  <a class="secondary-nav__link" href="/blog/categories/api-strategy/">
600    API Strategy
601  </a>
602  <a class="secondary-nav__link" href="/blog/categories/company/">
603    Company
604  </a>
605  <a class="secondary-nav__link" href="/blog/podcasts/">
606    Podcasts
607  </a>
608</nav>
609
610<div class="archive-card-grid">
611  
612  
613  
614
615
616
617
618
619
620
621
622
623
624<a href="/blog/api-strategy/api-development/Leveraging-AI-For-a-Better-API-Strategy/" rel="permalink" class="archive-card ">
625  <div class="archive-card__teaser">
626    
627    
628    
629    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/api-strategy.svg' alt=Leveraging AI For a Better API Strategy
630>
631    
632  </div>
633  <div class="archive-card__text">
634    <div class="archive-card__categories">
635
636      <p>
637        API Strategy
638      </p>
639    </div>
640
641    <h2 class="archive-card__title no-anchor" itemprop="headline">
642      
643      Leveraging AI For a Better API Strategy
644
645      
646    </h2>
647
648    
649    <p class="archive-card__excerpt" itemprop="description">
650      Learn how to leverage AI to build and fortify your API strategy. Improve design, governance, documentation, and align APIs with business outcomes.
651
652    </p>
653    
654
655    
656    <p class="page__meta archive-card__date">
657      <time datetime=" 2026-03-18">March 18, 2026
658        
659  </div>
660</a>
661
662  
663  
664  
665  
666
667
668
669
670
671
672
673
674
675
676<a href="/blog/api-strategy/The-5-Best-Mixpanel-Alternatives-of-2025/" rel="permalink" class="archive-card ">
677  <div class="archive-card__teaser">
678    
679    
680    
681    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/api-strategy.svg' alt=The 5 Best Mixpanel Alternatives of 2025
682>
683    
684  </div>
685  <div class="archive-card__text">
686    <div class="archive-card__categories">
687
688      <p>
689        API Strategy
690      </p>
691    </div>
692
693    <h2 class="archive-card__title no-anchor" itemprop="headline">
694      
695      The 5 Best Mixpanel Alternatives of 2025
696
697      
698    </h2>
699
700    
701    <p class="archive-card__excerpt" itemprop="description">
702      Learn about the best Mixpanel alternatives to determine the right analytics solution for your use case.
703
704    </p>
705    
706
707    
708    <p class="page__meta archive-card__date">
709      <time datetime=" 2025-11-28">November 28, 2025
710        
711  </div>
712</a>
713
714  
715  
716  
717  
718
719
720
721
722
723
724
725
726
727
728<a href="/blog/technical/api-development/How-to-Leverage-Moesif-Effectively-for-API-Observability/" rel="permalink" class="archive-card ">
729  <div class="archive-card__teaser">
730    
731    
732    
733    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/technical.svg' alt=How to Leverage Moesif Effectively for API Observability
734>
735    
736  </div>
737  <div class="archive-card__text">
738    <div class="archive-card__categories">
739
740      <p>
741        API Development
742      </p>
743    </div>
744
745    <h2 class="archive-card__title no-anchor" itemprop="headline">
746      
747      How to Leverage Moesif Effectively for API Observability
748
749      
750    </h2>
751
752    
753    <p class="archive-card__excerpt" itemprop="description">
754      Effectively leverage Moesif for API observability through best practices for integration, event enrichment, custom actions, and engineering workflow integrat...
755    </p>
756    
757
758    
759    <p class="page__meta archive-card__date">
760      <time datetime=" 2025-12-02">December 02, 2025
761        
762  </div>
763</a>
764
765  
766  
767  
768  
769
770
771
772
773
774
775
776
777
778
779<a href="/blog/api-strategy/api-monetization/How-to-Build-an-Internal-Chargeback-Model-for-Your-API-and-AI-Usage-Using-Moesif/" rel="permalink" class="archive-card ">
780  <div class="archive-card__teaser">
781    
782    
783    
784    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/api-strategy.svg' alt=How to Build an Internal Chargeback Model for Your API and AI Usage Using Moesif
785>
786    
787  </div>
788  <div class="archive-card__text">
789    <div class="archive-card__categories">
790
791      <p>
792        API Strategy
793      </p>
794    </div>
795
796    <h2 class="archive-card__title no-anchor" itemprop="headline">
797      
798      How to Build an Internal Chargeback Model for Your API and AI Usage Using Moesif
799
800      
801    </h2>
802
803    
804    <p class="archive-card__excerpt" itemprop="description">
805      Use Moesif to implement internal chargebacks and enable precise API and AI cost attribution for better transparency and resource optimization.
806
807    </p>
808    
809
810    
811    <p class="page__meta archive-card__date">
812      <time datetime=" 2025-12-02">December 02, 2025
813        
814  </div>
815</a>
816
817  
818  
819  
820  
821
822
823
824
825
826
827
828
829
830
831<a href="/blog/technical/api-development/Introducing-Moesif-Basic-Insights-for-WSO2-API-Manager-APIM-and-Bijira/" rel="permalink" class="archive-card ">
832  <div class="archive-card__teaser">
833    
834    
835    
836    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/technical.svg' alt=Introducing Moesif Basic Insights for WSO2 API Manager (APIM) and Bijira
837>
838    
839  </div>
840  <div class="archive-card__text">
841    <div class="archive-card__categories">
842
843      <p>
844        API Development
845      </p>
846    </div>
847
848    <h2 class="archive-card__title no-anchor" itemprop="headline">
849      
850      Introducing Moesif Basic Insights for WSO2 API Manager (APIM) and Bijira
851
852      
853    </h2>
854
855    
856    <p class="archive-card__excerpt" itemprop="description">
857      Announcing Moesif Basic Insights for WSO2 API Manager and Bijira—a free, integrated, and AI-ready API analytics solution in WSO2.
858
859    </p>
860    
861
862    
863    <p class="page__meta archive-card__date">
864      <time datetime=" 2025-10-13">October 13, 2025
865        
866  </div>
867</a>
868
869  
870  
871  
872  
873
874
875
876
877
878
879
880
881
882
883<a href="/blog/api-monetization/api-strategy/How-To-Best-Plan-Usage-Based-Pricing-For-AI-Agents/" rel="permalink" class="archive-card ">
884  <div class="archive-card__teaser">
885    
886    
887    
888    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/api-monetization.svg' alt=How to Best Plan Usage-Based Pricing For AI Agents
889>
890    
891  </div>
892  <div class="archive-card__text">
893    <div class="archive-card__categories">
894
895      <p>
896        API Strategy
897      </p>
898    </div>
899
900    <h2 class="archive-card__title no-anchor" itemprop="headline">
901      
902      How to Best Plan Usage-Based Pricing For AI Agents
903
904      
905    </h2>
906
907    
908    <p class="archive-card__excerpt" itemprop="description">
909      A strategic guide to usage-based pricing for AI agents using Moesif. It covers challenges, billing meter design, and strategies for fairness and predictabili...
910    </p>
911    
912
913    
914    <p class="page__meta archive-card__date">
915      <time datetime=" 2025-10-01">October 01, 2025
916        
917  </div>
918</a>
919
920  
921  
922  
923  
924
925
926
927
928
929
930
931
932
933
934<a href="/blog/api-strategy/api-monetization/Monetizing-Content-Through-API-For-LLM-Training/" rel="permalink" class="archive-card ">
935  <div class="archive-card__teaser">
936    
937    
938    
939    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/api-strategy.svg' alt=Monetizing Content Through API for LLM Training
940>
941    
942  </div>
943  <div class="archive-card__text">
944    <div class="archive-card__categories">
945
946      <p>
947        API Strategy
948      </p>
949    </div>
950
951    <h2 class="archive-card__title no-anchor" itemprop="headline">
952      
953      Monetizing Content Through API for LLM Training
954
955      
956    </h2>
957
958    
959    <p class="archive-card__excerpt" itemprop="description">
960      Monetize content through APIs for LLM training. Learn about pricing models, metering, and how Moesif enables content monetization at scale.
961
962    </p>
963    
964
965    
966    <p class="page__meta archive-card__date">
967      <time datetime=" 2025-10-01">October 01, 2025
968        
969  </div>
970</a>
971
972  
973  
974  
975  
976
977
978
979
980
981
982
983
984
985
986<a href="/blog/monitoring/model-context-protocol/Comparing-MCP-Model-Context-Protocol-Gateways/" rel="permalink" class="archive-card ">
987  <div class="archive-card__teaser">
988    
989    
990    
991    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/monitoring.svg' alt=Comparing MCP (Model Context Protocol) Gateways
992>
993    
994  </div>
995  <div class="archive-card__text">
996    <div class="archive-card__categories">
997
998      <p>
999        API Analytics and Monitoring
1000      </p>
1001    </div>
1002
1003    <h2 class="archive-card__title no-anchor" itemprop="headline">
1004      
1005      Comparing MCP (Model Context Protocol) Gateways
1006
1007      
1008    </h2>
1009
1010    
1011    <p class="archive-card__excerpt" itemprop="description">
1012      Learn about the top Model Context Protocol (MCP) gateways in 2025 and how Moesif adds analytics and observability on top for your AI infrastructure.
1013
1014    </p>
1015    
1016
1017    
1018    <p class="page__meta archive-card__date">
1019      <time datetime=" 2025-09-03">September 03, 2025
1020        
1021  </div>
1022</a>
1023
1024  
1025  
1026  
1027  
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038<a href="/blog/technical/gloo/Moesif-Gloo-Gateway-Deep-API-Analytics-and-Observability-at-the-Edge/" rel="permalink" class="archive-card ">
1039  <div class="archive-card__teaser">
1040    
1041    
1042    
1043    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/technical.svg' alt=Moesif + Gloo Gateway: Deep API Analytics and Observability at the Edge
1044>
1045    
1046  </div>
1047  <div class="archive-card__text">
1048    <div class="archive-card__categories">
1049
1050      <p>
1051        API Development
1052      </p>
1053    </div>
1054
1055    <h2 class="archive-card__title no-anchor" itemprop="headline">
1056      
1057      Moesif + Gloo Gateway: Deep API Analytics and Observability at the Edge
1058
1059      
1060    </h2>
1061
1062    
1063    <p class="archive-card__excerpt" itemprop="description">
1064      Enhance Gloo Gateway with Moesif for deep API analytics, monitoring, and insights to boost performance and adoption.
1065
1066    </p>
1067    
1068
1069    
1070    <p class="page__meta archive-card__date">
1071      <time datetime=" 2025-09-03">September 03, 2025
1072        
1073  </div>
1074</a>
1075
1076  
1077  
1078  
1079  
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090<a href="/blog/technical/api-development/Analyzing-OpenTelemetry-Logs-in-Moesif-For-Operational-And-Business-Insights/" rel="permalink" class="archive-card ">
1091  <div class="archive-card__teaser">
1092    
1093    
1094    
1095    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/technical.svg' alt=Analyzing OpenTelemetry Logs in Moesif for Operational and Business Insights
1096>
1097    
1098  </div>
1099  <div class="archive-card__text">
1100    <div class="archive-card__categories">
1101
1102      <p>
1103        API Development
1104      </p>
1105    </div>
1106
1107    <h2 class="archive-card__title no-anchor" itemprop="headline">
1108      
1109      Analyzing OpenTelemetry Logs in Moesif for Operational and Business Insights
1110
1111      
1112    </h2>
1113
1114    
1115    <p class="archive-card__excerpt" itemprop="description">
1116      Capture and analyze OpenTelemetry logs in Moesif to surface business and operational insights using advanced API analytics.
1117
1118    </p>
1119    
1120
1121    
1122    <p class="page__meta archive-card__date">
1123      <time datetime=" 2025-08-19">August 19, 2025
1124        
1125  </div>
1126</a>
1127
1128  
1129  
1130  
1131  
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142<a href="/blog/monitoring/model-context-protocol/Monitoring-MCP-Security-And-Agent-Behavior-With-Moesif/" rel="permalink" class="archive-card ">
1143  <div class="archive-card__teaser">
1144    
1145    
1146    
1147    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/monitoring.svg' alt=Monitoring MCP Security and Agent Behavior with Moesif
1148>
1149    
1150  </div>
1151  <div class="archive-card__text">
1152    <div class="archive-card__categories">
1153
1154      <p>
1155        API Analytics and Monitoring
1156      </p>
1157    </div>
1158
1159    <h2 class="archive-card__title no-anchor" itemprop="headline">
1160      
1161      Monitoring MCP Security and Agent Behavior with Moesif
1162
1163      
1164    </h2>
1165
1166    
1167    <p class="archive-card__excerpt" itemprop="description">
1168      Monitor MCP server security and agent behavior with Moesif. Detect misuse, set alerts, and gain visibility into Model Context Protocol traffic.
1169
1170    </p>
1171    
1172
1173    
1174    <p class="page__meta archive-card__date">
1175      <time datetime=" 2025-07-16">July 16, 2025
1176        
1177  </div>
1178</a>
1179
1180  
1181  
1182  
1183  
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194<a href="/blog/api-strategy/model-context-protocol/Monetizing-MCP-Model-Context-Protocol-Servers-With-Moesif/" rel="permalink" class="archive-card ">
1195  <div class="archive-card__teaser">
1196    
1197    
1198    
1199    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/api-strategy.svg' alt=Monetizing MCP (Model Context Protocol) Servers with Moesif
1200>
1201    
1202  </div>
1203  <div class="archive-card__text">
1204    <div class="archive-card__categories">
1205
1206      <p>
1207        API Strategy
1208      </p>
1209    </div>
1210
1211    <h2 class="archive-card__title no-anchor" itemprop="headline">
1212      
1213      Monetizing MCP (Model Context Protocol) Servers with Moesif
1214
1215      
1216    </h2>
1217
1218    
1219    <p class="archive-card__excerpt" itemprop="description">
1220      Learn how to monetize MCP server usage with Moesif. Track tool calls, enforce usage-based pricing, and meter agent access with full visibility.
1221
1222    </p>
1223    
1224
1225    
1226    <p class="page__meta archive-card__date">
1227      <time datetime=" 2025-07-15">July 15, 2025
1228        
1229  </div>
1230</a>
1231
1232  
1233  
1234  
1235  
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246<a href="/blog/technical/nginx/Using-Moesif-for-API-Observability-and-Analytics-in-NGINX-One/" rel="permalink" class="archive-card ">
1247  <div class="archive-card__teaser">
1248    
1249    
1250    
1251    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/technical.svg' alt=Using Moesif for API Observability and Analytics in NGINX One
1252>
1253    
1254  </div>
1255  <div class="archive-card__text">
1256    <div class="archive-card__categories">
1257
1258      <p>
1259        API Development
1260      </p>
1261    </div>
1262
1263    <h2 class="archive-card__title no-anchor" itemprop="headline">
1264      
1265      Using Moesif for API Observability and Analytics in NGINX One
1266
1267      
1268    </h2>
1269
1270    
1271    <p class="archive-card__excerpt" itemprop="description">
1272      Enable API observability in NGINX One with Moesif to track latency, errors, and usage patterns through powerful API analytics and user-aware monitoring.
1273
1274    </p>
1275    
1276
1277    
1278    <p class="page__meta archive-card__date">
1279      <time datetime=" 2025-11-27">November 27, 2025
1280        
1281  </div>
1282</a>
1283
1284  
1285  
1286  
1287  
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298<a href="/blog/podcasts/developers/Podcast-APIs-Over-IPAs-API-Product-Management-With-Emmanuel-Paraskakis-Level-250/" rel="permalink" class="archive-card ">
1299  <div class="archive-card__teaser">
1300    
1301    
1302    
1303    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/podcasts.svg' alt=APIs Over IPAs 19: API Product Management with Emmanuel Paraskakis, Level 250
1304>
1305    
1306  </div>
1307  <div class="archive-card__text">
1308    <div class="archive-card__categories">
1309
1310      <p>
1311        Podcasts
1312      </p>
1313    </div>
1314
1315    <h2 class="archive-card__title no-anchor" itemprop="headline">
1316      
1317      APIs Over IPAs 19: API Product Management with Emmanuel Paraskakis, Level 250
1318
1319      
1320    </h2>
1321
1322    
1323    <p class="archive-card__excerpt" itemprop="description">
1324      In this episode, Emmanuel Paraskakis of Level 250 joins to discuss the role and responsibilities of API product managers.
1325
1326    </p>
1327    
1328
1329    
1330    <p class="page__meta archive-card__date">
1331      <time datetime=" 2025-06-18">June 18, 2025
1332        
1333  </div>
1334</a>
1335
1336  
1337  
1338  
1339  
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350<a href="/blog/api-strategy/api-engineering/How-Engineering-Teams-Should-Monitor-Customer-Health-and-API-Usage/" rel="permalink" class="archive-card ">
1351  <div class="archive-card__teaser">
1352    
1353    
1354    
1355    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/api-strategy.svg' alt=How Engineering Teams Should Monitor Customer Health and API Usage
1356>
1357    
1358  </div>
1359  <div class="archive-card__text">
1360    <div class="archive-card__categories">
1361
1362      <p>
1363        API Strategy
1364      </p>
1365    </div>
1366
1367    <h2 class="archive-card__title no-anchor" itemprop="headline">
1368      
1369      How Engineering Teams Should Monitor Customer Health and API Usage
1370
1371      
1372    </h2>
1373
1374    
1375    <p class="archive-card__excerpt" itemprop="description">
1376      Learn how engineering teams can monitor API usage, debug production issues, and track account health with Moesif for better API observability.
1377
1378    </p>
1379    
1380
1381    
1382    <p class="page__meta archive-card__date">
1383      <time datetime=" 2025-11-27">November 27, 2025
1384        
1385  </div>
1386</a>
1387
1388  
1389  
1390  
1391  
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402<a href="/blog/technical/nginx/Moesif-for-API-Observability-and-Analytics-in-NGINX-OpenResty/" rel="permalink" class="archive-card ">
1403  <div class="archive-card__teaser">
1404    
1405    
1406    
1407    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" class="lazyload" width="150" height="150" data-src='https://blog.moesif.com/images/landing/technical.svg' alt=Moesif for API Observability and Analytics in NGINX OpenResty
1408>
1409    
1410  </div>
1411  <div class="archive-card__text">
1412    <div class="archive-card__categories">
1413
1414      <p>
1415        API Development
1416      </p>
1417    </div>
1418
1419    <h2 class="archive-card__title no-anchor" itemprop="headline">
1420      
1421      Moesif for API Observability and Analytics in NGINX OpenResty
1422
1423      
1424    </h2>
1425
1426    
1427    <p class="archive-card__excerpt" itemprop="description">
1428      Set up API observability in NGINX OpenResty with Moesif to track performance, monitor errors, and gain real-time insights into your API traffic and users.
1429
1430    </p>
1431    
1432
1433    
1434    <p class="page__meta archive-card__date">
1435      <time datetime=" 2025-08-06">August 06, 2025
1436        
1437  </div>
1438</a>
1439
1440  
1441  
1442</div>
1443
1444<div class='landing-subscription'>
1445  
1446
1447<div id="email-landing"></div>
1448<script>
1449  var _run_landing = false;
1450
1451  function createEmailForm_landing() {
1452    if (!_run_landing) {
1453      window.hbspt.forms.create({
1454        portalId: "2503070",
1455        formId: "7145f36e-31b3-4b6e-89eb-5483d83387cd",
1456        css: "",
1457        target: "#email-landing",
1458        inlineMessage: "Thank you for subscribing",
1459        onFormSubmit: function ($form) {
1460          if (typeof logUxEvent !== "undefined") {
1461            logUxEvent("Blog-Email-Subscribe");
1462          }
1463        },
1464      });
1465    }
1466    _run_landing = true;
1467  }
1468  function loadHubspotFormShellScript(cb) {
1469    if (!window.hhspt || !window.hbspot.forms) {
1470      $.getScript("//js.hsforms.net/forms/shell.js", function () {
1471        cb();
1472      });
1473    } else {
1474      cb();
1475    }
1476  }
1477  window.addEventListener("scroll", function () {
1478    loadHubspotFormShellScript(createEmailForm_landing);
1479  });
1480</script>
1480
1481
1482</div>
1483
1484
1485<nav class="pagination">
1486  
1487  <ul>
1488    
1489    
1490    <li><a href="#" class="disabled"><span aria-hidden="true">Previous</span></a></li>
1491    
1492
1493    
1494    
1495      <li><a href="#" class="disabled current">1</a></li>
1496    
1497
1498    
1499    
1500
1501    
1502    
1503    
1504
1505    
1506      
1507        
1508        
1509        
1510        <li><a href="/blog/page2/#recent-post">2</a></li>
1511      
1512    
1513      
1514        
1515        
1516        
1517        <li><a href="/blog/page3/#recent-post">3</a></li>
1518      
1519    
1520
1521    
1522    
1523      <li><a href="#" class="disabled">&hellip;</a></li>
1524    
1525
1526    
1527      <li><a href="/blog/page31/#recent-post">31</a></li>
1528    
1529
1530    
1531    
1532      <li><a href="/blog/page2/#recent-post">Next</a></li>
1533    
1534  </ul>
1535</nav>
1536
1537
1538
1539<script>
1540  window.addEventListener('load', function () {
1541    if (typeof logUxEvent !== 'undefined') {
1542      logUxEvent('Blog-Viewed-Home');
1543    }
1544  });
1545
1546  if (window.location.hostname === 'blog.moesif.com') {
1547    window.location.href = "https://www.moesif.com/blog";
1548  }
1549</script>
1549
1550
1551
1552    
1553
1554
1555  </div>
1556
1557  <div id="footer" class="page__footer">
1558    <footer>
1559      <!-- start custom footer snippets -->
1560
1561
1562<div class="page__footer-copyright">
1563  <a href="https://www.moesif.com/terms">Terms</a> |
1564  <a href="https://www.moesif.com/privacy">Privacy</a> |
1565  <a href="https://www.moesif.com/security">Security</a> |
1566  <a href="https://moesif.workable.com" target="_blank" rel="noreferrer noopener">Careers</a> |
1567  <a href="https://www.moesif.com/blog">Blog</a> |
1568  <a href="https://www.moesif.com/docs">Docs</a> |
1569  <a href="https://status.moesif.com">Status</a> |
1570  <a href="https://www.moesif.com/blog/write-for-us/">Guest Post</a>
1571  </br>
1572    &copy; 2026 <a href="https://www.moesif.com">Moesif</a>
1573</div>
1574
1575<!-- end custom footer snippets -->
1576
1577    </footer>
1578  </div>
1579
1580  
1581  
1581<script src="https://blog.moesif.com/assets/js/main.min.js"></script>
1581
1582
1583  
1583<script async src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/js/all.min.js" integrity="sha384-DsXFqEUf3HnCU8om0zbXN58DxV7Bo8/z7AbHBGd2XxkeNpdLrygNiGFr/03W0Xmt" crossorigin="anonymous"></script>
1583
1584
1585
1586
1587  
1588  
1589      <!-- Including InstantSearch.js library and styling -->
1590
1591<script>
1592window.loadSearch = function (callback) {
1593  if (!window._search) {
1594    $('head').append('<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/instantsearch.min.css">');
1595    $('head').append('<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/instantsearch-theme-algolia.min.css">');
1596    $.getScript('https://cdn.jsdelivr.net/npm/[email protected]/dist/instantsearch.min.js', function () {
1597      const search = instantsearch({
1598        appId: 'TS2B00F77M',
1599        apiKey: '07b6bb75d0e13de668e0ddaf2ae15260',
1600        indexName: 'Blog',
1601        searchParameters: {
1602          restrictSearchableAttributes: [
1603            'title',
1604            'content'
1605          ]
1606        }
1607      });
1608
1609      const hitTemplate = function(hit) {
1610        const url = hit.url;
1611        const title = hit._highlightResult.title.value;
1612        const content = hit._highlightResult.html.value;
1613
1614        return `
1615          <div class="list__item">
1616            <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
1617              <h2 class="archive__item-title" itemprop="headline"><a href="/blog${url}">${title}</a></h2>
1618              <div class="archive__item-excerpt" itemprop="description">${content}</div>
1619            </article>
1620          </div>
1621        `;
1622      }
1623
1624      // Adding searchbar and results widgets
1625      search.addWidget(
1626        instantsearch.widgets.searchBox({
1627          container: '.search-searchbar',
1628          placeholder: 'Search blog articles...'
1629        })
1630      );
1631      search.addWidget(
1632        instantsearch.widgets.hits({
1633          container: '.search-hits',
1634          templates: {
1635            item: hitTemplate
1636          }
1637        })
1638      );
1639
1640      window._search = search;
1641      if  (callback) {
1642        callback();
1643      }
1644    });
1645  }
1646}
1647// Instanciating InstantSearch.js with Algolia credentials
1648</script>
1648
1649
1650  
1651
1652
1653
1654
1655
1656  <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 68 bytes, lines 1656-1659
1656
1657<script
1658  async
1659  src="https://www.googletagmanager.com/gtag/js?id=
1659G-Q03C285919
vendor: 13 bytes, lines 1659-1660
1659"
1660></script>
1661<script>
1662  
vendor: 142 bytes, lines 1662-1667
1662window.dataLayer = window.dataLayer || [];
1663  function gtag() {
1664    dataLayer.push(arguments);
1665  }
1666  gtag("js", new Date());
1667  gtag("config", "
1667G-Q03C285919
vendor: 38 bytes, lines 1667-1669
1667", {
1668    anonymize_ip: "false",
1669  });
1670</script>
1670
1671
1672
1673
1674<!-- start custom analytics snippet -->
1675
1676<script>
1677  window.logUxEvent = function (event, metadata) {
1678    if (typeof gtag !== 'undefined') {
1679      gtag('event', event, metadata);
1680    }
1681    if (typeof moesif !== 'undefined') {
1682      moesif.track(event, metadata);
1683    }
1684  }
1685</script>
1685
1686
1687
1688
1689
1690<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1690-1691
1690
1691<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1691GTM-WXWPX6T
vendor: 85 bytes, lines 1691-1692
1691"
1692  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1693<!-- End Google Tag Manager (noscript) -->
1694
1695<!-- Facebook Pixel Code (noscript) -->
1696<noscript><img height="1" width="1" style="display:none"
1697  src="https://www.facebook.com/tr?id=258723467888184&ev=PageView&noscript=1"
1698  />
1699</noscript>
1700<!-- End Facebook Pixel Code (noscript) -->
1701
1702<!-- Start of HubSpot Embed Code -->
1703<script type="text/javascript" id="hs-script-loader">
1704 ! function(e, t) {
1705  if (!document.getElementById(e)) {
1706      var c = document.createElement("script");
1707      c.src = "https://www.moesif.com/js/tags/hs/2503070.js", c.type = "text/javascript", c.id = e;
1708      var n = document.getElementsByTagName("script")[0];
1709      n.parentNode.insertBefore(c, n)
1710  }
1711}("hs-analytics");
1712var _hsp = window._hsp = window._hsp || [];
1713_hsp.push(['addEnabledFeatureGates', []]);
1714! function(t, e, r) {
1715  if (!document.getElementById(t)) {
1716      var n = document.createElement("script");
1717      for (var a in n.src = "https://www.moesif.com/js/tags/hs/hs-banner.js", n.type = "text/javascript", n.id = t, r) r.hasOwnProperty(a) && n.setAttribute(a, r[a]);
1718      var i = document.getElementsByTagName("script")[0];
1719      i.parentNode.insertBefore(n, i)
1720  }
1721}("cookieBanner-2503070", 0, {
1722  "data-cookieconsent": "ignore",
1723  "data-loader": "hs-scriptloader",
1724  "data-hsjs-portal": 2503070,
1725  "data-hsjs-env": "prod",
1726  "data-hsjs-hublet": "na1"
1727});
1728! function(t, e, r) {
1729  if (!document.getElementById(t)) {
1730      var n = document.createElement("script");
1731      for (var a in n.src = "https://www.moesif.com/js/tags/hs/conversations-embed.js", n.type = "text/javascript", n.id = t, r) r.hasOwnProperty(a) && n.setAttribute(a, r[a]);
1732      var i = document.getElementsByTagName("script")[0];
1733      i.parentNode.insertBefore(n, i)
1734  }
1735}("hubspot-messages-loader", 0, {
1736  "data-loader": "hs-scriptloader",
1737  "data-hsjs-portal": 2503070,
1738  "data-hsjs-env": "prod",
1739  "data-hsjs-hublet": "na1"
1740});
1741! function(t, e, r) {
1742  if (!document.getElementById(t)) {
1743      var n = document.createElement("script");
1744      for (var a in n.src = "https://www.moesif.com/js/tags/hs/leadflows.js", n.type = "text/javascript", n.id = t, r) r.hasOwnProperty(a) && n.setAttribute(a, r[a]);
1745      var i = document.getElementsByTagName("script")[0];
1746      i.parentNode.insertBefore(n, i)
1747  }
1748}("LeadFlows-2503070", 0, {
1749  "crossorigin": "anonymous",
1750  "data-leadin-portal-id": 2503070,
1751  "data-leadin-env": "prod",
1752  "data-loader": "hs-scriptloader",
1753  "data-hsjs-portal": 2503070,
1754  "data-hsjs-env": "prod",
1755  "data-hsjs-hublet": "na1"
1756});
1757</script>
1757
1758
1759<!-- Start of Moesif Embed Code -->
1760<script src="//unpkg.com/moesif-browser-js@^1/moesif.min.js"></script>
vendor: 1 bytes, line 1760
1760
1761<script type="text/javascript">
1762  moesif.init({
1763    applicationId: 'eyJhcHAiOiIyMjM6MjUiLCJ2ZXIiOiIyLjAiLCJvcmciOiIxMTY6MjEiLCJpYXQiOjE2NjcyNjA4MDB9.sZMgYN5hKSnWAm_T8u_xeazNQ47vfAhpzTaVZupVIrQ',
1764    // applicationId: 'eyJhcHAiOiIyMjM6MjUiLCJ2ZXIiOiIyLjAiLCJvcmciOiIxMTY6MjEiLCJpYXQiOjE2NjcyNjA4MDB9.sZMgYN5hKSnWAm_T8u_xeazNQ47vfAhpzTaVZupVIrQ',
1765    batchEnabled: true,
1766    persistenceKeyPrefix: 'collector',
1767  });
1768</script>
1768
1769<!-- end custom analytics snippet -->
1770
1771<script>
1772  var experimentsToProcess = [
1773  // example data needed for an experiment
1774  // {
1775  //   // same as feature flag key (all experiments are based on feature flag key)
1776  //   key: "test-sticky-cta",
1777  //   variants: {
1778  //     // test and control are variant names defined in posthog, and any name can work.
1779  //     test: {
1780  //       // elements to to modify.
1781  //       elements: [
1782  //         {
1783  //           element_id: "sticky_cta_anchor",
1784  //           // different attributes of element to override:
1785  //           attributes: {
1786  //             textContent: "Test Random CTA",
1787  //             // if there is query params, I will take original query params
1788  //             // and merge with new query params.
1789  //             // any old query params from original url will be preserved
1790  //             // if they are not overwritten.
1791  //             href: "http://www.moesif.com/?utm_source=experiment",
1792  //             // you can use inline style for quick edits.
1793  //             style: "background-color: blue; color: white;"
1794  //             // hide component by set style to "display: none;"
1795  //           },
1796  //           // optional: add event listener to send to event to moesif/google analytics
1797  //           event: {
1798  //             // please be one of the official html dom events, "click", "submit" for forms is most common.
1799  //             type: "click",
1800  //             name: "Blog-Clicked-Sticky-Cta"
1801  //           }
1802  //         },
1803  //         // you can modify more than one elements for the same variant if you like.
1804  //         {
1805  //           element_id: "sticky_cta_message",
1806  //           attributes: {
1807  //             textContent: "Some special message"
1808  //           }
1809  //         }
1810  //       ]
1811  //     },
1812  //     control: {
1813  //       elements: [
1814  //         {
1815  //           element_id: "sticky_cta_anchor",
1816  //           // usually for control we don't need do modification of attributes
1817  //           // this is needed so that on control we also send an event on click.
1818  //           event: {
1819  //             type: "click", // please be one of the official events.
1820  //             name: "Blog-Clicked-Sticky-Cta"
1821  //           }
1822  //         }
1823  //       ]
1824  //     }
1825  //   }
1826  // }
1827];
1828
1829// TO SEE HOW YOUR VARIANT LOOKS
1830// for testing different variants, you can override the feature flags to a specific variant like this:
1831// posthog.featureFlags.override({ "test-sticky-cta": "test" });
1832// Please comment above out after testing
1833
1834// boolean feature flags below for future.
1835var featureFlagsToProcess = [
1836  // {
1837  //   key: "test-xing-name",
1838  //   // optional, if not defined.
1839  //   element_id: "test-xing-name",
1840  //   attributes: {
1841  //     textContent: "Test CTA"
1842  //   }
1843  // }
1844];
1845
1846function createEventListener(eventName, attributes) {
1847  return function (evt) {
1848    // uncomment this if you want to debug
1849    // we don't follow the link
1850    // evt.preventDefault();
1851    var target = evt.target;
1852
1853    var metadata = {
1854      cta_text: target.textContent,
1855      experiment_key: target.dataset.experiment_key,
1856      variant_key: target.dataset.variant_key,
1857      href: target.getAttribute("href"),
1858      id: target.getAttribute("id"),
1859      style: target.getAttribute("style"),
1860    };
1861    // console.log("final metadata on click sticky cta");
1862    // console.log(metadata);
1863    window.logUxEvent(eventName, metadata);
1864  };
1865}
1866
1867function handleOneFeatureFlag(entry) {
1868  if (posthog.isFeatureEnabled(entry.key)) {
1869    var element = document.getElementById(entry.element_id || entry.key);
1870    if (element) {
1871      element.dataset.experiment_key = entry.key;
1872      element.addEventListener("click", onCtaClick);
1873      // if we don't find element we don't do anything.
1874      if (entry.override_text) {
1875        element.textContent = entry.override_text;
1876      } else {
1877        // try to get text from payload
1878        posthog.getFeatureFlagPayload(entry.key).then((payload) => {
1879          if (payload && payload.text) {
1880            element.textContent = payload.text;
1881          }
1882        });
1883      }
1884    }
1885  }
1886}
1887
1888function mergeQueryParams(oldHref, newHref) {
1889  if (!oldHref) {
1890    return newHref;
1891  }
1892  try {
1893    var parsedUrlOld = new URL(oldHref, window.location.origin);
1894    var parsedUrlNew = new URL(newHref, window.location.origin);
1895
1896    var paramsOld = new URLSearchParams(parsedUrlOld.search);
1897    var paramsNew = new URLSearchParams(parsedUrlNew.search);
1898
1899    // Merge query parameters, giving priority to params from B
1900    paramsOld.forEach((value, key) => {
1901      if (!paramsNew.has(key)) {
1902        paramsNew.set(key, value);
1903      }
1904    });
1905
1906    var mergedUrl = new URL(newHref);
1907    mergedUrl.search = paramsNew.toString();
1908    return mergedUrl.toString();
1909  } catch (err) {
1910    return newHref;
1911  }
1912}
1913
1914function handleModifyOneElement(elementModifyData, experimentKey, variantKey) {
1915  var element = document.getElementById(elementModifyData.element_id);
1916  if (element) {
1917    element.dataset.experiment_key = experimentKey;
1918    element.dataset.variant_key = variantKey;
1919
1920    if (elementModifyData.event) {
1921      element.addEventListener(
1922        elementModifyData.event.type,
1923        createEventListener(elementModifyData.event.name)
1924      );
1925    }
1926
1927    var newAttributes = elementModifyData.attributes;
1928    if (newAttributes) {
1929      Object.entries(newAttributes).forEach(([key, value]) => {
1930        if (key === "textContent") {
1931          element.textContent = value;
1932        }
1933        if (key === "href") {
1934          var currentHref = element.getAttribute(key);
1935          var newHref = mergeQueryParams(currentHref, value);
1936          element.setAttribute("href", newHref);
1937        } else {
1938          element.setAttribute(key, value);
1939        }
1940      });
1941    }
1942  }
1943}
1944
1945function handleOneExperiment(entry) {
1946  // console.log("handling one experiment");
1947  var variantKey = posthog.getFeatureFlag(entry.key);
1948  // console.log(JSON.stringify({ variantKey, entry }));
1949
1950  var elementsToModify =
1951    entry.variants[variantKey] && entry.variants[variantKey].elements;
1952
1953  if (elementsToModify) {
1954    elementsToModify.forEach((elementModifyData) => {
1955      handleModifyOneElement(elementModifyData, entry.key, variantKey);
1956    });
1957  }
1958}
1959
1960posthog.onFeatureFlags(function () {
1961  // feature flags should be available at this point
1962  featureFlagsToProcess.forEach((entry) => {
1963    try {
1964      handleOneFeatureFlag(entry);
1965    } catch (err) {
1966      console.log("error processing " + entry.key);
1967      console.error(err);
1968    }
1969  });
1970
1971  experimentsToProcess.forEach((entry) => {
1972    try {
1973      handleOneExperiment(entry);
1974    } catch (err) {
1975      console.log("error processing " + entry.key);
1976      console.error(err);
1977    }
1978  });
1979});
1980
1981</script>
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990</body>
1991
1992</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.