.off-canvas{min-height:100vh}.off-canvas .off-canvas-toggle{font-size:16px!important;position:fixed;z-index:3;top:.3rem;left:.3rem;width:1.6rem;height:1.6rem;padding-top:.15rem}.off-canvas .off-canvas-content{padding:inherit}.off-canvas .off-canvas-overlay{background:rgba(69,77,93,.5)}.off-canvas .learn-sidebar{overflow-y:inherit;width:14rem;color:rgba(255,255,255,.6)}.off-canvas .learn-sidebar:before{position:fixed;top:0;left:0;width:14rem;height:100vh;content:''}.off-canvas .learn-sidebar a{color:rgba(255,255,255,.8)}.off-canvas .learn-sidebar a:hover{color:#fff}.off-canvas .learn-sidebar .padding{padding-left:1rem}.off-canvas .learn-sidebar hr{border:0;border-bottom:1px solid rgba(255,255,255,.1)}.off-canvas .learn-sidebar .learn-brand{position:fixed;top:0;width:14rem;height:7rem;padding:10px 20px;box-shadow:0 10px 10px -10px rgba(0,0,0,.3)}.off-canvas .learn-sidebar .learn-brand #logo{display:inline-block;margin:0 2.5rem .5rem}.off-canvas .learn-sidebar .learn-brand #logo path{fill:rgba(255,255,255,.8)!important}.off-canvas .learn-sidebar .learn-nav{position:fixed;top:7rem;bottom:0;width:14rem;padding-bottom:1rem}.off-canvas .learn-sidebar .learn-nav .read-icon{font-size:12px;display:none;float:right;margin-top:5px;margin-right:12px;opacity:.8;color:rgba(255,255,255,.6)}.off-canvas .learn-sidebar .learn-nav .visited>a>.read-icon{display:inline}.off-canvas .learn-sidebar .learn-nav ul{margin-top:.2rem;margin-left:1rem;list-style:none}.off-canvas .learn-sidebar .learn-nav ul.topics{margin-top:0}.off-canvas .learn-sidebar .learn-nav ul.topics>li:first-child{margin-top:0}.off-canvas .learn-sidebar .learn-nav ul a{display:block;padding-top:.1rem;padding-bottom:.1rem}.off-canvas .learn-sidebar .learn-nav ul.searched a{color:rgba(255,255,255,.5)}.off-canvas .learn-sidebar .learn-nav ul.searched .search-match a{color:rgba(255,255,255,.8)}.off-canvas .learn-sidebar .learn-nav ul.searched .search-match a:hover{color:rgba(255,255,255,.9)}.off-canvas .learn-sidebar .learn-nav ul.topics.searched ul{display:block}.off-canvas .learn-sidebar .learn-nav ul.topics>li{margin-top:.3rem}.off-canvas .learn-sidebar .learn-nav ul.topics>li.active,.off-canvas .learn-sidebar .learn-nav ul.topics>li.parent{margin-left:-1rem;padding-top:.25rem;padding-bottom:.25rem;padding-left:1rem;background-color:rgba(0,0,0,.2)}.off-canvas .learn-sidebar .learn-nav ul li,.off-canvas .learn-sidebar .learn-nav ul ol{margin-top:.1rem}.off-canvas .learn-sidebar .learn-nav ul ul{font-size:.75rem;display:none;margin-top:0;margin-bottom:0}.off-canvas .learn-sidebar .learn-nav ul li.active>a{margin-left:-.4rem;padding-left:.4rem;color:#fff;background-color:#1aa3ed}.off-canvas .learn-sidebar .learn-nav ul li a>span>b{font-weight:300;color:rgba(255,255,255,.6)}.off-canvas .learn-sidebar .learn-nav ul .active ul,.off-canvas .learn-sidebar .learn-nav ul .parent ul{display:block}.off-canvas .learn-sidebar .searchbox{position:relative;color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.1);border-radius:2px;background:rgba(0,0,0,.1)}.off-canvas .learn-sidebar .searchbox :-ms-input-placeholder{color:rgba(255,255,255,.5)}.off-canvas .learn-sidebar .searchbox ::-ms-input-placeholder{color:rgba(255,255,255,.5)}.off-canvas .learn-sidebar .searchbox ::placeholder{color:rgba(255,255,255,.5)}.off-canvas .learn-sidebar .searchbox input{font-size:.7rem;font-weight:200;width:100%;padding:4px 25px 4px 30px;color:rgba(255,255,255,.8);border:0;background:0 0}.off-canvas .learn-sidebar .searchbox label{position:absolute;top:2px;left:8px}.off-canvas .learn-sidebar .searchbox span{position:absolute;top:2px;right:8px;cursor:pointer}.off-canvas .learn-sidebar .search-options{margin-top:10px}.off-canvas .learn-sidebar .search-options .adv-search{font-size:85%;display:-ms-flexbox;display:flex;padding-left:.6rem;-ms-flex-align:center;align-items:center}.off-canvas .learn-sidebar .search-options .adv-search i{margin-right:5px}.off-canvas .learn-sidebar .search-options .version-chooser select{font-size:.8rem;font-weight:700;display:inline-block;margin:0;letter-spacing:1px;color:#fff;border:1px solid rgba(255,255,255,.1);border-radius:2px;background:rgba(0,0,0,.1)}.off-canvas .learn-sidebar .side-tools{font-size:90%;color:rgba(255,255,255,.5)}.off-canvas .learn-sidebar:before{background:linear-gradient(150deg,#8e44ad 0,#283a63 100%)}body.sidebar-green .off-canvas .learn-sidebar:before{background:linear-gradient(150deg,#16a085 0,#283a63 100%)}body.sidebar-blue .off-canvas .learn-sidebar:before{background:linear-gradient(150deg,#1aa3ed 0,#283a63 100%)}body.sidebar-contrast .off-canvas .learn-sidebar a{color:#fff}body.sidebar-contrast .off-canvas .learn-sidebar:before{background:linear-gradient(150deg,#3b4349 0,#1e2329 100%)}body.sidebar-contrast .off-canvas .learn-sidebar .searchbox :-ms-input-placeholder{color:rgba(255,255,255,.7)}body.sidebar-contrast .off-canvas .learn-sidebar .searchbox ::-ms-input-placeholder{color:rgba(255,255,255,.7)}body.sidebar-contrast .off-canvas .learn-sidebar .searchbox ::placeholder{color:rgba(255,255,255,.7)}@font-face{font-family:Metropolis;font-weight:400;font-style:normal;src:url(../fonts/metropolis-bold-webfont.woff2) format('woff2'),url(../fonts/metropolis-bold-webfont.woff) format('woff')}@font-face{font-family:'Public Sans';font-weight:300;font-style:normal;src:url(../fonts/PublicSans-Light.woff2) format('woff2'),url(../fonts/PublicSans-Light.woff) format('woff')}@font-face{font-family:'Public Sans';font-weight:500;font-style:normal;src:url(../fonts/PublicSans-SemiBold.woff2) format('woff2'),url(../fonts/PublicSans-SemiBold.woff) format('woff')}@font-face{font-family:Hack;font-weight:400;font-style:normal;src:url(../fonts/hack-regular-subset.woff2) format('woff2'),url(../fonts/hack-regular-subset.woff) format('woff')}#top-bar{position:fixed;z-index:2;top:0;right:0;left:14rem;display:-ms-flexbox;display:flex;border-bottom:1px solid #edeef1;background:#f8f9fa;-ms-flex-align:center;align-items:center}@media (max-width:960px){#top-bar{left:0}}#top-bar #breadcrumbs{line-height:1;width:100%;height:auto;padding-left:.5rem}@media (max-width:600px){#top-bar #breadcrumbs *{display:none}}#top-bar #breadcrumbs>a,#top-bar #breadcrumbs>span{padding:0 .5rem!important}#top-bar #breadcrumbs>a span,#top-bar #breadcrumbs>span span{padding:0!important}@media (max-width:960px){#top-bar #breadcrumbs{padding-left:2rem}}#top-bar #navigation{display:-ms-flexbox;display:flex;width:400px}#top-bar #navigation span,#top-bar #navigation>a{font-size:27px;width:50%;transition:background-color .5s ease,color .5s ease;text-align:center;text-decoration:none;border-left:1px solid #edeef1}#top-bar #navigation span.disabled,#top-bar #navigation>a.disabled{color:#bbc1cd}#top-bar #navigation>a:hover{color:#0e75ad;background:#edeef1}#top-bar .progress{position:absolute;z-index:1;bottom:-1px;width:100%;height:1px;background:linear-gradient(to right,#1aa3ed var(--scroll),transparent 0);background-repeat:no-repeat}.center-content #start{display:-ms-flexbox;display:flex;flex-direction:column;-ms-flex:1;flex:1;-ms-flex-direction:column;-ms-flex-pack:center;justify-content:center}.learn-content{position:relative;display:-ms-flexbox;display:flex;flex-direction:column;min-height:100vh;-ms-flex-direction:column}.learn-content #start{padding:2rem 3rem}@media (max-width:1280px){.learn-content #start{padding:2rem 2rem}}@media (max-width:960px){.learn-content #start{padding:2rem 1rem}}#footer{margin-top:1rem;text-align:center;border-top:1px solid #e7e9ed}#footer p{margin:1rem 0}.page-toc{font-size:.7rem;float:right;overflow:hidden;width:250px;margin-top:10px;margin-right:0;margin-bottom:1rem;margin-left:1.5rem;padding:.5rem .75rem;background:#f3f4f6}@media (max-width:600px){.page-toc{float:none;width:100%;margin-top:.5rem;margin-bottom:0;margin-left:0}}.page-toc .toc-toggle{font-size:1.2rem;line-height:1;display:block;float:right;margin-top:-8px;margin-right:-10px;padding:5px 10px;cursor:pointer;color:#667189}.page-toc.toc-closed{height:40px;margin-bottom:.5rem}.page-toc.toc-closed .toc-toggle .fa:before{content:'\f107'}.page-toc h5{margin:0 0 1rem}.page-toc ul{margin-bottom:0;margin-left:1rem}.page-toc li{margin-top:0;list-style:decimal;color:#808ba1}.page-toc li li{list-style:decimal}.page-toc li li li{list-style:square}.page-toc ul>li.first.last{margin:0;margin-left:-1rem;list-style:none}.page-toc+#body-inner>.code-toolbar,.page-toc+#body-inner>.notices{overflow:hidden}html{font-size:18px}@media screen and (min-width:480px){html{font-size:calc(18px + 2 * ((100vw - 480px)/ 800))}}@media screen and (min-width:1280px){html{font-size:20px}}body{font-weight:300;letter-spacing:-.015rem}body ::-moz-selection{background:#ececfe}body ::selection{background:#ececfe}div{min-width:0}pre{padding:1em}mark{padding:0}h1,h2,h3,h4,h5,h6{font-family:Metropolis,'Helvetica Neue',sans-serif;font-weight:500;line-height:1;margin-top:2rem;letter-spacing:-.05rem;color:#242931}h1{font-size:2.5rem;font-weight:500}@media (max-width:600px){h1{font-size:2rem}}a.active,a:active,a:focus,a:hover{text-decoration:none;color:#0e75ad}a:focus{outline:0!important;box-shadow:none!important}a:visited{color:#1195dc}.table-keycol{overflow:hidden}.table{width:auto}table{overflow-x:auto;width:100%;margin-bottom:1.5rem;border-spacing:0;border-collapse:collapse;text-align:left}table tbody tr:nth-of-type(odd){background:#f8f9fa}table tbody tr.active{background:#f0f1f4}table td,table th{padding:.6rem .4rem;border-bottom:.05rem solid #e7e9ed}table th{border-bottom-width:.1rem}.table-keycol table tr>td:first-child,.table-keycol table tr>th:first-child{width:15%;white-space:nowrap}.video-container,img{display:block;max-width:100%;margin:3rem auto;text-align:center}.video-container.border,img.border{padding:2px;border:2px solid #e6e6e6!important}.video-container.shadow,img.shadow{box-shadow:0 10px 30px rgba(0,0,0,.1)}hr{border:0;border-top:1px solid #e7e9ed}ol,ul{margin:0 0 1.2rem 0}ol ol,ol ul,ul ol,ul ul{margin:0}ol ol,ul ol{list-style-type:decimal}ol li,ul li{padding-top:0}#chapter{max-width:600px;margin:0 auto;text-align:center}#chapter h3{opacity:.7}#chapter h3+h1{display:inline-block;margin:1rem auto 2rem;border-bottom:3px solid #e7e9ed}@media (max-width:600px){#chapter h3+h1{font-size:2.5rem}}#body-inner :target:before{display:block;width:1px;height:60px;margin-top:-60px;content:''}pre.xdebug-var-dump{line-height:1.5;display:block;overflow-x:auto;padding:1rem;color:inherit;border-radius:2px;background:#fafafa}#body-inner pre{margin:.5rem 0}#body-inner pre ::-moz-selection{background:#ececfe}#body-inner pre ::selection{background:#ececfe}#body-inner code{word-break:break-word}#body-inner .code-toolbar{margin:.5rem 0}#body-inner .code-toolbar pre[class*=language-]{margin:0}#body-inner code[class*=language-],#body-inner pre[class*=language-]{font-family:Hack,monospace}#body-inner pre[class*=language-]{font-size:.7rem}#body-inner pre[class*=language-] code{font-size:.7rem;padding:initial}#body-inner .no-margin-top{margin-top:-1em}#body-inner .no-margin-top .code-toolbar{margin-top:0}#body-inner .no-margin-top .code-toolbar>pre{padding-top:3px}#body-inner .no-margin-bottom .code-toolbar{margin-bottom:0}#body-inner .line-highlight{background:linear-gradient(to right,rgba(255,233,179,.3) 70%,rgba(255,233,179,0))}#body-inner .line-highlight:before{top:.15rem;background-color:#ffbd1a;box-shadow:none}i.fa.fa-heart-o.pulse,i.fa.fa-heart.pulse{color:#920}b,strong{font-weight:500}.heavy{font-weight:700}.light{font-weight:200}#error{position:relative;margin-top:5rem;text-align:center}#error .icon{font-size:50px}#messages{margin-bottom:1rem}#messages .icon{font-size:1rem}ol,ul{margin-left:1.6rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.6rem}ul{list-style:disc outside}ol{list-style:decimal outside}#navigation a.github-link{font-size:inherit!important;display:-ms-flexbox;display:flex;padding:0 1rem;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}#navigation a.github-link i{padding-right:5px}.tabs-wrapper.ui-theme-badges{border:1px solid #f2f4f6;border-radius:0;background:#f8f9fa}.tabs-wrapper.ui-theme-badges .tabs-nav{margin:.25rem}.tabs-wrapper.ui-theme-badges .tabs-nav>li{margin-top:0}.tabs-wrapper.ui-theme-badges .tabs-nav li a{color:#767693;border-radius:0;background:#e6eaed}.tabs-wrapper.ui-theme-badges .tabs-nav li.current a{color:#fff;background:#8193a5}.tabs-wrapper.ui-theme-badges .tabs-nav li:not(.current) a:hover{background:#dde2e7}.tabs-wrapper.ui-theme-badges .tabs .tab{padding:.25rem 0}.tabs-wrapper.ui-theme-badges .tabs .tab pre{margin-top:.5rem!important;margin-bottom:.5rem!important}.notices{margin:1.5rem 0;padding:.4rem}.notices p{margin:0 0 1.5rem .5rem}.notices p:last-child{margin-bottom:0}.notices.info{color:#df8a13;border-left:5px solid #f0ad4e;background:#fcf8f2}.notices.warning{color:#b52b27;border-left:5px solid #d9534f;background:#fdf7f7}.notices.note{color:#28a1c5;border-left:5px solid #5bc0de;background:#f4f8fa}.notices.tip{color:#3d8b3d;border-left:5px solid #5cb85c;background:#f1f9f1}audio{max-width:100%}pre{max-width:100%}pre[class*=language-]:not(.command-line),pre[class*=language-]:not(.command-line)>code[class*=language-]{white-space:pre-wrap;word-break:break-word}.tntsearch-results em{padding:.05rem .1rem 0;color:#3a414e;border-bottom:.05rem solid #ffd367;border-radius:.1rem;background:#ffe9b3}.lifecycle #body-inner .level{position:relative}.lifecycle #body-inner .level h3{font-size:18px;position:absolute;z-index:1000;left:0;margin:0;padding:2px 10px 4px;color:#fff}.lifecycle #body-inner .level .level{margin-top:.5rem;margin-right:1rem;margin-bottom:.5rem;margin-left:-1rem;padding-bottom:1rem}.lifecycle #body-inner .level ol li{margin-top:.2rem;padding-top:.1rem}.lifecycle #body-inner .level>ol{margin-top:2rem}.lifecycle #body-inner .level.level-1{margin-bottom:1rem;color:#1abc9c;border:4px solid #1abc9c;background:#f6fefc}.lifecycle #body-inner .level.level-1 h3{background:#1abc9c}.lifecycle #body-inner .level.level-2{color:#2ecc71;border:4px solid #2ecc71;background:#f7fdf9}.lifecycle #body-inner .level.level-2 h3{background:#2ecc71}.lifecycle #body-inner .level.level-3{color:#3498db;border:4px solid #3498db;background:#f3f9fd}.lifecycle #body-inner .level.level-3 h3{background:#3498db}.lifecycle #body-inner .level.level-4{color:#34495e;border:4px solid #34495e;background:#e4eaf0}.lifecycle #body-inner .level.level-4 h3{background:#34495e}form .button-wrapper{margin-top:.75rem;margin-bottom:1rem}form span.required{font-size:1.2rem;font-weight:700;color:#e85600}form .form-input[type=range]{-webkit-appearance:slider-horizontal;-moz-appearance:slider-horizontal;appearance:slider-horizontal}form .form-input[type=range]:focus{border:none;box-shadow:none}form .form-group:not(.form-field-toggleable) .checkboxes{display:inherit}form .form-group:not(.form-field-toggleable) .checkboxes label{display:inherit;margin:inherit;padding:.1rem .4rem .1rem 1.2rem}form .form-group:not(.form-field-toggleable) .checkboxes label:before{display:none}#grav-login>form{max-width:350px;margin:2rem auto 0}#grav-login .form-label{display:none}#grav-login .form-data{margin:1rem 0}#grav-login .form-input{text-align:center}#grav-login .button-wrapper{text-align:right}#grav-login .button-wrapper .form-data.rememberme{float:left;margin:0}#grav-login .login-form button[type=submit]{color:#fff;border-color:#129be6;background:#1aa3ed}#grav-login .login-form button[type=submit]:focus,#grav-login .login-form button[type=submit]:hover{color:#fff;border-color:#108bce;background:#1195dc}#grav-login .login-form button[type=submit].active,#grav-login .login-form button[type=submit]:active{color:#fff;border-color:#0f85c5;background:#118fd3}#grav-login .twofa-form button[type=submit]:first-child{float:right;margin-left:4px;color:#fff;border-color:#129be6;background:#1aa3ed}#grav-login .twofa-form button[type=submit]:first-child:focus,#grav-login .twofa-form button[type=submit]:first-child:hover{color:#fff;border-color:#108bce;background:#1195dc}#grav-login .twofa-form button[type=submit]:first-child.active,#grav-login .twofa-form button[type=submit]:first-child:active{color:#fff;border-color:#0f85c5;background:#118fd3}.default-animation,a{transition:all .5s ease}.pulse{transform-origin:70% 70%;animation-name:pulse_animation;animation-duration:2s;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes pulse_animation{0%{transform:scale(1)}30%{transform:scale(1)}40%{transform:scale(1.08)}50%{transform:scale(1)}60%{transform:scale(1)}70%{transform:scale(1.05)}80%{transform:scale(1)}100%{transform:scale(1)}}[data-simplebar]{position:relative;flex-direction:column;width:inherit;max-width:inherit;height:inherit;max-height:inherit;-ms-flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start;-ms-flex-align:start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;max-width:inherit;height:inherit;max-height:inherit}.simplebar-mask{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;overflow:hidden;width:auto!important;height:auto!important;margin:0;padding:0;direction:inherit}.simplebar-offset{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:inherit!important;margin:0;padding:0;resize:none!important;direction:inherit!important;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{position:relative;display:block;visibility:visible;overflow:auto;box-sizing:border-box!important;width:auto;max-width:100%;height:100%;max-height:100%;direction:inherit}.simplebar-content:after,.simplebar-content:before{display:table;content:' '}.simplebar-placeholder{width:100%;max-width:100%;max-height:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{position:relative;z-index:-1;float:left;overflow:hidden;box-sizing:inherit!important;width:inherit;max-width:1px;height:100%;max-height:1px;margin:0;padding:0;pointer-events:none;-ms-flex-positive:inherit;flex-grow:inherit;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.simplebar-height-auto-observer{position:absolute;z-index:-1;top:0;left:0;display:block;overflow:hidden;box-sizing:inherit;width:1000%;min-width:1px;height:1000%;min-height:1px;pointer-events:none;opacity:0}.simplebar-track{position:absolute;z-index:1;right:0;bottom:0;overflow:hidden;pointer-events:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;right:2px;width:7px;min-height:10px}.simplebar-scrollbar:before{position:absolute;right:0;left:0;content:'';transition:opacity .2s linear;opacity:0;border-radius:7px;background:rgba(255,255,255,.5)}.simplebar-track .simplebar-scrollbar.simplebar-visible:before{transition:opacity 0s linear;opacity:.5}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-track.simplebar-vertical .simplebar-scrollbar:before{top:2px;bottom:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before{right:2px;left:2px;height:100%}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{top:2px;right:auto;left:0;width:auto;min-width:10px;height:7px;min-height:0}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.hs-dummy-scrollbar-size{position:fixed;visibility:hidden;overflow-x:scroll;overflow-y:hidden;width:500px;height:500px;opacity:0;direction:rtl}