html,body{height:100%;margin:0;padding:0}body{min-height:100%;position:relative;font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;font-size:16px;margin:0 auto;-webkit-font-smoothing:subpixel-antialiased;-webkit-text-size-adjust:none;text-rendering:optimizeLegibility;background:#fbfbfc;color:#000001;min-width:1024px}body.mobile-friendly{min-width:0}.smallcaps{text-transform:uppercase;letter-spacing:3px;line-height:2.3em}h1.smallcaps,h2.smallcaps,h3.smallcaps,h4.smallcaps,h5.smallcaps{text-align:left}.bold{font-weight:bold}h1,h2,h3,h4,h5,.smallcaps,header nav{font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif}h1,h2,h3,h4,h5{font-weight:normal;margin:.3em 0}h1{font-size:3.0em}h2{font-size:2.0em}h3{font-size:1.8em}h4{font-size:1.5em}h5{font-size:1.2em}p{line-height:2em;margin:0 0 1.8rem}.centered{text-align:center;margin:0 auto}.left{float:left}.right{float:right}.group:after{content:"";display:table;clear:both}a{color:#8aba56;text-decoration:none;transition:color .12s ease}a span{transition:color .12s ease}.no-touch a:hover,.no-js a:hover{color:#a3c97a}h1 a,h2 a,h3 a,h4 a{color:inherit}.no-touch h1 a:hover,.no-js h1 a:hover{color:inherit}hr{display:block;margin:0 auto .9em auto;border:none;border-top:1px solid #e5e5e5}.underline{text-decoration:underline}.smallcaps{font-weight:bold}.requirejs{display:none}::selection{background:#afd5fc;text-shadow:none}::-moz-selection{background:#afd5fc;text-shadow:none}input,textarea{-moz-box-sizing:border-box;box-sizing:border-box}.required:after{content:" *";color:red}.button,input[type=submit]{font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;text-decoration:none;padding:.6em 1.2em;margin:.4em 0;border-radius:2px;color:#8aba56;background:#fbfbfc;border:1px solid #8aba56;letter-spacing:1px;transition:all .12s ease;display:inline-block;font-size:1rem;line-height:1.3em;font-weight:200;cursor:pointer;-webkit-appearance:none;-moz-appearance:none}.button.secondary-color,input[type=submit].secondary-color{color:#466aa6;border-color:#466aa6}.button.tertiary-color,input[type=submit].tertiary-color{color:#ff4f5c;border-color:#ff4f5c}.no-touch .button:hover,.no-js .button:hover,.no-touch input[type=submit]:hover,.no-js input[type=submit]:hover,.button.filled,input[type=submit].filled{background:#8aba56;color:#fbfbfc}.no-touch .button.secondary-color:hover,.no-js .button.secondary-color:hover,.button.secondary-color.filled,input[type=submit].secondary-color.filled,.no-touch input[type=submit].secondary-color:hover,.no-js input[type=submit].secondary-color:hover{background:#466aa6}.no-touch .button.tertiary-color:hover,.no-js .button.tertiary-color:hover,.button.tertiary-color.filled,.no-touch input[type=submit].tertiary-color:hover,.no-js input[type=submit].tertiary-color:hover{background:#ff4f5c}.no-touch .button.filled:hover,.no-js .button.filled:hover{background:#80b349}.no-touch .button.secondary-color.filled:hover,.no-js .button.secondary-color.filled:hover,.no-touch input[type=submit].secondary-color.filled:hover,.no-js input[type=submit].secondary-color.filled:hover{background:#3d5c90}.no-touch .button.tertiary-color.filled:hover,.no-js .button.tertiary-color.filled:hover{background:#ff3040}.button[disabled],input[type=submit][disabled]{cursor:default;color:#c3c3c5;border-color:#c3c3c5;background:none !important;box-shadow:none !important}.no-touch .button[disabled]:hover,.no-js .button[disabled]:hover,.no-touch input[type=submit][disabled]:hover,.no-js input[type=submit][disabled]:hover{color:#c3c3c5;border-color:#c3c3c5;background:none}table{border-collapse:collapse;border-spacing:0;font-size:0.9em;margin:0 1.5rem 1.8rem}table th{font-weight:bold;border-bottom:1px solid #e3e3e5}table th,table td{padding:.8em;text-align:left;vertical-align:top;line-height:1.8em;border-top:1px solid #e3e3e5}table tbody tr:last-child{border-bottom:1px solid #e3e3e5}.form{padding:0 6em;max-width:450px !important;margin:0 auto}.form p{margin-bottom:1rem}.form h2,.form h3{text-align:center}.small-details{font-size:.8em;color:#a9a9ac}.form .can-leave-blank{border-left:1px solid #e6e6e7;padding-left:1.5em}.form .can-leave-blank input{border-color:#d3d3d4}.form-element{margin:.4em 0 .6em}fieldset{margin-bottom:1.8rem;border:1px solid #c3c3c5;padding:1.5em}input[type=text],input[type=email],input[type=password],input[type=number],textarea,.textarea{background-color:#fff;padding:.6em .8em;font-size:1.1em;min-width:14em;border:1px solid #d0d0d2;border-radius:2px;transition:border .1s ease;width:100%}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,textarea:focus{outline:none}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,textarea:focus{border:1px solid #a9a9ac}input[type=text].error,input[type=email].error,input[type=password].error,input[type=number].error,textarea.error,.textarea.error{border-color:#ff4f5c}label.error{color:#ff4f5c}textarea{width:100%;text-rendering:optimizeSpeed}label,fieldset legend{font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;color:#75757a}ol,ul{margin:0 0 2em}ol ol,ul ul{margin-bottom:0}ul{list-style-type:square;padding-left:2.5rem}li{line-height:1.8em;margin-bottom:.5em}ol.nobullet,ul.nobullet{list-style-type:none}code,.code,pre,kbd{font-family:Menlo,Monaco,Consolas,"Andale Mono","Ubuntu Mono","Courier New",monospace !important}samp,:not(pre) > code{vertical-align:middle;padding:3px 4px;border:1px solid #e5e5e5;font-size:0.9em;background-color:#fefefd;word-wrap:break-word;white-space:normal}:not(pre):not(p):not(li) > code{white-space:nowrap}samp{color:#fefefd;background-color:#222221;border-color:#090909}kbd{text-align:center;background-color:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;display:inline-block;padding:0.1em 0.63em;margin:0 0.1em;text-shadow:0 1px 0 #fff}header{display:block;width:100%;height:4.5em;line-height:4.5em;background-color:#fbfbfc;background-color:rgba(251,251,252,0.985);position:absolute;top:0;z-index:2}.header-push{height:4.5em}.header-push + h1{margin-top:1em}.header-push + article{padding-top:0}header .logo{display:block;float:left}header .logo a,header .logo h1{display:inline-block}header .logo h1{font-size:1.7em;font-weight:bold;margin:0}header .logo a span{color:#8aba56}header .logo a{color:#000001}.no-touch header .logo a:hover,.no-js header .logo a:hover{color:#4d4d4d}.no-touch header .logo a:hover span,.no-js header .logo a:hover span{color:#97c168}header .wrap{max-width:940px;margin:0 auto;padding:0 2em}header nav{display:block;float:right;margin:0;padding:0;font-weight:bold;text-transform:uppercase;letter-spacing:1px}header nav a{font-size:.8em;margin:0 .6em;color:#666}header nav a.selected{border-bottom:2px solid}header nav a.secondary-color{color:#466aa6}.no-touch header nav a:hover,.no-js header nav a:hover{color:#878787}.no-touch header nav a.secondary-color:hover,.no-js header nav a.secondary-color:hover{color:#2f4870}body > .wrap{min-height:100%;height:auto !important;height:100%;margin:0 auto -2rem}.footer-push,footer{height:2rem}footer{font-family:'Helvetica Neue', 'Helvetica', sans-serif;position:relative;z-index:1;font-size:12px;line-height:2rem;margin:0;text-align:center;color:#b6b6b8}footer a{color:#aeaeb1}.no-touch footer a:hover,.no-js footer a:hover{color:#9c9c9f}footer.green{background:#8aba56}footer.green,footer.green a{color:#c9dfb1}.no-touch footer.green a:hover,.no-js footer.green a:hover{color:#d5e6c3}h1 + article,h1 + .content{padding-top:0}article,.content{position:relative;font-family:"Libre Baskerville","Lustria",Georgia,serif;font-size:.875em;max-width:720px;padding:2rem;margin:0 auto;padding-left:4.5rem;padding-right:2.5rem;left:-1rem}.content{padding-top:0}article.detailed{max-width:940px}main{display:block;transition:.5s padding ease}.content.wide{max-width:75%}.banner{width:100%;padding:1em;background-color:#466aa6;color:#fbfbfc;text-align:center}article.detailed > section{display:block;width:51em}article figcaption,article.detailed > section aside{display:block;font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;font-size:.9em;line-height:1.5em;color:#9a9a9a}article figcaption{text-align:center;padding-top:.5em}article.detailed > section aside{right:2.5rem;position:absolute;width:14.8em;margin-top:0.4em}article.detailed > section aside samp,article.detailed > section aside code{padding:1px 4px}article figure{text-align:center;overflow:hidden;margin:0 0 1.8rem 0}article.detailed > figure{padding:0}article img,.content img,article video,.content video{max-width:100%;height:auto}.video{max-width:800px;max-height:450px;margin-left:auto;margin-right:auto}.embed-container{position:relative;padding:0 0 56.25% 0 !important;margin:0 auto}.embed-container iframe,.embed-container object,.embed-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.success ul,.errors ul{margin:0;text-align:left}.success,.errors,.info-notice{color:#000001;background:#ffe6e6;border:1px solid #e58e8e;max-width:95%;padding:2em;margin:0 auto 2em}.errors h2,.success h2,.info-notice{margin-top:0}.success{background:#d3edd3;border-color:#83d186;text-align:center}.info-notice{background:#d3dded;border-color:#84a1d1;text-align:center}.info-notice a{color:inherit;text-decoration:underline}@-webkit-keyframes notice-fade{0%{opacity:1}100%{opacity:0}}@keyframes notice-fade{0%{opacity:1}100%{opacity:0}}.flash-notice{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:notice-fade;animation-name:notice-fade;-webkit-animation-delay:10s;animation-delay:10s}blockquote{font-size:1.1em;line-height:1.8em;margin:0 0 1.8rem 0;padding:.25rem 2.5rem}blockquote cite{display:block;color:#999;padding-top:.5rem}blockquote cite:before{content:"\2014\2009"}blockquote p:last-child{margin-bottom:0}abbr{cursor:help;border-bottom:1px dashed #c9c9cc}.fields{margin-left:.5em}.fields .fields{margin-left:5.5em}article.detailed > h1,h1.post-heading{font-size:3.9em;font-weight:normal;text-align:left;margin-top:0}.new_user h3:first-of-type{margin-top:0}.hero{display:block;box-sizing:border-box;position:relative;width:100%;padding:2.5em 10%;background:#8aba56;color:#fbfbfc;text-align:center;border-bottom:1px solid #97c168}.hero .button{font-size:1.2em;box-shadow:0 1px 0 #5076b5 inset,0 2px 2px rgba(0,0,0,0.12)}.hero h1,.hero h2{margin:0;font-weight:bold}.hero.secondary{padding:1.5em 0;border-bottom:0}.hero.secondary .container{max-width:50em;margin:0 auto}.hero.secondary h2{line-height:2em}.hero-features{margin:0 auto;text-align:center;max-width:90%;margin-top:2.5em}.hero-features .feature{display:inline-block;max-width:15%;margin:1.5em 2%}.hero-features .feature img{max-width:64px}.hero-features .feature h5{font-weight:bold}.hero-features .feature p{font-size:.8em;line-height:1.2em;margin-bottom:.5em}.hero.mini,.hero.blog-call-to-action{font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;position:relative;max-width:720px;padding:2em;margin:0 auto;border-radius:2px;box-shadow:0 1px 0 rgba(255,255,255,0.15) inset;border:1px solid #8aba56}.hero.blog-call-to-action{text-align:left}.hero.blog-call-to-action h3,.hero.blog-call-to-action p{margin:0}.hero.blog-call-to-action p{line-height:1.5em;margin-top:.2em}.hero.blog-call-to-action .button{position:absolute;top:1.6em;right:2em}.hero.blog-call-to-action a{color:inherit}.hero-points li{line-height:1.8em}.hero.hero-course{padding:1.5em 5%;margin-top:1.5em}.hero.hero-course + .content{margin-top:1em}.hero.hero-course h1{font-size:2.3em;margin-bottom:.1em}.hero.hero-course p{max-width:80%;line-height:1.5;font-size:.8em;margin:0 auto 1em}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}10%, 20%{-webkit-transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)}30%, 50%, 70%, 90%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)}40%, 60%, 80%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes tada{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}10%, 20%{-webkit-transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)}30%, 50%, 70%, 90%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)}40%, 60%, 80%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.tada{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:tada;animation-name:tada;-webkit-animation-delay:6s;animation-delay:6s}@media all and (max-width: 510px){.mobile-friendly header,.mobile-friendly header nav{text-align:center;background:#f4f4f7}.mobile-friendly header .wrap{padding:0}.mobile-friendly header .logo{display:block;float:none;line-height:1.5em;margin-top:1em}.mobile-friendly header nav{float:none;border-bottom:1px solid #e3e3e5;box-shadow:inset 0 -1px 1px rgba(0,0,0,0.05);font-size:.9em;line-height:3em}.mobile-friendly .header-push{height:5.5em}.mobile-friendly article{padding-top:1rem}.mobile-friendly .lessons{font-size:.85em}.mobile-friendly ul{padding-left:0rem}.mobile-friendly ul ul{padding-left:1.5rem}}.ace_editor,.codeblock{font-family:Menlo,Monaco,Consolas,"Andale Mono","Ubuntu Mono","Courier New",monospace !important}.editor{display:none}pre,.ace_editor,.codeblock.plain{margin-top:1.8rem !important;margin-bottom:1.8rem !important;font-size:1em !important;line-height:1.5 !important}figure pre{margin-top:0 !important;margin-bottom:0 !important}pre{overflow-x:scroll}.codeblock.plain pre{margin:0 !important}.ace_editor{margin-left:-4px !important}pre[contenteditable],code[contenteditable],pre[contenteditable]:focus,code[contenteditable]:focus{outline:none}.codeblock.plain,.codeblock .plain{padding-left:1.5rem;overflow-x:scroll}.codeblock{position:relative;border-left:solid 4px #e2e2e3;padding-left:4px;margin-left:-28px;transition:.15s border ease}.no-js .codeblock .control{display:none}.codeblock .control{display:block;position:absolute;width:16px;margin-left:-16px;height:15px;background-size:16px 15px;left:-0.7rem;opacity:.4;transition:.08s opacity ease}.no-js .codeblock .results{display:none}.codeblock .results{box-sizing:border-box;display:none;overflow:hidden;opacity:0;width:100%;height:100%;max-height:17.3em;max-width:32em;min-height:3.95em;padding:.5em;font-size:.8em;line-height:1.5;background-color:#222221;background-color:rgba(34,34,33,0.97);text-shadow:0 1px rgba(34,34,33,0.97);border:5px solid #1d1d1c;border-radius:3px;color:#f5f5f5;right:0;top:0;position:absolute;z-index:10;box-shadow:0 0 5px 1px rgba(0,0,0,0.3);transition:.15s opacity ease, .15s color ease}.challenge .codeblock .results{max-height:14.5em;max-width:26em}.codeblock.uptodate .results.visible{opacity:.98;color:#f5f5f5}.codeblock .results.visible{opacity:.8;color:rgba(245,245,245,0.8)}.codeblock .results .cross{position:absolute;right:3px;top:-5px;color:lightgrey;font-size:1.5em;font-weight:bold}.codeblock .control:hover{opacity:.65}.codeblock .run{top:.3em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAGFBMVEVMaXEAAAAAAAAAAAAAAAAAAAAAAAAAAACrC2ehAAAAB3RSTlMA7cRQtkNpBs/kJQAAAFRJREFUeAFdyMEVQEAAxNCpwt5BIZaatn0vx0xu+Zmp1lcwLIAFQAyIATEgBsSAGBADYkAAC2AxrLthKziS4Qf0gB7QA3pAD+gBPaAHeAEv8Kc//T8t92tjfotVWwAAAABJRU5ErkJggg==)}.codeblock.uptodate.running .run{opacity:.2;top:.3em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAGFBMVEUAAABMaXEAAAAAAAAAAAAAAAAAAAAAAADtSWCRAAAACHRSTlP/AJcixkhs5R5JUSYAAADWSURBVHjanZNLEsQgCAWR7/1vPOpAnkZrFtMrIw1IaagtiDkzu0lLzNsiuFKh/k0ghuC0Yz0ei6D0hvteCtO9kcIe31UdAuqry9BdXwJnrmHeWAWp9QNqxhAYcRSAUAVkjxdd8JwHcVoQEn4XMHbuqGoMwRQnuEEe6HAVmP4WzK3zo8VMjTxkXISZqTWmnR1owJSLc85MpCx1lLDlsnAZQNYXFachdZlTcCq9qB2fwmhSipuY47OlcD56TEYNxhGHgK7AWwqJ6J4uDUIpXE7wCEMAz+8PPn0cBIMd1D5PAAAAAElFTkSuQmCC)}.codeblock.uptodate.running .run:hover{opacity:.65}.codeblock .reset{top:.7em;margin-top:16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAaCAMAAADhRa4NAAAAGFBMVEVMaXEAAAAAAAAAAAAAAAAAAAAAAAAAAACrC2ehAAAAB3RSTlMAfMVHoB3qaHka1wAAAHFJREFUeNrlkEEKBDEIBFuN9v9/PPSYgwjL3ndzKWIVAYN5wlMw7+tpDk8yASMr5UnfXoEJBRzRl6/rafKz2L6p0RfvP+J7kEiBB7H3R5rE/dkKuNij+Ybfgv9a4EOBLiqxiuwioGJ5qRiAb4+0F9FoPq6OCuDZWWxaAAAAAElFTkSuQmCC);height:13px;background-size:16px 13px}.codeblock .debug{bottom:.3em;margin-top:16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAApElEQVR42u3Xuw2AIBSFYVsbl3AdO3cgsbS6LS3r2DOAg7gAtQmeQgMVFEROc03+lnwJ8hqWbe8aPkHh7WIAHIpfDIDNAEEBCmgdbEYrGxCRsABjNphhACYUcgQRkBC9pyABUqbbMkyAAqIEwHcg39CNYgFRBcSfs2yAqwE8OhsqTYEwf0JhLkNhbkTC3AmFeRgJ8zh2zPuA0TuhAhTQ8jilP88fKH48sJZcaecAAAAASUVORK5CYII=);height:16px;background-size:16px 16px}.codeblock .results .terminal-cursor{color:#2C2C2B;background:#D9D9D9}.codeblock .results .spinner,.challenge .spinner{display:block;position:fixed;z-index:100;top:15px;right:15px}.codeblock .results .spinner{display:none;position:absolute;top:50%;right:50%;margin-top:-9px;margin-right:-9px}.codeblock .results.loading .spinner{display:block}.challenge .spinner{position:relative;margin:0 auto 1em;right:0;top:0}.codeblock .results .spinner,.challenge .spinner{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#8aba56;border-left-color:#8aba56;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.highlighttable{display:block;background-color:transparent;padding:0 .4em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;overflow:auto;overflow-y:hidden;font-size:.95em;line-height:1.4em;margin-bottom:2em}.highlighttable pre{margin:0}.highlighttable .code{padding-left:.6em}.linenos{-webkit-touch-callout:none;-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.linenodiv{border-right:1px solid #c3c3c5;color:#a9a9ac;padding-right:.6em}.err{color:#a61717;background-color:#e3d2d2}.c,.cm,.cp,.c1,.cs{color:slategray}.k,.kt,.kc,.kd,.kn,.kp,.kr{color:#07a}.o,.ow,.p{color:#999}.s,.sb,.sc,.sd,.s2,.se,.sh,.si,.sx,.sr,.s1,.ss{color:#690}.m,.mf,.mh,.mi,.mo,.il{color:#905}.gd{color:#000000;background-color:#ffdddd}.gd .x{color:#000000;background-color:#ffaaaa}.ge{font-style:italic}.gr{color:#aa0000}.gh{color:#999999}.gi{color:#000000;background-color:#ddffdd}.gi .x{color:#000000;background-color:#aaffaa}.go{color:#888888}.gp{color:#555555}.gs{font-weight:bold}.gu{color:#800080;font-weight:bold}.gt{color:#aa0000}.diagram{position:relative;text-align:center;vertical-align:top}.diagram .entity{position:relative;display:inline-table;vertical-align:top;font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;color:#000;border:3px solid;background:#fff;font-size:1.5em;width:6em;height:6em;padding:.2em;margin:.2em;text-align:center;transition:width .15s ease, height .15s ease, opacity .15s ease, background-color .15s ease}.diagram .entity.filled{border-color:transparent}.diagram .entity.labelled{margin-bottom:1.5em}.diagram .entity > span{display:table-cell;vertical-align:middle;text-align:center}.diagram .entity + span{display:inline-table;margin:.2em;vertical-align:top}.diagram .entity span.label{display:block;position:absolute;left:-1px;bottom:-1.5em}.diagram .entity p{color:#000001}.diagram .entity .entity{font-size:.5em}.diagram .blue{color:#5980B3 !important}.diagram .gold{color:#F8D334 !important}.diagram .red{color:#FD6A72 !important}.diagram .green{color:#9BC26D !important}.diagram .purple{color:#9443FB !important}.diagram .orange{color:#FD9326 !important}.diagram .grey{color:#A6AAA9 !important}.diagram .pink{color:#FC3692 !important}.diagram .entity.filled .label{color:inherit}.diagram .entity.blue.filled{color:#fbfbfc !important;background:#5980B3 !important}.diagram .entity.blue.filled .label{color:#5980B3}.diagram .entity.gold.filled{color:#fbfbfc !important;background:#F8D334 !important}.diagram .entity.gold.filled .label{color:#F8D334}.diagram .entity.red.filled{color:#fbfbfc !important;background:#FD6A72 !important}.diagram .entity.red.filled .label{color:#FD6A72}.diagram .entity.green.filled{color:#fbfbfc !important;background:#9BC26D !important}.diagram .entity.green.filled .label{color:#9BC26D}.diagram .entity.purple.filled{color:#fbfbfc !important;background:#9443FB !important}.diagram .entity.purple.filled .label{color:#9443FB}.diagram .entity.orange.filled{color:#fbfbfc !important;background:#FD9326 !important}.diagram .entity.orange.filled .label{color:#FD9326}.diagram .entity.grey.filled{color:#fbfbfc !important;background:#A6AAA9 !important}.diagram .entity.grey.filled .label{color:#A6AAA9}.diagram .entity.pink.filled{color:#fbfbfc !important;background:#FC3692 !important}.diagram .entity.pink.filled .label{color:#FC3692}.diagram .entity.filled .grey{color:#eee !important}.diagram .entity.filled .grey code{color:#A6AAA9 !important}.js .adjustableNumber{cursor:col-resize}.share-buttons{margin-bottom:1.8rem;text-align:center;letter-spacing:.5em}.share-button{display:inline-block;border-radius:50%;box-shadow:0 1px 0 rgba(255,255,255,0.1) inset;width:36px;height:36px;border:1px solid #8aba56;transition:all .12s ease;cursor:pointer;background-size:32px;background-position:center;background-repeat:no-repeat}.share-button.facebook{background-color:#4a6ea9;border-color:#4a6ea9;background-image:url("/images/facebook.jpg")}.share-button.twitter{background-color:#00aced;border-color:#00aced;background-image:url("/images/twitter.jpg")}.share-button.reddit{background-color:#cfe3f7;border-color:#cfe3f7;background-image:url("/images/reddit.jpg")}.share-button.hackernews{display:none;background-color:#ef6630;border-color:#ef6630;background-image:url("/images/hackernews.jpg")}.challenge{position:relative;background:#fffbe6;border:1px solid #e5d78e;max-width:95%;padding:3em 2em 2em;margin:0 auto 1.8rem}.challenge:before{content:'Challenge';font-size:1.2em;font-family:"PT Sans", "Helvetica Neue", "Helvetica", sans-serif;text-transform:uppercase;font-weight:bold;color:#e5d78e;position:absolute;left:1em;top:.7em}.challenge[data-number]:before{content:"Challenge #" attr(data-number)}.challenge .codeblock{border-color:#e5d78e}.challenge .button{background:none;color:#E0B548;border-color:#E0B548}.challenge .button:hover{background:#E0B548;color:#fbfbfc}.challenge .button.disabled,.challenge .button.disabled:hover{background:none;color:#E0B548;opacity:.3;cursor:default}.challenge .success,.challenge .failure{box-sizing:border-box;width:100%;max-width:none;padding:1em 1.5em;margin:1em 0 0 0;background-color:#8aba56;border:none;border-radius:3px;color:#fbfbfc;font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;text-align:left;background-size:20px;background-repeat:no-repeat;background-position:.75em .95em;padding-left:2.75em}.challenge .success,.challenge.completed:after{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAGFBMVEVMaXH4+P/7+/v6+vv6+vz7+/v7+/v7+/y52JR2AAAAB3RSTlMAKkvwvJ2ByALzYgAAAKRJREFUeNrtzzEOAyEQBMHjOJj//9hhJ0hrN04sM3n1aq+zn117Mrd8TzL2PAXnKThPQXoK3lPwnoL36dITcJ7dxx//XX+Pe8uPJHPp866n4O5TcJ6C8xTs/xSsp/Chn2EUSr8OUKg9exaFyteFwteFwosCXhTwooB3Bbwu4H2hFZKC9BSsp2D/p2DvU/CegvcU8K6AdwW8LeB9oePN5mjX2T/tBQXfHOXRxKAIAAAAAElFTkSuQmCC)}.challenge .failure{background-color:#ff4f5c;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAGFBMVEVMaXH7+/v6+vz6+vz7+/z7+/v////7+/zXITUcAAAAB3RSTlMAlnu40VAI8LQizAAAARlJREFUeNqt1rGSwyAQRMEFhPb//9jhBFjqqytPrNdgR1Rl9+pR3ux119et7h7lvvu6n3oLozvC0VuY3RGOPoL6U7g6G7h/hKOPgPMj5P4Wcn6EnG8hfYScLyH9KVz9beu9j7BXN4X051ej28LLV7Xni+B+VOEO7CG4t+C+aj4L6C1c6vUr0OMO6CGoh8CegnsL7i24t+DegnsL7i24tzDrL7uegbvKW/2863+9BfcR3EtQb0G9BfUWbvUW0Ftg7zu4t+DegvuF/0H9rI07qC8I7CGwt7DRQ1g10EuoPdFHwCvt7CXklaY+gl9p6SGkj3D0ENJHSG8hfYT0FtJHSG8hfYT0FtJnIz2E9KcwS9tvr7S1y9tr1g/3AYSbPwNjdwY3AAAAAElFTkSuQmCC)}.challenge p + .option{margin-top:-1rem}.challenge .answer{display:block;padding:0 .5em;margin-left:1.5em}.challenge .option{background-color:rgba(0,0,0,0);transition:background-color .15s ease, opacity .15s ease;border-radius:3px;line-height:2em}.challenge .option.correct{background-color:#8aba56}.challenge .option.incorrect{opacity:.5}.challenge .option.disabled .answer{opacity:.3}.challenge .answer p{margin-bottom:0}.challenge .option{margin:.1em 0;padding:.4em}.challenge .option input[type=radio]{float:left;margin-top:.65em}.challenge .blank{min-width:2ch;display:inline-block;color:#9A8931;border-bottom:1px dashed;vertical-align:middle;text-align:center;outline:none}.js .challenge:after{content:'';opacity:0;width:30px;height:30px;background-color:#e5d78e;border-radius:50%;top:.45em;right:.5em;position:absolute;background-size:20px;background-repeat:no-repeat;background-position:5px 5px;transition:.3s opacity ease}.js .challenge.completed:after{opacity:1}.challenge .errors{margin-bottom:0}.no-js .challenge .check-answer{display:none}body.sign-up-for-access{color:#000001;position:fixed;overflow:hidden;width:100%;height:100%}article > nav{display:block;text-align:center}article > nav .next-lesson .button{font-size:1.45em}article > nav .previous-lesson a{font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;font-size:.8em;color:#c3c3c5}article > nav .previous-lesson a:hover{color:#a9a9ac}article > nav .next-lesson + .previous-lesson a{top:-0.5em;position:relative}.tiles{text-align:center}.tiles .tile{margin:.6em .1em}.tile,.lesson{text-align:left;border-radius:2px}.tile{position:relative;display:inline-block;overflow:hidden;padding:2em;width:540px;margin:0 auto;background:#fff;color:#444;border-radius:4px;border:1px solid #f5f5f5;border-bottom:none;box-shadow:0 3px 0 #ececed;transition:background .1s ease, border .1s ease, color .1s ease, box-shadow .1s ease, opacity .1s ease}a.tile{cursor:pointer}.tile h4{display:inline-block;width:90%;margin:0;padding:.2em 0 .1em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:1px;font-size:1.6em;font-weight:bold}.tile p{display:inline-block;font-size:.75em;line-height:1.8em;margin:0;padding:.5em 0}.no-touch a.tile:hover,.no-js a.tile:hover,a.tile:active{color:#000001;border-color:#e8e8e8;box-shadow:0 3px 0 #dfdfe1}.tile.featured:before,.tile.purchased:before,.tile.completed:before,.tile.popular:before{content:'Featured';font-family:'PT Sans';font-weight:bold;background-color:#7545a9;color:#fff;display:inline-block;line-height:1em;font-size:.8em;letter-spacing:.5px;padding:.6em;border-radius:2px;position:absolute;top:1em;right:1em}.tile.purchased:before{content:'Purchased';background-color:#8aba56}.tile.completed:before{content:'Completed';background-color:#8aba56}.tile.popular:before{content:'Popular';background-color:#ff4f5c}h2.smallcaps.lessons{font-size:1.8em;color:#4d4d4d}.lesson,.post{position:relative;display:block;font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;font-size:1.2em;font-weight:bold;letter-spacing:1px;padding:.8em;color:#8aba56;background:#fbfbfc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s ease, border .12s ease, color .12s ease, box-shadow .12s ease, opacity .12s ease}.no-touch .lesson:hover,.no-js .lesson:hover,.lesson:active,.no-touch .lesson.consumed:hover,.no-js .lesson.consumed:hover,.lesson.consumed:active,.no-touch .post:hover,.no-js .post:hover,.post:active,.no-touch .post.consumed:hover,.no-js .post.consumed:hover,.post.consumed:active{background:#8aba56;color:#fbfbfc}.lesson.locked,.post.locked{color:#c3c3c5}.no-touch .lesson.locked:hover,.no-js .lesson.locked:hover,.no-touch .post.locked:hover,.no-js .post.locked:hover{background:#888;color:#fbfbfc}.lesson.consumed{color:#888}.lesson .length{display:inline-block;font-size:.7em;vertical-align:middle;transition:none}.lesson .length:before{content:"("}.lesson .length:after{content:")"}.lesson .challenge-progress{position:absolute;right:1em;font-size:.6em;vertical-align:middle;color:#c3c3c5}.no-touch .lesson:hover .challenge-progress,.no-js .lesson:hover .challenge-progress{color:#6b963d}.typewrite{margin-top:-0.7em;font-size:1em;color:#b6b6b6;border-right:0.1em solid rgba(0,0,0,0.05)}img.polaroid{border:13px solid #fff;border-bottom:1.4em solid #fff;box-shadow:0 3px 0 #ececed,0 1px 3px rgba(0,0,0,0.1)}.pubstamp{display:block;font-family:"PT Sans","Helvetica Neue","Helvetica","Arial",sans-serif;color:#c3c3c5;text-transform:uppercase;font-size:.9em;letter-spacing:1px;position:relative;margin:-0.5em 0 2em;text-align:left;padding:1em 0;border-top:1px solid #e3e3e5;border-bottom:1px solid #e3e3e5}.mg-active-datapoint{fill:black;font-size:0.9rem;font-weight:400;opacity:0.8}.mg-area1-color{fill:#0000ff}.mg-area2-color{fill:#05b378}.mg-area3-color{fill:#db4437}.mg-area4-color{fill:#f8b128}.mg-area5-color{fill:#5c5c5c}text.mg-barplot-group-label{font-weight:900}.mg-barplot rect.mg-bar{shape-rendering:auto}.mg-barplot rect.mg-bar.default-bar{fill:#b6b6fc}.mg-barplot rect.mg-bar.default-active{fill:#9e9efc}.mg-barplot .mg-bar-prediction{fill:#5b5b5b}.mg-barplot .mg-bar-baseline{stroke:#5b5b5b;stroke-width:2}.mg-bar-target-element{font-size:11px;padding-left:5px;padding-right:5px;font-weight:300}.mg-baselines line{opacity:1;shape-rendering:auto;stroke:#b3b2b2;stroke-width:1px}.mg-baselines text{fill:black;font-size:0.9rem;opacity:0.6;stroke:none}.mg-baselines-small text{font-size:0.6rem}.mg-category-guides line{stroke:#b3b2b2}.mg-header{cursor:default;font-size:1.2rem}.mg-header .mg-chart-description{fill:#ccc;font-family:FontAwesome;font-size:1.2rem}.mg-header .mg-warning{fill:#ccc;font-family:FontAwesome;font-size:1.2rem}.mg-points circle{opacity:0.65}.mg-popover{font-size:0.95rem}.mg-popover-content{cursor:auto;line-height:17px}.mg-data-table{margin-top:30px}.mg-data-table thead tr th{border-bottom:1px solid darkgray;cursor:default;font-size:1.1rem;font-weight:normal;padding:5px 5px 8px 5px;text-align:right}.mg-data-table thead tr th .fa{color:#ccc;padding-left:4px}.mg-data-table thead tr th .popover{font-size:1rem;font-weight:normal}.mg-data-table .secondary-title{color:darkgray}.mg-data-table tbody tr td{margin:2px;padding:5px;vertical-align:top}.mg-data-table tbody tr td.table-text{opacity:0.8;padding-left:30px}.mg-y-axis line.mg-extended-yax-ticks{opacity:0.4}.mg-x-axis line.mg-extended-xax-ticks{opacity:0.4}.mg-histogram .axis path,.mg-histogram .axis line{fill:none;opacity:0.7;shape-rendering:auto;stroke:#ccc}tspan.hist-symbol{fill:#9e9efc}.mg-histogram .mg-bar rect{fill:#b6b6fc;shape-rendering:auto}.mg-histogram .mg-bar rect.active{fill:#9e9efc}.mg-least-squares-line{stroke:red;stroke-width:1px}.mg-lowess-line{fill:none;stroke:red}.mg-line1-color{stroke:#4040e8}.mg-hover-line1-color{fill:#4040e8}.mg-line2-color{stroke:#05b378}.mg-hover-line2-color{fill:#05b378}.mg-line3-color{stroke:#db4437}.mg-hover-line3-color{fill:#db4437}.mg-line4-color{stroke:#f8b128}.mg-hover-line4-color{fill:#f8b128}.mg-line5-color{stroke:#5c5c5c}.mg-hover-line5-color{fill:#5c5c5c}.mg-line-legend text{font-size:0.9rem;font-weight:300;stroke:none}.mg-line1-legend-color{color:#4040e8;fill:#4040e8}.mg-line2-legend-color{color:#05b378;fill:#05b378}.mg-line3-legend-color{color:#db4437;fill:#db4437}.mg-line4-legend-color{color:#f8b128;fill:#f8b128}.mg-line5-legend-color{color:#5c5c5c;fill:#5c5c5c}.mg-main-area-solid svg .mg-main-area{fill:#ccccff;opacity:1}.mg-markers line{opacity:1;shape-rendering:auto;stroke:#b3b2b2;stroke-width:1px}.mg-markers text{fill:black;font-size:0.8rem;opacity:0.6}.mg-missing-text{opacity:0.9}.mg-missing-background{stroke:blue;fill:none;stroke-dasharray:10,5;stroke-opacity:0.05;stroke-width:2}.mg-missing .mg-main-line{opacity:0.1}.mg-missing .mg-main-area{opacity:0.03}path.mg-main-area{opacity:0.2;stroke:none}path.mg-confidence-band{fill:#ccc;opacity:0.4;stroke:none}path.mg-main-line{fill:none;opacity:0.8;stroke-width:1.4px}.mg-points circle{fill-opacity:0.4;stroke-opacity:1}circle.mg-points-mono{fill:#0000ff;stroke:#0000ff}tspan.mg-points-mono{fill:#0000ff;stroke:#0000ff}.mg-points circle.selected{fill-opacity:1;stroke-opacity:1}.mg-voronoi path{fill:none;pointer-events:all;stroke:none;stroke-opacity:0.1}.mg-x-rug-mono,.mg-y-rug-mono{stroke:black}.mg-x-axis line,.mg-y-axis line{opacity:1;shape-rendering:auto;stroke:#b3b2b2;stroke-width:1px}.mg-x-axis text,.mg-y-axis text,.mg-histogram .axis text{fill:black;font-size:0.9rem;opacity:0.6}.mg-x-axis .label,.mg-y-axis .label,.mg-axis .label{font-size:0.8rem;font-weight:400}.mg-x-axis-small text,.mg-y-axis-small text,.mg-active-datapoint-small{font-size:0.6rem}.mg-x-axis-small .label,.mg-y-axis-small .label{font-size:0.65rem}.mg-year-marker text{fill:black;font-size:0.7rem;opacity:0.6}.mg-year-marker line{opacity:1;shape-rendering:auto;stroke:#b3b2b2;stroke-width:1px}.mg-year-marker-small text{font-size:0.6rem}
